松翰单片机的OTP可重复烧写的技巧!

合集下载

松翰烧写器MP-III Writer 使用说明

松翰烧写器MP-III Writer 使用说明
5 常见故障排除 ................................................................................................................................................... 19
指示 LED
执行按键 烧录扩展口 MP 转接板
烧录座
用途 复位烧录器 选择功能模式 显示烧录信息与功能指示 烧录状态指示。绿色表示烧录完成,黄色表示烧录中, 红色表示烧录失败 用于执行烧录或中止报警提示 用于自行外引连线烧录芯片 用于插接烧录转接板,必须与 MCU 型号相匹配 放置待烧录芯片(仅适用于 DIP 或可转为 DIP 封装) 的芯片
Version 1.1
MP-III Writer User’s Manual
目录
修改记录 .........................................................................................................................................................................2
1.2 功能概述
采用具有 ISP 功能的 Flash Base MCU,联机状态时根据需要可升级芯片烧录控制程序; Full Speed USB1.1 接口可方便与 PC 互联,从而进行烧录器升级、联机烧录芯片或下载芯片烧录代码; 支持芯片联机和脱机烧录操作; 继承 MPI Writer 所有功能; 新增联机状态下,读取芯片资料的功能; 新增联机状态下,读取 EEPROM 和清空 EEPROM 等功能。

EMC单片机实现多次烧录的办法

EMC单片机实现多次烧录的办法
EMC单片机现多次烧录的办法
一般来说,EMC的OTP类型芯片是只能进行一次烧录的。但是如果在
第一次烧录时,某一位为被烧为1,则该位可以再次被烧录成0;反之,如果
已经被烧录成0了,则无法再次烧录成1。由此,有人发现了以下文章中介
绍的这种多次烧录OTP芯片的方法。
在EMC单片机中,ADDA,@0xFF的机器码为全1。在下面这篇文章中,
介绍的是用ADDA,@0xFF指令来预填,方便下次的改写。其实,还有更方
便的办法:
文中提到的办法如下
ORG 0X000
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
MAIN1:
其实,可以改写成下面的程序,达到的效果和前面的方法是一样一样一样
唤醒等等,特别是WDT、中断、休眠、唤醒等需要在芯片上才能测试出实际
的结果,比如测试休眠状态的功耗,用仿真器无论如何是试验不出来的。
闲话少说,书归正传。
有效使用ADDA,@0xFF可以将一个芯片当作数片使用,甚至可以到数十
片,原理如下:
EMC单片机写烧写的过程实际就是将为1的熔丝位熔断成为0,即可以从
1写为0,但不能从0到1,ADDA,@0xFF的机器码刚好是0x1FFF,全为
1。例程如下:
第一次编程代码如下:
ORG 0X000
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
MAIN1:

单片机片内存储器如何烧写 几种烧写方式介绍

单片机片内存储器如何烧写 几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU 可取出这些指令重新执行。

只读存储器(Read Only Memory,ROM)中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称只读存储器。

向ROM中写入信息称为ROM编程。

根据编程方式不同,掩模ROM.在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。

这种芯片存储结构简单,集成度高,但是由于掩模工艺成本较高,只适合于大批量生产。

可编程ROM(PROM).芯片出厂时没有任何程序信息,用独立的编程器写入。

但是PROM 只能写一次,写入内容后,就不能再修改。

EPROM.用紫外线擦除,用电信号编程。

在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息,使用编程器可将调试完毕的程序写入。

E2PROM(EEPROM).用电信号擦除,用电信号编程。

对E2PROM的读写操作与RAM存储器几乎没什么差别,只是写入速度慢一些,但断电后仍能保存信息。

Flash ROM.闪速存储器(简称闪存),是在EPROM和E2PROM的基础上发展起来的一种电擦除型只读存储器。

特点是可快速在线修改其存储单元中的数据,改写次数达一万次(ROM 都有改写次数),读写速度快,存取时间可达70ns,而成本比E2PROM低得多,因此正逐步取代E2PROM。

注意:更多存储器内容请参考,《电子技术基础》数字部分(第五版) 主编康华光. 第七章,或者电工学(第七版)(下册) 主编秦曾煌第22章.烧写器、烧录器、编程器、下载器、仿真器、调试器单片机编程器(烧写器、烧录器)是用来将程序代码写入存储器芯片或者单片机内部的工具。

编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。

如下图所示是一个典型的编程器外形。

松翰(SONIX)烧录器作业指导书

