如何为全新AVR芯片烧录程序

  1. Arduino不是指AVR单片机芯片,而是基于AVR单片机搭建的一个平台。
  2. ATMEGA328P是AVR单片机的一个型号,常用的Ardunio UNO和Arduino Pro Mini都是基于这款芯片,当然也有基于其他型号芯片的其他版本Arduino。
  3. AVR芯片本身只支持SPI方式烧录程序,新的芯片内不含任何程序。
  4. 我们平时用的Arduino编程软件,一般情况下是通过串口烧录程序的。

后面两条看起来相悖,这是为什么呢?因为虽然说硬件只支持SPI方式烧录,但试想一下,如果芯片里已经有一个程序,可以通过串口接收数据,写入到芯片里,就实现了串口烧录。这就是Arduino使用的烧录方式,而这个程序,就是Bootloader。

刚才说了,新的AVR芯片不含任何程序,当然也不含Bootloader,所以我们像为UNO烧录程序一样为新的AVR芯片烧录,自然是不行。那怎么办?答案你已经想到了,就是先通过SPI方式为芯片烧录Bootloader程序。

SPI烧录程序有两种方式,一种是单独买一个烧录设备,学名叫做USBISP,这是一个通用硬件,可以为AVR、51等单片机下载程序,支持通用的烧录软件。但是Arduino用不了,因为Arduino对USBISP的协议做了稍稍的修改,将其命名为USBasp。USBISP可以通过刷固件改为USBasp,这里今天先不说这个,因为今天先不讲USBasp方式烧录。有人说你废了半天话,还卖关子。其实不是的,因为一个是要单独买硬件需要成本,更重要的是win10下没有USBasp驱动,虽然有解决办法但是比较复杂。不如下面说的第二种方式来的简单。

第二种方式,是通过把现有的Arduino模拟成USBISP,实现烧录。这种方式无需为驱动操心,因为你的UNO早就和你的电脑愉快的玩耍在一起了吧。

通过现有Arduino板为新的AVR芯片烧录程序(烧录Bootloader)

通过现有Arduino板为新的AVR芯片烧录程序(烧录Bootloader)

首先连接好UNO,打开Arduino软件,选择文件-示例-ArduinoISP-ArduinoISP,这时软件自动打开了一个程序。

选择在工具菜单中设置好开发板的型号UNO,以及软口号。
注意因为这个步骤是为你的UNO烧录程序,所以此处设置和平时烧录程序一样。如果你不是UNO就按你的版本设置。

然后点上传,和平时一样,为你的UNO烧录程序。
之后你的UNO就以为成为一块模拟USBISP了,按照arduino的说法就是Arduino as ISP。
现在接口定义为:10.RESET、11.MOSI、12.MISO、13.SCK,如果你不是UNO,那就查一下刚才打开这个程序的代码,看下具体定义。

现在准备为你新的AVR芯片烧录程序,连接好上面说的4条线路,另外不要忘了+5V和GND。
这里用到了TQFP32烧录器,一会交给大家做法。
然后注意软件设置!端口不变,还是你UNO的端口。开发板和处理器按照你的目标AVR芯片设置,和UNO无关!比如我的目标是328P,5V电压,16M晶振,这里就如图设置。

这里可能又有人要问了,为什么开发板选择的是Arduino Pro Mini?因为Pro Mini是328P芯片啊!刚才说了,Arduino是基于AVR搭建的平台,他卖的是平台不是芯片,所以这里不会提供给你芯片型号选项,而是提供Arduino版本选项,所以你选择和你使用同样芯片的版本就行了。

然后编程器选择Arduino as ISP,如果是使用USBasp,这里就选择USBasp。

然后到这里,一切都准备妥当了。之后有两条路,需要注意了。

如果你单纯想烧录程序,不想要Bootloader,可以按住shift再点上传,每次都用这种方式烧录程序就可以了。
如果你想以后和玩Arduino一样,用串口烧录和调试,点击菜单工具-烧录引导程序,这样就写进去Bootloader了,以后就可以用串口操作了。

如果烧录报错了就检查你的硬件,按照我经验如果连线没问题,一般都是晶振未起震。

新的AVR芯片开光无需设置熔丝位!

新的AVR芯片开光无需设置熔丝位!新的AVR芯片开光无需设置熔丝位!重要的事情说三遍!

不知道什么时候开始,网上教程都说要为芯片设置熔丝位,那是低级的51的玩法好么!我们这么高级的Arduino,才不用设置熔丝位,你烧录Bootloader的时候,程序帮你一切都做好了。

328P最小系统设计


直接看图吧,一共7个外围元件,图中接出了SPI口和串口,当然还有RESET和DTR。
这里要区别一下DTR和RESET,RESET是芯片本身的引脚,而DTR是通过电容接在RESET脚上的。
SPI刷机方式用的是RESET脚,而使用串口刷机方式使用的是DTR信号。

某些版本的USB转串口设备,比如我手上这块CP2102,本身已经集成了DTR电容,那么也可以直接使用RESET引脚。这样就省略了C5,只剩下6个元件。
如果使用村田3脚晶振,因为晶振内置了对地电容,所以C3C4就可以省略了,参照Pro Mini,这样就剩下4个元件。
也就是说保证功能和稳定的前提下,328P的最小系统只要4个元件!

328P的烧录板制作

在大批量烧录的时候,我们不可能一个一个的去焊引脚,所以就需要一个烧录板,可以快速批量作业。
查了一下万能的淘宝,TQFP32座好贵,要60块钱!
这不是最重要的,重要的是竟然没有成品卖!好吧,我只能自己做一个了。

需要元件:TQFP32座,还有最小系统所需的几个元件。
然后就是手工活了,找了个洞洞板,按照上面电路图焊就行了。

正面样子

背面

插上烧录座

烧录座针脚特写

连接NUO的接线

连接USBasp的接线

连接CP2102的接线

好了完工,此帖到此结束。



引用自:「Arduino中文社区-(https://www.arduino.cn/thread-93600-1-1.html)

Last modification:August 13, 2021
如果觉得我的文章对你有用,请帮忙点一下上面的广告