发帖
3 0 0

Play AiPi-S1 With PikaPython Ⅲ 模数转换

粉肠
金牌会员

6

主题

42

回帖

1437

积分

金牌会员

积分
1437
小安派&M61基本系统教程 981 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.
请问各位老师应该如何减小误差?
──── 0人觉得很赞 ────

使用道具 举报

2023-9-1 23:56:38
mark,坐等大佬
2023-9-2 08:15:45
长知识了
多次测量取平均值
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28100 个
  • 话题数: 39320 篇