Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

   

how to solve the collision between channels

Rank

Total Posts: 16

Joined 0

PM

I want to built a binary tree network. in this test, I set the ANTwareII as a cluster head, it sends the commands, the AP2 with MSP430 is a leaf node,when the leaf node get a correct message from the cluster head, it will reply a message back. when I open only one channel0 of the AP2 with 430, it works normally, but when I open more than one channel,and other channels are only open,don't do other things, collision will happen, the reply message can't be received , and MSP430 got a channel 0 collision message,how to solve the collision?      

Signature

Student

Rank

Total Posts: 16

Joined 0

PM

Derek Lun - 23 November 2012 11:14 AM
Hi,
Shared channels sounds ideal for your use case. It will simplify your topology. It will also simplify your code by letting the ANT MCU handle some of the tasks. You can find more information about Shared Channels in section 5.6 of ANT Protocol and Usage.

To serve you better, can you please provide more information on how the channels are open?

In a multi-channel system, you have more information to consider. Collision occurs when more than one channel tries to access the radio simultaneously and not all the channel can be serviced. The 2 most effective methods of reducing collision are to reduce the channel periods and make the channel periods the same or multiple of each other. For more information, please read AN15 Multi-Channel Design Considerations.

You can find all the documents that I have mentioned in the Downloads section on the website, on the documents tab
http://www.thisisant.com/developer/resources/downloads/

yeah,I find it!      

Signature

Student

Rank

Total Posts: 16

Joined 0

PM

Derek Lun - 23 November 2012 11:14 AM
Hi,
Shared channels sounds ideal for your use case. It will simplify your topology. It will also simplify your code by letting the ANT MCU handle some of the tasks. You can find more information about Shared Channels in section 5.6 of ANT Protocol and Usage.

To serve you better, can you please provide more information on how the channels are open?

In a multi-channel system, you have more information to consider. Collision occurs when more than one channel tries to access the radio simultaneously and not all the channel can be serviced. The 2 most effective methods of reducing collision are to reduce the channel periods and make the channel periods the same or multiple of each other. For more information, please read AN15 Multi-Channel Design Considerations.

You can find all the documents that I have mentioned in the Downloads section on the website, on the documents tab
http://www.thisisant.com/developer/resources/downloads/

the binary tree network like this.      

File Attachments

Signature

Student

Rank

Total Posts: 16

Joined 0

PM

Derek Lun - 23 November 2012 11:14 AM
Hi,
Shared channels sounds ideal for your use case. It will simplify your topology. It will also simplify your code by letting the ANT MCU handle some of the tasks. You can find more information about Shared Channels in section 5.6 of ANT Protocol and Usage.

To serve you better, can you please provide more information on how the channels are open?

In a multi-channel system, you have more information to consider. Collision occurs when more than one channel tries to access the radio simultaneously and not all the channel can be serviced. The 2 most effective methods of reducing collision are to reduce the channel periods and make the channel periods the same or multiple of each other. For more information, please read AN15 Multi-Channel Design Considerations.

You can find all the documents that I have mentioned in the Downloads section on the website, on the documents tab
http://www.thisisant.com/developer/resources/downloads/

ANTware II channel0 set as the transmit master, the period is 4Hz,the RF frequency is 2466.,the channel ID is (33,1,1).the AP2 with 430 is set like this: the channel 0 set receive slave, the period is 4Hz,the RF frequency is 2466, the channel ID is (33,1,1)and the channel 1 is the same like channel0, only the channel ID is different (34,1,1) ,I want to realize that if the channel 0 receive the message , it will send back a message to the AP3. It works normally when I only open the channel0 of AP2, But it can't send back message when I open the channel 0 and channel 1 together, and I got a message:A4 03 40 00 01 09,EVENT_CHANNEL_COLLISION.      

Signature

Student

Rank

Total Posts: 16

Joined 0

PM

Derek Lun - 26 November 2012 11:38 AM
Hi again,
Can you re-upload the diagram with the master and slave label? According to your diagram, each node has 3 channels open; 1 for the parent and 2 for the children. Is there a reason why you need 1 channel per child and check for the right message?

Can you also provide a log of communication and the full sequence of how you open the channels? Those will help me aid you better.


we use the number of channel to judge the message from which child (num 1 for left and num 2 for right)
the squence of opening channel 0 as below:
ANT_SetNetworkKey(0, (UCHAR *)DEFAULT_NETWORK);
ANT_UnAssignChannel(Channel0);
ANT_AssignChannel(Channel0,ANT_DEVICE_TYPE_CHANNEL0,0); //Receive Channel:Bidirectional Slave Channel
ANT_SetChannelRFFreq(Channel0,66);
ANT_SetChannelId(Channel0,DeviceNum_CHANNEL0,DeviceType_CHANNEL0,TransmissionType_CHANNEL0);
ANT_SetChannelPeriod(Channel0,ChannelPeriod_CHANNEL0);
ANT_SetTransmitPower(dBm_CHANNEL0);
ANT_SetChannelSearchTimeout(Channel0,0xFF);
ANT_OpenChannel(Channel0);      

Signature

Student

Rank

Total Posts: 16

Joined 0

PM

feifeifei - 03 January 2013 02:52 AM
Derek Lun - 26 November 2012 11:38 AM
Hi again,
Can you re-upload the diagram with the master and slave label? According to your diagram, each node has 3 channels open; 1 for the parent and 2 for the children. Is there a reason why you need 1 channel per child and check for the right message?

Can you also provide a log of communication and the full sequence of how you open the channels? Those will help me aid you better.


we use the number of channel to judge the message from which child (num 1 for left and num 2 for right)
the squence of opening channel 0 as below:
ANT_SetNetworkKey(0, (UCHAR *)DEFAULT_NETWORK);
ANT_UnAssignChannel(Channel0);
ANT_AssignChannel(Channel0,ANT_DEVICE_TYPE_CHANNEL0,0); //Receive Channel:Bidirectional Slave Channel
ANT_SetChannelRFFreq(Channel0,66);
ANT_SetChannelId(Channel0,DeviceNum_CHANNEL0,DeviceType_CHANNEL0,TransmissionType_CHANNEL0);
ANT_SetChannelPeriod(Channel0,ChannelPeriod_CHANNEL0);
ANT_SetTransmitPower(dBm_CHANNEL0);
ANT_SetChannelSearchTimeout(Channel0,0xFF);
ANT_OpenChannel(Channel0);


By the way, is there any technical support in China? I want to find help by the Phone! Thank you!      

Signature

Student

Avatar
RankRankRankRank

Total Posts: 745

Joined 2012-09-14

PM

Hi,

I don't really see a practical purpose for doing a wireless binary tree network, but if your dead set on it I can provide some tips.

Having your communication logs would be helpful (such as from a logic analyzer or ANTware II), this would include all of the messages sent and received by ANT.

Occasional channel collisions are normal and will occur on any ANT node with multiple channels open.

Your diagram does not describe which ends of each channel link are slave or master, that would also be helpful to know.

You can send acknowledged type messages to ensure that it has been received by the host.

Ensure your using an 8-Channel nRF24AP2 and not a 1-Channel model.

Unfortunately ANT Wireless does not provide direct support in China at this time, please contact your local distributor to seek additional assistance.

Best regards