sys_status does not change.


I use Nordic nrf52832 DK and EVB1000.

I’m porting the simple tx example code.

SPI speed : 1M (Before init) / 4M (after init)
(i set spi speed 8M. read SYS_STATUS. return value is 0xDEADDEAD)

[code]dwt_writetxdata(sizeof(tx_msg), tx_msg, 0); /* Zero offset in TX buffer. /
dwt_writetxfctrl(sizeof(tx_msg), 0, 0); /
Zero offset in TX buffer, no ranging. */


while (!((dwt_read32bitreg(SYS_STATUS_ID)) & SYS_STATUS_TXFRS)) {
//Infinite loop - dwt_read32bitreg(SYS_STATUS_ID) = 0x00800002
SYS_STATUS value is only 0x00800002.

What is the problem?


According with SYS_STATUS no transmission has been made. You can check other register, FX_FCTRL. The bits 0-6 gives the data frame lenght. Here you can check if this TFLEN is also zero, then there is no transmission. Have you check the SPI is working? This can be done checking (DWT_DEVICE_ID != dwt_readdevid()). If it is true (are different values) then you have a problem probably with the SPI.

I checked FX_FCTRL. data frame length isn’t 0.

I called dwt_readdevid() return 0xdeca0130.

i solved this problem. but i don’t know.