atmega168p与328p_与Arduino“本是同根”——Atmel ATmega328P-XMINI开发板评测_weixin_39621235的博客-程序员秘密

技术标签: atmega168p与328p  

用“海纳百川”来形容市场确实有一定的道理,即使如今ARM Cortex-M系列的微控制器生态圈遍布全球,但是在差异化的细分市场中,其它架构的MCU产品终究占有不小的市场份额,以低功耗著称的Atmel AVR系列就是其中的一类,更是随着开源硬件Arduino的火热,AVR系列微控制器的热度又呈逐渐上升趋势。

近日,爱板网就拿到了一款基于AVR微控制器的Atmel Xplained系列的mini评估板——ATmega328P-XMINI,正如其名,板卡非常的迷你小巧,仅有小孩的一个巴掌大小(75mm*60mm)。

ATmega328P-XMINI评估板

ATmega328P-XMINI评估板采用4层板的设计,板卡搭载了Atmel常见的“资源组合模式”,即EDBG调试模块+微控制器+外设,不过,在此板卡上,外设资源基本可以“忽略”,倒是主MCU的信号脚都通过“洞洞板”引出,非常方便扩展。

ATmega328P-XMINI评估板

ATmega328P-XMINI板载资源:

ATmega328p(ATmega328p数据手册) AVR微控制器

EDBG模块:Atmega32u4(Atmega32u4数据手册)微控制器

用户按键*1、用户LED*1、调试LED*1

JTAG、Arduino R3、ISP接口(预留)

除了用于基本调试的用户按键以及用户LED外,ATmega328P-XMINI评估板预留了与Arduino R3兼容的扩展接口,JTAG接口以及ISP接口,板卡同样搭载了Atmel特有的方便用户开发调试的EDBG模块,功能包括:

Debug接口

虚拟串口

数据网关接口(DGI)

用户只需一根mircoUSB线,即可轻松通过最新的免费IDE设计工具Atmel Studio6.2连接板卡实现编译、下载调试等操作。

另外,相信大家注意到了,事实上这种“凸字形”外观的板卡大家并不陌生,这与爱板网不久前评测过的Atmega168 Xplained Mini可算是“隶属同门”,何其相似(如下图)。

Atmega168 Xplained Mini评估板

当然,仔细分辨的话这两者之间的区别也同样明显。之前的Atmega168 Xplained Mini在板卡的接口设计时采用了与电脑USB Host接口直连的设计(类似U盘接口),虽然这样做省去了额外的microUSB线,拿来即用,非常简单方便,但是在板卡实际的开发、评估的时,免不了需要在板卡上DIY、扩展、测试等,这时,如果板卡直连在电脑主机的USB上,会使这些操作变得非常麻烦,而且得小心翼翼的操作。而我们看到如今在ATmega328P-XMINI开发板上已经改回原来的microUSB接口,显然这样的设计更符合实际使用习惯,更为合理。

除此之外,ATmega328P-XMINI开发板还在板卡的供电电路设计上做了优化:

板卡微控制器仍旧采用microUSB的5V供电,不过在供电电路设计中加上了一个保持电流为500mA的保险丝

为兼容Arduino R3的扩展接口中的3.3V电压信号,在microUSB接口处额外设计了3.3V电压输出的LDO电路

清楚了解板卡这些硬件单元和外设功能,我们再重点来看看ATmega328P-XMINI板载的AVR微控制器ATmega328p-MU。(下一页)

ATmega328p-MU(ATmega328p-MU数据手册)微控制器

ATmega328p-MU是一颗高性能、低功耗的“迷你”8位AVR微控制器(如下图),精简指令集架构,接近芯片级的封装,集成了32KB Flash,1KB EEPROM以及2KB RAM,最大可支持23个GPIO口的扩展,非常适合低功耗、小系统控制架构的白色小家电产品。

ATmega328P-MU微控制器

高性能、低功耗的8位AVR微控制器,RSIC架构,工作电压1.8V~5.5V,MLF封装

集成USART、SPI、PWM、ADC、TWI、定时器、看门狗等,最大可支持扩展23个IO口

集成内部晶体振荡,温度传感器,Atmel QTouch 库支持

微控制器主频速度分级:0 - [email protected] - 5.5V, 0 - [email protected] - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V

功耗@1MHz, 1.8V:Active Mode(0.2mA)、Power-down Mode:(0.1µA)、Power-save Mode( 0.75µA) (Including 32kHz RTC)

