MSPM0L1306例程学习系列
使用的TI的官方例程,即SDK里边包含的例程代码。
可以到TI官网下载并且安装SDK: https://www.ti.com.cn/tool/cn/download/MSPM0-SDK/
MCU使用的是MSPM0L1306, 对于ADC部分,有10个例程:
前边讲了3个例程,今天讲第4个例程,使用ADC的内部通道,对系统的电源电压进行测量。 ADC模块硬件上预留有多个内部通道,可以用于系统的内部测量。如下图所示,A0-A9是连接到外部IO引脚的,其它通道是连接到内部模块的。
电源监测使用A15,系统内部将电源电压进行1/3分压之后,送到ADC模块。
官方的这个例程设计得一般,比大小没有太大意义,不如直接设断点看计算出的电源电压;更多可以查看下边的代码注释。
同样的,因为用了sysconfig图形配置工具,系统的初始化配置如下:
与前边的代码例程相比,不需要每次转换完以后都调用DL_ADC12_enableConversions(ADC12_0_INST)来使能ADC转换,即ENC=1。 因为这个例程ADC的工作模式变了,配置成单通道、多次转换模式。
实验步骤:
- 下载程序;
- 添加查看的变量gAdcResultVolts;
- 设置断点,查看ADC的采样结果值(有可能被优化了),查看计算出来的电压值gAdcResultVolts;
- 万用表测量电源电压,对比计算出来的电压值;
添加注释后的详细代码参考如下:
/*
* ADC转换的SDK例程
* 文件名:adc12_monitor_supply.c
* 描述:
* 使用ADC内部通道(有专门的一路用于监测电源电压),测量系统的电源电压。
* 1、单通道、多次转换、自动采样模式、软件触发;
* 2、使用MEM0,选择ADC通道15(内部电源监控通道,取电源电压的1/3送到ADC模块)
* 3、使用内部参考电压,2.5V
* 4、PA0引脚连接有LED灯;
* 5、对通道15进行AD采样和转换,根据转换结果进行LED的指示操作:
* a.当转换结果小于ADC12_SUPPLY_MONITOR_VALUE时,LED灭; 否则,点亮LED
* b.例程这个灯亮和灯灭设计的没啥意义,建议通过断点直接查看电源电压;
*
* 操作描述:
* 1、下