Part Number:AM3352
static struct omap_musb_board_data musb_board_data = { .interface_type = MUSB_INTERFACE_ULPI, /** mode[0:3] = USB0PORT's mode* mode[4:7] = USB1PORT's mode* AM335X beta EVM has USB0 in OTG mode and USB1 in host mode.*/ .mode= (MUSB_HOST << 4) | MUSB_OTG, //.mode= (MUSB_HOST << 4) | MUSB_HOST, .power = 500, .instances = 1, }; static void __init am335x_evm_init(void) { am33xx_cpuidle_init(); am33xx_mux_init(board_mux); omap_serial_init(); am335x_evm_i2c_init(); am335x_evm_setup(NULL, NULL); omap_sdrc_init(NULL, NULL); usb_musb_init(&musb_board_data); omap_board_config = am335x_evm_config; omap_board_config_size = ARRAY_SIZE(am335x_evm_config); /* Create an alias for icss clock */ if (clk_add_alias("pruss", NULL, "pruss_uart_gclk", NULL)) pr_warn("failed to create an alias: icss_uart_gclk --> pruss\n"); /* Create an alias for gfx/sgx clock */ if (clk_add_alias("sgx_ck", NULL, "gfx_fclk", NULL)) pr_warn("failed to create an alias: gfx_fclk --> sgx_ck\n"); }
你好,ti团队,我希望了解到一些usb配置的问题,我在网页上还未找到适合我的方法,所以在此提出我的疑问,希望可以得到帮助。
问题1:在里面的我看到usb的配置模式有两个OTG和HOST,我想要将usb0设为host模式(已实现),而usb1设为periphera模式,应该如何做?
问题2:usb1要成为periphera模式,是否意味着不用给他配置电源,而是作为host的一端给它供电?
问题3:如果我想要实现usb设备的通信,应该如何做,是否有示例呢?
我会继续进行查找解决,如果有情况,我会第一刻分享到这里。
Gary Lu:
USB1 设为 Peripheral 模式,你需要修改 `musb_board_data.mode` 的配置。根据你的需求,将 `MUSB_OTG` 替换为 `MUSB_PERIPHERAL` 即可。修改后的代码如下:
.mode = (MUSB_HOST << 4) | MUSB_PERIPHERAL,?? ? 说:问题2:usb1要成为periphera模式,是否意味着不用给他配置电源,而是作为host的一端给它供电?
是的,不需要额外配置电源,连接的 Host 提供电源
?? ? 说:问题3:如果我想要实现usb设备的通信,应该如何做,是否有示例呢?
TI目前没有,建议您Google
,
?? ?:
如果 我想同时将usb0设置为host模式,将把usb1设置为 Peripheral 模式,应该怎么做? .mode = MUSB_HOST | MUSB_HOST, .mode = (MUSB_HOST << 4) | MUSB_PERIPHERAL,吗?还是?
,
Gary Lu:
?? ? 说:应该怎么做?
分别对 `mode` 设置
.mode = (MUSB_HOST << 4) | MUSB_HOST, .mode = (MUSB_HOST << 4) | MUSB_PERIPHERAL,USB0 被设置为 Host 模式,USB1 被设置为 Peripheral 模式