espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.46k stars 7.25k forks source link

adc Samples delivered in wrong order / dropped on ESP32 / continuous read with more than 2 channels (IDFGH-9250) #10636

Open Kurs270 opened 1 year ago

Kurs270 commented 1 year ago

Answers checklist.

IDF version.

v5.1-dev-3035-gd825753387

Operating System used.

Windows

How did you build your project?

VS Code IDE

If you are using Windows, please specify command line type.

CMD

Development Kit.

Esp32-wrover

Power Supply used.

USB

What is the expected behavior?

I changed examples/peripherals/adc/continuous_read/main/continuous_read_main.c to use 4 instead of only 2 adc channels.

//static adc_channel_t channel[2] = {ADC_CHANNEL_6, ADC_CHANNEL_7}; static adc_channel_t channel[] = {ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6, ADC_CHANNEL_7};

I would expect the program output to be: I (396) TASK: ret is 0, ret_num is 256 I (396) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: c07 I (396) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: 8e6 I (416) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 28b I (406) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (426) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: ede I (416) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: 98b I (436) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 390 I (436) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff ...and so on.

What is the actual behavior?

However, the samples are delivered in arbitrary, non-constant order like this. (Samples are ordered in a non-reproducible manner, samples are left out/dropped etc..)

I (396) TASK: ret is 0, ret_num is 256 I (396) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: 8e6 I (396) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: c07 I (406) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (416) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 28b I (416) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: 98b I (426) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: ede I (436) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (436) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 390 I (446) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (446) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff I (456) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: b40 I (466) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff I (466) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (476) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 561 I (476) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: c3f I (486) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff I (496) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (496) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 643 I (506) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (506) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 71b I (516) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: e2d I (526) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff I (526) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff I (536) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 7ef I (536) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: f11 I (546) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff I

Steps to reproduce.

do the above changes to continuous_read_main.c, i.e. modify line 36 to read like this: static adc_channel_t channel[] = {ADC_CHANNEL_4, ADC_CHANNEL_5, ADC_CHANNEL_6, ADC_CHANNEL_7};

compile, flash and run.

Debug Logs.

S C:\Projekte\EspSamples\continuous_read> set IDF_PATH=c:\devtools\esp\esp_idf_5_1_1\esp-idf
PS C:\Projekte\EspSamples\continuous_read> C:\devtools\Espressif\python_env\idf5.1_py3.8_env\Scripts\python.exe c:\devtools\esp\esp_idf_5_1_1\esp-idf\tools\idf_monitor.py -p COM7 -b 115200 --toolchain-prefix xtensa-esp32-elf- --target esp32 c:\Projekte\EspSamples\continuous_read\build\continuous_read.elf
--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM7 instead...
--- idf_monitor on \\.\COM7 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
2mI (5446) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff�ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:6976
load:0x40078000,len:15492
ho 0 tail 12 room 4
load:0x40080400,len:3844
0x40080400: _init at ??:?

entry 0x4008064c
I (29) boot: ESP-IDF v5.1-dev-3035-gd825753387-dirty 2nd stage bootloader
I (29) boot: compile time Jan 27 2023 19:27:53
I (31) boot: chip revision: v3.0
I (35) boot.esp32: SPI Speed      : 40MHz
I (40) boot.esp32: SPI Mode       : DIO
I (45) boot.esp32: SPI Flash Size : 4MB
I (49) boot: Enabling RNG early entropy source...
I (55) boot: Partition Table:
I (58) boot: ## Label            Usage          Type ST Offset   Length
I (65) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (73) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (80) boot:  2 factory          factory app      00 00 00010000 00100000
I (88) boot: End of partition table
I (92) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0a1b8h ( 41400) map
I (109) esp_image: segment 1: paddr=0001a1e0 vaddr=3ffb0000 size=01e70h (  7792) load
I (111) esp_image: segment 2: paddr=0001c058 vaddr=40080000 size=03fc0h ( 16320) load
I (122) esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=14e00h ( 85504) map
I (143) esp_image: segment 4: paddr=00034e28 vaddr=40083fc0 size=08ef8h ( 36600) load
I (159) boot: Loaded app from partition at offset 0x10000
I (160) boot: Disabling RNG early entropy source...
I (171) cpu_start: Pro cpu up.
I (171) cpu_start: Starting app cpu, entry point is 0x4008117c
0x4008117c: call_start_cpu1 at C:/devtools/esp/esp_idf_5_1_1/esp-idf/components/esp_system/port/cpu_start.c:150

