Analog.com Analog Dialogue Wiki 简体中文
EngineerZone
EngineerZone
  • Log in
  • Site
  • Search
  • Log in
  • Home
  • Blogs ⌵
    • EngineerZone Spotlight
    • The Engineering Mind
    • Analog Garage
  • Browse ⌵
    • All Groups
    • All Members
  • Support ⌵
    • 3D ToF Depth Sensing
    • Amplifiers
    • Analog Microcontrollers
    • Audio
    • Clock and Timing
    • Data Converters
    • Design Tools and Calculators
    • Direct Digital Synthesis (DDS)
    • Embedded Vision Sensing
    • Energy Monitoring and Metering
    • FPGA Reference Designs
    • Industrial Ethernet
    • Interface and Isolation
    • Low Power RF Transceivers
    • MeasureWare
    • MEMS Inertial Sensors
    • Motor Control Hardware Platforms
    • Optical Sensing
    • Power By Linear
    • Processors and DSP
    • Reference Circuits
    • RF and Microwave
    • Switches/Multiplexers
    • Temperature Sensors
    • Video
    • Wireless Sensor Networks Reference Library
  • My EZ
  • More
  • Cancel
Ultra Low Power Microcontrollers
  • Analog Microcontrollers
  • More
Ultra Low Power Microcontrollers
Documents FAQ: "What is the highest UART baud rate that can be used while ensuring reliable communication?"
  • Q&A
  • Discussions
  • Documents
  • File Uploads
  • Video/Images
  • Tags
  • Reports
  • More
  • Cancel
  • New
Ultra Low Power Microcontrollers requires membership for participation - click to join
  • Documents
  • ADuCM4x50 INTRO Tile
  • Can I disable HFOSC ?
  • Can the part enter Hibernate/Shutdown with HFXTAL as root clock source?
  • FAQ: "How can I use the ITM (SWV) feature in ADuCM4050?"
  • FAQ: "How do I configure the SRAM memory in ADuCM302x or ADuCM4050?"
  • FAQ: "What is the highest UART baud rate that can be used while ensuring reliable communication?"
  • FAQ: "Where can I find documentation related to ADuCM302x or ADuCM4050 software drivers (DFP, BSP)?"
  • FAQ: "Why does my application run in DEBUG mode but not in RELEASE mode?"
  • Handling CRC in an IAR project for ADuCM302x
  • How to - ADuCM3029 with simple and free Open Source Tools?
  • How to Interface ADuCM3029 and ADuCM4050 with ICE-2000
  • How-To use EVAL-ADICUP3029 / EV-COG-AD3029 with emIDE
  • I could not find any register where RX FIFO Time out interrupt can be enabled?
  • Ultra Low Power Microcontrollers Space Description

FAQ: "What is the highest UART baud rate that can be used while ensuring reliable communication?"

In ADuCM302x and ADuCM4050, the UART baud rate is derived from the PCLK (Peripheral Clock) frequency as per the equation below.

The fractional baud rate generator as indicated by the equation above, provides the option to configure a precise baud rate. However, for a moment, let's consider a simplified equation, by bypassing the fractional baud rate generator.  

This equation gives us the UART symbol/baud rate. If you are looking for data throughput, this would depend on the number of data bits (between 5 and 8 bits), as well as number of parity bits and stop bits used. The range of resulting word size (data + parity + start and stop bits) would be between 7 and 12 bits. As an example, for baud rate of 1.5 Mbps, the throughput would be 150K words/second for a 10-bit word size comprising of 8 bits of data, 1 start bit and 1 stop bit with no parity.

 

For max PCLK frequencies of 26MHz (maximum PCLK frequency in case of ADuCM302x) and 52MHz (maximum PCLK frequency in case of ADuCM4050) and parameters OSR = 0 and DIV = 1, the simplified equation above actually translates to maximum UART baud rates of 6.5Mbps and 13Mbps for ADuCM302x and ADuCM4050 respectively. Now, it is important to note that these are the theoretical maximum baud rates. The practical UART baud rate that can be achieved in a system will depend on several factors, some of which are listed below for your consideration.

