论坛风格切换切换到宽版
  • 3536阅读
  • 16回复

成功把SST89E564RD的内部FLASH做程序的数据存储用 [复制链接]

上一主题 下一主题
离线BG4UVR
 
发帖
11288
只看楼主 倒序阅读 0楼 发表于: 2006-10-14
做了一个实验程序,用了一个小时,结果成功,非常高兴,特发帖纪念。

程序只是实验一下本人的一种猜测,其实里面用了别人写的函数。但结果竟然和我预想的是一样的。

这意味着,用51单片机做dds,用于存储信道,外接eeprom根本就不是必要的(而且这个的容量,要比一般常用的eeprom大得多得多)。
离线ding
发帖
3488
只看该作者 1楼 发表于: 2006-10-14
发现"汉芯"了???
离线庄乾章
发帖
1047
只看该作者 2楼 发表于: 2006-10-14
用c8051f系列更爽
离线bellstudio
发帖
2820
只看该作者 3楼 发表于: 2006-10-15
用pic的18f系列~~hoho
离线BG6AGB
发帖
915
只看该作者 4楼 发表于: 2006-10-15
[quote=庄乾章]用c8051f系列更爽[/quote]

用不起啊~~~
离线BG6AGB
发帖
915
只看该作者 5楼 发表于: 2006-10-15
'
做了一个实验程序,用了一个小时,结果成功,非常高兴,特发帖纪念。
程序只是实验一下本人的一种猜测,其实里面用了别人写的函数。但结果竟然和我预想的是一样的。
这意味着,用51单片机做dds,用于存储信道,外接eeprom根本就不是必要的(而且这个的容量,要比一般常用的eeprom大得多得多)。
'

是页擦除还是字节擦除方式啊?
离线BG4UVR
发帖
11288
只看该作者 6楼 发表于: 2006-10-15
'
是页擦除还是字节擦除方式啊?
'

当写入的数据,只是把“1”改为“0”时,不擦除,程序直接写。当把“0”改为“1”时,程序会把128字节的整个扇区擦除,然后再写入,不过擦除的数据区已经备份(备份到了内部xdata区),写入时恢复。以上判断和操作全部由程序自动完成。

源程序已经帖在我的博客上了。
离线bellstudio
发帖
2820
只看该作者 7楼 发表于: 2006-10-15

我现在用的pic18f8620也是这样,可以实现任意字节修改:)
当然擦除还是按页来进行的,不过pic的row是64byte
擦除写入64byte共需2ms
离线ahzds
发帖
7423
只看该作者 8楼 发表于: 2006-10-16
'
做了一个实验程序,用了一个小时,结果成功,非常高兴,特发帖纪念。
程序只是实验一下本人的一种猜测,其实里面用了别人写的函数。但结果竟然和我预想的是一样的。
这意味着,用51单片机做dds,用于存储信道,外接eeprom根本就不是必要的(而且这个的容量,要比一般常用的eeprom大得多得多)。
'

stt和STC的51有几款本来就内置了24系列的eeprom,没有什么新发现呀!
离线BG6AGB
发帖
915
只看该作者 9楼 发表于: 2006-10-16
'
stt和STC的51有几款本来就内置了24系列的eeprom,没有什么新发现呀!
'