I (0) cpu_start: App cpu up.
I (185) cpu_start: Pro cpu start user code
I (185) cpu_start: cpu freq: 160000000 Hz
I (185) cpu_start: Application information:
I (190) cpu_start: Project name:     continuous_read
I (196) cpu_start: App version:      1
I (200) cpu_start: Compile time:     Jan 27 2023 19:26:01
I (206) cpu_start: ELF file SHA256:  99b6a06d62f64e8b...
I (212) cpu_start: ESP-IDF:          v5.1-dev-3035-gd825753387-dirty
I (219) cpu_start: Min chip rev:     v0.0
I (224) cpu_start: Max chip rev:     v3.99 
I (229) cpu_start: Chip rev:         v3.0
I (234) heap_init: Initializing. RAM available for dynamic allocation:
I (241) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (247) heap_init: At 3FFB2760 len 0002D8A0 (182 KiB): DRAM
I (253) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (259) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (266) heap_init: At 4008CEB8 len 00013148 (76 KiB): IRAM
I (274) spi_flash: detected chip: generic
I (277) spi_flash: flash io: dio
I (281) app_start: Starting scheduler on CPU0
I (286) app_start: Starting scheduler on CPU1
I (286) main_task: Started on CPU0
I (296) main_task: Calling app_main()
I (296) EXAMPLE: adc_pattern[0].atten is :0
I (296) EXAMPLE: adc_pattern[0].channel is :4
I (306) EXAMPLE: adc_pattern[0].unit is :0
I (306) EXAMPLE: adc_pattern[1].atten is :0
I (316) EXAMPLE: adc_pattern[1].channel is :5
I (316) EXAMPLE: adc_pattern[1].unit is :0
I (326) EXAMPLE: adc_pattern[2].atten is :0
I (326) EXAMPLE: adc_pattern[2].channel is :6
I (336) EXAMPLE: adc_pattern[2].unit is :0
I (336) EXAMPLE: adc_pattern[3].atten is :0
I (346) EXAMPLE: adc_pattern[3].channel is :7
I (346) EXAMPLE: adc_pattern[3].unit is :0
I (356) gpio: GPIO[32]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
I (366) gpio: GPIO[33]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
I (376) gpio: GPIO[34]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
I (386) gpio: GPIO[35]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
I (396) TASK: ret is 0, ret_num is 256
I (396) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: 8e6
I (396) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: c07
I (406) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (416) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 28b
I (416) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: 98b
I (426) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: ede
I (436) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (436) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 390
I (446) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (446) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (456) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: b40
I (466) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (466) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (476) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 561
I (476) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: c3f
I (486) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (496) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (496) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 643
I (506) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (506) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 71b
I (516) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: e2d
I (526) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (526) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (536) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 7ef
I (536) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: f11
I (546) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (556) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fdf
I (556) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 8bd
I (566) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (566) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: 97f
I (576) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (586) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (586) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (596) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: a45
I (606) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (606) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (616) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (616) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (626) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (636) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: b95
I (636) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (646) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (646) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (656) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: c34
I (666) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (666) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (676) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (676) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (686) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (696) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: d3e
I (696) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (706) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (706) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (716) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: db0
I (726) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (726) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: e1c
I (736) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (746) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (746) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (756) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: e79
I (756) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (766) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (776) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (776) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: ec5
I (786) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (786) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: f0e
I (796) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (806) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (806) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (816) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: f4c
I (816) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (826) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (836) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (836) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (846) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (846) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: faf
I (856) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (866) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (866) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (876) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fd4
I (876) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (886) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (896) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (896) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (906) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (916) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (916) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (926) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (926) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (936) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (946) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (946) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (956) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (956) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (966) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (976) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (976) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (986) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (986) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (996) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1006) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1006) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1016) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1016) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1026) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1036) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1036) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1046) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1056) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1056) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1066) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1066) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1076) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1086) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1086) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1096) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1096) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1106) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1116) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1116) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1126) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1136) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1136) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1146) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1146) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1156) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1166) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1166) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1186) TASK: ret is 0, ret_num is 256
I (1186) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1186) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1196) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1196) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1206) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1206) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1216) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1226) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1226) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1236) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1246) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1246) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1256) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1256) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1266) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1276) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1276) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1286) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1286) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1296) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1306) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1306) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1316) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1326) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1326) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1336) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1336) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1346) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1356) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff
I (1356) EXAMPLE: Unit: ADC_UNIT_1, Channel: 6, Value: fff
I (1366) EXAMPLE: Unit: ADC_UNIT_1, Channel: 5, Value: fff
I (1366) EXAMPLE: Unit: ADC_UNIT_1, Channel: 4, Value: fff
I (1376) EXAMPLE: Unit: ADC_UNIT_1, Channel: 7, Value: fff

More Information.

The program runs on a development board with all the inputs left open, so I don't know if the values displayed are correct. Anyway, the values should appear in exactly the configured order.

Icarus113 commented 1 year ago

@Kurs270 Hi, thanks for your report, I can reproduce the scenario. From my immediate idea, this might because the pattern table of the ESP32 is different with other chips.

We'll check this and let you know the updates.

Icarus113 commented 1 year ago

@Kurs270 I'm very sorry that the ESP32 ADC DMA mode isn't easy to use.

The ESP32 ADC uses I2S0 DMA to finish its data tranaction (from ADC -> DMA -> memory). However, the ESP32 I2S is not easy to use..

image

See this picture, as ESP32 ADC result is 16bit, so even:

I'm very sorry as I can't make it out, the ESP32 is been a long time... I've recorded this and will try the best to push this process.

What I can suggest now is:

I will also update the programming guide for this issue, at least you guys should have a known issue note.

hephaisto commented 1 year ago

I have the same problem. Did I understand correctly that there will be no fix for this?

baechipower commented 3 months ago

I just noticed a similar problem on the ESP32S3 with 8 channels used as in Espressif's Arduino example. It seems that the sampling frequency plays a role. However the channel order stays the same with a given configuration and seems not to change non-deterministically.