【MC56F81768 入门】 ADC 功能介绍

关键字 :NXPMC56F81768ADC

一、简介

1.1目的:

        用 ADC 实现光敏回授侦测,熟悉 MC56F81768 ADC 功能,将模拟量转为数字量。

1.2功能:

        用 GPIOB1 实现 AD 功能,GPIOB1 连接光敏电阻,当该引脚电压大于 2.4V ,GPIOF5 输出低电平(LED8亮);当小于 2.4V 时, GPIOF5 输出高电平(LED8灭)。

1.3工具:

        ① 软件版本:CodeWarrior 11.1

        ② 程序名称:ADC_MC56F81768.zip

        ③ EVM 板:MC56F81000-EVK (详见图 1.3)

        ④ 烧录工具:OSJTAG

        ⑤ 测试工具:示波器

        ⑥ 其它:杜邦线,排针等


图1.3 MC56F81000-EVK

 

 

二、原理介绍

2.1内部框图:


图 2.1 ADC Voltage Reference Circuit



2.2原理介绍:

       嵌入式系统内部处理的是数字量,而在很多情况下,系统需要输入一些模拟量。ADC 是连接嵌入式系统数字世界和模拟世界之间的桥梁,模拟量通过 ADC 转换为数字量,再由嵌入式系统进行处理。ADC 是用于模数转换的基本模块。MC56F81768 的 ADC 模块由两个独立的模数转换器(ADCA 和 ADCB)组成,每个转换器有8个模拟输入和它自己的 12 位采样和保持电路。

       SIM_GPSxL是外设选择寄存器。每个引脚有一个或者一个以上的外设模式,所以当GPIOn_PER设置为1时(即外设模式),可以通过SIM_GPSxL寄存器选择所需的外设功能。只有一种外设功能的引脚则不需要配置此寄存器。

       ADC_CTRL1是 ADC 控制寄存器1,可以通过配置该寄存器选择不同扫描模式、选择单端输入或差分输入模式、使能A/D转换完成中断、使能过零错误中断触发、使能下限溢出错误中断、使能上限溢出错误中断、使能同步信号来触发 ADC 进行扫描、使能 DMA 等。需要注意的是顺序扫描时,使能采样必须从 Sample0 开始严格按照从前到后的顺序使能;在并行扫描模式时,转换器 A 转换样本0-7,转换器 B 转换样本8-15。

       ADC_CTRL2 是 ADC 控制寄存器2,可以通过配置该寄存器选择时钟分频,当 ADC 扫描模式选择为并行扫描时,可通过该寄存器配置为独立并行扫描或同步并行扫描。在同步模式下,转换器A和B总是同步进行扫描,当其中任意一个转换器停止扫描时,另一个转换器也将会停止;在独立模式下,转换器A和B有自己独立的控制器控制它的操作和报告它的状态,转换器A扫描 Sample0~7,转换器B扫描 Sample8~15,每个转换器将持续扫描直到耗尽其样本列表 ( 8 个样本 ) 或在其列表中遇到一个禁用的样本。

       ADC_SDIS 是 ADC 样本禁用寄存器,该寄存器的 0~15 位分别对应Sample0~15,在对应的位写入 1 则禁用对应的 Sample。

       ADC_CLISTx 是通道列表寄存器,ADC_CLIST1 对应 Sample0~3,ADC_CLIST2 对应Sample4~7,ADC_CLIST3 对应 Sample8~11,ADC_CLIST4 对应 Sample12~15。需要注意的是在并行扫描模式下,Sample0~7 对应的 GPIO 端口必须是 GPIOA0~7,Sample8~15 对应的 GPIO 端口必须是 GPIOA8~15。

       ADC_CAL 是 ADC 校准寄存器,用于选择 VREFH 和 VREFL 的参考电压。

       ADC_PWR 是 ADC 电源控制寄存器,这个寄存器控制 ADC 模块的电源管理功能。使用 ADC 功能时需要配置该寄存器对 ADC 转换器进行上电。

       ADC_ RSLTx 是 ADC 的结果寄存器,用于存放采样的结果,ADC_ RSLT0~15 对应 Sample0~15。需要注意的是该寄存器的0~2位是保留的,所以采样后 ADC_ RSLTx 的结果需要右移3位才是真实的结果。

 

 

三、软件设计

3.1总述:

        ADC 一般配置流程如下:

        ① ADC 初始化。

        ② 启动 ADC 转换。

        ③ 获取 ADC 转换结果。

 

3.2 ADC 相关公式:

        单端采样:SingleEndedValue = round((( VIN – VREFL )/( VREFH – VREFL )) × 4096 ) × 8

        差分采样:DifferentialValue = round (( VIN1-VIN2 )/(VREFH - VREFL) × 2048 + 2048 ) × 8

                          UnipolarDifferentialValue = round(( VIN1 – VIN2 )/( VREFH – VREFL ) × 4096 ) × 8

        备注:一般 VREFH = VDDA; VREFL = VSSA ,也可从外部输入。

 

3.3 信号流程图:






3.4 code 配置:

        如下进行 code 配置。

 

              

   

 

四、测试结果

4.1电路:

        如下图 GPIOB1 (光敏电阻) & GPIOF5 ( LED )与示波器的连接如下图。


图 4.1.1 开发板与示波器连接示意图

 

  


图 4.1.2 开发板与示波器连接实物图

 

 

4.2测试波形:

        Channel1 – GPIOB1 ;Channel2 – GPIOF5


图4.2 ADC采样波形



4.3波形分析:

        由上图可知无遮光时,Channel1电压为2.16 V(光照越强光敏电阻阻值越小,故分压越小),此时Channel2 为高电平(LED灭);遮光后Channel1电压逐渐上升,当电压达到2.44V时,Channel2电压由高电平跳变到低电平,这与程序设的2.4V判断条件相符合。

 

 

4.3 实物展示:


图4.3-1遮住光线时灯亮






图4.3-1不遮光线时灯灭

 

五、参考资料

5.1 MC56F817xx Reference Manual ( 数据手册 )

5.2 MC56F81000-EVK Schematics ( EVM 电路图 )

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论