访问片上系统核心模块的USB接口

新一代的ConnectCore基本上会有两个USB控制器,其中有一个调试口做成type C,用于下载或恢复固件。另外一个USB口,可以接U盘等设备,可以从uboot或linux访问这个USB Host。

USB口在uboot内也可用于升级固件,以下是常用命令:

start usb 先要开启这个功能
fatls usb 0:1   列出u盘上的fat32分区的文件
updatefile linux_a usb 0:1 ccmp25-plc.dtb ccmp25-plc.dtb

usb电路如果精简单得和开发板不同,比如不用hub芯片,更改供电电路等,有时需要在dts中添加版本信息,一般用dummy节点,作为注释节点,方便检查当前设备树的版本。 在linux中检查dummy:

cat /sys/firmware/devicetree/base/dummy-node/compatible

#### 解析ccmp25开发板和plc电路中的USB电路#### 首先,要知道SOM中有几个USB端口,注意,开发板的console口只是用了type C的形态和USB转UART芯片,并不是USB端口,一般SOM有内置的USB端口,可以从设备树中了解相关的情况。 在ConnectCore MP255中,有两个USB端口,从PAD名称可以看出,它在片中的名称为USB2和USB3,大概就是为区分USB2.0和USB3.0 :

USB2: USB2_DN,USB2_DP
USB3:  USB3_DN,USB3_DP,UCPD_CC1,UCPD_CC2

可以看出,USB3.0比USB2.0多出了两根配置通道(Configuration Channel,简称CC)信号,分别是CC1和CC2。这两根线用于确定USB连接的方向(即确定哪个端口是上游端口,哪个是下游端口),以及用于检测和配置设备角色(例如,区分主机和设备)。

在开发板中,USB2引脚连接到Microchip的Hub芯片USB2514BI-AEZG,通过它扩展出四路USB接口,包括两个标准USB2.0接口和mini PCIe和XBee接口上的USB信号。 而USB3引脚则定义为USB1接口,即USB Type C对应的接口,平时固件recovery也是用这个接口。

在PLC板子上,USB2引脚没连hub,它作为USB Host来使用,可以连接U盘等设备。 USB3引脚也被定义为USB1接口这个USB Type C接口只是用作recovery接口,用于下载固件。

相应的设备树:

#USB2.0 Host
usb2_phy1
usb2h

#USB3.0 
combophy
usb2_phy2
usb3dr

因此,对于精简单的PLC电路的USB,实际上可以把combophy和usb3dr中的主要东西去掉。