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 14, 2017 at 13:40

9600 baud is 9600 bits per second, and around 960 bytes per second.

For 16 Mbps (bits per second) consider Ethernet or Manchester protocol.

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 15:05

yes SPI is a very good high speed serial synchronous bus.. but it is not suitable for OFF the board communication purposes. I want achieve that bit rate between several board in a distance less than 10 meter.

Also I read some papers about using SPI in a long distance but I don't want go that way.

the issue here is, the ref manual says USART can be reach to 27Mbp if its clock be 216Mhz. but the peripherals connected to APB1 and APB2 buses with 108 and 54Mhz max speed! as you said, the maximum clock for USART will be 108M/8 = 13.5Mbps and not 27Mbps!!!?

Also If the USART support such Speed! is it practical to implement a asynchronous serial bus via this peripheral up to 16mbps speed?

Posted on May 14, 2017 at 15:23

As mentionned, it is pure signal integrity issue.

Single ended signals won't go 10 meters with high bit rate.

STM32F723 has USB HS interface which as device or host, maybe one solution (not checked the SW side) for 30 mmbps and beyond over 5 meters.

Posted on May 14, 2017 at 15:26

If I want to have under 2Mbps speed multidrop serial bus then I going to use CAN or If I want a serial bus under 8Mbps I will use CAN-FD. but here, I want an asynchronous multidrop serial bus with speed up to 16mbps

Posted on May 14, 2017 at 15:28

I will pass the USART output through a high speed RS485 transceiver to making it differential and suitable for long distance purpose 

Posted on May 14, 2017 at 16:05

https://www.digikey.com/products/en?keywords=LTC1518%20

 

When such external transceivers are possible, it is correct.

One question by curiosity:

It seems one lane has one fixed transmit point and can have multiple receivers.

Are all boards able to transmit? Do they share the same lane?

Thanks for this details.

Posted on May 14, 2017 at 16:12

Ok, so have at it, evaluate if your idea is viable, prototype a link. I think the USART is limited to 13.5 Mbps based on the expected APB performance.

The Ethernet peripheral can be used to have a point-to-point link, or point-to-multipoint, it doesn't have to use a hub/switch. You could create your own PHY, and use the packet management/buffering

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 16:37

High speed RS485 transceivers are available up to 52mbps with 1/1 Tx/Rx half and Full-duplex.  you think that the PROFIBUS-DP do its communication based on what!!! lol

Also there are standalone RS485 Drivers or Receivers up to 100Mbps.

I plane to implement a Full duplex serial link through a master/slave scheme so I will have a transmit lane that Master only talk on it and the other just listen and I will have a receive lane that every one can talk and master just listen.

Posted on May 14, 2017 at 16:46

Mentionning first PROFIBUS-DP to the max baudrate question would have made the answers more specific. Not everyone is Profibus verse, including myself.

I guess Clive already answered the original question about the max baud rate. Thanks Clive!

Posted on May 14, 2017 at 17:34

Digging in the spec, for STM32F7 the reference manual clock tree details shows:

0690X000006070lQAA.png

So it is possible to inject SYSCLK directly to USARTs. If SYSCLK is 216MHz and as Clive said to use /8 oversampling mode, 216/8=27MHz. (RX bit scan 8 times oversampled). For sure a precise external crystal (HSE => PLL => SYSCLK) will be required to make sure the clock tolerances don't cause high BERR.

0690X000006070qQAA.png

So it would be good to try it out with 2 Cube USART example on a Nucleo board and use an oscilloscope to confirm the bit rate between both Nucleo boards.