TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3352: usb的peripheral配置问题,以及两端的通信

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 模式

赞(0)
未经允许不得转载:TI中文支持网 » AM3352: usb的peripheral配置问题,以及两端的通信
分享到: 更多 (0)