Hi.
I use API function qapi_SPIM_Full_Duplex() for SPI transfer and callback function for wait end of transfer.
In the whole it's working OK but if I looked timing via oscilloscope, I see stange things - time between call of function qapi_SPIM_Full_Duplex() and start of SPI transfer is at least 50 us. Time between end of SPI transfer and call of callback funtion is at least 40 us.
Therefore transfer of 5 bytes via SPI which duration must be no more 3 us (SPI clock speed = 16 MHz), in real have duration about 100 us.
Unfortunately fast SPI transfer its key parameter of my system. Could I something fix?
Are you trying these SPI transfers by disabling sleep? Can you please share demo code with which you are seeing this delay? Are there any console print messages in your code causing this delay? Can you please try by setting high speed mode (config.hsmode = 1) and set rx_info as NULL in qapi_SPIM_Full_Duplex()? What is the SPI clock speed you set in your code?
Demo code:
Could I program function similar qapi_SPIM_Full_Duplex() myself? For this I need user manual with described low level hardware (SPI registers, interrupt controller registers, DMA controller registers)
We are currently trying to reporduce the scenario locally.
In the mean while can you provide us the graph/scope plots to look into the issue.
Hi.
Which email I can send you oscillograms?
Hi Raja,
Did you have any information about my issue?
If it necessary I can send you full project which demonstrate this problem.
Please let me know at what stage the solution is.
Did you manage to reproduce the situation with a delay in entering and exiting the SPI transfer on your equipment?
Hi,
We are able to reproduce the issue locally.
Our design team is currently investigating the issue and provide an update soon.
Korea CE team is working with LGE team on SPI delay issue.
Hi Raja.
From the moment of last comment passed already more than half year.
Maybe you have any new information for my issue?
Unfortunately, using our architecture design and qapi_SPIM_Full_Duplex with overhead, it cant be used for the scenario of small amount of data in short intervals of 5us.