Hello Peter,
shure - in the datasheet you find this RFSTATE, but it is not really helpful. RTSEL1 and RTSEL2 are not described at all. The CALVCO and CALFIL show Calibration States, so the only useful states seems to be RX, TX, SLEEP and RESET. But every code I have seen up to know uses the RX State during receive and transmit. I tried to monitor this register to see if the TX state is visible during transmitting packets, but no success. The state field shows only RX. I tried to force the chip to show TX state by setting bit-1 of RFCTL register (RFTXMODE). No success - the chip stucks. So for me it looks like the RFSTATE register is useless, except the detection of reset and sleep.
The driver is able to transmit packet without auto-retransmission.
I have at the moment the problem to distinguish the phases of transmission or reception inside the interrupt service routine (_isr) and to set the correct netdev2 states if I configure the system to use auto-retries and auto-acknowledgement.

Regards,
Neo


Am 13.09.2016 um 09:23 schrieb Peter Kietzmann:
Hi Neo,

there might be code snippets that actively wait for a state transition, but AFAIK not in the netdev part any more. Then there is interrupt handling which signals tx/rx start/end points to the upper layer. Of course you can't implement anything once it's not available on the device. The great thing about netdev is that it's pretty generic and you don't *need* to implement every function/message/interrupt/state change/whatsoever to get the device running.

But looking at the data sheet I stumbled upon the RFSTATE register which signals the following (useful) sates:

111 = RTSEL2
110 = RTSEL1
101 = RX
100 = TX
011 = CALVCO
010 = SLEEP
001 = CALFIL
000 = RESET

In addition there is the INTSTAT register which seems somehow similar to the Atmel radio. Where exactly did you stuck? Could you be a more precise?

Best
Peter


Am 11.09.2016 um 17:38 schrieb Neo:
Dear radio module driver developers,

as far as I have seen, the netdev2 architecture reads several time the
state of the radio chip to synchronize with the hardware dependent part
of the driver (state changes). This is wonderful if the radio chip has a
register which shows the actual state of the radio-modul - like the
TRX_STATUS register inside of the Atmel chips.
What could be done, if the radio chip doesn't have such a register or
shows only rudiment state informations to synchronize/trigger the
netdev2 part of the driver.

The MRF24J40 from Microchip for example shows only the following useful
state information:

RX
SLEEP
RESET

Transmission is done in the RX state without any changes, just trigger
the transission (TXNCON-Reg./TXNTRIG-Bit).

 Thanks a lot!

Regards,
Neo
_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


_______________________________________________
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to