上篇文章给大家分享了如何使用Usbasp烧录器给空白的Atmega328p芯片烧录bootloader,但是发现购买的Usbasp烧录器上采用的是10pin的接口,并且没有丝印,给Arduino uno这种6pin接口烧写时,不太方便,需要自己查找引脚图、做转接线,所以决定自制一个Usbasp烧录器使用,今天给大家分享制作过程以及制作完成后还需要做哪些工作以后,Usbasp烧录器才能正常使用。
首先,我们选择使用应用范围最广的Atmega8A芯片,它支持很多类型的芯片烧写,大概如下图,日常使用,完全没问题:
对于芯片的设计也非常简单,我们只需要做好芯片电源滤波、USB接口的通信、晶振、复位、与外接烧录口的通信即可,如下:
其次我们输入接口使用Type-C,可以直接使用手机数据线,主要方便,设计也是做一个稳压、滤波、过流保护,外加一个电源指示灯即可,如下:
然后输入接口与芯片之间做一个稳压,烧录稳定:
考虑被烧录的芯片有3V3、5V供电,所以对外接口供电我们选择AMS117 LDO芯片做个电源选择,适配性更强:
还有一点值得注意的是,自己制作的烧录器,芯片属于空白芯片,制作完成后,需要烧录固件,烧录时需要将复位与SS接口短接,正常给外部芯片烧录bootoader时不能短接,所以要预留烧录短接接口:
最后就是对外接口的设计,我们预留两个通用接口,一个是适配Arduino系列,直插直用,另外一个适配其它ARM:
最后制板时,加上接口丝印,便于识别,然后嘉立创领个10*10的免费券,直接打板即可:
成品烧录器焊接完成如下:
但是自制的烧录器不同于我们在网上购买的成品,购买的烧录器商家都烧录过固件,我们拿到之后可以直接使用,但是自制的,我们用的全新的芯片没有固件,直接插到电脑上,电脑无法识别(弹出无法识别的USB设备),报错情况如下:
所以自制的烧录器需要烧录固件以后才能使用,烧录固件有两种方法:一种使用购买的USBASP烧录器进行烧录,另外一种使用Arduino uno作为烧录器进行烧录(经过实际测试也能成功,但是概率很小,百度原因很多,这里不做赘述,后边查一下原因在进行说明),今天我们讲一下使用USBASP烧录器给我们的芯片烧录固件(固件需要从网上下载,网盘链接我放在评论区了,需要的自取,然后将固件和我们Arduino其它固件放到一起就可以,方便使用,也可随意放置,但要记录路径,下边会使用):
1.首先使用杜邦线连接两个烧录器的SPI接口(RESET、IO13、IO12、GND、IO11、5V接口),连接好之后,只需要将购买的烧录器插入电脑即可,然后WIN+R进入命令窗口,然后在该界面输入cd+我们刚刚固件放置的路径(复制路径以后,在这个界面右键一下,自动粘贴,防止手动输入错误,cd和路径之间有一个空格),回车之后便进入到该目录,输入dir看到usbasp.atmega8.hex文件,说明目录正确。
然后输入下边这条命令(14090为安装位置,需修改):C:\Users\14090\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin\avrdude.exe -C C:\Users\14090\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\etc\avrdude.conf -c usbasp -p m8 -B 10 -U flash:w:usbasp.atmega8.hex:i -U lfuse:w:0x9F:m -U hfuse:w:0xC4:m
执行命令后,可以看到修改参数、烧录进程,等待结束即可,看到下图提示,代表固件烧写成功,此时,我们的烧录就结束了,烧录器就可以正常使用了。
进入到Arduino ide中就可以进行bootloader烧录了:
下面进行一个完整的视频操作:
操作视频
今天的教程到此结束。