i am using a Nucleo 32 board with STM32L432KC chipset. I need to transfer data from a mems microphone over USB to the pc continuously. To do this i need a baud rate with at least 1.5Mbaud. The MCU is supporting baud rates up to 10Mbit, so it should be possible. On the pc side i am measuring the data rate. E. g. at 9200 Baud i get 920 Bytes per second (approx.) and this is true for higher baud rate till to some point where the number of bytes per sec. i receive is not increasing anymore.
42700 Bytes / sec. is the maximum i can reach. Why?
I used different cables, different USB ports, different Operating Systems and different software to measure the speed. Same result every time.
To communicate with the PC i have go talk with the onboard debugger chip that is connect via USB. I don't know what this chip is doing during communication and if it is the bottleneck.
Code is very simple:
uint8_t* text = (uint8_t*)"012345678\n"; //This can be much bigger
HAL_UART_Transmit(&huart2, text, strlen((char*)text), 0xffff);
Does anyone know what i am doing wrong?
Can someone maybe provide an example that is working with higher transfer rates?
Do i have to build my on circuit to get rid of path over the debugger chip?