松翰(SONIX)烧录器作业指导书

文件名称六 芯片读取及烧录 2.所选择程序读取正常后,将烧录器连接机台进行芯片烧录,注意事项1.取对应转接板插入所烧写程序,注意丝印上所印有型号,如C020配备2501B转接板,使用错误将无法烧录。

2.对所选择程序必须截图存档,方便每日程序点检及日后异常追溯。

4.将烧录器连接机台后,注意LED灯显示,黄色为烧录中,绿色为烧录完成,红色为不良.
作成部门
③编写/日期
②审核/日期
①批准/日期修订次数修 订日 期审 核日 期文件编号:XDD/SMT-0001
版 本:A.1
松翰(SONIX)烧录器作业指导书第 3 页 共 3 页
1 点击“读取OTP”按钮,会将芯片中的信息读出(如果芯片有加密则只能读出部分数
据),并显示在信息框中.
3.程序选取正确后必须读取1PCS芯片,点检芯片是否正确,并如实填写<烧录点检表>.。

MP-PRO WRITER松翰烧录器使用说明

MP-PRO WRITER松翰烧录器使用说明
com 知。您可在公司网站关注我们产品更新消息、咨询代理商或是直接联系我们。 avantcom
ww w
SONiX TECHNOLOGY CO., LTD
Page 2
Version1.0
MP PRO Writer 使用手册
修改记录
版本 V10
日期
说明
2010 年 4 月 初版
tw
com
avantcom
SONiX 8-bit MCU
tw
MP PRO Writer
com 快速指引手册
avantcom (使用前请务必仔细阅读此手册)
ww w
SONiX TECHNOLOGY CO., LTD.

序言
MP PRO Writer 使用手册
tw 非常感谢您选用 MP PRO Writer 来进行产品的烧录。我们将尽力为您设计优秀的开发工具并提供完善的售后服
22 如何安装 ......................................................................................................................................................... 8 2.1 软件安装 ................................................................................................................................................. 8 2.2 硬件安装 ................................................................................................................................................. 8

单片机片内存储器如何烧写几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍

单片机片内存储器如何烧写几种烧写方式介绍单片机片内存储器如何烧写几种烧写方式介绍单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU 可取出这些指令重新执行。

只读存储器(Read Only Memory,ROM)中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称只读存储器。

向ROM中写入信息称为ROM编程。

根据编程方式不同,掩模ROM.在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。

这种芯片存储结构简单,集成度高,但是由于掩模工艺成本较高,只适合于大批量生产。

可编程ROM(PROM).芯片出厂时没有任何程序信息,用独立的编程器写入。

但是PROM 只能写一次,写入内容后,就不能再修改。

EPROM.用紫外线擦除,用电信号编程。

在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息,使用编程器可将调试完毕的程序写入。

E2PROM(EEPROM).用电信号擦除,用电信号编程。

对E2PROM 的读写操作与RAM存储器几乎没什么差别,只是写入速度慢一些,但断电后仍能保存信息。

Flash ROM.闪速存储器(简称闪存),是在EPROM和E2PROM的基础上发展起来的一种电擦除型只读存储器。

特点是可快速在线修改其存储单元中的数据,改写次数达一万次(ROM 都有改写次数),读写速度快,存取时间可达70ns,而成本比E2PROM低得多,因此正逐步取代E2PROM。

注意:更多存储器内容请参考,《电子技术基础》数字部分(第五版) 主编康华光. 第七章,或者电工学(第七版)(下册) 主编秦曾煌第22章.烧写器、烧录器、编程器、下载器、仿真器、调试器单片机编程器(烧写器、烧录器)是用来将程序代码写入存储器芯片或者单片机内部的工具。

编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。

EMC单片机实现多次烧录的办法

EMC单片机实现多次烧录的办法

EMC单片机实现多次烧录的办法
一般来说,EMC 的OTP 类型芯片是只能进行一次烧录的。

但是如果在第一次烧录时,某一位为被烧为“1”,则该位可以再次被烧录成“0”;反之,如果已
经被烧录成“0”了,则无法再次烧录成“1”。

由此,有人发现了以下文章中介绍
的这种多次烧录OTP 芯片的方法。

在EMC 单片机中,“ADD A,@0xFF”的机器码为全1。

在下面这篇文章中,介绍的是用“ADD A,@0xFF”指令来预填,方便下次的改写。

其实,还有更方便的办法:
文中提到的办法如下
ORG 0X000
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
ADD A,@0XFF
MAIN1:
其实,可以改写成下面的程序,达到的效果和前面的方法是一样一样一样样的。

