This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
使用的 SDK 版本为 ti-processor-sdk-android-am57xx-evm-04.00.04。
有关设备树配置的信息如下:
extCON_USB1:extCON_USB1{
兼容="linux、extcon-USB-GPIO";
TI、使能 VBUS 检测;
TI、enable-id-detection;
ID-GPIO =<&GPIO7 25 GPIO_ACTIVE_HIGH_>;
VBUS-GPIO =<&GPIO2 GPIO_ACTIVE_HIGH_>;
};
&OMA_dwc3_1{
extcon =<&extcon_USB1>;
};
USB1{(&S)
最大速度="超速";
DR_MODE ="OTG";
};
USB2{
/*
*独立使用仅为外设。
*不过、需要对电阻器进行一些修改
*此端口可通过扩展连接器使用
*作为"主机"或"双角色"。 如果是、请提供
*扩展中所需的 dr_mode 覆盖
*电路板的 DT。
*
DR_MODE ="主机";
};
可以在 Yocto 文件系统中正常使用相同的配置。
此配置是否有任何问题? 需要更改设备树、还需要更改哪些内容?
你(们)好
这种现象作为主机模式或设备模式连接到 U 盘,而不会引起任何反应。
我的板不是48890000.DW3这个节点。具有48890000.usb 这个节点、我将48890000.usb 模式修改为主机或器件、发现这些更改不起作用。
然后我设置 USB1 OR_MODE ="host"、它在主机模式下工作、但我设置 USB1 OR_MODE ="OTG"或"外设"、它不工作(无反应)。
谢谢
您好、Weijie、
您能否确认您对 DTS 文件的更改是"dr_mode"、而不是"or_mode"?
此致、
Nick
你(们)好 Nick
1) 1)关于 USB 硬件电路没有问题、因为同一硬件电路 Yocto 文件系统测试没有问题。
2) 2)加载.ko 驱动程序的方式不适用于 Android 平台、因为 Android 平台没有 modprobe 命令。
谢谢
您好、Weijie、
processors.wiki.ti.com/.../USB_General_Guide_Linux_v3.8 包含有关 DRD USB (在 Linux 中)的部分、这可能会有所帮助。 wiki.tiprocessors.com/.../Sitara_Linux_Add_USB_Ethernet_Gadget_to_Linux_Kernel 讨论了如何在 Linux 内核中添加 USB 小工具。
编辑:我没有遇到过 insmod (在上面的 DRD 示例链接中使用)与 modprobe 用法的关系、但看起来 modprobe 更强大、使用 insmod。
此致、
Nick
您好、Weijie、
Praneeth 纠正了我上面说的一些问题。 在 Linux 中、您需要确保加载了 USB 小工具。 但是、他说、在 Android 中、系统应该处理所有这些问题-只要您按照 6AA.1.0应用手册中的步骤操作、预期 USB OTG 将自动工作、而无需手动加载任何小工具。
您的硬件是 AM57xx EVM 板吗? 如果是这样、除非您修改硬件、否则不能在 USB2上使用 USB OTG。 如 TI_AM572XEVM_REV_A3a.pdf AM57xx EVM 原理图中所示、用于实现 OTG 功能的 ID 引脚断开连接:
AM571x IDK 具有针对 USB2的 OTG 设置。 使用 AM57xx 处理器为 USB OTG 创建电路的正确方法、请参阅 AM571x IDK 原理图:
请注意、AM57xx 系列处理器没有专用引脚来处理 USB ID 或 USB VBUS。 这些信号被发送到 GPIO 引脚、因此您还需要修改软件以告知处理器哪些 GPIO 是 ID 和 VBUS 引脚。 请注意 、VUSB_VBUS2会路由到 PMIC、以便 为 AM57xx 提供 GPIO_USB2_VBUS_DET 信号。
此致、
Nick
你(们)好 Nick
现在,我将 init.am57xevmboard.usb.rc 从"setprop sys.usb.controller 488d0000.usb"修改为"setprop sys.usb.controller 48890000.usb"。
USB 可以工作、但默认模式为主机、需要使用命令"echo "device">/sys/kernel/debug/48890000.usb/mode 切换到设备模式、并且在切换为使用命令"echo "host">/sys/kernel/debug/48890000.usb/mode 后无法返回主机模式。
因此、需要修改其他位置以支持器件和主机模式。
谢谢
您好、Weijie、
同样、这取决于您的硬件。 如果您使用 的是此板 (AM572x EVM)、则所有 USB 端口电路都不支持 OTG 模式。 请确认您使用的是哪款电路板。
可以、您可以手动将软件从主机模式更改为设备模式。 但 USB OTG 也有硬件要求。
在上一篇文章中、我讨论了微型 USB 端口、它是 AM572x EVM 上的客户端端口。 现在、让我们看看 AM572x EVM 板上的主机端口 USB。
请注意、USB 端口 P6、P13和 P15没有 ID 引脚。 这意味着这些端口在连接时无法协商客户端/主机关系(因此无法进行 OTG)。 您还将注意到、主机 USB 端口中没有任何一个像客户端端口那样具有 VBUS_DET (VBUS 检测)。 如果您想在器件模式下使用这些 USB 端口、则希望这些端口使用 VBUS 生成 VBUS 检测信号。
此致、
Nick
你(们)好 Nick
硬件电路没有问题。 我有一个连接 ID 引脚和一个 VBUS 检测引脚。 在 Yocto 文件系统中、它可以自动切换 器件模式和 主机模式。
附件等电路。因此、我认为 Android 文件系统中还有其他地方需要修改、以支持 主机模式和器件模式之间的自动切换。
谢谢