My customer is using the CC1101. He has the following questions:
First of all some details of how we’re using the chip.
We want the chip to do an instantaneous Channel-availability check when we attempt to transmit.
To this end, we set CCA_MODE TO 3. We also set our interrupting GDO pin to mode 6, so that the pin de-asserts (causing a negative-going interrupt) at the end of a transmitted or received packet, along with certain other conditions.
We also have the other available GDO pin connected to a port on the MCU so we can program that pin to give whatever auxiliary indication we wish.
My principal concern the case where we give the chip the TX strobe, but it remains in receive due to the channel being busy.
Q1. Is there is certain way to check whether the transmission took place immediately after we give the TX strobe? If so, how?
(I would find this approach preferable, if only because it would simplify the task of maintaining coherency between our software state variables and the state of the actual chip. This becomes tricky if interrupts get involved.)
Q2. After being issued the TX strobe, does the GDO mode 6 pin create an edge (in our case, an interrupt) in all cases, or only if the transmission successfully occurs?
Q3. If we do get an interrupt (as in Q2) in the channel-busy case, what do we check for to see if the message went out? I see some interrupt service code written for this chip that checks the number of bytes in the transmit buffer (TXBYTES, addr 0x3A). If it is nonzero, it means the FIFO didn’t empty because the TX didn’t occur, because of a busy channel. Is this the best way?
Thanks for all replies in advance.