【atmega4809】atmega4809使用体验-准备工作

正文

这快要到春节了,给自己置办点年货elc-prt,去年就弄了个意大利产的2560板子(朋友给弄得,才花了150¥),今天想起来arduino新出的板子(nano every)(wifi rev2)(其实是去年的)。这玩意不怎么划算看底下的图片就知道了。某宝买的正版比官网的可能还要贵一些,上还卖单独芯片(-afr)也要40¥多!!(某巴巴卖给国外的东西比卖给国内的便宜不少,我经常假装老外,最要命的就是这阿某集团的所有东西都有另外一套说辞,买原件一定问问是不是实价,换句话说虚标各种东西已经非常普遍了,零件和电子市场售后处理方式是一样的:nope)就不如直接Moser上定芯片了,还是-pf的,我个人比较喜欢pdip,可能是觉得这玩意比较结实或者可以插拔吧。所有的arduino都是在eagle上画的,工具比ad要方便许多。

nano第二版(体积原因用的-afr,带插针贵不少的原因是需要一个夹具去加持插针,而没法走波峰,想想插针方向就知道了)
nanoevery
要命的价格,合着加税至少得120¥了
官网图片
wifi的第二版(体积原因用的-afr,这种就是第二次走的波峰,固然背面干干净净,插座也是用的连排的,关于识别正版arduino我在下次外话里说)
wifi

因为是2021年Microchip出的atmega4809(Microchip这个公司收购了Atmel),有很多新特性。但只是订购了芯片(atmega4809pf),目前的价格是24¥一片,不过想来为了情怀和特性买账还是可以的(目前实物还未到手)。pdip40的他比pdip28的328p-pu更有感觉哈哈哈

4809照片(atmel的标志有明显的变化)
4809-pf
相比来说之前的89c52-pu芯片标识太生硬了(可能收购后新logo融入了microchip风格)

52-pu

关于Atmel的wiki(sc或者tc的Wiki经常不全,还是看en的吧)
https://en.wikipedia.org/wiki/Atmel

首先可以看一下4809-pf有什么吸引人的地方:

特性4809-pf328-pu
程序存储器大小48k32k
封装pdip-40pdip-28
数据 ROM 大小2561k
数据 RAM 大小6k2k
输入/输出端数量3323
循环冗余检查 (CRC/SCAN)yesno
模拟比较器 (AC)yesno
单引脚编程和调试接口 (UPDI)yesno
硬件乘法器yesno
可配置自定义逻辑 (CCL)yesno
(同样特殊功能接口也变多了)

从这加上的特性来看,实际上这个芯片更适用于项目集成,也有可能是军工的技术指标商用化(之前拆开过rs的矢网,里面就有atmel的军工fpga,atmel基本上是什么芯片都做的,at91cap就融合了pal,让两者更加易用了。类似的单独gal很便宜性价比高,但是最愚蠢的是购买一个gal的高压并行编程器非常贵,我到现在貌似就这个芯片没办法弄。),唯一减少的是data rom,因为大部分人数据存储会使用外置的更便宜容量更大的spi rom(philips指纹锁的语音包和密码就存储在独立rom里),例如at24cxx,(单独下载岂不美哉)其他的用数字来衡量的都变大了,但是没有像2560大的那麽夸张,更多的是做了一些可能arduino不会利用的硬件资源用来加快速度,分别改进或增加(接口,模拟资源,数字资源,运算器),在我看来这倒像是做pc而不是mcu。(一堆外设和协处理器)

moser上的datasheet:

https://www.mouser.cn/datasheet/2/268/ATmega48A_PA_88A_PA_168A_PA_328_P_DS_DS40002061B-1900559.pdf

简单的接口图片(arduino社区提供):

pin2pin

外话

大部分的芯片都是有生产日期的,格式都是4位xx-yy,xx是几几年的,yy是第几周,通过识别就可以买到较新的芯片哈哈。喷漆的型号尽管某商家说是全新,但往往是大型电子市场积压的古董(他老化过头了)。新的型号一定是激光刻的字,但是也有假货。甚至低频型号磨掉字重刻或者再封装拿来当高频型号卖也是极为暴力(价格翻番了呀)。

