Microsoft Word - ~ doc

Similar documents
Microsoft Word - ISSFA-0237_A_SM39R_series_EEPROM_APN_TC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

DPJJX1.DOC

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

Microsoft Word - ISSFA-0109_B_SM59264_WDT_ APN_TC_.doc

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

JLX

学习MSP430单片机推荐参考书

Tel:

12232A LED LED LED EL EL CCFL EL CCF

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

Microsoft Word - ~ doc

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft Word - MSP430 Launchpad 指导书.docx

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

目录

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

1 TPIS TPIS 2 2

() () () () () () () () DDRAM () II

bingdian001.com

Microsoft Word - 專題封面.doc

概述

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

untitled

CA24064B LED LED LED EL EL CCFL EL CCF /

JTAG ICE PC JTAG ICE JTAG ISP... 5 IDE AVR STUDIO JTAGICE JTAGICE... 12

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

第5章:汇编语言程序设计

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

新建 Microsoft Word 文档.doc

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

Microsoft Word - ISSFA-0177_A_SM59R_series_SPI_APN_TC_.doc

EK-STM32F

目 录

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H:

微處理機期末專題

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC

CC213

从MCS51向AVR的快速转换.PDF

PowerPoint 簡報

untitled

untitled

C语言的应用.PDF

c_cpp

2 12

untitled

mvc

2.5 idlocs PIC idloc idloc 0x1234 ; 0x config idloc HEX errorlevel errorlevel Error (Warning) Message HEX 3-14 errorlevel

C/C++ - 文件IO

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

/ / / , DOCNO: SG J REV11-2 -

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

/ / / LED DOCNO: SG D REV11-2 -

ch08.PDF

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

HCS08微控制器上有关内存分配的几个问题.doc

7688使用手冊V10.doc

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

第7章-并行计算.ppt

untitled

T stg -40 to 125 C V cc 3.8V V dc RH 0 to 100 %RH T a -40 to +125 C -0.3 to 3.6V V -0.3 to VDD+0.3 V -10 to +10 ma = 25 = 3V) VDD

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

untitled

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

Microsoft PowerPoint - chap5.ppt

W77E58中文手册

instructions.PDF

T

河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

《將進酒》

21 flash

untitled

untitled

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

ICD ICD ICD ICD ICD

标题

2/80 2

RS-232C [11-13] 1 1 (PLC) (HMI) Visual Basic (PLC) 402

Microsoft Word - ~ doc

INCF SEC1,F ; 將 SEC1+1 作查表取回對應數字 MOVF SEC1,W banksel STRING1 banksel PORTB RETFIE run_sec2: MOVF SEC2,W SUBLW.5 GOTO run_min ; 將秒個位數歸 0 CLRF SEC1 MOVL

untitled

逢 甲 大 學

1 CPU

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

6020

科学计算的语言-FORTRAN95

2012/07/01 陈 春 华 老 师 参 加 国 家 级 青 年 教 师 企 业 实 践 2012/07/03 20 名 教 师 前 往 12 家 企 事 业 单 位 短 期 实 践 2012/07/16 全 国 示 范 校 内 涵 建 设 暨 专 业 建 设 培 训 交 流 会 2012/07

INTRODUCTION TO COM.DOC

外围器件-new.cdr

IP505SM_manual_cn.doc

秘密大乘佛法(下)

國立臺東高級中學102學年度第一學期第二次期中考高一國文科試題

!! :!!??!!?!??!!!... :... :'?'?! :' ' :'?' :'?' :'!' : :? Page 2

Transcription:

EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用 2.2 EEPROM command 包括 :Chip erase page erase 及 byte program 2.3 EEPROM 必须避免寻址在主程序 (user code) 区域 ; 而为保护 ISP code, 在 ISP 保护区 (ISP block N) 所保护的位置,EEPROM command 将视为无效 Start addr: $0000 EEPROM must avoid User code Memory space EEPROM valid... EEPROM in-valid ISP code End addr: $3FFF 2.4 MCU 空片及 erase 后 code flash 皆为 FFh Flash 每一 page=256 byte 2.5 Page erase 及 byte program 时间纪录 : EEPROM 执行 command 时间, 为系统内振, 与 user 设定的系统晶振频率无关 page erase (ms) byte program(ms) about 28~35ms about 0.065~0.075 ISSFA-0238 1 Ver A 2011/09

