view venus/src/usb/usb_core.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 4722b265cb8c
children
line wrap: on
line source

/*
 * This module encapsulates the USB connector, the FT2232D block and
 * the glue components between them.
 */

module usb_core (GND, VBUS, P_5V, VCCIOA, VCCIOB,
		 ADBUS, ACBUS, SI_WUA, BDBUS, BCBUS, SI_WUB, PWREN);

input GND;
output VBUS, P_5V;

input VCCIOA, VCCIOB;
inout [7:0] ADBUS, BDBUS;
inout [3:0] ACBUS, BCBUS;
input SI_WUA, SI_WUB;
output PWREN;

/* interconnecting wires */

wire DM_connector_side, DM_chip_side;
wire DP_connector_side, DP_chip_side;
wire RSTOUT;

usb_conn conn  (.GND(GND),
		.VBUS(VBUS),
		.Dminus(DM_connector_side),
		.Dplus(DP_connector_side),
		.ID()	/* no connect */
	);

/* ferrite bead on the power supply */

inductor VBUS_ferrite (VBUS, P_5V);

/* series resistors on USB data lines */

resistor DM_series_R (DM_connector_side, DM_chip_side);
resistor DP_series_R (DP_connector_side, DP_chip_side);

/* we can now bring in the FT2232D block */

FT2232D_block FT2232D  (.GND(GND),
			.VCC(P_5V),
			.VCCIOA(VCCIOA),
			.VCCIOB(VCCIOB),
			.USBDP(DP_chip_side),
			.USBDM(DM_chip_side),
			.RESET(P_5V),
			.RSTOUT(RSTOUT),
			.PWREN(PWREN),
			.ADBUS(ADBUS),
			.ACBUS(ACBUS),
			.SI_WUA(SI_WUA),
			.BDBUS(BDBUS),
			.BCBUS(BCBUS),
			.SI_WUB(SI_WUB)
	);

resistor DP_pullup_R (DP_chip_side, RSTOUT);

/* power bypass caps */

capacitor P_5V_cap (P_5V, GND);
capacitor P_5V_cap2 (P_5V, GND);

endmodule