Author Topic: TDS420 with lost options  (Read 6841 times)

0 Members and 1 Guest are viewing this topic.

Offline GismoTopic starter

  • Newbie
  • Posts: 5
  • Country: de
TDS420 with lost options
« on: March 07, 2016, 01:39:28 pm »
Hello

I have a Tektronix TDS420 and it have a Batterie lost from the CPU Board. So I had change it to a new one but now I have lost my Options.
On the Backpanel it says i must have 1M 05 2F.
On the PCB I can see that there was 1M Ram (8x 256x4)

I have GBIP Adapter and intern RS232 running but no idea to make my Options back.  :-//
Can anywhere help?  :scared:

 

Online Andy Watson

  • Super Contributor
  • ***
  • Posts: 2123
Re: TDS420 with lost options
« Reply #1 on: March 07, 2016, 02:00:32 pm »
I enabled the maths option on my TD510A. YMMV but all the research that I did on the 510A suggested that Tektronix employed the same mechanism and memory locations throughout many of their TDS5xx/6xx/7xx series.

Check this thread and the links it contains:
https://www.eevblog.com/forum/testgear/hackingupgrading-old-scope-%28tds754d%29/msg759588/#msg759588

Here is the code that I used (as ever, I re-used code that I had written for other purposes - so ignore anything that does not apply!)
The important bits are sending the password and then setting the memory location.
Code: [Select]
/* Upgrade Tek TDS510A options via GPIB
 *
 * Software/firmware options are enabled by writing one to the
 * NVRAM. The following locations are common to the TDS range:
 * Address     Option
 * 327686        1M Memory expansion enable  (130,000 record length)
 * 327687        05 (Video trigger) Hardware required.
 * 327688        13 (RS-232/Centronics Hardcopy Interface Ports). Hardware required
 * 327689        2F (Advanced DSP math)
 * 327690        1F (Floppy disk). Hardware required.
 *
 * 327692        2C (Communication Signal Analyzer)
 * 327693        3C (P6701B with system calibration). Hardware required.
 * 327694        4C (P6703B with system calibration). Hardware required.
 * 327695        2M (8 M acquisition length). Hardware required.
 *
 * These NVRAM locations appear to be consistent across the TDS5xx, TDS6xx and
 * TDS7xx ranges of oscilloscopes.
 *
*/
/*    How to drive IEEE card from N.I.s  ni488m-320351b.pdf manual
     on using TNT488 PCI driver software
     compile with added library file -> gcc this_file.c -o thatfile  -lgpib
*/

/* Installation                                                                                   
 * Prior to first use, the NI driver has to be compiled and installed.                           
 * As root ldconfig the library/driver                                                           
 * Also modprobe tnt4882.                                                                         
 *                                                                                               
 * In use                                                                                         
 * The ports must have approriate read/write access privilleges                                   
 * chmod a+rw /dev/gpib*                                                                         
 *                                                                                               
 * After each power-up the card needs to be configured with                                       
 * gpib_config  (as root).                                                                       
 */
 
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
//#include "ugpib.h"
#include "gpib/ib.h"

#define Istr_len 15L


/* IEEE primary address of HP1630 Logic Analyzer */
#define Osc_GPIB_Addr 8

/* File handle for GPIB interface */
int TekTDS;

int main(int argc, char *argp[])
{
   int x,z;
   char buffer[2048];
   char sstr[100];
   
   /*  Initialise device and state
       (also sends IFC - clear interface message) */
//    dmm1 = ibdev (0, HPLA_address, 0, 11, 1, 0x40a);
   TekTDS = ibdev (0, Osc_GPIB_Addr, 0, 13, 1, 0);
 
   printf("\n The value returned is %i\n",TekTDS);

   x = sprintf(sstr,"*IDN?");   // Ask for identification
   ibwrt (TekTDS, sstr, x);
   sleep(1);
 
   z = ibrd(TekTDS, buffer, 1023);
 
   z = ibcnt;
   
   printf("\nReturned %i bytes, thus:\n",z);
   for (z=0;z<64;z++) {
      if ((buffer[z] == 10) || (buffer[z] == 13) || (buffer[z] == 0)) break;
      printf("%c",buffer[z]);
   }
   printf("  ");
   for (z=0;z<64;z++) {
      printf(" %02x",buffer[z]);
      if ((buffer[z] == 10) || (buffer[z] == 13) || (buffer[z] == 0)) break;
   }
   printf("\nAnd the value of z is %i\n",z);

    x = sprintf(sstr,"PASSWORD PITBULL");   // Unlock the services
    ibwrt (TekTDS, sstr, x);
    sleep(1);
   
    x = sprintf(sstr,"WORDCONSTANT:ATPUT 327689,1");   // Set the enable bit for option 2F - Maths
   ibwrt (TekTDS, sstr, x);
   sleep(1);

    printf("\nDone\n");
   
    exit(0);
   
}

 
The following users thanked this post: Tantratron

