Hello,
I am using two adafruit RFM96W (Pinouts | Adafruit RFM69HCW and RFM9X LoRa Packet Radio Breakouts | Adafruit Learning System) modules connected to SPI1 and SPI2 busses of a DiscoF407 board. I worked with one radio module and I did not have any problem. Now I am working with two radio modules. They correctly initialize and transmit signals. However when I want to supress one of the radios the other one stops working as well. I tried all the ways I can try but no chance. Here is a list of what I tried:
-
Initially I tried EN pin of radio B (SPI2). EN pin completely cuts the power of the module (it is connected to Vin through a 100K res. ). When I pull this pin down either by software or by direcly connecting it to the gnd, radio A starts to invoke “.tx_timeout” function of Semtech’s SX1276 driver and none of the radios transmit signal. When I release EN pin of radio B and re initialize it, both start working as before.
-
The proper way of deselecting an SPI device is pulling its CS pin down. Also in this case the other radio starts to invoke “.tx_timeout” and when I release this pin, again both start working without re-initializing radio B.
-
I also tried to block SPI2 (bus of radio B) with lock() and select() functions of the SPI API but in any case radio A stops working while radio B is somehow blocked.
I am sure I am doing a mistake but I could not understand what I am missing. There are two SPI devices which do not share any hw resource but one blocks the other one. This is completely unexplainable! I have already lost a lot of time on this and I really do not have any idea why is this happening? What causes this problem? What is the proper way to stop one of the radios?
Thank you