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

Simple SPI code to verify an nrf52811 attached via SPI is functional (ie whoami..)

I have a new board with a STM32L47 running mbed OS. There is an nRF52811 connected via SPI.
I simply want to verify that the nRF52811 is connected properly and can be communicated to by sending some simple command
sequence over SPI and receiving data back that I can verify. I really don't want to pull in an SDK or library at this point.


I've used the RedBearLab SPI_Demo_nRF51822 to try and accomplish this and it does return some data. However it would appear the
demo is supposed to write something to the nRF52811 Flash and then read it back again. I don't get back what I wrote and I
assume that's because the Flash has not been erased. The demo gives no indication as to how to erase, or what in fact the data transmitted
to the device (ie. SPI1.transfer(0x84), SPI1.transfer(0xD1)) actually do. Are these commands, opcodes?

Can someone offer guidance on how to make this demo work, or a better way to simply query the device for some known info?
I know there is a temperature sensor, is there a SPI command sequence I can send to read that?
My code looks something like this:

char spi_tx1_test[] = {0x84,0,0,0,0x41,0x42};
char spi_tx1a_test[] = {0xD1,0,0,0,0x00,0x00};
count = spi_master_block_write(&pObj->ble, spi_tx1_test, 6, spi_rx_test, 6, 0xFF);
osDelay(100);
count = spi_master_block_write(&pObj->ble, spi_tx1a_test, 6, spi_rx_test, 6, 0xFF);
tr_info("\n\nBLE test 1 rx %x %x %x %x\n\n", spi_rx_test[0], spi_rx_test[1], spi_rx_test[2], spi_rx_test[3], spi_rx_test[4], spi_rx_test[5]);

Thank you!

Parents
  • Can someone offer guidance on how to make this demo work

    You would have to ask RedBear - it's their code.

    Might be simpler to just use an SDK example?

    Note that SDK examples do come with pre-built hex - so you wouldn't necessarily have to go through building them yourself ...

    I simply want to verify that the nRF52811 is connected properly

    couldn't you verify that by simply toggling the lines ... ?

    How to properly post source code:

  • I'm able to conform the device responds with data when I send it the ReadBearLab command examples. The received data is not what I expect as I indicated. I need guidance on how to request an erase of the Flash page, or how to read something else, like the temperature sensor, by sending a sequence via spi_master_block_write().

Reply
  • I'm able to conform the device responds with data when I send it the ReadBearLab command examples. The received data is not what I expect as I indicated. I need guidance on how to request an erase of the Flash page, or how to read something else, like the temperature sensor, by sending a sequence via spi_master_block_write().

Children
No Data