当前位置:网站首页 > 云服务教程 > 正文

w25q128jvsiq烧录教程(w25q256fv如何烧录)




  • 📍本论坛的相关烧录教程(通过一块Arduino UNO板作为ISP来烧录的)《为ATMega328pb芯片烧录Arduino bootloader》,或者参考《用Arduino UNO作为AVR ISP烧录器 烧bootloader(引导程序)》
  • 📌USBasp个人相关内容《2018版USBASP烧录器改通用版教》
  • 📘ATMega328PB和ATMega328P差异中文说明文档资料:
 
   
  • 📍原文文档:https://ww1.microchip.com/downloads/en/AppNotes/Atmel-42559-Differences-between-ATmega328P-and-ATmega328PB_ApplicationNote_AT15007.pdf
  • ✨本文是通过USBasp工具进行Bootloader烧录的。
    在这里插入图片描述
  • ✨本文使用ATMega328PB-AU烧录bootloader作为研究测试对象。
  • 🎉bootloader目的:为了摆脱单一的ISP烧录方式,实现串口烧录。
  • 👉烧录bootloader前提,必须要有一个AVR烧录器或者Arduino UNO/nano开发板。
  • ✨有AVR烧录器的情况下,可以通过AVR烧录软件,找到支持包下面对应型号的bootloader文件直接烧录也可以。需要自己熟悉和了解熔丝位的配置才行。另外的方法就是通过Arduino IDE菜单面板操作来完成bootloader的烧录工作。
  • 🌿当前Arduino IDE环境下,支持芯片型号的支持包固件: 支持包网址:
 
   
  • 📌熔丝位在线计算网站,适用于AVR系列单片机:
  • 📌熔丝位在线配置网站,适用于AVR系列单片机:
🛠boot loader熔丝位配置
  • 影响Boot Loader Parameters主要是高熔丝:
    在这里插入图片描述
  • 🌿BOOTLOADER区大小配置位: 和 :这两位确定了BOOTLOADER区的大小以及其起始的首地址。默认的状态为“00”,
    在这里插入图片描述
  • 🌿: 复位向量地址选择
    在这里插入图片描述

✨决定MCU上电时,第一条执行指令的地址。默认状态为“1”,表示起动时从0x0000开始执行。如果BOOTRST设置为“0”,则起动时从BOOTLOADER区的起始地址处开始执行程序。BOOTLOADER区的大小由和决定,因此其首地址也随之变化。

  • 🌟如果芯片里面烧写了bootloader程序,并想要复位后从引导区开始,就需要配置此位0。
  • 🔖具体信息可以参考328PB手册31章:内容。
  • 🈯烧录bootloader的目的:为了方便在Arduino IDE开发环境下,使用串口烧录程序。需要依赖固件+串口,才能完成代码上传的工作。如果手上有AVR烧录器,那么可以通过AVR烧录器+烧录软件,完成程序烧录即可。
  • 如果使用USBasp 直接上传代码,在Arduino IDE直接选择进行代码上传。

在这里插入图片描述
在这里插入图片描述

📑前言

趁目前主控芯片的价格比较便宜,购买了一片此型号芯片,刚刚完成主控的开发板的设计,准备打板,先测试下一是否兼容Arduino nano开发板,于是将手上现有的Arduino nano板子上的32引脚TQFP封装的更换了下来,换上进行烧录。

在这里插入图片描述
在这里插入图片描述

  • 📌PCB开源链接:
  • 🔰芯片的 RST复位引脚需要接入到USB转串口芯片的Mode联络信号引脚上,这里以CH340N为例,芯片的复位引脚通过一个耦合电容接到CH340N的RST引脚上。
    在这里插入图片描述

🌟bootloader固件选择

  • 🔰如果选择使用固件所提供的烧录文件,之后使用Arduino IDE程序上传都需要选择此类型的开发板的对应型号,并不能选择其他支持包下面的同型号芯片进行上传。采用不同支持包下的bootloader固件,下载算法有些差异。。(支持包,还提供了使用串口1(PB4/PB3)作为烧录口的选择方式)。
    在这里插入图片描述
    • 👉如果选择使用编程器上传程序,就不存在上面的情况。只需要型号正确,就可以上传代码。需要注意一点的是,一旦选择了编程器上传代码,会导致原来芯片上,已下载过的bootloader程序段失效,下次下载程序,将不能再次使用串口直接上传程序。
    • 📄MiniCore:
 
   
  • 在MiniCore固件支持包下包含有非常多不同参数的bootloader程序,方便单独烧录:
    在这里插入图片描述
    • 📄Polulo:
 
   

-👉 如果使用独立的烧录软件,通过加载编译好的Hex文件进行烧录不存在此问题。

  • 🏷当然不仅仅限于以上2个固件开发板,还有其他的支持的固件支持包。

