[原创] 【英飞凌PSOC 62S4 PIONEER KIT 测评】——ADC

bitter   2023-4-8 22:05 楼主

英飞凌PSOC 62S4 PIONEER KIT 测评】——ADC

  • 基本介绍

根据手册PSOC 62S4 PIONEER KIT拥有两个12位2-Msps SAR ADC,可以同步采样,拥有差分和单端模式,16通道测序器,结果平均,深度睡眠操作(使用2 MHz或8MHz的时钟);内置一个内置温度传感器连接到ADC,可以使用cypress提供的软件功能将读数转换为温度,并进行校准和线性化。ADC最大时钟频率为36 MHz,在该频率下需要至少18个时钟周期来进行12位转换。有三个内部参考值可用于ADC参考电压:VDDA、VDDA/2和大约为1.2V的模拟参考值(AREF)。当使用VDDA/2或AREF作为参考时,外部旁路电容应连接到VREF引脚,以提高在有噪声条件下的性能。在采样的时候,每个通道的结果都被缓冲,只有在所有通道的完整扫描完成时,才可能触发中断,如果一个输入小于最小值和/或大于最大值,则可以设置一对范围寄存器来检测和引起一个中断。ADC的工作范围为1.71~3.6V。

根据官方文档,PSoC™6 HAL目前限制将任何GPIO引脚映射为ADC的输入。只有与ADC直接连接的引脚才能用作ADC的输入。P10_x是首选的GPIO引脚作为ADC的输入,因为它们直接连接到ADC。

二、主要API介绍

1.ADC初始化cyhal_adc_init()

image-20230408220251-1.png  

注意:输入引脚参数只是表示要初始化哪个ADC。它实际上并不保留引脚或为其创建ADC通道。

  1. ADC配置cyhal_adc_configure()

image-20230408220251-2.png  

其中,cyhal_adc_config_t结构体为

image-20230408220251-3.png  

注意:如果正在进行扫描,可能会导致扫描被中断。

  1. 通道初始化cyhal_adc_channel_init_diff()

image-20230408220251-4.png  

其中,cyhal_adc_channel_config_t结构体为

image-20230408220251-5.png  

注意:(1)对于单通道,vminus设置为CYHAL_ADC_VNEG(NC)。

  1. 使用结果平均功能,其它配置在cyhal_adc_configure()配置。
  1. ADC事件使能cyhal_adc_enable_event()

image-20230408220251-6.png  

其中,cyhal_adc_event_t枚举为

image-20230408220251-7.png  

三、ADC简易程序

功能描述:将对环境光传感器和热敏电阻的采样值每隔500ms打印一次

代码描述:

  1. 将与P10_7相连的ADC初始化

image-20230408220251-8.png  

  1. 通道0和通道1都不使用结果平均功能,最小采样时间为1us;通道0为单端采样,输入引脚为P10_7(与环境光传感器的输出相连);通道1为差分采样,输入引脚为P10_4(与热敏电阻的电源相连),参考引脚为P10_5(与热敏电阻的输出相连)

image-20230408220251-9.png  

image-20230408220251-10.png  

  1. 当异步读操作完成是产生中断

image-20230408220251-11.png  

  1. ADC配置为不使用连续扫描,不使用结果平均,分辨率为12位

image-20230408220251-12.png  

image-20230408220251-13.png  

PS:

  1. 哪些引脚可以设置成ADC的输入引脚?我在数据手册中没有找到。有些引脚作为输入引脚进行通道初始话一直错误,不清楚是不是上面说的HAL进行的限制。
  2. 本来是想将ADC值转换成对应的光照值和温度值的,但是不清楚怎么转换。翻阅手册说是可以用cypress提供的软件功能将读数转换为温度,但不清楚怎么操作。

VID_20230408_215659

 

    main.c (2023-4-8 22:04 上传)

    6.04 KB, 下载次数: 1

    源代码

回复评论 (4)

ADC简易程序是官方提供的么

点赞  2023-4-9 16:49

内置一个内置温度传感器连接到ADC,可以使用cypress提供的软件功能将读数转换为温度,并进行校准和线性化。ADC最大时钟频率为36 MHz,在该频率下需要至少18个时钟周期来进行12位转换。

内置的温度传感器,采样后跟工作环境相差大不大?能不能象msp430一样,经过较正,可以监测环境的温度?

点赞  2023-4-10 07:09
引用: Jacktang 发表于 2023-4-9 16:49 ADC简易程序是官方提供的么

在官方例程上进行了部分修改

点赞  2023-4-10 08:35
引用: lugl4313820 发表于 2023-4-10 07:09 内置一个内置温度传感器连接到ADC,可以使用cypress提供的软件功能将读数转换为温度,并进行校准和线性化。 ...

理论上是应该可以的,但不知道该怎么操作

点赞  2023-4-10 08:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复