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

Problem with Enhanced Shockburst on NRF52832

Good Day,

we are currently working on a project for university. For this project, we are using esb to transmit a continuous audio stream (i2s format). We sample our data at 44100 Hz. Before sending we compress the data so that the padding bytes of the i2s stream. During every transmission 45 samples are sent, speaking of 135 byte payload. So every ~1,02ms a packet is sent.

We tested everything with two nrf52 DKs and it seemed to work fine. Now that we have assembled our PCBs we encountered another problem. Every once in a while a transmission fails. This causes unsynchronized data supply and therefore a sound output that does not sound well. The amount of failures increases by the distance between the PCB and the modules (stream is almost impossible when they are 1 m away from each other). We already tried to increase the antenna output power, without any success.

The third-party module we used on our PCB: MS50SFB with ceramic antenna

Current test setup: our selfmade PCB and a nrf52 DK

A picture of our design:

I have several suggestions now:

  • Did we misplace the module? Does the surrounding ground plane cause this issue?
  • Is ESB not suitable for a continuous stream?
  • Right underneath the antenna, the battery is placed. can this also cause the problem? We already tried removing the battery but it did not change anything, so this does not seem to be the major issue.

Thank you in advance!

  • Have you followed the module manufacturers guidelines to placement and handling? 

    Is there any difference in range if you do simple back and forth data using fixed payloads (without I2S)? Just trying to figure out of it may be digital noise from the I2S that affect the range here or not.

    Best regards,
    Kenneth

  • Thank you for the quick reply!
    Yes, I have followed the instructions and added some extra space. It was stated as "acceptable".
    I have disabled i2s now and I am sending a static buffer with the same size and the same interval and indeed the problem seems to appear less frequently. Also, the range has increased.

    Is this really caused by the i2s noise? I am calling the esb send function during the i2s callback when a buffer is received. Can this be the issue? I have tried enabling the i2s peripheral and sending the data statically with the same effect as mentioned before.

  • It's very likely digital noise from I2S yes, can you for instance try to highlight the traces in your picture the I2S pins? Which pins do you use for I2S?

    Kenneth

  • I have run a few tests now. One with a timer that triggers (i2s was disabled) in the same interval as if the i2s buffers are filled. The problem remains the same it only works when the modules are very close to each other.
    Could the continuous stream and the throughput be the problem? Every ~1020 ms a total of 135 bytes of payload are sent. 

    So i2s does not seem to affect the transmission. Nevertheless I have outlined the traces below:

    Thanks in advance

    Sebastian

  • It is very likely some kind of noise, on either supply or digital pins (VDD, GND, SWD, serial interfaces) that affect transmission or reception. Alternatively the antenna is de-tuned due to the way it is located. I recommend to for instance measure on an oscilloscope to see if you can see any noise, you may also try to add some decoupling close to the module. You may need make a new case to let someone with hardware experience review your layout and schematic.

    Best regards,
    Kenneth

Related