搜索

[8/16位单片机] 【CuriosityNano测评报告】+基于MPLAB 软件的PWM波点亮LED灯测试

[复制链接]
3055|5
 楼主 | 2020-7-31 23:15 | 显示全部楼层 |阅读模式
本帖最后由 mxkw0514 于 2020-8-14 17:34 编辑

  本次测试主要包含3个部分:
  • 开箱展示
  • 项目开发(软件安装、环境搭建、PWM波程序测试与分析)
  • 心得体会
  上传了测试程序、调试编译软件和演示视频,总共四个附件。

1 开箱展示
1.1 实物展示
     今天早上收到了AVR128DA48单片机,打开红色的包装盒,里面是一个开发板和两条排母,如图1.1所示:
797195f243cb240372.png
                                                     图1.1.1
      拿到手上仔细观察了一会,正如主页上所说,该开发板上焊接了了程序下载芯片,但是让我困惑的是,开发板上的焊盘排列不对称,以为是PCB没画好,后来从其他论坛朋友那里得知,这是有意而为,直接用点力就能将排针插入焊盘阵列,并且排列十分紧凑,不用担心接触不良的问题。板卡四周的四个固定孔有两个是接地的,可是将示波器探头的接地夹子接在此处,比较方便。接好的开发板如图1.1.2、图1.1.3所示:
911075f24337461919.png       
                                                图1.1.2   
865145f24339b3f698.png
                                                   图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所示:
491225f24d0733efb4.png       
                                                                   图1.2.1        


2 项目开发

2.1 软件安装

      接下来就是安装软件和搭建环境了,从主页得知AVR128DA48单片机可以使用AtmelStudio和MPLAB X两个软件。首先安装AtmelStudio软件,打算从官网下载调试编译软件,访问官网不是很通畅,下载程序更慢了,迟迟无法下载好,这一点让人觉得很不友好。于是我在论坛里找安装包,非常感谢一位坛友提供的MPLAB X安装包,使得接下来的工作得以继续。软件安装步骤如图2.1.1-2.1.12(按照图序大小依次从上到下排列)所示:
720795f24386b50cea.png
                                                                    图2.1.1
   799525f2438a1bc7a3.png
                                                                    图2.1.2                                                                                                                                             
254155f2438c77cf72.png
                                                                   图2.1.3
   730305f2438ddcda05.png   
                                                                    图2.1.4
233045f24390f97542.png
                                                                     图2.1.5  
   4075f243921444d1.png
                                                  图2.1.6                                                                                                                                                                                                                  
185995f24394d7e0b4.png
                                                   图2.1.7   
810705f2439669be1c.png
                                                  图2.1.8
   539555f24397f9a55b.png
                                                    图2.1.9
239435f24399504617.png
                                                 图2.1.10
463225f2439ad75bf8.png
                                                   图2.1.11  
   957755f2439c8c2c35.png                
                                                  图2.1.12

2.2 环境搭建

      接下来就是进行一个简单的项目做测试了,打算测试一下PWM波产生功能,于是我从官网下载了一个关于PWM波产生的例程,见附件一。可以自己建立项目,也可以直接导入AVR例程。建立项目步骤如图2.2.1-2.2.5,导入例程步骤如图2.2.6-2.2.13所示:
761435f243df38e045.png
                                                                       图2.2.1
702125f243e1164e07.png

                                                                        图2.2.2                                                                                                                                                                                                                                 
653155f243e2b1474a.png
                                                                        图2.2.3

780465f243e40cd4cf.png

                                                                        图2.2.4

382225f243e8ae3ce8.png

                                                                                           图2.2.5
874275f243ef3e55f0.png

                                                                                            图2.2.6
189365f243f0833ae9.png
                                                                     图2.2.7

281745f243f24ac551.png

                                                                      图2.2.8
951435f243f3427fe6.png

                                                                        图2.2.9
27795f243f4413eef.png

                                                                        图2.2.10
646495f243f5366f9d.png

                                                                       图2.2.11
72515f243f615b9f4.png
                                                                          图2.2.12
           
732035f243f73ccaff.png
                                                                  图2.2.13

2.3 程序测试

导入的例程是根据数据手册设置的,如图2.3.1所示,该图展示了主要参数的设置。主程序如下所示:

434455f2cbf9e05d87.png
                                                                          图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所示:
26105f2441653cce8.png
                                      图2.3.2
815775f24d8764023f.png

                                                                                                       图2.3.3
      因为板卡上焊接了板上调试器,只需要外接一条USB线。编译下载运行程序后,实物测试显示开发板上的灯一闪一闪的,与程序中设置的50%的占空比一致;用示波器的探头连接PC6引脚,捕捉到了PWM波形,发现上升沿十分陡峭,这是一个比较好的参数,对于MOS管的驱动效果应该比较好。测试图如图2.3.4所示:
325615f27d4702c18d.png

                                                                                   图2.3.4


3 心得体会
       本科阶段接触的单片机主要为51单片机或者stm系列的单片机,其次有TI赞助实验室的MSP系列单片机、C2000系列单片机,然后就是恩智浦赞助智能车比赛用的K60系列单片机。通过本次测试稍微对Microchip单片机有些了解,AVR128DA48单片机是最近推出的8位单片机,主要针对一般应用场合而设计,性能具有竞争力。整个测试过程搜寻到的资料基本为英文资料,可能是用的人比较少,由于能力不够的原因,有些地方还要借助翻译软件,但是上手还是比较快,程序调试和编译软件设计比较人性化,使用轻松。本次进行程序测试的时候,发现官方提供的历程是否详细,关键地方注释清晰明了,对初学者帮助很大。         

      本次关于评测AVR128DA48单片机的过程是比较有趣的,有趣的地方是可以看到其他坛友的测评报告。AVR128DA48单片机是支持Atmelstudio和MPLAB的,所以可以根据需要进行选择,我用的软件是MPLAB,但是我看其他大多数坛友用的是Atmestudio,这些测评报告上对测试过程描述的十分详细,从中能看到一些新颖的东西,比如一位坛友用Atmel Start工具在线生成程序,只需要进行简单的设置便可以完成。











1.gif
2.gif

测试视频-实物.rar

1.48 MB, 下载次数: 0

测试视频-波形.rar

1.77 MB, 下载次数: 1

avr128da48-led-blink-pwm-example-master.zip

3.93 MB, 下载次数: 2

测试程序

安装包与下载器链接.rar

276 Bytes, 下载次数: 0

使用特权

评论回复
| 2020-8-5 13:47 | 显示全部楼层
厉害啊~~ 感谢支持~ 顶一下~

使用特权

评论回复
| 2020-8-6 15:10 | 显示全部楼层
你这配图也太详细了吧,顶一下.

使用特权

评论回复
| 2020-8-7 09:46 | 显示全部楼层
谢谢分享【PWM波点亮LED灯】

使用特权

评论回复
 楼主 | 2020-8-12 16:38 | 显示全部楼层
本帖最后由 mxkw0514 于 2020-8-22 09:38 编辑

AVR128DA48单片机内部有DAC,好像很少看到单片机既有DAC又有ADC,而大部分都是集成ADC的,很方便。

使用特权

评论回复
 楼主 | 2020-8-22 09:53 | 显示全部楼层
奔波儿熊 发表于 2020-8-6 15:10
你这配图也太详细了吧,顶一下.

图片详细一点应该会更清楚吧

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表