这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 芯圣HC18M003单片机的模数转换

共2条 1/1 1 跳转至

芯圣HC18M003单片机的模数转换

专家
2023-10-16 23:04:39     打赏

  HC18M003有一个12位转换分辨率的模数转换器,有8个外部模拟输入通道,1个内部电池检测通道。ADC的等效电路:

图片1.png

对TSSOP20封装的芯片,模拟输入端有以下几个引脚:

图片2.png

PIN4 ---AN7, 与PORTA7是同一个引脚

PIN5 ---AN6, 与PORTA6是同一个引脚

PIN8 ---AN4, 与PORTA4是同一个引脚

PIN10---AN0, 与PORTA0是同一个引脚

PIN11---AN8, 与PORTC0是同一个引脚

PIN12---AN9, 与PORTC1是同一个引脚

PIN13---AN11,与PORTD4是同一个引脚

PIN13---AN10,与PORTC2是同一个引脚

因此最多允许使用8ADC输入端。使用时,只需要将对应的IO口设置为模拟输入即可,即通过ANSELx和TRISxx=A\B\C\D设置对应的引脚。例如:

ANSELA = 0x00; // 使PORTA作为模拟口使用

TRISA  = 0x00; // 使PORTA作为输入口使用

一、和ADC有关的寄存器

1、控制寄存器 ADCON0

用于使能某个ADC通道以及启动AD转换。

图片3.png

2、控制寄存器 ADCON1

用于设置ADC的内部参考电压、时钟的分频数、转换数据位数。

图片4.png

3、时钟选择寄存器 ADCLK

用于设置ADC转换频率。

图片5.png

4、转换结果保存寄存器

ADC转换完成后,会把转换结果保存在这些寄存器中。因为共用一套寄存器保存AD结果,所以同一时刻,只能是一个AD转换输入有效。也就是说,不能让8个模拟输入端同时进行AD转换。

图片6.png

二、AD的转换时间

ADC转换一位数据所需的时间定义为TAD,转换一次完整的10位数据需要14个TAD。为确ADC正确转换,必须满足适当的TAD时间。

图片7.png

ADC转换时间(TAD)与工作频率关系表:

图片8.png


注意:

1. 为了加快转换速度,建议选用较快时钟源(ADC转换时钟不能超过4MHz)。

2. 当系统频率高于1 MHz 时,仅当在休眠和绿色模式下进行转换时才推荐使用FRC时钟源。

选择FRC时钟源后,ADC需等待一个指令周期后才能启动转换操作,这使得可以执行SLEEP 指令,以降低转换期间的系统噪声。如果使能了ADC中断,转换完成时将唤醒SLEEP。如果禁止了ADC中断,尽管ADEN位仍保持为1,转换完成后ADC模块将关闭。ADC时钟源不是FRC时,尽管ADEN位仍保持为1,SLEEP指令会导致当前转换中止,ADC模块关闭。

  除了选择FRC时钟源,改变系统时钟频率均会改变ADC的时钟频率,从而影响ADC转换时间。

  ADEN位置1将使能ADC模块,ADON位置1将启动一次ADC转换。ADC转换完成,ADON位硬件清零,ADIF中断标志位置1,ADRESH/ADRESL寄存器值被更新。如果必须在转换完成前终止转换,可用软件将ADON位清零,ADRESH/ ADRESL寄存器将保持前次ADC转换的结果。

 











关键词: 菜鸟学单片机     芯圣     HC18M003     模数转换    

院士
2023-11-22 11:03:00     打赏
2楼

谢谢分享,学习了。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]