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

Burst transfer problems

I'm trying to implement a burst transfer between to nRF24AP2 devices, but I have serious problems getting it to work. The burst messages are send on a reverse channel to a sensorr device which normally operates as master. After a number of messages, typically between 2 and 1000, I get a TRANSFER_SEQUENCE_NUMBER_ERROR error message back. I have tried UART mode ( 57600 baud ) and byte sync mode, same result. I have monitored the communication lines ( data and handshake ) between my u-processor and the ANT chip with a datalogger. All messages are acknowledged by a RTS signal in UART mode or a SEN signal in sync mode. No messages are send to the ANT chip except for the burst messages. No messages are missing and the sequence numbers are correct. Regardless of the sequence number on further burst messages, the same error message is returned. The problem comes regardless of how many messages ( 8 or less ) are used to prime the burst transfer.

So I have several questions: When does the ANT chip return the error message: When the offending message is received on the serial interface, or when it is being send in the air? How can I stop the burst transfer in an orderly manner after an error? And of course, why does it happen?

The obvious answer to the last question is that there is some error int the sequence number, but it is impossible for me to see such an error in the communication with the chip.

Regards, Klaus Roy-Poulsen

Parents
  • When you see one TRANSFER_SEQUENCE_NUMBER_ERROR you never recover from it at the test of the burst is lost? From the ANT message, protocol and usage you find that:

    "However, the success/failure notification is for the entire burst transfer rather than for each packet and, unlike acknowledged messages, any lost data packets in the transfer will be automatically retried. Should any packet fail to transmit successfully after five retries, ANT will abort the burst transfer and notify the host MCU with a failure message."

    So the failing package should be re-tried and if this fails five times it will collapse. What kind of environment are you testing this is? Could there be some interference from other sources that are interrupting your ANT link for shorter periods of time? What's the distance between your two units? Could you try a different frequency? Do you have other ANT nodes in the area with same network key and frequency?

    The sequence number is written by you on the nRF24AP2, how do you control this in your application? Could there be something that occurs in your application that would change the sequence number you write?

Reply
  • When you see one TRANSFER_SEQUENCE_NUMBER_ERROR you never recover from it at the test of the burst is lost? From the ANT message, protocol and usage you find that:

    "However, the success/failure notification is for the entire burst transfer rather than for each packet and, unlike acknowledged messages, any lost data packets in the transfer will be automatically retried. Should any packet fail to transmit successfully after five retries, ANT will abort the burst transfer and notify the host MCU with a failure message."

    So the failing package should be re-tried and if this fails five times it will collapse. What kind of environment are you testing this is? Could there be some interference from other sources that are interrupting your ANT link for shorter periods of time? What's the distance between your two units? Could you try a different frequency? Do you have other ANT nodes in the area with same network key and frequency?

    The sequence number is written by you on the nRF24AP2, how do you control this in your application? Could there be something that occurs in your application that would change the sequence number you write?

Children
No Data
Related