view venus/src/primitives @ 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 a1b55af7f04d
children 541b55e6bf47
line wrap: on
line source

/*
 * This file defines the primitives to be instantiated from the structural
 * Verilog source for the board: IC package types, basic components and
 * subpackages to be mapped later in the MCL binding step.
 */

resistor	numpins 2;
capacitor	numpins 2;
inductor	numpins 2;
rlc_generic	numpins 2;	/* "any" RLC for matching network topologies */

resistor_slot	mapped_pins (side1, side2);
transistor_slot	mapped_pins (E, B, C);
mosfet		mapped_pins (G, S, D);

/* TI packages */
pkg_179GHH	grid "pkg_179GHH.bgadef";
pkg_100GGM	grid "pkg_100GGM.bgadef";
pkg_Rita_RF	numpins 49;
pkg_TPA6203A1	mapped_pins (BYPASS, GND, In_neg, In_pos, SHUTDOWN, VDD,
				Out_pos, Out_neg);

/* non-TI RF components */
pkg_RF3166	numpins 31;
pkg_M034F	numpins 19;

/* Flash+RAM MCP (two possibilities) */
pkg_TLA064	grid "pkg_TLA064.bgadef";
pkg_TLC056	grid "pkg_TLC056.bgadef";

/* misc IC packages */
pkg_LQFP48	numpins 48;
pkg_IC_5pin	numpins 5;
pkg_IC_8pin	numpins 8;
pkg_SOT23_6	numpins 6;
pkg_XSON6	numpins 6;

/* logic IC subpackages */
buffer_slot_basic	mapped_pins (A, Y);
buffer_slot_od		mapped_pins (A, Y);
buffer_slot_3state	mapped_pins (A, nOE, Y);
logic_ic_common		mapped_pins (Vcc, GND);
x541_common		mapped_pins (Vcc, GND, nOE1, nOE2);

/* crystal oscillator components */
xtal_2pin_pkg	numpins 2;
xtal_4pin_pkg	numpins 4;
varactor_diode	mapped_pins (A, C);

/*
 * The reference design we are copying calls for a couple of RF chip
 * attenuators.  They are symmetrical in that pins 1 and 2 are equally
 * suitable as either the input or the output, but the package shape is
 * asymmetrical, thus it is a PCB layout decision which pin will be the
 * input and which will be the output.
 *
 * We shall use a mapped_pins primitive and two different pinout mappings
 * at the MCL binding stage, to be selected at layout time.
 */

chip_attenuator	mapped_pins (In, Out, GND1, GND2);

/* connectors */
header_2pin		numpins 2;
conn_3pin		numpins 3;
header_5pin		numpins 5;
header_14pin		numpins 14;
pkg_SMA_F		numpins 5;
pkg_TRRS_jack		numpins 6;
conn_miniUSB_plus4	numpins 9;

/* misc peripherals */
lcd_module_fp		numpins 36;
pkg_SIM_socket		numpins 8;
pkg_buzzer		numpins 4;
basic_LED		mapped_pins (A, C);
misc_diode		mapped_pins (A, C);
clamp_diode_pair	mapped_pins (Signal, Pos_rail, Neg_rail);
switch_2pin		numpins 2;
switch_4pin		numpins 4;

/*
 * Resistor footprint with two extra "virtual pins" for sensing - see
 * ../doc/Charging-circuit for explanation.
 */

resistor_with_sense	mapped_pins (side1_current, side1_sense,
				     side2_current, side2_sense);

/*
 * The following primitives are entirely non-physical EDA artifacts
 * for star routing.
 */
starpoint_2way	numpins 2;
starpoint_3way	numpins 3;