⛳熔丝设置错误修复

  • 📍以下内容修复方法参考:
  • 👉 新的Atmega328PB,如果因为熔丝位设置错误,导致无法编程、烧录器无法访问、工作比不正常,解决办法是用其它正常工作的晶振接入,挽救锁死的芯片。
  • 🔖Atmega328PB 新片默认熔丝位 :
    在这里插入图片描述
 
   
  • 🔧用正常工作的使用外部晶振的单片机,例如STC89/12的XTAL2引脚,接入Atmega328PB的XTAL1(PB6)引脚,重新对Atmega328PB上电,就可以重新读入熔丝位了。重新写入默认熔丝位,就可以复原芯片了。
    在这里插入图片描述

在这里插入图片描述

个人实测该方法真实有效,是就砖的好办法。

⚡注意事项

  • 🌿新的未使用过的ATMega328PB-AU的芯片,在使用USBasp工具进行Arduino IDE在线 Bootloader烧录时,需要选择才行,这一点很关键!!!个人在选择模式下,对从未使用过的新芯片,烧录了N多遍的失败经历,曾一度怀疑是不是芯片没有焊接好。
    在这里插入图片描述
  • 🔖在第一次选择模式下,烧录成功后,后面如果有需要再次烧录bootloader程序,可以直接选择模式进行烧录。
  • ⚡模式只有选择安装了固件下才有,固件不带,这一点需要注意!
    在这里插入图片描述
    在这里插入图片描述

  • 🌿另外需要注意一点的是,刷的是哪个固件支持包的bootloader程序,在Arduino IDE 上传代码时,就只能选择对应系列的单片机型号,进行上传代码。(例如刷的是固件支持包所提供的bootloader程序,那么在使用Arduino IDE 开发时,烧录目标只能选择下的对于型号才行,而不能选择固件支持下的同芯片型号,不能通用)。如果使用独立的AVR第三方烧录工具,可以直接加载编译好的Hex文件除外。

🔱在没有bootloader程序的情况下程序烧录补充说明

  • 🌿使用其他AVR烧录软件:AVR_fighter、progisp、AVRDUDESS。(前提是手上需要有一个USBASP或者USBISP)。
  • 🔖经测试AVR_fighter连不上,progisp需要使用HID 免驱版本的USBasp烧录器使用,Arduino IDE在线烧录bootloader方式。USBASP带驱动版本的使用AVRDUDESS或者Arduino IDE在线烧录bootloader方式。
    在这里插入图片描述
    • 🔖带驱动版本的:在这里插入图片描述
 
   

在这里插入图片描述

  • 🌿:下载地址:
    在这里插入图片描述
  • 如果采用的是开源自制的USBASP的,那么在使用工具进行固件烧录时,推荐选择:
    在这里插入图片描述
    在这里插入图片描述

  • usbasp驱动类型WinUSB和libsub参考说明:
    on most places on the internet you will be instructed to install the libusbK driver, which doesn’t work, use the libusb-win32 variant instead
    make sure the AVRDUDE.EXE tool is the latest version (the older doesn’t work with the newer USB drivers for some reason)
    in case of using a clone (for instance having “Van Ooijen’s technische informatica” as vendor id instead of the original name “www.fischl.de”), make sure to use the -c usbasp-clone -P usb AVRDUDE settings instead of -c usbap -P usb. The clone setting causes AVRDUDE to ignore the vendor description and also accept the clone. You’d think having the correct VID, PID combination would be sufficient but no…


🌿Khazama AVR Programmer软件:经测试,该软件不支持型号的程序烧录。

在这里插入图片描述

  • 🌿使用progisp软件,烧录Arduino IDE编译好的Hex文件。(只能使用,市面上售卖的免驱版的USBasp使用,只能选择来替代)
    在这里插入图片描述
  • 🔖上面.eep为EEPROM文件,.hex为程序文件。分别通过和加载进来。
    在这里插入图片描述
  • 🌿如果想通过上面的软件顺便将带bootloader的文件烧录进去,可以选择类似名称的合并文件。(bootloader和程序合并文件)
  • 📌AVR单片机熔丝位设置详细知识文档介绍可以参考:https://www.cnblogs.com/Arrow-Lu/articles/2584823.html
  • 👉如果烧录了带 程序文件后,配置好对于的串口端口号后,可以直接通过Arduino IDE面板上的上传按钮进行上传,即可,无需关注编程器选项。
  • 🔖如果目标板不带Bootloader程序的,那么只能选择对于的编程器,然后进行上传。
    在这里插入图片描述
    在这里插入图片描述

  • 🌿如果直接加载文件烧录,可以从Arduino IDE 在已安装的支持包路径下找到文件
    • 🔖🏷 pololu-a-star支持包下的文件位置:
 
   

在这里插入图片描述

    • 🔖🏷 MiniCore支持包下的文件位置:
 
   

在这里插入图片描述

🛠烧录前准备

  • 🌿给Arduino IDE安装支持芯片型开发板。
  • 🌿添加网址:
  • 🔖或者添加:
    在这里插入图片描述

👉如果对新的芯片首次进行烧录,那么推荐先选择用固件,选择对应的单片机型号,进行烧录,因为可以选择慢速模式。

  • 🌿搜索关键字,找到固件进行安装。
    在这里插入图片描述
  • 🌿通过USBasp工具烧录配置信息如下:
    在这里插入图片描述

🈯USBasp工具烧录过程

  • 📄经测试,通过Arduino IDE 版本或者使用版本,都是可以的。
  • 📑通过USBasp工具进行烧录时的信息:
    在这里插入图片描述
 
   
  • 🌿在通过上面的信息可以看出,在选择固件下的型号,进行烧录bootloader时,分2个阶段。
  • 🌿第一阶段是,对目标型号芯片进行熔丝位配置。(这里需要注意,软件自动配置的高熔丝位,是不合理的。具体信息参考上面的内容就明白了。)
 
   
  • 🌿第二阶段是,对目标型号芯片进行bootloader下载。
 
   

针对Arduino IDE +AVR烧录工具(AVRISP/USBASP)自动烧录熔丝位修改

🎉在使用Arduino IDE配合烧录工具(AVRISP/USBASP),烧录时,熔丝位是附带自动烧录的,在选择使用固件,烧录Bootloader程序时,默认配置的高熔丝位为:,明显是不合理的,我们需要手动去修改。

  • 🔧文件修改位置:
    在这里插入图片描述
  • 找到对应位置:修改成或者
    在这里插入图片描述
  • 修改过,关闭Arduino IDE ,程序打开,烧录Bootloader程序:
    在这里插入图片描述
  • 👉高熔丝位如果配置为,不是不能用,只是在平时做程序烧录过程中,容易出现无法连接上目标的问题。
  • 🎉出现无法连接目标的原因个人分析:IDE发出程序烧录命令,到MCU接收到指令后,MCU执行复位,MCU从地址0x00(BOOTRST=0)开始运行,运行到bootloader程序地址,这个过程可能会错过下载。
    -(),MCU执行复位,MCU直接从bootloader地址执行开始运行。

📝通过命令行指令烧录

  • 🌿通过 命令行进行熔丝位配置,使用的是usbasp烧录器,前提是安装了Arduino IDE,其他型号也可以通过此命令实现对目标型号芯片进行熔丝位配置:(直接在cmd命令提示符窗口内使用)
 
   
  • 🌿使用Polulo支持包固件下的bootloader.hex固件,使用命令行烧录bootloader命令:(直接在cmd命令提示符窗口内使用)
    在这里插入图片描述
 
   
  • 🌿使用MiniCore支持包固件下的bootloader.hex固件,使用命令行烧录bootloader命令:
 
   
    • 🔖带eep烧录程序命令演示:(需要定位到avrdude路径下)
 
   

在这里插入图片描述
烧录过程和结果:
在这里插入图片描述

    • 🔖不带eep烧录命令:(需要定位到avrdude路径下)
 
   

在这里插入图片描述
烧录结果:
在这里插入图片描述

使用命令行烧录

  • 模拟Arduino IDE上传代码指令:
  • Arduino IDE上传指令:
    在这里插入图片描述
 
   
  • 🔖提取其中的指令,进行CMD单独烧录:
 
   

在这里插入图片描述

  • 其中:
 
   

需要指定文件位置,这里我使用的是软件文件夹目录:
在这里插入图片描述

串口下载功能实现基本要素

    1. 需要提前下载Bootloader程序。
    1. MCU熔丝位,一点需要配置正确,这里的说的熔丝位特指:熔丝高位(H)
      在这里插入图片描述
  • 其中的和,有bootloader程序容量自身决定的,位,如果烧录了bootloader程序,该位最好配置为.

📑AVRDude 命令参数说明

-C:指定 AVRDude 配置文件的路径。
-v:显示详细信息,便于调试。
-V:关闭验证。
-p:指定目标芯片型号,这里是 atmega328pb。
-P:指定要使用的串口,例如 COM9。
-b:设置波特率,这里为 。
-D:禁止擦除芯片。
-xnometadata:禁止写入元数据。
-U:用于指定需要烧录的内存类型(eeprom 和 flash),w 表示写入,后跟文件路径。







 
   
  • 🔖此文章仅作为个人学习探索知识的总结,不作为他人或引用者的理论依据,由于学识所限,难免会出现错误或纰漏,欢迎大家指正。
到此这篇w25q128jvsiq烧录教程(w25q256fv如何烧录)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 动态库存表视频教程(动态库存表视频教程图片)2025-07-18 09:27:05
  • ov内存卡量产工具(内存卡量产工具使用教程)2025-07-18 09:27:05
  • 单片机编写程序的步骤视频(单片机编写程序的步骤视频教程)2025-07-18 09:27:05
  • xmouse使用教程(xmouse设置)2025-07-18 09:27:05
  • 服务器部署软件教程(服务器怎么部署搭建)2025-07-18 09:27:05
  • xmouse设置教程(xmouse使用)2025-07-18 09:27:05
  • awvs使用教程(awvs安装教程)2025-07-18 09:27:05
  • ubuntu镜像文件下载教程(ubuntu镜像文件iso下载教程)2025-07-18 09:27:05
  • ad21安装及破解教程(ad20安装破解)2025-07-18 09:27:05
  • awvs安装教程(awvs12安装教程)2025-07-18 09:27:05
  • 全屏图片