FreeCalypso > hg > freecalypso-schem2
annotate venus/src/periph/loudspeaker.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 | 66d99b5be8a3 |
children |
rev | line source |
---|---|
59
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* Loudspeaker circuit following Leonardo schematics */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 module loudspeaker (GND, VBAT, Input_pos, Input_neg, GPIO_enable); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 input GND, VBAT; |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 input Input_pos, Input_neg; |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 input GPIO_enable; |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 wire PA_in_pos, PA_in_neg; |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 wire Out_pos, Out_neg; |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 wire BYPASS; |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 /* instantiate the audio PA */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 pkg_TPA6203A1 apa (.BYPASS(BYPASS), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 .GND(GND), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 .In_neg(PA_in_neg), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 .In_pos(PA_in_pos), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 .SHUTDOWN(GPIO_enable), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 .VDD(VBAT), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 .Out_pos(Out_pos), |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 .Out_neg(Out_neg) |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 ); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 /* input resistors: the inversion is per Leonardo schematics */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 resistor R33xA (Input_pos, PA_in_neg); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 resistor R33xB (Input_neg, PA_in_pos); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /* feedback resistors */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 resistor R331 (Out_neg, PA_in_pos); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 resistor R332 (Out_pos, PA_in_neg); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /* bypass and supply decoupling caps */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 capacitor C319 (BYPASS, GND); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 capacitor C330 (VBAT, GND); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 /* small output capacitors */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 capacitor C331 (Out_neg, GND); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 capacitor C332 (Out_pos, GND); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 /* the speaker itself! */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 header_2pin spkr_connector (Out_pos, Out_neg); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 /* pull-down on the GPIO control line */ |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 resistor R338 (GPIO_enable, GND); |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
66d99b5be8a3
loudspeaker block implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 endmodule |