By the way i am trying this on the CY8CKIT-042-BLE-A pioneer kit.
The mounted module is BL538.
I tested all speeds from 9600 -> 115200 using continuously hammering the controller with 1 byte packets over and over from another PC over BLE.
38400: BAD. After a while a bad byte pops up over the UART.
I have not scoped this, so i do not know if it is the module or the pioneer board that is failing.
However, probably someone from Cypress should look at this, as the current stability is not really usable.
I am by the way using the latest PSOC creator and the latest DTM example.
I tried rebuilding the project from scratch with the other module (CYBL11573-56LQXI).
Same result. Everything above 14400 produces garbage after a while.
I tried using an external UART <-> USB. Same problem.
I scoped the lines. Definitely coming from the module. Not noise.
So i guess this is a bug in the DTM firmware which is completely closed source.
Any fix for this from Cypress?
Aha! I figured it out.
It is not broken, but a bit lacking on the documentation.
The 9600 -> 115200 is actually working if you configure the RTS/CTS correctly!
To get higher speeds to work you have to cheat! When setting the UART to e.g. 460800 you really have set set it to 500000.
This is probably because their favorite frequency is 24Mhz.
This is done in the example automatically if you try to set it to 460800 as the nearest sampling frequency is stated as 8Mh in the DTM example.
With the OVS needed, This gives exactly 500000, as 8000000/16 = 5000000
The UART/USB converter in the Pioneer kit knows this and compensates. So one side will be running 500000, and the other will be running the correct 460800 (towards the PC).
Only catch left is that that if you cannot keep up speed-wise on the PC, you are going to loose packets no matter what.