STM32在芯片生产过程中内嵌了一段引导程序,其作用就是通过串口将程序下载到Flash中,为以后的软件更新提供了极大的便利,用户不需要利用仿真口进行下载程序,从而极大的提高了工作效率。
STM32复位之后,如果检测到Boot1引脚为低电平,boot0引脚为高电平,芯片就执行内部固话的ISP引导程序,接收来自上位机的命令和数据。整个烧录过程如下图所示:
ISP的过程:
1.芯片复位
在给STM32复位之前,首先要确定BOOT0,BOOT1引脚的状态.通过各种方式,先让BOOT0处于高电平状态,BOOT1处于低电平状态,然后在RST脚上产生一个负脉冲,STM32就能进入ISP状态.注意,复位之后,一定要延时一定的时间,让ISP程序稳定,才能发送指令和数据.
2.芯片连接
复位后,ISP程序已经处于接受连接的状态,电脑软件串口设置成1200~115200波特率,偶校验,8位数据位,1位停止位,然后发送一个0x7f,等待STM32回复。STM32的ISP程序利用这个0x7f来测试波特率,如果收到了0X79,表示连接成功了,可以进入下一步操作;否则,必须检测BOOT0,BOOT1引脚,并重新复位STM32.
dbyte(0) = &H7F
Call SendBinData(dbyte, 1, 1) '等待接收79
Lab.Caption = "连接芯片成功........" + vbCrLf
ReDim dbyte(1)
dbyte(0) = &H0
dbyte(1) = &HFF
Call SendBinData(dbyte, 2, 15) '等待接收79
For i = 0 To 14
str = str & Right("00" & Hex(Recvbuff(i)), 2) & " "
Next
Textmsg1.Text = str
Lab.Caption = Lab.Caption + "读取芯片版本成功........" + vbCrLf + "当前版本号为:" + Mid(str, 7, 2) + vbCrLf
3.读取ID版本号
发送0x020xFD.命令发送之后,需要等待STM32 ISP程序回复,如果接收到0x79,读取成功。
dbyte(0) = &H2
dbyte(1) = &HFD
Call SendBinData(dbyte, 2, 5) '等待接收79
For i = 0 To 4
str = str & Right("00" & Hex(Recvbuff(i)), 2) & " "
Next
Textmsg2.Text = str
Lab.Caption = Lab.Caption + "读取寄存器成功........" + vbCrLf + "当前寄存器版本号为:" + Mid(str, 7, 5) + vbCrLf
4.擦除芯片
发送一个双字节命令0x44+0xBB,让芯片执行擦除动作,等待回复0x79,然后再发送0xFFFF+0x00命令,让芯片招待全片擦除.如果接收到0x79,表明全片擦成功了!
5.烧录程序
全片擦除之后,就可以开始烧录程序了.首先发送双字节指令0x31+0xCE回复0x79,则继续用多字节命令(5个字节)发送一个32位的地址,此地址就是等待写入数据的地址,注意4个字节对齐.收到回复0x79之后,就可以发送N个字节数据了(注意N最大为256).重复以下过程,直到把所有代码发送出去
6.读锁定
烧录完毕之后,为了防止程序被读出,可以设置读保护.发送双字节命令0x82,~0x82,先行回复0x79,再等待一次0x79,回复成功之后,表明芯片已经被读保护了.
上一篇:51单片机复位电路详解
下一篇:STM32 内核复位 与 系统复位 区别及程序实现
推荐阅读
史海拾趣
Califia Lighting深知品质是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、包装等各个环节都进行严格把关。同时,公司还注重客户服务和售后支持,及时解决客户在使用过程中遇到的问题,赢得了客户的信赖和好评。
随着国内市场的逐渐饱和,乾坤公司开始将目光投向国际市场。为了打开海外市场,公司积极参加国际电子展会,与海外客户进行面对面的交流与合作。同时,乾坤也加强了与国际知名企业的战略合作,通过技术授权、联合开发等方式,不断拓展其产品的国际影响力。经过几年的努力,乾坤的电子元器件已经成功打入欧美、东南亚等多个国家和地区,公司的国际化进程取得了显著的成果。
大雅智能深知,品质是企业立足之本。因此,在产品研发和生产过程中,大雅智能始终坚持严格的质量控制标准,确保每一台产品都符合高品质要求。同时,大雅智能还建立了完善的售后服务体系,为用户提供及时、专业的技术支持和维修服务。正是这份对品质的执着追求,让大雅智能在消费者中赢得了良好的口碑。
EOZ S.A.S公司非常重视企业文化和团队建设。公司倡导“创新、协作、共赢”的价值观,鼓励员工积极参与创新活动并分享创新成果。同时,公司还注重员工的培训和发展,为员工提供丰富的培训资源和晋升机会。这些举措不仅激发了员工的积极性和创造力,也为企业的发展提供了有力的人才保障。在EOZ S.A.S公司的发展历程中,优秀的企业文化和团队成为公司最宝贵的财富之一。
近年来,随着国家对集成电路产业的重视和支持力度的不断加大,芯茂微电子也积极响应国家号召,致力于推动国产集成电路产业的发展和自主创新。公司加强了对核心技术的研究和投入,积极引进和培养高端人才,加强与国内外知名企业和研究机构的合作与交流。同时,公司也积极参与国家重大科研项目和产业化项目,为推动我国集成电路产业的发展和自主创新做出了积极贡献。这些努力不仅提升了芯茂微电子的技术实力和市场竞争力,也为我国集成电路产业的发展注入了新的活力和动力。
以上五个故事仅代表芯茂微电子在电子行业发展过程中的一部分经历和成就。随着公司的不断发展和壮大,相信未来还会有更多精彩的故事等待我们去发现和书写。
微软前中国总裁唐骏曾经说过:“人的职业生涯是需要经营的,它和经营一个企业并无二致。”。这话用在天津英诺华微电子技术有限公司总经理褚以人身上再贴切不过。从一名核物理专业的大学生,到如今投身半导体产业的IC设计师,他在不断地经营中把自己 ...… 查看全部问答∨ |
我现在需要做个电话机!可以显示大头贴的!需要用块彩色的LCD,不知道市场上卖的带驱动的那种LCD是不是可以直接接到ARM处理器的IO口上?一般黑白的LCD也是可以的吧!主要的部分是在软件的编程吧!… 查看全部问答∨ |
本帖最后由 paulhyde 于 2014-9-15 04:15 编辑 2009年全国大学生电子设计竞赛G题是一个设计功率放大器的题,主要考核学生模拟电子技术的基础技能,要求是一定要用场效应晶体管做末级放大,且电路增益要求很大,如5mV的输入要达到5W(8欧负载)的输 ...… 查看全部问答∨ |
|
有个问题一直比较疑惑,就是看到很多电路板上的电源模块的电源输入端和输出端都会分别并联一个电解电容外,有的还并联一个或几个没极性的的电容,如独石电容,我想问一下大家,一般这个电解电容的耐压值和大小根据什么选的,或者说,和模块的输入输 ...… 查看全部问答∨ |
WINCE 能实现每秒5000次中断吗?有没有高手做过,请赐教。 Wince5.0 硬件每秒钟5000个脉冲触发X86CUP的7号中断,Wince能完全捕获到每一个中断吗,保证不丢,请做过的兄弟姐妹帮帮忙,提提思路,或者给 一段代码,不胜感激… 查看全部问答∨ |
跟踪代码发现usrRoot已经执行完,却始终没有跳转到boot的蓝屏界面,谁能指点一下为什么?谢谢! 我是在workbench下,VxWorks6.6… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 【摸黑抢楼】赢大礼,关于示波器的狂想曲!正式开抢!!!
- 点评《让世界更安全——TI Hercules开发实战手册》,精彩好礼等你拿!
- 泰克 4200A-SCS 带您走进半导体材料测试世界 下载赢好礼!
- 答疑专场:模拟世界的最重要构成——信号链与电源
- 邀请函:EEWorld 十五周年嘉年华系列活动开启,有你真好!
- Vicor 更好的供电方式提升无人机飞行时间飞行半径及有效载荷
- 【开工大吉,抢楼有礼】聊一聊你感兴趣的技术和板子
- 下载有礼|是德科技电子书 《通过了解测试精度的基础知识, 提高良率并降低风险》,不做“差不多先生”
- 了解ADI电网管理、能源计量方案,答题赢Kindle、《新概念模拟电路》【世健的ADI之路主题游 能源站】