松翰单片机的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时写入程序正常,下次写入时再逐渐提高。

Sonix OTP MCU 重复烧录教程

Sonix OTP MCU 重复烧录教程

Sonix OTP MCU 重复烧录教程By 540 2008-10-30 大家都知道,OTP类型的MCU是只能烧录一次的。

所以对于我们编程人员来说,当一些功能必须要烧录程序来测试才能得到结果的时候,烧一片IC测试,就意味着要浪费一片IC了,那么可不可以通过一些编程技巧及方法来实现OTP的多次重复烧录呢?而实际上在是可以做到的,下面以Sonix为例作个说明,希望能对大家有所帮助。

首先,我们要明白一点,就是OTP烧录的逻辑特性:只能将逻辑1烧录成逻辑0,而不能从0烧录到1。

再有就是明白REPEAT宏命令的作用:将一段指令重复执行,重复次数可定义。

如:REPEAT20NOPENDM编译时编译器会连续生成20条NOP指令。

现在我们来看看Sonix MCU(以SN8P2501B为例)的RAM及ROM分布:由图可见,其实要实现重复烧录,就是将原来的程序代码占用的空间不用了,而将程序代码编译时整块向下移(即改变程序入口),因为是整块代码移动的,所以整个IC可用ROM 是用户代码占用空间的N倍时,可重复烧录次数为(N-1),当然,程序如果改动后增加了很多代码,就不能这样算了。

重复烧录原理(图):1>在MCU复位后加入重映射,可跳过上次烧录的程序位置而执行新的程序入口2>规划程序代码位置及分块:以下用程序及图片说明具体的实现步骤:1>将安全保密烧录模式关闭:2>首次烧录IC里屏蔽报废地址生成功能,并将后面剩余地址保留为FFFF(即逻辑1):3>查看首次烧录程序块的结束位置(查看List文件得),以备作下次重复烧录程序代码的起始位置(每次重复烧录都以上次代码结束位置作为本次代码开始位置):用户程序总共占用空间为0x13B个Word, 剩余可用地址有0x3FC-0x13B = 0x2C1=2*0x13B+4B,即如果代码量不变,只改变少里程序的话,还可重复烧录两次。

如果查得的地址值大于剩余可用地址,很遗憾,你不能实现重复烧录的愿望了~4>改程序里的一些功能(先不要急着编译哦),然后开始我们的第一次重复烧录:开启报废地址功能,并将上次用户代码结束位置填入(此次为0x13B,填0x140只是为了向后再多偏移几个地址开始),实现将用户程序代码块向后面地址移动重新定义重映射程序入口位置5>重新编译生成烧录文档,把该文档再次烧录到IC上试试看(刚刚已烧录过首次编译时文件的IC),程序是不是按你的新功能跑起来了!6>此时还可以查看List文件中用户程序代码的结束位置换到了0x0263了哦!下次重复烧录不用我说了吧~。

OTP型单片机烧录后的程序修改方法研究

