中科芯CKS32F107xx系列微控制器ADC应用指南

2024-07-08 中科芯MCU公众号
微控制器,CKS32F107xx,CKS32F103XX,中科芯 微控制器,CKS32F107xx,CKS32F103XX,中科芯 微控制器,CKS32F107xx,CKS32F103XX,中科芯 微控制器,CKS32F107xx,CKS32F103XX,中科芯

独立模式单通道采集

CKS32F107xx系列微控制器产品提供2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。


A/D转换器的供电和参考电压

为了提高转换的精确度,ADC使用一个独立的电源供电,其电源引脚为VDDA和VSSA,从而过滤和屏蔽来自印刷电路板上的毛刺干扰。在进行硬件设计的时候,VDDA和VSSA必须分别连接到VDD和VSS。对于100脚封装的,为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压ADC到VREF+和VREF-脚上,其中,VREF-引脚必须连接到VSSA,而VREF+的电压范围为2.4V~VDDA。对于64引脚封装的,没有VREF+和VREF-引脚,他们在芯片内部与ADC的电源(VDDA)和地(VSSA)相联。


ADC转换时间

ADC输入时钟ADC_CLK由PCLK2 经过分频产生,最大是14M,分频因子由RCC时钟配置寄存器RCC_CFGR的位15:14 ADCPRE[1:0]设置,可以是2/4/6/8分频,注意这里没有1分频。一般我们设置PCLK2=HCLK=72M。ADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和 ADC_SMPR2寄存器中的SMP[2:0]位更改。每个通道可以分别用不同的时间采样。 总转换时间如下计算:TCONV=采样时间+12.5个周期。例如当ADCCLK=14MHz,采样时间为1.5周期,则总的转换时间TCONV=1.5+12.5=14周期=1μs。


ADC数据寄存器

ADC转换完成后的数据输出寄存器。根据转换组的不同,规则组的完成转换的数据输出到ADC_DR寄存器,注入组的完成转换的数据输出到ADC_JDRx寄存器。假如是使用双重模式,规则组的数据也是存放在ADC_DR寄存器。ADC规则组数据寄存器ADC_DR是一个32位的寄存器,独立模式时只使用到该寄存器低16位保存ADC1/2的规则转换数据。在双ADC模式下,高16位用于保存ADC2转换的数据,低16位用于保存ADC1转换的数据。因为ADC的精度是12位的,ADC_DR寄存器无论高16位还是低16位,存放数据的位宽都是16 位的,所以允许选择数据对齐方式。由ADC_CR2寄存器的ALIGN位设置数据对齐方式,可选择:右对齐或者左对齐。如果使用多通道转换,那么这些通道的数据 也会存放在ADC_DR里面,按照规则组的顺序,上一个通道转换的数据,会被下一个通道转换的数据覆盖掉,所以当通道转换完成后要及时把数据取走。比较常用的方法是使用DMA模式。当规则组的通道转换结束时,就会产生DMA请求,这样就可以及时把转换的数据搬运到用户指定的目的地址存放。注意:只有ADC1可以产生DAM请求,而由ADC2转换的数据可以通过双ADC模式,利用ADC1的 DMA功能传输。


ADC中断

ADC中断可分为三种:规则组转换结束中断、注入组转换结束中断、设置了模拟看门狗状态位中断。它们都有独立的中断使能位,分别由ADC_CR 寄存器的EOCIE、JEOCIE、AWDIE位设置,对应的标志位分别是EOC、JEOC、AWD。


ADC初始化结构体详解

ADC_InitTypeDef结构体用于设置ADC的工作参数,并由标准库函数ADC_Init()调用这些设定参数进入设置外设相应的寄存器,达到配置外设工作环境的目的。其具体的定义如下:


typedef struct

{

  uint32_t ADC_Mode;                     

  FunctionalState ADC_ScanConvMode;     

  FunctionalState ADC_ContinuousConvMode;

  uint32_t ADC_ExternalTrigConv;          

  uint32_t ADC_DataAlign;                

  uint8_t ADC_NbrOfChannel;              

}ADC_InitTypeDef;


  • ADC_Mode:配置ADC的模式,当使用一个ADC时是独立模式,使用两个ADC 时是双模式,在双模式下还有很多细分模式可选,具体配置ADC_CR1:DUALMOD位。

  • ScanConvMode:可选参数为ENABLE和DISABLE,配置是否使用扫描。如果是单通道AD转换使用DISABLE,如果是多通道AD转换使用ENABLE,具体配置 ADC_CR1:SCAN位。

  • ADC_ContinuousConvMode:可选参数为 ENABLE 和 DISABLE,配置是启动自动连续转换还是单次转换。使用ENABLE配置为使能自动连续转换;使用 DISABLE 配置为单次转换,转换一次后停止需要手动控制才重新启动转换,具体配置 ADC_CR2:CON位。

  • ADC_ExternalTrigConv:外部触发选择,ADC有很多外部触发条件,可根据项目需求配置触发来源。实际上,我们一般使用软件自动触发。

  • ADC_DataAlign:转换结果数据对齐模式,可选右对齐ADC_DataAlign_Right 或者左对齐ADC_DataAlign_Left。

  • ADC_NbrOfChannel:AD转换通道数目,根据实际设置即可。具体的通道数和通道的转换顺序是配置规则序列或注入序列寄存器。


