Forums › Devices › OSD335x C-SiP › OSD3358 C-SiP USB1 Problem – No data
Custom board design, per the schematic checklist Table 13 Power Input Use Cases, using Use Case 4:
– VIN_AC at +5V
– VIN_USB connected to GROUND
USB0 not used, pins floating as recommended.
USB1 configured as Host
Problem – USB1 does not transfer data.
It is driving USB1_DRVBUS and enabling the port power switch.
The SD card image works on the RED eval board.
The only difference between our design and the RED is detailed above.
It is not a wiring problem on the USB interface.
RED eval board – can query usb from u-boot
Our board – no usb found
My question is, has USB1 functionality been proven when the VIN_USB inputs are connected to GROUND?
Steve,
The circuit looks fine. From your bootlogs, it looks like USB host device is coming up. A couple of things to check:
1. Power and voltage requirements for the slave device: The switch will only be able to supply 500mA. Please make sure this is okay in case you are trying to use 2 slave devices or using a device with higher current requirements. Please also make sure that the voltage on VBUS pin is higher than VBUS threshold when the device is plugged in and consuming power. One more debug step would be to look whether there is a brownout during the inrush stage when the device is plugged in.
2. Please make sure you have the appropriate driver built into the kernel. The bootlogs indicate that a slave device is detected. But, does not identify the device.
Please let us know if you have more questions.
Best,
Neeraj
Steve,
One more thing to verify is the signal integrity of the USB data lines. Please make sure you have length and impedance matched USB data lines as well as this could effect the signal integrity of the differential USB data signal.
best,
Neeraj
Thanks Neeraj.
Additional info:
1. Voltages are good.
The only device we have plugged into the USB1 host port to date is a FLASH drive with minimal current reqs.
2. Given the above and the use of a FLASH drive, what would the appropriate driver be?
And to add: There was no device plugged into USB1 conn during that boot log. Would it be reporting the internal AM3358 USB controller/PHY?
Data integrity is not an issue, controlled dielectric/impedance in place with correct trace W/S geometry.
Just to be sure, VIN_USB connected to GND will not interfere with USB operation?
Regards,
Steve
Steve,
To answer the questions, the bootlog is reporting the USB host controller and VIN_USB is not needed for USB operation. Here are a couple things you can try:
1. Can you post the kernel log messages(dmesg output) after inserting a USB device into the board?
2. Can you try a pre-built image from Beagleboard.org: https://beagleboard.org/latest-images which are known good images for working USB host configuration.
Best,
Neeraj
Neeraj,
Boot log and dmesg output with USB flash drive inserted attached.
There are several messages about USB and not finding info.
Your review is greatly appreciated.
Regarding other images, I think the software team tried this.
Waiting on more info and will post when I have it.
Regards,
Steve
One more piece of info:
If I stop the boot process and use u-boot:
=> usb start
starting USB…
Bus usb@47401800: Port not available.
AND:
No +5V at USB port so u-boot is not enabling USB1_DRVBUS.
Doesn’t look like u-boot is able to configure USB port.
VERIFIED:
U-boot does not configure the USB1 port, does not drive USB1_DRVBUS, does not drive data lines.
Linux does appear to configure the USB1 port, drives USB1_DRVBUS, data lines appear active.
Still does not see flash drive.
Additional info, when trying our image on Octavo RED vs custom board:
– Octavo RED has internal MMC programmed and we boot from SD card.
– Custom board has unprogrammed internal MMC and we boot from SD card.
See differences in boot log at about 2.96:
Comparing the boot logs I see the RED doing this:
[ 2.849539] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[ 2.859348] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 2.868004] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.875366] usb usb1: Product: MUSB HDRC host driver
[ 2.880454] usb usb1: Manufacturer: Linux 4.19.79 musb-hcd
[ 2.885977] usb usb1: SerialNumber: musb-hdrc.1
[ 2.894349] hub 1-0:1.0: USB hub found
[ 2.898843] hub 1-0:1.0: 1 port detected
[ 2.909327] cpu cpu0: Linked as a consumer to regulator.3
[ 2.915729] cpu cpu0: Dropping the link to regulator.3
[ 2.924043] cpu cpu0: Linked as a consumer to regulator.3
[ 2.934383] PM: Cannot get wkup_m3_ipc handle
[ 2.940497] PM: Cannot get wkup_m3_ipc handle
[ 2.946984] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
[ 2.955828] sr_init: No PMIC hook to init smartreflex
[ 2.966704] Waiting for root device /dev/mmcblk0p2…
[ 3.360223] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 3.542744] usb 1-1: New USB device found, idVendor=0424, idProduct=2534, bcdDevice= 1.82
[ 3.551812] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.566591] hub 1-1:1.0: USB hub found
[ 3.571643] hub 1-1:1.0: 4 ports detected
[ 3.597075] PM: Cannot get wkup_m3_ipc handle
[ 3.920430] usb 1-1.4: new high-speed USB device number 3 using musb-hdrc
[ 4.052123] usb 1-1.4: New USB device found, idVendor=0781, idProduct=5575, bcdDevice= 1.00
[ 4.060700] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4.068075] usb 1-1.4: Product: Cruzer Glide
[ 4.072527] usb 1-1.4: Manufacturer: SanDisk
[ 4.076846] usb 1-1.4: SerialNumber: 200548573007B8119C2E
[ 4.085972] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[ 4.103917] scsi host0: usb-storage 1-1.4:1.0
[ 4.113415] PM: Cannot get wkup_m3_ipc handle
[ 5.128388] scsi 0:0:0:0: Direct-Access SanDisk Cruzer Glide 1.00 PQ: 0 ANSI: 6
[ 5.151464] sd 0:0:0:0: [sda] 30605312 512-byte logical blocks: (15.7 GB/14.6 GiB)
[ 5.164600] sd 0:0:0:0: [sda] Write Protect is off
[ 5.174496] PM: Cannot get wkup_m3_ipc handle
[ 5.180874] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn’t support DPO or FUA
[ 5.213374] sda: sda1
[ 5.225095] sd 0:0:0:0: [sda] Attached SCSI removable disk
While the Nemo2 is doing this:
[ 2.853745] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[ 2.863691] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 2.872356] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.879629] usb usb1: Product: MUSB HDRC host driver
[ 2.884720] usb usb1: Manufacturer: Linux 4.19.79 musb-hcd
[ 2.890243] usb usb1: SerialNumber: musb-hdrc.1
[ 2.898529] hub 1-0:1.0: USB hub found
[ 2.903321] hub 1-0:1.0: 1 port detected
[ 2.913812] cpu cpu0: Linked as a consumer to regulator.3
[ 2.919827] cpu cpu0: Dropping the link to regulator.3
[ 2.928152] cpu cpu0: Linked as a consumer to regulator.3
[ 2.938558] PM: Cannot get wkup_m3_ipc handle
[ 2.944577] PM: Cannot get wkup_m3_ipc handle
[ 2.951349] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
[ 2.960038] sr_init: No PMIC hook to init smartreflex
[ 4.337335] EXT4-fs (mmcblk0p2): recovery complete
[ 4.349194] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 4.357714] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 4.367506] devtmpfs: mounted
[ 4.372880] Freeing unused kernel memory: 1024K
[ 4.378451] Run /sbin/init as init process
[ 4.532319] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 5.240277] net eth0: initializing cpsw version 1.12 (0)
[ 5.255875] TI DP83822 4a101000.mdio:01: attached PHY driver [TI DP83822] (mii_bus:phy_addr=4a101000.mdio:01, irq=POLL)
[ 5.277573] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 8.403197] cpsw 4a100000.ethernet eth0: Link is Up – 100Mbps/Full – flow control rx/tx
[ 8.415389] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
#
Hi Neeraj,
I know support will take additional time during our current situation.
I am hoping you’ll have some feedback on this issue.
USB1 is still not working for us and I believe there is info in this log that can help.
We thought we had disabled USB0 since we are not using it but you can see the code looking for USB0.
Trying to figure out on our end too.
Regards,
Steve
Hey Steve,
Apologies for the delayed response. Since the same Linux image does boot and works well on the RED board, we assume it is a hardware issue barring 1 last thing for you to try: Add RED board’s EEPROM ID according to this application note on your custom board: https://octavosystems.com/app_notes/osd335x-eeprom-during-boot/.
We would like to take a look at the layout of the board. Can you contact our sales lead: Martin Burgos: martin.burgos(at)octavosystems(dot)com so we can set up a communication channel.
Best,
Neeraj
Thanks for the quick response Neeraj.
We did program the RED board ID.
=> i2c md 0x50 0x00.2 20
0000: aa 55 33 ee 41 33 33 35 42 4e 4c 54 4f 53 30 30 .U3.A335BNLTOS00
0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff …………….
=>
The issue I have with using the same Linux image on both boards is, the hardware is not the same.
Our custom image is based on the RED, with device tree modifications.
We do not use USB0, the pins are NCs.
The image is still looking for USB0.
I would like to clarify something you said, our image does not boot on the RED board.
It partially boots, then hangs.
If we u-boot, we can see the USB PHY.
I will contact Martin.
Thanks.
Steve
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields