view venus/src/periph/sim_socket_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 d33cb696b335
children
line wrap: on
line source

/*
 * This module encapsulates the complete SIM socket block:
 * the actual socket, the bypass cap and our SIM_CD circuit.
 */

module sim_socket_block (GND, Vio, VSIM, SIM_CLK, SIM_RST, SIM_IO, SIM_CD);

input GND, Vio, VSIM;
input SIM_CLK, SIM_RST;
inout SIM_IO;
output SIM_CD;

wire SIM_CD_inverted;

sim_socket_wrap socket (.C1(VSIM),
			.C2(SIM_RST),
			.C3(SIM_CLK),
			.C5(GND),
			.C6(VSIM),
			.C7(SIM_IO),
			.SW1(GND),
			.SW2(SIM_CD_inverted)
		);

/* cap per Leonardo schematics */
capacitor C306 (VSIM, GND);

/* pull-up on the switch line */
resistor switch_pullup (SIM_CD_inverted, Vio);

/* inverting buffer for SIM_CD */
inv_buffer_74LVC1G04 inv (.GND(GND),
			  .Vcc(Vio),
			  .A(SIM_CD_inverted),
			  .Y(SIM_CD)
		);

/* bypass cap for the inverting buffer IC */
capacitor inv_bypass (Vio, GND);

endmodule