Week 1 - Intern Diary at Vega Innovation
Learning serial communications, ESP32, RTOS, and embedded systems.
Day 1 - Vega Innovation
Serial Communication Types
Learned the serial communication types other than RS-232, SPI and I2C.
- check_circle RS-485: Faster than its predecessor RS232 and can have a range of 400 feet. Can connect about 32 devices. Than I2C - can send more data with more speed.
ESP-32 Classes
- memory S-Class: Uses WiFi, Bluetooth Low Power
- memory Normal Class: Uses WiFi, Bluetooth Low Power and Normal Bluetooth
- memory Commercial Class: Uses a proprietary OS instead of RTOS
Installing ESP-IDF Plugin to VSCode
- warning Make sure the directory name has no spaces
- warning Make sure the code has the same name as directory
- warning Code runner cannot be used in Arduino or ESP IDF - rather its inbuilt compiler is supposed to be used which is in the left bottom of the panel
Learning Topics
- school NB-IoT (Narrowband Internet of Things)
- school LTE-M (Long Term Evolution for Machines)
- school RTOS (Real-time Operating System): Event-driven (preemptive priority scheduling) and Time-sharing (round robin)
- school Monolithic Kernels and Micro Kernels
- school LoRA (Long Range Communication)
Reference: contec.com - Serial Communication
Day 2 - Vega Innovation
Learned the serial communication types other than RS-232, SPI and I2C.
Serial data communication
CAN - Controller Area Networks
CAN is a multi-master serial bus standard for connecting electronic control units.
CAN Frame - size depends on type
4 types of CAN Frames: Remote, Error, Overload, and Data.
References: CAN Bus Tutorial | CAN Bus - Wikipedia
UART
UART in works
Break down of UART
RTOS: Real Time Operating System
There are several types:
- timer Hard Time: Time is essential (ATMs)
- timer Firm Time: Time must be exactly strictly maintained (Airbag)
- timer Soft Time: Calculator
Dependent on: Time driven, Event driven.
In typical designs, a task has three states:
- play_circle Running (executing on the CPU)
- pending Ready (ready to be executed)
- block Blocked (waiting for an event, I/O for example)
ESP32
ESP32 Circuit Diagram
Using the different architectures and instruction sets in ESP32 and the use of RTOS on it. We usually use Amazon's free RTOS but there are other alternatives like Mongoose (FOSS) and QNX (Proprietary). Each OS has inherently different advantages.
MQTT: Message Queuing Telemetry Transmission - Protocol for IoT device communication.
Reference: Serial Communication Protocols
Day 3 - Vega Innovation
Learning more about the modules, functions and similar codes in C for the ESP32.
- code Free() function: Removes the memory lock from malloc, calloc and other functions
- code Logging in ESP32: Uses the JTAG for it
OTA Update System for the EVCU
Learning the OTA update system for the EVCU - Electrical Vehicle Controller Unit.
- memory Uses the STM32 microcontroller - STM32 Cube IDE
- memory And the SPC570S microcontroller - SP5 Studio (IDE) and UDE (debugger)
Flash the SPC570S using JTAG debugger and using the debugger monitor the firmware using the EVCU.
Setup to flash the JTAG of the EVCU - uses external power supply and CAN to apply the OTA update.
Day 4 - Vega Innovation
Learned to create a pull request in GitHub and merge changes. Creating a branch so that edits can be made in the duplicate and merged finally to the main branch.
Code Composer Studio & C2000
Learn Code Composer Studio and the architecture behind programming the C2000 microcontroller (by Texas Instruments).
Day 5 - Vega Innovation
Learning the C language further and making modifications in the given codes.
- check_circle Learned about SMD components
- check_circle Learned about the different types of Capacitors
- check_circle Learnt about SPIFFS, FreeFS, FreeRTOS functions, SD card usage in ESP32, and application of FAT in ESP
- check_circle Learned that there are hardware accelerated encryption and an ULP (Ultra Low Power) coprocessor
- check_circle Learnt about the ESP32 in depth and the different variants in it
- check_circle Learnt to find the MAC address in the ESP32