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.

cc8530: ( and cc85xx) Questions about multiple slaves with one host

Part Number: CC8530

Hi

I've read the datasheet for cc8530 and the user manual too, but I still have a couple of questions that I hope someone can answer. I'm looking at using the cc8530 to connect both audio and side-data channels between one host and multiple slaves. But I need to understand some details so I can do latency calculations.

  1. With audio streaming and multiple slaves. If two slaves subscribe to the same channel id, do they BOTH have to ack the audio? Or do they both have to ack the audio else it will be re-transmitted? If the audio is re-transmitted then does the slave that acked it, not replay the re-transmission?
  2. Is it possible to limit audio packet re-tries? Can we make it to not re-try at all (so on the slave it will have quiet periods)?
  3. Is it possible to change the time before a slave that has gone quiet is un-paired? What is the default value for that?
  4. With a data-side channel and multiple slaves. How do we broadcast the same datagram to multiple slaves (do we use a special 'broadcast' address)? With broadcasts do all registered slaves have to ack the packet (so that it doesn't stay and block the fifo and all subsequent transmissions)?

I know that I'm asking for a lot of detail here, but I need it to understand how the system will work with broadcasts and when a single slave goes out of range (how it affects the still present slave).

Thanks for any information that you can add!

Brian

  • Hi Brian,

    Let me check with the PPW developer team and come back to you over Easter.

    Regards,
    Fredrik
  • Hi Fredrik,

    Thanks, I really appreciate that. I am looking forward to reading the answers -- it will really help the final analysis for this project.

    Hope you've had (and are having) a good holiday.

    Regards.
    Brian
  • Hi Brian,

    Here is feedback from our PPW expert:

    1. In each timeslot, all slaves ACK all audio slices (= sample blocks) in the slice ring-buffer. If ACK is not received from all connected slaves, then there is a hold-off period (2 timeslots) where we ignore missing ACKs from slaves with poor RF conditions. This reduces the effect of slaves that are almost out of range or that have just been powered off. If a slave already has received an audio slice, it will ignore it and simply replay the ACK bit for it.
    2. No, this is not possible. It is limited naturally by the slice transmission window (ready to be transmitted -> too late to be transmitted). Run Microsoft DebugView while generating the flash image (in the flash programming panel) to see the maximum number of tries and average capacity.
    3. No, this cannot be changed. It is hardcoded to 128 timeslots (for example 320 ms for 2.5 ms timeslots).
    4. Broadcasting is not supported for the data side-channel.

    Regards,
    Fredrik
  • Hi Fredrick,

    Thanks for the detailed reply. It clears up a lot of areas -- I just have two areas that I'm still unsure about:

    1. With a slave not ACKing -- how does that affect transmissions:
    1a. If a slave stops ACKing (say battery fails) what does the master do? Does it retry all sample blocks the number of times that is reported through DebugView when generating until it un-pairs the slave 128 timeslots later?
    1b. Is the retry mechanism such that it doesn't affect the next slice transmission window? So after we go to the next slice transmission window, it stops re-transmitting for the previous window?
    1c. How does the hold-off period work? Is it holding off re-transmissions? And does this only happen on slaves that were judged to be at the limit of transmission? And what happens after the 2 timeslot hold-off period?

    2. About the data side-channel
    2a. If a data packet is not ACKed (by the addressed slave), and it is retried, are the retries limited somehow? After 128 timeslots when the quiet slave is un-paired or earlier?
    2b. The documentation about the host controlled setup, at the bottom of the EHIF table, says that it may take up to 10ms after a command before it's ready for the next one. Is that true for commands sending datagrams? Or can I send a new datagram in every 2.5ms timeslot as long as it is ACKed by the addressed slave?

    Regards,
    Brian
  • HI Brian,

    1. The short story here is that a slave not ACKing will not affect the audio stream to the other slaves.

    2. It is possible to fill up the FIFO for data side channel packets in which case it will block the communication. There is no automatic flushing or dropping packets after a certain time period. There is also no way for the external host to receive the ACKs from the data packets. The recommendation is to make a ping-pong-scheme where the master sends a packet to all slaves and then waits for a certain response back. Sort of a manual ACK.

    Regards,
    Fredrik