本帖最后由 mxkw0514 于 2020-8-14 17:34 编辑
本次测试主要包含3个部分:
- 开箱展示
- 项目开发(软件安装、环境搭建、PWM波程序测试与分析)
- 心得体会
上传了测试程序、调试编译软件和演示视频,总共四个附件。
1 开箱展示
1.1 实物展示
今天早上收到了AVR128DA48单片机,打开红色的包装盒,里面是一个开发板和两条排母,如图1.1所示:
图1.1.1
拿到手上仔细观察了一会,正如主页上所说,该开发板上焊接了了程序下载芯片,但是让我困惑的是,开发板上的焊盘排列不对称,以为是PCB没画好,后来从其他论坛朋友那里得知,这是有意而为,直接用点力就能将排针插入焊盘阵列,并且排列十分紧凑,不用担心接触不良的问题。板卡四周的四个固定孔有两个是接地的,可是将示波器探头的接地夹子接在此处,比较方便。接好的开发板如图1.1.2、图1.1.3所示:
图1.1.2
图1.1.3
1.2 开发板模块介绍
AVR128DA48单片机开发板主要包含调试器模块、最小系统模块和外设模块(按键、LED灯)。调试模块中包含了一个5V转3.3V的电源(MIC5353 LDO regulator),提供芯片的3.3V的供电电压;最小系统接的外部晶振为32.768KHz,板卡背面有两个焊盘PF0和PF1,分别为时钟输入和时钟输出,可以对启动波形进行观测;LED灯包括一个电源指示灯(绿色)和一个调试灯(红色),调试用的LED灯接在PC6引脚上,具体模块分布如图1.2.1所示:
图1.2.1
2 项目开发
2.1 软件安装
接下来就是安装软件和搭建环境了,从主页得知AVR128DA48单片机可以使用AtmelStudio和MPLAB X两个软件。首先安装AtmelStudio软件,打算从官网下载调试编译软件,访问官网不是很通畅,下载程序更慢了,迟迟无法下载好,这一点让人觉得很不友好。于是我在论坛里找安装包,非常感谢一位坛友提供的MPLAB X安装包,使得接下来的工作得以继续。软件安装步骤如图2.1.1-2.1.12(按照图序大小依次从上到下排列)所示:
图2.1.1
图2.1.2
图2.1.3
图2.1.4
图2.1.5
图2.1.6
图2.1.7
图2.1.8
图2.1.9
图2.1.10
图2.1.11
图2.1.12
2.2 环境搭建
接下来就是进行一个简单的项目做测试了,打算测试一下PWM波产生功能,于是我从官网下载了一个关于PWM波产生的例程,见附件一。可以自己建立项目,也可以直接导入AVR例程。建立项目步骤如图2.2.1-2.2.5,导入例程步骤如图2.2.6-2.2.13所示:
图2.2.1
图2.2.2
图2.2.3
图2.2.4
图2.2.5
图2.2.6
图2.2.7
图2.2.8
图2.2.9
图2.2.10
图2.2.11
图2.2.12
图2.2.13
2.3 程序测试
导入的例程是根据数据手册设置的,如图2.3.1所示,该图展示了主要参数的设置。主程序如下所示:
图2.3.1
#define PERIOD_EXAMPLE_VALUE (0xFFFF)
/* PWM波频率 。0xffff换成10进制为一个周期PER含有65536个点,工作时钟f(clock)为4MHz,先16分频,然后除以65536,得到4,即输出4HZ的占空比。上图数据手册的公式为: f(PWM)=f(clok)/16/N(PER+1)*/
#define DUTY_CYCLE_EXAMPLE_VALUE (0x8000)
/* 50% 占空比。该定时器为16位的定时器,换成十进制为一个周期含有65536个点,0x8000换成十进制为32768个点,刚好为65536的一般,所以是50%的占空比*/
#include <avr/io.h> /*设置工作时钟为4MHz */
void PORT_init(void);
void TCA1_init(void);
void PORT_init(void)
{
PORTC.DIRSET = PIN6_bm; /*设置Port C端的6脚为输出脚*/
}
void TCA1_init(void)
{
PORTMUX.TCAROUTEA = PORTMUX_TCA10_bm; /* 设置PORT C上的波形输出*/
TCA1.SINGLE.CTRLB = TCA_SINGLE_CMP2EN_bm /* 使能比较通道2 */
| TCA_SINGLE_WGMODE_SINGLESLOPE_gc ; /* 采用单斜率PWM模式 */
TCA1.SINGLE.PER = PERIOD_EXAMPLE_VALUE; /* 设置PWM波频率*/
TCA1.SINGLE.CMP2 = DUTY_CYCLE_EXAMPLE_VALUE; /* 设置PWM波占空比*/
TCA1.SINGLE.CTRLA = TCA_SINGLE_CLKSEL_DIV16_gc /* 设置时钟频率 (main_clk/16) */
| TCA_SINGLE_ENABLE_bm; /* 启动定时器 */
}
int main(void)
{
PORT_init();
TCA1_init();
while (1)
{
;
}
}
从程序中可以看到PWM产生引脚为PC6引脚,下载程序成功如图2.3.2、2.3.3所示:
图2.3.2
图2.3.3
因为板卡上焊接了板上调试器,只需要外接一条USB线。编译下载运行程序后,实物测试显示开发板上的灯一闪一闪的,与程序中设置的50%的占空比一致;用示波器的探头连接PC6引脚,捕捉到了PWM波形,发现上升沿十分陡峭,这是一个比较好的参数,对于MOS管的驱动效果应该比较好。测试图如图2.3.4所示:
图2.3.4
3 心得体会
本科阶段接触的单片机主要为51单片机或者stm系列的单片机,其次有TI赞助实验室的MSP系列单片机、C2000系列单片机,然后就是恩智浦赞助智能车比赛用的K60系列单片机。通过本次测试稍微对Microchip单片机有些了解,AVR128DA48单片机是最近推出的8位单片机,主要针对一般应用场合而设计,性能具有竞争力。整个测试过程搜寻到的资料基本为英文资料,可能是用的人比较少,由于能力不够的原因,有些地方还要借助翻译软件,但是上手还是比较快,程序调试和编译软件设计比较人性化,使用轻松。本次进行程序测试的时候,发现官方提供的历程是否详细,关键地方注释清晰明了,对初学者帮助很大。
本次关于评测AVR128DA48单片机的过程是比较有趣的,有趣的地方是可以看到其他坛友的测评报告。AVR128DA48单片机是支持Atmelstudio和MPLAB的,所以可以根据需要进行选择,我用的软件是MPLAB,但是我看其他大多数坛友用的是Atmestudio,这些测评报告上对测试过程描述的十分详细,从中能看到一些新颖的东西,比如一位坛友用Atmel Start工具在线生成程序,只需要进行简单的设置便可以完成。
|