2012-10-13 96 views
0

在Verilog仿真中,我將不得不與Microchip的64K I2C EEPROM進行通信。每次從奴隸獲得ack時,我都會在給定的時鐘週期內將SDA驅動爲高阻態。現在,爲了從奴隸獲得數據,我是否必須按照相同的方法來處理SDA?簡單地說,如果SDA端口必須被驅動到高阻抗狀態?Verilog:I2C讀取操作

+0

您可以在electronics.stackexchange.com找到更適合此問題的更適合的問題,我希望他們可能對I2C更有經驗。 – Tim

回答

2

在物理I2C電路中,存在上拉電阻,當輸出處於高阻態時,會使SCL和SDA變爲高電平。與上拉電阻相當的Verilog是TRI1。當信號處於高阻抗狀態時,這將使得線路被定義而不是浮動。

+0

感謝您的回覆。它正在工作。 – san6086

1

一般來說,如果SDA線具有open-drain設計,則不需要將其置於高阻抗狀態(也可能不能),但應將其設置爲邏輯「1」。但是,如果它是一個tri-state IO引腳,那麼是的,您應該將其置於高阻狀態,否則可能會損壞電路。