In this document, you will find brief descriptions for each video.
These summaries provide an overview of the topics covered in each video, allowing you to quickly and easily understand the content presented.
The purpose of these short descriptions is to give a clear and concise understanding of each video's subject matter.
Important
In this section, only AVR-related videos are available. These videos are generally divided into two main categories:
-
General Concepts and Basics:
This part includes videos that provide foundational knowledge and general principles of microcontrollers. Videos in this category typically begin with the wordMicrocontroller.- Example: In the video "aKaReZa 45 - Microcontroller, Interrupts", the overall functionality and applications of interrupts across different types of microcontrollers are explained. This helps build a solid understanding of the interrupt mechanism before diving into specific implementations.
-
Microcontroller-Specific Implementations:
"This part focuses on detailed setups, configurations, and practical demonstrations tailored to a specific microcontroller.
Videos in this category are identified by keywords related to specific microcontroller families such asAVR,STM32,STM8,ESP8266,ESP32, andPIC.- Example for AVR: In the video "aKaReZa 55 - AVR, External Interrupts", the setup and detailed explanation of external interrupts in
AVRmicrocontrollers are provided, along with practical tests and real-world examples.
- Example for AVR: In the video "aKaReZa 55 - AVR, External Interrupts", the setup and detailed explanation of external interrupts in
Note
- It is strongly advised to first watch the general concept videos (identified by the keyword
Microcontroller) to build a solid theoretical foundation. - Once you have a good understanding, proceed to the microcontroller-specific videos (identified by their respective keywords such as
AVR,STM32, etc.) to see how these concepts are applied in practice.
Tip
- The prerequisites for each video are clearly mentioned at the beginning of the respective video.
- For a complete and organized list of all fundamental topics along with their detailed explanations, visit:
📁 AVR Microcontrollers
├── Fundamental
│ ├── [aKaReZa 6 - AVR, Introduction]
│ │ ├─ MCU Families — Overview and ATMEGA328 specs.
│ │ ├─ Clocking — Choosing clock sources.
│ │ └─ Power Up — Minimum hardware requirements.
│ │
│ ├── [aKaReZa 22 - AVR, Programming]
│ │ ├─ Tools — TNM2000+, USBasp, MKII, VsCode Upload.
│ │ └─ Methods — ZIF socket and onboard programming.
│ │
│ └── [aKaReZa 12 - AVR, fuseBits]
│ ├─ Fuse Bytes — Extended, High, Low config.
│ ├─ Lock Bits — Prevention and bit calculation.
│ └─ Tools — Online calculator + sync troubleshooting.
│
├── GPIO (General Purpose Input Output)
│ ├── [aKaReZa 20 - AVR, GPIO - Part A]
│ │ ├─ Output — Register config + LED control.
│ │ ├─ Simulation — Proteus + VsCode + PlatformIO.
│ │ └─ Optimization — Macros and timing sync.
│ │
│ ├── [aKaReZa 23 - AVR, GPIO - Part B]
│ │ ├─ Input — Pin setup + internal Pull-Up.
│ │ ├─ Simulation — Input handling code.
│ │ └─ Logic — `if` statements and decision-making.
│ │
│ └── External Interrupts
│ └── [aKaReZa 55 - AVR, External Interrupts]
│ ├─ INT0/INT1 — Setup and configuration.
│ ├─ Pin Change — Monitoring and control.
│ ├─ Flags — Manual clearing and management.
│ └─ Code — Using `eInterrupt.h` + performance tips.
│
├── Display Interfaces
│ ├── 7-Segment Displays
│ │ ├── [aKaReZa 44 - AVR, 7Segment - Part A]
│ │ │ ├─ Basics — Driving common anode + 4-digit multiplexing.
│ │ │ └─ Optimization — Readability and maintainability.
│ │ │
│ │ ├── [aKaReZa 47 - AVR, 7Segment - Part B]
│ │ │ ├─ Control — Button interaction and counter logic.
│ │ │ └─ Efficiency — Digit splitting + macro usage.
│ │ │
│ │ └── [aKaReZa 53 - AVR, 7Segment - Part C]
│ │ ├─ Modularity — Functions, headers, code structure.
│ │ ├─ Refresh — Button-hold bug fix via software.
│ │ └─ Timing — 1-second counter implementation.
│ │
│ └── Alphanumeric LCD
│ ├── [aKaReZa 57 - AVR, Alphanumeric LCD]
│ │ ├─ Setup — LCD connection using AVR microcontrollers.
│ │ ├─ Library — alcd functions and text display.
│ │ ├─ Custom Characters — Including Farsi text creation.
│ │ └─ Display Tuning — Decimal display and contrast adjustment.
│ │
│ ├── [aKaReZa 127 - AVR, Alphanumeric LCD - PART B]
│ │ ├─ Overview — Structure and operation of character LCDs.
│ │ ├─ Project — Creating a new project for LCD initialization.
│ │ ├─ Init — Configuring the LCD using alcd_init().
│ │ ├─ Write — Sending data and commands with alcd_write().
│ │ ├─ Mode — Understanding and using the 8-bit mode.
│ │ ├─ Putc — Displaying single characters with alcd_putc().
│ │ ├─ Puts — Displaying strings with alcd_puts().
│ │ └─ Positioning — Using alcd_gotoxy() to place characters.
│ │
│ └── [aKaReZa 129 - AVR, Alphanumeric LCD - PART C]
│ ├─ Clear — Resetting the display with alcd_clear().
│ ├─ Cursor — Managing cursor visibility via alcd_cursor().
│ ├─ Display — Controlling screen visibility using alcd_display().
│ ├─ Backlight — Enabling/disabling with alcd_backlight().
│ ├─ Custom — Defining characters using alcd_customChar().
│ ├─ Mode — Configuring LCD in 4-bit mode.
│ └─ Optimization — Pin-saving and efficiency tips.
|
├── Timers
│ ├── [aKaReZa 59 - Accurate Time - Mode 1]
│ │ ├─ Modes — Normal vs CTC explained.
│ │ ├─ Interrupts — Overflow vs Compare Match usage.
│ │ ├─ Timing — Execution time, intervals, exact delays.
│ │ └─ Display — 7-segment output + digit splitting.
│ │
│ ├── [aKaReZa 105 - PWM - Mode 2]
│ │ ├─ Modes — Fast PWM vs Phase Correct + TOP options.
│ │ ├─ Signals — OCR update, waveform control.
│ │ ├─ Techniques — Dual Slope PWM + Dead Time logic.
│ │ └─ Applications — Motor control, power conversion, LEDs.
│ │
│ ├── [aKaReZa 122 - Millis - Mode 7]
│ │ ├─ Tasks — Defining multiple independent routines.
│ │ ├─ Function — Building a `millis()` timer in AVR.
│ │ ├─ Multitasking — Cooperative scheduling without RTOS.
│ │ ├─ Tips — Effective use of non-blocking delays.
│ │ └─ Structure — Internal logic and timing components.
│ │
│ ├── [aKaReZa 136 - AVR, Timer, Counter - Mode 3]
│ │ ├─ Concept — Frequency measurement principles.
│ │ ├─ Timer1 — Full review and counter‑mode config.
│ │ ├─ Project — Frequency measurement project setup.
│ │ ├─ Timer2 — Review and timer‑mode with external clock.
│ │ ├─ High Freq — Methods for measuring high frequencies.
│ │ ├─ Accuracy — Error calculation and hardware limits.
│ │ └─ Range — Maximum measurable frequency analysis.
│ │
│ └── [aKaReZa 138 - AVR, Timer, Capture - Mode 4]
│ ├─ Techniques — Measuring signal period with timers + EXTI.
│ ├─ Project — Creating a Capture‑mode measurement project.
│ ├─ Prescaler — Choosing the right prescaler for accuracy.
│ ├─ Calculations — Period, frequency, duty cycle formulas.
│ ├─ Capture Unit — Full review and advantages.
│ ├─ Events — Computing parameters from Capture events.
│ ├─ Error Case — Identifying and analyzing measurement errors.
│ ├─ Noise Canceller — Introduction and practical usage.
│ └─ Long Intervals — Techniques for measuring long periods.
|
├── Analog Peripherals
│ └── ADC (Analog-to-Digital Converter)
│ └── [aKaReZa 77 - Analog - ADC]
│ ├─ Structure — Block diagram + registers.
│ ├─ Functions — Configuration + raw value reading.
│ ├─ Measurement — Voltage, multi-channel, temperature sensors.
│ ├─ Internals — MCU’s temp sensor + noise canceller feature.
│ └─ Accuracy — Clean signal acquisition strategies.
│
├── Communication Protocols
│ ├── USART (Universal Synchronous/Asynchronous Receiver/Transmitter)
│ │ ├── [aKaReZa 66 - Part A]
│ │ │ ├─ Intro — Features, block diagram, BaudRate calc.
│ │ │ ├─ Registers — Access and control setup.
│ │ │ ├─ Data Tx — Characters, strings, escape sequences.
│ │ │ └─ Testing — Simulation vs real-world comparison.
│ │ │
│ │ ├── [aKaReZa 67 - Part B]
│ │ │ ├─ Data Rx — Receiving, interrupts, buffering.
│ │ │ ├─ Reliability — Baud errors, flags, circular buffer.
│ │ │ ├─ Debug — Plotting and signal validation.
│ │ │ └─ Logic — Frame structure + escape sequence control.
│ │ │
│ │ └── [aKaReZa 112 - Part C]
│ │ ├─ Challenge — Frame termination issues with CR/LF.
│ │ ├─ Solution — Idle Detection strategy.
│ │ ├─ Timer2 — Structure, registers, configuration.
│ │ ├─ Implementation — Detecting end of transmission.
│ │ └─ Testing — Timing analysis and validation.
│ |
│ └── I2C (Inter-Integrated Circuit)
│ └── [aKaReZa 114 - PART A]
│ ├─ Intro — Protocol overview and use cases.
│ ├─ Registers — Block diagram and bit-level control.
│ ├─ Safety — Atomic operations for reliable comms.
│ └─ Functions — Init, Start, Write, Read, Sequential ops.
│
├── Motors
│ └── [aKaReZa 108 - Servo Motor]
│ ├─ Timer0 — 50Hz PWM base signal generation.
│ ├─ Timer1 — Mode 14 (Fast PWM), Mode 10 (Phase Correct).
│ ├─ Precision — Servo angle control and fine-tuning.
│ └─ Comparison — Output signals and mode differences.
│
├── Memory
│ └── EEPROM
│ ├── [aKaReZa 131 - AVR, EEPROM - PART A]
│ │ ├─ Concept — AVR internal EEPROM structure and use cases.
│ │ ├─ Registers — EEAR, EEDR, EECR bit-by-bit review.
│ │ ├─ Functions — uint8_write(), uint16_write(), uint32_write().
│ │ ├─ Endianness — Storage order considerations.
│ │ ├─ Type Punning — Advantages and safe usage.
│ │ └─ Project — Building and testing EEPROM write routines.
│ │
│ └── [aKaReZa 134 - AVR, EEPROM - PART B]
│ ├─ Float — Implementing float_Write() for floating‑point storage.
│ ├─ Block — Writing arrays and strings with block_Write().
│ ├─ Read — Functions for reading multiple data types.
│ ├─ Update — Smart update functions to reduce wear and speed up execution.
│ ├─ Timing — Execution‑time analysis and Update vs Write comparison.
│ ├─ Signed — Write/Read/Update for signed data types.
│ └─ Format — Erasing the entire EEPROM memory.
└── Modules
└── GSM
├── [aKaReZa 113 - Quectel M66 - PART A]
│ ├─ Setup — New GSM project and module configuration.
│ ├─ AT Commands — Review and usage.
│ ├─ Functions — `M66_Init()`, `M66_SendSMS()`, `M66_SendAtCmd()`.
│ ├─ SMS — Sending messages to specified numbers.
│ └─ Debugging — Common issues and fixes.
│
├── [aKaReZa 116 - Quectel M66 - PART B]
│ ├─ Response — Parsing AT command replies.
│ ├─ Startup — `M66_startUp()` function design.
│ ├─ Timeout — Managing delays and avoiding lockups.
│ ├─ Errors — GSM-specific issues and fixes.
│ └─ Reliability — Clean code for stable communication.
│
└── [aKaReZa 117 - Quectel M66 - PART C]
├─ SMS Rx — Detecting incoming messages via +CMTI.
├─ Parsing — Using `sscanf()` and scansets for data extraction.
├─ Function — `M66_CheckSMS()` implementation.
├─ Execution — Testing on RCS-AVR board.
└─ Control — Relay activation based on SMS content.
If you found this repository useful:
- Subscribe to my YouTube Channel.
- Share this repository with others.
- Give this repository and my other repositories a star.
- Follow my GitHub account.
Feel free to reach out to me through any of the following platforms: