brennen:
Gert-Jan:
if you set mask_TX_DS to “0” in the CONFIG register this must not happen but is does.
even when the flag is cleared in the STATUS register after transmitting
This makes sense, since setting MAX_TX_DS to ‘0’ enables the interrupt on the IRQ pin. You must set the bit to ‘1’ to disable it.
so maybe I don’t wait long enough but I don’t know how long I have to waith and if it is possible that it changes back to receive before it is done sending its pakkets.
According to p. 22 of the 24L01 datasheet, you must wait for 130 uS from the time you go from TX standby until you can receive packets properly in RX mode (Tstby2a).
ok maybe I must tell you more:
I am using 5 devices which are all connected with a atmega645 who communicate which each other trough a nRF24L01. It functions almost like it should be, the only problem is that microcontroller receives an IRQ TX_DS. I have tried to mask this interrupt by setting it with a “0” and a “1” in the CONFIG register:
Mnemonic CONFIG
bit 5 MASK_TX_DS
Mask interrupt caused by TX_DS
1: Interrupt not reflected on the IRQ pin
0: Reflect TX_DS as active low interrupt on the IRQ pin
because of the comment “low interrupt” have I tried to react on:
-low level
-logical change
-falling edge
-rising edge
without any luck.
I also have read that dispite off the different memorybuffers RX and TX share the same addresses. So maybe it is possible that an IRQ comes because of an RX action because of setting it to soon in receiving mode???. For this reason I wait 150 us when I disable CE after transmitting and after recieving. And I wait 150 us after setting CE in transmitting en recieving.
an other reason that might be possible is that I have disabled autoretry en acknoledgement:
//minimum delay (250us) for retransmit and no auto-retry after failed transmission
SPIradio_WriteReg(RADIO_REG_SETUP_RETR, _BV(0x0000));
//disable auto acknoledgement for all pipelines
SPIradio_WriteReg(RADIO_REG_EN_AA , _BV(0x0000));
at this way EN_AA and SETUP_RETRY both has the value 0x000.
the only moments that TX_DS set are:
nRF24L01 asserts the TX_DS IRQ when the ACK packet is received
and if auto retransmit is disabled when in TX mode.
Will the TX_DS mask also work if auto retransmit is disabled or will it always come dispite this mask?
I also have send this to Nordic Norway but the work on other days becose I don’t have received an answer jet 