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
Read multiple channels concurrently
-
- Posts: 9730
- Joined: Thu Nov 26, 2015 4:08 am
Re: Read multiple channels concurrently
How about Ethernet?
Re: Read multiple channels concurrently
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:
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.
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]
Each channel will only send data, each group will only receive data.
-
- Posts: 9730
- Joined: Thu Nov 26, 2015 4:08 am
Re: Read multiple channels concurrently
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