Common Buses: IIC, IIS, SPI, UART, JTAG, CAN, SDIO, GPIO

Common Buses: IIC, IIS, SPI, UART, JTAG, CAN, SDIO, GPIO

IIC IIC (Inter-Integrated Circuit) bus is a two-wire serial bus developed by PHILIPS for connecting microcontrollers and their peripheral devices. The I2C bus transmits information between the bus and devices using two lines (SDA and SCL), enabling serial communication between the microcontroller and external devices or bidirectional data transfer between the master and slave devices. … Read more

Understanding SPI, I2C, UART, I2S, GPIO, SDIO, and CAN

Understanding SPI, I2C, UART, I2S, GPIO, SDIO, and CAN

Buses, buses, they always trap you inside. All the signals in the world are the same, but there are thousands of buses, which can be quite a headache. In general, there are three types of buses: internal buses, system buses, and external buses. The internal bus is used for interconnecting peripheral chips and the processor … Read more

Embedded Hardware Communication Interface Protocol – SPI (III) Analog Interface Application

Embedded Hardware Communication Interface Protocol - SPI (III) Analog Interface Application

Simply completing the simulation SPI implementation for various interfaces is obviously not enough just by capturing the signal timing with an oscilloscope. Although the signal output by the microcontroller as the SPI master is easy to capture, the data sent by the slave (i.e., the timing of the master reading the MISO signal) requires finding … Read more

Using Logic Analyzer to View Software Simulated I2C Timing

Using Logic Analyzer to View Software Simulated I2C Timing

Click here to download the materials (3rd update) We are giving away materials, copy and reply with the following keyword to receive them Material Collection About Today’s Post IIC stands for Inter-Integrated Circuit, a simple, bidirectional, two-wire, synchronous serial bus designed by Philips Semiconductor in the early 1980s. Microcontrollers generally have hardware I2C, so why … Read more

Controlling JTAG with Raspberry Pi for Hardware Learning

Controlling JTAG with Raspberry Pi for Hardware Learning

Author: Hcamael@Zhidao Chuangyu 404 Laboratory Date: October 21, 2019 Recently, while working on a router, I accidentally bricked the CFE and discovered that I could recover it through JTAG, so I did some research on JTAG. Initially, I only wanted to recover the brick, without any intention of deep research. Brick Recovery Attempt A Singapore … Read more

C++ Embedded Programming Idioms: MMIO Modeling

C++ Embedded Programming Idioms: MMIO Modeling

Click the Blue Word Follow Us This article is excerpted from the live recording of Senior Software Architect Yang Wenbo’s “Walking with Masters: Entering Scott Meyers’ C++ World”. 01 Introduction In pure software programming practice, the first example learned in many languages is the Hello World printing program. In embedded development, the Hello World is … Read more

Using I2C to Drive PCA9555 Expansion Chip

Using I2C to Drive PCA9555 Expansion Chip

To further study Linux I2C, after the previous I2C driver for BL24C04, I have prepared the PCA9555/TCA9555 expansion GPIO chip. Its specific function is to extend 16 GPIOs via the I2C bus and it has input interrupt capabilities. 1. Add PCA9555 Device Tree Node According to the PCA9555 circuit diagram above, the 7-bit I2C address … Read more

Understanding SPI, I2C, UART, I2S, GPIO, SDIO, and CAN

Understanding SPI, I2C, UART, I2S, GPIO, SDIO, and CAN

Bus Buses are everywhere. Signals in this world are the same, but there are thousands of buses, which can be quite confusing. In general, there are three types of buses: internal buses, system buses, and external buses. Internal buses connect various peripheral chips with the processor within a microcomputer; system buses connect plug-in boards with … Read more

Embedded Linux Driver Development: LED Control

Embedded Linux Driver Development: LED Control

Abstract: Yesterday, I introduced the method of lighting up an LED using bare metal programming. Today, we will light up an LED using driver development to see the differences between the two methods. 1. Let’s Look at the Schematic First, let’s check the schematic to see which IO port the LED on our board is … Read more

Embedded Linux Driver Development: LED Control

Embedded Linux Driver Development: LED Control

Abstract: Previously, we introduced the method of lighting up an LED using bare metal. Today, we will light up an LED using driver development and compare the two methods. 1. First, Let’s Look at the Schematic First, check the schematic to see which IO port the LED on our board is connected to. From the … Read more