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

GZLL host not responding to more than 3 pipes

I am trying to set up a GZLL star network on the 51822. I understand that a single GZLL host can support up to eight devices but whenever my host attempts to communicate with more than 2 devices each communicating under a unique pipe the host controller seizes. It is still receiving packets from the other devices but it is unable to add any ACK packets to its tx fifo buffer.

Are there any examples of a host that will communicate with 8 devices simultaneously? Am I correctly understanding that each device should communicate via its own pipe?

Parents
  • Hi,

    It is correct that each device shall communicate with the host using an unique pipe. If you setup two devices on the same pipe (ie: same RF address), you will get a collision and your communication will not work properly.

    If I understand correctly, the communication works with 8 devices -> 1 host, but the ACK payload is unreliable? If yes, could you please elaborate on what's happening?

    Note that the host only has a 3 payload deep buffer in the FIFO. This means that if you upload 3 payloads on one pipe, where the device seldom sends payloads to the host (device does not poll the host often enough compared to other devices), you will use up all the space and block other devices from receiving an ack-payload.

    In general; it is very important to check your error codes given by the gazell function calls to see if there is anything that's failing.

    Cheers, Håkon

  • Hi Sean, That makes sense. You have filled up your FIFO, and the device is not fetching the ack-payload fast enough. If you instead send two payloads from the device.

    1. prepare ACK-payload
    2. dummy-payload to fetch payload

    Then it should work properly.

    Cheers, Håkon

Reply Children
No Data
Related