<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rs-485.com/index.php?action=history&amp;feed=atom&amp;title=UART</id>
	<title>UART - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rs-485.com/index.php?action=history&amp;feed=atom&amp;title=UART"/>
	<link rel="alternate" type="text/html" href="https://rs-485.com/index.php?title=UART&amp;action=history"/>
	<updated>2026-05-01T12:16:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://rs-485.com/index.php?title=UART&amp;diff=25&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= UART (Universal Asynchronous Receiver-Transmitter) =  == Introduction == &#039;&#039;&#039;UART&#039;&#039;&#039; (Universal Asynchronous Receiver-Transmitter) is a hardware communication module used for asynchronous serial communication between devices. It is one of the simplest and most widely used serial interfaces in embedded systems, microcontrollers, and communication modules.  UART defines only the data framing and timing at the logic level and requires a separate physical layer such as TTL-...&quot;</title>
		<link rel="alternate" type="text/html" href="https://rs-485.com/index.php?title=UART&amp;diff=25&amp;oldid=prev"/>
		<updated>2026-04-30T21:14:40Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= UART (Universal Asynchronous Receiver-Transmitter) =  == Introduction == &amp;#039;&amp;#039;&amp;#039;UART&amp;#039;&amp;#039;&amp;#039; (Universal Asynchronous Receiver-Transmitter) is a hardware communication module used for asynchronous serial communication between devices. It is one of the simplest and most widely used serial interfaces in embedded systems, microcontrollers, and communication modules.  UART defines only the data framing and timing at the logic level and requires a separate physical layer such as TTL-...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= UART (Universal Asynchronous Receiver-Transmitter) =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;UART&amp;#039;&amp;#039;&amp;#039; (Universal Asynchronous Receiver-Transmitter) is a hardware communication module used for asynchronous serial communication between devices. It is one of the simplest and most widely used serial interfaces in embedded systems, microcontrollers, and communication modules.&lt;br /&gt;