ORG 0X000
ORG 0X007 ;注意这条ORG 定义
MAIN1:。

单片机程序烧录方法及问题解决方式解析

单片机程序烧录方法及问题解决方式解析

单片机程序烧录方法及问题解决方式解析自学单片机是一场苦旅,这在第一次面对复杂的烧录界面的时候就会有深刻的感受,面对这么多参数的界面,该如何让自己苦心编写的程序运行在单片机上呢?下面就给大家介绍一下。

先,将烧写线把开发板与电脑连接,安装驱动之后,烧写程序能自动识别设备1,安装USB驱动程序,驱动程序在学习光盘中,具体安装方法参考配套“使用说明书”2.驱动安装完后,请检查USB的COM 端口号。

3.程序烧录时,要满足下面各参数的设置情况,打开c om m a gic.e xe烧录软件,选种“Fla sh Ma gic”选项卡,请按图设置烧录成功的显示烧录方法及问题解决:1. 确认烧录步骤:插上usb后,没有灯亮的,然后点击电脑的download,L1亮了,这时立刻按下板子的电源开关,然后L2亮了,这样就开始烧录了。

PS:每一步都必须按照上面的操作,如果灯的指示有误表明有硬件问题2. 截图烧录软件在1的基础上确认好了,是最后烧录不行,确认下图需要设置的地方是否正确。

关于串口号:并非一定如图所示是com5,具体在安装驱动后看“我的电脑”右键——“属性”——“设备管理器”——“端口(COM和LPT)”,与“USB-SERIAL CH340”一致。

这两个地方没有问题的话,出现以下提示:串口打开失败的错误,要么是没有安装驱动ch340,要么是没有选择正确的com口,用上述方法即可查看。

若出现以下两个情况的话一、确认板子是平放在桌面上的,底部是不接触任何东西影响电路的二、试试把芯片取下来,再放会去,注意芯片缺口是朝向数码管的,另外压芯片的那把手,压到水平位置,不能压得过低三、用杜邦线把P1.0和P1.1接到地GND上,然后按流程正常烧录PS:到了第三还是不行的话,返回第二再做一次,如果还是不行就请联系客服。

单片机无法烧录程序的解决办法1.单击下载按钮,让软件向单片机写入程序,如果出现这个提示无法下载,请在下载状态下关闭单片机电源再重新打开,看烧写过程开始没有2.如果还没有,请检查COM端口设置的是不是你连接编程器或者开发板的端口,数据线有没有连接好3.将串口的波特率降到最低1200,如果1200时写入程序正常,下次写入时再逐渐提高。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

松翰单片机的OTP可重复烧写的技巧!1.问题:笔者在前期工作中,常常遇到在做测试时,只要修改一些简短的指令或数据时,就要再换一个全新的芯片重新烧录一下,再测试。

这样即浪费时间,又消费芯片,还消费金钱呢。

2.解决:其实OTP不是你想象的那么“顽固”,只要你对它好一些,还是有些回报的。

在烧录前,芯片的内部全是由2进制的1组成,烧录后,是对里面的1进行切断成0,如此,烧录过的不能再烧录,是对已经把1烧录成0的不可再烧,而是没有把1烧成0的,还是可以再烧的。

也就是说,1可以变成0,而0不可再变为1,就象保险丝一样,烧断了就不可再烧,而没烧断的,你还可以把它烧断。

要想实现重烧的过程,还是要有些技巧的。

哎,废话这么多,来些实例的讲吧。

你可以在你想要的地方预留些空间,等你想要在这修改时,再从里面提取出来。

;-----------------------------------------------------------------------------;3.实例1:在已经烧过程序的IC上修改数据:incms t_enter_io ;500ms 进入一次nop;mov a,#0xFF;1 预留数据修改(二进制为:b)mov a,#0xFF ;2 预留数据修改mov a,#0xFF ;3 预留数据修改mov a,#0xFF ;4 预留数据修改mov a,#0xFF ;5 预留数据修改mov a,#0xF3 ;等待被修改的数据cjb t_enter_io,a,e_tele_io ;249次进入一下clr t_enter_io ;;-----------------------------------------------------------------------------;3.1.1 (直接修改)比如我想在已经烧有上面程序的IC的基础上,修改a=0xF3(2二进制:B)为a=0xF1,此时,你就不要再浪费IC了,直接在上面修改就可以。

