资讯详情

单片机采样学习记录

最近学习了单片机的采样过程,结合学习材料记录总结了具体过程,记录了学习过程,方便以后复习。 dsPIC33EP128MC506单片机有一台ADC模块最多可支持16个模拟输入引脚ADC模块配置为10位4通道采样/保持,12位单通道采样/保持模式。

  1. 逐次逼近(Successive Approximation Register SAR)转换
  2. 最高转换速度可达1.1 Msps
  3. 同时采样: 最多4个模拟输入引脚
  4. 可选择转换接触源
  5. 四个结果对齐选项(有符号/无符号,小数/整数)

  1. 输入电压信号连接到采样电阻
  2. 断开采样电容器与输入连接,
  3. 存储的电压值得数字位置

Start of conversion 开始转换

1.采样时间是模拟输入连接到采样电容的时间

2.在转换周期内,采样电容断开与多路开关连接,存储的电压等值为转换时间。

模式1:手动采样和手动转换

  1. 将SAMP位(ADCCON1<1>)置1启动采样;
  2. 将SAMP位清零开始转换;
  3. 转换完成;
  4. 将SAMP位置1启动采样;
  5. 将SAMP位清零开始转换

模式2:自动采样和手动转换

  1. 采样将在前一个采样的转换完成之后自动开始
  2. 将SAMP位清零开始转换
  3. 转换完成。采样将在前一次采样转换完成后自动开始
  4. 将SAMP位清零开始转换

模式3:自动采样和自动转换

  1. 转换后自动启动采样
  2. 自定时采样周期终止时自动启动转换
  3. 转换后自动启动采样
  4. 自定时采样周期终止时自动启动转换

  1. 选定的模拟输入连接到采样电阻
  2. 发生SOC触发时,CH0-CH采样电容器从多路开关断开,同时采样模拟输入。CH0中捕获的模拟值转换等值的数字位
  3. 3/4/5 CH模拟电压在1/2/3中被转换为等值的数字位
  4. 选定的模拟输入连接到采样电容器
  5. 发生SOC触发时,CH0-CH采样电容器从多路开关断开,同时采样模拟输入。CH0中捕获的模拟值转换等值的数字位

为了使ADC当模块达到规定的精度时,必须保持充电电容CH0LD充分充电至模拟输入引脚上的电压。模拟输出信号源阻抗RS、电影中等效电阻的布线RIC阻抗内部采样开关RSS共同直接影响电容CH0LD充电所需的时间。因此,合并的源阻抗必须足够小,以便在电容在所选采样时间内完全放电。为了将引脚泄漏电流对准ADC最块精度的影响最小化,建议使用最大信号源阻抗RS为200R。在选择模拟输入通道后,必须在启动转换前完成采样工作。每次采样操作前,内部电容将保持放电。

RAM数据自动格式化为10位或12位宽的四种可选格式之一。FORM<1:0>位(AD1CON1<9:8>)用于选择格式。格式化硬件为数据总线上的所有数据格式提供16个结果

  1. 禁止ADC模块-AD1CON1<15> = 0;

2. AD1CON1寄存器配置-AD1CON1 = 0x001c;

  1. ADC继续在空闲模式下工作(ADSIDL = 0)
  2. 选择10位4通道ADC工作模式(AD12B = 0)
  3. 数据输出格式为整数(FORM<1:0> == 0)
  4. 采样触发源选择PWM发生器1主触发比较结束,启动转换(SSRCG =1, SSRC<2:0> == 000)
  5. 同时采样CH0/1/2/3(SIMSAM = 1)
  6. 上次转换结束后立即开始采样;SAMP位自动置1(ASAM = 1)

3. AD1CON2寄存器配置-AD1CON2 = 0x0200

  1. 转换器参考电压选择VREFH为AVDD, VREFL为AVSS(VCFG<2:0> = 000)
  2. 选择转换通道CH0/1/2/3(CHPS<1:0> = 10)
  3. 每次采样/转换操作完成后中断(SMPI<4:0> = 0000)
  4. 缓冲区总是从起始地址开始填充(BUFM = 0)
  5. 采样多路开关总是开关MUXA选择输入通道

4. AD1CON3寄存器配置-AD1CON3 = 0x0004

  1. ADC转换时钟源的选择由系统时钟产生(ADRC = 0)
  2. 自动采样时间为0TAD(SAMC<4:0> = 00000)
  3. ADC选择转换时钟TAD = 5*Tp(ADCS<7:0> = 00000100)

