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

Limits and use of frequenzy hopping "on the fly"

Hi, i am currently modifikat a working ANT-System (Master with multiple Slaves) with the NRF51422 and Softdevie 1.0 to be robust against in band disrupters. My idea is to change the Frequency every ANT-Block (TX and RX). I read in „ANT Message Protocol and Usage, Rev 5.0“ in chapter "5.2.2 RF Frequency" the Frequency can be changed on the fly. Ok thats good, but when schould i do this, theres no EVENT such as "beginning of ANT" or "finished".

My first test implementation with static "hopping-tabble" works obiously, butist not stable, the master and slaves lost synchronisation.

Thanks for every hint!

  • You can't modify the frequency selection when the radio is active, but as long as the radio part is done, you can safely switch. I would say the static hopping table is the best way to go in such a case, but you should probably add ACK to your communication. That way you could after every time a package is ACKed, switch frequency. That way both sides would be a little more in synch the when the hopps will occur.

    If ACKs are not an option, a timer on both sides that will reset every time a packages is sent/received might be a way to go.

    What do you see when you say that it's not stable? Do you drop a few packages or many?

  • Thanks! I also register this question as a case in the my support pages. I have conversation with Kenneth thats help pretty well. No i make my own ANT with frequencyhopping and Shared Channel with 100 slave. For completion here the answer from support:

    "On the master you would then need to change frequency after each radio event, what radio event you get depends how the data is sent, if you use sd_ant_broadcast_message_tx() you will get EVENT_TX. If you use sd_ant_acknowledge_message_tx() you will get either EVENT_TRANSFER_TX_COMPLETED or EVENT_TRANSFER_TX_FAILED depending on the message was received or not.

    On the slave side you will need to search for the master on one of the frequencies used by the master, and then change frequency after the first packet is received which is EVENT_RX. If one packet is lost you will get EVENT_RX_FAIL instead, but you need to change frequency also then to hop in the same manner as the master."

  • my failure was, that i first use a frequency table with increment frequency. my implementation was wrong, so the master an the slave use frequencies which where neightbors. ANT itself could hear telegramms on the neightbor frequency so it worked a "little bit". Now i correkt this and all works so far.

Related