Products > Test Equipment
TDS420 with lost options
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
[0] Message Index
[#] Next page
Go to full version