I2C 總線的兩根信號線 SCL 和 SDA 需要上拉才能正常工作,當(dāng)板卡上沒有合適的硬件設(shè)置或者沒有合適的 I2Cslave 設(shè)備,我們就無法進行 I2C 軟件測試。那么是否可以將兩個 PSI2C 控制器通過 EMIO 接口互連起來呢?
因為在 PL 內(nèi)部無法設(shè)置信號線上拉,所以不能直接將 I2Cmaster 控制器的 scl_o/sda_o 連接到 I2C slave 控制器的 scl_i/sda_i。有另一種方法來實現(xiàn)上拉的效果,就是通過在頂層 wrapper 里 scl_T 和 sda_T 的組合邏輯來模擬 scl_i 和 sda_i,具體邏輯如下,
assign i2c0_scl_i = i2c1_scl_t && i2c0_scl_t;
assign i2c0_sda_i = i2c1_sda_t && i2c0_sda_t;
assign i2c1_scl_i = i2c0_scl_t && i2c1_scl_t;
assign i2c1_sda_i = i2c0_sda_t && i2c1_sda_t;
這些信號都是兩個 PS I2C 控制器的 emio 信號從 block design 導(dǎo)出到頂層 wrapper,其中四個 emio 信號在從 block design 導(dǎo)出到頂層 wrapper 之前需要做邏輯反相。
i2c0_scl_t、i2c0_sda_tn、i2c1_scl_t、i2c1_sda_tn
反相操作如圖中 util_vector_logic_0~3所示,
附件是個例子工程 (附件可點擊閱讀原文 輸入0513獲?。?,基于 vck190 es1 board 和 Vivado2020.2。里面包含 block design tcl腳本、頂層 wrapper、prebuilt xsa 文件和 vitis application 源碼。Vitis application 把i2c0 配置為 master、i2c1 為 slave,然后做讀寫校驗測試。可以通過串口輸出信息來判斷是否測試成功,block design 里也介入了 ila,可以在 hardware manager 里檢查相關(guān)信號。下面是 i2c0_scl_i/i2c0_sda_i/i2c1_scl_i/i2c1_sda_i 波形 :
原文標(biāo)題:開發(fā)者分享 | 如何在 Versal 平臺實現(xiàn)兩個 PS I2C 控制器的回環(huán)
文章出處:【微信公眾號:XILINX技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
控制器
+關(guān)注
關(guān)注
112文章
16445瀏覽量
179447 -
Versal
+關(guān)注
關(guān)注
1文章
163瀏覽量
7710
原文標(biāo)題:開發(fā)者分享 | 如何在 Versal 平臺實現(xiàn)兩個 PS I2C 控制器的回環(huán)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
EE-96:將兩個AD73311編解碼器與ADSP-218x接口
![EE-96:<b class='flag-5'>將</b><b class='flag-5'>兩個</b>AD73311編解碼<b class='flag-5'>器</b>與ADSP-218x<b class='flag-5'>接口</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
有沒有辦法使用兩個ADS8556,12個通道連起來使用?
大馬士革銅互連工藝詳解
![大馬士革銅<b class='flag-5'>互連</b>工藝詳解](https://file1.elecfans.com/web3/M00/01/01/wKgZPGdP8weANphIAABY2aS2o6I046.png)
德州儀器推出兩個全新系列實時微控制器
THS1408-EP差分輸入的時候,REF+和REF-可以這樣連起來通過電阻,作為前級運放的共模電壓輸入嗎?
金屬層1工藝的制造流程
![金屬層1工藝的制造流程](https://file1.elecfans.com/web1/M00/F5/17/wKgZoWc2oDeAMY_5AAA0l4T6SKs504.png)
Diodes推出兩款USB Sink控制器
如何將自定義邏輯從FPGA/CPLD遷移到C2000?微控制器
![<b class='flag-5'>如何將</b>自定義邏輯從FPGA/CPLD遷移到<b class='flag-5'>C</b>2000?微<b class='flag-5'>控制器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論