立即注册 登录
一牛网 返回首页

xy123456的个人空间 http://bbs.16rd.com/?92285 [收藏] [复制] [RSS]

日志

串行EEPROM储存器调试心得

已有 400 次阅读2019-8-15 16:44 |系统分类:嵌入式论坛| 传感器

线传感器网络中,需要一个EEProm来存路由表,93C46系列算是比较老的器件了,速度也不快,但手头正好有几个,就先拿来试验一下,本以为很容易搞定的,却遇到了个奇怪的现象,搞了一阵才解决。在实验之前,查了些93C46资料,读写函数都很正常,和大部分spi器件一样,所以没仔细看数据手册,确定了通讯格式就开始实验,奇怪的问题就开始了,我用指定地址方式写入数据,依次写入“0,1,2,~,128”,读出来确是:“0,0,1,1,2,2,~,64,64”,换了测试数据,反复了几次,确定每个数据都被右移了一位,最高位被0补齐。死活找不到原因,乖乖去看手册,发现这段:

接收到读指令和地址后,DO 引脚先输出一个虚拟的低电平然后数据根据时钟信号移位输出

估计就是这东西导致了我的数据右移,接下来还有一段:

在第一个数据字移位输出以后,只要保持片选信号CS 不变和时钟信号SK 继续触发,器件会自动将地址加1 指向下一地址并且连续输出串行数据,只要保持片选和时钟信号SK 不断的输入,器件会把地址不断的增加直到器件的末地址然后地址回到0 ,在连续读出的模式下只有第一个数据输出的时候有输出虚拟0 位后面送出的数据都没有虚拟0 位

试了一下自动将地址加1 的方法,果然没有问题,但我一般需要随机读取,现在的解决办法只有在每次读完之后,自己直接操作SK,再来一次触发,读出最后一位。我纳闷的是难道没有人遇到这问题吗?还是大家都不用随机读取模式?还是我哪里的理解出了问题?


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

联系我们|小黑屋