&lt;br /&gt;
UART defines only the data framing and timing at the logic level and requires a separate physical layer such as TTL-level signaling, RS-232, or RS-485.&lt;br /&gt;
&lt;br /&gt;
== Core Principle ==&lt;br /&gt;
UART transmits data serially (bit by bit) without a shared clock signal between devices. Instead, both devices agree on a fixed baud rate.&lt;br /&gt;
&lt;br /&gt;
Each data frame is synchronized using:&lt;br /&gt;
* Start bit (synchronization)&lt;br /&gt;
* Data bits (payload)&lt;br /&gt;
* Optional parity bit (error detection)&lt;br /&gt;
* Stop bit(s) (frame end)&lt;br /&gt;
&lt;br /&gt;
== UART Frame Structure ==&lt;br /&gt;
&lt;br /&gt;
A standard UART frame consists of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| Start | Data Bits | Parity (optional) | Stop Bits |&lt;br /&gt;
|   0   | 7–9 bits  | 0 or 1 bit        | 1–2 bits  |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Start Bit&lt;br /&gt;
: Always logic 0. Signals the beginning of transmission.&lt;br /&gt;
&lt;br /&gt;
; Data Bits&lt;br /&gt;
: Typically 7, 8, or 9 bits. Most common is 8-bit data.&lt;br /&gt;
&lt;br /&gt;
; Parity Bit (Optional)&lt;br /&gt;
: Used for simple error detection:&lt;br /&gt;
* Even parity&lt;br /&gt;
* Odd parity&lt;br /&gt;
* None&lt;br /&gt;
&lt;br /&gt;
; Stop Bits&lt;br /&gt;
: Logic 1 state used to mark end of frame (1, 1.5, or 2 bits)&lt;br /&gt;
&lt;br /&gt;
== Baud Rate ==&lt;br /&gt;
&lt;br /&gt;
UART communication depends on a pre-agreed baud rate.&lt;br /&gt;
&lt;br /&gt;
:contentReference[oaicite:0]{index=0}&lt;br /&gt;
&lt;br /&gt;
Common baud rates:&lt;br /&gt;
* 9600&lt;br /&gt;
* 19200&lt;br /&gt;
* 38400&lt;br /&gt;
* 57600&lt;br /&gt;
* 115200&lt;br /&gt;
* 921600 (high-speed UART)&lt;br /&gt;
&lt;br /&gt;
Timing accuracy is critical:&lt;br /&gt;
* Typical tolerance: ±2% to ±5%&lt;br /&gt;
&lt;br /&gt;
== UART vs Serial Communication ==&lt;br /&gt;
UART is a specific implementation of asynchronous serial communication.&lt;br /&gt;
&lt;br /&gt;
* Serial communication = general concept&lt;br /&gt;
* UART = hardware implementation of asynchronous serial&lt;br /&gt;
&lt;br /&gt;
UART is often used as:&lt;br /&gt;
* Data link layer inside microcontrollers&lt;br /&gt;
* Interface to physical standards (RS-232, RS-485 via transceivers)&lt;br /&gt;
&lt;br /&gt;
== Electrical Levels ==&lt;br /&gt;
&lt;br /&gt;
UART itself does NOT define electrical voltage levels.&lt;br /&gt;
&lt;br /&gt;
It can operate on different physical layers:&lt;br /&gt;
&lt;br /&gt;
; TTL UART&lt;br /&gt;
* Logic levels: 0 V (LOW), 3.3 V or 5 V (HIGH)&lt;br /&gt;
* Used inside microcontrollers&lt;br /&gt;
&lt;br /&gt;
; RS-232 UART&lt;br /&gt;
* Uses ± voltage levels (inverted logic)&lt;br /&gt;
* Requires level shifting (e.g., MAX232)&lt;br /&gt;
&lt;br /&gt;
; RS-485 UART&lt;br /&gt;
* Uses differential signaling (A/B lines)&lt;br /&gt;
* Requires transceiver (e.g., MAX485)&lt;br /&gt;
&lt;br /&gt;
== Signal Lines ==&lt;br /&gt;
&lt;br /&gt;
Minimal UART connection:&lt;br /&gt;
&lt;br /&gt;
* TX (Transmit)&lt;br /&gt;
* RX (Receive)&lt;br /&gt;
* GND (Ground)&lt;br /&gt;
&lt;br /&gt;
Cross-connection:&lt;br /&gt;
* TX → RX&lt;br /&gt;
* RX → TX&lt;br /&gt;
&lt;br /&gt;
Optional:&lt;br /&gt;
* RTS / CTS (hardware flow control)&lt;br /&gt;
&lt;br /&gt;
== Full-Duplex Operation ==&lt;br /&gt;
UART supports full-duplex communication:&lt;br /&gt;
&lt;br /&gt;
* TX and RX operate independently&lt;br /&gt;
* Data can be sent and received simultaneously&lt;br /&gt;
&lt;br /&gt;
== Flow Control ==&lt;br /&gt;
&lt;br /&gt;
To prevent buffer overflow, UART may use flow control:&lt;br /&gt;
&lt;br /&gt;
; Hardware Flow Control&lt;br /&gt;
* RTS (Request To Send)&lt;br /&gt;
* CTS (Clear To Send)&lt;br /&gt;
&lt;br /&gt;
; Software Flow Control&lt;br /&gt;
* XON / XOFF characters&lt;br /&gt;
&lt;br /&gt;
== Timing and Sampling ==&lt;br /&gt;
Since there is no clock line, timing is critical:&lt;br /&gt;
&lt;br /&gt;
* Receiver detects start bit edge&lt;br /&gt;
* Samples data bits at center of bit period&lt;br /&gt;
* Uses baud rate to estimate timing&lt;br /&gt;
&lt;br /&gt;
Clock drift between devices can cause:&lt;br /&gt;
* Framing errors&lt;br /&gt;
* Bit misalignment&lt;br /&gt;
&lt;br /&gt;
== Error Detection ==&lt;br /&gt;
&lt;br /&gt;
UART provides limited error detection:&lt;br /&gt;
&lt;br /&gt;
* Parity bit (optional)&lt;br /&gt;
* Framing error (invalid stop bit)&lt;br /&gt;
* Overrun error (buffer overflow)&lt;br /&gt;
&lt;br /&gt;
UART does NOT provide:&lt;br /&gt;
* Retransmission&lt;br /&gt;
* Acknowledgement&lt;br /&gt;
* Strong error correction&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
* Baud rate mismatch&lt;br /&gt;
* Incorrect parity settings&lt;br /&gt;
* Reversed TX/RX wiring&lt;br /&gt;
* Missing ground reference&lt;br /&gt;
* Noise on long cables&lt;br /&gt;
* Wrong stop bit configuration&lt;br /&gt;
&lt;br /&gt;
== Physical Layer Relationship ==&lt;br /&gt;
UART is NOT a physical standard. It requires external interfaces:&lt;br /&gt;
&lt;br /&gt;
* TTL UART → microcontroller pins&lt;br /&gt;
* RS-232 → PC serial ports (legacy)&lt;br /&gt;
* RS-485 → industrial networks&lt;br /&gt;
* RS-422 → long-distance links&lt;br /&gt;
&lt;br /&gt;
UART defines only:&lt;br /&gt;
* Frame structure&lt;br /&gt;
* Timing&lt;br /&gt;
* Bit-level protocol&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
UART is widely used in:&lt;br /&gt;
&lt;br /&gt;
* Microcontroller debugging (serial console)&lt;br /&gt;
* GPS modules&lt;br /&gt;
* Bluetooth modules (HC-05, HC-06)&lt;br /&gt;
* Wi-Fi modules (ESP8266/ESP32 AT commands)&lt;br /&gt;
* Industrial sensors&lt;br /&gt;
* Embedded device communication&lt;br /&gt;
* Bootloaders and firmware flashing&lt;br /&gt;
&lt;br /&gt;
== Advantages ==&lt;br /&gt;
* Extremely simple hardware implementation&lt;br /&gt;
* Low resource usage&lt;br /&gt;
* Wide compatibility&lt;br /&gt;
* Flexible baud rate configuration&lt;br /&gt;
* Easy debugging and testing&lt;br /&gt;
* Works with multiple physical layers&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* No built-in addressing&lt;br /&gt;
* No robust error correction&lt;br /&gt;
* Sensitive to timing mismatch&lt;br /&gt;
* Limited distance (depends on physical layer)&lt;br /&gt;
* No native multi-device bus support&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips ==&lt;br /&gt;
* Verify TX/RX crossover&lt;br /&gt;
* Check baud rate and frame settings&lt;br /&gt;
* Ensure shared ground reference&lt;br /&gt;
* Use logic analyzer for signal inspection&lt;br /&gt;
* Test loopback mode (TX → RX shorted)&lt;br /&gt;
* Reduce baud rate for stability testing&lt;br /&gt;
* Check for noise on long cables&lt;br /&gt;
&lt;br /&gt;
== Typical UART Waveform ==&lt;br /&gt;
A UART frame appears as:&lt;br /&gt;
&lt;br /&gt;
* Idle state: HIGH (logic 1)&lt;br /&gt;
* Start bit: LOW&lt;br /&gt;
* Data bits: sequential LSB first&lt;br /&gt;
* Stop bit: HIGH&lt;br /&gt;
&lt;br /&gt;
== Relationship to Other Standards ==&lt;br /&gt;
UART is commonly used with:&lt;br /&gt;
&lt;br /&gt;
* [[RS-232]] (PC serial ports)&lt;br /&gt;
* [[RS-485]] (industrial multi-drop networks)&lt;br /&gt;
* [[RS-422]] (long-distance point-to-multipoint)&lt;br /&gt;
* [[Modbus]] (protocol over UART/RS-485)&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
UART is one of the most fundamental building blocks of digital communication systems. While simple in design, it forms the foundation for many industrial and embedded communication protocols when combined with appropriate physical layers such as RS-232 or RS-485.&lt;br /&gt;
&lt;br /&gt;
Understanding UART is essential for working with microcontrollers, embedded systems, and serial communication in general.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Serial communication]]&lt;br /&gt;
* [[RS-232]]&lt;br /&gt;
* [[RS-422]]&lt;br /&gt;
* [[RS-485]]&lt;br /&gt;
* [[Modbus]]&lt;br /&gt;
* [[Differential signaling]]&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* Microcontroller UART datasheets (STM32, AVR, ESP32)&lt;br /&gt;
* Texas Instruments UART application notes&lt;br /&gt;
* ARM Cortex-M serial communication documentation&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>