發新話題
打印

SMBus的問題

SMBus的問題

原本我是使用原廠範例的SMBus設定
SYSCLK = 24500000 Hz (24.5MHz)
SMB_FREQUENCY = 10000 -> supported SMBus Frequencies range from 10kHz to 100kHz.
然後我使用print port to I2C接到MCU的SMBus上,使用PC跟MCU做溝通
人機介面是採用Labview編寫的軟體
原本在我的PC上使用人機介面和MCU溝通時都很順利
結果移到notebook上就產生了一些問題,讀取的時候偶爾會產生讀取的值錯亂的問題(有時讀出來是正確的)

桌上PC的配備:雙核2G,2G RAM
notebook配備:10年的舊筆電,CPU應該是不快,128M RAM

目前是認為print port to I2C的CLK和SMBus能使用的速率不搭
不過不知道電腦硬體是否會有影響
不知道有人遇過類似的問題嗎?

將MCU的SYSCLK降速
OSCICN |= 0x03;  ->這是原本的
改成OSCICN |= 0x02;
結果notebook有了改善(錯誤機率變小)
但是桌上PC卻變差(錯誤機率變大)
想請問有比較穩定且合適的,可以和SMBus溝通的做法嗎?
麻煩大家了orz
謝謝!!

TOP

看起來應該是邏輯準位問題,試試外加 Pull high 330R~1K 電阻看看。
另外,請用示波器量量 CLK、DAT 這兩 pin 的 波型是否有失真?(至少要看得出像方波)

[ 本帖最後由 Stevenyang 於 2010-6-2 08:02 編輯 ]

TOP

看過圖後
波型有像方波
桌上PC(硬體好)出來的波形比較快(頻率)
notebook(硬體差)出來的波形比較慢(頻率)
從print port出來的準位,delay的時間有點不是很穩定
有時候delay長一點,有時候delay短一點
會不會有可能是clock的stretch有錯誤發生
不知道有沒有人遇過這種狀況?
謝謝!!

TOP

你用print port模擬SMBus本來就會有這些問題,所以在Time部份及SMBus的設計上就會因Platform&OS不同而影響,
你要先Check你的CPU Speed & System clock在去調整你的輸出 clk,這樣才可以做到那個Platform都可以.
參考~

J.K

TOP

發新話題