当前位置: 首页 > news >正文

如何自制一个Usbasp烧录器给芯片烧写bootloader?

上篇文章给大家分享了如何使用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烧录了:

下面进行一个完整的视频操作:

操作视频

今天的教程到此结束。

http://www.jsqmd.com/news/1131998/

相关文章:

  • ThinkPHP、Log4j2、Spring框架漏洞深度复现与原理剖析实战指南
  • UEFI+GPT 双系统安装:3个关键分区方案对比与 1 个 EFI 分区避坑点
  • Spring Boot 后端接口分层设计:从 Controller 到统一异常处理
  • MySQL 8.0 命令行实战:5分钟完成数据库连接与10个核心操作验证
  • Windows 10/11 离线安装 .NET Framework 3.5:DISM 命令 3 步解决 0x8024402C 错误
  • SQL Server 2022 嵌套查询实战:3类子查询与连接查询性能对比分析
  • MySQL 查询优化实战:从50题中提炼的5个索引设计与执行计划解读
  • 3种Transformer位置编码对比:Sinusoidal, Learned, RoPE 在长文本任务中的性能差异
  • HTML5+CSS3 登录注册页面实战:从零构建 2 个响应式表单(附完整源码)
  • 终极游戏模组管理器:XXMI-Launcher让你的游戏体验焕然一新
  • 从Viola-Jones到YOLO:目标检测20年演进中的3个关键范式转变
  • PostgreSQL 16.3 Windows 安装:3种端口冲突解决方案与 pgAdmin 4 连接测试
  • HarmonyKit | 鸿蒙新特性实战:从零构建开发者工具箱
  • SolidWorks_装配体设计11_间隙验证与测量
  • PyTorch BCEWithLogitsLoss pos_weight 参数详解:5:1 样本比下的 3 种加权策略对比
  • Proxmox VE 6.2 同机换盘迁移:3步恢复配置与4个常见启动错误排查
  • NumPy 与 PyTorch 矩阵运算对比:5个核心操作在 CPU/GPU 上的性能基准测试
  • UEFI Handle/Protocol 核心链表解析:6条链表交互与源码级图解
  • PyTorch 1.13 光伏功率预测实战:4种神经网络模型对比与72小时预测误差分析
  • C++ TensorRT Edge-LLM 边缘推理框架:从原理到实战
  • WinCC V7.5 VBS脚本操作SQL Server 2016:4种CRUD操作完整代码与3个关键连接参数
  • Linux LVM 根目录 100% 磁盘打满:3步定位 MySQL 日志并安全清理
  • MySQL 元数据查询对比:INFORMATION_SCHEMA vs SHOW 命令 vs DESC
  • MySQL 单元 6 数据视图学习笔记
  • Momentum 与 Adam 优化器对比:从 2D 损失曲面到 ResNet-18 训练效率分析
  • 提示词工程实战:从基础指令到RAG与Agent的AI应用开发指南
  • LitePal 3.2.3 数据库升级实战:3步完成表结构变更与数据迁移
  • Ubuntu 22.04 dpkg lock-frontend 锁冲突:3步精准定位并安全终止占用进程
  • 如何快速掌握Spek频谱分析器:面向初学者的完整音频分析指南
  • 领取Ai大模型token了