CKS32F103XX ADC单通道采集实验

本实验使用规则组单通道的单次转换模式,并且通过软件触发,即由ADC_CR2寄存器的SWSTART位启动。下面讲解其详细设置步骤:

1) 开启PA口时钟和ADC1时钟,设置PA1为模拟输入。

CKS32F107xx的ADC通道1在PA1上,所以,我们先要使能PORTA的时钟和ADC1时钟,然后设置PA1为模拟输入。使能GPIOA和ADC时钟用RCC_APB2PeriphClockCmd函数,设置 PA1的输入方式,使用GPIO_Init函数即可。


2) 复位 ADC1,同时设置 ADC1 分频因子。 

开启ADC1时钟之后,我们要复位ADC1,将ADC1的全部寄存器重设为缺省值之后我们 就可以通过RCC_CFGR设置ADC1的分频因子。分频因子要确保ADC1的时钟(ADCCLK)不要超过14Mhz。这个我们设置分频因子位6,时钟为72/6=12MHz,库函数的实现方法是: 

RCC_ADCCLKConfig(RCC_PCLK2_Div6);


ADC 时钟复位的方法是:

ADC_DeInit(ADC1);


3) 初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。 

在设置完分频因子之后,我们就可以开始 ADC1 的模式配置了,设置单次转换模式、触发方式选择、数据对齐方式等都在这一步实现。同时,我们还要设置ADC1规则序列的相关信息,我们这里只有一个通道,并且是单次转换的,所以设置规则序列中通道数为1。这些在库函数中是通过函数ADC_Init实现的。


4) 使能ADC并校准。 

在设置完了以上信息后,我们就使能AD转换器,执行复位校准和AD校准,注意这两步 是必须的!不校准将导致结果很不准确。 使能指定ADC的方法是:

ADC_Cmd(ADC1, ENABLE);

执行复位校准的方法是:

ADC_ResetCalibration(ADC1);

执行ADC校准的方法是:

ADC_StartCalibration(ADC1);

每次进行校准之后要等待校准结束。这里是通过获取校准状态来判断是否校准是否结束。等待复位校准结束函数为:

while(ADC_GetResetCalibrationStatus(ADC1));

等待AD校准结束函数为:

while(ADC_GetCalibrationStatus(ADC1));


5)读取ADC值。 

在上面的校准完成之后,ADC就算准备好了。接下来我们要做的就是设置规则序列1里面的通道,采样顺序,以及通道的采样周期,然后启动ADC转换。在转换结束后,读取ADC 转 换结果值就是了。我们这里是规则序列中的第1个转换,同时采样周期为239.5,所以设置为:

ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );

软件开启ADC转换的方法是:

ADC_SoftwareStartConvCmd(ADC1, ENABLE);

开启转换之后,就可以获取转换ADC转换结果数据,方法是:

ADC_GetConversionValue(ADC1);

同时在AD转换中,我们还要根据状态寄存器的标志位来获取AD转换的各个状态信息。库函数获取AD转换的状态信息的函数是:

FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);

比如我们要判断ADC1d的转换是否结束,方法是: 

while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));


通过以上几个步骤的设置,我们就能正常的使用CKS32F107xx的ADC1来执行AD转换操作了。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由ll转载自中科芯MCU公众号,原文标题为:MCU微课堂|CKS32F107xx系列 ADC(一),本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

中科芯MCU-CKS32F107xx系列TIM定时器应用指南

本节课我们将介绍互联型产品CKS32F107xx系列的定时器使用,CKS32F107xx的定时器资源比较丰富,包含2个高级定时器,10个通用定时器,2个基本定时器,以及两个看门狗定时器和一个系统定时器,共达17个定时器之多。关于定时器部分内容的讲解我们将分4个部分展开,本节将围绕定时器的定时原理展开,并以简单定时配置操作演示。

