OK, now I’m really confused. I sure can see that there is nothing on the trace. But how can that be?
The very first transaction of the DecaWave test is identical to the first transaction of the spi test.
case ‘d’ :
TS_TRACE(“decawave… rn”); ts_flush();
SPI_master_poll_init(); // initialize the DW SPI channel
uint32_t devID = dwt_readdevid();
….
case ‘s’ :
TS_TRACE(“spi-looprn”); ts_flush();
SPI_master_poll_init(); // initialize the DW SPI channel
while (NRF_UART0->EVENTS_RXDRDY != 1) {
uint32_t devID = dwt_readdevid();
….
By definition, everything is the same right up to the case statement, and then the only difference is the extra test to see if the UART has input. I just can’t believe that has any impact.
MISO has no pullup specified at the Nordic end.
The code is the same for both 6.2 and 6.3. Maybe I should put the scope on 6.w and see what gives?
I can’t actually understand the scope traces. dwt_readdevid(); produces a 5-byte transaction under a constant chipsel. (It kind of helps to overlap the clocks and the data slightly so that you can tell where the bits are. ) There should be one MOSI byte (0), followed by a train of 4 MISO bytes (0x30 0x01, 0xca, 0xde). I believe that picture #8 is showing the right MISO pattern, but I don’t understand why there is no MOSI.
Can you find a similar pattern in the DecaWave test?
Would it help if I turned an LED on at the beginning of the sequence as a trigger?