Dear Sir/madam,
According to the answer on e2e, I should use D flip flop on SDO line if I am to use standard SPI peripheral of uC. When I tried communicating ADS8353 with STM32F412 with built in SPI peripheral using CPOL=0, CPHA=1, I have no problems reading frames as they are without any filp flop in between the SDO and MISO pin on uC. I tried communicating with ADC as slow as I could go (125kHz CLK) with long waits in between frames (1us) and as fast as I could go (25MHz CLK, [I know it is out of specs], 200ns CS high) and I saw no difference. Conversion results obtained by uC were as expected in both cases and also readbacks from registers were as stated in the datasheet and I saw no drop of data in either case. On the other hand, when I used SPI decoding function on my oscilloscope, the SDO data is decoded incorectly (shiffted by one bit according to SPI specification) as explained in the linked e2e question on the serial communication.
Could it be that the current setup I am using (ADC mounted on breakout board and placed in breadboard and uC mounted on a nucleo development board and both connected by 10cm of wire) is causing such a time delay that the uC is seeing SDO data shifted such that it is reading it correctly? Is there a possibility that on a proper PCB with ADC an uC placed closely there will be no such delay and the received data will be shifted for one bit? In that case what would be a benefit of using flip flop and not just shift the received data by one bit in the software on uC? Am I missing something here?
Best regards,
Rok