请问可以提供2M sps 速率运行的内置ADC的例子吗?

q515949148
Posts: 17
Joined: Wed Jul 25, 2018 8:11 am

请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby q515949148 » Wed Dec 05, 2018 5:53 pm

Datasheet中提到,内置ADC最高的采样速率为2Msps(通过dig控制器),但我无论如何也无法达到这个速率。将配置修改超过1M将导致一系列问题,包括
dma输出全0
ADC采样结果为0,但dma的数据中,指示通道的位非全0(是正常的)
dma输出数据顺序与配置表(如SYSCON.saradc_sar1_patt_tab)中配置的不一致(但配置的每个通道都被采集了)
一段时间内,个别通道的采样次数样式表中的次数(相对于其它通道)多一倍(例如样式表配置0123456701234567按顺序采样16次(与采样位数无关),结果一段时间内,某些通道(例如1通道)的采样次数比其它通道的次数多一倍,其它通道的次数都差不多。)
等问题(详情可以参考
viewtopic.php?t=6537

所以希望乐鑫可以提供一个,能够实现ESP32 Datasheet中提到的,ADC最大以2M sps 采样的例子。
Last edited by q515949148 on Sun Dec 09, 2018 9:10 pm, edited 2 times in total.

costaud
Posts: 53
Joined: Wed Dec 30, 2015 5:09 pm

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby costaud » Thu Dec 06, 2018 4:03 am

您好,我们准备一下示例代码。

q515949148
Posts: 17
Joined: Wed Jul 25, 2018 8:11 am

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby q515949148 » Wed Dec 12, 2018 6:52 am

costaud wrote:
Thu Dec 06, 2018 4:03 am
您好,我们准备一下示例代码。
您好,请问大概需要准备多久。。。

ESP_houwenxiang
Posts: 104
Joined: Tue Jun 26, 2018 3:09 am

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby ESP_houwenxiang » Sat Dec 15, 2018 5:20 am

q515949148 wrote:
Wed Dec 12, 2018 6:52 am
costaud wrote:
Thu Dec 06, 2018 4:03 am
您好,我们准备一下示例代码。
您好,请问大概需要准备多久。。。
Hi, 附件是 ADC 2M AD 采样的示例配置. 2M 是采样率, 4通道平均下来是500K. 采样频率可以降低, 计算公式是 rate = 4M/clkm, 必须是整除, 不然时钟不稳可能会有问题. 由于有些 API 在 IDF 还没有更新, 所以需要手动替换一下
components/driver/rtc_module.c 文件.
Attachments
i2s_adc_scale.tar.gz
(21.56 KiB) Downloaded 458 times
wookooho

q515949148
Posts: 17
Joined: Wed Jul 25, 2018 8:11 am

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby q515949148 » Sun Dec 16, 2018 9:01 am

ESP_houwenxiang wrote:
Sat Dec 15, 2018 5:20 am
q515949148 wrote:
Wed Dec 12, 2018 6:52 am
costaud wrote:
Thu Dec 06, 2018 4:03 am
您好,我们准备一下示例代码。
您好,请问大概需要准备多久。。。
Hi, 附件是 ADC 2M AD 采样的示例配置. 2M 是采样率, 4通道平均下来是500K. 采样频率可以降低, 计算公式是 rate = 4M/clkm, 必须是整除, 不然时钟不稳可能会有问题. 由于有些 API 在 IDF 还没有更新, 所以需要手动替换一下
components/driver/rtc_module.c 文件.
感谢,我正在查看。顺带吐槽一句,为啥会有goto。。。

johnjoe
Posts: 5
Joined: Mon Jun 03, 2019 10:51 pm

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby johnjoe » Mon Jun 03, 2019 11:01 pm

你好:我也想尝试 DIG ADC 2Msps,但mingw32 make 未通过
E:/project/mingw_esp32/i2s_adc_scale/main/app_main.c:47: undefined reference `adc_i2s_scale_mode_init'
collect2.exe: error: ld returned 1 exit status
盼提示!!

johnjoe
Posts: 5
Joined: Mon Jun 03, 2019 10:51 pm

i2s_adc_scale 编译错误 undefined:adc_i2s_scale_mode_init

Postby johnjoe » Tue Jun 04, 2019 3:02 am

ESP_houwenxiang你好:我也想尝试 DIG ADC 2Msps,已下载i2s_adc_scale测试程序,但win10系统下 mingw32 make 未通过,
E:/project/mingw_esp32/i2s_adc_scale/main/app_main.c:47: undefined reference `adc_i2s_scale_mode_init'
collect2.exe: error: ld returned 1 exit status
其他例程编译下载正常,急盼提示!!

ESP_houwenxiang
Posts: 104
Joined: Tue Jun 26, 2018 3:09 am

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby ESP_houwenxiang » Tue Jun 04, 2019 6:06 am

请查看 .h 文件. 将 adc_i2s_scale_mode_init 函数复制到 rtc_module.c 文件中
wookooho

johnjoe
Posts: 5
Joined: Mon Jun 03, 2019 10:51 pm

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby johnjoe » Tue Jun 04, 2019 7:11 am

ESP_houwenxiang你好:我原先图方便在arduino ide 内编译esp32,因无法搞定DIG ADC昨日才转移至wingw32, 已按您的指点.h 文件. 将 adc_i2s_scale_mode_init 函数复制到 rtc_module.c 文件中,make后依然有一大堆错误:

D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c: In function 'adc_i2s_scale_mode_init':
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c:1351:11: error: implicit declaration of function 'adc_set_i2s_data_len' [-Werror=implicit-function-declaration]
ret = adc_set_i2s_data_len(adc_unit, table_len);
^
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c:1356:16: error: implicit declaration of function 'adc_set_i2s_data_pattern' [-Werror=implicit-function-declaration]
ret = adc_set_i2s_data_pattern(adc_unit, i, channel, ADC_WIDTH_BIT_12, ADC_ATTEN_DB_11);
^
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c: At top level:
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c:1381:18: error: static declaration of 'adc_set_i2s_data_len' follows non-static declaration
static esp_err_t adc_set_i2s_data_len(adc_unit_t adc_unit, int patt_len)
^
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c:1351:11: note: previous implicit declaration of 'adc_set_i2s_data_len' was here
ret = adc_set_i2s_data_len(adc_unit, table_len);
^
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c:1396:18: error: static declaration of 'adc_set_i2s_data_pattern' follows non-static declaration
static esp_err_t adc_set_i2s_data_pattern(adc_unit_t adc_unit, int seq_num, adc_channel_t channel, adc_bits_width_t bits, adc_atten_t atten)
^
D:/ESP32/msys32/esp-idf/components/driver/rtc_module.c:1356:16: note: previous implicit declaration of 'adc_set_i2s_data_pattern' was here
ret = adc_set_i2s_data_pattern(adc_unit, i, channel, ADC_WIDTH_BIT_12, ADC_ATTEN_DB_11);
^
cc1.exe: some warnings being treated as errors
make[1]: *** [/esp-idf/make/component_wrapper.mk:286:rtc_module.o] 错误 1
make: *** [D:/ESP32/msys32/esp-idf/make/project.mk:468:component-driver-build] 错误 2
恳请赐教,多谢!

johnjoe
Posts: 5
Joined: Mon Jun 03, 2019 10:51 pm

Re: 请问可以提供2M sps 速率运行的内置ADC的例子吗?

Postby johnjoe » Tue Jun 04, 2019 9:43 am

大家好:终于搞定了i2s_adc_scale 的mingw32 make! 要点是adc_i2s_scale_mode_init 函数复制到 rtc_module.c 文件中adc_set_i2s_data_len,adc_set_i2s_data_pattern函数之后!多谢ESP_houwenxiang提供的例程!

Who is online

Users browsing this forum: No registered users and 2 guests