OTP型单片机烧录后的程序修改方法研究
பைடு நூலகம்OTP 型单片机烧录后的程序修改方法研究
陈 远 浩 ,王 敏 辉
(汕 头 市 林 百 欣 科 学 技 术 中 等 专 业 学 校 ,汕 头 515041)
摘要:OTP单 片 机 的 程 序 存 储 器 属 于 一 次 性 烧 录 的 只 读 存 储 器,根 据 其 结 构 原 理,虽 然 烧 录 过 程 不 可 逆,但 可 以 对 未 烧 录的存储单元进行再 烧 录 而 不 改 变 已 烧 过 的 存 储 位 原 状 态。 本 文 以 博 巨 兴 的 BJ8P153E 单 片 机 为 例,研 究 在 已 烧 录 OTP单片机中如何根据程序指令的物理地址查找对 应 指 令 的 机 器 码,并 分 析 可 再 烧 录 的 存 储 空 间,最 终 实 现 单 片 机 程 序二次开发与再烧录。 关 键 词 :OTP 单 片 机 ;BJ8P153E;程 序 修 改 ;机 器 码 中图分类号:TP31 文献标识码:A
FLASH 存储器按扇区 操 作,读 写 数 据 的 速 度 大 幅 提 升,在擦除数据时使用块擦除方式可以把一整块数据 一 次 性擦除。FLASH 可 以 反 复 擦 写、录 入,所 以 得 到 广 泛 应 用 ,不 足 之 处 是 价 格 较 高 。
OTP存储器因价格低廉、开 发 灵 活、性 能 稳 定 而 得 到 广泛应用,OTP存储器在出厂时,存储内容全为1(或全 为
Keywords:OTP MCU;BJ8P153E;program modification;machinecode
引言
OTP(OneTimeProgrammable)型 单 片 机 因 其 价 格 低廉得到广 泛 应 用,但 OTP 单 片 机 有 个 致 命 弱 点,就 是 不能多次烧录,即只有一次编程寿命。在企业的开发 生 产 过程中,偶尔会发生大批量 OTP单片机烧录后,发现某个 不足,或是客户提出新的要求,需要修改程序,为了不 浪 费 这些已烧录好 的 单 片 机,有 必 要 寻 找 一 种 对 已 烧 录 OTP 单片机程序的修改方法,以求重新利用已烧录过的单 片 机 芯片。另一方面,对于没有仿真器的学生或单片机爱 好 者 来说,希望一片单片 机 能 多 烧 录 几 次,以 便 不 同 时 间 调 试 使用不同程序。

otp烧录原理简单理解

otp烧录原理简单理解

otp烧录原理简单理解OTP烧录原理简单理解OTP(One-Time Programmable)是一种只能烧录一次的非易失性存储器,它的烧录原理是通过改变存储器内部的物理结构来实现。

在OTP存储器中,每个存储单元都有一个可烧录的保险丝,当保险丝被烧断后,该存储单元就不能再次被烧录,因此被称为一次性烧录存储器。

OTP存储器的烧录过程是通过电子束或激光束来实现的。

在烧录之前,需要将待烧录的数据编码成一组二进制数,并将其存储在一个烧录器中。

然后,将烧录器与OTP存储器连接起来,将烧录器中的数据传输到OTP存储器中。

在传输过程中,烧录器会向OTP存储器发送一个烧录信号,该信号会触发OTP存储器内部的保险丝烧断电路,使得保险丝被烧断。

一旦保险丝被烧断,该存储单元就不能再次被烧录,因此被称为一次性烧录存储器。

OTP存储器的烧录过程是一种非常精密的过程,需要使用高精度的烧录器和专业的烧录技术。

在烧录过程中,需要控制烧录器的电子束或激光束的强度和位置,以确保保险丝被烧断的精度和准确性。

此外,还需要对烧录器和OTP存储器进行严格的温度和湿度控制,以确保烧录过程的稳定性和可靠性。

OTP存储器的烧录原理具有很多优点。

首先,由于OTP存储器只能烧录一次,因此可以有效地防止数据被篡改或复制。

其次,由于OTP存储器的烧录过程是一种非常精密的过程,因此可以保证数据的可靠性和稳定性。

此外,由于OTP存储器的烧录过程是一种非常快速的过程,因此可以大大提高数据的传输速度和效率。

OTP烧录原理是一种非常重要的存储技术,它可以有效地保护数据的安全性和可靠性。

在未来的发展中,随着技术的不断进步和应用的不断扩展,OTP烧录原理将会得到更广泛的应用和发展。

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

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

松翰单片机的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 预留数据修改(二进制为:11111111b) 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二进制:11110011B)为a=0xF1,此时,你就不要再浪费IC了,直接在上面修改就可以。

重复烧写OTP单片机的方法设计

重复烧写OTP单片机的方法设计

重复烧写OTP单片机的方法设计
李学海;范兴娟
【期刊名称】《实验技术与管理》
【年(卷),期】2015(032)001
【摘要】在充分研究了OTP类单片机片载程序存储器的功能分布、位元结构、工艺特点、指令特点、烧写规律的前提下,选择凌阳科技公司的一款OTP单片机作为教学目标或实验模型,创新性地规划设计了一种全新的操作算法和解决方案,解决了重复烧写和高效利用OTP单片机的实验技术和实践教学中的实际问题.对于此类单片机的初学者、教学者和应用项目开发者具有实用价值和启发意义.
【总页数】5页(P138-141,159)
【作者】李学海;范兴娟
【作者单位】石家庄邮电职业技术学院电信系,河北石家庄 050021;石家庄邮电职业技术学院电信系,河北石家庄 050021
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.AT89C51系列单片机烧写器的设计与实现 [J], 冉彦中;曹婧华;刘沛先
2.基于USB接口的单片机烧写器设计与实现 [J], 郭陈一;高鲁楠;庞宇擎
3.PIC12C5xx单片机编程器和OTP的再烧写 [J], 丁锦滔
4.OTP型单片机烧录后的程序修改方法研究 [J], 陈远浩;王敏辉
5.单片机存储单元数据烧写、读取和擦除仿真 [J], 袁越阳;周超伦;周理
因版权原因,仅展示原文概要,查看原文内容请购买。

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

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

松翰单片机的OTP可重复烧写的技巧!松翰单片机的OTP(One-Time Programmable)是指只能烧写一次的存储器。

通常情况下,OTP是在制造过程中被烧写,无法再次擦除和修改。

然而,如果有需要重复烧写OTP的情况,可以采取以下技巧:1. 灭活保护位(inactive protection bit):OTP通常包含一位保护位,用于防止未被烧写的区域被意外烧写。

通过将保护位设置为1,可以防止进一步的烧写。

此时,OTP的内容是只读的,无法再次修改。

然而,通过将保护位设置为0,可以解锁OTP,使其重新可以烧写。

2.OTP区域迁移:为了实现OTP重复烧写的目的,可以将烧过的OTP区域内容复制到其他区域。

在新的区域进行烧写操作,以达到重复烧写的目的。

这样的迁移过程需要具备将OTP内容读取并复制的能力,同时需要了解OTP的内部结构和存储方式。