和24系列很不一样的,24系列使用的时候都是对字节的读和写,
可是sst和stc的mcu里的eeprom要考虑对块(或者说是页)进行操作
比较麻烦一点`
离线bd7bq
发帖
1491
只看该作者 10楼 发表于: 2006-10-17
我习惯用stc的.
离线Sullivan
发帖
4817
只看该作者 11楼 发表于: 2006-10-17
就是要先备份原来的不用修改的,然后搽除,然后把要改写的和备份出来的再写进去,对吧~
离线BG4UVR
发帖
11288
只看该作者 12楼 发表于: 2006-10-17
'
stt和STC的51有几款本来就内置了24系列的eeprom,没有什么新发现呀!
'

从您的资料来看,stc和sst还是区别很大的。sst89e564rd,内部有64+8=72kb的flash存储器。如果你的程序大小只有1kb,那么,你就有72-1=71kb的空间来做eerpom用,爽否?
离线ahzds
发帖
7423
只看该作者 13楼 发表于: 2006-10-18
'
和24系列很不一样的,24系列使用的时候都是对字节的读和写,
可是sst和stc的mcu里的eeprom要考虑对块(或者说是页)进行操作
比较麻烦一点`
'
不对吧?
24系列怎么只能进行字节读写?
我有许多产品设计的就用24系列的,从01-1024,都有用过,而且既有字节读写,也有页写模式!怎么能说24系列没有页写模式呢?
页写模式对大吞吐量的数据读写能节省很多时间。我在门禁系统里,cpu用89c2051,晶振11.0592,分别对24c64用字节读写和页写方式对比,读出并判断全部1632张卡的时间,前者需要7秒,后者不到1秒!
建议agb 查看一下24系列rom的技术文档,大容量的肯定是支持页写模式的,小容量的页写没有任何意义。
离线BG6AGB
发帖
915
只看该作者 14楼 发表于: 2006-10-18
'
不对吧?
24系列怎么只能进行字节读写?
我有许多产品设计的就用24系列的,从01-1024,都有用过,而且既有字节读写,也有页写模式!怎么能说24系列没有页写模式呢?
页写模式对大吞吐量的数据读写能节省很多时间。我在门禁系统里,cpu用89c2051,晶振11.0592,分别对24c64用字节读写和页写方式对比,读出并判断全部1632张卡的时间,前者需要7秒,后者不到1秒!
建议agb 查看一下24系列rom的技术文档,大容量的肯定是支持页写模式的,小容量的页写没有任何意义。
'


可能我的表达不够准确
我是想表示24系列的能对字节进行读写,也能进行页读写,这个方面要好于前面说的到的几款单片机,灵活度更大.后者在写的时候基本上都需要页擦除,因为基本上每次写的数据和原来相比都会有将0写为1和将1写为0的情况发生.

再补充一点,我看到过几篇应用笔记,提到如果要使用单片机内部的这种eeprom,可以根据具体情况只使用前面的部分字节,比如使用前16个字节,这样能减轻ram比较少的片子在缓冲数据时的压力.
离线ahzds
发帖
7423
只看该作者 15楼 发表于: 2006-10-18
'
从您的资料来看,stc和sst还是区别很大的。sst89e564rd,内部有64+8=72kb的flash存储器。如果你的程序大小只有1kb,那么,你就有72-1=71kb的空间来做eerpom用,爽否? [表情]
'
是有区别!你推荐的这颗芯片,内部flash 就是两块cmos superflash eeprom,第一块64k,第二块8k,总共72k空间,技术手册上说,第二块可以作为程序存储器使用,也可以作为独立eeprom使用,但没有说第一块也可以使用。
还有一点,作为免维护长时间工作的系统,将数据存在内部的程序空间里,其实是个极不安全的做法,这等于将所有的鸡蛋放在一个篮子里了!在恶劣的电磁环境下工作,mcu的ram\rom内容被破坏是经常发生的,我们许多工程产品都遇到了这个问题,很是头痛!
程序受损,可以恢复,可是要恢复数据恐怕不是人人能办到的!

但这颗芯片确实有性价比优势,自动地址比较、pca、看门狗(不一定管用,但现在好像比较流行这个!)、掉电检测、而且还有三个16位定时器,资源比一般的51丰富,还有倍频功能,用起来比较方便!
同意您的观点:爽!
离线BG4UVR
发帖
11288
只看该作者 16楼 发表于: 2006-10-18
'
是有区别!你推荐的这颗芯片,内部flash 就是两块cmos superflash eeprom,第一块64k,第二块8k,总共72k空间,技术手册上说,第二块可以作为程序存储器使用,也可以作为独立eeprom使用,但没有说第一块也可以使用。
'

我在楼顶说的实验,就是在这个第一块的64kb里试的。是可以用的,它的手册上也说是可以用的。