![]() |
發布時間: 2021-10-1 12:58
正文摘要:93C66為4K位串行 EEPROM存儲器,讀寫時序與24C有點區別。 單片機源程序如下: void wd93(uint dd,uchar num)//寫入{ unsigned char i; dd=dd<<(16-nu ... |
bigbigcong 發表于 2021-11-12 09:26 為了琢磨樓主的問題,特意去買了幾片做實驗。 原本也不想吐槽,你既然問了我就說一下, 如果不是你剛好有這個片子(朋友送的,公司倒閉剩下的),就不要用這個片子。設計這東西的完全沒有站在用于角度考慮過。 首先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 比較后的直觀結論,不做客觀依據,不喜誤噴。 |
新新科技 發表于 2021-11-12 09:21 通常說的 93C66 是指: AT93C66B (MicroChip的產品) 這款是有 ORG的。可以8位,16位切換 NM93C66LN (是National的產品) 是沒有ORG的,只有16位。 |
本帖最后由 新新科技 于 2021-11-12 12:07 編輯 bigbigcong 發表于 2021-11-12 09:26 估計是以前在什么板子上拆出來的,手頭只有3P。價格不知道,但只知道比24C要多一個或兩個IO口來驅動,并且驅動方式比24C難搞,一點好處都沒有。我的用AT89S52(很久以前購買的)制作的倒計時器 PCB設計有兩個存儲芯片位,一個是24C的,一個是93C的。這93C66現在就拿出來用用,用完了就用24C。還是24C用得比較熟悉。現在用STC等的單片機了,24C又不需要了。 |
這個flash跟AT24C類相比有啥好處?便宜嗎? |
我根本不知道93c66ln是沒有org的,以為是93C系列的,引腳是一致的,結果走了不少彎路。直到昨天下載到的NM93C66數據手冊,才知道93C系列有的有org,有的沒有。93C系列的芯片平時極少用到,不熟悉,只是剛好手頭有,才拿來玩玩。 |
93c66ln是沒有org的……,何來org接地只說?沒有org的是不能讀8位的…… |
188610329 發表于 2021-11-11 16:17 有呀!有接地!就是這個芯片本來就是16位的,所以不支持8位。 |
……,你居然口口聲聲,信誓旦旦說“org”接地了? |
新新科技 發表于 2021-11-10 08:56 問: 93C46 和 93C66 手冊一致么? |
補充,使用雙字節地址碼,我是參考了本論壇的一個帖子,鏈接http://www.zg4o1577.cn/bbs/dpj-98782-1.html,這個帖子介紹的是93C56(2K),我手頭的是93C66(4K)。如果不修改原程序,也是無法正確讀寫。昨天嘗試使用雙字節16位地址碼(第2個字節為空字節,什么內容都可以,可以0x00,也可以0xFF,我都試過),這樣就能正確讀寫0-255地址的數據。 |
188610329 發表于 2021-11-9 18:25 這個意義不大,如果地址碼按手冊說的發送9位的話,在A1位的時候DO就發生低電平應答;如果發送的是8位地址碼,才是在A0發生應答。寫入的檢測的意義相對較大,但讀取數據的檢測意義不大,因為現在發送的是雙字節16位地址碼,遠比9位多得多,等到發送完地址碼,這個低電平早過去了。 如果地址碼只發送8位或9位,就永遠都無法讀取到正確的數據。 |
從手冊的圖2a看, 當你發完地址最后一個位:A0后, DO 會有一個低電平確認,你對這個有判斷么? |
188610329 發表于 2021-11-9 17:10 1、沒錯,24C與93C系列的讀寫原理完全不同。2、DO有接上拉電阻10K。各IO口有嘗試輸出高低電平,均為正常值(高電平接近VCC,低電平為0) 。 3、上述發的程序思路按93C手冊上的時序編寫的,不過手冊上某些地方比較費解,估計是翻譯版本。 |
288.23 KB, 下載次數: 23
也關注了你幾天,93C這片子沒玩過,提不了什么建議。 看你一直沒解決,就說說以下3點: 1,你說時序與24C有點區別,這個不是有點區別,是完全不同…… 24C是 I2C接口規范,93C是SPI接口規范,完全就是兩種協議…… 2,大多SPI接口的Flash 片子, DO都是需要10K 上拉到 Flash自身的VCC的然后,單片機用開漏,或者高阻模式讀取DO的數據,而DI和SK,也是最好10K上拉到Flash自身的VCC 然后,單片機開漏模式控制。如果你程序上找不到原因,可以試試電路。 3,SPI由于前沿,后沿的問題,比較復雜,你最好仔細對照手冊,發數據和收數據,依賴的時鐘沿是否一致。 |
如果讀寫是采用雙字節地址(第一個字節為輔地址,第二個字節為空字節),可以正常讀寫93C66,但要讀寫0xff以上的地址就沒有辦法了。ORG確定是接地的。真是百思不得其解。 |
冰火風輪 發表于 2021-10-1 23:16 有的,按地,設置為8位。 |
ORG 懸空或接VCC 是16位模式哦,接地沒? |