完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
LRADC详解
1、LRADC正常工作需要输入的电压是1.8V。但是,最大不能超过1.8V。 2、LRADC最大能检测的电压值是1.35V。所以即使输入的是1.8V,LRADC读出来的还是1.35V。最小能检测的电压是0V,即直接下拉接地。 (LRADC最大能检测的电压值每款芯片可能不一样,有的芯片是1.2V,详情查看user manual) 3、LRADC的分辨率为6bit,即64个数。当最大检测电压为1.35V时,每一档电压为1350/64=21.1mV,即为LRADC最小能检测电压变化范围。 4、分辨率为6bit,精度是为4bit,理论误差为±84mV。但是经过硬件中的误差纠正后,精度可为5bit,即理论误差为±42mV(这个是理论误差,实际误差要比理论的要小,经过测试最大为±30mV左右的误差)。 5、由于这个误差的存在,在将LRADC用作按键的时候需要注意,尽量把两个按键之间的电压间隔设计大一点,这里推荐最小间隔为**“120mV”**,并且不超过1.2V。(因为当电压超过1.266V后,可认为1.266V~1.35V之间的电压是不准确的。)因此,最大可以设计120mV/240mV/…1200mV等10个档位。 不过,一般在公版上都是设置5个按键档位,硬件设计可参考下图: LRADC拓展 LRADC精度比较低,一般不推荐用其作为普通ADC使用的。那么,除了作为按键使用的话,还可以用作什么用途呢? 这里还推荐一种使用方式,许多客户可能需要在同个板子上使用多种方案,不同方案只有可能有些模块是不一样的,但是固件又只能出一种。这时候,就可以使用LRADC达到区分方案,从而加载不同dts适配各个方案的目的。 首先,可以在硬件中,不同的方案设置不同电阻上/下拉连接到LRADC,使得不同方案输入到LRADC的电压值不一样。比如说,方案A直接10k电阻上拉到1.8V,方案B通过10k电阻下拉到0V。那么,只需要在uboot里调用lradc读电压接口,再稍做判断即可知道当前硬件是属于什么方案,然后再加载不同dts。 lradc读电压接口代码,在uboot里的路径为:u-boot-2018/board/sunxi/sunxi_lradc_vol.c 首先是调用lradc_data_init()对LRADC进行一个初始化,然后再调用lradc_read_data(u32 reg_base)读取实际的电压值,详情使用方法可以参考下方的sunxi_read_lradc_vol(void)函数。 需要注意的是: LRADC默认的采样频率要500Hz,即2ms采样一样,而电压data寄存器需要采样8次才能更新一次电压,所以一共需要至少16ms才能准确读取真实的电压。 因此,在调用LRADC初始化后至少30ms后,才能调用用lradc_read_data去读取电压。 |
|
|
|
只有小组成员才能发言,加入小组>>
604 浏览 0 评论
627 浏览 0 评论
752 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS系统定制开发
1427 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS编译开发说明
799 浏览 0 评论
全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
92378浏览 3评论
2846浏览 1评论
5118浏览 1评论
Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程
16402浏览 1评论
关于全志T113开发板接7寸LCD屏幕显示异常问题的解决方案
1137浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 12:26 , Processed in 0.628875 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号