From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

TNT488 problems

Hello! I am sorry English is not my mother tongue! I use TNT4882 chip for GPIB support implementation and AT89S52 for control. I use generic pin configuration to access TNT4882-AQ. The tnt not seems to work. I do not know if the problem is hardware or software problems. Who can help me? You can see the pin configuration on the attachment.Here is the initialization code: void main(void) { MCU_Init(); TNT_RST = 0; delay(); TNT_RST = 1; delay(); CMDR = 0x22; //soft reset SPMR = 0x80; //place chip in turbo+7210 mode AUXMR = 0x80; SPMR = 0x99; AUXMR = 0x99; KEYREG = 0x00; //0x00 to KEYREG HSSEL = 0x01; //put in one-chip mode AUXMR = 0x02; //assert local pon message ADMR = 0x31; //dual primary addressing mode ADR = 0x01; //set primary GPIB address as 1 ADR = 0xE0; //disable secondary address AUXMR = 0x00; //clear local power-on message SBUF = XBYTE[0x00]; while (!TI); TI = 0; SBUF = XBYTE[0x01]; while (!TI); TI = 0; SBUF = XBYTE[0x02]; while (!TI); TI = 0; SBUF = XBYTE[0x03]; while (!TI); TI = 0; SBUF = XBYTE[0x04]; while (!TI); TI = 0; SBUF = XBYTE[0x05]; while (!TI); TI = 0; SBUF = XBYTE[0x06]; while (!TI); TI = 0; SBUF = XBYTE[0x07]; while (!TI); TI = 0; SBUF = XBYTE[0x08]; while (!TI); TI = 0; SBUF = XBYTE[0x09]; while (!TI); TI = 0; SBUF = XBYTE[0x0A]; while (!TI); TI = 0; SBUF = XBYTE[0x0B]; while (!TI); TI = 0; SBUF = XBYTE[0x0C]; while (!TI); TI = 0; SBUF = XBYTE[0x0D]; while (!TI); TI = 0; SBUF = XBYTE[0x0E]; while (!TI); TI = 0; SBUF = XBYTE[0x0F]; while (!TI); TI = 0; SBUF = XBYTE[0x10]; while (!TI); TI = 0; SBUF = XBYTE[0x11]; while (!TI); TI = 0; SBUF = XBYTE[0x12]; while (!TI); TI = 0; SBUF = XBYTE[0x13]; while (!TI); TI = 0; SBUF = XBYTE[0x14]; while (!TI); TI = 0; SBUF = XBYTE[0x15]; while (!TI); TI = 0; SBUF = XBYTE[0x16]; while (!TI); TI = 0; SBUF = XBYTE[0x17]; while (!TI); TI = 0; SBUF = XBYTE[0x18]; while (!TI); TI = 0; SBUF = XBYTE[0x19]; while (!TI); TI = 0; SBUF = XBYTE[0x1A]; while (!TI); TI = 0; SBUF = XBYTE[0x1B]; while (!TI); TI = 0; SBUF = XBYTE[0x1C]; while (!TI); TI = 0; SBUF = XBYTE[0x1D]; while (!TI); TI = 0; SBUF = XBYTE[0x1E]; while (!TI); TI = 0; SBUF = XBYTE[0x1F]; while (!TI); TI = 0; while (1); } Here is the data which i read from all TNT4882 registers after the initialization, somebody can see wrong values? Reg: 0x00 -> Val: 0x00 Reg: 0x01 -> Val: 0xFF Reg: 0x02 -> Val: 0x00 Reg: 0x03 -> Val: 0xFF Reg: 0x04 -> Val: 0x00 Reg: 0x05 -> Val: 0xFF Reg: 0x06 -> Val: 0x00 Reg: 0x07 -> Val: 0xFF Reg: 0x08 -> Val: 0x00 Reg: 0x09 -> Val: 0xFF Reg: 0x0A -> Val: 0x00 Reg: 0x0B -> Val: 0xFF Reg: 0x0C -> Val: 0x00 Reg: 0x0D -> Val: 0xFF Reg: 0x0E -> Val: 0x00 Reg: 0x0F -> Val: 0xFF Reg: 0x10 -> Val: 0x00 Reg: 0x11 -> Val: 0x00 Reg: 0x12 -> Val: 0x00 Reg: 0x13 -> Val: 0x00 Reg: 0x14 -> Val: 0xFF Reg: 0x15 -> Val: 0x3C Reg: 0x16 -> Val: 0xFF Reg: 0x17 -> Val: 0x3C Reg: 0x18 -> Val: 0x19 Reg: 0x19 -> Val: 0x00 Reg: 0x1A -> Val: 0x19 Reg: 0x1B -> Val: 0x00 Reg: 0x1C -> Val: 0x00 Reg: 0x1D -> Val: 0x00 Reg: 0x1E -> Val: 0x00 Reg: 0x1F -> Val: 0x00 Through those values,it simply does not work. I suspect my TNT4882 bad. Thinks!
0 Kudos
Message 1 of 3
(2,956 Views)

Hello Yanggang,

 

I'm having problems following your code because of the format of it.  Would it be possible for you to modify it for one line per instruction?

 

Thanks,

Steven T.

0 Kudos
Message 2 of 3
(2,938 Views)
I am sorry and I made a new theme, please delete this.
0 Kudos
Message 3 of 3
(2,930 Views)