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.

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设备的通信,应该如何做,是否有示例呢?
我会继续进行查找解决,如果有情况,我会第一刻分享到这里。

  • 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,
    吗?还是?

  • 应该怎么做?

    分别对 `mode` 设置

    .mode = (MUSB_HOST << 4) | MUSB_HOST,
    .mode = (MUSB_HOST << 4) | MUSB_PERIPHERAL,

    USB0 被设置为 Host 模式,USB1 被设置为 Peripheral 模式