Offline GismoTopic starter

  • Newbie
  • Posts: 5
  • Country: de
Re: TDS420 with lost options
« Reply #2 on: March 07, 2016, 03:07:59 pm »
OK thanks,

I know that it works in the 5xx / 6xx / 7xx so , but the TDS4xx appear to be slightly different. The processor board also has dip switches (8 and 2). I think this I must adjust .
Your proposal is to program all in C, which puts me at the moment against major obstacles .
Maybe there is still a guide for TDS4xx series.

 

Online Andy Watson

  • Super Contributor
  • ***
  • Posts: 2123
Re: TDS420 with lost options
« Reply #3 on: March 07, 2016, 03:53:45 pm »
I found most of my information from other scopes in the series and took the gamble that Mr Tektronix would have used the same system for my scope. The procedure is: flip the switch to put the scope in CAL mode, send the password "PITBULL", then write the memory location, flip the cal switch back and reboot.

However, may be this will be more help to you:
http://www1.tek.com/forum/viewtopic.php?f=5&t=6319
 
The following users thanked this post: Tantratron

Offline GismoTopic starter

  • Newbie
  • Posts: 5
  • Country: de
Re: TDS420 with lost options
« Reply #4 on: March 07, 2016, 09:39:22 pm »
I have no CAL Switch. I Have only this DIP Switches. IF I Switch the two Switches (have ever read..) see attachments

Thats the Log without the two Switches:
Code: [Select]
        Bootrom Header Checksum passed.
        Bootrom Total Checksum passed.
        BootRom Check Sum passed.
        Bus Error Timeout test passed.
        Bus Error Write to Bootrom passed.
        GPIB Test passed.
Kernel Diagnostics Complete.

Calling SDM (monitor) Routine.

SDM (monitor) not enabled.
        Enabling Bus Control register. Value = 0x2
        Flashrom Programming Voltage is OFF.
        Flashrom DSACK and JumpCode test passed.
        Flashrom Checksums passed.
Bootrom Diagnostics Complete.

Transferring control to the Flashrom.
sysDramControllerInit
sysDramByteStrobeTest
sysDramTest
bcopy(<Idata>)
bzero(<bss>)
intVecBaseSet(getVbr())
sysSymTbl=standAloneSymTbl
sysDevDramTest
0x0 bytes of development dram found
validateDataSpace
Outer Kernel DSACK Test
Pending Interrupt Test
Walk IPL to Zero Test
Timer Int Test
Start Power-On Diag Sequence
hwAccountant probe routines
  Probe for unexpected pending ints
  Dsp Instr mem size
  Dsp D2 mem size
  Dsp D1 mem size
  Dsy Vect0 mem size
  Dsy Vect1 mem size
  Dsy Wfm0 mem size
  Dsy Wfm1 mem size
  Dsy Text0 mem size
  Dsy Text1 mem size
  Acq number of digitizers
  Acq mem size
  Cpu timer interval uSec
  Cpu Dram size
  NvRam mem size
  Opt RS232/ Cent presence
  Acq 8051 presence
  Acq ADG209C presence
  Acq record length size
dsyWaitClock ................... pass
clockCalVerify ................. pass
cpuDiagBatTest ................. pass
cpuDiagAllInts ................. pass
cpuEEromLibDiag ................ pass
calLibDefaultCk ................ pass
dspForcedBus ................... pass
dsp68kD2MemTest ................ pass
optRS232DuartIO ................ UNTESTED
dsp68kMemTest .................. pass
dspRunVerify ................... pass
dspBusRequestTest .............. pass
dspImplicitBusAccess ........... pass
dspTristarMemTest .............. pass
dspDsyToDspInts ................ pass
dspAcqToDspInts ................ pass
nvLibrariansDiag ............... pass
dsyDiagResetReg ................ pass
atBusTest ...................... pass
dsyDiagResetReg ................ pass
dsyDiagVscReg .................. pass
dsyDiagPPRegMem ................ pass
dsyDiagRasRegMem ............... pass
dsyDiagRegSelect ............... pass
dsyDiagRamdacRegMem ............ pass
dsyDiagAllMem .................. pass
dsySeqYTModeV0Intens ........... pass
dsyDiagSeqXYModeV1 ............. pass
dsyRastModeV0Walk .............. pass
dsyRastModeV1Attrib ............ pass
dsyWaitClock ................... pass
attn8051testResult ............. pass
attnDACReadback ................ pass
acq8051testResult .............. pass
adgRegDiag ..................... pass
dsyWaitClock ................... pass
adgMemTestDiag ................. pass
trigComparatorTest ............. pass
trigDBERunsAfter ............... pass
tbiRampTest .................... pass
acqRampDiagAll ................. pass
dsyWaitClock ................... pass
fpDiagConf ..................... pass

$Header: scopeSTR.version,v 1.10 94/06/23 17:08:17 aland Exp $
->
Smalltalk/V Sun Version 1.12
Copyright (C) 1990 Object Technology International Inc.

