FreeCalypso > hg > freecalypso-schem2
view venus/src/core/rf_section.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 | 3ed0f7a9c489 |
children |
line wrap: on
line source
module rf_section (GND, VBAT_REG, VBAT_PA, Vio, Analog_IM, Analog_IP, Analog_QM, Analog_QP, AFC, APC, TCXOEN, RFEN, TSPCLK, TSPDO, TSPEN_Rita, TSPACT, Clock_out_to_DBB, RTEMP_VTEST, ANTENNA); input GND, VBAT_REG, VBAT_PA, Vio; inout Analog_IM, Analog_IP, Analog_QM, Analog_QP; input AFC, APC; input TCXOEN, RFEN, TSPCLK, TSPDO, TSPEN_Rita; input [11:0] TSPACT; output Clock_out_to_DBB, RTEMP_VTEST; inout ANTENNA; /* wires between subblocks */ wire VREG3; wire LNAGSMN, LNAGSMP, LNADCSN, LNADCSP, LNAPCSN, LNAPCSP; wire Rita_LBTXOUT, Rita_HBTXOUT; wire PA_LB_in, PA_HB_in, PA_LB_out, PA_HB_out; wire FEM_TX_LB_in, FEM_TX_HB_in; wire FEMout_to_LNAGSMN, FEMout_to_LNAGSMP; wire FEMout_to_LNADCSN, FEMout_to_LNADCSP; wire FEMout_to_LNAPCSN, FEMout_to_LNAPCSP; /* instantiate the main subblocks */ rita_vcxo_int Rita_vcxo (.GND(GND), .VBAT(VBAT_REG), .VREG3(VREG3), .VRIO(Vio), .TCXOEN(TCXOEN), .RFEN(RFEN), .AFC_in(AFC), .Clock_out_to_DBB(Clock_out_to_DBB), .Ctrl_CLK(TSPCLK), .Ctrl_DATA(TSPDO), .Ctrl_STROBE(TSPEN_Rita), .Ctrl_RESETZ(TSPACT[0]), .IN(Analog_IM), .IP(Analog_IP), .QN(Analog_QM), .QP(Analog_QP), .LNAGSMN(LNAGSMN), .LNAGSMP(LNAGSMP), .LNADCSN(LNADCSN), .LNADCSP(LNADCSP), .LNAPCSN(LNAPCSN), .LNAPCSP(LNAPCSP), .LBTXOUT(Rita_LBTXOUT), .HBTXOUT(Rita_HBTXOUT), .DAC(GND), .DET1(GND), .DET2(GND), .APC(), /* no connect */ .RTEMP_VTEST(RTEMP_VTEST) ); rf_pa_block PA (.GND(GND), .VBAT(VBAT_PA), .Band_Select(TSPACT[3]), .Tx_Enable(TSPACT[9]), .APC_in(APC), .LB_RF_in(PA_LB_in), .HB_RF_in(PA_HB_in), .LB_RF_out(PA_LB_out), .HB_RF_out(PA_HB_out) ); rf_fem_block FEM (.GND(GND), .VREG3(VREG3), .Ctrl_Tx_Low(TSPACT[2]), .Ctrl_Tx_High(TSPACT[1]), .Ctrl_Rx_850(TSPACT[4]), .RX_LOW1(FEMout_to_LNAGSMP), .RX_LOW2(FEMout_to_LNAGSMN), .RX_DCS1(FEMout_to_LNADCSN), .RX_DCS2(FEMout_to_LNADCSP), .RX_PCS1(FEMout_to_LNAPCSN), .RX_PCS2(FEMout_to_LNAPCSP), .TX_LOW(FEM_TX_LB_in), .TX_HIGH(FEM_TX_HB_in), .ANT(ANTENNA) ); /* RF magic glue connecting the blocks */ /* Tx: Rita to PA */ rfmatch_rita2pa_lb rita2pa_lb (.In(Rita_LBTXOUT), .Out(PA_LB_in), .GND(GND)); rfmatch_rita2pa_hb rita2pa_hb (.In(Rita_HBTXOUT), .Out(PA_HB_in), .GND(GND), .VREG3(VREG3)); /* Tx: PA to FEM */ rfmatch_pa2fem_pi pa2fem_lb (.In(PA_LB_out), .Out(FEM_TX_LB_in), .GND(GND)); rfmatch_pa2fem_pi pa2fem_hb (.In(PA_HB_out), .Out(FEM_TX_HB_in), .GND(GND)); /* Rx paths (3) from the FEM to Rita LNA inputs */ rfmatch_fem2rita_low fem2rita_low (.In_neg(FEMout_to_LNAGSMN), .In_pos(FEMout_to_LNAGSMP), .Out_neg(LNAGSMN), .Out_pos(LNAGSMP) ); rfmatch_fem2rita_dcs fem2rita_dcs (.In_neg(FEMout_to_LNADCSN), .In_pos(FEMout_to_LNADCSP), .Out_neg(LNADCSN), .Out_pos(LNADCSP) ); rfmatch_fem2rita_pcs fem2rita_pcs (.In_neg(FEMout_to_LNAPCSN), .In_pos(FEMout_to_LNAPCSP), .Out_neg(LNAPCSN), .Out_pos(LNAPCSP) ); endmodule