Play AiPi-S1 With PikaPython Ⅲ 模数转换

[复制链接]
查看773 | 回复3 | 2023-9-1 23:37:28 | 显示全部楼层 |阅读模式
大家好呀,今天这条帖子其实是想和大家讨论,向大家请教的。
PikaPython已经适配了BL618芯片的ADC,我们查看PikaPython的模块API文档,可以看到相关信息。
1.png
2.png
看起来比较简单,只需要给定一个有ADC输入通道的管脚,对其使能即可。
具体管脚可以查看Ai-M62-32S的数据手册。
在翻阅了博流官方的数据手册之后,我找到下面的信息:
3.png
我们都知道,ADC的测量范围是VRef-~VRef+。这里提到可以支持2.0V和3.2V的参考电压,而在PikaPython文档中却没有选择参考电压的相关函数。
我在后面的测试中对芯片施加0~3.3V的输入电压来反推其参考电压。
假定其参考电压为2V,那么它的分辨率是2/2^12=0.00048V,即1LSB=0.00048V
由于没有给出更多的信息,比如积分非线性(INL)和微分非线性(DNL)等信息,这里我无法估计ADC的精度。
4.png
这里可以参考ESP32-S3数据手册给出的数据
简单的测试代码
  1. import PikaStdLib
  2. import machine
  3. import time

  4. adc = machine.ADC()
  5. adc.setPin('P28')
  6. adc.enable()

  7. while True:
  8.     val = adc.read()
  9.     print(val)
  10.     time.sleep(5)
复制代码
通过电位器分压,给芯片提供输入电压,同时万用表也测量该点电压做对比。
IMG_1197(20230901-231112).JPG
看看效果:
1.
IMG_1211(20230901-234038).JPG
2.
IMG_1215(20230901-234056).JPG
3.
IMG_1201(20230901-231142).JPG
4.
IMG_1199(20230901-231124).JPG
5.
IMG_1205(20230901-231219).JPG
6.
IMG_1207(20230901-231513).JPG
对比print出来的ADC测得的电压和我的万用表测得的电压,发现误差非常之大。除此之外,ADC测得值最高不超过2V,我因此认为默认参考电压是2V.
请问各位老师应该如何减小误差?

本帖被以下淘专辑推荐:

回复

使用道具 举报

jkernet | 2023-9-1 23:56:38 | 显示全部楼层
mark,坐等大佬
回复 支持 反对

使用道具 举报

不是你的猫 | 2023-9-2 08:15:45 来自手机 | 显示全部楼层
长知识了
回复

使用道具 举报

18350766600@139 | 2023-9-3 19:43:01 | 显示全部楼层
多次测量取平均值
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则