[問題] 測試 I2C USB function

作者: chiaohuang (chiao)   2021-01-28 12:11:20
大家好
最近因為工作特殊需求需要
主管要我拿公司 兩塊一樣的板子
測試硬體 USB 與 I2C
i2c 我以往都是寫 master 這端
slave 我沒寫過..
依照需求 我想需要把一塊板子設定成master 另一塊設定成slave
然後再互相丟資料 確認硬體正常
我原本建議買一個 i2c device 類似溫度偵測的東西來驗證就好了
但主管好像不接受 要我先試看看
請問 關於設定成 slave 這邊要怎麼做?
另外驗證 USB
也就是拿公對公的USB線
兩個板子對接 然後測試囧
主管說 我們板子上USB 支援OTG
我原本想說 買一個USB隨身碟
然後mount 起來 看能不能讀解
但主管一樣 叫我先試看看..
我想用 gadget 來驗證
想讓板子當成一塊隨身碟
也就是 g_mass_storage功能
我照這篇教學
https://www.xilinx.com/Attachment/58277_Zynq_USB_Linux_Design_Examples_Nov2013.pdf
看起來設定沒什麼問題
g_mass_storage gadget: g_mass_storage ready
但接上pc windows 都沒有反應..
我查了一下 似乎要設定成 OTG mode
我找到device tree usb相關的參數
將dr_mode =“peripheral”
但也是無效
這方面是那邊的問題?
不好意思 卡關很久
希望能有一點方向
謝謝
作者: hizuki (ayaka)   2021-01-28 14:17:00
configfs怎麼配置的,dts指定模式是因為otg線沒有連才需要
作者: chiaohuang (chiao)   2021-01-28 14:47:00
謝謝樓上的回覆 板子上USB都是母的接孔 所有我用一條公對公的將兩塊板子USB接上
作者: liang168 (小強)   2021-01-28 21:19:00
目前只看過一個平台arm9系統 有linux版i2c slave 其他不支援
作者: askacis (ASKA)   2021-01-28 21:34:00
兩塊板子上的USB是純host/device or OTG? otg要有otg線當device那端,kernel 裡對應的udc device driver要設起
作者: wens (文思)   2021-01-29 10:25:00
設成 peripheral 而不是 otg 就是因為你的孔不是標準 OTG所以要強制讓他變成 gadget mode 罷了這是 spec 之外的用法,不見得 kernel driver 會讓你這樣搞因為控制器的驅動程式通常還會檢查 vbus 之類的,而這在你的情境下可能是 always on ,那系統就不會偵測到有線插上
作者: tomgod17 (湯神17)   2021-02-11 14:27:00
不懂你的板子是都沒有任何I2C裝置嗎?隨便一個通道通訊看看或看有沒有ACK基本上通訊都是ok的,真的要看Slave會不會回那是Slave的問題要你測試硬體也就只要隨便寫一個Test driver去通訊指定的i2C地址,利用分析儀看有沒有指定的內容打過來也可以

Links booklink

Contact Us: admin [ a t ] ucptt.com