Hi , I got a problem when testing nrf53 qspi signal using a logic analyzer ,with a non-blocking init of qspi and a 4 Byte write , codes are below:
int main(void) { uint32_t i; uint32_t err_code; uint8_t base = 0x00; if(!nrfx_is_word_aligned(m_buffer_tx)){ base = 0x02; } LOG_INF("" "QSPI write and read example using 24bit addressing mode"); for (i = 0; i < QSPI_TEST_DATA_SIZE; ++i) { (m_buffer_tx+base)[i] = i; } for (i = 0; i < QSPI_TEST_DATA_SIZE; ++i) { (m_buffer_rx+base)[i] = 0x00; } nrfx_qspi_config_t config = NRFX_QSPI_DEFAULT_CONFIG(sck,cs,d0,d1,d2,d3); config.prot_if.writeoc = NRF_QSPI_WRITEOC_PP4IO ; config.prot_if.addrmode = NRF_QSPI_ADDRMODE_24BIT; err_code = nrfx_qspi_init(&config,NULL, NULL); LOG_INF("QSPI example started. %02X",err_code); err_code = nrfx_qspi_write((m_buffer_tx+base), 4, 0x38); }
I got a word align problem at first , solved it by adjusting the address at line 7
according to the ps the qspi out put on 4 wires should look like this :
however I got this from the logic analyzer connecting the nrf53 qspi pins I set :
With 12 unexpected bytes before the command specified in ps , and 8 unexpected bytes after data . I looked deep into the api nrfx_qspi_write and found out it takes only the buffer address ,length and dst address, nothing relative to these unexpected bytes, with different inputs into the function I still got these .
We're using nrf53's qspi to communicate with a time-sensitive device , so these addtional bytes are intolerable , wonder if anyone can explain why they exist or how to remove them .
I'm using nrf connect sdk 1.5.1 , with a standard nrf53 dk