This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2530: ZStack 3.0.0 UART Rx interrupt issue

Part Number: CC2530

Hello,

I'm having a bit of trouble with my UART interruptions and maybe someone else came across already

I have a CC2530 being used as coordinator that interacts with another processor via uart (using a custom protocol).

The problem is when there is a OTA update (high flow of bytes on the UART) to transfer the firmware image the uart reception looses bytes.

This seems to happen more or less when I receive a report from the air, which leads me to believe in some part of the zstack that disables the interrupts for a few moments resulting in the loss of bytes.

Has anyone experienced this? Is there a workaround to stop it from hapening?

I already debuged my code and is not a matter of electrical noise, not lack of buffer space or blocking routines. I'm running out of ideas to fix it.

If we exclude the OTA usage every other scenario seems to work fine, and even in OTA it takes a few undreds of messages until the problem arises.

  • Hi,

    Are you using UART flow control?
  • Try to reduce bitrate to see if there is improvement.
  • @ Jason - No I'm not using flow control, at this stage I don't think will be easy to add it since it requires extra pins. But I think if the problem is indeed the interrupts being disabled the flow control probably wouldn't fix it or would it? Now I'm a bit unsure, since it's purely hardware controled it can work probably...

    @ Yk chen - I'll try to reduce the baudrate and see what happens. Assuming it's not a hardware issue the best I can expect is instead of losing 6 bytes loose maybe 2 or 3 right? This because the underline problem will still be there

    There is all this "Enter critical section" all over the code and I think one of those is being the issue somewhere. Since this statement disables all CPU interrupts