FreeCalypso > hg > freecalypso-schem2
annotate venus/src/usb/FT2232D_block.v @ 70:8bc2aa52fd23
manual RESET button new part: 260 g force, shorter actuator
One of the main envisioned use cases for FC Venus is field demonstration:
the board will be carried around, mounted on a sheet of acrylic or somesuch,
it will have a battery and an antenna connected, there will be a test SIM
with active service inserted, and the setup will be ready to demonstrate
as a working phone at a moment's notice. But when a demo is not actively
in progress, the fully assembled setup will be transported around in a big
and loose ESD bag, and it will need to be equivalent to a traditional phone
in its switched-off state: battery present, RTC keeping time, but not
switched on all the time.
Having a RESET button of the same keyswitch type as used for the regular
keypad and PWON would cause a problem for such field transport scenarios:
any spurious press of this button would cause a "misc boot" switch-on.
Short spurious presses of PWON are filtered out by the firmware (automatic
power-off if the button isn't held down long enough), but the same cannot
be done for super-low-level nTESTRESET. However, a button with significantly
greater operating force and a shorter actuator (not sticking out to the same
height as the regular keypad buttons) should be much safer.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 02 Dec 2021 22:40:39 +0000 |
parents | 8f3df7a222f5 |
children |
rev | line source |
---|---|
23
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module encapsulates the FT2232D chip and its immediate accessories: |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * the oscillator crystal, the EEPROM, the AVCC filter and the cap on 3V3OUT. |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 module FT2232D_block (GND, VCC, VCCIOA, VCCIOB, |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 USBDP, USBDM, RESET, RSTOUT, PWREN, |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 ADBUS, ACBUS, SI_WUA, BDBUS, BCBUS, SI_WUB); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 input GND, VCC, VCCIOA, VCCIOB; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 inout USBDP, USBDM; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 input RESET; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 output RSTOUT, PWREN; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 inout [7:0] ADBUS, BDBUS; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 inout [3:0] ACBUS, BCBUS; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 input SI_WUA, SI_WUB; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 /* FT2232D pins handled within this block */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 wire EECS, EESK, EEDATA; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 wire XTIN, XTOUT; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 wire AVCC, FTDI_3V3; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 /* instantiate the FT2232D */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 FT2232D_chip FT2232D (.GND(GND), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 .AGND(GND), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 .VCC(VCC), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 .AVCC(AVCC), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 .VCCIOA(VCCIOA), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 .VCCIOB(VCCIOB), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 .OUT_3V3(FTDI_3V3), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 .USBDP(USBDP), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 .USBDM(USBDM), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 .EECS(EECS), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 .EESK(EESK), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 .EEDATA(EEDATA), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 .RESET(RESET), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 .RSTOUT(RSTOUT), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 .TEST(GND), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 .PWREN(PWREN), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 .XTIN(XTIN), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 .XTOUT(XTOUT), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 .ADBUS(ADBUS), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 .ACBUS(ACBUS), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 .SI_WUA(SI_WUA), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 .BDBUS(BDBUS), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 .BCBUS(BCBUS), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 .SI_WUB(SI_WUB) |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 ); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 /* VCCIO bypass caps */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 capacitor VCCIOA_bypass_cap (VCCIOA, GND); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 capacitor VCCIOB_bypass_cap (VCCIOB, GND); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 /* AVCC filter */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 resistor AVCC_filter_R (VCC, AVCC); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 capacitor AVCC_cap (AVCC, GND); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 /* 3V3OUT */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 capacitor FTDI_3V3_cap (FTDI_3V3, GND); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 /* crystal oscillator */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 |
67
8f3df7a222f5
change USB 6.0 MHz crystal to a smaller part
Mychaela Falconia <falcon@freecalypso.org>
parents:
23
diff
changeset
|
71 usb_xtal_wrap xtal (XTIN, XTOUT, GND); |
23
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 capacitor XTIN_cap (XTIN, GND); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 capacitor XTOUT_cap (XTOUT, GND); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 /* serial EEPROM */ |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 wire EEPROM_DOUT; |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 eeprom_93Cx6_16bit eeprom (.GND(GND), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 .VCC(VCC), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 .CS(EECS), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 .SK(EESK), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 .DIN(EEDATA), |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 .DOUT(EEPROM_DOUT) |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 ); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 resistor DOUT_series_R (EEPROM_DOUT, EEDATA); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 resistor DOUT_pullup_R (EEPROM_DOUT, VCC); |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 |
9f70dc110ad7
venus/src/usb: building blocks from DUART28
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 endmodule |