2.6 EEPROM 相关的特殊缓存器 Special Function Register (SFR) 2.6.1 EERPOM TAKEY, IFCON, ISPFAH, ISPFAL, ISPFD and ISPFC Mnemoni c TAKEY IFCON ISPFAH ISPFAL ISPFD ISPFC Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Time Access Key Interface Control ISP Flash Address - High ISP Flash Address - Low ISP Flash Data ISP Flash Control ISP function F7h TAKEY [7:0] 00H 8Fh - CDPR - - - - - ISPE 00H E1h ISPFAH [7:0] FFH E2h ISPFAL [7:0] FFH E3h ISPFD [7:0] FFH E4h EMF1 EMF2 EMF3 EMF4 - ISPF.2 ISPF.1 ISPF.0 00H Mnemonic: TAKEY Address: F7H TAKEY [7:0] 00H ISP 致能位 (ISPE) 预设为只读属性, 为避免程序错误导致 ISP 误动作, 使用者必须依序写入三笔数据到 (55h, AAh, 5Ah)TAKEY, 才可将 ISP 致能位 (ISPE) 改变为可写入属性, 程序参考如下 : MOV TAKEY, #055h MOV TAKEY, #0AAh MOV TAKEY, #05Ah ORL IFCON, #001H ; enable ISPE write attribute ; enable ISP function 注意 : 以上程序, 中间不可有任何程序执行, 包括不可有程序中断 (Interrupt) 或设定仿真器中断 (break point) 干扰其操作流程, 必须依序且完整的连续写入, 否则该功能将无法致能 完整程序可参考 Assembly 或 C 语言范例程序 ISSFA-0238 2 Ver A 2011/09

Mnemonic: IFCON Address: 8FH ITS CDPR F12K F8K ALEC[1] ALEC[0] EMEN ISPE 00H ISP 致能位 (ISPE) 预设为只读属性, 为避免程序错误导致 ISP 误动作, 使用者必须依序写入三笔数据到 (55h, AAh, 5Ah)TAKEY, 才可将 ISP 致能位 (ISPE) 改变为可写入属性 : ISPE: = 1, ISP 致能,ISP 缓存器 (ISPFAH, ISPFAL, ISPFD, ISPFC) 设为可写入 = 0, ISP 禁能,ISP 缓存器 (ISPFAH, ISPFAL, ISPFD and ISPFC) 为只读 ( 预设 ) 程序范例,ISP byte program #22H 到 program flash 位置 $1005H, 如下 : MOV TAKEY, #055h MOV TAKEY, #0AAh MOV TAKEY, #05Ah ; enable ISPE write attribute ORL IFCON, #001H ; enable ISP function MOV ISPFAH, #010H ; set flash address-high, 10H MOV ISPFAL, #005H ; set flash address-low, 05H MOV ISPFD, #022H ; set flash data to be programmed, data = 22H MOV ISPFC, #000H ; start to program #22H to the flash address $1005H Mnemonic: ISPFAH Address: E1H ISPFAH7 ISPFAH6 ISPFAH5 ISPFAH4 ISPFAH3 ISPFAH2 ISPFAH1 ISPFAH0 FFH ISPFAH [7:0]: ISP 共提供 16 位寻址, 此为高位 8~15 位置 Mnemonic: ISPFAL Address: E2H ISPFAL7 ISPFAL6 ISPFAL5 ISPFAL4 ISPFAL3 ISPFAL2 ISPFAL1 ISPFAL0 FFH ISPFAL [7:0]: ISP 共提供 16 位寻址, 此为低位 0~7 的位置 Mnemonic: ISPFD Address: E3H ISPFD7 ISPFD6 ISPFD5 ISPFD4 ISPFD3 ISPFD2 ISPFD1 ISPFD0 FFH ISSFA-0238 3 Ver A 2011/09

