I2C的EEPROM最大容量有多少的?

[复制链接]
 楼主| summerlee 发表于 2009-4-14 07:11 | 显示全部楼层 |阅读模式
我以前用过最大的是24C1024,1024K位,256K字节。各位有没有用过更大的啊。。。有个项目要存10年的数据,真晕了,请大家出招啊,我还不能改设计了,时间来不及了。谢谢。
将军令 发表于 2009-4-14 07:56 | 显示全部楼层

改用sd卡吧

或者usb
Again_gyf 发表于 2009-4-14 10:08 | 显示全部楼层

用DATAFLASH呀!

AT45。。。。
 楼主| summerlee 发表于 2009-4-18 12:56 | 显示全部楼层

请问楼上的,我就是选了个AT45DB161D

可是我搞了2天没有搞出个读写程序来,感觉很简单,不知道哪里有问题,你是否有程序啊。或者请各位给个提示,看看这个程序有什么错误?<br />unsigned&nbsp;char&nbsp;read_status_register(void)<br />{<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_CS=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(OPCOM_READ_STATUS_REGISTER);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt8;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_SO=1;&nbsp;//first&nbsp;setup&nbsp;the&nbsp;output&nbsp;pin&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_SCK=0;&nbsp;//falling&nbsp;eage&nbsp;to&nbsp;read<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdata=rdata&lt&lt1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BIT0=AT45DB161_SO;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_SCK=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_CS=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(rdata);<br />}<br /><br /><br /><br /><br /><br /><br />unsigned&nbsp;char&nbsp;read_flash(unsigned&nbsp;char&nbsp;opcom,unsigned&nbsp;int&nbsp;page_address,unsigned&nbsp;int&nbsp;in_page_address)<br />{<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;address_byte_1,address_byte_2,address_byte_3;<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;address;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address=(page_address&lt&lt2)|(in_page_address&gt&gt8);&nbsp;&nbsp;&nbsp;&nbsp;//combine&nbsp;14&nbsp;bits&nbsp;of&nbsp;page&nbsp;address&nbsp;and&nbsp;highest&nbsp;2&nbsp;bits&nbsp;of&nbsp;inner&nbsp;page&nbsp;address&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_byte_1=address&gt&gt8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_byte_2=address;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_byte_3=in_page_address;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!(read_status_register()&0x80));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_CS=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(opcom);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(address_byte_1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(address_byte_2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(address_byte_3);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(0x00);//dump&nbsp;byte<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt8;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_SO=1;&nbsp;//first&nbsp;setup&nbsp;the&nbsp;output&nbsp;pin&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_SCK=0;&nbsp;//falling&nbsp;eage&nbsp;to&nbsp;read<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdata=rdata&lt&lt1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BIT0=AT45DB161_SO;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_SCK=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_CS=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(rdata);<br />}<br /><br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />void&nbsp;write_flash(unsigned&nbsp;char&nbsp;opcom,unsigned&nbsp;int&nbsp;page_address,unsigned&nbsp;int&nbsp;in_page_address,unsigned&nbsp;char&nbsp;wdata)<br />{<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;address_byte_1,address_byte_2,address_byte_3;<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;address;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address=(page_address&lt&lt2)|(in_page_address&gt&gt8);&nbsp;&nbsp;&nbsp;&nbsp;//combine&nbsp;14&nbsp;bits&nbsp;of&nbsp;page&nbsp;address&nbsp;and&nbsp;highest&nbsp;2&nbsp;bits&nbsp;of&nbsp;inner&nbsp;page&nbsp;address&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_byte_1=address&gt&gt8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_byte_2=address;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address_byte_3=in_page_address;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!(read_status_register()&0x80));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_CS=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(opcom);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(address_byte_1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(address_byte_2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(address_byte_3);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_8bit(wdata);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!(read_status_register()&0x80));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AT45DB161_CS=1;<br />}<br /><br /><br /><br /><br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

150

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部