Home

Awesome

Cisco HWIC-3G-CDMA

There is a pretty detailed reverse-engineering write-up here.

Components

Main Components:

Various Other Components:

Power Regulators:

Unpopulated:

Power

All essential components for LED blinky are connected to 3.3V. No need for 5V power rail to make that work.

Power architecture:

PC Express Mini Card Info

FPGA Bitstream Configuration

There are 3 ways to program a new bitstream into the FPGA:

Active Serial Retrofit

Steps:

Examples

FPGA Pin Connections

The pin location declaration for Quartus can be found in ./pinout.tcl. Example projects won't necessarily use this file, e.g. if some IP uses a different name.

FPGA Pins:

CLK25                   : L2
LED_GREEN_CR1           : AA19
LED_GREEN_CR3           : AB19
LED_GREEN_CR5           : AA15
LED_ORANGE_CR5          : AB15

UART_DRV_ENA_           : N6 (ADM3222/EN_) - Receiver Enable. Must be 0 to enable RX.
UART_DRV_SD_            : P6 (ADM3222/SD_) - Shutdown Control. Must be 1 to enable TX.
UART_TXD                : D6 (ADM3222/T1IN)
UART_RXD                : F4 (ADM3222/R1IN)
UART_RTS                : G6 (ADM3222/T2IN)
UART_CTS                : H6 (ADM3222/R2IN)

MSEL0                   : M17   - Pulled high with R60
MSEL1                   : N17   - Pulled low with R63

HWIC Pins:

23 GPIOs from FPGA on HWIC connector:

        1	-	    -	        35
		2	GND	    GND	        36
	70	3	G21	    GND	        37          3 == toggling output on Cisco router
		4	GND	    *  	        38
	71	5	-       GND	        39
		6	GND	    -	        40
	72	7	-	    -	        41
		8	-	    -	        42
	73	9	-	    -	        43
		10	GND	    GND	        44
	74	11	G22	    F21	        45          11 = DATA0
		12	E21	    E22	        46
	75	13	D21     D22	        47
		14	C21     C22	        48
	76	15	J22     *  	        49          49 == MXQ12 and nCONFIG_OE_
		16	*  	    N22	        50          16 == nCONFIG and MXQ12_OE_
	77	17	-	    GND	        51
		18	T22	    U21	        52
	78	19	V21	    V22	        53
		20	W21	    W22	        54
GND	79	21	Y21	    Y22	        55
		22	3.3V    N21	        56
5.0	80	23	MXQ1    -	        57
		24	GND	    MXQ2        58
GND	81	25	T21	    -	        59          25 == DCLK_OE_ / 59 == DCLK, pulled high to 3.3V
		26	*  	    *  	        60
3.3	82	27	*  	    *  	        61
		28	*  	    -           62
GND	83	29	GND	    *  	        63
		30	*  	    GND	        64
12.	84	31	GND	    *  	        65
		32	A12	    GND	        66          32: FPGA input only. Goes to clock input.
	    33	GND	    L18/MXQ7    67
		34	-   	-	        68

SOT23-5 ICs:

AT90SC12836RCT/C9059 connections:

1:      GND                         8:      5V
2:      -                           7:      Pin 13 of MXQ3311
3:      Pin 6 and 9 of MXQ3311      6:      -
4:      Pin 11 of MXQ3311           5:      Pin 8  of MXQ3311

AT90SC12836RCT/C9059 connections on VWIC-2MFT-T1/E1 board:

1:      GND                     8:      5V
2:      -                       7:      Pin 13 of MXQ3311
3:      Pin 9  of MXQ3311       6:      -
4:      Pin 11 of MXQ3311       5:      Pin 8  of MXQ3311

MXQ3311 connections:

1:      Pin 23 of HWIC         14:
2:      Pin 58 of HWIC         13: Pin 7 of C9059
3:                             12:
4:      GND                    11: Pin 4 of C9059
5:                             10: 3.3V
6:      Pin 3 of C9059          9: Pin 3 of C9059
7:      Pin 67 of HWIC/L18      8: Pin 5 of C9059

SDRAM to FPGA connections:

DQ0         : B20

DQ1         : A20
DQ2         : B19

DQ3         : A19
DQ4         : D16

DQ5         : E15
DQ6         : D15

DQ7         : C14

LDQS        : A17

LDM         : E14
WE_         : B14
CAS_        : B17
RAS_        : B18
CS_         : A5

BA0         : C17
BA1         : C18
A10/AP      : A3
A0          : A10
A1          : A9
A2          : A7
A3          : B11

DQ15        : F12

DQ14        : A15
DQ13        : B15

DQ12        : A16
DQ11        : B16

DQ10        : F13
DQ9         : F14

DQ8         : D14

UDQS        : A13

UDM         : A14

CK#         : B4
CK          : A4
CKE         : C9

A12         : D9
A11         : D11
A9          : B5
A8          : B6
A7          : B7
A6          : B8
A5          : B9
A4          : B10

Empty TSOP-48 (NOR flash?) footprint to FPGA:

pin  1 : AA17           Pin 48:  Y17
pin  2 :  W16           Pin 47: Pin 14      pulled high.
pin  3 :  V15           Pin 46: GND
pin  4 :  W15           Pin 45:  AB10
pin  5 :  V14           Pin 44:  AB8
pin  6 :  W14           Pin 43:   V9
pin  7 :  Y14           Pin 42:   W7
pin  8 : AA14           Pin 41:   W9
pin  9 :  U10           Pin 40:  AA7
pin 10 :  U13           Pin 39:  AA9
pin 11 :  Y20           Pin 38:  AB7
pin 12 :  Y13           Pin 37: VCCIO
pin 13 : NC             Pin 36:  AB9
pin 14 : Pin 47         Pin 35:   Y5
pin 15 : ???            Pin 34:   V8
pin 16 :  U9            Pin 33:   Y6
pin 17 :  U8            Pin 32:   W8
pin 18 : AB14           Pin 31:  AA6
pin 19 : AA13           Pin 30:  AA8
pin 20 : AB13           Pin 29:  AB6
pin 21 : AA12           Pin 28:  Y19
pin 22 :  V11           Pin 27: GND
pin 23 :  W11           Pin 26:  Y18
pin 24 : AA11           Pin 25: AA10

Important: there's at least one connection wrong in the table above. Need to revisit...

PCI USB Host to FPGA:

Pin  4: INTA_           :   AA5
Pin  5: RST_            :   AB18
Pin  6: SYS_TUNE        :               "Always connect to ground."
Pin  7: CLK             :   E19
Pin  8: GNT_            :   J1
Pin  9: REQ_            :   AB4
Pin 10: AD[31]          :   C1
Pin 11:
Pin 12: AD[30]          :   D2
Pin 13: AD[29]          :   D1
Pin 14: AD[28]          :   E1
Pin 15: AD[27]          :   D4
Pin 16:
Pin 17:
Pin 18:
Pin 19:
Pin 20: AD[26]          :   E4
Pin 21: AD[25]          :   E3
Pin 22: AD[24]          :   E2
Pin 23: CBE_[3]         :   Y4
Pin 24: IDSEL           :   E2          Same as AD[24]
Pin 25:

Pin 26: AD[23]          :   F3
Pin 27: AD[22]          :   F2
Pin 28: AD[21]          :   F1
Pin 29: AD[20]          :   G5
Pin 30: AD[19]          :   G3
Pin 31: AD[18]          :   H4
Pin 32:
Pin 33: AD[17]          :   H2
Pin 34: AD[16]          :   H1
Pin 35: CBE_[2]         :   Y3
Pin 36: FRAME_          :   W1
Pin 37: IRDY_           :   W2
Pin 38: TRDY_           :   W3
Pin 39: DEVSEL_         :   W4
Pin 40:
Pin 41: STOP_           :   V1
Pin 42: CLKRUN_         :               10K resistor to GNDA (pin 61)
Pin 43:
Pin 44: PERR_           :   V2
Pin 45: SERR_           :   V4
Pin 46:
Pin 47: PAR             :   U2
Pin 48: CBE_[1]         :   Y2
Pin 49:
Pin 50: AD[15]          :   J4

Pin 51: AD[14]          :   J2
Pin 52: AD[13]          :   N4
Pin 53: AD[12]          :   N3
Pin 54: AD[11]          :   N2
Pin 55:
Pin 56: AD[10]          :   N1
Pin 57: AD[9]           :   P5
Pin 58:
Pin 59: AD[8]           :   P2
Pin 60: CBE_[0]         :   Y1
Pin 61:
Pin 62: AD[7]           :   P1
Pin 63: AD[6]           :   R5
Pin 64:
Pin 65: AD[5]           :   R2
Pin 66: AD[4]           :   R1
Pin 67: AD[3]           :   T5
Pin 68: AD[2]           :   U3          Uncertain. Might be swapped with AD[3] or AD[1].
Pin 69: AD[1]           :   T3
Pin 70: AD[0]           :   T2
Pin 71:
Pin 72:
Pin 73:
Pin 74: XTAL2           :               Pulled down to GND
Pin 75: XTAL1           :               Going to FPGA with resistive divider?

Pin 76:
Pin 77:
Pin 78: OC1_N           :               Connected to OC2_N. Pulled up to VCCIO.
Pin 79: PWE1_N          :
Pin 80:
Pin 81: RREF            :
Pin 82:
Pin 83: DM1             :
Pin 84:
Pin 85: DP1             :
Pin 86:
Pin 87: OC2_N           :
Pin 88: PWE2_N          :
Pin 89:
Pin 90: DM2             :
Pin 91:
Pin 92: DP2             :
Pin 93:
Pin 94:
Pin 95:
Pin 96: SCL             :               Used for config EEPROM. Not used on this board.
Pin 97: SDA             :
Pin 98:
Pin 99: PME_            :               ?
Pin 100:

Miscellanous Pins:

AB17                    : pin 1 (EN) of MIC37302

NOR Flash

The PCB has an unpopulated TSOP-48 footprint. The pads of this footprint match the requirements for NOR flash.

Some NAND flash also has a TSOP-48 footprint, but the pinout is not compatible. So NOR flash only.

Pin 15 on this package is not routed to the FPGA, but its function is RY/BY#, the status of program or erase operation. There are other ways for the FPGA to figure out this status, so it's not strictly needed.

Pin 47 (BYTE#$) is often used in these flash devices to select between 8-bit or 16-bit mode. On the PCB, it is connected to pin 14 wp#). On a live board, these pins have a level of 3.3V, which is good, because otherwise the flash would be write protected. There is an unpopulated resistor on these pins that is connected to ground. There is no reason to populated this pin.

NOR flash:

Conclusion: it's possible to solder a NOR flash onto this PCB with a maximum size of 32Mbit. When both 8bit and 16bit more are supported, the flash should be used in 16-bit mode. The pulldown resistor should not be populated.

Other Cisco boards with an FPGA: