本帖最后由 mxkw0514 于 2021-5-9 20:25 编辑
本次测试工作主要包含3个方面:
1、开箱展示
2、项目测试
3、心得
1、开箱展示:
PIC18F57Q43 Curiosity Nano评估工具包做得很精致,贴片电容、电阻使用的都是0402封装,使得开发板的元器件的布局更为紧凑、板子的尺寸能够做得更小。开箱展示如图1.1所示:
图1.1
从图上可以看出这款工具包是在马来西亚产的。PCB板上的排针孔排列得错落有致,其目的是为了不用焊接就能固定排针,只需一台电脑和一根下载线就能开始测试。当插上USB先后,发现电脑突然出了一点变化,变化如图1.2所示:
图1.2
貌似出现了类似与“U盘”一样的东西,里面的文件列写了器件的编号以供查验。PIC18F57Q43的EEPROM被当作“U”盘来使用了,内存不大,才1.1M左右,不过存储一些记事本文件还是可以的。
2、项目测试:
根据芯片数据手册:
图2.1
可知,芯片的DAC输出引脚在RA2和RA3两个引脚,同时这两个引脚也是ADC复用引脚,根据数据手册,对DAC相关寄存器进行配置:
图2.2
void DAC1_Initialize(void){
DAC1CON = 0xA0;// 使能OE DACOUT1,禁用DACOUT2; 使能DAC1EN,NSS VSS; PSS VDD;
DAC1DATL = 0x33;// DAC1R 51;
}
void DAC1_SetOutput(uint8_t inputData)
{
DAC1DATL = inputData;
}
uint8_t DAC1_GetOutput(void)
{
return DAC1DATL;
}
项目利用PIC18F57Q43中的DAC实现正弦波输出,主要思路是将一个正弦波分成254个幅值输出,输出引脚为RA2。项目代码如下:
#include "mcc_generated_files/mcc.h"
void DAC1_Initialize(void)
{
DAC1CON = 0xA0;// 使能OE DACOUT1,禁用DACOUT2; 使能DAC1EN,NSS VSS; PSS VDD;
DAC1DATL = 0x33;// DAC1R 51;
}
void DAC1_SetOutput(uint8_t inputData)
{
DAC1DATL = inputData;
}
uint8_t DAC1_GetOutput(void)
{
return DAC1DATL;
}
void main(void)
{
DAC1_Initialize();
unsigned char sin_tab[]={
125,128,131,134,138,141,144,147,150,153,156,159,162,165,168,171,
174,177,180,182,185,188,191,193,196,198,201,203,206,208,211,213,
215,217,219,221,223,225,227,229,231,232,234,235,237,238,239,241,
242,243,244,245,246,246,247,248,248,249,249,250,250,250,250,250,
250,250,250,249,249,248,248,247,246,246,245,244,243,242,241,239,
238,237,235,234,232,231,229,227,225,223,221,219,217,215,213,211,
208,206,203,201,198,196,193,191,188,185,182,180,177,174,171,168,
165,162,159,156,153,150,147,144,141,138,134,131,128,125,122,119,
116,112,109,106,103,100, 97, 94, 91, 88, 85, 82, 79, 76, 73, 70,
68, 65, 62, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37, 35, 33, 31,
29, 27, 25, 27, 29, 27, 25, 23, 21, 19, 18, 16, 15, 13, 12, 11,
9, 8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 9,
11, 12, 13, 15, 16, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 68, 70, 73, 76, 79,
82, 85, 88, 97, 94, 97,100,103, 106,109,112,116,119,122};
unsigned int ms;
while (1)
{
for(ms=0;ms<254;ms++)
{
DAC1_SetOutput( sin_tab[ms]);
}
}
}
测试结果如下所示(详细结果见附件):
图2-3
3、心得
经过一点时间的摸索,终于实现了利用PIC18F57Q43中的DAC输出正弦波,总体来看效果还不错,可惜的是这次没有实现用MCC的功能将正弦波输出,可能是我没有掌握方法吧,感觉直接利用数据手册的寄存器比操作MCC要容易。这款单片机内部集成了DAC,就不需要外加DAC了,虽然只是一个8位的DAC,但可以适用很多场合了,这可以给一些项目的开发省下一些成本,但是话又说回来,PIC18F57Q43这款单片机的价格不是很便宜,如果它的价格单片能和Atmeg328p差不多,相信用它做项目开发的人会变多吧。
|