X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
汽车电子
[原创] 雅特力车规级MCU-AT32A403A开发板评测 14 ADC外设测试案例 RT-Thread ADC设备驱动测试
みずじ
2024-3-9 11:12
楼主
## 雅特力车规级MCU-AT32A403A开发板评测 14 ADC外设测试案例 RT-Thread ADC设备驱动测试 ### 1. 软硬件平台 1. AT32A403A Board开发板 2. MDK-ARM Keil 3. RT-Thread V4.1版本源码 4. ADC
### 2. ADC ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。 AT32A403A系列产品,内嵌3个12位的模拟/数字转换器(ADC),共享多达16个外部通道,可以实 现单次或序列转换。在序列模式下,自动进行在选定的一组模拟输入上的转换。 ADC接口上的其它逻辑功能包括: - 同时的采样和保持 - 位移的采样和保持 - 单次采样
输入管脚介绍: VDDA :模拟电源,ADC 模拟电源 VSSA :模拟电源地,ADC 模拟电源地 VREF+ :模拟参考正极,ADC 使用的高端/正极模拟参考电压 VREF- :模拟参考负极,ADC 使用的低端/负极参考电压 ADCx_IN :模拟输入信号通道 #### 转换过程 如下图所示模数转换一般要经过采样、保持和量化、编码这几个步骤。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。
采样是将时间上连续变化的模拟信号转换为时间上离散的模拟信号。采样取得的模拟信号转换为数字信号都需要一定时间,为了给后续的量化编码过程提供一个稳定的值,在采样电路后要求将所采样的模拟信号保持一段时间。 将数值连续的模拟量转换为数字量的过程称为量化。数字信号在数值上是离散的。采样保持电路的输出电压还需要按照某种近似方式归化到与之相应的离散电平上,任何数字量只能是某个最小数量单位的整数倍。量化后的数值最后还需要编码过程,也就是 A/D 转换器输出的数字量。 #### 分辨率 分辨率以二进制(或十进制)数的位数来表示,一般有8位、10位、12位、16位等,它说明模数转换器对输入信号的分辨能力,位数越多,表示分辨率越高,恢复模拟信号时会更精确。 #### 精度 精度表示 ADC 器件在所有的数值点上对应的模拟值和真实值之间的最大误差值,也就是输出数值偏离线性最大的距离。 注:精度与分辨率是两个不一样的概念,请注意区分。 #### 转换速率 转换速率是指 A/D 转换器完成一次从模拟到数字的 AD 转换所需时间的倒数。例如,某 A/D 转换器的转换速率为 1MHz,则表示完成一次 AD 转换时间为 1 微秒。 #### 3. RT-Thread 访问 ADC 设备 API接口 应用程序通过 RT-Thread 提供的 ADC 设备管理接口来访问 ADC 硬件,相关接口如下所示: **find read wirte close open这些操作都是类似linux中的操作,一切都是文件** | **函数** | **描述** | | ---------------- | ------------------------------------- | | rt_device_find() | 根据 ADC 设备名称查找设备获取设备句柄 | | rt_adc_enable() | 使能 ADC 设备 | | rt_adc_read() | 读取 ADC 设备数据 | | rt_adc_disable() | 关闭 ADC 设备 | ### 4. RT-Thread ADC设备驱动测试 1. 在RT-Thread工程模板下,添加相关adc驱动
2. 添加相关头文件
3. 添加宏定义
4. 添加ADC测试案例代码 https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/adc/adc?id=adc-%e7%ae%80%e4%bb%8b ```c #include
#include
#include "board.h" #include "drv_gpio.h" #include "drv_adc.h" #define ADC_DEV_NAME "adc1" /* ADC 设备名称 */ #define ADC_DEV_CHANNEL 5 /* ADC 通道 */ #define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1 << 12) /* 转换位数为12位 */ static int adc_vol_sample() { rt_adc_device_t adc_dev; rt_uint32_t value, vol; rt_err_t ret = RT_EOK; /* 查找设备 */ adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) { rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME); return RT_ERROR; } /* 使能设备 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); /* 读取采样值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); rt_kprintf("the value is :%d \n", value); /* 转换为对应电压值,3.3V对应12位最大值4096,数据精度乘以100保留2位小数 */ vol = value * 330 / 4096; rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100); /* 关闭通道 */ ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL); return ret; } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample); int main() { rt_kprintf("at_start_a403a board testing 2024-03-09 [ok]\r\n"); rt_kprintf("at_start_a403a board rtos rt-thread v4.10 [ok] \r\n"); rt_kprintf("at_start_a403a board rt-thread drv_adc [ok] \r\n"); adc_vol_sample(); } ``` 5. 测试效果 1. 开机效果
2. ADC设备
3. 把PA5(ADC1 通道5)接到GND,然后拔掉
### 评测案例计划汇总 [AT32评测汇总文章](https://end-ing.gitee.io/embedded-mcu-note-doc/%E9%9B%85%E7%89%B9%E5%8A%9B%E7%A7%91%E6%8A%80AT32/index.html "AT32评测汇总文章")
本帖最后由 みずじ 于 2024-3-9 11:18 编辑
点赞
回复评论 (1)
沙发
Jacktang
雅特力的车规级MCU-AT32A403A也是够强大了
点赞
2024-3-10 15:01
最新活动
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
随便看看
请教:有关x86系统内存物理地址和IO设备地址
iq格式问题
关于FMD驱动是否需要互斥的讨论??
stm32 printf函数实现方法
想学一下51,希望各位能推荐一款开发板,谢谢。
[KW41Z]光剑 总算把电源IC确定了
电源旁路——SPICE 仿真与现实的差距
Android 端能不能通过WiFi发送两位的整数给 ZigBee?如果可以,该怎么做?
四轴飞行器资料
万用表使用从入门到精通
MSP430FR5739 实现应用至物联网的连接
求lmk04826B5例程
buck电路计算电感的问题,求助啊!
要做个东西,遇到麻烦了!变压器输出能力变不了
【TI首届低功耗设计大赛】关于通信接口的问题讨论
现在CCTV2正在播放关于工业机器人的
LPS27HHW MEMS压力传感器相关资料
上次问了专业画图需要学习焊接么,那调试呢
symbian 视频教程
PCB拼板方式及注意事项
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复