找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

弄了几天,还是无法读写93C66 EEPROM存储器,不知道问题出在哪里?

查看数: 6113 | 评论数: 18 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-10-1 12:58

正文摘要:

93C66为4K位串行 EEPROM存储器,读写时序与24C有点区别。 单片机源程序如下: void wd93(uint dd,uchar num)//写入{   unsigned char i;         dd=dd<<(16-nu ...

回复

ID:624769 发表于 2021-11-12 13:08
bigbigcong 发表于 2021-11-12 09:26
这个flash跟AT24C类相比有啥好处?便宜吗?

为了琢磨楼主的问题,特意去买了几片做实验。

原本也不想吐槽,你既然问了我就说一下,
如果不是你刚好有这个片子(朋友送的,公司倒闭剩下的),就不要用这个片子。设计这东西的完全没有站在用于角度考虑过。
首先4线制,通信协议几乎就是SPI协议。撇开ORG控制脚,你需要4个IO才能操作。说法是2M的速率,实际上,我用89C52都必须加 NOP 才能稳定通信,当然,比AT24C还是快一点。但是重点来的…… 他的指令不是标准位制 即不是8位,也不是16位,24位, 而是根据型号不同 长度不同,比如93C66, 16位数据存储格式的话,指令是11位,8位数据存储格式,指令是12位, 93C46的话, 16位数据存储格式的话,指令是9位,8位数据存储格式,指令是10位,由于这奇葩的设定, 你没有办法用常见的通用的硬件SPI去驱动。大多数单片机只能用IO模拟SPI方式去驱动。
这就是所有缺点了么? 不是!!!!上面这些都不是重点, 真正的重点是:
这个芯片,一次只能读/写 1个字节,或者一个字(双字节),然后必须停止,重新启动,再发送指令,操作另一个 字/字节。 你说一个上K 的Eeprom 读写模式如此之不友好?
24C虽然是 I2C操作, 表面上速度比不过 这个93C, 但是,人家有连读连写啊,实际对比测试,连写16个字节,24C 完胜 93C。
所以,93C这个东西,这次是第一次买(本意也不是要用),深入使用了解之后,这次也是最后一次买(有人非要送给我的话,还是来者不拒的)。

以上是个人对93C 和 24C 比较后的直观结论,不做客观依据,不喜误喷。
ID:624769 发表于 2021-11-12 12:49
新新科技 发表于 2021-11-12 09:21
我根本不知道93c66ln是没有org的,以为是93C系列的,引脚是一致的,结果走了不少弯路。直到昨天下载到的N ...

通常说的 93C66 是指: AT93C66B   (MicroChip的产品) 这款是有 ORG的。可以8位,16位切换

NM93C66LN (是National的产品) 是没有ORG的,只有16位。
ID:71233 发表于 2021-11-12 09:56
本帖最后由 新新科技 于 2021-11-12 12:07 编辑
bigbigcong 发表于 2021-11-12 09:26
这个flash跟AT24C类相比有啥好处?便宜吗?

估计是以前在什么板子上拆出来的,手头只有3P。价格不知道,但只知道比24C要多一个或两个IO口来驱动,并且驱动方式比24C难搞,一点好处都没有。我的用AT89S52(很久以前购买的)制作的倒计时器 PCB设计有两个存储芯片位,一个是24C的,一个是93C的。这93C66现在就拿出来用用,用完了就用24C。还是24C用得比较熟悉。现在用STC等的单片机了,24C又不需要了。
ID:958310 发表于 2021-11-12 09:26
这个flash跟AT24C类相比有啥好处?便宜吗?
ID:71233 发表于 2021-11-12 09:21

我根本不知道93c66ln是没有org的,以为是93C系列的,引脚是一致的,结果走了不少弯路。直到昨天下载到的NM93C66数据手册,才知道93C系列有的有org,有的没有。93C系列的芯片平时极少用到,不熟悉,只是刚好手头有,才拿来玩玩。
ID:624769 发表于 2021-11-11 18:27
93c66ln是没有org的……,何来org接地只说?没有org的是不能读8位的……
ID:71233 发表于 2021-11-11 17:48
188610329 发表于 2021-11-11 16:17
……,你居然口口声声,信誓旦旦说“org”接地了?

