XBEE Zigbee S2 - Transmit Request from End Device to Coordinator problem

Hello,

I am testing a simple setup, fully with the XCTU software no external code, to understand the behaviour of the Transmit Request (API Frame 0x10).
The setup is composed of a Xbee Zigbee PRO S2B coordinator in API=1 mode and a Xbee End Device S2 in API=1 mode.

I have no problems when transmiting data (Transmit request) from de the coordinator to the End Device, whenever i send a Transmit Request i get an immediate Transmit Status from the End Device acknowledging the reception.

But, when i try to do it from the End Device to the Coordinator, it presents a strange behaviour, only after sending a few transmit requests i get the attention of the coordinator and it starts sending the Transmit Status (API frames) acknowledging the reception of the packets.
After receiving the first Transmit Status from the coordinator if i keep on sending data with the End Device i keep on receiving the correct transmit status from the coordinator.
After stopping transmission and waiting 3 seconds (more or less) i get the same behaviour described.

It is like the Coordinator needs time to start handshacking when receiving data from the End Device.

Anyone has any idea of what might the problem be?
What more information can i give to help?

I leave you the config file XML for the Coordinator and End device:

COORDINATOR****************************************

XBP24-ZB_21A7_S2B.xml

  10
  7FFF
  3
  0
  FF
  13A200
  FFFF
  MAIN
  30
  0
  FF
  30000
  3C
  3
  3
  4
  1
  0
  0
  
  
  3
  0
  0
  1
  0
  1
  0
  20
  1
  1
  0
  0
  0
  0
  1
  1
  0
  0
  1FFF
  0
  28
  1
  0
  0
  0

END DEVICE***************************************

XB24-ZB_29A7.xml

  0
  FFFF
  3
  0
  FF
  0
  0
  0
  0x20
  1E
  0
  30000
  3C
  0
  3
  4
  1
  0
  0
  
  3
  0
  0
  1
  0
  1
  0
  4
  1388
  20
  1
  0
  0
  1
  0
  0
  0
  0
  1
  1
  0
  0
  1FFF
  0
  28
  1
  0
  0
  0

The communications you are referring to is Normal for a Zigbee network where one of the nodes is a SLEEPING End device. You see, the end device need to first wake up to receive the data on its UART. It then need to send a poll request to the parent telling the parent that it has data to be sent. Then and only then can it send the data.

The ACK you see on the Coordinator is the Coordinator telling you that the End device is in its child table and it will send the request when the end device wakes and polls the parent.

Hi Thank you for the answer.

Meanwhile i found the practical answer to the problem, i was not using the RTS pin from the module, and so the UART comunications were out of sync with the RTS timmings of the End Device and i got timedout comunication.

Right now i think its solved.

Thanks

How did you solve this issue?

They enabled RTS flow control and used the hardware flow control function for the UART.