0

I am developing a measurement system, comprised of a MCU (being STM, ESP or PIC), multiple (let's say 8) ADCs sending data over SPI. ADCs are to be triggered using a SYNC signal so that they sample at the same time. It's crucial to access the data at the same time (or almost at the same time), the sampling frequency will be 1 or 2 kHz. I'm wondering how should I approach this: use a single physical SPI bus, and perhaps a DMA, or get a MCU with 8 physical SPI buses allowing them to operate in parallel? Additionally, I would like this MCU to support Ethernet connection, to send the data to a post-processing unit.

My initial thought was to simply get a MCU with 8 SPIs, but maybe it's an overkill?

4
  • Most STM32s have built-in ADCs with 8+ channels. Might the simplest approach. If they must be discrete ADCs, you could probably go with one SPI bus and 8 GPIOs for chip-select. Not sure any of this is on-topic on stackoverflow though. Commented Nov 21, 2022 at 15:08
  • It has to be a discrete ADC. I'm a bit worried that using one SPI bus will be too slow for this application. Commented Nov 21, 2022 at 16:18
  • If your ADC has a separate trigger input other than the chip-select then you can make this a common signal between them all and then use a single SPI bus with 8 chip selects. Having 8 sets of (SCK,MISO,MOSI) as well will make layout awkward. It's unlikely you will find an MCU that has 8 hardware chip-selects on a single SPI peripheral but GPIO chip selects will probably be fine. You are also unlikely to be able to time everything with DMA, you will need several interrupts too, to wait for the data to be ready, which may be indicated by another GPIO or just by a delay. Commented Nov 21, 2022 at 17:16
  • In any case you will get better help on electronics.stackexchange.com. Be sure to include the part number of the ADC you are considering, or if you don't know then what specification of ADC you require. This question will probably be closed because it is not about software. Commented Nov 21, 2022 at 17:17

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.