1. MCU Data handling capacity

This depends on how many DMA channels you might be using. Or if you are using the interrupt mode to transmit bursts of data, whether the MCU core can process the interrupts in time, to avoid missing data.

 

2. UART Receiver handling capacity

The baud rate you can use depends on the max baud rate that the UART receiver can support. For instance, if you use an FTDI chip based UART-to-USB adapter for logging UART data on a PC, then you would need to consider the maximum UART baud rate supported by the FTDI chip as well.

 

3. Error budget, Accuracy of Clock Source and Oversampling

  1. For a typical word size of 10 bits, the error budget in terms of accuracy of sampling UART data, is +/- 5%. This error budget is shared between the UART transmitter and receiver. Which means, that assuming equal accuracy on the two sides, the error budget is actually +/-2.5% on either side. In fact, keeping some margin, it might be better to shoot for +/-4% and as such the error budget would then be +/-2% on either side.
  2. There are two sources of error – the accuracy of the clock source, and the accuracy of derived baud rate from the frequency of the clock source (due to integer/fractional division used). For the first, we would look at the specification of the clock source (for example, external crystal or internal oscillator accuracy), while for the second, we would need to estimate the theoretical error (for reference, look at Table 17-1 in the UART chapter of the HRM). The main determinant of error would however usually still be the accuracy of the clock source. As an example, if the only source of error in system were to be the clock source, we would need one with an accuracy of better than +/-2% to work with fixed baud rates in a system where both UART Tx and Rx have the same accuracy.
  3. The error budget is also influenced by the oversampling ratio. Using a higher oversampling ratio is better for improved accuracy (whether you need it or not will depend on the available error budget and the accuracy of your clock source). A simplified equation for determining the (total, receiver + transmitter) error budget for 10 bit words without parity is:

, where ‘S’ is the oversampling ratio. See this academic paper for reference.

For example, when S = 4, the error budget would be ~2.85%. When S = 8, the error budget would be ~4.35%. This oversampling ratio will determine the value of the ‘OSR’ parameter you select. S = 2^(OSR + 2). Higher the OSR you need to set (depending on the error budget in your system, as determined mainly by clock source accuracy), lower the UART baud rate you might be able to use.

 

Note: some of the equations and calculations above might be approximations (for some example UART configurations) and are meant more to provide a feel for the variables involved.

  • uart
  • aducm302x
  • aducm4050
  • Share
  • History
  • More
  • Cancel
Comments
Anonymous
Related
 
Social
Quick Links
  • About ADI
  • Partners
  • Analog Dialogue
  • Careers
  • Contact us
  • Investor Relations
  • News Room
  • Quality & Reliability
  • Sales & Distribution
  • Analog Garage
Global
Please Select a Region
India
India
Korea
Korea
Singapore
Singapore
Taiwan
Taiwan
Language
Please Select a Language
English
English
简体中文
简体中文
日本語
日本語
Руccкий
Руccкий
Languages
  • English
  • 简体中文
  • 日本語
  • Руccкий
Newsletters

Interested in the latest news and articles about ADI products, design tools, training and events? Choose from one of our 12 newsletters that match your product area of interest, delivered monthly or quarterly to your inbox.

Sign Up
Switch to mobile view
Analog Logo
© 1995 - 2019 Analog Devices, Inc. All Rights Reserved 沪ICP备09046653号
  • ©
  • 1995 - 2019 Analog Devices, Inc. All Rights Reserved
  • 沪ICP备09046653号
  • Sitemap
  • Privacy & Security
  • Privacy Settings
  • Terms of use
EngineerZone Uses cookies to ensure you get the best experience in our community. For more information on cookies, please read our Privacy & Security Statement.