设计经验    发布时间 : 2024-08-28

解析中科芯CKS32F107xx系列MCU的GPIO配置

本文中中科芯来给大家介绍CKS32F107xx系列MCU的GPIO配置,希望对各位工程师有所帮助。GPIO是通用输入输出端口的简称,也是CKS32可控制的引脚,CKS32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。

设计经验    发布时间 : 2024-06-12

解析中科芯CKS32F107xx MCU的DAC模块

DAC即数模转换器,它可以将数字信号转换为模拟信号。在常见的数字信号系统中,传感器信号被ADC模块把电压模拟信号转换成易于计算机存储、处理的数字信号,由计算机处理完成后,再由DAC模块转化输出电压模拟信号来驱动某些执行器件。本文将为您解析CKS32F107xx MCU的DAC特点和结构。

设计经验    发布时间 : 2024-08-28

中科芯(CETC)CKS32F030C8/C6/K6/F4 32位MCU数据手册

描述- 本资料给出了中科芯CKS32F030 xx 微控制器产品的器件特性

型号- CKS32F030XX,CKS32F030C6,CKS32F030R8T6XXX,CKS32F030C8,CKS32,CKS32F030K6,CKS32F030F4

数据手册  -  中科芯  - v1.0  - 2018年4月9日 PDF 中文 下载

CKS32F405RG/CKS32F407xG/CKS32F415RG/CKS32F417xG 32位基于Cortex™-M4内核的微控制器,1MB FLASH,192+4+128KB RAM数据手册

型号- CKS32F417ZG,CKS32F417XG,CKS32F407ZG,CKS32F417VG,CKS32F407XG,CKS32F4系列,CKS32F407VGT6XXX,CKS32F407IG,CKS32F405XX,CKS32F417IG,CKS32F415XX,CKS32F417XG 系列,CKS32F407XX,CKS32F417XX,CKS32F415RG,CKS32F407VG,CKS32F405RG,CKS32F4,CKS32F4X7XX

数据手册  -  中科芯  - V1.0  - 2021.10.9 PDF 中文 下载

【应用】可替代STM32F030F4P6的国产32位微控制器CKS32F030F4P6用于智能锁

中科芯的CKS32F030F4P6是采用高性能ARM® Cortex™-M0核的微控制器,最高工作频率为48MHz,高速嵌入式内存(FLASH为16K字节,SRAM为4K字节),并广泛集成增强型外设和I/O口,1路SPI,1路IIC,1路UART,提供TSSOP20封装,这些特点使得CKS32F030F4P6微控制器可完美替代STM32F030F4P6用于智能门锁。

应用方案    发布时间 : 2020-12-15

【经验】在 keil软件使用J-Link烧录CKS32Fxxx系列代码的方法

中科芯(CETC)32位微控制器CKS32F030系列、CKS32F031系列、CKS32F051系列以及CKS32F103系列系列均可以完全替代意法半导体的STM32F030系列、STM32F031系列、STM32F051系列和STM32F103系列,软硬件均兼容。本文将以开发软件keil软件为例,介绍如何使用J-Link进行烧写程序。

设计经验    发布时间 : 2021-02-12

CKS32F103x8 CKS32F103xB 32位基于ARM核心的带64或128K字节闪存的标准型微控制器 数据手册

型号- CKS32F103R8,CKS32F103R8T6XXX,CKS32F103R8T6XXX,CKS32F103X8,CKS32F103XX,CKS32F103CB,CKS32F103CBT6,CKS32F103C8,CKS32F103RB,CKS32F103RBT6,CKS32F103VBT6,CKS32,CKS32F103VB,CKS32F103C8T6,CKS32F103XB,CKS32F103R8T6

数据手册  -  中科芯  - 版本 1.3  - 2018.10.15 PDF 中文 下载

中科芯CKS32F107xx系列MCU-双重ADC模式应用指南

本文基于中科芯CKS32F107xx系列MCU介绍双重ADC模式。

设计经验    发布时间 : 2024-08-13

CKS32F103x8 CKS32F103xB 32位基于ARM核心的带64或128K字节闪存的标准型微控制器

型号- CKS32F103R8,CKS32F103T8,CKS32F103R8T6XXX,CKS32F103T8T6,CKS32F103X8,CKS32F103CB,CKS32F103CBT6,CKS32F103C8,CKS32F103TBT6,CKS32F103RBT6,CKS32F103RB,CKS32F103VBT6,CKS32F103TB,CKS32F103C8T6,CKS32F103VB,CKS32F103XB,CKS32F103R8T6

