Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

design r0.6 #185

Closed
28 tasks done
mossmann opened this issue Nov 29, 2022 · 7 comments
Closed
28 tasks done

design r0.6 #185

mossmann opened this issue Nov 29, 2022 · 7 comments
Assignees
Labels
enhancement potential new feature hardware

Comments

@mossmann
Copy link
Member

mossmann commented Nov 29, 2022

  • increase PCB size to accommodate future switch from 256 caBGA to 381 caBGA package
  • increase clearance around U8, U9, U11 (USB PHYs) to accommodate future switch from USB3343 to USB3320
  • rename Sideband port to "Control" and use as primary port for control of both FPGA and Apollo)
  • rename Host port to "Aux" for auxiliary functions including MitM
  • enhance Target-C PD/CC I/O with FUSB302B or similar Type-C controller
  • enhance Aux PD/CC I/O with FUSB302B or similar Type-C controller
  • connect shields of all USB connectors together
  • disconnect USB shields from GND except through ferrites or 0 ohm resistors (populated by default)
  • replace U1, U12, U13 (Target VBUS switches) with FET solution
  • add VBUS voltage and current monitoring for all USB ports
  • replace D1, D8 (5V diode OR) with FET solution
  • move HyperRAM to FPGA pins in a DQS group if possible for both 381 caBGA and 256 caBGA variants
  • increase clearance around U6 (microcontroller) to allow future replacement if necessary
  • restore 1.8 V supply as an assembly option, supporting either 1.8 V or 3.3 V HyperRAM
  • add pin straps for hardware version detection
  • increase LED spacing
  • add USB switch to Control port
  • improve microcontroller D+/D- routing/reference plane
  • remove Debug SPI test points
  • bigger and better mounting holes
  • add third button for SoC reset or general FPGA use
  • remove J5 (FPGA JTAG) if it is in the way
  • move Pmod connectors to the same side to support 24-pin Pmods
  • remove unpopulated SMA connectors
  • add FPGA->microcontroller interrupt signal
  • add mezzanine connector
  • add test points for DFU button
  • update layout with all of the above

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

@mossmann mossmann added enhancement potential new feature hardware labels Nov 29, 2022
@mossmann mossmann self-assigned this Nov 29, 2022
@mossmann
Copy link
Member Author

mossmann commented Feb 7, 2023

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

@yyrfejx884
Copy link

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

@martinling
Copy link
Member

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
Copy link

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
Copy link
Member Author

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
Copy link
Member Author

mossmann commented Mar 28, 2023

Design validation by hardware bring-up progress:

  • scope +3V3
  • scope +2V5
  • scope +1V1
  • scope 60 MHz clock
  • check idle current
  • SWD via J10
  • SWD via J6
  • RESET button
  • PROGRAM button
  • CONTROL USB switch
  • Apollo USB data
  • program FPGA via Apollo
  • debug LEDs
  • FPGA LEDs
  • interactive-test.py
  • bulk_in_speed_test.py on TARGET C
  • bulk_in_speed_test.py on AUX
  • CONTROL/AUX power input diode OR
  • CONTROL overvoltage shutoff
  • AUX overvoltage shutoff
  • TARGET C VBUS passthrough on/off
  • CONTROL VBUS passthrough on/off
  • AUX VBUS passthrough on/off
  • TARGET C VBUS passthrough on by default while powered off
  • TARGET C VBUS passthrough on by default while powered on
  • CONTROL VBUS passthrough off by default
  • AUX VBUS passthrough off by default
  • VBUS passthrough up to 21 V
  • VBUS passthrough up to 3 A
  • write to SPI flash
  • configure FPGA from flash
  • high speed USB data passthrough
  • bulk_in_speed_test.py on CONTROL
  • USER button
  • J10 power input
  • CONTROL CC Rd
  • TARGET C Type-C controller I2C
  • TARGET C CC I/O
  • TARGET C CC Rd while powered off
  • TARGET C CC Rd while powered on
  • TARGET C CC overvoltage shutoff
  • TARGET C SBU overvoltage shutoff
  • TARGET C SBU I/O
  • AUX Type-C controller I2C
  • AUX CC I/O
  • AUX CC Rd while powered off
  • AUX CC Rd while powered on
  • AUX C CC overvoltage shutoff
  • AUX C SBU overvoltage shutoff
  • AUX SBU I/O
  • power monitor I2C
  • CONTROL power monitor
  • AUX power monitor
  • TARGET A power monitor
  • TARGET C power monitor
  • CONTROL power input shutoff
  • AUX power input shutoff
  • PMOD A
  • PMOD B
  • MEZZANINE
  • USB analysis
  • CONTROL USB reset detection
  • TARGET D+/D- monitor
  • +3V3 current up to 1 A
  • hyperram_diagnostic.py
  • FPGA->MCU interrupt
  • TARGET A VBUS discharge

@mossmann
Copy link
Member Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement potential new feature hardware
Projects
None yet
Development

No branches or pull requests

3 participants