社区闲人 发表于 2023-11-14 17:50:47

问STC32G8K64的eeprom地址?

STC32G的datasheet 只有STC32G12K128的eeprom地址说明,而没有STC32G8K64的eeprom地址说明。请尽快完善datasheet.

神农鼎 发表于 2023-11-14 18:26:05

STC32G12K128 系列32位8051中文数据手册更新 ,2023/11/14

www.stcmcudata.com/STC8F-datasheet/STC32G.pdf






神农鼎 发表于 2023-11-14 18:29:18





神农鼎 发表于 2023-11-14 18:35:30











梁工 发表于 2023-11-15 00:19:55

/*************        本程序功能说明        **************

STC32G系列EEPROM通用测试程序,支持按指定扇区或地址的IAP擦除、写入、读出、用MOV读出等等操作,写入、读出的是64字节的一首古诗.

可以直接下载编译好的"EEPROM-STC32G12K128.hex"或"EEPROM-STC32G8K64.hex"测试. 下载时选择主频11.0592MHZ.

PC串口设置: 波特率115200,8,n,1.


命令例子:
E 0                --> 对EEPROM进行扇区擦除操作,E表示IAP擦除, 数字0为0扇区(十进制, 0~127, 看具体IC),一个扇区512字节.
W 0                --> 对EEPROM进行写入64字节操作,W表示IAP写入, 数字0为0扇区(十进制, 0~127, 看具体IC). 从扇区的开始地址连续写64字节.
R 0                --> 对EEPROM进行读出64字节操作,R表示IAP读出, 数字0为0扇区(十进制, 0~127, 看具体IC). 从扇区的开始地址连续读64字节.
M 0                --> 对EEPROM进行读出64字节操作,M表示MOV读出, 数字0为0扇区(十进制, 0~127, 看具体IC). 从扇区的开始地址连续读64字节.

E 0x1234        --> 对EEPROM进行扇区擦除操作,E表示IAP擦除, 0X1234为扇区所在地址,十六进制. 一个扇区512字节,任何一个字节地址均能擦除所在扇区(即地址低9位被忽略)。
W 0x1234        --> 对EEPROM进行写入64字节操作,W表示IAP写入, 0X1234为开始地址,十六进制.
R 0x1234        --> 对EEPROM进行读出64字节操作,R表示IAP读出, 0X1234为开始地址,十六进制.
M 0x1234        --> 对EEPROM进行读出64字节操作,M表示MOV读出, 0X1234为开始地址,十六进制.

注意:为了通用,程序不识别扇区是否有效,用户自己根据具体的型号来决定。

特别提醒:STC32G12K128的EEPROM基地址为0xfe0000,MOV操作EEPROM的地址 = EEPROM地址 + 基地址0xfe0000.
特别提醒:STC32G8K64的EEPROM基地址为0xff0000,但EEROM放在64K的最后面,所以MOV操作EEPROM的地址 = 65536-EEPROM总字节数 + EEPROM地址 + 基地址0xff0000.

根据下面的宏定义来选择STC32G12K128或STC32G8K64的EEPROM操作。

        /********************* 根据型号定义基地址 ****************************/


        #define                EEADDR_OFFSET        0xfe0000        //STC32G12K128,定义EEPROM用MOV访问时的基地址.

//        #define                EEADDR_OFFSET        0xff0000        //STC32G8K64,定义EEPROM用MOV访问时的基地址.
        #define                EEPROM_LENGTH        8192                //STC32G8K64,定义EEPROM长度(字节数),与下载程序时选择的EEPROM长度一致, 1K=1024, 8K=8*1024=8192.

测试结果截图






页: [1]
查看完整版本: 问STC32G8K64的eeprom地址?