Connectors for Grandstream phones

Below are connectors named PCB/JUMPER: DESCR. The connectors are collected here, in a central file, because they are likely to be shared among PCB variants.

Contents

JTAG connectors

HT486: JTAG + serial connector

Note that this connector is not named on the PCB of the HT-486. This is almost certainly the same as the JP1 connector in BT102 phones.

BT102/JP1: JTAG + serial connector

This 20-pin connector is probably shared among multiple GrandStream boards. It was found in:

The JP1 connector operates at 3V3 voltage level and is wired as follows:

1=SRST via 200 ohm 2=HD5 (huh?)
3=TMS 4=_TRST
5=TDI 6=GND
7=EMU1/_OFF 8=TCK
9=EMU0 10=TDO
11=_INT3 12=VTref (3V3)
13=BDR1 14=BCLKX1
15=BDX1 16=BFSX1

This connector implements JTAG as well as bootloading from an SPI EEPROM or over a serial port. Active _INT3 after _RS reset serves to select the EEPROM bootmode.

The _INT3 signal boots the devices over an EEPROM after active _RS reset.

The JTAG specifications for the TMS320VC5402 are published by Texas Instruments in BSDL.

JTAG is supported in UrJTAG and its included utility bsdl2jtag can transform the specification to its the format for UrJTAG:

unzip vc5402_pge_bsdl_model.zip
bsdl2jtag sprm062.brm tms320vc5402.jtag
#TODO# Failure importing TI_BIDIR

This procedure failed on parser problems in bsdl2jtag; look for my report in the UrJTAG forum for description and work-around if this happens to you as well.

Note that TI also publishes interesting documents about a built-in bootloader including code. The bootloader is present in the ROM of all default-supplied DSP processors, and it supports alternate ways of passing in the code to run after reset.

BT200/J401 and GXP2020/J401 and GXP1200/J401: JTAG connector

This 14-pin connector is a generic connector defined by TI for their tic55x family, or more formally, chips whose numbers look like TMS320..55.. -- this connector was found in:

This connector is probably present on all recent boards (that is, the boads of not end-of-life products).

1=TMS 2=_TRST
3=TDI 4=TDIS or GND
5=VTref 6=NC or lock
7=TDO 8=GND
9=RTCK 10=GND
11=TCK 12=GND
13=_EMU0 14=_EMU1

BT200/J402 and GXP1200/J402: I2C connector

This connector delivers I2C connectivity, as well as a few GPIO ports that may well be in use for the firmware's bootloader code. I found this connector in

I haven't seen this connector on the GXP2020 that I uncovered, so it would seem that the connector went out of fashion in more recent models.

1=VTref or 3V3
2=SDA
3=SCL
4=BOOTM[0]
5=BOOTM[2]
6=GND

Note: pins are spaced 2 mm apart, not the usual 0.1 inch.

The device normally boots with BOOTM[2:0] set to 010 or 011; although the stable state after boot is 010, it is likely to be temporarily pulled to 011 during system reset, as that would setup for boot from external asynchronous 16-bit memory. The memory is then expected in CE1 space (where Flash resides, of course) and the boot table is expected at address 0x0200000 in CE1 space and must be produced with hex55's -parallel16 option.

When booting over I2C is preferred, up to 8 serial EEPROMs can be connected as a consecutive address range. To activate this boot mode, BOOTM[2:0] must be set to 110, so pin 5 of J402 must be pulled high and pin 4 must be pulled low. Reading of the boot table starts at address 0x0050. After slave with ID bits 000 and of size 64 kB has been downloaded, the slave ID bits are incremented to reach the next EEPROM. Downloads are a byte at a time, not 16 bits as with other booting methods, so use the -serial8 option to let hex55 compose the right boot table.

GXP2020/EXT: I2C Connector

The EXT connector is available on the outside of the GXP2020, and probably matches the one on GXP1200. The GXP2000 and GXP2120 use a mini-DIN plug, but the signals are probably the same. The intention of this connector is to link to addition "button units". These units work over I2C, which makes a lot of sense to me.

But this connector can do more; it is actually the same as the BT200/J402 and GXP1200/J402: I2C connector as it includes the BOOTM[2:0] pins that can make the DSP chip boot from I2C; to this end, pull BOOTM[2] high and BOOTM[0] low.

The RJ45 connector, read from left to right on the outside of the phone, carries the following signals:

  1. BOOTM[2]
  2. N/C?
  3. SCL
  4. 3V3
  5. N/C?
  6. GND
  7. BOOTM[0]
  8. SDA

Peripheral connectors

BT102/JP2 and BT200/J403: Peripheral connector

This connector is found in

The connector is wired as follows:

1=SPK1 (+) 2=SPK2 (-)
3=Vdd 4=GND
5=DATA 6=WR
7=LIGHT 8=RD
9=D0 10=CS
11=D2 12=D1
13=D4 14=D3
15=C1 16=C0
17=C3 18=C2
19=LED (MESSAGE) 20=C4

These connectors are wired to the following peripherals:

  • SPK1, SPK2 go directly to the speaker
  • LED and Vdd steer the MESSAGE LED
  • D0..D4 and C0..C4 form the keyboard matrix
  • LIGHT feeds the backlight for the LCD (other side?)
  • Vdd, GND, DATA, WR, RD are used (I think) for the LCD

More information on GPIO can be found on the GPIO page for BT200.