2018-02-05 01:19 AM
Hi all,
I am trying to implement a measurement system using STM32H7 microcontroller. The ADC used will be LTC2320-14 from Linear Technology. I am trying to find what would be the right pheripherial to control and receive data from this ADC. In the past I have used STM32F4 to control high speed ADC by they were using serial interface so SPI pheriperial worked perfectly for this. However, in this new application since the ADC is simultaneous sampling, the output data must be read in parallel. It provides the data in 4 serial lines working in parallel. The clock signal must be generated by the STM32H7 at a frequency of 100MHz to reach the 1.5MSPS rate that can be reachable with STM32H7. I though an option could be to use Quad-SPI interface deleting the command, address and mode bits but I do not know if this can be done.Maybe, also FMC pheripherial could be used. I would apreciate if you could suggest any solution for this.
Best regards,
Juan Luis
#multichannel-adc #stm32h72018-02-05 01:29 AM
Timer-triggered DMA from FMC to any other memory.
JW
2018-02-05 02:00 AM
Thanks for your quick response!. Could you please provide a bit more information please? for example, what would be exactly the configuration of FMC? to configure the peripherials I use STMCubeMX. If you select the required microcontroller in the FMC settings I only see NORflash, PSRAM, SRAM , SDRAM , ROM, LCD. I do not know exactly what to select and what configuration to use.
The DMA transfer is more cleare to me since I have used it in the past. I have also seen you previous post which is very useful:
https://community.st.com/0D50X00009XkYz0SAF
The idea is to transmit the data from the ADC direct to an external SDRAM module. Do you think this would be straightforward or it is a complex and will take the STM32H7 to its limit? The maximum data speed would be 12 MBytes/sec since it is 2 bytes per sample, 4 channels, 1.5 MSPS. (2bytes*4channels*1.5MHz=12MBytes/sec)
Any guidance on this would be really apreciated.
Many thanks!
Best regards,
Juan Luis
2018-02-05 03:25 AM
Do you suggest the diagram attached? Can the 4 SPI work in parallel??
Since there is a peripherial controller QSPI, could not be used for thisi application?
________________ Attachments : ADC SPI connection diagram.png : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hxoz&d=%2Fa%2F0X0000000b3T%2FfSKpkZvSVQ1M0tZN3DQeq8fBPACWQMv8aEAGk2X_FEU&asPdf=false2018-02-05 03:35 AM
Ah, *that* sort of parallel... sorry, I just skimmed your first post and haven't had look at the ADC's DS.
In this particular case, I personally would perhaps go for using 4 SPI modules (the 'H7 should have 6 of them according to the DS), 1 master and 3 slaves, with clock connected externally. Deserializing parallel-captured data sounds like a real processor-time killer.
JW
2018-02-05 04:47 AM
Do you suggest the diagram attached?
Yes. It's upon you to work out the details with clocks timing etc., of course.
Can the 4 SPI work in parallel??
Can 4 shift registers (e.g. 74HC165) work in parallel, if their clocks are connected?
Since there is a peripherial controller QSPI, could not be used for thisi application?
I don't know, but even if it could be used, you'd have the problem with deserializing parallel-captured data again.
JW
2018-02-07 07:39 AM
Have you considered using the internal ADCs? They can work with DMA and offload the processor.
2018-02-07 03:13 PM
Take a look at the application note AN4666: