greatscottgadgets / luna

Amaranth HDL framework for monitoring, hacking, and developing USB devices
https://greatscottgadgets.com/cynthion/
BSD 3-Clause "New" or "Revised" License
989 stars 171 forks source link

design r0.6 #185

Closed mossmann closed 1 year ago

mossmann commented 1 year ago

Close this issue after validating the design and merging to main.

mossmann commented 1 year ago

Work in progress is here: https://github.com/mossmann/luna/tree/hw-r0.6

yyrfejx884 commented 1 year ago

Can you add pin headers to target d- and d+ lines?

martinling commented 1 year ago

Can you add pin headers to target d- and d+ lines?

We're not going to be keen to do that, because those lines are used for high-speed differential data, and stubs are a problem for signal integrity. We already have some short stubs in the D+/D- passthrough to connect the target PHY, but they've been minimised as much as possible.

What would you want to do with headers on those pins? In the r0.6 layout there is already a connection for the FPGA to directly sense the target D+/D- signals via some resistors, so if you want to do additional monitoring of those pins, that can be done via the FPGA.

yyrfejx884 commented 1 year ago

There are some cases when you need to put some extra circuit on these lines temporarily for example: https://www.huaweinewos.com/huawei-harmonyos-support-harmony-tp-cable.html In this case you need to put two pull-ups on the data lines till the fastboot loads then you can remove them and use the usb as normal.

mossmann commented 1 year ago

There are some cases when you need to put some extra circuit on these lines temporarily for example: https://www.huaweinewos.com/huawei-harmonyos-support-harmony-tp-cable.html In this case you need to put two pull-ups on the data lines till the fastboot loads then you can remove them and use the usb as normal.

We won't be adding a D+/D- pin header in r0.6 for the signal integrity reason @martinling mentioned and also due to lack of board area and time (we have already had r0.6 prototype PCBs made). Harmony TP interfacing will have to be done with an external cable or by soldering resistors to the through-hole TARGET A pins.

If you implement the USB communication with Cynthion (not a passthrough host), you could use the additional TARGET port as a place to plug in a small resistor circuit instead of using a special cable.

mossmann commented 1 year ago

Design validation by hardware bring-up progress:

mossmann commented 1 year ago

closing as this (and more) has been merged to: https://github.com/greatscottgadgets/cynthion-hardware