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

CRC error on nRF8001 (porting to STM32)

Hello,

I'm porting the nRF8001 SDK to STM32 using HAL (CubeMX). Communication seems to run fine, however, the setup stops with CRC error. See abridged the logical output:

...
C 6 :0x06,0xf0,0x00,0x03,0xbf,0x40,
...84/06/01 is repeated 6 times.
E 3 :0x84,0x06,0x01,
cmd_status: 0x88e

Oscilloscope sees exact same messages as above. Here's my spi interface code:

uint8_t efm_spi_readwrite(const uint8_t aci_byte)
{
	uint8_t send_byte = aci_byte;
	uint8_t ret_byte;
	HAL_SPI_TransmitReceive(&hspi1, &send_byte, &ret_byte, 1, 1000);
	return ret_byte;
}

The rest of the code is a copy ble-sdk-efm32 with only slight adjustments to digital read and write. I have D revision of the chip. Echo test works OK.

I read in another question that after last setup packet, I should generate dummy SPI clock, but I don't see provision for that in the queue based SDK...

Related