
Explore how microcontrollers differ from normal ICs and processors, featuring a CPU, RAM, ROM, and input/output as a complete package that runs programmable instructions.
Explore how the cpu architecture hinges on registers as the primary interface to hardware, covering pc, instruction and data registers, ram addressing, buffers, and hexadecimal memory concepts.
Explore how digital electronics build from transistors to logic gates, create adders and an arithmetic logic unit, and implement peripherals like uart, memory storage concepts and nonvolatile options.
Explain how microcontrollers store programs in program memory and load them into RAM at startup, while ROM remains non-volatile and accessible via peripherals with timing from the oscillator.
Explore how cpu instructions and instruction sets vary by architecture, and how machine language uses ones and zeros to encode operations across layers.
Choose a microcontroller by desired peripherals, pins, memory, speed, production life, and price, then interface hardware with gpio and program via a programmer by writing, compiling, and burning code.
Learn how microcontrollers use gpio and fixed protocols to connect external devices, assign digital or analog functions, and manage ports and registers to drive leds or read buttons safely.
Learn how to use data sheets to understand gpio registers, including tristate, port, and latch registers, pull-up options, and memory-mapped ports A, B, and C on an eight-bit microcontroller.
Demonstrate io port operation with the data bus, d and q latches, enables, and tri-state gates, covering read, write paths, and button debouncing.
Understand microcontroller architecture and memory map, including ARM Cortex-M4 core, RAM, ROM, EEPROM, registers, and buses; learn assembly language basics, addressing modes, and the assembler’s role.
Learn embedded C language fundamentals, from memory storage and variables to pointers, arrays, structs, and unions, plus operators, flow control, and program organization.
Explore how compilers and assemblers translate code to machine instructions, understand instruction sets and architecture, and examine data structures like stack and heap for an embedded engineer.
Explore selecting and wiring microcontrollers for demos, using a Pic18 F25 K80 with can transceivers, can protocol, and an i2c lcd 16x2, along with a breadboard and basic components.
Toggle leds on rc5, rc6, rc7 with series resistors. Power the microcontroller, tie mclr high, and connect pgd and pgc to a temporary programmer for initial programming.
Set up MPLAB X IDE for PIC18 microcontrollers, configure internal oscillator and configuration bits, generate source, then complete lab 1 by blinking three LEDs with two resistors and a flag.
Configure PIC microcontroller pins with tri state registers, use latch and port for input and output, and understand eight bit ports A, B and C and last written values.
Explore how registers act as memory-mapped hardware locations that configure microcontroller peripherals. Learn to use addresses, pointers, and data sheets to enable ports and control registers.
Interface leds to a microcontroller pin using a 1 kiloohm resistor to limit current despite voltage drops, and connect a button with a 10 kiloohm pull-down to prevent shorts.
Examine the microcontroller pinout, power connections, and MCLR reset. Enable can communication on selected pins, multiplex pins for can transmit and receive, and interface leds, buttons, and an i2c lcd.
Lab two wires two buttons to RC1 and RC2 to toggle LEDs when RC2 is pressed, and implement debouncing with a delay plus re-check to prepare for Can message indicator.
Explore how ADC reads sensor voltages and how DAC produces outputs. Learn to set analog pins, perform conversions, and use external DAC circuits when needed.
Explore how microcontrollers interface with sensors—digital switches, analog sensors, and communication-based sensors—and how actuators like motors, pumps, buzzers, and displays enable interaction with the world.
Configure microcontroller pins as general purpose input output or fixed peripherals, enabling digital or analog signals and uart or spi communication for data transfer.
Compare parallel and serial communication protocols, highlighting why parallel uses many lines and suffers from long-distance electrical limits, and explain synchronous versus asynchronous serial with clock and data synchronization.
Explore how two microcontrollers synchronize for serial communication, comparing synchronous and asynchronous protocols, with dedicated or bit-synchronization clocks, and the roles of arbitration, start and end bits.
Utilize dedicated hardware inside microcontrollers to manage synchronization and interrupts for communication. Avoid software-only implementations, which are time consuming and error prone, by leveraging hardware-accelerated solutions for input and output.
Explain topology by comparing ring, star, and bus networks, with CAN bus as a scalable, fault-tolerant choice. Distinguish UART point-to-point links from internet layering, routers, IP addresses, and token-passing schemes.
Explore the UART serial protocol, including asynchronous start-stop framing and baud rate, and see how USB-to-UART bridges enable PC debugging of embedded systems.
Demonstrates init of uart on tm4c arm cortex-m launchpad, covering base addresses and memory-mapped registers. Shows enabling ports 0–7, clock and baud setup, and blocking vs non-blocking transmission.
Are you ever curious about how computer systems works? Even the most experience engineers sometimes fail to answer the very basic question because the basic knowledge is sometimes lost somewhere in the midst of all the new and advanced things we learn. Also, the basics get overlooked when we are working on upper layers of coding and application building.
This course delves into the concept of computer systems in a very simple and easy way. There is no practical lab or exam, so it is a stress-free environment, which is key for good learning. We will only have lectures that cover the fundamentals of computers, starting from working of processors and moving to how one is programmed. There is no practical but there are step-by-step instructions on how you can get a microcontroller and get started with your first embedded project. The lectures try to be as contained and to the point as possible.
If this is something that interests you, I will be more than happy to have you in the course.
If you are a beginner, this course can help you understand the basics. If you are at the intermediate level, this will help you brush over the fundamentals and create a mind-map to learn advance things easily.