打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+基于MPLAB 软件的PWM波点亮LED灯测试

[复制链接]
4472|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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工具在线生成程序,只需要进行简单的设置便可以完成。











1.gif (1.59 MB )

1.gif

2.gif (4.15 MB )

2.gif

测试视频-实物.rar

1.48 MB

测试视频-波形.rar

1.77 MB

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

3.93 MB

测试程序

安装包与下载器链接.rar

276 Bytes

使用特权

评论回复
沙发
小卡| | 2020-8-5 13:47 | 只看该作者
厉害啊~~ 感谢支持~ 顶一下~

使用特权

评论回复
板凳
奔波儿熊| | 2020-8-6 15:10 | 只看该作者
你这配图也太详细了吧,顶一下.

使用特权

评论回复
地板
zeshoufx| | 2020-8-7 09:46 | 只看该作者
谢谢分享【PWM波点亮LED灯】

使用特权

评论回复
5
mxkw0514|  楼主 | 2020-8-12 16:38 | 只看该作者
本帖最后由 mxkw0514 于 2020-8-22 09:38 编辑

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

使用特权

评论回复
6
mxkw0514|  楼主 | 2020-8-22 09:53 | 只看该作者
奔波儿熊 发表于 2020-8-6 15:10
你这配图也太详细了吧,顶一下.

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

使用特权

评论回复
7
zeshoufx| | 2020-9-24 14:58 | 只看该作者
谢谢分享【基于MPLAB 软件的PWM波点亮LED灯测试】

使用特权

评论回复
8
LONGYU123| | 2022-11-18 16:49 | 只看该作者
您好,我刚刚接触AVR单片机,刚刚看了您这一个帖子:
【CuriosityNano测评报告】+基于MPLAB 软件的PWM波点亮LED灯测试
https://bbs.21ic.com/icview-3002090-1-1.html?fromuser=LONGYU123
关于里面此处:PORTMUX.TCAROUTEA = PORTMUX_TCA10_bm;(如图)地方会报错,编译器提示PORTMUX_TCA10_bm未定义,我从GitHub等其他地方下载的程序也会报类似的错误,请问该如何解决,还请指教C:\Users\Administrator\Desktop

使用特权

评论回复
9
guijial511| | 2022-11-22 08:46 | 只看该作者
镀金板看起来就是舒服啊

使用特权

评论回复
10
mollylawrence| | 2022-12-1 17:58 | 只看该作者
为什么不使用MCC直接开发呢?              

使用特权

评论回复
11
lzmm| | 2022-12-1 18:08 | 只看该作者
这个最小系统应该做成方块形状的。

使用特权

评论回复
12
burgessmaggie| | 2022-12-1 22:08 | 只看该作者
可以使用pwm驱动舵机的吗              

使用特权

评论回复
13
10299823| | 2022-12-2 19:27 | 只看该作者
可以定时器实现pwm的修改吗?              

使用特权

评论回复
14
mxkw0514|  楼主 | 2022-12-2 20:11 | 只看该作者
burgessmaggie 发表于 2022-12-1 22:08
可以使用pwm驱动舵机的吗

https://bbs.21ic.com/forum.php?mod=viewthread&tid=3268818&page=1#pid13138712
请参考一下这篇帖子,我用PWM波驱动BLDC电机

使用特权

评论回复
15
mxkw0514|  楼主 | 2022-12-2 20:11 | 只看该作者
10299823 发表于 2022-12-2 19:27
可以定时器实现pwm的修改吗?

https://bbs.21ic.com/forum.php?mod=viewthread&tid=3268818&page=1#pid13138712
请参考一下这篇帖子,我用用定时器修改PWM占空比

使用特权

评论回复
16
albertaabbot| | 2022-12-2 21:30 | 只看该作者
这个是入门的好帖子,AVR64DD32搞起来。

使用特权

评论回复
17
uiint| | 2022-12-3 13:21 | 只看该作者
如何在8位PIC单片机上实现16位的PWM

使用特权

评论回复
18
averyleigh| | 2022-12-3 15:18 | 只看该作者
非常详细的测评呢?              

使用特权

评论回复
19
10299823| | 2022-12-5 21:46 | 只看该作者
有配套的外设板子可以使用的吗?              

使用特权

评论回复
20
claretttt| | 2023-1-5 11:34 | 只看该作者
pwm的分辨率是多少?              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

549

帖子

5

粉丝