ATmega328p-MU具有AVR微控制器的典型特性,精简指令集架构,适应宽工作电压范围,灵活的低功耗模式,支持Atmel特有的QTouch库,最大可支持23个IO口,作为一款8位的单片机,性能和功能都已经足够强大了。

说实话,看到ATmega328P-XMINI评估板搭载这颗微控制器还是挺让人意外的,对于使用过Arduino开发板的朋友应该对这个型号的AVR微控制器并不陌生,比如笔者手上的这块Arduino开发板,搭载了基于Atmel ATMEGA328P-PU AVR微控制器,见下图

Atmel ATMEGA328P-PU微控制器

虽然封装工艺差别很大,型号也有相差,但是功能基本相同,唯一区别的就数ADC的通道数:

ATmega328P-MU:8通道的10位ADC

ATMEGA328P-PU:6通道的10位ADC

不过,正如所见到的,Arduino开发板搭载的PDIP28封装的ATMEGA328P-PU更适合学习、开发之用,而高集成度的ATmega328P-MU才是一款真正倾向于产品化应用开发领域的MCU,总之一句话,熟悉Arduino的用户一定能快速上手Atmel ATmega328P-XMINI。

Atmel ATmega328P-XMINI应用与使用

如果你非常熟悉单片机应用市场,那么你就会发现低功耗的8位微控制器在系统控制简单的白色小家电领域非常的活跃,比如冰箱、洗衣机、电饭煲等的面板控制系统,再者,在这个人们越来越重视高质量生活的时代,楼宇控制的舒适性也一再被强调,比如下面的恒温调节器产品,同样可以通过低功耗的AVR系列微控制器实现。

恒温调节器应用

介绍完评估板和微控制器的一些特点后,再来实际上电体验一下板卡的功能。ATmega328P-XMINI出厂内置的是一个通过用户按键控制实现LED点亮或者熄灭的程序,在连接microUSB上电后,系统会自动执行初始化,然后运行内置程序,如下图

ATmega328P-XMINI上电运行出厂程序

要想对板卡进一步开发,那就必须配合IDE工具了。对于初次接触Atmel开发板的用户,爱板网推荐大家使用Atmel官网提供的免费强大的IDE设计工具Atmel Studio6.2,这不仅可以帮助用户快速上手Atmel的评估板,更包含了最新最全的官方例程资源,比如可支持最新的Xplained mini系列评估板,如下图

以ATmega328P-XMINI为例,只需一根microUSB线即可连接Atmel Studio6.2,实现编译、下载、调试等功能的操作。具体的步骤在这就不再详细叙述了,可以参考爱板网关于Atmega168 Xplained Mini板卡评测的内容。

小结

介绍了Atmel ATmega328P-XMINI评估板以及ATMEGA328P-MU AVR微控制器的特点及应用,板载Atmel独有的EDBG模块省去了额外的硬件调试器,预留的原型区域提供给用户各种DIY的可能,接近芯片级封装的“迷你”AVR微控制器更是给Arduino用户提供了从开发到产品化的保障,加上强大的IDE设计工具Atmel Studio6.2,无论是学习、开发、DIY,Atmel ATmega328P-XMINI都能轻松胜任。

参考资料

原创申明:本文为爱板网原创,谢绝转载!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39621235/article/details/111863560

智能推荐

Problem G: 求函数f(x)=cosx+x的定积分_c+试子中cosx+x怎么表示_会编程的七七的博客-程序员秘密

Problem Description已知f(x)=cosx+x,求区间[a,b]上的定积分。算法采用梯形法,简介如下:对,将积分区间b-a等分为m份,每份h=(b-a)/m。使用梯形面积来近似计算定积分,近似公式为建议m取1000 ~ 2000(1)定义一个函数名为f的被积函数,参数为x,类型为double:double f(double x) { return (cos(x) + x);}(2)定义一个中间变量c,使可以用循环结构计算。(3)定义一个用近似公式求和的函数,...

UG二次开发-遍历输出打印所有程序组_剑舞G的博客-程序员秘密

在UG二次开发的cam模块下,通常需要打印出树结构下的全部名称,在这里给出打印程序视图下所有程序组名称(包括子级程序组名称)的代码。这里使用树的层次遍历算法,并将树的根设定为NC_pragram。UF_initialize(); //根 tag_t setup_tag=NULL_TAG; tag_t program_group=NULL_TAG; UF_SETUP_ask_setup (&setup_tag); //程序试图的根 UF_SETUP_ask_program_ro

docker-compose详解_懒的去其的博客-程序员秘密