常常有人把旧的芯片新来用,不过指标是有很大变化的(至少ad公司的新产品是完全优于旧产品的,他们手册里有区别),这也就是为何要买新出厂而不是新外观(拆机的不见得坏)。例如时常出奇怪的问题或压根买来就是坏的(说是全新,可能吗?)某宝商家上在射频模块上常常这样做,利润非常高,(一个所谓的新模块卖50,比这老芯片还新的拆机货才4块,固然古董级芯片也就2块多了)。

某宝上大部分射频模块超极早的生产日期像这样(这玩意还是喷漆工艺的,不过画这个电路是非常方便的,点几下一连就行,并且宁愿打满过孔也不愿网格化铺铜):
常见的超早生产日期
后来我看了datasheet才发现这的确如同葫芦画瓢一样简单(他去掉了一个巴伦所以加了点东西不至于显得尴尬):
例子
我尴尬的例子,尽管他投入使用也非常棒(从需求提出到成品实物仅两周,照片还找不到了,用的白油,只能拿模型看,这是之前给老爹做的一个控制器):
没有多余原件
不尴尬的例子(质疑他的可用性,芯片引脚明显做的悬空处理,因为他不会给这东西用6层板的):
这是魔法吗!!??

还有这样(需要指出的是:包装的甚是华丽,奸商宁愿去做图也不会去给你用铝基板,并且夹板sma头也比直插弯头便宜非常多,空闲的地方再放点装逼logo,难道真有人会把这一百多的东西扔到垃圾桶里去???负载特性电阻呢!!!)
日期还算可以
我至少还会加个海绵宝宝三人组的logo让人舍不得扔(同样也做出实物了,用的红油,有人还特意光要的pcb因为元件对他没什么用):
裤头村三恶霸

常常有假的出奇的芯片(洗板水一洗壳子掉色)多半是重新封装的。
我自己小时候经常这样玩:用三氯乙醇(很厉害的溶剂,我原来在化工市场捡到不少,因为这玩意味道太大,二氯乙醇也有扔的,但是就没这莫大的劲)泡新的74系列的芯片直到外壳变粘,再去小心清理掉那些黏糊糊的东西,幸运的话有些是里边有铜皮的而不是常见的铝丝。清理完把它放到新配好的环氧胶里(我用透明文具包装盒塑料做了一个模子),等干了再去用小刀刻上汉字,美其名曰国产芯片。
另外那些说用什么发烟硫硝酸去腐蚀壳子的真的是在胡扯,难道他想让芯片变成极度易燃的东西(我称之为硝化树脂),那样的话芯片里边那些东西早就不见了,剩下个没有参杂的破硅片,幸运的话那坨东西一砸就爆。。。

有人说这是最早的封装,但是你能看到之前的一些芯片顶多是喷漆的字,但是字和壳子也不会被洗板水洗化掉,要真是掉色,赶快把它扔了吧,我买的一些这样芯片常常滚烫,以至于自己跑到温度上限去然后报废。最早的工艺就是环氧加喷漆,但是也不至于劣质到一洗就化。因为封测厂的环氧树脂不是那种某宝能买到的。

74的经典假货(出奇的圆滑,和一些边上的坎,绝对是模子做出来的,这个洗板水一洗就化)
经典假货

