Electronics > Open Source Hardware

Advice on a custom USB device

<< < (4/4)

pigrew:

--- Quote from: xylo04 on March 22, 2021, 10:07:31 pm ---
--- Quote from: pigrew on March 22, 2021, 01:27:10 pm ---The distinction is device-side or host-side. The device should have betwen 1 and 10uF, but the host should have larger.  The host must have >=120uF. These values are from the USB 2.0 spec, table 7-7 on page 179.

--- End quote ---
Ok, so I think you're saying in the current version of the schematic, C19 should not be on the upstream port, that C3 and C4 are ok because they are <10uF combined, and that C11, C16 and C17 are in-spec for the downstream ports. Do I want to keep C11 and C16 on the hardwired devices, or can I remove them and only keep C17 for the downstream socket?

With regards to trying to break up the project to verify that I know how to use the ICs individually, I've attached two schematics, one for the TUSB2036 hub, and the other for the HS-100B's cousin, the CM108B USB audio controller. Both of these match reasonably well to their application notes, and should have enough room and jumpers and test points to let me verify that each individually is working. I'll make one for the FT232 as well, although that one is well-documented enough that I probably don't have to bore you all with that.

I did have to do a little bit of guesswork on the CM108B board. The datasheet for the B version of the chip doesn't have application notes, so I'm relying on application notes from the original CM108 (datasheet). I removed the crystal, SPDIF, EEPROM and some other things that were unnecessary. Unfortunately, I'm confused by the way some of the capacitors are marked. Several caps are marked "101", "104", "105", and "475". I thought those might be in pF, but they're not common values. Maybe they refer to a BOM that's not provided?

--- End quote ---

Right... (C19+C3+C4+C20) (device-side) must sum to less than 10 uF, unless you add a soft-start circuit (<10uF would be on the bus side, and you could have as much capacitance as you want on the load side). Your load switch should count as soft-start, so you likely could use its fourth channel as a soft-start for other bits of your circuit.

Load switch U5B's enable pin probably shouldn't be floating. Connect it to VDD through a pull-up resistor to VBUS.

Those cap values should be in exponential notation of pF. 101 would be 10*10^0 pF = 10 pF. 104 would be 10*10^4 pF = 100nF, 105 = 1 uF.

xylo04:
Time for an update! I decided there were enough unknowns that I should take a step back and play with the three major sections of the project separately: the USB hub, UART and audio. In that way, I figured I could validate each independently and make sure I understood the individual pieces before putting them together.

I've published 4 additional repos:

* UART: https://github.com/k0swe/ft232r-eval
* Two versions of the sound card, https://github.com/k0swe/hs100b-eval and https://github.com/k0swe/cm108b-eval
* USB hub: https://github.com/k0swe/tusb2036-eval
So far the FT232R and the CM108B work flawlessly according to expectation. I haven't built the HS100B version, but I'm starting to lean toward the CM108B anyway since it has GPIO pins I can use for a push-to-talk (PTT) circuit.

However, I'm having trouble with the TUSB2036 hub I built. When I attach it to a host, it doesn't enumerate. I've checked voltages in several places and it seems to be getting power, it's just not talking to the host. I think my next step is to stop by my makerspace and get comfy with the oscilloscope to see what I can learn, maybe starting by verifying the 6 MHz crystal is running as expected. Maybe I inadvertently fried the chip? I'm not quite sure what I'm looking for at this point.

One part that confused me about the TUSB2036 datasheet is that the application notes all include a placeholder "System Power-On Reset" on the RESET pin. Do I need something extra to pull this up or down after an initial timer? I don't know what to do with that placeholder. I have a push-button on it now, but that's not doing much to help.

I'll keep muddling along, but I would be glad for advice. Thanks to those who have already helped me out!

pigrew:

--- Quote from: xylo04 on April 26, 2021, 11:12:55 pm ---One part that confused me about the TUSB2036 datasheet is that the application notes all include a placeholder "System Power-On Reset" on the RESET pin. Do I need something extra to pull this up or down after an initial timer? I don't know what to do with that placeholder. I have a push-button on it now, but that's not doing much to help.

--- End quote ---

Based on the datasheet, there is no internal pull-up, so your reset pin is being left floating.

You probably can get away with a RC filter as a reset (capacitor to GND, resistor to 3.3V, time constant of a millisecond or so). Otherwise, you buy a power supply supervisor IC with a suitable time delay.

TI has reference schematics downloadable from their product page ("design tools & simulation" category). They use a RC filter for reset (15k + 1uF).

xylo04:
That's very helpful, thank you!

xylo04:
Probably final update on this: it's working! https://github.com/k0swe/mountaineer

Thanks to all of the advice here, it was an enormous help!

Navigation

[0] Message Index

[*] Previous page

There was an error while thanking
Thanking...
Go to full version