and with selectet: (I selectet it after BOOT UP)
 
Code: [Select]
        Bootrom Header Checksum passed.
        Bootrom Total Checksum passed.
        BootRom Check Sum passed.
        Bus Error Timeout test passed.
        Bus Error Write to Bootrom passed.
        GPIB Test passed.
Kernel Diagnostics Complete.

Calling SDM (monitor) Routine.

SDM (monitor) not enabled.
        Enabling Bus Control register. Value = 0x2
+12V applied to Flashroms

Flashrom Programming Voltage is ON.
Cannot transfer control to Flashrom.
Transferring control to the SDM (monitor).

no sent help but nothing, send lkup you see all what i can type as command

[code]
-> help
undefined symbol: help
-> lkup
_verState       0x010029d7 text
_verSource      0x010029f7 text
_verRevision    0x010029e5 text
_verHeader      0x0100296c text
_verDate        0x010029bc text
_verAuthor      0x010029ab text
_v              0x01151d94 text
_ttExcludeSetup 0x01152ac2 text
_tt             0x01000a8a text
_ts             0x01005764 text
_tr             0x010057bc text
_ti             0x010058b2 text
_td             0x0100582a text
_sysNvRamSet    0x01002f6a text
_sysNvRamGet    0x01002f44 text
_syncClock      0x01152298 text
_sdata          0x02f01000 data
_scopeErrorLogDumpToConsole 0x01118fe8 text
_scopeErrorLogClear 0x0111867e text
_runScope       0x01002812 text
_repeatRun      0x01004f12 text
_repeat         0x01004f6a text
_repairSemOn    0x01168b6c text
_repairSemOff   0x01168b5e text
_pu_diag        0x0110d6a2 text
_periodi        0x01004ec2 text
_periodRun      0x01004e74 text
_patGen         0x0114819c text
_pL             0x02f121c4 bss
_mRegs          0x01006d30 text
_m              0x01005a3e text
_logIBuffer     0x0110d12a text
_lkup           0x01006618 text
_i              0x01005518 text
_dumpConstants  0x01141400 text
_dumpCalSet     0x011416a4 text
_devs           0x0100660a text
_debugMode      0x02f27e4c bss
_d              0x01005b6e text
_centronicsPutMsgHardcopy 0x01131b10 text
_centronicsPutC 0x01131a38 text
_bzero          0x0115ba9c text
_bfill          0x0115b944 text
_bcopy          0x0115b736 text
_bcmp           0x0115b9e6 text
value = 1 = 0x1

and type

-> libManagerWordAtPut(0x50006, 1)
undefined symbol: libManagerWordAtPut
->


 |O
« Last Edit: March 07, 2016, 10:15:45 pm by Gismo »
 

Online Andy Watson

  • Super Contributor
  • ***
  • Posts: 2123
Re: TDS420 with lost options
« Reply #5 on: March 08, 2016, 02:11:44 am »
The service manual indicates that those two dip switches allow the firmware to be updated - this may also be the route to enabling the optons - but be careful, you could also brick it.

Have you tried the yahoo tektronix group ?
 

Offline apaluch

  • Newbie
  • Posts: 1
  • Country: pl
Re: TDS420 with lost options
« Reply #6 on: December 11, 2018, 10:36:22 pm »
Hi

I have TDS420A with lost options (1M, 05, 2F). After reading Andy's post (thank you Andy) I succesfully recover 05 and 2F with GPIB commands:
    WORDCONSTANT:ATPUT 327687,1
    WORDCONSTANT:ATPUT 327689,1
But enabling 1M with command:
    WORDCONSTANT:ATPUT 327686,1
don't work.
Gismo, did you solved your problem?
(I tried the switches used to firmware update described in service manual but if device starts with them, GPIB don't work)
« Last Edit: December 12, 2018, 09:35:40 am by apaluch »
 

Offline capt bullshot

  • Super Contributor
  • ***
  • Posts: 3033
  • Country: de
    • Mostly useless stuff, but nice to have: wunderkis.de
Re: TDS420 with lost options
« Reply #7 on: December 29, 2019, 09:33:49 am »
From my own tests, TDS420 uses slightly different addresses. Didn't record each step, so I can't tell the exact values, but by setting each address from 327686 to 327695 to 1, FFT, Memory and Video trig. were enabled. Beware, either 327693 or 327694 enables RS232 / Centronics which leads to a POST message if the HW isn't installed.
Safety devices hinder evolution
 

Offline meltdown03

  • Newbie
  • Posts: 2
  • Country: us
Re: TDS420 with lost options
« Reply #8 on: March 15, 2023, 01:43:41 am »
I see you have/had F/W 2.5.5e on your TDS420 @Gismo. Can you upload a dump of the firmware rom by chance if you still have the scope? Here are some instructions that may apply: https://tomverbeure.github.io/2020/07/02/Extracting-the-Tektronix-TDS420A-Firmware.html
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf