Skip to content
0:00 / 0:00

#uart#i2c#spi

Serial Communications Explained: UART, I2C, and SPI

Electronoobs

649K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 3 people: 3 in engineering communities.

Beginner. No background in the topic needed.

1.8M views7 years ago3 recommendations

HardwareSystems programmingEmbedded systemsNetworking and protocols

An animated explanation of how UART, I2C, and SPI serial communication protocols work with visual examples.

In this video I show you more or less how i2c, UART and SPI serial communications work with a few examples. More details for other protocols soon... Help my projects on Patreon : patreon.com/ELECTRONOOBS My Forum: electronoobs.com/forum Facebook page: facebook.com/Electronoobs Canal en Español: youtube.com/channel/UCL_QvUUeriC6q610RCXDlSQ ELECTRONOOBS.io sign up: electronoobs.io/ LINKS ------------------------------------- Serial communications details: electronoobs.com/eng_circuitos_tut36.php More info: totalphase.com/blog/2016/06/spi-vs-uart-similarities-differe… More info: maker.pro/arduino/tutorial/common-communication-peripherals-… #UART #i2c #SPI #tutorial #lesson #electronoobs #communication #jtag Master serial communication protocols by comparing I2C, SPI, and UART. Learn how to select the right interface for your next project. Understanding how serial communication works is essential for anyone building with microcontrollers or embedded systems. This guide breaks down the core differences between I2C, SPI, and UART, focusing on practical characteristics like wiring complexity, data transmission speed, and effective signal distance. We move beyond theory by using an oscilloscope to visualize the signals, showing you exactly what is happening on the line during data transfer. If you have struggled to choose between I2C vs SPI for a specific application, this video provides the technical clarity you need. You will learn the trade-offs of each protocol so you can confidently implement them in your designs. We cover the operational fundamentals of UART explained clearly, ensuring you understand the physical layer requirements for reliable communication in your circuits. Subscribe for weekly electronics engineering breakdowns, and comment below which communication protocol you want to see analyzed next.

Why it's here

3 people recommend this

What people say. Recommended as an excellent, highly visual introduction to common serial communication protocols.

u/vspqrin r/embedded • Recommends

On “Any good reference for how communication protocols on the physical layers should look like?”

Electronoobs has excellent videos, with animation, on serial protocols: [video

u/eccentric-OrangeEEE Student | Indiain r/embedded • Recommends

On “Way to convert CAN to UART?”

…possible - bit-level error handling: http://www.can-wiki.info/doku.php?id=can_faq:can_faq_erors - bit-timing: http://www.bittiming.can-wiki.info/ - FURTHER READING high-level error handling: https://www.csselectronics.com/pages/can-bus-errors-intro-tutorial - A good understanding of the CAN message frame will also help you Resources for UART: - link to this video - link to this video - https://www.analog.com/en/resources/analog-dialogue/articles/uart-a-hardware-communication-protocol.html With these basics down, track down Controllers Tech on YouTube or his website for more practical tutorials.…

u/PainterGuy1995in r/FPGA • Recommends

On “feeding the input signal on the rising edge though internally the input signal is asynchronous”

Thanks a lot for the detailed reply. I don't have any proper knowledge of the serial communication protocols but just watched two videos: 1. [video 2. [video # Point #1: Anyway, let me first clarify a point about the text from your post quoted below. >If x were an asynchronous input, for example a button press, or a UART Rx signal, AKA something that comes in unrelated to a clock, then it's async and you should synchronise it before using it: > >always\_ff @(posedge clk) x\_tmp <= x\_asyn; x\_sync <= x\_tmp; end always\_comb begin next\_state = f(x\_sync); ... I should have mentioned it earlier. I was thinking of a button press mechanism. Not sure if this protocol…

u/gdatain r/embedded • Mentions

On “Communication With Hardware From Software”

In its simplest form, the communication between software and hardware is done via registers programming. Every SoC (system-on-chip)/microcontroller has device register memory map, which basically an address range where software can write to and read from. You tell a device to do something by writing to its registers and inquiry its status by reading some of its registers. As far as communication between devices go, this is a pretty good overview of common protocol such as UART, SPI, I2C etc. There are a few embedded related topics on YouTube. Just search keywords: embedded development, firmware, device drivers, embedded Linux, RTOS etc. You can learn all this using Linux, but Linux add l…