以太网发送数据时会影响AD数据采集的精度

采用AD1进行AD连续采集,DMA自动搬运到u16 buf[480]的缓存内。开启DMA的HT和TC中断。产生中断时设置对应的标志位。在Main循环中判断标志位为真则将缓存通过UDP发送出去,HT中断则发送出去buf的前240个,TC中断则发送出去buf的后240个。发现发送出来的AD 数据会有特定的数据明显偏高或偏低。怀疑时网口发送数据时造成的AD误差。

Snipaste_2023-03-05_14-09-43.jpg


您好,为排除以及确认问题原因,可以先尝试注释掉以太网部分代码,仅使用ADC部分代码查看一下AD数据采集是否会有问题。此外,可以注意一下ADC采样源是否是自己预想的信号波形,若你用的是CH32系列的MCU,在ADC采集中都有校准函数,可以加上校准函数试一下,具体可参考对应EVT的ADC例程。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通


1678108624164120.jpg

1678108624108050.jpg

1678108625207892.jpg

上面是做的一些验证操作的结果。


1678109572131805.jpg

1678109572259694.jpg

1678109572927569.jpg


通过示波器测量输入信号,发现输入信号会随以太网发送指令产生电压波动。

目前硬件是采用的官方开发板。

麻烦给个可以避免上述现象layout的建议。


这很像是电源问题。也就是以太网的PHY工作时电源不足或者布线不合理等引起的电源噪声问题?

其他单片机的话,一般都是有独立的ADC Vref,而CH32好像没有,所以只能整个大容量的电源加LDO及磁珠且加大铝电解电容??

或者直接用一节干电池作为输入而不要VDD电阻分压就不会有这种问题了?


1、在VCC和GND之间增加一个220uF的电解电容没有效果。

2、再5V和GND之间增加一个220uF的电解电容有所改善,但依旧不理想。

下图是在5V和GND之间并一个220uF的电解电容的效果。

111.jpg


您好,这边做了ADC单独运行与ADC+UDP运行的对比测试(采样固定2V直流信号)。测试结果如下:

image.png

波动范围在误差允许范围内,且开启UDP后对ADC采样无明显影响。附测试代码。

icon_rar.gifV307_ADC_UDP.zip

若对测试有疑问可通过邮箱联系:zl@wch.cn


只有登录才能回复,可以选择微信账号登录