说到usb转ttl,我一直没找到合适的芯片,也有可能是db9接口的确很牢固(一些大公司不愿意换掉vga的原因,vga不是9!!)。不过直插芯片向来深得我爱,因为经典的东西都是这样的(classical芯片基本上都是pdip,更classical芯片是cdip的)。对于我的随便一个项目来说,时效性是很关键的,我才不想把时间浪费在找一个贴片芯片(不幸掉地上有几率他就永远的消失了,或者直到搬家才发现),或者矫正他的腿(我之前想拧掉芯片上粘着的散热片,结果拧掉了一个ni的不知名芯片,于是花钱请高人把他再弄上去),或者设置回流炉上(曲线很重要)。锡浆真的不能买多,买多了不光是层析,而且还会干(前者会让这玩意很不均匀,以至于放进回流崩的锡珠到处都是,正好卡在那极密的腿上,后者则需要费很大劲把针筒锯开),虽然不贵吧但是遇到这些事还是很生气的。我一直在致力于把家里各种不是锁紧插头换成可以锁紧的(例如电光源显微镜的直接出线),这样便不会因为插头引起奇怪的问题。usb除了-b我真的不晓得别的有什么好的,-a压根不结实,-c更不用提了,用的时间长了就松了,还晃荡,和那啥似的。同样提高效率的是极少的外部电路,因为专用芯片要那麽多外围电路就是一个扯淡事。
micro chip 竟然有一个极好的usbttl芯片:mcp2221,同样也有-p,2221a型号速率高一些,正常使用就没大有必要用2221a了,他只是可以飙到460800bps(用来做现代字符显示器倒很美妙)。本来以为这0.016的错误率是需要用crc校验的,正好4809可以帮到。转念一想232本来就自带校验(虽然很简单)还是算了。后边可能会订购一些(太贵了,moser23一个,甚至不如做好了的8u2了,我都花了好几千买各种盗版的下载器写各种芯片,尤其是高压并行编程的,用这些东西太麻烦了)用以应急。
这里有一个有趣的项目,尽管并不是全开源的(谴责):

他自己的博客
https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew-z80-computer
后来的git托管
https://github.com/SuperFabius/Z80-MBC2

usb转ttl芯片是协议转换,不同于232电平转换(max232是可以用完全独立的元件做出来的,他就是电压转换和电平极性反转)
usart ic
之前闲着画的pcb是用的max232(同样是模型,但是也拿到了实物):
z是我的姓氏拉丁文首字母

最终

1.这篇文章读起来可能像机翻(没人会看的),但平时我就是如此说话(也许这样更加有西语天赋,但我们这大多数本地人都这样说话),或者更加严重,例如:啊,这很不错的功能这个板子我觉得。导致的一个后果就是之前在写论文或专利的时候我自己专门读几遍确保语序正确。
2.关于我的住址我是不愿透露的,只能说楼前就是个臭水沟(我整天关着窗户和窗帘害怕虫子进来,之前养成这样的习惯就一直没变。最早的时候虫子尸体在窗槽子里能一把一把的,后来小区有了许多可爱的小壁虎就好很多了,时常在玻璃上吃虫子),臭水沟那边是个山。
3.这个鬼怪qq号已经下落不明了,so我也不怕有人发啥广告,哈哈哈哈