有呀!有接地!就是这个芯片本来就是16位的,所以不支持8位。
ID:624769 发表于 2021-11-11 16:17
……,你居然口口声声,信誓旦旦说“org”接地了?
ID:624769 发表于 2021-11-10 21:46
新新科技 发表于 2021-11-10 08:56
补充,使用双字节地址码,我是参考了本论坛的一个帖子,链接http://www.51hei.com/bbs/dpj-98782-1.html, ...

问: 93C46  和 93C66  手册一致么?
ID:71233 发表于 2021-11-10 08:56
补充,使用双字节地址码,我是参考了本论坛的一个帖子,链接http://www.51hei.com/bbs/dpj-98782-1.html,这个帖子介绍的是93C56(2K),我手头的是93C66(4K)。如果不修改原程序,也是无法正确读写。昨天尝试使用双字节16位地址码(第2个字节为空字节,什么内容都可以,可以0x00,也可以0xFF,我都试过),这样就能正确读写0-255地址的数据。
ID:71233 发表于 2021-11-10 08:47
188610329 发表于 2021-11-9 18:25
从手册的图2a看, 当你发完地址最后一个位:A0后, DO 会有一个低电平确认,你对这个有判断么?

这个意义不大,如果地址码按手册说的发送9位的话,在A1位的时候DO就发生低电平应答;如果发送的是8位地址码,才是在A0发生应答。写入的检测的意义相对较大,但读取数据的检测意义不大,因为现在发送的是双字节16位地址码,远比9位多得多,等到发送完地址码,这个低电平早过去了。
如果地址码只发送8位或9位,就永远都无法读取到正确的数据。
ID:624769 发表于 2021-11-9 18:25
从手册的图2a看, 当你发完地址最后一个位:A0后, DO 会有一个低电平确认,你对这个有判断么?
ID:71233 发表于 2021-11-9 18:01
188610329 发表于 2021-11-9 17:10
也关注了你几天,93C这片子没玩过,提不了什么建议。
看你一直没解决,就说说以下3点:
1,你说时序与24C ...

1、没错,24C与93C系列的读写原理完全不同。2、DO有接上拉电阻10K。各IO口有尝试输出高低电平,均为正常值(高电平接近VCC,低电平为0) 。
3、上述发的程序思路按93C手册上的时序编写的,不过手册上某些地方比较费解,估计是翻译版本。

93C66.pdf

288.23 KB, 下载次数: 23

ID:624769 发表于 2021-11-9 17:10
也关注了你几天,93C这片子没玩过,提不了什么建议。
看你一直没解决,就说说以下3点:
1,你说时序与24C有点区别,这个不是有点区别,是完全不同…… 24C是 I2C接口规范,93C是SPI接口规范,完全就是两种协议……
2,大多SPI接口的Flash 片子, DO都是需要10K 上拉到 Flash自身的VCC的然后,单片机用开漏,或者高阻模式读取DO的数据,而DI和SK,也是最好10K上拉到Flash自身的VCC 然后,单片机开漏模式控制。如果你程序上找不到原因,可以试试电路。
3,SPI由于前沿,后沿的问题,比较复杂,你最好仔细对照手册,发数据和收数据,依赖的时钟沿是否一致。
ID:71233 发表于 2021-11-9 15:42
如果读写是采用双字节地址(第一个字节为辅地址,第二个字节为空字节),可以正常读写93C66,但要读写0xff以上的地址就没有办法了。ORG确定是接地的。真是百思不得其解。
ID:71233 发表于 2021-10-2 11:29
冰火风轮 发表于 2021-10-1 23:16
ORG 悬空或接VCC 是16位模式哦,接地没?

有的,按地,设置为8位。
ID:955673 发表于 2021-10-1 23:16
ORG 悬空或接VCC 是16位模式哦,接地没?

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表