cancel
Showing results for 
Search instead for 
Did you mean: 

Some Issues about STM32F7's USART Peripheral

memet dolatshahi
Associate II
Posted on May 13, 2017 at 14:48

Hi

In the USART chapter of The STM32F7 ref. manual wrote that USART peripheral can reach up to 27Mbps buad rate. so I have some questions about that.

First, just the STM32F7's USART can reach to this maximum speed or eitherThe UART peripheral can also reach to thisdata rate?

Second, Ifonly the USART can reach to this Max Speed, 27Mbps will be obtain in Synchronous mode of USART through separate dedicated CLOCK line or it will be reachable in Asynchronous mode either by having only RX and TX and without needing a separated CLOCK line?

Third, If you look at block diagram of inside a STM32F7, you will find that USART1 and USART6 peripherals are connected to the APB2 bus that runs @ 108Mhz and USART2 and USART3 are connected to the APB1 bus that runs @ 54Mhz!

so according to different speed of these two bus! All the USART peripheral can reach to the max speed of 27Mbps or only those two USART connected to APB2 can reach to the maximum data rate?

Fourth, Is The Multiprocessor Communication mode supportedat any data rate speed?

I highly appreciated to your kindly replies :-}

Note: this post was migrated and contained many threaded conversations, some content may be missing.
25 REPLIES 25
Posted on May 13, 2017 at 18:49

My expectation is the max speed is APBx clock divided by 8 (OVER8). In realistic terms 27 Mbaud is impractical, beyond a couple of Mbaud synchronous methods should be seriously considered.

As far as I'm aware 9-bit mode is supported in sync and async modes, the USARTx->DR is a 16-bit register

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on May 13, 2017 at 19:51

Definitely some manual stupidity creeping in here the RM talks about a USART with a 216 MHz clock, but the APB1/2 are rated at 54 and 108 MHz per the DM.

The clocking methods need some explicit coverage in the peripheral sections of the manual. For maximal speeds the method to achieve those speeds should be described/diagrammed.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on May 13, 2017 at 20:38

I agreed, Often ST Documentations have confusing stuffs in technical details.

here, I did not finally get that USART has 27Mbaud or 27Mbits/sec rate speed?

If consider The 27Mbaud is the speed and each symbol has 8bit so we reach to 216Mbits/sec rate speed but APB buses have speed less than 108Mhz!!! so what is means!!!?

Dear Clive pls give me your opinion about this:

I want to implement a multidrop RS485 full duplex bus between several STM32F7 based on their USART in Asynchronous mode without using clock dedicated line.

Also I plan to transfer data between them at 10Mbps to 16Mbps. I want to use Multiprocessor communication mode. so considering 9bit data, the Baud rate will be less than 2MBaud.

so what do you think? STM32's USART is good for doing this purpose?

do you offer using Multiprocessor communication mode for this case or not? and why if your answer is no?

memet dolatshahi
Associate II
Posted on May 14, 2017 at 06:05

I agreed, Often ST Documentations have confusing stuffs in technical details.

here, I did not finally get that USART has 27Mbaud or 27Mbits/sec rate speed?

If consider The 27Mbaud is the speed and each symbol has 8bit so we reach to 216Mbits/sec rate speed but APB buses have speed less than 108Mhz!!! so what is means!!!?

Dear Clive pls give me your opinion about this:

I want to implement a multidrop RS485 full duplex bus between several STM32F7 based on their USART in Asynchronous mode without using clock dedicated line.

Also I plan to transfer data between them at 10Mbps to 16Mbps. I want to use Multiprocessor communication mode. so considering 9bit data, the Baud rate will be less than 2MBaud.

so what do you think? STM32's USART is good for doing this purpose?

do you offer using Multiprocessor communication mode for this case or not? and why if your answer is no?

Posted on May 14, 2017 at 06:31

I agreed, Often ST Documentations have confusing stuffs in technical details.

here, I did not finally get that USART has 27Mbaud or 27Mbits/sec rate speed?

If consider The 27Mbaud is the speed and each symbol has 8bit so we reach to 216Mbits/sec rate speed but APB buses have speed less than 108Mhz!!! so what is means!!!?

Dear Clive pls give me your opinion about this:

I want to implement a multidrop RS485 full duplex bus between several STM32F7 based on their USART in Asynchronous mode without using clock dedicated line.

Also I plan to transfer data between them at 10Mbps to 16Mbps. I want to use Multiprocessor communication mode. so considering 9bit data, the Baud rate will be less than 2MBaud.

so what do you think? STM32's USART is good for doing this purpose?

do you offer using Multiprocessor communication mode for this case or not? and why if your answer is no?

Posted on May 14, 2017 at 09:45

I don't work for ST. The baud is a bit rate, so unclear where the needing 2Mbps/Mbaud turns into 16Mbps.

Providing the transceivers and cabling permit 2Mbps might be achievable. Done similar things with 8-bit RS422 systems using SLIP.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on May 14, 2017 at 11:11

so it is better to ask this question:

This 27M speed is Baud Rate(Symbol rate) or bit rate?

u better know baud rate is greater than bit rate in order of x2 or x4 or x8 or... depend on number of bits per Symbol.

I want a serial Asynchronous link with speed up to 16mbps, 'bit rate'.

If I consider the multiprocessor communication mode for the USART, each symbol represents at least 9-bit so the reachable Baud Rate will be 2MBaud max. Is it correct?

memet dolatshahi
Associate II
Posted on May 14, 2017 at 14:38

Ethernet is not a real time, also using the Industrial Ethernet to achieve this aim adds cost.

What is your offer for implementing Manchester protocol? Implementing it in the embedded software and send it via USART or is there a transceiver or converter equipped by the Manchester protocol?

I can configure the USART to synchronous mode, Then pass through the data and clock via a high speed XOR gate and then send it to the bus by a high speed RS485 transceiver. the result is something like as Manchester coding... but in the receiver side, how can I recognize data from this stream?

S.Ma
Principal
Posted on May 14, 2017 at 14:46

The maximum bit rate as said by Clive will be the max USART ref clock divided by 8, assuming the HSE clock is very precise (tolerances) to make sure both ends works fine. Most WiFi modules offer UART with AT command set to exhange data, their max bit rate usually is in 1 or 2 mbps. Bluetooth max baud rate is around the same. Regarding multi-drop devices support through USART, there is LIN interface which maybe supported for 1..2 Mbps.

For very high bit rate with simple serial interface, SPI is the preffered choice. Many high speed standalone ADC/DAC support SPI-like interface with MPU or MCU with cascadable feature.