Read multiple channels concurrently

ghost07
Posts: 36
Joined: Mon Oct 03, 2022 11:47 am

Read multiple channels concurrently

Postby ghost07 » Fri Jun 30, 2023 6:13 pm

Hi, is ESP32 able to read data from several other ESP32 modules concurrently? (Low latency, <1ms, so wifi is not an option)
Lets assume 8 channels and 3 Mbit/s bitrate per channel. That would be 24 Mbit/s in total.

There can be significant distance (about 1-2 meters), that's why I would like to avoid using high frequency (24 MHz) SPI with CS pins, but rather use a lower frequency (3 MHz) and collect data at each CLK from all channels in parallel - that means I will have to restore each channel's data words by a lot of bit-shifting, which will be a time consuming task, so, maybe I will have to use 2 ESP32 modules - one will receive data from multiple channels, reconstructs data words and sends them over SPI (this time a fast one, since both ESP32 can be close to each other) to second ESP32, which actually processes data.

Is ESP32 able to use Octal SPI in slave mode with DMA? Or is there another peripheral, that is more suitable for this task?
Before I buy 10 ESP32s, I wanted to ask here, if there is a chance it could work

ESP_Sprite
Posts: 9730
Joined: Thu Nov 26, 2015 4:08 am

Re: Read multiple channels concurrently

Postby ESP_Sprite » Sat Jul 01, 2023 3:29 am

How about Ethernet?

ghost07
Posts: 36
Joined: Mon Oct 03, 2022 11:47 am

Re: Read multiple channels concurrently

Postby ghost07 » Tue Jul 04, 2023 8:08 am

Thank you for reply.

Do you mean something like W5500? I am afraid there would not be enough throughput speed. Here it says it can have throughput about 3.4 Mbps at 36 MHz SPI, so for channel output that would be ok, but for grouping receiver it would be slow.

Maybe some other converter from SPI, to some form of signal, that can be safely carried on longer distance (at least 1-2 meters) in high frequency? Like USB, optic fiber or Ethernet - but with fast enough converter back to SPI on the other side.
Topology would be like this:

Code: Select all

CH1   CH2   ...   CHn        G1   G2    ...   Gn
 |-----|--- ...  --|----------|----|--- ...  --|----- [SPI master]
Where all channel and groups would be in slave mode and SPI bus would be controlled by another device - master.
Each channel will only send data, each group will only receive data.

ESP_Sprite
Posts: 9730
Joined: Thu Nov 26, 2015 4:08 am

Re: Read multiple channels concurrently

Postby ESP_Sprite » Wed Jul 05, 2023 2:12 am

No, if you use the original ESP32 (not the S3 or something), you can connect a PHY to it and get 100MBit Ethernet using the built-in Ethernet MAC. You're not limited by SPI speeds that way.

Who is online

Users browsing this forum: No registered users and 138 guests