GS2101M IP2WiFi Adapter Command Reference Guide
1VV0301499
Rev. 2.0
44
2019-08-05
3. When GS node receives A first 4bytes of READ_REQUEST in SPI FIFO, it triggers
an interrupt to pull the GPIO37 LOW. Here the MCU need not wait for GPIO37 to go
HIGH. After receiving the READ_REQUEST, GS node parses the READ REQUEST,
formulates the READ RESPONSE, puts the READ RESPONSE along with the Data
header in the PING buffer, and pulls the GPIO37 high.
4. MCU detects the GPIO37 as high and sends clock to receive the READ RESPONSE.
5. MCU parses the READ_RESPONSE, if it is READ_RESPONSE_OK then learns the
amount of data that will be sent by GS node, and provides clock to receive eight bytes
of Data header and actual data. If it is READ_RESPONSE_NOK, when there is no
actual data to be sent to MCU.
6. GS node pulls GPIO37 LOW after sending READ_RESPONSE and
DATA_HEADER, this is done in PING interrupt.
Points to Remember
from MCU
Perspective
•
GS node performs an automatic soft-reset if pending network data has not been
received by the MCU for 32 seconds.
•
MCU is not allowed to abort a read/write operation after issuing a READ_REQUEST
or WRITE_REQUEST.
•
The data length value in the DATA_HEADER should always be identical to the data
length value in the respective READ_RESPONSE or WRITE_RESPONSE.
•
GS node never uses a data length value of 0 bytes in READ_RESPONSE or
WRITE_RESPONSE, and DATA_HEADER. GS node sends NOK If there is no data
to read or write.
•
MCU should never use a data length value of 0 bytes in DATA_HEADER.
•
GS node does not expect any inter-word time between the transmissions of SPI words
to receive data. This means, when clock is given by the MCU, the GS node sends data
that is available in its SPI buffer and when the clock is stopped, this data stays in the
SPI buffer.
•
Idle characters are represented by 0xF5.
•
MCU should not check for GPIO37 LOW.
NOTE:
If MCU requests for the data which is less then what GS node wants to
send, then GS node sets “pendingdataflag” in READ_RESPONSE_OK.
NOTE:
When the size of data is less than 1024 bytes, the time GPIO37 takes to
become low after step 5 is 16 clock cycles (READ RE Data Header).
When the size of data is more than 1024 bytes, the wait cycle will be (Data
length-1024+16) clocks. This is because the PONG Tx buffer is of 1024 bytes in
size and the initial extra bytes (Data length - 1024) are put in PING Tx buffer.