| Products > Test Equipment |
| TDS420 with lost options |
| (1/2) > >> |
| Gismo:
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: |
| Andy Watson:
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: ---/* 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); } --- End code --- |
| Gismo:
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. |
| Andy Watson:
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 |
| Gismo:
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: --- 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. --- End code --- and with selectet: (I selectet it after BOOT UP) --- Code: --- 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 --- End code --- and type -> libManagerWordAtPut(0x50006, 1) undefined symbol: libManagerWordAtPut -> |O |
| Navigation |
| Message Index |
| Next page |