本帖最后由 mxkw0514 于 2021-8-19 19:20 编辑
#申请开发板# #申请原创#
引言:
上一次测评了PIC18F16Q40芯片的ADCC外设,这一次有幸申请到了PIC18F16Q41开发工具,希望能对PIC18F16Q41芯片的特性进行测评。单从名字上看,PIC18F16Q40芯片与PIC18F16Q41芯片的主体是相近的,应该只有一点点不同,这一点点不同的地方应该就是PIC18F16Q41的特有外设了。该篇帖子将对PIC18F16Q41芯片的这一特有外设进行测评,并展示测评结果与本次测评过程的心得体会。
一、开箱展示
收到PIC18F16Q41开发工具后,对比了PIC18F16Q40开发工具,发现这两款开发板除了名字的丝印不同外,其余基本相同,实物对比图如图1-1所示。刚开始申请开发板的时候,就想过PIC18F16Q41与PIC18F16Q40的不同点在什么地方,通过查阅芯片的数据手册【1】,通过逐次对比了二者的特性简介,发现只有PIC18F16Q41有OPA外设的简介,如图1-2所示,想必这应该就是PIC18F16Q41芯片的特性了。接下来对OPA外设进行测评。
图1-1 实物对比图
图1-2 OPA外设简介
二、OPA外设测评
2.1 测评项目
PIC18F16Q41的OPA外设可以自由选择同向放大器和反向放大器,也能自由设置放大的倍数,它的带宽达到的5MHz【2】,这已经能满足很多应用了。本次测评利用PIC18F16Q41的OPA外设放大光电传感器的模拟小信号,并放大后的信号输入到片内的ADCC外设进行检测,通过串口将检测显示在PC机上。该项目的基本框图如图2-1所示,模拟部分电路及仿真波形如图2-2所示。
图2-1 项目基本框图
图2-2 模拟部分电路及仿真波形
2.2 环境配置
PIC系列单片机的开发软件使用Atmel studio和MPLAB X IDE软件都可以,因为MPLAB X IDE带有的MCC模块比较友好,所以选用MPLAB X IDE作为本次项目程序的编译软件。安装好MPLAB X IDE软件后,用USB线连接电脑和PIC18F16Q41开发板后,MPLAB X IDE软件会自动识别出PIC18F16Q41开发板上的仿真器的型号,之后就可以利用MCC模块完成对PIC18F16Q41外设的配置(当然也可以不用MPLAB X IDE软件自带MCC模块,手动写初始化函数也可以的,MCC模块主要是为了自动生成初始化函数和外设的功能化函数)。
本次需要用到的外设包括OPA外设、ADCC外设、UART外设,另外还需要配置时钟模块、芯片外部引脚,首先来谈一谈这些配置。在该项目中,OPA外设的放大类型选择了反向放大,增益设置为3(实际为4);ADCC外设选择了基本模式,通道类型设置为OPA通道;UART外设波特率设置成了9600,RX与TX重映射到了RC7和RC6引脚;由于PIC18F16Q41开发板上没有焊接外部晶振,如果手头又没有同类型的晶振,那就需要将时钟配置成内部时钟;由用户手册可知【3】,RC1连接了一个LED灯,这个引脚还是尽量不要去定义为好。MCC模块配置系统时钟、片内外设和芯片引脚如下图所示:
图2-3 系统时钟配置
图2-4 ADCC外设配置
图2-5 OPA外设配置
图2-6 UART外设配置
图2-7 引脚配置
2.3 程序编写
使用MPLAB X IDE软件自带MCC模块设置好需要的外设后,点击Generate就会生成一个带有初始化函数的主函数以及与外设相关的.c和.h文件,此时就可以在主函数中根据需要调用.c文件中的功能化函数来实现特定的功能。至于该项目,需要调用的功能化函数也仅仅只有ADCC外设的采样函数ADCC_DischargeSampleCapacitor()、ADCC外设的模数转换函数ADCC_GetSingleConversion()以及串口打印函数printf(),省下了很多工作量。具体程序如下所示,源文件请见附件。
#include "mcc_generated_files/mcc.h"
#include "stdio.h"
#include "lay.h"
#define psGain 4
uint16_t volatile adcVal;
void main(void)
{
SYSTEM_Initialize();
INTERRUPT_GlobalInterruptEnable();
while (1)
{
float psVol;
ADCC_DischargeSampleCapacitor();//ADC采样函数
adcVal = ADCC_GetSingleConversion(channel_ANC0);//ADC转换函数,外部输入,输出0-4096范围点数
psVol = ((adcVal/4096.0)*3.3)/4.0;//将转换点数等比例换算出模拟小信号值,放大倍数是4倍
printf(" adcVal %d \r\n", adcVal);//串口打印转换点数
printf(" adcVal %f \r\n", psVol);//串口打印模拟小信号值
delay_ms(50);
}
}
2.3 测试结果
本次测评结果展示分为两部分,一部分是用电脑的串口调试助手显示PIC18F16Q41测得的光电传感器输出的电压值,另一部分是用万用表直接测量光电传感器输出的电压值作为参照。电脑端显示光电传感器输出的模拟小信号值的动态结果如图2-8所示,万用表显示光电传感器输出的模拟小信号值的动态结果如图2-9所示:
图2-8 串口调试助手显示结果
图2-9 万用表显示结果
三、心得
从上述两种结果来看,PIC18F16Q41测得的光电传感器输出电压波动较大,而万用表测量结果较为稳定,是PIC18F16Q41开发板上都是使用杜邦线连接的原因还是PIC18F16Q41单片机本身的原因还有带进一步验证,至于结果的准确性需要使用更高精度的万用表来进行定量分析了。
通过本次测评,可以让人深刻感受到MCC模块带来的便捷,其次是单片机内部一些模拟外设在减少外部器件使用上带来的效益,PIC18F16Q41单片机内部OPA外设的带宽达到了5MHz,这个特性虽然在本次测评中没用体现出来,但它确实可以满足很多应用了。如果在PCB布线上再说一下的话,通信端口的重映射功能也是算一个优秀的性能吧。
参考文献:
【1】Microchip Technology Inc.PIC18F0616Q41-1420-Pin-Low-Power-High-Performance-Microcontroller-with-XLP-Technology-Data-Sheet-40002214D[DB/OL].(2020-2021)[2021-08-14].https://www.microchip.com/en-us/product/PIC18F16Q41.
【2】Microchip Technology Inc.Using the Operational Amplifier on PIC16 and PIC18[DB/OL].(2020)[2021-08-14].https://ww1.microchip.com/downloads/en/DeviceDoc/Using-the-Operational-Amplifier-on-PIC16-and-PIC18-90003280A.pdf.
【3】Microchip Technology Inc. PIC18F16Q41 Curiosity Nano Hardware User Guide[DB/OL].(2020)[2021-08-15].https://ww1.microchip.com/downloads/en/DeviceDoc/PIC18F16Q41-Curiosity-Nano-Hardware-User-Guide-DS50003048A.pdf
|