Has anyone here successfully connected to the Digi WiFi modules via SPI? I have been trying unsuccessfully to put the WiFi module into SPI mode as per the instructions in the manual (90002124_D pg 19).
The manual states that they do not supply SPI communication option on the Device Development Eval Board. But there’s place for a 20-pin header just beside the WiFi module which is connected to all 20 of the pins on the module itself.
When I use a micro, connected to the lines listed in the SPI table (pg 11) and hold DOUT(pin2) low, reset the module and wait for SPI_nATTN to assert (go low since it’s active low). I get nothing.
Has anyone gotten the wifi module into SPI mode? If so how.
Thanks,
Peter
Yes, I’ve got it working
You need module reset pin connected to mcu as well.
My startup sequence:
dout = tristate
reset = low
wait 10us
dout = low
delay 1ms
reset = high
delay 3ms
wait until nATTN goes low
Thats all. Now folows module config.
But I don’t use eval board - module is integrated in target board. So check for undesired interactions with eval board.
The Attention line should assert when there is data for the host to read in SPI mode. Is it possible that the first time the module received transmission it was in UART mode? And then the second time it had been switched to SPI mode and this is when the ATTN line was not toggling. My first thoughts are to confirm that the module is in fact in SPI mode (and no longer in UART mode). What method is being used to enter SPI mode? (setting peripherals or holding DOUT low during reset)
If both the UART and the SPI are enabled on the module with peripherals, the UART will be the active receive port until serial (not OTA) data is sent to the module. The method used to send serial data to the module will determine if the UART or SPI becomes exclusively enabled until a reset. For example, if I try to enter command mode through the UART, the module will then select UART mode and the SPI will not be usable until a reset occurs. If I decide to send an 0x08 API frame through the SPI instead of entering command mode then the SPI will become active and the UART will turn off. In this case, any further data received OTA will leave through the SPI and thus toggle the ATTN line.
My suspicion is that the SPI has been enabled but hasn’t been activated yet with SPI serial data. In this case, any data sent OTA would come out the UART rather than the SPI which would explain why the ATTN line isn’t toggling.
Thanks for the instructions. When I read “hold DOUT low while reseting module until SPI_nATTN asserts” I took it to mean hold DOUT low AND nRESET high while waiting for nATTN to assert.
Thanks for pointing out what I missed. Hopefully others will learn from my mistake.