1 安装:官方:curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose或者使用包管理工具:...

Android_android studio使用 9patch常见问题解决_Ricky彪的博客-程序员秘密

1.Error:Execution failed for task ‘:app:processDebugResources’.com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘F:\AndroidStudio\android\sd

动态模型_随风九天的博客-程序员秘密

1 动态模型1.1 说明动态模型是指模型的属性是不固定的,可以添加和变更;也指不同模型,可以增加模型。不同模型在存储上为了性能和隔离,使用不同的表。但逻辑编写为了复用,一般使用同一个java类型。以下介绍如何对应。1.2 java类java类分固定属性和动态属性,固定属性直接建立属性即可,动态属性使用map类型。例如下面例子:public class Dynamic...

Java网络编程_oicq2008的博客-程序员秘密

<br />     事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了. <br />网络编程的基本模型就是客户机到服务器模型.简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位置.并去建立两

随便推点

标准库initializer_list类_code_hrbeu的博客-程序员秘密

initialize :初始化和vector一样,initializer_list也是一种模板类型。但和vector不同的是initializer_list对象中的元素永远是const。具体的操作includeinitializer_list lst     定义一个initializer_list,进行默认初始化initializer_list lst{a,b,c}

2022年搜索引擎研究报告_百度移动端爬虫索引电脑端_资产信息网的博客-程序员秘密

广告用户针对自己产品的特点,向搜索引擎服务商选择和购买相关的关键词。同时,互联网日益成为消费者获取信息的主要渠道,广告主的营销预算与投入不断向互联网渠道及媒体转移,搜索引擎作为互联网的主要流量入口,成为广告主互联网广告营销与推广的渠道选择,使中国搜索引擎行业的广告业务营收稳步增长,从而推动行业整体快速发展。搜索引擎是基于网络爬虫、检索排序、网页处理、大数据处理、自然语言处理等技术,根据用户需求与推荐算法,运用特定策略从互联网海量信息中检索出匹配信息反馈给用户的检索技术,为用户提供快速、高相关性的信息服务。

百度搜索限定时间_学会这十个搜索技巧,快捷准确的搜索资源,让你事半功倍终身受益..._weixin_39680121的博客-程序员秘密

在今天的信息时代,我们经常都要上网搜索资源查找信息,搜索各种各样的资料,搜索引擎是我们搜索资料的最好帮手,使用搜索引擎,我们能很便捷的找到需要的信息资料。不过,网络上的资源实在太多了,而且还有广告的干扰,要搜索到真正合适的资源,也不是一件容易的事情。我们如何能够精准快速的搜索到想要的资源和结果呢?下面介绍几个常用的搜索技巧,让你事半功倍。目前,主要的搜索引擎有百度搜索、必应搜索、搜狗搜索、谷歌搜索...

kali2020出现中文乱码解决_中文字慕日产乱码2020字幕_小土豆dy的博客-程序员秘密

中文乱码效果解决:1.分别输入以下命令sudo apt-get install xfonts-intl-chinesesudo apt-get install ttf-wqy-microheisudo dpkg-reconfigure locales2.图形中选择用上下左右进行调节,用空格选中或取消,“*”即表示选中。选中en_US.UTF-8和zh_CN.UTF-8,用...

android 虚拟导航监听,Android另类判断NavigationBar虚拟导航栏状态_韩莹莹的博客-程序员秘密

好久没码字了,所以出来冒个泡一直用着华为的手机,从一开始就觉得华为的虚拟导航栏用着还是挺顺手的,后来发现越来越多的机子都开始使用起来,查看源码发现,虚拟导航栏是属于SystemUI的一部分。再一看手机,还提供了隐藏虚拟按键的按钮,于是就想,能不能有一个方法判断导航栏是否显示?基于不重复造轮子的思想,先是网上搜索了一把,方法都大同小异,但一用,发现挺多新手机都无法适配,于是从另一种方向思考如何判断N...

JVM内存模型和GC算法分析_jmm 模型、常用 gc 算法_JdbcUtils的博客-程序员秘密

JVM运行时数据区JVM在运行过程中会把它所管理的内存划分成若干不同的数据区域。线程私有:程序计数器、虚拟机栈、本地方法栈 (主要存放指令)线程共享:堆、方法区 (主要存放数据)一、程序计数器程序计数器是用于存放下一条指令所在单元的地址的地方。我们可以随意拿一个class文件进行反编译,看看其结构。如下,JvmDemo.class文件:cafe babe 0000 0033...

推荐文章

热门文章

相关标签