3.预留空间:在烧写OTP时,留出一些空余的地址空间。

这些地址空间可以用来存储需要经常修改的数据或配置信息。

通过将这个预留空间作为可重复烧写的区域,可以实现对OTP的重复烧写。

这种方法的前提是要保证预留空间足够容纳所需的数据,并且在烧写时不会覆盖其他重要的OTP内容。

4.外部存储器:如果无法在OTP上实现重复烧写,可以考虑使用外部存储器。

通过将需要重复修改的数据存储在外部存储器中,达到类似OTP的效果。

这样的方法需要通过特定的通信协议来读写外部存储器,并且需要修改设备的硬件结构。

需要注意的是,修改OTP的烧写方式会带来安全风险,可能会导致未经授权的修改和篡改。

因此,在修改OTP的烧写方式之前,请确保对设备的合法性和完整性有充分的了解和控制。

总结来说,实现松翰单片机的OTP可重复烧写的技巧可以包括灭活保护位、OTP区域迁移、预留空间和外部存储器等方式。

这些方法都需要具备一定的硬件和软件能力,并需要在合法和安全的前提下进行操作。

OTP烧录原理范文

OTP烧录原理范文

OTP烧录原理范文OTP(One-Time Programmable)即一次性可编程存储器,它是一种被用于存储一次性的、无法擦除或改写的数据的存储器。

OTP烧录是将特定的数据一次性写入OTP芯片,以保证数据的安全性和稳定性。

以下将详细介绍OTP烧录的原理。

首先,需要了解OTP芯片的结构。

OTP芯片包括一个独立的非易失性存储器,该存储器通常由氧化硅或高介电材料构成。

在正常工作状态下,该存储器中的电荷会被限制在特定的位置,这样就形成了存储的数据位。

OTP烧录的核心原理是通过电压和电流来改变存储器中电荷的状态。

OTP芯片一般具有两种状态,即未烧录和已烧录状态。

未烧录状态下,存储器中的所有电荷都被置为初始状态,无法读取到有效数据。

而在已烧录状态下,存储器中的电荷被设置为特定的状态,可以表示特定的数据。

烧录过程中,首先需要将OTP芯片与烧录设备连接起来。

然后,通过烧录设备向OTP芯片提供一定的电压和电流,并按照事先设定的序列将一些位的电荷状态改变为烧录的数据。

这种改变电荷状态的方式通常是通过电离和束缚电子的方式来实现。

在OTP芯片中常用的烧录方式有两种:浮栅注入和熔丝烧断。

浮栅注入是一种更常见的烧录方式,它是通过改变晶体管的阈值电压来实现。

首先,在未烧录的状态下,OTP芯片中的浮栅区域电荷处于中性状态。

然后,通过烧录设备向芯片中注入一定的电荷,使得电荷被吸引并集中在浮栅区域,从而改变了晶体管的阈值电压。

熔丝烧断是另一种常见的烧录方式,它是通过熔化特定位置的金属连接线来实现。

在未烧录状态下,芯片中的金属线连接着对应的存储位,而在烧录时,通过烧录设备向芯片中注入一定的电流,使得注入的电流通过金属线产生较高的温度,达到熔化金属线的目的。

一旦金属线被熔断,对应的存储位就会改变为烧录的状态。

无论是浮栅注入还是熔丝烧断,烧录完成后,OTP芯片中的数据将变为不可更改的状态。

这是由于OTP存储器的物理特性决定的,一旦电荷状态被改变,将无法恢复或改变。

OTP烧录原理

OTP烧录原理

什么叫corner sample?
挑选各项测试效果处于批量产品分布边缘的产品称为 corner sample。
Corner sample的作用?
用于对客户调试效果的确认。这些corner sample,将成为我们产品出厂规格的参考值。
标准品挑选流程
OTP标准品挑选流程
序号
项目
1 拍图
2 确认图片效果
3 确定typical 值 4 更新参数 5 烧录OTP
6 拍图
7 计算图片数据
8 数据确认
9 数据整理 10 标准品挑选
要求
在DNP光源下不调用OTP数据拍图,具体要求参考《标准品挑选拍图流程》
使用OV工具或者sunny工具(具体根据客户要求而定,软件使用方法,参考软件使用说 明),计算图片的WB值,确认所有模组的R/G和B/G最大差异不能大于FAE制定的标准,否 则需要及时反馈给项目经理,由项目经理通知FAE和样品工程师共同确认数据是否有效, 如果无效,需重拍,如果有效,则继续下一步。
0.63 0.625
0.62 0.615
0.61 0.59
WB校正前后效果对比
WB校正前 WB校正后 typical
0.6
0.61
0.62
0.63
0.64
R/G
OTP效果确认
SHADING比率
OTP前后相对基准值的分布图
0.67 0.66 0.65
基准值 Golden 1 Golden 2
0.64
交流光源
目前的 烧录光 源
A VI S 光 源
直流光源
Youthtech光源
烧录环境
批量光源一致性如何保证?
解决方案: 确保光源来料一致性。 使用软件进行补偿。
  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;………。

相关文档
最新文档