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.

am335x custom board 的uboot usb 驱动

Other Parts Discussed in Thread: AM3352, UNIFLASH

您好:

基于am3352自己做的板子,MMC0悬空没有接SD卡,MMC1挂的eMMC,启动顺序为MMC1,MMC0,UART0,USB0。

现在想从usb0烧写eMCC,目前可以通过uart烧写spl和uboot, eMCC DDR驱动正常,把板子连电脑没有发现设备,打印为:

starting USB...
USB0: Port not available.

看到这篇帖子

https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/t/113233

说到:“首先,确认板子用于启动的USB0的电路设计,必须要能工作在USB device的模式上”,想请问下,如果电路硬件没有设置为device模式,可以在uboot里配置寄存器设置,相当于通过uboot驱动,让电脑发现设备,再通过USB烧写,想请问如果可行,怎么具体操作,谢谢!

  • 在硬件上,USB ID管脚需要悬空才能工作在device模式。请参考下面的checklist
    processors.wiki.ti.com/.../AM335x_Schematic_Checklist

    硬件上设置好后,uboot里也要使能dfu功能。
    processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide
  • 您好,

    谢谢回复,我们板子ID管脚是悬空状态,我有两个问题

    1.您说通过DFU通过USB烧写,我再menuconfig里没有找到

    另外根据这篇烧写说明,我也想用UniFlash烧写eMMC

    e2echina.ti.com/.../316317

    其中说

    “ Romcode 会初始化 USB RNDIS 以太网络通信协议,通过Windows 宿主机上 Uniflash 自带的 DHCP 服务器进程拿到分配的 IP 地址,然后再通过Windows 宿主机上 Uniflash 自带的 TFTP 服务器进程将 Uniflash 设定的 tftp 目录下用于eMMC 烧写的特殊的 SPL 下载到 AM335x 的内部 ram 中并运行。”

    按理说不用先烧录spl和uboot,插上电脑应该识别出来为 RNDIS设备对么?BBB的板子是有什么特殊设置么?我想同样烧写需要怎么做。

  • SDK为:ti-processor-sdk-linux-am335x-evm-05.02.00.10
    配置文件:am335x_evm_defconfig
  • 请看看这个帖子的讨论

  • 您好,

    谢谢回复,讨论中的板子插上电脑都有发现设备,想请问我这样插上没反应的可能性是什么?因为还没到烧写呢。
  • 你最好对比一下你参考的板子,看看是否电路和上电现象是一致的
  • 您好,

    可能之前问题不明确我再补充一下。

    首先我买了块BBB的板子,连上usb0就能发现RNDIS设备(通过UniFlash烧写),但是我们板子却接上电脑没有反应。
    我们的USB0_VBUS管脚也没接,TRM里这么说:
    “When assuming the role of a peripheral, assuming that the firmware has set the POWER[SOFTCONN] bit, and the USBx_ID pin is floating (h/w option) or USBx Mode Register IDDIG bit field is programmed with ‘1’(s/w option) and an external host is sourcing power on the USBx_VBUSIN line then the USB2.0 controller will set the DEVCTL[SESSION] bit instructing the controller to go into session. ”

    是不是接了这个比较输入后?ROM才能初始化一个RNDIS设备,我试了在uboot里把 DEVCTL[SESSION] 这个置1,但是电脑依然没有刷新,请支持,我需要怎么做,才能才UBOOT里使能RNDIS。谢谢!
  • 不管是host还是peripheral模式,VBUS都需要连接,peripheral mode:USBx_VBUS should be connected directly to the VBUS pin on the USB connector
  • 谢谢您的回复,那usb暂时不可用了。我还想请问,我是否可以通过uart或emac1加载kernel到ddr3上运行,先不考虑烧写emmc。
    谢谢!
  • 可以通过uart 或ethernet加载kernel,可以看下面的uboot加载方式。
    processors.wiki.ti.com/.../Linux_Core_U-Boot_User's_Guide
x 出现错误。请重试或与管理员联系。