21ic电子技术开发论坛 单片机与嵌入式系统 Microchip论坛 【CuriosityNano测评报告】+AVR单片机及MCC的初体验 ...
发新帖我要提问
12下一页
返回列表

[PIC®/AVR® MCU] 【CuriosityNano测评报告】+AVR单片机及MCC的初体验

[复制链接]
882|24
手机看帖
扫描二维码
随时随地手机跟帖
qintian0303|  楼主 | 2021-11-26 14:02 | 显示全部楼层 |阅读模式
本帖最后由 qintian0303 于 2021-12-7 17:20 编辑

开箱
         幸运地获得了PIC® & AVR® Curiosity Nano开发板活动中的ATtiny1627 Curiosity Nano,非常感谢活动方。开发板获得后还是让我挺意外的,比我想象的小很多,不过开发板还是挺亮眼的,红红的PCB让人眼前一亮,对于满眼绿油油的板卡让人心生欢喜,错落的针孔设计也挺巧妙,避免不焊接时导致排针无法良好接触的问题,点赞!
开箱1.jpg 开箱2.jpg
        个人第一次在工作中接触的MCU就是PIC16F系列,使用MPLAB IDE+下载器的方式进行在线调试,已经很多年没有接触了,在我的印象中,PIC的单片机和51系列单片机很像,当时都是通过直接修改寄存器的方式进行控制,不过这次的测评活动也让本人对AVR(本家)单片机有了一个全新的认识。

开发环境配置
    活动页面有详细的关于本次开发板相关的资料,遇到了很多的新东西,所以就把他作为一个全新的事务去详细的了解。
    准备进行一个MCU的控制时,首先要有一个载体,对于我们的实物载体就是本次的开发板,虚拟载体就是写程序用的开发环境。在活动页面中有详细的介绍进行开发环境的安装与使用。开发环境选择的是MPLABX-v5.50(安装包大小约597M),为了使用和之后开发方面,有关插件全部安装了,安装完之后的文件大小还是不小的。之后根据当前开发板MCU的位数选择了MPLABXC8编辑器,不知道资源出现了什么问题,编辑器的文件并不大,但是下载非常慢。对应的MCC和编辑器添加到MPLABX-v5.50后,咱们的开发环境就基本准备就绪了。           

    MCC插件是一种图形化配置工具,类似于STM32cubeMX,在配置的过程中将外围的初始代码就完成了。利用MCC可以配置时钟,引脚等外设功能,STM32cubeMX很方便,但是使用HAL库确实是颠覆人们的习惯,后续配置篇会着重体验一下MCC。

MCC插件.png



开发板详情
    接下来我们就要好好了解一下开发板了,一块口香糖大小的板子、板载调试器、带12位ADC的灵活ATtiny1627 AVR微控制器。板载一个按键和LED,引脚分布如下:

资源图.png

   
    连接开发板后可以看到开发板信息:
连接后效果.png
新建项目及初体验
        遇到了一个问题,无法创建新项目,重启软件没有反应,重启电脑后可以正常创建项目了。
   我们在接触一个新的MCU和开发环境时,首先想到的就是程序能否正常编译,最简单的方式就是操作一下IO口,板载的LED就是直观反映状态是否正常的关键。使用MCC新建一个项目并添加延时和PB7引脚的控制:
引脚配置.png

    添加完delay和PB7配置后,然后点击Generate进行程序生成,在主函数中添加延时和LED翻转,点击调试下载到开发板进行观察,下载程序相对于Jlink的下载调试速度略慢一些。
灯闪烁.gif


    开发板的LED现象正常,现在我们进行定时器中断使LED闪烁。定时器中断涉及到了两个地方的配置,添加TCA0定时器并配置+中断管理配置,配置和位置如下图:
定时器配置2.png
定时器配置1.png
   
    在写中断函数时还有一个小波折,由于STM32的编程习惯找了好久都没有找到中断函数,最后在tca0.c中发现了回调函数void TCA0_DefaultOverflowCallbackRegister(void)。在此过程中发现不能实时查看全局变量,这对于编程者来说不太友好,也可能这款MCU或者板载下载器不支持,欢迎大佬指导。
    接下来我们就要体验一下外部中断了,不能浪费了按键,每按一次按键,LED翻转一次状态。AVR的外部中断设置非常简单,只要在Pins下对按键引脚(PC4)设置中断触发条件就可以,这必须点一个赞。调试过程中发现只通过MCC配置(PC4)并没有成功,通过示波器观察此时引脚上只有一个峰峰值200mV左右的波,这是不正常的,通过尝试,解决办法是在main.c中再调用一次SW0_SetPullUp(),前后对比如下:
