This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF8001: interpreting logic data

I'm running the ble_my_project_template example from ble-sdk-arduino, and listening to the ACI lines with a logic analyzer. Here is what I found in the first transmission, in which RDY is pulled low before REQ. One row for each byte transferred.

| MOSI | MISO | Meaning                    |
|------|------|----------------------------|
| 0    | 1    |                            |
| 15   | 4    | (len)                      |
| 180  | 129  | DeviceStartedEvent         |
| 0    | 3    | - Operating mode (standby) |
| 0    | 0    | - HW error                 |
| 1    | 2    | - Data credit available    |
|------|------|----------------------------|

I'm not sure about the first byte (MOSI=0, MISO=1). What does this mean? Secondly, I'm not sure how to interpret what the Master is transmitting (while it's really the Slave who initiated the transmission to give an asynchronous event (?)). Where in the nRF8001 PS can I find this?

Parents
  • The nRF8001 will always send a device started event after power on reset. Usually with a started in setup mode event, but this could also be a standby event, if the configuration was previously writen to OTP. MOSI will use a lenght of 0 as it doesn't have anything to send to the slave in this case. it should use the length field of the received packet to see how many bytes it needs to clock out. What follow after the 0 depends on what is in the MOSI buffer, as long as the length is zero the nRF8001 doesn't care about this. Of course you could clear the whole buffer as well, but it's not needed.

Reply
  • The nRF8001 will always send a device started event after power on reset. Usually with a started in setup mode event, but this could also be a standby event, if the configuration was previously writen to OTP. MOSI will use a lenght of 0 as it doesn't have anything to send to the slave in this case. it should use the length field of the received packet to see how many bytes it needs to clock out. What follow after the 0 depends on what is in the MOSI buffer, as long as the length is zero the nRF8001 doesn't care about this. Of course you could clear the whole buffer as well, but it's not needed.

Children
No Data
Related