系統(tǒng)工作情況:AVR單片機用TWI寫數(shù)據(jù)到24CX后,在計算機使用CH341的SCL,SDA讀出24CX數(shù)據(jù)。 如果分別接,即只把AVR與24CX相連,AVR寫數(shù)據(jù)到24CX沒問題; 或24CX斷開與AVR的連接,只用計算機經(jīng)CH341讀24CX數(shù)據(jù)沒問題。 但如果AVR、24CX、CH341、計算機連在一起,仍用上面使用的程序,即上位機程序用CH341OpenDevice()可以讀到設備,但在用CH341ReadEEPROM()讀不出數(shù)據(jù)。 一開始我懷疑是不是在I2C仲裁的問題,即兩路的SCL時鐘不匹配,但后一查,TWI設置也是用56K,與API使用說明中CH341ReadEEPROM()這個函數(shù)也使用56K,這樣一來應該說就不成問題。 不知為何,請高手們指教!謝謝大家!
查看: 2614
回復: 3
AVR的TWI與24系列E2與CH341的I2C一起使用的問題[求助]
annasummer
發(fā)表于: 2009-06-08 11:34:00
熱門產(chǎn)品 :
CH32V317: 互聯(lián)型青稞RISC-V MCU
即使時鐘匹配也會產(chǎn)生仲裁問題,按照你的描述,問題很可能就是因為系統(tǒng)中有個多個主機,出現(xiàn)多主競爭
annasummer
發(fā)表于: 2009-06-08 12:05:00
我用示波器看了一下,上位機還未發(fā)CH341ReadEEPROM()命令時,SCL高,SDA低,而上位機調用CH341ReadEEPROM()命令后,SCL有一長串方波,而SDA始終是低。
另外,單片機寫數(shù)據(jù)和上位機讀數(shù)據(jù)是分開使用的。我剛又把AVR、24CX、CH341、計算機連在一起,不做寫操作,只有上位機讀數(shù)據(jù),讀出來的都是0。
且單片機操作I2C完后,都有對TWCR的TWSTO置位。
請問樓上高手,我應如何解決多主競爭的問題。
annasummer
發(fā)表于: 2009-06-09 14:44:00
一方是AVR的TWI,一方是封裝的CH341的API,請各位高手指教!
請勿發(fā)布廣告和違法內容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務您
只有登錄才能回復,可以選擇微信賬號登錄