Re: I2C Multi-Master Mode
|
||||
---|---|---|---|---|
版主
|
1. I2C bus 衝突是可以解決的,你必須加入 I2C Bus Collision 的仲裁機制,因為以你目前使用的方式屬於 Multi-Master I2C 模式。
有關此一程式 Microchip 已經有提供一軟體範例參考 : AN554 & AN578 2. 要使用 PIC 的 I/O 腳做為 Open Drain 功能可以這樣做: 以 RB0 為例 : Reset 後RB0為輸入模式,這時將"0"寫到RB0上,利用 TRIS RB0 的方式,設為輸出時就宋出 Low 電位,RB0設為輸入時,RB0就輸出高阻抗透過外界的提升電組而成為 Hi 電位,這樣就不會去干擾別人。 所以你只要改變 SCL & SDA 腳的控制方式就可以了,不需換 PIC。
發表於: 2008/1/9 11:43
|
|||
|
Re: I2C Multi-Master Mode
|
||||
---|---|---|---|---|
初級會員
|
現在就是苦惱於 DSP 原廠不願提供他的 External MCU 詳細資料
以至於我送電瞬間 DSP I2C 就開始工作了 所以即使我先將 628A SDA SCL initial 也無法阻止 I2C 衝突發生 現在我打算改用 PIC16F689 來試試看了
發表於: 2008/1/9 11:25
|
|||
|
Re: I2C Multi-Master Mode
|
||||
---|---|---|---|---|
資深會員
|
就是因為你PIC16F628A沒有Open Drain所以SDA SCL都Output Hi才影響DSP讀EEPROM
你開機時,把PIC16F628A的SDA SCL都設成Input,等要使用時,先判斷SDA SCL都為Hi的時候,再設Output Hi然後再開始IIC的動作。
發表於: 2008/1/9 10:59
|
|||
|
Re: I2C Multi-Master Mode
|
||||
---|---|---|---|---|
初級會員
|
工作電壓都是 3.3V
而且已經有一組 I2C 有接 4.7k 電阻 pull hi 另外請問 假如我是用 PIC16F628A 軟體模擬 I2C 的話 因為它的腳位都沒有 Open Drain 那要怎麼辦呢 是否有什麼外掛元件開關之類的可以隔離呢
發表於: 2008/1/9 9:46
|
|||
|
Re: I2C Multi-Master Mode
|
||||
---|---|---|---|---|
資深會員
|
請問MCU與DSP工作電壓一樣嗎?皆為5V還是3.3V或是...3V?
所有接SDA、SCL的I/O都要設成Open Drain,然後接約10K電阻Pull Hi,如果MCU與DSP的工作電壓不一樣的話,試著Pull Hi到最高電壓的地方試試。
發表於: 2008/1/9 8:55
|
|||
|
I2C Multi-Master Mode
|
||||
---|---|---|---|---|
初級會員
|
請問一下
我要寫一顆 MCU 來對 DSP 跟 EEPROM 作通訊 因為 DSP 一開機時就會自行讀取 EEPROM 所以當我 MCU 的 SDA SCL 接上 DSP 時就會造成衝突 以至於我的 DSP 無法正常開機 請問我的 MCU I2C 排線應該要怎麼接才能避免 DSP 開機讀取 EEPROM 出現異常 謝謝
發表於: 2008/1/8 19:00
|
|||
|