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

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 你好,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` 即可。修改后的代码如下:

    Fullscreen
    1
    .mode = (MUSB_HOST << 4) | MUSB_PERIPHERAL,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    问题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` 设置

    Fullscreen
    1
    2
    .mode = (MUSB_HOST << 4) | MUSB_HOST,
    .mode = (MUSB_HOST << 4) | MUSB_PERIPHERAL,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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