Hi,Master:
Platform: nrf52840
Bluetooth protocol stack: s140
When using qspi to communicate with external flash (communication speed 32M), occasional qspi communication exceptions occur in the product, or when a hand touches the IO1 pin, this phenomenon will recur. nrfx_qspi_cinstr_xfer will return NRFX_ERROR_TIMEOUT (13).
Some contexts and questions:
problem:
1. Do I need to initialize these IO pins individually in p25q_init (void)? Each time a function is called, such as p25q_buffer_read, p25q_uninit () will be executed to reset all pins except csn to:
PIN_CNF
DIR: 0-input
INPUT:1-disconnect input buffer
PULL:0-Disabled = No Pull
DRIVE:0-S0S1
SENSE:0-Disabled
The nrfx_qspi_init in p25q_init does not initialize these external pins.
2.According to the reference manual 6.9.1 (shown below):
If the qspi data of MCU is written to the pin through red line 1, and read the data to the qspi peripheral via blue line 2,
p25q_uninit has configured the pins to the above state:
a).IINPUT: 1-disconnect input buffer has been disconnected here, and line 2 has been disconnected. How can I reach the qspi peripheral? Is the peripheral automatically controlling INPUT_OVERRIDE?
b).DIR: 0-input is set here as input, line 1 has been disconnected, how can the qspi peripheral data reach the pin, is the peripheral automatically controlling DIR_OVERRIDE?
How does this happen internally?
3.When I add the following code to p25q_init
Qspi communication abnormality no longer appears. This may have some connection with question 1?Or I don't add the above code, and add a 33pf capacitor to this pin to GNDCan also solve the problem. So I think this may be related to the IO port being configured as floating?
4.I want to know the internal input pull-up resistor value?
thank you very much.