你可以看到,0xF3与0xF1的区别只在于3和1,二进制为:0011B和0001B,所以你可以把0011B(十进制3)中第2位的1修改为0,即从0011B成为0001B,所以可以直接修改,当然你也要以把它修改成为你想要的数据,但前提是:你只能从二进制中的1烧成0,不可从0变为1. 比如我可以把0xF1再烧成0xA1或0xA0或0x01或0x00等等。

;-----------------------------------------------------------------------------;(覆盖修改)是否有一种可以在上面的程序中任意修改数据呢这是有的!读者可以看到,我上面的程序为了防止修改不同的数据而所预留的5条 :mov a,0xFF ,这是为了修改各种数据而预留的。

你可以把 0xFF(二进制:B)修改成0~255范围的任意一个数据。

修改过程为:先把在最下面的不想要的数据(直接送数指令:mov a,0xF3 ;此指令生成的机器指令为:2DF3),用 NOP(机器指令为:0000 )给填充掉。

然后第5条的0xFF修改为你想要的数据),比如修改为:0x45,修改后的程序如下:incms t_enter_io ;500ms 进入一次nop;mov a,#0xFF;1 预留数据修改(二进制为:b)mov a,#0xFF ;2 预留数据修改mov a,#0xFF ;3 预留数据修改mov a,#0xFF ;4 预留数据修改mov a,#0x45;0xFF ;5 预留数据修改已经修改为0x45;;;mov a,#0xF3 ;此条指令用 NOP 取代等待被修改的数据NOPcjb t_enter_io,a,e_tele_io ;249次进入一下clr t_enter_io ;;-----------------------------------------------------------------------------;实例2:只修改数据而已,有时还是不能达到我们想要的结果,有没有一种可以写任意的命令的呢笔者给你的回答是:有!在下面的一个实例中,给大伙分享下,预留空间的事。

(增加或修改部分指令)在已经存在的程序里,修改或增加部分指令。

我们注意到,在已经烧过的IC中,里面有dw 0ffffh ,就相当于在里面全部用1去填充,当然还可以再烧了。

如下面的程序,我想在下面的 b0bset fp00 后面再加几条不一样的指令,如:我想让系统在执行到置FP00为1时后,进入睡眠状态。

incms t_enter_io ;500ms 进入一次nop ;mov a,#0xF3 ;此条指令用 NOP 取代等待被修改的数据cjb t_enter_io,a,e_tele_io ;249次进入一下clr t_enter_io ;;b0bset fp00 ;;jmp @F ;预留空间30个dw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh@@: ;修改完后,程序如下:incms t_enter_io ;500ms 进入一次nop ;mov a,#0xF3 ;此条指令用 NOP 取代等待被修改的数据cjb t_enter_io,a,e_tele_io ;249次进入一下clr t_enter_io ;;b0bset fp00 ;;;;;;;jmp @F ;预留空间30个将此条屏蔽,用NOP取代NOP;b0bclr fcpum1 ;睡吧@@@!b0bset fcpum0 ;jmp @F ;用去了3条,只剩下27条指令空间了!dw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh ;;;;;;0ffffh 0ffffh 0ffffh ;从这里释放3条指令出来dw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh@@:;-----------------------------------------------------------------------------; (大量增加指令),笔者有个习惯,就是在写完程序后,会把剩下的空间,全部预留起来,以防止不测(呵呵)。

也为增加大量的指令做些工作,这是必要的,笔者在开发产品过程中,就碰到过这样的情况,确定好了功能的产品,已经在生产中,却发现了隐藏很深的漏洞,由于之前做了些准备,所以可以让客户再把烧过的IC发回来,修改一下,重新烧给他,这把双方的损失降到最低点。

例如程序如下:当要再加功能时,就可以在save_ROM 中继续添加,方法类似于上一个例子,在此不多做描述(若看不懂,可直接与笔者联系)。

;;**************************************;*********main: ;@rst_wdt;清看门狗b0bts0 f_int_tc1;call time_treat ;; ;b0bts0 f_check_buzzer ;call buzzer ;; ;call save_ROM; 把剩下的空间预留下来jmp main ;;;**************************************;*********;;***********************************************;*********;此文件为预留空间所用!;;***********************************************;*********save_ROM: ;预留空间e_save_ROM: ;ret ; ;;***********************************************;*********;100dw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffh;0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffh;100dw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffh;dw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffh0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffhdw 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh 0ffffh0ffffh 0ffffh;………。

相关文档
最新文档