|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
24C02 只能偶地址讀數(shù)據(jù)問題 |
| 作者:inele 欄目:單片機 |
我用的ATMEL24C02,在進行數(shù)據(jù)寫操作時能夠正常,但進行讀數(shù)據(jù)時,卻有這樣的問題: 如果發(fā)送的數(shù)據(jù)地址為偶數(shù),能讀取數(shù)據(jù),地址為奇數(shù),會在啟動寫這個奇地址時,得不到應(yīng)答,一直死循環(huán). 是否數(shù)據(jù)只能從高字節(jié)讀取,,寫的時候均能正常. ;--------------------------------------- ;I2C讀取數(shù)據(jù)程序 ;USR:R3(讀取I2C數(shù)據(jù)首地址),R1,(寫目標(biāo)器件首地址) ; R7(數(shù)據(jù)字節(jié)數(shù)) ;--------------------------------------- I2CRED: ACALL I2CSTAR ;啟動 MOV A,#10100000B ;SET 2401=WRI ACALL I2CSEND ;送出狀態(tài)字 JB F0,I2CRED 888888888這段死循環(huán)8888888888這段死循環(huán) I2RED_L1: MOV A,R3 ACALL I2CSEND ;判斷數(shù)據(jù)讀取地址 JB F0,I2RED_L1 888888888這段死循環(huán)888888888888888這段死循環(huán) I2CRED_L2: ACALL I2CSTAR ;啟動 MOV A,#10100001B ACALL I2CSEND JB F0,I2CRED_L2 I2CRED_LOP: ACALL I2CREV MOV @R1,A INC R1 DJNZ R7,I2CRED_LOP ACALL I2CSTOP RET |
| 2樓: | >>參與討論 |
| 作者: zgl7903 于 2006/12/13 21:23:00 發(fā)布:
時序問題 |
|
| 3樓: | >>參與討論 |
| 作者: 高勇 于 2006/12/13 22:05:00 發(fā)布:
24C02 寫操作時序好象不對。 |
|
| 4樓: | >>參與討論 |
| 作者: zhaoyu2005 于 2006/12/14 8:39:00 發(fā)布:
好好看協(xié)議 只知道從別人那里要東西(讀數(shù)據(jù)),也不知道說聲謝謝(應(yīng)答),別人當(dāng)然生氣(出錯),不給你東西(數(shù)據(jù))了, |
|
| 5樓: | >>參與討論 |
| 作者: INELE 于 2006/12/14 9:55:00 發(fā)布:
樓上說的有道理 多謝 zhaoyu2005 解答 協(xié)議我看過幾遍了,這個程序是我自己編寫的, 我在讀取數(shù)據(jù)子程序里已包含主機的應(yīng)答動作, 原來不是奇址不能讀寫的因, 現(xiàn)在的問題是,第一次讀取數(shù)據(jù)對了,接下了就錯,再一次讀又是正確,如此循環(huán). 大家?guī)兔λ伎妓伎? |
|
| 6樓: | >>參與討論 |
| 作者: 千尋喬子 于 2006/12/19 12:57:00 發(fā)布:
24C02 只能偶地址讀數(shù)據(jù)問題 我是ATMEL的一級代理,我是喬小姐希望可以幫助到您,我手機:13713758355,QQ:499340587 |
|
| 7樓: | >>參與討論 |
| 作者: zhaoyu2005 于 2006/12/19 14:17:00 發(fā)布:
還是單步運行看一下那個地方有問題 其實就是時序的問題,時序不單單指先后,還包含脈沖寬度、上升沿、下降沿的東西,建議你在電平跳變前加延時看看行不行 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |