HP 34401A Repair - Page 1
Forum section: electronics / repair

author: corn11
author_rank: Regular Contributor
timestamp: June 30, 2014, 04:49:04 pm
content: Hello everyone,my first post in this forum! (I'm following the eevblog for about three years now)I recently scored a broken 34401A on eBay, as an addition to my little lab equipment collection.It was sold as "no display" so I checked all the rails and found out that the front panel uC (U602) drew too much current.When I power the the uC with my bench supply the VFD test works fine. The keypad scanning works also despite of one key drive pin which is also gone.But there is no activity on the front panel bus nor on the serial control bus.I figured out that the reset line is pulled every milisecond. First I thought the vreg (U553 / LM2925T [with power on reset]) causes the problem but after removing the resistor between the vreg reset line and the micro(80C196 / U500) / asic(U501) the problem was still there. I think the micro resets itself or it's watchdog.But I can't find the reason why?!The rom (rev. 10) and the ram work properly (I suppose / checked some pins) and also the earth referenced circuit is transmitting a data sequence through the optos, but there is also no activity on the cal eeprom bus.I've checked the HP/Agilent Yahoo group but I only found a problem with the LM2925T and the reset line.I would be glad if someone has a hint for me.regards and thanks in advanceCornelius

author: free_electron
author_rank: Super Contributor
timestamp: June 30, 2014, 05:03:49 pm
content: is this the front with the single chip uPD7xxx from NEC or is it the one with the 8051 and two supertex (or TI) 75888 (Basically there is either 1 chip in tqfp or 3 chips in PLCCif it is the one with the upd : Trash. cannot be fixed. these things die. bad chip. these panels are also NOT compatible with the new ones ( 8051 based). software updates don't help.if it is the one with the 8051 : check the LM339 level shifters. if one goes wonky communication doesn't start. you should have a double beep at power upthis manual has BOTH schematics :http://cp.literature.agilent.com/litweb/pdf/34401-90013.pdfChapter 8 has the upD75xx based one while chapter 9 has the new one.

author: corn11
author_rank: Regular Contributor
timestamp: July 01, 2014, 11:22:29 pm
content: Thanks for the quick answer!My unit was manufactured round about late 1999.The front panel part no. is 34401-66512 (Rev. A) and the mainboard part no is 34401-66501 (Rev. D).I checked the lm339 and it seemed to be ok but to be 100% sure I replaced it with a new one.The behaviour is still the same: Reset signal of the main micro (U500) is toggling and only one beep at startup.regardsCornelius

author: corn11
author_rank: Regular Contributor
timestamp: July 04, 2014, 12:19:38 pm
content: I've tried a few other things but the situation is the same as beforeSome days ago I've written a mail to Agilent but no response yet.Does anybody have another idea what might be the culprit?I would be glad if someone can provide me a dump of the main eprom.Any other help would be much appreciated!ThanksCornelius

author: Orange
author_rank: Frequent Contributor
timestamp: July 04, 2014, 02:01:37 pm
content: I had a 34401A on which the flat-cable connector between the display board and the main board had issues. I tried to replace it with a standard 0.1'' connector, but HP decided that this connector needed to be a an odd value pitch (i think it was 2 mm) Anyhow. I removed the connector, and soldered the cable directly on the board. Problem solved.Bad construction of this cheap connector.This is probably not your problem, but it's worth a try, to rule out the connector.

author: corn11
author_rank: Regular Contributor
timestamp: July 04, 2014, 09:46:14 pm
content: Thank you for the tip!I'll try it tomorrow and let you know.Do you remember whether the meter booted up correctly without the front panel (except for the front panel error code) ?

author: corn11
author_rank: Regular Contributor
timestamp: July 09, 2014, 09:07:22 am
content: Unfortunately you were right, it wasn't the cable

author: tszaboo
author_rank: Super Contributor
timestamp: July 09, 2014, 09:45:02 am
content: I'm not sure if this is helping, but: You can find a fully detailed schematic flying around on the web and service guide for the 34401A on their website. You should read both first.

author: vtp
author_rank: Regular Contributor
timestamp: February 17, 2015, 06:12:52 pm
content: Hello,Did you ever sort this out?I have about the same age unit from late 1999 and front panel appears not to be communicating properly with the In Guard MCU. At power up the meter beeps twice. All segments on the VFD light up when powering the meter and then turn off. Shift-key works or at least illuminates shift-indicator on the VFD. I guess this is the only function handled locally by the FP MCU.Later when debugging the front panel I noticed that if I cycle the power fast it beeps only once. However, I now have the VFD removed so I cannot determine (well, could possibly with GPIB) if the meter works with warmish boot. This could indicate something wrong in power up of the FP MCU but then again, reset appears to work just fine when scoping it.I have scoped the level shifters and all other components on the signal chain and they work perfectly. As good are all the voltages on the FP board. IG-MCU is mostly sending 0x00 to FP and FP is almost always replying with 0xDD. HC299 load appears to work ok too.I am starting to think there is something wrong internally in possibly with FPDI-input of the FP MCU or the MCU it otherwise internally corrupted.Has anyone got dump of the FP MCU ROM contents?The FP MCU is Intel 80C51BH (not -P) so it could be possible to run verify on the ROM and so get the data. My meter's FP is not a good canditate for this as it may be faulty.I have tested the meter with front panel from other meter and then it worked fine. So, the fault is in the front panel. Or at least probability is highly on that side.

author: corn11
author_rank: Regular Contributor
timestamp: February 18, 2015, 01:41:13 am
content: Hello,I've solved my problem a while ago. (Sorry that I had forgotten to post it here )My meter had a faulty SRAM chip and as I've mentioned before one faulty output pin (KEY_DRV Pin 42) at the FP Controller (maybe that pin had died as a result of a latch up ).Did you check the oscillator and also the sent and received data against the SIO(x) signals?Maybe you should also check what 'free_electron' has suggested here:https://www.eevblog.com/forum/projects/help-on-n80c51bh-programming/QuoteI think with a faulty MCU (and no time) you better should buy a new FP, replacement mcus are really hard to get because they have a masked rom as you certainly know.Another solution would be to salvage the mcu from a FP with a dim VFD from another instrument with that same MCU on it or buy a AT89 or so and to program your own FP controller.

author: vtp
author_rank: Regular Contributor
timestamp: February 18, 2015, 08:46:11 pm
content: Hello,Thanks for your update.Quote from: corn11 on February 18, 2015, 01:41:13 amOscillator was finely oscillating at 12 MHz. SIO[7...0] I did not check and compare against what went out of the shift register, perhaps I should have.About faulty MCU (it is N80C51BH, 34401-88813 REV 2.0) or it's availability, I am not so sure now as I took it off and read the ROM contents. Disassembly appears to be ok but of course there could be an error in it - though it looks now unlikely. At least now I can check what is supposed to go out of FPDO line.Perhaps the HC299 was not shifting out what is should have. Stuck key also causes front panel not to respond, I did not check key scanning lines either.I guess I need to order some parts now.

author: free_electron
author_rank: Super Contributor
timestamp: February 18, 2015, 09:22:41 pm
content: you dumped a 'c' version ? how did you do that ?i know the trick to dump the old H by booting them from external eprom and runninx XMOV operations.afaik that trick no longer works on the C. It will still give data but it will be garbage.

author: vtp
author_rank: Regular Contributor
timestamp: February 20, 2015, 03:00:40 pm
content: Quote from: free_electron on February 18, 2015, 09:22:41 pmI do not know what you mean with a 'c' version. But yes, I dumped something.Quote from: free_electron on February 18, 2015, 09:22:41 pmI was a highly technical and top secret process of removing the IC, putting it into a PLCC44 to DIP adapter, inserting the adapter on my Labtool-48UXP programmer, selecting Intel 87C51 and hitting read button.But first, I had to RTFM and assume nothing - which are also two of the basic rules of any troubleshooting.Let me quote Intel Embedded Microcontrollers 1995 book, page 2-42:"The 80C51BHP is identical to the 80C51BH with the exception of the Protection Feature. To incorporate this Protection Feature, program verification has been disabled..."Since the MCU is -BH I am not that surprised that it was directly readable.Looking at the code, it seems to consist of setup, then main loop which is refreshing the display. Main loop contains calls to keyscanning and serial communications. It's full ofstarsstate machines and a bit difficult to read thus.Here's a snippet:Code:code:0273 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦code:0273code:0273 ; In-Guard transmit/receivecode:0273code:0273 code_273: ; CODE XREF: code:023Epcode:0273 push PSWcode:0275 mov PSW, #0x18code:0278 jb INTMEM_21.5, code_2D7code:027B jb INTMEM_21.4, code_2ACcode:027E jb INTMEM_21.3, code_2ACcode:0281 jbc INTMEM_21.2, code_298code:0284 jb INT1, code_291 ; P3.3 - EXTERNAL INTERRUPT 1 INPUTcode:0287 setb T1 ; P3.5 - TIMER 1 COUNT INPUTcode:0289 mov P2, #0xFFcode:028C setb T0 ; P3.4 - TIMER 0 COUNT INPUTcode:028E pop PSWcode:0290 retcode:0291 ; ---------------------------------------------------------------------------code:0291code:0291 code_291: ; CODE XREF: code_273+11jcode:0291 jb INTMEM_21.3, code_2ACcode:0294 setb INTMEM_21.4code:0296 sjmp code_2ACcode:0298 ; ---------------------------------------------------------------------------code:0298code:0298 code_298: ; CODE XREF: code_273+Ejcode:0298 setb INTMEM_21.3code:029A mov INTMEM_58, INTMEM_55code:029D mov INTMEM_5A, #0x77 ; 'w'code:02A0 jnb INTMEM_22.5, code_2AAcode:02A3 mov INTMEM_5A, #0xA5 ; 'Ñ'code:02A6 setb INTMEM_22.6code:02A8 clr INTMEM_22.5code:02AAcode:02AA code_2AA: ; CODE XREF: code_273+2Djcode:02AA mov R2, #1code:02ACcode:02AC code_2AC: ; CODE XREF: code_273+8jcode:02AC ; code_273+Bj ...code:02AC setb T1 ; P3.5 - TIMER 1 COUNT INPUTcode:02AE mov P2, #0x7F ; ''code:02B1 clr T0 ; P3.4 - TIMER 0 COUNT INPUTcode:02B3 setb T0 ; P3.4 - TIMER 0 COUNT INPUTcode:02B5 mov P2, #0xFFcode:02B8 clr T1 ; P3.5 - TIMER 1 COUNT INPUTcode:02BA clr EA ; IE.7 - GLOBAL INTERRUPT ENABLEcode:02BC clr T0 ; P3.4 - TIMER 0 COUNT INPUTcode:02BE setb T0 ; P3.4 - TIMER 0 COUNT INPUTcode:02C0 setb T1 ; P3.5 - TIMER 1 COUNT INPUTcode:02C2 mov P2, INTMEM_5Acode:02C5 clr T0 ; P3.4 - TIMER 0 COUNT INPUTcode:02C7 setb T0 ; P3.4 - TIMER 0 COUNT INPUTcode:02C9 clr T1 ; P3.5 - TIMER 1 COUNT INPUTcode:02CB setb TR0 ; TCON.4 - TIMER 0 ON/OFF CONTROLcode:02CD mov P2, #0xFFcode:02D0 setb INTMEM_21.5code:02D2 setb EA ; IE.7 - GLOBAL INTERRUPT ENABLEcode:02D4 pop PSWcode:02D6 retcode:02D7 ; ---------------------------------------------------------------------------code:02D7code:02D7 code_2D7: ; CODE XREF: code_273+5jcode:02D7 mov A, TL0 ; Timer0 - Low Bytecode:02D9 anl A, #0xF8code:02DB jz code_2EEcode:02DD clr TR0 ; TCON.4 - TIMER 0 ON/OFF CONTROLcode:02DF mov TL0, #0 ; Timer0 - Low Bytecode:02E2 mov R3, P2code:02E4 setb T1 ; P3.5 - TIMER 1 COUNT INPUTcode:02E6 clr INTMEM_21.5code:02E8 mov DPTR, #0x2F1code:02EB mov A, R2code:02EC rl Acode:02ED jmp @A+DPTRcode:02EE ; ---------------------------------------------------------------------------code:02EEcode:02EE code_2EE: ; CODE XREF: code_273+68jcode:02EE pop PSWcode:02F0 retcode:02F0 ; End of function code_273code:02F0At 0x02AC is shift register load and looks like two payload bytes go back to IG.

author: free_electron
author_rank: Super Contributor
timestamp: February 20, 2015, 03:06:19 pm
content: aha.i have such a labtool programmer myself.good to know. i will dump the code. Shahriar (thesignalpath) has a power supply that killed the 8051. that way we can duplicate these.Actually : you may want to contact him. simply flash it into a 8751 and it will work.

author: vtp
author_rank: Regular Contributor
timestamp: June 09, 2015, 03:57:47 pm
content: Just to provide an update on this.Whatever I read from the old chip apparently was ok since programming it to an AT89C51RC-24JU and soldering the newly programmed chip on display board cured the meter.So, I obviously had a broken 8051 but was lucky enough to get the firmware out of it.

author: corn11
author_rank: Regular Contributor
timestamp: June 09, 2015, 05:29:14 pm
content: Sounds great!Unfortunately I hadn't got the time yet to try the fix on my display board but I'll let you know if it works.Thanks for the update!Cornelius

author: bingo600
author_rank: Super Contributor
timestamp: June 10, 2015, 01:47:48 pm
content: Quote from: vtp on June 09, 2015, 03:57:47 pmAny chance of an upload of the code , you read ?/Bingo

author: Pitsie
author_rank: Newbie
timestamp: October 14, 2015, 06:45:44 pm
content: Quote from: vtp on February 20, 2015, 03:00:40 pmHi vtp and all,Sorry to revive such an old thread, but I have a similar problem as you had and perhaps you can help..I have a broken display controller on an E3633A, and when reading the ROM contents it it is obvious that one bit is stuck at "1", which is probably also the reason that the display does not work, broken output driver on port 0... It would help me immensely if you could share what you read out from your 80C51. If you are not comfortable with sharing that, I actually only need the values for bit 3 .. so even your readout but everything "anded with 0x08" would be enough to get me going again.Thanks!

author: Pitsie
author_rank: Newbie
timestamp: October 15, 2015, 10:41:51 am
content: Quote from: vtp on February 20, 2015, 03:00:40 pmInteresting though, i have the same code as you read (after fiddling the stick bit 3 obviously but at a different offset, your code:273 is 279 in mine:Code:code:00000279 C0 D0 push PSWcode:0000027Bcode:0000027B code_27B:code:0000027B 75 D0 18 mov PSW, #0x18code:0000027E 20 0D 5C jb RAM_21.5, code_2DDcode:00000281code:00000281 code_281: ;code:00000281 20 0C 2E jb RAM_21.4, code_2B2code:00000284code:00000284 code_284: ;code:00000284 20 0B 2B jb RAM_21.3, code_2B2code:00000287code:00000287 code_287: ;code:00000287 10 0A 1C jbc RAM_21.2, code_2A5+1

author: rich1
author_rank: Newbie
timestamp: October 18, 2015, 01:52:23 pm
content: Hello everyone,I also have an 34401A with an defect display.The 8051 is defect (it is shorting the power of the display PCB), this is probably caused by shorting the main GND and (shifted) display GND.Can anyone share the display firmware, so I can replace the broken processor?Many thanks in advance.

author: douardda
author_rank: Regular Contributor
timestamp: June 21, 2016, 12:20:56 pm
content: Hi rich1, did you ever find a working and complete dump of the DP 80c51's ROM?David

author: bushjavier
author_rank: Newbie
timestamp: July 23, 2017, 12:35:52 am
content: attached the firmware for the display MCU