松翰单片机--SN8F5702学习笔记(四)ADC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28877125/article/details/84885534

简介

 模数转换器(ADC)是SAR结构1,具有10个输入源,最高4096阶分辨率,将模拟信号传输到12位数字缓冲器。ADC建立在10通道输入源中,以测量10种不同的模拟信号源。ADC分辨率为12位。ADC具有四个时钟速率来决定ADC转换速率。ADC参考电压包括5个源。四个内部参考电源包括VDD,4V,3V和2V。另一个是来自AVREFH引脚的外部参考电压输入引脚。ADC在P1CON/PUCON寄存器中建立,以设置纯模拟输入引脚。ADC和ADS位设置后,ADC开始将模拟信号转换为数字数据。除了ADS位可以开始转换模拟信号外,PW1EN还具有转换模拟信号的ADC功能。ADC可以在空闲模式下工作。ADC运行后,如果中断启用,系统将从绿色模式唤醒到正常模式。
在这里插入图片描述

ADC的配置流程

在开始ADC转换之前,必须完全设置这些配置,使用以下步骤配置ADC:

  • 1、选择并启用转换开始ADC输入通道。 (通过CHS [3:0]位和GCHS位)
  • 2、必须将ADC输入通道的GPIO模式设置为输入模式。 (通过PnM寄存器)
  • 3、必须禁止ADC输入通道的内部上拉电阻。 (通过PnUR寄存器)
  • 4、必须设置ADC输入通道的配置控制位。 (通过PnCON寄存器)
  • 5、选择ADC高参考电压。 (通过VREFH寄存器)
  • 6、选择ADC时钟速率。 (通过ADCKS [1:0]位)
  • 7、设置ADENB位后,ADC准备将模拟信号转换为数字数据。

在这里插入图片描述
所以配置流程变成代码就是:

void InitAD(void)
{
    // 设置通道
    ADM = 0x80;          // bit7置1使能ADC通道,低功耗模式下通过bit7置0来禁止ADC通道以降低功耗
    ADM |= 0x02;         // 低四位是ADC通道,P12、AIN2,具体参考ADC输入通道
    
    // 设置时钟频率
    ADR = 0x40;
    ADR |= 0x00;         // 00 = fosc/16, 01 = fosc/8, 10 = fosc/1, 11 = fosc/2 
    // 设置参考电压源
    VREFH = 0x00;        // bit内部参考电压
    VREFH |= 0x02;       // 内部参考电压4V
    // 输入引脚配置
    P1CON |= 0x0c;		 //
    P2CON |= 0;
}

开始转换

 当ADENB位使能ADC IP时,需要通过程序进行ADC启动。除ADS位可以开始转换模拟信号外,PW1EN还具有转换模拟信号ADC功能。转换可以通过以下方式之一启动:

● 向寄存器ADM的ADS位写入1
● 当ADPWS位为“1”时,PWM1使能。

 在设置ADENB和ADS位后,ADC开始将模拟信号转换为数字数据。转换完成后,ADS位复位为逻辑0.当转换完成时,ADC电路将EOC和ADCF位设置为“1”,数字数据输出设置为ADB和ADR寄存器。如果ADC中断功能使能(EADC = 1),ADC转换后,当ADCF为“1”时,ADC中断请求发生并执行中断服务程序。在中断过程中需要通过程序清除ADCF。
注意,当ADPWS位为“1”时,如果将PWM使能触发用作转换源,则ADC将持续转换,直到禁用PWM。

ADC输入通道

 ADC内置10通道输入源(AIN0 - AIN9),用于测量由CHS [3:0]和GCHS位控制的10个不同模拟信号源.AIN1为内部2V或3V或4V输入通道。外面没有任何输入引脚。此时ADC参考电压必须是内部VDD和外部电压,而不是内部2V或3V或4V。 AIN10可以成为电池系统的良好电池检测器。为了选择合适的内部AVREFH电平并比较值,系统内置了一个高性能,低成本的低电池检测器。

ADC输入通道:
在这里插入图片描述

以下为ADC外设的电气特性表:

在这里插入图片描述
 由上表可以看到,参考电压的使用,比如在 Viref 选择 内部2V参考电压、VDD为5V时,参考电压有正负0.04V的电压漂移。


  1. 逐次逼近寄存器型(SAR)模拟数字转换器(ADC)是采样速率低于5Msps (每秒百万次采样)的中等至高分辨率应用的常见结构。SAR ADC的分辨率一般为8位至16位,具有低功耗、小尺寸等特点。这些特点使该类型ADC具有很宽的应用范围,例如便携/电池供电仪表、笔输入量化器、工业控制和数据/信号采集等。 ↩︎

猜你喜欢

转载自blog.csdn.net/qq_28877125/article/details/84885534
今日推荐