ISPFD [7:0]: ISP 数据缓存器 Mnemonic: ISPFC Address: E4H EMF1 EMF2 EMF3 EMF4 - ISPF[2] ISPF[1] ISPF[0] 00H EMF1: Entry mechanism (1) flag, clear by reset. (Read only) ISP 进入记录旗标 (1), 只读, 可由芯片复位清除 EMF2: Entry mechanism (2) flag, clear by reset. (Read only) ISP 进入记录旗标 (2), 只读, 可由芯片复位清除 EMF3: Entry mechanism (3) flag, clear by reset. (Read only) ISP 进入记录旗标 (3), 只读, 可由芯片复位清除 EMF4: Entry mechanism (4) flag, clear by reset. (Read only) ISP 进入记录旗标 (4), 只读, 可由芯片复位清除 ISPF [2:0]: ISP function select bit. ISP 功能选择元位, 提供七组功能 ISPF[2:0] ISP function 000 Byte program 001 Chip protect 010 Page erase 011 Chip erase 100 Write option 101 Read option 110 Erase option 111 Finish Flag*( 注一 ) 注一 : 只有 Write option 或 Erase option 后, 才须执行 Finish flag 指令以示完成, 否则写入 值皆视为无效 EEPROM 不须执行 Finish Flag 2.7 EEPROM Assembly 语言范例程序 : Description 此范例展示有 EEP_Byte_Program EEP_Chip_Protect EEP_Page_Erase EEP_Byte_Read EEP_Enable 及 EEP_Disable 基本功能, 提供使用者自行开发 ISP code 或 EEPROM 应用参考 Main program //========================================================================= // // S Y N C M O S T E C H N O L O G Y // //========================================================================= #include "SM39R16A2.h" //ISPFC.ISPF[2:0] #define d_command_byte_program 0 #define d_command_chip_protect 1 #define d_command_page_erase 2 //#define d_command_chip_erase 3 dat equ 30h addh equ 31h addl equ 32h org 0000h //Start Start: //test1====================== mov addh, #0x01 ISSFA-0238 4 Ver A 2011/09

mov addl, #0x00 mov dat, #0x10 call EEP_Byte_Program call EEP_Byte_Read mov P0, dat //test2====================== mov addh, #0x02 mov addl, #0x00 mov dat, #0x20 call EEP_Byte_Program call EEP_Byte_Read mov P1, dat //=========================== jmp $ EEP_Byte_Program: call EEP_Enable mov ISPFD, dat mov ISPFAH, addh mov ISPFAL, addl mov ISPFC, #d_command_byte_program call EEP_Disable EEP_Chip_Protect: call EEP_Enable mov ISPFC, #d_command_chip_protect; call EEP_Disable EEP_Page_Erase://256-Byte call EEP_Enable mov ISPFAH, addh mov ISPFC, #d_command_page_erase call EEP_Disable EEP_Byte_Read: clr A mov dph, addh mov dpl, addl movc A, @a+dptr mov dat, A EEP_Enable: MOV A, IFCON JB 0xE0.0, EEP_Enable_ mov TAKEY, #0x55 mov TAKEY, #0xAA mov TAKEY, #0x5A orl IFCON, #0x01 // ISPE=1, Enable ISP function MOV A, IFCON JNB 0xE0.0, EEP_Enable EEP_Enable_: EEP_Disable: MOV A, IFCON JNB 0xE0.0, EEP_Disable_ mov TAKEY, #0x55 mov TAKEY, #0xAA ISSFA-0238 5 Ver A 2011/09

mov TAKEY, #0x5A anl IFCON, #0xFE // ISPE=1, Enable ISP function MOV A, IFCON JB 0xE0.0, EEP_Disable EEP_Disable_: end 2.8 EEPROM C 语言范例程序 : Description EEPROM program 此范例展示有 EEP_Byte_Program EEP_Chip_Protect EEP_Page_Erase EEP_Byte_Read EEP_Enable 及 EEP_Disable 基本功能, 提供使用者自行开发 ISP code 或 EEPROM 应用参考 //==================================================================== // // S Y N C M O S T E C H N O L O G Y // //==================================================================== #include <source\sm39r04g1.h> #include <absacc.h> /* Include Macro Definitions /*ISPFC.ISPF[2:0] #define d_command_byte_program 0 #define d_command_chip_protect 1 #define d_command_page_erase 2 #define d_command_chip_erase 3 //==================================================================== #define d_datalen 128 // idata limit:1~128 unsigned char idata buf[d_datalen]; // idata limit:1~128 void EEPROM_Enable(void) TAKEY = 0x55; TAKEY = 0xAA; TAKEY = 0x5A; IFCON = 0x01; void EEPROM_Disable(void) TAKEY = 0x55; TAKEY = 0xAA; TAKEY = 0x5A; IFCON &= 0xFE; // ISPE=1, Enable ISP function // ISPE=0, Disable ISP function void EEPROM_Byte_Program(unsigned int Addr, unsigned char Data) EEPROM_Enable(); ISPFD = Data; ISPFAH = (Addr / 256); ISPFAL = (Addr % 256); ISPFC = d_command_byte_program; EEPROM_Disable(); ISSFA-0238 6 Ver A 2011/09

void EEPROM_Page_Erase(unsigned int Addr) EEPROM_Enable(); ISPFAH = (unsigned char)(addr >>8); ISPFC = d_command_page_erase; EEPROM_Disable(); /* void EEPROM_Page_Erase(unsigned int Addr) EEPROM_Enable(); ISPFAH = (unsigned char)(addr >>8); ISPFC = d_command_chip_erase; EEPROM_Disable(); // erase 256-Byte // erase while chip /* void EEPROM_Chip_Protect(void) EEPROM_Enable(); ISPFC = d_command_chip_protect; EEPROM_Disable(); void EEPROM Sector Program(unsigned int Addr start, unsigned int Addr end, unsigned char Data) unsigned int i; for(i=addr_start; i<=addr_end; i++) EEPROM_Byte_Program(i, Data); /* for(i=0; i<(addr_end - Addr_start)+1; i++) EEPROM_Byte_Program(Addr_start+i, Data); unsigned char EEPROM_Byte_Read(unsigned int Addr) /* unsigned char temp; unsigned char code *paddr; paddr = Addr; // Set address temp = (*paddr); // Read data urn temp; urn CBYTE[Addr]; //The range of valid index values for this macro is 0-65535. /* unsigned int EEPROM_Word_Read(unsigned int Addr) urn CWORD[Addr]; //The range of valid index values for this macro is 0-32767. ISSFA-0238 7 Ver A 2011/09

void EEPROM_Byte_Modify(unsigned int Addr, unsigned char Data) unsigned char i; for(i=0; i<d_datalen; i++) buf[i] = EEPROM_Byte_Read((Addr&0xFF00)+i); // page read EEPROM_Page_Erase(Addr); buf[(unsigned char)addr] = Data; // erase page // byte modify Main.c for(i=0; i<d_datalen; i++) EEPROM_Byte_Program((Addr&0xFF00)+i, buf[i]);// page program #include <source\sm39r04g1.h> #include <source\eeprom.h> #define test_len 100 #define test_start_addr 0x1000 void main(void) unsigned int i; unsigned char buf[test_len]; EEPROM_Page_Erase(test_start_addr); EEPROM_Sector_Program(test_start_addr, test_start_addr+test_len-1, 0x55); for(i=0; i<test_len; i++) buf[i]= EEPROM_Byte_Read(test_start_addr+i); for(i=0; i<test_len; i++) EEPROM_Byte_Modify(test_start_addr+i, i); for(i=0; i<test_len; i++) buf[i]= EEPROM_Byte_Read(test_start_addr+i); while(1) 新茂国际科技希望能为客户减少开发的时间及辛勞, 针对所有特殊功能应在 C 语言程序开发, 皆提供 Codzard 范例程序产生器 " 可于新茂网站首页 > 下载专区 > 软件下载内下载此软件, 如有任何建议, 请來信告知, 谢谢! 销售客服 电子信箱 : sales@mail.syncmos.com.tw ISSFA-0238 8 Ver A 2011/09

技术支持电子信箱 : support@mail.syncmos.com.tw ISSFA-0238 9 Ver A 2011/09