芯课堂 | 通过ISP升级芯片固件方法及框架

news2024/11/23 11:55:57

图片

一、升级原理

芯片在应用前,是一颗裸片,内部没有任何驱动或应用程序。芯片在贴上PCB板子后,会实现各种功能,这是时候会开发对应的驱动或者应用程序,在芯片上面运行的程序,一般称之为固件(Firmware)。

把固件烧录进芯片,一般通过J-link、DAP、UART、Bluetooth等途径,我们公司芯片支持J-link、UART两个途径升级芯片固件,本文档主要说明通过UART升级芯片固件。

通过UART(也叫ISP)升级芯片固件,分以下两种模式:

A. 双线模式,即TX+RX模式,需要6根接线:TX、RX、VDD、GND、RESET、BOOT。

B. 单线模式,即TX&RX&BOOT模式,即TX、RX、BOOT共用一根线,需要4根接线:TX&RX&BOOT、VDD、GND、RESET。

升级方法:芯片上电,拉低RESET引脚,然后拉高BOOT引脚,等5-10mS,再拉高RESET引脚,保持BOOT引脚为高电平并持续5mS以上,芯片即进入ISP升级模式。当芯片进入ISP模式后,既可按照ISP协议(一般为自定义协议,非国标)进行升级。

二、升级框架

ISP升级框架:

图片

ISP底层:为芯片出厂前已固化的ISP code,不占用MCU 的FLASH空间,专门用于通过ISP接口给MCU烧录(或升级)应用&驱动固件。

三、升级协议

1.命令格式说明 

上位机和下位机发送和接收的命令采用字符形式,每个命令后面都有“\r\n”;收发数据的格式采用 UUcode 编解码格式;

2.通信错误类型分类: 

a) “E0”:表示接收到非法命令或者下位机解析命令失败; 

b) “E1”:表示擦除 FLASH 操作失败; 

c) “E2”:表示写入 FLASH 操作失败; 

d) “E3”:表示写入 SRAM 操作失败;

e) “E4”:表示待写入 FLASH 的数据不是 1 页或者写入 SRAM 的数据超过 1 页。

3.具体命令格式说明: 

a) 波特率同步命令:M->"sync\r\n",S->"sync\r\n";

b) 设置波特率命令:M-> "baudrate 000000\r\n",S-> "OK\r\n";

c) 获取版本号命令:M-> "version\r\n",S-> "SWM24V20\r\n"; 

d) 擦除 FLASH 命令:M-> "erase 0000 0000\r\n",S->"OK\r\n"; 

e) 写入 FLASH 命令:M->"copy 00000\r\n",S->"OK\r\n"; 

f) 写 SRAM 命令 1:M->"write\r\n",S->"OK\r\n"; 

g) 写 SRAM 命令 2:M->"W UUencode Checksum\r\n",S->"OK\r\n"; 

4.说明 

a) 上位机开发的时候可以预置各个芯片 Flash 的 sector 以及 page 大小,也可以下载的时候选择,并以此计算来下发读写命令。

b) 上位机操作 flash 单位为 sector 和 page,下载不满一个 page 时候填充 FF。 

c) 下位机的写入 FLASH 命令是固定 1 个页大小的数据。 

d) 下载文件时,分小包编码传输给下位机,下位机接收到后把多个小包文件解码组合 成一个大包(一个 page),等待上位机传输 copy 命令,再写入 flash。具体编码格 式见文件末尾。

四、升级流程

本节主要说明MCU端(被动应答)ISP升级流程:

1. 获取MCU型号

图片

说明:

A.上位机发送“version\r\n”。

B.下位机回复芯片版本号。

2. 配置波特率

图片

说明:

A.以目的波特率为9600为例。

B.上位机先以4800波特率发送"sync\r\n"命令,等待下位机以4800波特率回复"sync\r\n"。

C.上位机以4800波特率发送"baudrate 000000\r\n",000000格式如下:

a) SWM120、SWM160、SWM181、SWM220、SWM260芯片,000000 = 24M/16/Baud。

b) SWM190芯片,000000 = 24M / Baud;

c) SWM320芯片,000000 = 20M / 16 / Baud;

d)例如SWM181 需要设置9600波特率,则000000 = 24M / 16 / 9600 = 000156,则此步骤需要发送"baudrate 000156\r\n"。

D.下位机收到后回复"OK\r\n",然后切换波特率到9600。

E.上位机接收到"OK\r\n"后,延时5~10ms,改变波特率到9600,然后发送"sync\r\n"。

F.下位机接收正常后返回"sync\r\n"。

G.上位机接收到"sync\r\n"后提示握手成功。

3. 擦除flash流程

图片

说明:

A.上位机先发送"erase 0000 0000\r\n"命令(其中0000 0000表示发送字符形式的擦除起始扇区和要擦除的扇区个数,例如要擦除下位机第8扇区开始的4个扇区则发送"erase 0008 0004\r\n")。

B.等待下位机回复"OK\r\n",表明擦除FLASH成功;下位机回复"E1\r\n",表示擦除FLASH失败。

4. 写SRAM流程

图片

说明:

A.上位机先发送"write\r\n"命令,等待下位机回复"OK\r\n"。

B.上位机发送"W UUencode Checksum\r\n",等待下位机回复"OK\r\n",表明一帧数据写入SRAM成功。

a) UUencode 表示编码后的数据。

b) Checksum表示编码前数据的校验和。

c) 具体格式参见文章末尾编码说明。

5. 写FLASH流程

图片

说明:

A.上位机发送"copy 00000\r\n"命令(其中00000表示字符形式的起始页,例如要写入第8页起始的1页数据则发送"copy 00008\r\n")。

B.下位机回复"OK\r\n",表明写入FLASH成功。

五、通过ISP升级(烧录)的优缺点

优点:

1. 一芯片的SWD引脚一般跟GPIO引脚复用,如果需要扩展GPIO,就需要禁用SWD功能,这种情况下升级就可以通过ISP接口。

2. 单线ISP模式,只需要一个ISP引脚、一个RESET引脚、一个GND,为精简接口模式。

缺点:

如果产品已装机,用ISP升级,也需要拆机进行。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1406170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低代码,让软件开发不再复杂

低代码一词,有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为它是企业管理模式的变革……有很多声音,社区讨论很热烈。 即使这样,至今也有不少人还不知道这项技术,今天笼统的介绍一下低代…

DataStream API(输出算子)

源算子 源算子 转换算子 转换算子 输出算子 1.连接到外部系统 连接外部系统是计算机科学和信息技术领域中常见的一个任务,通常涉及到与外部数据源或服务进行交互。具体的方法和工具会根据不同的应用场景和需求而有所不同。以下是一些常见的连接外部系统的方法&…

BioTech - 量子化学与分子力场

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/135787607 量子化学是应用量子力学的规律和方法来研究化学问题的一门学科,主要关注分子的结构、性质和反应过程。 量子化学的理论方法…

Midjourney基础 | 使用流程 注册,基础文生图,图的放大微调,保存

文章目录 1 使用流程2 生成自己的第一张图3 图的放大,微调3.1 放大3.2 微调变化 4 图的保存 Midjourney是依托于Discord的,但我也是通过Midjourney才了解的Discord 维基百科说~~Discord是一款专为社群设计的免费网络实时通话,主要针对游戏玩家…

Dify学习笔记-手册(三)

1、应用构建及提示词 在 Dify 中,一个“应用”是指基于 GPT 等大型语言模型构建的实际场景应用。通过创建应用,您可以将智能 AI 技术应用于特定的需求。它既包含了开发 AI 应用的工程范式,也包含了具体的交付物。 简而言之,一个应…

【设计模式】美团三面:你连装饰器都举不出例子?

什么是装饰器模式? 装饰器模式,这个设计模式其实和它的名字一样,非常容易理解。 想象一下,每天出门的时候,我们都会思考今天穿什么。睡**衣、睡裤加拖鞋,还是西装、领带加皮鞋?又或者说是&…

获取b站目录

参考链接&#xff1a; JS获取B站视频选集目录 Week6 - 知乎 代码 var x document.getElementsByClassName("clickitem"); var i; for (i 0; i < x.length; i) {var page_num x[i].getElementsByClassName("page-num")[0].innerText;var part x[i…

huggingface学习|云服务器部署Grounded-Segment-Anything:bug总会一个一个一个一个又一个的解决的

文章目录 一、环境部署&#xff08;一&#xff09;模型下载&#xff08;二&#xff09;环境配置&#xff08;三&#xff09;库的安装 二、运行&#xff08;一&#xff09; 运行grounding_dino_demo.py文件&#xff08;二&#xff09;运行grounded_sam_demo.py文件&#xff08;三…

[反转链表] [合并两个有序链表][分割链表]

这里写目录标题 反转链表合并两个有序链表分割链表 反转链表 1、题目&#xff1a; 2.思路  思路1&#xff1a;建立一个newHead,取一个节点进行头插。具体做法如下&#xff01; 建立一个newHead(新头)&#xff0c;由于一个节点里面存的是下一个节点的地址&#xff0c;如果取…

华夏基金“冰火两重天”:产品增量不增值,靠什么赢得用户?

近日&#xff0c;华夏基金发布关于华夏野村日经225交易型开放式指数证券投资基金&#xff08;QDII&#xff09;&#xff08;下称“华夏野村日经ETF”&#xff09;二级市场交易价格溢价风险提示及临时停牌公告。 公告内容显示&#xff0c;华夏野村日经ETF二级市场交易价格明显高…

DFT计算杂谈调查问卷

为更好了解公众号受众对于DFT计算的了解情况以及目标需求&#xff0c;目的以更好更准确并实用地推送给公众号受众所需要的文章&#xff0c;所以本次推送发布调查问卷并收集填写者相关信息。 调查问卷调查内容仅与公众号运营和DFT计算相关&#xff0c;所收集信息仅用作公众号受众…

如何选择和配置适合医院病历管理系统的MySQL版本?

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

7+细胞焦亡+ceRNA+实验验证,如何脱离套路求创新?

导语 今天给同学们分享一篇生信文章“Dissection of pyroptosis-related prognostic signature and CASP6-mediated regulation in pancreatic adenocarcinoma: new sights to clinical decision-making”&#xff0c;这篇文章发表在Apoptosis期刊上&#xff0c;影响因子为7.2。…

操作系统的灵魂--MMU详解

虚拟内存是现代操作系统中最伟大的发明之一。它为每个进程提供了一个一致的、私有的地址空间&#xff0c;让每个进程产生了一种自己在独享主存的错觉。 为了讲清楚MMU是如何一步一步完成地址翻译&#xff0c;取出数据的&#xff0c;本篇文章在前4节中讲解了虚拟内存中一些重要…

Aspx漏洞总结

第一部分&#xff0c;.NET项目当中的dll都可以进行反编译&#xff1a; 在java中有很多jar包&#xff0c;而在.NET框架中的bin中对应有很多DLL文件&#xff0c;bin下面都是可执行文件&#xff0c;这些文件都是很多代码封装的&#xff0c;想要查看源码&#xff0c;都需要通过反编…

vscode运行python,终端能正常运行,输出(Code Runner)不能正常运行

右键->Run Code报错&#xff1a; [Done] exited with code9009 in 0.111 seconds 我的解决方案&#xff1a;仔细检查自己选的python.exe&#xff08;解释器&#xff09;在path环境变量中是否存在或路径是否正确&#xff01;&#xff01;&#xff01; 我就是太自信了&#xf…

STL第三讲

第三讲 stl六大部件&#xff1a;算法是函数模板&#xff0c;其他的是类模板 算法形式&#xff1a;传入两个迭代器&#xff08;第三个参数可能有&#xff1a;一个比较的准则 算法需要的所有信息从迭代器获取 迭代器分类 基于红黑树的结构是双向迭代器&#xff1b; 基于hash的取…

idea——git提交到本地记录如何退回/删除

目录 一、git提交到本地记录如何退回/删除 一、git提交到本地记录如何退回/删除 git提交到本地记录&#xff0c;如下图【更新】记录&#xff0c;表示本次提交到git本地需要退回/删除的操作&#xff1a; 选中项目&#xff0c;右键点击【git】——>【Show History】——>…

苹果笔记本MacBook电脑怎么卸载软件?三种方法快速卸载软件

苹果笔记本MacBook电脑是一款非常流行的电脑&#xff0c;但是有时候我们可能需要卸载一些不需要的软件。下面是一些简单的步骤&#xff0c;可以帮助您在MacBook电脑上卸载软件。 苹果笔记本MacBook电脑怎么卸载软件&#xff1f;三种实用方法快速卸载软件&#xff01; 方法一&a…

【数据分享】2023年全球范围土壤数据集HWSD2.0(7个土壤深度/40多种土壤指标)

土壤数据&#xff0c;包括土壤类型、土壤酸碱度、土壤沙含量等指标&#xff0c;对于农业、林业、园艺、环境保护等领域都非常重要。 本次我们为大家带来的是2023年1月份发布的全球范围的土壤数据库。该数据的核心信息如下&#xff1a; ①该数据是基于联合国粮农组织&#xff0…