view 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
line wrap: on
line source

/*
 * This module encapsulates the FT2232D chip and its immediate accessories:
 * the oscillator crystal, the EEPROM, the AVCC filter and the cap on 3V3OUT.
 */

module FT2232D_block (GND, VCC, VCCIOA, VCCIOB,
		      USBDP, USBDM, RESET, RSTOUT, PWREN,
		      ADBUS, ACBUS, SI_WUA, BDBUS, BCBUS, SI_WUB);

input GND, VCC, VCCIOA, VCCIOB;

inout USBDP, USBDM;

input RESET;
output RSTOUT, PWREN;

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

/* FT2232D pins handled within this block */

wire EECS, EESK, EEDATA;
wire XTIN, XTOUT;
wire AVCC, FTDI_3V3;

/* instantiate the FT2232D */

FT2232D_chip FT2232D   (.GND(GND),
			.AGND(GND),
			.VCC(VCC),
			.AVCC(AVCC),
			.VCCIOA(VCCIOA),
			.VCCIOB(VCCIOB),
			.OUT_3V3(FTDI_3V3),
			.USBDP(USBDP),
			.USBDM(USBDM),
			.EECS(EECS),
			.EESK(EESK),
			.EEDATA(EEDATA),
			.RESET(RESET),
			.RSTOUT(RSTOUT),
			.TEST(GND),
			.PWREN(PWREN),
			.XTIN(XTIN),
			.XTOUT(XTOUT),
			.ADBUS(ADBUS),
			.ACBUS(ACBUS),
			.SI_WUA(SI_WUA),
			.BDBUS(BDBUS),
			.BCBUS(BCBUS),
			.SI_WUB(SI_WUB)
	);

/* VCCIO bypass caps */

capacitor VCCIOA_bypass_cap (VCCIOA, GND);
capacitor VCCIOB_bypass_cap (VCCIOB, GND);

/* AVCC filter */

resistor AVCC_filter_R (VCC, AVCC);
capacitor AVCC_cap (AVCC, GND);

/* 3V3OUT */

capacitor FTDI_3V3_cap (FTDI_3V3, GND);

/* crystal oscillator */

usb_xtal_wrap xtal (XTIN, XTOUT, GND);
capacitor XTIN_cap (XTIN, GND);
capacitor XTOUT_cap (XTOUT, GND);

/* serial EEPROM */

wire EEPROM_DOUT;

eeprom_93Cx6_16bit eeprom (.GND(GND),
			   .VCC(VCC),
			   .CS(EECS),
			   .SK(EESK),
			   .DIN(EEDATA),
			   .DOUT(EEPROM_DOUT)
	);

resistor DOUT_series_R (EEPROM_DOUT, EEDATA);
resistor DOUT_pullup_R (EEPROM_DOUT, VCC);

endmodule