rust-iot / rust-radio-sx127x

Rust driver for the Semtech SX127x series of Sub-GHz LoRa/ISM radio transceivers
Mozilla Public License 2.0
32 stars 16 forks source link

TX_DONE interrupt not firing. #44

Open Cightline opened 3 years ago

Cightline commented 3 years ago

I can't seem to get the TX_DONE interrupt to fire, however the RX_DONE interrupt works fine.

My code currently operates like so:

  1. Send a packet
  2. TX_DONE interrupt should fire, but it doesn't, I currently have to poll.
  3. Receive a packet
  4. RX_DONE interrupt fires, no polling needed.
  5. I can check the bit flags and see that both TX_DONE and RX_DONE are set, I've messed around with the IRQ bit flags but haven't had success.

I'm using RTIC and embedded-hal/atsamd-hal. The code is here

ryankurte commented 3 years ago

I take it this is via the DIO0 pin? To receive both it looks like you'll need to switch the DIO0 mapping in RegDioMapping1 from RxDone (0b00) to TxDone (0b01) between operations (after enabling RxReady and/or TxReady IRQs in RegIrqFlags1).

(It'd be neat to have an API for this in the driver if there's a reasonable way of representing it)

image

image

(from the datasheet here

Cightline commented 3 years ago

Very helpful response, and yeah it's DIO0 pin, I'll try out what you wrote and bring the results back here so we can potentially figure out an API.

Cightline commented 2 years ago

Busy with IRL stuff, I recommend leaving this open but it may be months before I'm able to address it.

ryankurte commented 2 years ago

yeah no stress, useful to leave it open for whomsoever gets to it first ^_^