๐ **Synchronization** is a fundamental concept that ensures that the processor, peripherals, timers, and interrupts operate in a consistent and accurate manner based on a common clock source. <!-- mo...
Read more
#basic
17 posts
๐ **Clock is the basis for timers and interrupts** The clock system sets the pace of all digital components of the microcontroller. Timers use its signals to generate interrupts and perform tasks with...
Read more
๐ Timers are hardware modules of the microcontroller for actions with time counting and event generation **without the participation of the main code**. The accuracy of the timer and its maximum ti...
Read more
๐ How to handle pulse width modulation --- **PWM (pulse width modulation)** is used to control the power supplied to the load. ๐ธ **Classic method** - reducing the voltage through a rh...
Read more
๐ A must-have template for creating a Rust project for microcontrollers. --- table { width: 100%; border-collapse: collapse; margin-bottom: 20px; } th, td {...
Read more
Microcontroller peripherals are functional blocks integrated into the chip that enable it to interact with the outside world or carry out specific tasks โ often without involving the processor core....
Read more
A `processor register` is a quickly accessible location available to a computer's processor. Registers usually consist of a small amount of fast storage, although some registers have specific hardware...
Read more
**MMIO (Memory-Mapped I/O)** is a way for the central processing unit (CPU) to interact with peripheral hardware devices (e.g. `UART`, `timers`, `GPIO`, `SPI`, etc.) by "sticking" the registers of the...
Read more
๐ Data Transmission Between CPU and Peripheral Devices via I/O Methods table { width: 100%; border-collapse: collapse; margin-bottom: 20px; } th, td {...
Read more
Classic software development is always inside the cycle of write - run - check - fix. In classic systems, debugging is simplified by built-in logs, breakpoints and step-by-step code execution direct...
Read more
A technical introduction to the **UART** - low-speed two-wire asynchronous multi-duplex serial protocol. **UART** The earliest serial protocol. Still commonly used in modern electronics. {{ img(src...
Read more
A technical introduction to the **SPI** - low-speed four-wire master-slave full-duplex serial protocol. **SPI** is widely used as a faster alternative to UART/I2C for transferring data between an in...
Read more
A technical introduction to the **I2C** - low-speed two-wire master-slave serial protocol. **I2C** is widely used for short-distance data transmission over a data bus (`SDA`) with a clock synchroniz...
Read more
Digital systems are based on the concept of **bits**, in addition to using bits they often have to transfer them back and forth usually between two components (MCU and Sensor, LCD etc). ๐ All the di...
Read more
๐ What is a general purpose input output (GPIO) of the MCU --- ### GPIO GPIO stands for general purpose input/output. It is a type of pin found on an integrated circuit that does not...
Read more
Rust's approach to memory management is both powerful and complex. ๐ In this article, I want to take a deep dive into how Rust handles memory for the type system under the hood, and try to answer qu...
Read more
The Rust toolchain is a collection of tools and components that streamline the development, building, and maintenance of Rust projects. ๐ In this article, weโll explore how to use rustup to manage R...
Read more