I have a bit of a strange problem. I am designing a signal Gazell signal repeater. It listens in host mode then sets itself as a device to pass the data along.
However if the data being passed to the transmit fifo does not change it does not transmit. See this code to see what is going on......
This does not transmit:
setupGazelToTransmit();
nrf_gzll_flush_tx_fifo(PIPE_3);
nrf_gzll_add_packet_to_tx_fifo(PIPE_3, transmit_data_3, TX_PAYLOAD_LENGTH);
This is the work around that simply changes the data being transmit:
TransmitCounter++;
transmit_data_3[0] = TransmitCounter; setupGazelToTransmit();
nrf_gzll_flush_tx_fifo(PIPE_3);
nrf_gzll_add_packet_to_tx_fifo(PIPE_3, transmit_data_3, TX_PAYLOAD_LENGTH);
Leaving the gazell module permanently as a device also works:
//setupGazelToTransmit();
nrf_gzll_flush_tx_fifo(PIPE_3);
nrf_gzll_add_packet_to_tx_fifo(PIPE_3, transmit_data_3, TX_PAYLOAD_LENGTH);
(this is no good for my application as it needs to switch between host and device)
Any idea why is this happening?