对比2.BMP 对比1.BMP

    为了保险起见,按键引脚(PC4)的配置都重新调用了一次。
引脚配置函数.png
   
    把IO_LED_Toggle();直接放在中断回调函数里,实际操作效果(按键一次,LED翻转)理想,然后尝试将操作都放到while中,出现了异常,按键控制失效了,通过查看示波器发现进入按键中断后导致DELAY_milliseconds()的时间延长了,取出后中断按键控制LED正常。
    各个中断之间影响比较严重,不要在while里使用DELAY_milliseconds(),会导致定时器和外部中断改变的全局变量在main中不起作用或无法执行。

    MCC在进行串口初始化时,有关引脚的函数全都没有生成,导致串口试验没有成功。
   
    收到开发板后兴致浓浓地试了试,对于8位的MCU来说,ATtiny1627还是挺不错的,MCC相对于Cube也是各有所长,本人比较喜欢MCC的排版和配置操作简单,但是有时初始化文件会丢东西,这个就会让人比较抓瞎。希望Microchip能多开发一下MCU的生态圈,让PIC和AVR系列MCU被更广泛的应用,越来越好!





使用特权

评论回复
qintian0303|  楼主 | 2021-11-26 14:32 | 显示全部楼层
时间比较仓促,后续有机会再好好调试一下

使用特权

评论回复
hu9jj| | 2021-11-26 16:08 | 显示全部楼层
恭贺楼主捷足先登,我还没有收到的核心板呢。

使用特权

评论回复
qintian0303|  楼主 | 2021-11-26 16:33 | 显示全部楼层
hu9jj 发表于 2021-11-26 16:08
恭贺楼主捷足先登,我还没有收到的核心板呢。

应该很快,我看到之后就给发邮件了,很快就到了

使用特权

评论回复
dql2015| | 2021-11-29 08:24 | 显示全部楼层
功能强大

使用特权

评论回复
pzsh| | 2021-12-1 14:52 | 显示全部楼层
MCC也可以用到AVR上了

使用特权

评论回复
qintian0303|  楼主 | 2021-12-4 22:15 | 显示全部楼层
pzsh 发表于 2021-12-1 14:52
MCC也可以用到AVR上了

现在是一家了,我以前没接触过MCC,这次直接用MCC了,发现是可以的

使用特权

评论回复
weifeng90| | 2021-12-5 17:42 | 显示全部楼层
这个开发板不错啊

使用特权

评论回复
chenjun89| | 2021-12-5 17:56 | 显示全部楼层
小巧精致的开发板

使用特权

评论回复
qintian0303|  楼主 | 2021-12-5 20:08 | 显示全部楼层
weifeng90 发表于 2021-12-5 17:42
这个开发板不错啊

8位的单片机

使用特权

评论回复
qintian0303|  楼主 | 2021-12-5 20:08 | 显示全部楼层
chenjun89 发表于 2021-12-5 17:56
小巧精致的开发板

还是挺不错的

使用特权

评论回复
neomissing| | 2021-12-5 20:23 | 显示全部楼层
IAR何时支持PIC16F了,你确定?

使用特权

评论回复
两只袜子| | 2021-12-7 09:11 | 显示全部楼层
这开发板的功能挺强大的,很棒

使用特权

评论回复
qintian0303|  楼主 | 2021-12-7 17:21 | 显示全部楼层
neomissing 发表于 2021-12-5 20:23
IAR何时支持PIC16F了,你确定?

正解,已纠正

使用特权

评论回复
数码小叶| | 2021-12-8 14:18 | 显示全部楼层
小巧精致的开发板

使用特权

评论回复
usysm| | 2022-1-11 20:19 | 显示全部楼层
图形化开发程序越来越简单了。   

使用特权

评论回复
typeof| | 2022-1-11 20:19 | 显示全部楼层
MCC是需要单独安装的吗?   

使用特权

评论回复
yujielun| | 2022-1-11 20:19 | 显示全部楼层
Curiosity Nano开发板都有哪些?  

使用特权

评论回复
htmlme| | 2022-1-11 20:20 | 显示全部楼层
ATtiny1627 支持arduino吗?   

使用特权

评论回复
pklong| | 2022-1-11 20:20 | 显示全部楼层
板子做的非常精巧呢   

使用特权

评论回复
下一页 »
12下一页
返回列表 发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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