Here's some preliminary results for some serial send performance testing I've been doing with an Orone Mini F3 connected to a Mac OS X 10.8 laptop.
I can get about 50KB/s from a stock Maple Mini.
I can get about 300KB/s (about 2.4 Mbit/s) from an Orone Mini F3 using an FTDI FT232H board connected to Serial 1 (USART 1) using a Python program that uses the FTDI virtual com port drivers via PySerial. It's limited by Mac OS X kernel serial driver.
I can get about 447KB/s (almost 3.6 Mbit/s) from an Orone Mini F3 using an FTDI FT232H board on Serial 1, using a Python program that does not use the FTDI virtual com port drivers, but instead talks directly to the FTDI chip via the PyFTDI module.
I'll post detailed results and code tomorrow.
It seems like I should be able to get the F3's USARTs to do almost 9Mbit/s, as that is what the STM32F303 reference manual says the hardware supports. The FT232H can do up to 12Mbit/s.
But I run into problems if I set a baud rate on the Serial port that is higher than 4.5Mbit/s - the Orone Mini F3 hangs immediately. Does anyone know what might be wrong? I've looked at the usart.c file in the ibmaple/stm32f3/usart.c file - there's a max baud rate specified there, and I've changed that to
.max_baud = 9000000UL,
But that doesn't seem to stop the hangs.
Does anyone have ideas on how to get closer to the maximum baud rate? For my application, I need to get about 8Mbit/s.
Update: it looks like the F1 and F3 have different ways of setting the baud rate - since the F3's USARTs are much faster. Looks like I will need to set the OVER8 (oversampling bit) in the USART status register, and calculate the dividers differently. I will check that out tomorrow...