• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

the new ESP32-C5 and P4 support 16 channel 32 bit TDM in full duplex

Hi, I will share the results on Gihub in a way or another. For the moment, it is back of the envelope tests to better understand the chip, software environment, software stack and performance.

And don't hesitate if you have questions I could have an answer to.
 
The Proof of Concept is now working for 8 channels 16 bits and 96k. Good ! It took some time because the ESP component is not design to achieve that bandwidth. You need to go the micro frames each 125 us. And the missing "Channel Config" in the descriptor was working up to 48k but not at 96k (Windows was starting/stopping/starting/ stopping... the device).

The MAX98357 I use for tests is limited to 96k. So next test is to move to 32bits instead of 16 bits. Then I will be at the limit for that CODEC.

The good news is that the load on the CPU is very low, even at 8ch 16bits 96k. I was afraid to have CPU load issues, but this is not the case. Possibly 15 CPU load on one of the 2 cores and 0 on the other ;-).

Channel 0 corresponds to TinyUSB writing the data to the application buffer
Channel 1 is the TinyUSB data reception each 125us
Channel 2 is the esp_i2s_write() it is blocked in "wait" most of the time

So next test with 32 bits, but there are several sections hard coded to 16 bits in the esp_device_uac() code.

This is not "clean" code. But seems to me that once proved to work OK on the POC, It shouldn't be a dramatic effort to have a robust code doing the 8 channels / fixed number of bits / different sampling frequencies. A bit more complex to allow the switch between 16 and 32 bits.
 

Attachments

  • Capture 8ch 16-bits  96k .jpg
    Capture 8ch 16-bits 96k .jpg
    181.2 KB · Views: 54
I am very interested in your progress for my project !

You mention that the CPU load is very low for processing of 8 channels (15 % (?) on 1 core out of 2). Do you believe the C5 which is single Core would be able to manage similar load?
I would have some additional load from the WiFI transmission as well but I still have the possibility to break down into sub-streams (2*4 channels).

As well, if you are interested in more capable Class D amps, I have listed a few here: i2s Class D Amps
 
Hello Glider95,
It depends I imagine on what you expect the system to do. If you wand the audio to come from USB or Wifi, and the architecture of the system. I don't know the Esp32-C5 but what is needed on my side is a i2s peripheral that can manage TDM 32bits 8channels , and an audio PLL (APLL) which can reach very high frequencies (240MHz for P4). IS it the case for the C5 ? The major point for the P4 is the High Speed USB Phy which is absolutly needed for this type of expected bandwitdh for an USB to i2s bridge

By the way, Waveshare propose modules that integrate a P4 and a C6 for around 10€.
 
Back
Top Bottom