5. AD1CON4寄存器配置-AD1CON4 = 0x0000(不使用DMA)

  1. 禁止DMA(ADDMAEN = 0)
  2. 不使用DMA缓冲单元(DMABL<2:0> = 000)

6 . AD1CHS123寄存器配置-AD1CHS123 = 0x0000

7. AD1CHS0寄存器配置-AD1CHS0 = 0x0303

8. AD1CSSH寄存器配置-AD1CSSH = 0x0000

9. AD1CSSL寄存器配置-AD1CSSL = 0x0000

10. 使能ADC模块-AD1CON1<15> = 1

配置步骤:

  1. I0端口的配置

RB8配置为模拟输入引脚(已初始化)

  1. 参考电压输出配置CVRCON-CVRCON = 0x00c8

  1. 使能比较器参考电压(CVREN = 1)
  2. 参考电压1输出比较器(CVR10E = 1)
  3. 比较器参考电压范围选择CVRSRC/32步长(CVRR = 0)
  4. 比较器参考电压源的选择CVRSRC = AVDD-AVSS(CVRSS&nsp; = 0)
  5. 比较器参考电压值为8(CVR<3:0> = 1000)

 

 

        ADC模块时钟源选择系统时钟源,配置ADC1位4通道自动同时采样模式,并使用PWM发生器1主触发比较结束采样并开始转换。数据格式为整数格式,CH0通道依次选择AN3(Vbus)、AN4(旋钮电压)、AN6(Ibus),初始配置选择AN3,CH1/2/3通达固定选择AN0(Ia)、AN1(Ib)、AN2(Ic),转换完成需要进行转换完成中断,在中断种将转换完成的结果使用SPI1模块传送到4个ADC输出通道,将转换结果与实际结果对比是否正确。、

static void INIT_SECTION McuCompInitialize(void)

{

    CVRCON = CVRCON_INIT; //配置为0x0c8

}

 

static void INIT_SECTION McuAdcInitialize(void)

{

AD1CON1bits.ADON = 0;

//禁止ADC模块

 

AD1CON1 = AD1CON1_INIT;   

//0x001c 选择10位4通道采样,数据输出格式为无符号整型,PWM发烧友衡器1主触发结束采样并开始转换,自动采样

 

AD1CON2 = AD1CON2_INIT;   

//0x0200 转换器参考电压为 VREFH AVDD VREFL AVSS 转换通道选择CH0/1/2/3 使用MUXA选择的输入通道

 

AD1CON3 = AD1CON3_INIT;   

//0x0004 ADC转换的时钟源选择系统时钟 自动采样时间为0TAD ADC转换时钟TAD = 5Tp = 5*16.6ns = 83.3ns

 

AD1CON4 = AD1CON4_INIT;  

 //0x0000 不使用DMA

 

AD1CHS123 = AD1CHS123_INIT;

// 0x0000 CH1-CH3 MUXA/B 反向输入端选择VREFL 同向输入端选择AN0/AN1/AN2

 

AD1CHS0 = AD1CHS0_INIT;   

//0x0303 CH0 MUXA/B 反向输入端选择VREFL 同向输入端选择AN3

 

AD1CSSH = AD1CSSH_INIT;   

//0x0000 没有使用通道扫描

 

AD1CSSL = AD1CSSL_INIT;   

//0x0000 没有使用通道扫描

 

AD1CON1bits.ADON = 1;

//使能ADC模块

}

 

static void INIT_SECTION McuIntInitialize(void)

{

    IFS0bits.AD1IF = 0;    //中断标志位清零

    IPC3bits.AD1IP = 7;    //配置为最高的优先级

    IEC0bits.AD1IE = 1;    //中断允许位

}

 

void __attribute__((section(".main_section"),interrupt,shadow,no_auto_psv)) _AD1Interrupt(void)

{

    IFS0bits.AD1IF = 0;//清除ADC转换完成的中断标志位

    /*--------------------用户代码区-------------------------------------*/

    LED0_PIN = LED_ON;

    GetAdcValue();//获取ADC转换结果

    SentReceData();//串口发送接收处理

    SpiTransmit();//SPI传输数据

    CountDowmTimer();//计数器

    LED0_PIN = LED_OFF;

    /*-------------------用户代码区结束---------------------------------*/

}

 

标签: 120mr采样电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台