数据手册  -  中科芯  - 版本 1.5  - 2020.7.11 PDF 中文 下载 查看更多版本

中科芯(CETC)CKS32F103x8/CKS32F103xB ARM 内核32 位高性能微控制器参考手册

描述- 本参考手册针对应用开发,提供关于如何使用CKS32F103xx微控制器的存储器和外设的详细信息。

型号- CKS32F103X8,CKS32F103XX,CKS32F103XB

用户指南  -  中科芯  - V 1.1 PDF 中文 下载

中科芯CKS32F107xx系列MCU内部温度传感器ADC采集应用指南

中科芯推出的CKS32F107xx系列MCU有一个内部的温度传感器,可以用来测量MCU及周围的温度(TA)。该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。

设计经验    发布时间 : 2024-08-13

中科芯联合创芯工坊推出MCU固件安全烧录解决方案,提供多重固件安全加密机制

基于众多客户对于固件安全烧录的需求,近期中科芯MCU事业部与其第三方生态合作伙伴创芯工坊推出PowerWriter系列调试烧录器产品及配套烧录工具,提供多重固件安全加密机制。该生态工具适配中科芯CKS32全系列MCU产品,有效地保护开发者知识产权权益。

原厂动态    发布时间 : 2023-09-21

CKS32F103xC/CKS32F103xD/CKS32F103xE 32位基于ARM核心的带512K字节闪存的微控制器数据手册

型号- CKS32F103RX,CSTM32F103XD,STM32F103XD,STM32F103XE,CKS32F10XXX,CKS32F103VX,CKS32F103XX,CKS32F103X8,CKS32F103ZX,CKS32F103X,CKS32F103RCT6XXX,CKS32F103CX,CKS32F103XX 系列,CKS32F103XD,CKS32F103XE,CKS32F103XB,CKS32F103XC

数据手册  -  中科芯  - 2021.6.10 PDF 中文 下载

解析CKS32F107xx系列ADC采样使用的DMA模式的原理和配置方法

因为ADC规则组数据寄存器ADC_DR只有一个,如果使用多通道转换,那转换的数据就全部都挤在ADC_DR里面了,所以当通道转换完成后就应该把数据取走,或者开启DMA模式,把数据传输到内存里面,不然就会造成数据的覆盖。多通道ADC采集一般使用DMA进行数据传输,该方法更加高效方便。

设计经验    发布时间 : 2024-07-08

展开更多

电子商城

查看更多

品牌:中科芯

品类:32位微控制器

价格:

现货: 0

品牌:中科芯

品类:32位微控制器

价格:¥13.0000

现货: 103,183

品牌:中科芯

品类:32位微控制器

价格:¥11.0000

现货: 102,033

品牌:中科芯

品类:32位微控制器

价格:¥6.0000

现货: 102,000

品牌:中科芯

品类:32位微控制器

价格:¥11.3000

现货: 100,239

品牌:中科芯

品类:32位微控制器

价格:¥50.0000

现货: 100,188

品牌:中科芯

品类:32位微控制器

价格:¥64.0000

现货: 100,016

品牌:中科芯

品类:微控制器

价格:¥25.0000

现货: 100,000

品牌:中科芯

品类:32位微控制器

价格:¥16.4000

现货: 82,670

品牌:中科芯

品类:32位微控制器

价格:¥7.2000

现货: 66,046

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:中科芯

品类:32位微控制器

价格:¥8.5000

现货:10,000

品牌:中科芯

品类:32位微控制器

价格:¥5.0000

现货:10,000

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:Advanced Digital Chips

品类:MCU

价格:¥6.6000

现货:100,000

品牌:RENESAS

品类:microcontroller

价格:¥32.9564

现货:40,179

品牌:兆易创新

品类:IC

价格:¥4.8932

现货:27,000

品牌:国民技术

品类:微控制器

价格:¥18.7261

现货:25,138

品牌:MindMotion

品类:32位MCU

价格:¥5.9400

现货:19,996

品牌:兆易创新

品类:IC

价格:¥20.2717

现货:12,420

品牌:Maxim

品类:MCU芯片

价格:¥4.9000

现货:10,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

压力传感器定制

可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。

提交需求>

液冷板/液冷机箱定制

定制水冷板尺寸30*30mm~1000*1000 mm,厚度1mm~50mm,散热能力最高50KW,承压可达3MPA;液冷机箱散热能力达500W~100KW。项目单次采购额需满足1万元以上,或年需求5万元以上。

提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面