How to debug serial communications on your platform

Hardware connection

First make sure you have the serial connector connected properly to our evaluation board.
See How to connect evaluation board to your platform HW

RS-232 CTS/RTS handshaking between HOST and ASIC

  • HOST should drive nRTS high when it's not able to receive the data from ASIC
  • ASIC will not transmit data if nRTS is high
  • ASIC will drive nCTS high when it's not able to receive the data from HOST
  • HOST must not transmit the data if nCTS is high

ASIC Initialization Data Flow

msc_inline_mscgraph_8

Notes

  1. MEIF mode only for 4751 and 47511. If already in Pass-Thru mode, then initialization jumps to STAGE B
  2. Patch upload occurs in groups of packets (4 groups for 4751 (7375 bytes total), 3 for 47511 (4478 bytes total)). After each group is received, the Asic sends an ACK. Upon completion of patch upload, the Asic switches to Pass-Thru mode
  3. The STAGE G most frequently is not reached because of the wrong frequency plan or wrong RF type setting
  4. The STAGE L most frequently is not reached because of the transmitted data is truncated by the serial port driver not being able to fit it. HAL needs to check how much data was actually sent and send the remainder once the space is freed.

How to see what data has been sent by GLCT and what data has been received

  • The GLL must be compiled with the logging enabled. Check with your FAE if it's a case.
  • Make sure that the <gll> element LogFacMask has the LOG_ASIC_IO flag present.

If these requirements are satisfied, then the following entries in the log file should appear:

17:17:57 11/20/07 %225843D INIT_STAGE A: Soft Reset of ASIC
17:17:57 11/20/07 %225843E @^@ha34BBASQAgICAgICAgICAgICAgICAgP4A/QAAVaoA//wAAAAAAAAAAAAA
17:17:57 11/20/07 %225843E @^@ha14BBAQwA/gD9byIA3sCtC/38

The strings started with "@^@ha" prefix contain the data traffic between ASIC and HOST. This data can be converted to the human readable format using the glb64decode.exe utility:

glb64decode.exe -i log.txt -o log-encoded.txt

Where

  • log.txt Original log file
  • log-encoded.txt The name of the file that will contain human readable output.

The snippet of the log file above now will look like this:

17:17:57 11/20/07 %225843D INIT_STAGE A: Soft Reset of ASIC
17:17:57 11/20/07 %225843E @^@ha34BBASQAgICAgICAgICAgICAgICAgP4A/QAAVaoA//wAAAAAAAAAAAAA
H->A 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 fe 00 fd 00 00 55 aa 00 ff fc 00 00 00 00 00 00 00 00 00 00
17:17:57 11/20/07 %225843E @^@ha14BBAQwA/gD9byIA3sCtC/38
H->A fe 00 fd 6f 22 00 de c0 ad 0b fd fc
  • The H->A indicates data coming form HOST to ASIC
  • The H<-A indicates data coming form ASIC to HOST

This output from the log file can now be compared with output captured by the serial traffic analyzer. They should match exactly, in other hands all data marked with H->A must be seen in the capture from HOST to ASIC, and all data captured from ASIC to HOST should be seen in the lines marked with H<-A

We use this serial traffic sniffer: http://www.iftools.com/#msba

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines