Firmware Development – Course Curriculum What is Firmware? What is the Difference between a firmware and software? Architectures Von Neumann Architecture Harvard Architecture AVR Architecture PIC Architecture ARM Architecture What is RISC and CISC? Microprocessors and microcontrollers back then and now Boundaries between microcontrollers and microprocessor back then New Boundaries between microcontrollers and microprocessor Wired Protocols I2C SPI UART USART CAN Bus Protocol EtherNet/IP Profibus Profinet CANOpen Modbus/TCP RS232 RS485 TCP/IP Wireless Protocols WiFi BT BLE 4.2 or 5.0 with Mesh LoRaWAN Firmware Development – Course Curriculum 6LoWPAN Zigbee Sub-GHz RF Knowledge of wireless industry standards with preference to including IEEE 802.11a/b/g/n/ac/ax JTAG and USB ASP DSP Assembly Programming Introduction to RTOS and FreeRTOS Introduction to Vxworks What are PLA, PAL, FPGA? Types of Memories Flash Memory RAM SDRAM ROM PROM EPROM EEPROM What is Cache memory? What is pipelining? Introduction to ARM TrustZone and Secure OS like OPTEE for Trusted Execution Environment (TEE) Comprehensions of ARM /X86 Boot flow ARM memory initialization, BootROM architecture and UBoot development Firmware Development – Course Curriculum Arduino and AVR Arduino Open Source Software. Advantages of Proteus IDE.(No hardware Required). Development Boards. Arduino Uno development Board. Hardware explantion. Atmega 328P explanation I/O Registers Timers Counters Interrupts Special function Registers Interfacing LCD (16x2) a. Display b. Digital Clock c. Scrolling Name Right to left and then left to right Up to down and then down to up Example programs to explain: Registers, Timers, Counters, Interrupts, Special function Registers Protocols . I2C a. SPI b. UART c. USART Introduction to Arduino IDE Introduction to Atmel Studio Introduction to Arduino Uno R3 Explanation of Microcontroller ATMEGA328P LED Blink with Arduino UNO & AVR controller PWM Output generation arduino & AVR Reading Analog Data with Arduino UNO Interfacing LDR and Program automatic street light Interfacing Servo Motor Interfacing Stepper Motor Interfacing simple DC Motor Firmware Development – Course Curriculum CAN Bus implementation BLDC Motor Encoder, Decoder Experience working with (Git, Subversion) Introduction to AVR Studio Introduction to firmware development and testing tools GDB Valgrind SCA PIC Mircrocontrollers Introduction to PIC18F Introduction to MPLAB X Input/Output Automatic Street Light Programming with some examples I2C UART SP I ARM Microprocessor Introduction to stm32f103c8t6 ARM based microprocessor development board and ARM Cortex M4 hands-on. Programming via Arduino IDE Programming via Keil IDE. Introduction to ARM Processor Families LED Blinking Boot Loading via stlink Debugging CAN Bus implementation Multi-threading(RTOS) hands-on Protocols a. I2C b. SPI Firmware Development – Course Curriculum c. UART d. USART IOT Bluetooth Protocol Program with HC06(AT Commands) WiFi Protocol Program with ESP8266(AT Commands) Local Area Network using ESP8266 Server Connection (Host and Client) Introduction to Zigbee Programming and control with Zigbee LoRa Protocol and modules Introduction to LoRa Module Communication between two devices using LoRa