打印

请教E2PROM的页操作

[复制链接]
2965|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pengfei_wpf|  楼主 | 2010-11-11 22:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不才刚开始学编程,遇到一些困难,特地向各位大虾来请教。

看了E2PROM的手册,都有提到页的大小,比如8字节或者16字节。

也看了一些控制器的手册和I2C的操作代码,困惑如下:

1。有的控制器手册中提到E2PROM的内部地址,对这个不太明白,是什么意思,该怎么用?

2。好多代码对E2PROM都是从0地址开始存数据的,请问是否可以不从0开始?
3。如何更换页,比如说一开始就对第3页操作?
4。如果不考虑也,是不是可以从0一直存下去,指导把E2PROM存满?

相关帖子

沙发
223178825| | 2010-11-11 23:02 | 只看该作者
学习学习

使用特权

评论回复
板凳
ninibaba| | 2010-11-12 09:04 | 只看该作者
页的概念可以理解成一张纸
这个纸是有容量大小的
写满了这张纸就必须换另外一张
纸上的每一个字都有地址对应
而纸的容量和地址有关
也就是说地址决定了一张纸只能写这么多
因此
当地址超出一张纸的容量时
就必须换纸
这是你的任务就是
把超出的部分计算出来
并且把它安排到正确的纸上的正确位置

大家都从0地址开始
就是因为这样好管理地址
只要一个地址分配函数就能解决

而想从其他的页开始
不是不能
就是地址分配函数要重新计算
可能会更麻烦一些

个人意见
请参考

使用特权

评论回复
地板
pengfei_wpf|  楼主 | 2010-11-12 09:27 | 只看该作者
多谢楼上的回复,非常的形象生动.
有一个问题是写满了第0页,会自动跳到下一页么?
举一个实际的例子,AT24C01A,有3个地址位,页的大小是8字节;
那么这3个地址位除了作为器件的片选地址外,是不是还有其他的用途?
如果我从第0页的地址0开始写入10个字节,写满该页后,该如何操作?

使用特权

评论回复
5
xinxi| | 2010-11-12 09:46 | 只看该作者
这3个地址位除了作为器件的片选地址外,是不是还有其他的用途?
答:没有有其他的用途
一页写满了 重新设置一下地址,然后接着写,如果数据不多,建议如下步骤编程:
1:start
2:发送指令(例如A0)
3:发送地址(例如00)
4:发送数据(例如55)
5:stop
多个数据请重复调用上面5个步骤,,不过调用前要设置好地址和数据哦,,这样就不用考虑计算页的问题了

使用特权

评论回复
6
yewuyi| | 2010-11-12 10:23 | 只看该作者
1。有的控制器手册中提到E2PROM的内部地址,对这个不太明白,是什么意思,该怎么用?

EEPROM就像一家宾馆,EEPROM的内部地址就像房间号。
2。好多代码对E2PROM都是从0地址开始存数据的,请问是否可以不从0开始?
宾馆房间号都是从0开始排位置的,但新来的旅客可以选择任意一间空房入住,只需要再前台登记一下房间号就可以了。
3。如何更换页,比如说一开始就对第3页操作?
宾馆一层有8间房,某次来了一个旅行团10个人,前8个人住第一层,后2个人住到第二层,当然,也可以签8个人住第3层,另2个人住别的层,这个就看前台服务员也就是你这个编程人员确定了。
4。如果不考虑也,是不是可以从0一直存下去,指导把E2PROM存满?
住满一层后必须换到别的层,否则溢出或者覆盖。

使用特权

评论回复
7
pengfei_wpf|  楼主 | 2010-11-12 10:28 | 只看该作者
了解,多谢!

使用特权

评论回复
8
pengfei_wpf|  楼主 | 2010-11-12 10:50 | 只看该作者
那第0页和第1页是如何区分的?是在地址发送的么?

使用特权

评论回复
9
pengfei_wpf|  楼主 | 2010-11-12 10:52 | 只看该作者
就像宾馆,1楼8号房和2楼8号房可以写成108和208 那么E2PROM中如何区分?

使用特权

评论回复
10
yewuyi| | 2010-11-12 11:46 | 只看该作者
顺序排列的,但8个字节分成一页已经被其内部强制划分了。

使用特权

评论回复
11
jack_shine| | 2010-11-12 16:49 | 只看该作者
大道至简,多看看书,空想只会把问题想复杂

使用特权

评论回复
12
pengfei_wpf|  楼主 | 2010-11-12 21:07 | 只看该作者
其实没有在空想,最近项目遇到点问题,软件方面的,一直没解决,所以把我这个做硬件的拉去一起做。
AT92SAM9263的片子,有TWI的接口,挂了2片AT24C01A,一片电量采集芯片和一片AD转换芯片。

结果测试E2PROM读写时总出错,写入的数据和读出的数据对应不上。

一开始怀疑是电量采集芯片和AD转换芯片影响的,拆掉发现也不行,所以就一直在追查E2PROM的读写。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我算我的!

15

主题

78

帖子

0

粉丝