This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

maximum baudrate nrf52 slower than BLE 5.0

Hi, we're starting to plan an update to BLE 5.0 (specifically the double bandwidth feature) on a product using the nRF521832 connected to an STM32. We were just testing increasing our internal communication speed, and realised the nRF52 is limiting us to "Up to 1 Mbps baudrate"

That's slower than the net OTA bandwidth of ~1.4Mbps!

Any chance we could double that? My suggestions would be:

  1. using 8x oversampling rather than 16x?
  2. utilising a faster clock (PCLK32M) when available?

Thanks!

PS: we'll be outputting the nordics clock on a GPIO to drive the clock input on the STM32, so clock drift between the two devices should not be an issue for us ;-)

  • good idea, but the PCBs are already done, the pins won't be usable for SPI on the STM...

  • Hi

    I can't think of any easy and reliable way to achieve serial communication higher than 1MBaud if you only have 2 GPIO's available.

    With 3 GPIO's you could do uni-directional SPI up to 4MHz at least (bi-directional if you have 4 GPIO's).

    Do you really need to transfer data continuously at a rate higher than 1Mbps?
    Keep in mind that 1.4Mbps is the absolute maximum bandwidth, and in practical use the actual bandwidth is likely to be lower than this. By optimizing the application for a lower bandwidth you will have some bandwidth left over for retransmission, making the link more reliable and the data rate more consistent.

    Best regards
    Torbjørn Øvrebekk

  • Hi, thanks for the reply.

    I did offer two suggestions for easy and reliable ways of doubling the maximum serial communication speed...

    well, why offer double bandwidth, if you suggest not to use it? ;-)

    Yes, we will need to use the maximum possible bandwidth continuously, such as transmitting a live video feed, as in this demo: devzone.nordicsemi.com/.../ only that the camera is attached to the STM. Of course, in less than ideal cases, we won't reach the maximum, but while we can, we'd like to make use of it!

    As I wrote in earlier comments, our PCBs are done and we only have UART and I2C connected between the two chips, so no chance to switch to SPI... and even if it were, that's not the question here ;-)

    We'll survive with 1M, but would still like to know if we can achieve 2M (or at least 1.4M)

  • Hi

    I did offer two suggestions for easy and reliable ways of doubling the maximum serial communication speed...
    Unless I misunderstand your suggestions they would both require us to make hardware changes to the chip, it's not something we can change in software. In other words I would disagree it's an easy thing to do ;)

    well, why offer double bandwidth, if you suggest not to use it? ;-)
    Touché ;)
    The high speed mode is just as much about reducing current consumption and coexistence issues, as it is about raw data rate.
    Phone manufacturers are quick to adopt high speed for this reason, but so far the only phone confirmed to support data rates above 1M is the Samsung Galaxy S8 (and it's variants). The iPhone tops out at around 670 kbps. If you have Nordic devices in both ends, then this is not an issue of course, but if you are planning to talk to a phone then I wouldn't expect to max out the bandwidth very often.

    If the CPU was doing nothing else you might have been able to bit bang the communication, but with a high speed BLE link in the background this won't be possible.

    Maybe you could feed the UART signal from the STM into the SPI slave interface, and fake the SPI clock and CSN signal locally on the nRF52832, but I really wouldn't recommend it unless you are willing to spend a lot of development time on it ;)

    Best regards Torbjørn

Related