Jig Main Board Commands
  • 15 Jul 2024
  • 3 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Jig Main Board Commands

  • Dark
    Light
  • PDF

Article summary

Notes

  • MCU state -> on/off -> 0/1
  • MDM state -> on/off state -> 0/1
  • reset value -> 0 for MCU, 1 for MDM
  • MDM -> Modem
  • MCU -> Microcontroller
  • DUT -> Device Under Test (Target)
  • VDD_EXT -> MDM pin that drive 1.8V output only when it's ON
  • XTAL -> Crystal Oscillator that mounted on DUT
  • DUT-JIG Comm -> customized TLV (Tag, Length, Value) format
    USB Serial
    Fig.1 TLV Data Format

1. Sensor Voltage Drive Test

QC verify the sensor voltage input from the target.

Pins used

  • Sensor 1 => INTP3
  • Sensor 2 => INTP4

Command

Apps to JIG

{D?}

JIG to DUT (Hex)

01 FF 00 0A 02 12 03 53 9F 04

Response

JIG to Apps

Expected:

{​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​D:\<sensor1 state\>,\<sensor2 state\>}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n

Invalid/timeout/error:

{​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n

sensor1 state = sensor2 state = 1/0. Example:

{D:1,1}\n

It means that both sensor1 and sensor2 input is detected

DUT to JIG

DUT send a pulse to be detected in INTP3 and INTP4

2. ON/OFF Control

This command used to control ON/OFF state of Modem (MDM) and MCU. QC's GPIO will send pulse for several milliseconds to trigger MCU and MDM.

Pins used

ON/OFF MCU => P14
ON/OFF MDM => PWR KEY => P13

Pulse width

MCU => none
MDM => 700 ms (ON) and 1500 ms (OFF)

Command

Apps to JIG

{​​​​​O:\<MCU state\>,\<MDM state>}​​​​​

MCU state
0 -> MCU OFF
1 -> MCU ON

MDM state
0 -> MDM OFF
1 -> MDM ON

JIG to DUT

JIG set GPIO P14 to HIGH if MCU is set to be ON, vice versa.
JIG set pulse width to P13 700ms if MDM is set to be ON, 1500ms if set to be OFF.

Response

JIG to Apps

Expected:

{​​​​​​​​​​​​​​​​​​​O:OK!}​​​​​​​​​​​​​​​​​​​\n

Invalid:

{​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​\n

DUT to JIG

None

3. Power Rail Test

This command used to get Voltage value of Modem (MDM) and MCU. QC's ADC pins (ANI0 and ANI1) will read the analog value and send the value to GUI. This power rail test used DTC to store ADC values.

Pins used

MCU power rail => ANI0
MDM power rail => ANI1

DTC configuration

Count : 2
Transfer Byte : 2
Source : 0xFF1E fixed
Destination : 0xF500 incremented
DACEN1 bit 5 = 1 (A/D Conversion)

DTC reloaded every started with reset count to 0 and destination back to 0xF500 when it's been more than 0xF504

ADC Configuration

Operation mode : Select mode, one shot, software trigger
Conversion mode : Low voltage 1
Conversion time : 38 us
Resolution : 10 bits

Command

{​​​​P?}​​​​​​​​​​​

Response

Expected => {​​​​​​​​​​P:<sensor 1>,<sensor 2>}​​​​​​​​​​​​​​​​​​​​​​​​​\n
Invalid => {​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​\n

Example
0 >= sensor 1, sensor 2 <= 1023
sensor 1 -> ANI0
sensor 2 -> ANI1

4. Reset Control

This command used to control reset state of Modem (MDM) and MCU. QC's GPIO will send pulse for several milliseconds to give reset trigger to MCU and MDM.

Pins used

reset MCU => P15
reset MDM => PWR KEY => P13

Pulse width

MCU => 20 ms
MDM => 3 s

Command

{​​R:<reset value>}​​​​​​​​​

Reset value
0 -> MCU
1 -> MDM

Response

Expected => {​​​​​​​​​​​​​​​​R:OK!}​​​​​​​​​​​​​​​​\n
Invalid => {​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​\n

5. Sensor Test

QC verify the sensor reading from the target.

Pins used

Sensor 1 => ANO0 (same as ANI2)
Sensor 2 => ANO1 (same as ANI3)

UART configuration

  1. Rx
    Data length : 8b
    Parity : None
    Baud rate : 19200 bps

  2. Tx
    Mode : Single transfer
    Data length : 8b
    Parity : None
    Stop bit length : 1b
    Baud rate : 19200 bps

DAC Configuration

Operation mode : Normal mode
Resolution : 8 bits

Command

{​​​​​​S?}​​​​​​

Response

Expected => {​​​​​​​​​​​​​​​​​​​​​​​​​​​S:<sensor1_low>, <sensor2_low>, <sensor1_mid>, <sensor2_mid>, <sensor1_hi>, <sensor2_hi>}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n
Invalid/timeout/error => {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n

example :

{​​​​​​​​​​​​​​​​​​​​S:100,101,500,501,1002,1010}​​​​​​​​​​​​​​​​​​​​\n
0 >= sensor1_lo,mid,hi, sensor2_lo,mid,hi <= 1023

6. Tamper Test

QC verify the tamper switch is activated from the target.

Pins used

UART0 from QC to DUT

Command

{​​​​​​​​T?}​​​​​​​​

Response

Expected : {​​​​​​​​​​T:​​​​​OK!}​​​​​​​​​​​​​​​​​​​​​​\n
Invalid / timeout : {​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​\n

7. MCU-MDM UART Test

QC Verify that UART connection b/w DUT's MCU-MDM is working as expected

Pins used

UART0 from QC to DUT

Command

{​​​​​U?}​​​​​

Response

Expected : {​​​​​​​​​​​​​​​​​​U:<DUT's IMEI>}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n
Invalid / timeout : {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n

8. VDD_EXT Test

QC verify VDD_EXT pin from the MDM target.

Pins used

INTP0

Command

{​​​​​​V?}​​​​​​

Response

Expected : {​​​​​​​​​​​​​​​​​​​​​​V:​​​​​OK!}​​​​​​​​​​​​​​​​​​​​​​​​​​​\n
Invalid / timeout : {​​​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​​​\n

9. XTAL Test

QC verify the XTAL at the DUT is working as expected

Pins used

UART0 from QC to DUT

Get Command

{​​​​​​​​X?}​​​​​​​​

Get Response

Expected : {​​​​​​​X:<day>,<month>,<year>,<hour>,<minute>,<second>}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n
Invalid / timeout : {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n

Set Command

{​​​​​​​​​​​​​​​​X:<day>,<month>,<year>,<hour>,<minute>,<second>}​​​​​​​​​​​​​​​​

Set Response

Expected : {​​​​​​​​​​​​​​​​X:OK!}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n
Invalid / timeout : {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ERR}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​\n


Was this article helpful?