Watch Dog Timer (WDT) Application Note

SyncMOS Technologies International, Inc.
EEPROM Application Note
OCT 2007
APN_2007_10_02
EEPROM 功能应用说明
1
2
3
适用产品:SM59D04G2 series。
应用范围:针对需使用 EEPROM 做数据长期储存的应用。
功能说明:
3.1 本公司上述产品皆可使用 embedded FLASH 的内存存放空间,当作 EEPROM 使用,提供给
客户储存重要数据。
3.2 此 EEPROM 空间需以每 512 bytes 为一单位。(例如:Address 0x1000 Æ0x11FF 为一单位,
不可以 Address 0x1100 Æ0x12FF 为一单位)
3.3 此 EEPROM 为对指定之 embedded FLASH 地址(客户主程序之余的内存空间)做抹除及数
据写入功能,写入之数据可永久保存,以增加产品的使用范围。
4
使用方法:
4.1 将 EEPROM.LIB 加入开发程序中。
4.2 EEPROM.LIB 包含三个宏函式:EEPROM_Page_Clean,EEPROM_Byte_Program,
EEPROM_Byte_change 及 EEPROM_Byte_change_Eram,这三个宏函式说明如下。
4.2.1 EEPROM_Page_Clean(Word eFlashAddr),为提供客户将欲使用之页清除;建议客
户于执行 EEPROM_Byte_Program 之前,先将该页清除干净。(如未清除干净,有可能
造成写入之数据错误),此函式需填入:
4.2.1.1
欲清除页之启始地址(Word eFlashAddr),每一页为 512bytes。
4.2.2 EEPROM_Byte_Program( Word eFlashAddr , Byte eFlashData )为提供客户于自行设
定之有效页区域写入客户之数据,此函式需填入:
4.2.2.1
欲写入之地址(Word eFlashAddr);
4.2.2.2
欲写入之值(Byte eFlashData)。
4.2.3 EEPROM_Byte_change( Word eFlashAddrCustomer,Word eFlashAddrBuffer,Word
eFlashAddr ,Byte eFlashData, iWord Number ) 为提供客户修改已写入之数据,使用
512 Bytes Flash 当 buffer,此函式需填入:
4.2.3.1
客户数据之起始地址(Word eFlashAddrCustomer),以一页为一单位;
4.2.3.2
客户提供数据暂存区之起始地址(Word eFlashAddrBuffer),以一页为一单位;
4.2.3.3
客户欲更改数据之地址(Word eFlashAddr);
4.2.3.4
客户欲更改之地址的数据值(Byte eFlashData);
4.2.3.5
客户使用之总位数(iWord Number),最大值为 512(0x200)。
Specifications subject to change without notice, contact your sales representatives for the most recent information.
Ver 1.0
IRFWX-A047
1/6
SyncMOS Technologies International, Inc.
EEPROM Application Note
OCT 2007
APN_2007_10_02
4.2.4 EEPROM_Byte_change_Eram( Word eFlashAddrCustomer,Word eFlashAddr ,Byte
eFlashData, iWord Number ) 为提供客户修改已写入之数据,使用 Expand RAM
0x0100Æ0x02FF 当 buffer,此函式需填入:
4.2.4.1
客户数据之起始地址(Word eFlashAddrCustomer),以一页为一单位;
4.2.4.2
客户欲更改数据之地址(Word eFlashAddr);
4.2.4.3
客户欲更改之地址的数据值(Byte eFlashData);
4.2.4.4
客户使用之总位数(iWord Number),最大值为 512(0x200)。
5
范例程序:
5.1 EEPROM_Page_Clean(Word eFlashAddr)
范例:
EEPROM_Page_Clean( 0x3000 );
//Page 0x3000 ~0x31FF clean before programming
5.2 EEPROM_Byte_Program( Word eFlashAddr , Byte eFlashData )
范例一:使用固定地址及固定数据
EEPROM_Byte_Program( 0x3000 , 0x50);
//Program 0x3000 to customer code 0x50
范例二:使用变量地址及数组数据
cByte TB[5]={0x20,0x21,0x22,0x23,0x24};
cByte TC[10]={0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C};
…
iWord address;
iByte i;
EEPROM_Page_Clean( 0x3000 );
//Page 0x3000 ~0x31FF clean before program
address = 0X3000;
//Program TB table to 0x3000~0x3004
for (i=0;i<5;i++)
{
EEPROM_Byte_Program( address , TB[i]);
address = address + 1;
}
address = 0x3100;
//Program TC table to 0x3100~0x3109
for (i=0;i<10;i++)
{
EEPROM_Byte_Program( address , TC[i]);
address = address + 1;
}
Specifications subject to change without notice, contact your sales representatives for the most recent information.
Ver 1.0
IRFWX-A047
2/6
SyncMOS Technologies International, Inc.
EEPROM Application Note
OCT 2007
APN_2007_10_02
5.3 EEPROM_Byte_change( Word eFlashAddrCustomer,Word eFlashAddrBuffer,Word
eFlashAddr ,Byte eFlashData, iWord Number )
范例一:512 Bytes 全部使用
EEPROM_Byte_change( 0x3000,0x3C00,0x3001 ,0xAA, 0x0200 );
//The customer code area from 0x3000 to 0x31FF;
//The Buffer code area from 0x3C00 to 0x3DFF;
//Change customer code at 0x3001 to 0xAA,
//Total use 512 Bytes (Max)
EEPROM_Byte_change( 0x3000,0x3C00,0x3102 ,0x99, 0x0200 );
//Change customer code at 0x3102 to 0x99,
范例二:只使用 15 Bytes(执行此函式只有 0x3000~0x300F 值会保留)
EEPROM_Byte_change( 0x3000,0x3C00,0x3001 ,0xAA, 0x0010 );
//The customer code area from 0x3000 to 0x31FF;
//The Buffer code area from 0x3C00 to 0x3DFF;
//Change customer code at 0x3001 to 0xAA,
//Total use 512 Bytes (Max)
5.4 EEPROM_Byte_change_Eram( Word eFlashAddrCustomer,Word eFlashAddr ,Byte
eFlashData, iWord Number )
范例一:512 Bytes 全部使用
EEPROM_Byte_change_Eram( 0x3000,0x3001 ,0x55, 0x0200 );
//The customer code area from 0x3000 to 0x31FF;
//The Buffer area at Expand RAM from 0x0100 to 0x02FF;
//Change customer code at 0x3001 to 0xAA,
//Total use 512 Bytes (Max)
EEPROM_Byte_change_Eram( 0x3000,0x3103 ,0x66, 0x0200 ) ;
//Change customer code at 0x3103 to 0x66,
范例二:只使用 15 Bytes(执行此函式只有 0x3000~0x300F 值会保留)
EEPROM_Byte_change_Eram( 0x3000,0x3001 ,0x55, 0x0010 ) ;
//The customer code area from 0x3000 to 0x31FF;
// The Buffer area at Expand RAM from 0x0100 to 0x02FF;
//Change customer code at 0x3001 to 0xAA,
//Total use 512 Bytes (Max)
Specifications subject to change without notice, contact your sales representatives for the most recent information.
Ver 1.0
IRFWX-A047
3/6
SyncMOS Technologies International, Inc.
EEPROM Application Note
OCT 2007
APN_2007_10_02
附录 A:如何将 EEPROM.LIB 加入
步骤一:打开项目,选择加入档案
步骤二:选择加入档案类型为 Lib
Specifications subject to change without notice, contact your sales representatives for the most recent information.
Ver 1.0
IRFWX-A047
4/6
SyncMOS Technologies International, Inc.
EEPROM Application Note
OCT 2007
APN_2007_10_02
步骤三:选择加入文件名称为 EEPROM.lib(此档案可至新茂网站下载)
步骤四:完成步骤一至步骤四后,项目中就会将 EEPROM.lib 加入
Specifications subject to change without notice, contact your sales representatives for the most recent information.
Ver 1.0
IRFWX-A047
5/6
SyncMOS Technologies International, Inc.
EEPROM Application Note
OCT 2007
APN_2007_10_02
步骤五:于主程序中将 EEPROM 外部函式加以宣告,即可使用 EEPROM 功能
Specifications subject to change without notice, contact your sales representatives for the most recent information.
Ver 1.0
IRFWX-A047
6/6