Sigma Delta ADC on ESP32-S3
Posted: Wed Dec 22, 2021 7:21 pm
Hello,
my plan is to use a AMC3306M25 (https://www.ti.com/product/AMC3306M25) on a project with a ESP32-S3 (N8R8).
I'm just a hobbyist without proper qualification but i like to build things and right now thats my favourite project.
I created the clock of 20MHz for the ADC with the LEDC without any problem but now i get stuck.
I search for the best way to store the data on the ESP.
The plan is to measure about a period of 2 seconds and store the bitstream inside the PSRAM.
Samplerate = 20MBit/s so i have to store 40MBits in the 8MByte PSRAM so this should fit.
First Question: How fast can the ESP32-S3 write data to the PSRAM on the N8R8?
My first idea to get the data from the Sigma Delta ADC was to use PCNT and two counters.
The first counter to count the ones from the adc and the second one to trigger an interrupt every n samples to store the data in the psram. The problem is that on this way i loose the bitstream the good thing is that i need less ram.
Now i read in the datasheet about RMT and that RMT uses APB CLK so sampling up to 40MHz is possible with RMT?
In combination with DMA from channel 7 it sounds perfect for me.
Someone else told me that I2S is the best for a work like this!? Is I2S on ESP32-S3 capable to generate a constant clock of 20 MHz, store the samples via DMA and trigger an interrupt every n samples to store the data to the PSRAM?
Please let me know your thoughts.
my plan is to use a AMC3306M25 (https://www.ti.com/product/AMC3306M25) on a project with a ESP32-S3 (N8R8).
I'm just a hobbyist without proper qualification but i like to build things and right now thats my favourite project.
I created the clock of 20MHz for the ADC with the LEDC without any problem but now i get stuck.
I search for the best way to store the data on the ESP.
The plan is to measure about a period of 2 seconds and store the bitstream inside the PSRAM.
Samplerate = 20MBit/s so i have to store 40MBits in the 8MByte PSRAM so this should fit.
First Question: How fast can the ESP32-S3 write data to the PSRAM on the N8R8?
My first idea to get the data from the Sigma Delta ADC was to use PCNT and two counters.
The first counter to count the ones from the adc and the second one to trigger an interrupt every n samples to store the data in the psram. The problem is that on this way i loose the bitstream the good thing is that i need less ram.
Now i read in the datasheet about RMT and that RMT uses APB CLK so sampling up to 40MHz is possible with RMT?
In combination with DMA from channel 7 it sounds perfect for me.
Someone else told me that I2S is the best for a work like this!? Is I2S on ESP32-S3 capable to generate a constant clock of 20 MHz, store the samples via DMA and trigger an interrupt every n samples to store the data to the PSRAM?
Please let me know your thoughts.