[问题] 测试 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