ATMEGA4809-XPRO简述: ATmega4809 Xplained Pro评估套件是Microchip最新推出的一款评估ATmega4809 AVR微控制器(MCU)的硬件平台。通过Atmel Studio集成开发平台的支持,该套件可轻松访问ATmega4809的功能,充分了解如何将该器件集成到定制设计中。 Xplained Pro MCU系列评估套件包含板载嵌入式调试器(EDBG),无需使用外部工具对ATmega4809进行编程或调试。 该套件支持附加外设,以扩展Xplained Pro扩展套件和MikroElektronika mikroBUS兼容电路板的功能。 ATmega4809-XPRO评估套件推荐用于评测ATmega4809ATmega4808、ATmega3209和ATmega3208微控制器。 主要功能 ● 采用ATmega4809微控制器 ● 嵌入式调试器EDBG ● USB接口 ● Auto-ID,用于Atmel Studio中的电路板识别 ● 一个黄色的状态LED ● 一个绿色的电源LED ● 复杂数据类型的符号调试,包括范围信息 ● 通过UPDI对板载ATmega4809进行编程和调试 ● 数据网关接口:SPI、I2C和四个GPIO ● 虚拟COM端口(CDC) ● 完全电平移位的I / O连接到ATmega4809 ● 双电源供电模式 ● ATmega4809可选择3.3 V和5.0 V操作 ● 数字I / O ● 两个机械按钮(用户按钮和复位按钮) ● 一个黄色的用户LED ● 三个Xplained Pro扩展插头 ● 一个MirkoElektronika mikroBUS插座 ● 32.768kHz晶振 ● 为了精确定时和时钟应用,〜20 ppm ● 带有UPDI的10引脚AVR调试连接器,用于外部编程器和调试器 ● 支持Atmel START中的应用程序示例
索奥科技中心倾情奉献 1 第2讲 AVR单片机软件开发环境 一、实验目的 1.熟悉CodeVision AVR集成开发环境 2.掌握单片机C语言开发 二、实验内容 1.在CodeVision AVR软件开发平台下创建一个工程并编译下载。 三、实验所用仪表及设备 硬件:PC机一台、AVR_SA_11实验板 软件:CodeVision AVR集成开发软件、progisp下载软件 四、实验步骤 使用CodeVision AVR软件的CodeWizardAVR功能,创建一个简单的工程,编译并下载。 新建项目 (1)打开CodeVision AVR(版本V2.03.4),打开File->New,选择Project->OK,弹出一个Confirm对话框,选择Yes。如图2.1所示。 图2.1 (2)在弹出的CodeWizardAVR窗口中进行选择。在Chip选项卡中:Chip->ATmega16,Clock->1MHz。在Port选项卡中:选择PortA,修改Bit0为Out,Output Value改为1。如图2.2所示。 索奥科技中心倾情奉献 2 图2.2 (3)在CodeWizardAVR窗口中,File->Generate,Save and Exit,创建新工程。如图2.3所示。 图2.3 将新生成的源程序(.c),工程文件(.prj),CodeWizardAVR文件(.cwp),保存在一个新建文件夹下。如图2.4所示新生成的源程序。 索奥科技中心倾情奉献 3 图2.4 (4)修改源程序 在源程序在开始处添加 #include 。 在while(1)处添加四句语句。如图2.5所示。 图2.5 (5)保存。 编译项目 选择Project->Build All(Ctrl + F9),弹出Information窗口,其中No errors,No warnings表示编译成功。如图2.6所示。如果出现错误,根据错误提示修改源程序。 索奥科技中心倾情奉献 4 图2.6 下载程序 由于CodeVision AVR自带的下载软件Code Programmer修改熔丝位不够灵活,我们选用progisp下载软件进行程序下载。 (1)打开progisp,USBASP彩色表示使用USBASP方式下载,PRGISP彩色表示USBASP下载器连接成功,选择芯片型号。最终配置成图2.7的样子。 图2.7 (2)点击“调入Flash”选项,在工程文件夹下找到Exe文件夹,选择xx.hex文件,点击确定。如图2.8所示。 索奥科技中心倾情奉献 5 图2.8 (3)编程选项修改。按照图2.9进行选择。(注意“编程熔丝”选项,一定不要选择) 图2.9 (4)将下载器与PC机USB口相连,另一端连接实验板ISP接口。使用杜邦线将任意一个LED灯与PA0相连。 (5)点击“自动”,如图2.11所示为编程成功。观察LED,发现它在一闪一闪。 图2.11 五、思考题 1.用CodeWizardAVR创建工程的有什么优点? 2.创建工程的过程中应注意哪些问题? 索奥科技中心倾情奉献 6 附一:关于 avr的熔丝的使用和设置 (马潮) 对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状“0””。 (2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“0”还是为“1”。 (3)使用CVAVR中的编程下载程序时应特别注意,由于 CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用“all”选项,应先使用“read->fuse bits”读取芯片中熔丝位实际状态后,再使用“all” 选项。 (4)新的AVR芯片在使用前,应首先查看它熔丝位的配置情况,再根据实际需要,进行熔丝位的配置,并将各个熔丝位的状态记录备案。 (5)AVR芯片加密以后仅仅是不能读取芯片内部Flash和E2PROM中的数据,熔丝位的状态仍然可以读取但不能修改配置。芯片擦除命令是将Flash和E2PROM中的数据清除,并同时将两位锁定位状态配置成“11”,处于无锁定状态。但芯片擦除命令并不改变其它熔丝位的状态。 (6)正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的锁定位。芯片被锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,并解除锁定。然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的锁定位。 (7)使用ISP串行方式下载编程时,应配置SPIEN熔丝位为“0”。芯片出厂时SPIEN位的状态默认为“0”,表示允许ISP串行方式下载数据。只有该位处于编程状态“0”,才可以通过AVR的SPI口进行ISP下载,如果该位被配置为未编程“1”后,ISP串行方式下载数据立即被禁止,此时只能通过并行方式或 JTAG编程方式才能将SPIEN的状态重新设置为“0”,开放ISP。通常情况下,应保持 SPIEN的状态为“0”,允许ISP编程不会影响其引脚的I/O功能,只要在硬件电路设计时,注意ISP接口与其并接的器件进行必要的隔离,如使用串接电阻或 断路跳线等。 (8)当你的系统中,不使用 JTAG接口下载编程或实时在线仿真调试,且 JTAG接口的引脚需要作为I/O口使用时,必须设置熔丝位JTAGEN的状态为“1”。芯片出厂时JTAGEN的状态默认为“0”,表示允许JTAG接口,JTAG的外部引脚不能作为I/O口使用。当JTAGEN的状态设置为“1”后,JTAG接口立即被禁止,此时只能通过并行方式或ISP编程方式才能将JTAG重新设置为“0”,开放JTAG。 (9)一般情况下不要设置熔丝位把RESET引脚定义成I/O使用(如设置ATmega8熔丝位RSTDISBL的状态为“0”),这样会造成ISP的下载编程无法进行,因为在进入ISP方式编程时前,需要将 RESET引脚拉低,使芯片先进入复位状态。 (10)使用内部有RC振荡器的AVR芯片时,要特别注意熔丝位CKSEL的配置。一般情况下,芯片出厂时CKSEL位的状态默认为使用内部1MHz的RC振荡器作为系统的时钟 索奥科技中心倾情奉献 7 源。如果你使用了外部振荡器作为系统的时钟源时,不要忘记首先正确配置CKSEL熔丝位,否则你整个系统的定时都会出现问题。而当在你的设计 中没有使用外部振荡器(或某钟特定的振荡源)作为系统的时钟源时,千万不要误操作或错误的把CKSEL熔丝位配置成使用外部振荡器(或其它不同类型的振荡源)。一旦这种情况产生,使用ISP编程方式则无法对芯片操作了(因为ISP方式需要芯片的系统时钟工作并产生定时控制信号),芯片看上去“坏了”。此时只有使用取下芯片使用并行编程方式,或使用JTAG方式(如果JTAG为允许时且目标板上留有JTAG接口)来解救了。另一种解救的方式是:尝试在芯片的晶体引脚上临时人为的叠加上不同类型的振荡时钟信号,一旦ISP可以对芯片操作,立即将 CKSEL配置成使用内部1MHz的RC振荡器作为系统的时钟源,然后再根据实际情况重新正确配置CKSEL。 (11)使用支持IAP的AVR芯片时,如果你不使用BOOTLOADER功能,注意不要把熔丝位BOOTRST设置为“0”状态,它会使芯片在上电时不是从Flash的0x0000处开始执行程序。芯片出厂时BOOTRST位的状态默认为“1”。 (关于ATMega16的熔丝位的使用和设置更详细的内容请参考《AVR单片机嵌入式系统原理与应用实践》附录A或者数据手册。) 附二:CVAVR编程下载配置 下载环境配置 (1)选择“Settings——>Programmer”,其中AVR Chip Programmer Type选择“Kanda Systems STK200+/300”;Printer Port(并口号)根据电脑的实际情况选择,如图2.12所示。 图2.12 (2)然后就可以在“Tools”中选择“Chip programmer”进行程序的下载和熔丝位的修改等。(比较麻烦,不建议初学者使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值