Have you ever used the term UART only to be corrected by another engineer that it is not a UART but a USART? In some cases the two terms are interchangeable, but in many others it is incorrect to use them interchangeably. Let's take a look at what exactly USART and UART are, and what are the main differences between them.
Most embedded engineers are familiar with the UART interface: universal asynchronous receiver / transmitter. It is a microcontroller peripheral that converts incoming and outgoing data bytes to a serial stream. A start bit starts a serial stream and a stop bit or two ends a data word (frame). The UART also has the ability to add a parity bit to the frame to help detect if an error has occurred during transmission. Picture 1 shows a standard example of a frame that can be seen by viewing data transmitted over the UART.
USART, on the other hand, is a universal synchronous / asynchronous receiver / transmitter. It is a microcontroller peripheral that converts incoming and outgoing data bytes into a serial bitstream ... The definition of USART is identical to the definition of UART, but in short there is an additional word - "synchronous". So there must be some differences, otherwise USART would be the same as UART and no one would have to correct anyone.
Indeed, the differences are, and it is important. Let's look at them one by one.
The first difference between USART and UART is how serial data can be clocked. The UART generates its own data clock internally in the microcontroller and synchronizes it with the data stream detecting the initial transition - the start bit. There is no incoming data related clock signal here, so in order to properly receive a data stream the receiver needs to know in advance what the baud rate should be.
On the other hand, USART can be configured to work in synchronous mode. In this mode, the peripheral device sends the clock signal to the outside, and the receiving peripheral device can retrieve it from the data stream without knowing the data rate in advance. Alternatively, some links may even use a separate clock line to clock the entire transmission. The use of an external clock allows for a much higher data transmission speed using the USART interface than the standard UART - this type of transmission reaches speeds of up to 4 Mbps.
The second important difference between USART and UART interfaces is the number of protocols supported by a peripheral device. UART is simple and offers only a few options for the basic data format. You can configure the number of stop bits and the occurrence and method of computing the parity bit of the frame. USART is much more complex and can generate data in a form suitable for many different protocols such as IrDA, LIN, Smart Card and Driver Enable for interfaces such as RS-485 and Modbus. This list, of course, does not exhaust the full capabilities of the USART interface. Additionally, it also has the same capabilities for realizing asynchronous transmission as UART, i.e.USART can generate the same type of serial data as shown in Figure 1 .
USART and UART peripherals have definitely different possibilities and can be used in different situations, so in typical microcontrollers both of these interfaces are present so that the developer, when creating his system, can choose the one that best suits a given task. Take, for example, a system whose purpose is to run on low power. The device is to be based on the STM32 family. STM32 microcontrollers contain both USART and UART. USART is designed to implement serial communication with high requirements, especially since it consumes more energy. It can be activated when it is necessary to transfer large amounts of data or to run a complex protocol. On the other hand, when the microcontroller is asleep - in a low-power mode - the UART peripheral can handle low-speed communication while offering lower power consumption by the system.
So are USART and UART the same? Technically, the answer is: not . USART generally has more capabilities than a standard UART module, as well as the ability to generate clocked data, allowing USART to run at speeds well in excess of UART's capabilities. USART covers the capabilities of the UART, however, in many applications, despite the high parameters of the USART module, programmers use them as simple UARTs, ignoring or avoiding synchronous clock generation in these powerful peripherals. No wonder so many people use these terms as if they were synonyms ...
Source: https://www.edn.com/electronics-blogs/embedde...cs/4440395/USART-vs-UART--Know-the-difference
Most embedded engineers are familiar with the UART interface: universal asynchronous receiver / transmitter. It is a microcontroller peripheral that converts incoming and outgoing data bytes to a serial stream. A start bit starts a serial stream and a stop bit or two ends a data word (frame). The UART also has the ability to add a parity bit to the frame to help detect if an error has occurred during transmission. Picture 1 shows a standard example of a frame that can be seen by viewing data transmitted over the UART.
USART, on the other hand, is a universal synchronous / asynchronous receiver / transmitter. It is a microcontroller peripheral that converts incoming and outgoing data bytes into a serial bitstream ... The definition of USART is identical to the definition of UART, but in short there is an additional word - "synchronous". So there must be some differences, otherwise USART would be the same as UART and no one would have to correct anyone.
Indeed, the differences are, and it is important. Let's look at them one by one.
The first difference between USART and UART is how serial data can be clocked. The UART generates its own data clock internally in the microcontroller and synchronizes it with the data stream detecting the initial transition - the start bit. There is no incoming data related clock signal here, so in order to properly receive a data stream the receiver needs to know in advance what the baud rate should be.
On the other hand, USART can be configured to work in synchronous mode. In this mode, the peripheral device sends the clock signal to the outside, and the receiving peripheral device can retrieve it from the data stream without knowing the data rate in advance. Alternatively, some links may even use a separate clock line to clock the entire transmission. The use of an external clock allows for a much higher data transmission speed using the USART interface than the standard UART - this type of transmission reaches speeds of up to 4 Mbps.
The second important difference between USART and UART interfaces is the number of protocols supported by a peripheral device. UART is simple and offers only a few options for the basic data format. You can configure the number of stop bits and the occurrence and method of computing the parity bit of the frame. USART is much more complex and can generate data in a form suitable for many different protocols such as IrDA, LIN, Smart Card and Driver Enable for interfaces such as RS-485 and Modbus. This list, of course, does not exhaust the full capabilities of the USART interface. Additionally, it also has the same capabilities for realizing asynchronous transmission as UART, i.e.USART can generate the same type of serial data as shown in Figure 1 .
USART and UART peripherals have definitely different possibilities and can be used in different situations, so in typical microcontrollers both of these interfaces are present so that the developer, when creating his system, can choose the one that best suits a given task. Take, for example, a system whose purpose is to run on low power. The device is to be based on the STM32 family. STM32 microcontrollers contain both USART and UART. USART is designed to implement serial communication with high requirements, especially since it consumes more energy. It can be activated when it is necessary to transfer large amounts of data or to run a complex protocol. On the other hand, when the microcontroller is asleep - in a low-power mode - the UART peripheral can handle low-speed communication while offering lower power consumption by the system.
So are USART and UART the same? Technically, the answer is: not . USART generally has more capabilities than a standard UART module, as well as the ability to generate clocked data, allowing USART to run at speeds well in excess of UART's capabilities. USART covers the capabilities of the UART, however, in many applications, despite the high parameters of the USART module, programmers use them as simple UARTs, ignoring or avoiding synchronous clock generation in these powerful peripherals. No wonder so many people use these terms as if they were synonyms ...
Source: https://www.edn.com/electronics-blogs/embedde...cs/4440395/USART-vs-UART--Know-the-difference
Cool? Ranking DIY