Wed, 16 Oct 2019 21:53:47 +0200
content: use {static} instead of {filename} in image paths
========================================== HP 34970A Data Acquisition Unit - part 2 ========================================== :Author: David Douard :Category: Electronics :Tags: HP, 34970A, DMM, repair, test equipment :series: HP 34970A repair :series_index: 2 This is quick follow up of my `previous blog post <{static}/hp34970a.rst>`_ on my attempt to fix my recently acquired HP 34970A. In my hurry to replace the failing FRAM (FM24C04) chips, I also replaced the FRAM chip on one of my 2 plugin modules. Bad idea: the module then provoques an error on startup (something related to the memory being incorrect). So I decided to try to dump the content of the memory on copy it into a brand new chip. The FRAM chips on the plugin modules are much less prone to fail, but I would not have been pleased to be obliged to reinstall the original chip... At this point, I had 2 problems: - I don't have a universal programmer (yet), - I don't which one of the 3 FM24C04 is the one from the plugin modules (the other 2 are from the main board and the DMM). Dumping the FRAM chips ====================== I don't have a programmer, but I have some Arduino Uno laying around. So let's use it as a poor man's mem dumper/programmer. My first problem has been to build a setup to install the SOIC8 chips on, connect the 2 pull-up resistors and wire it to the Arduino. I ended with this: .. image:: {static}/images/hp34970a/soic8_breadboard.jpg :alt: the breadboard-based setup to dump/write the FM24C04 chips. And with a FM24C04 chip soldered on: .. image:: {static}/images/hp34970a/soic8_breadboard_populated.jpg :alt: the breadboard-based setup with a FM24C04 to be dumped. I've been using a small library named extEEPROM_ dedicated to reading/writing I2C EEPROM chips. My problem was I was not able to get any acnkoledge from any FM24C04 I "plugged" on my board. It was working properly with a MAG3110 or a PCF8563 I have, but not wth the FM24C04. According to the datasheet I have (FM24C04U from Fairchild), the chip is supposed to accept a wide range of voltage (from 2.7v to 5.5v), so I used the 3.3v pin of the Arduino to power the chip. That was the problem: using a 5v power rail made meable to dump the content of the chips. .. image:: {static}/images/hp34970a/fm24c04_dump.jpg :alt: dumping the content of a FM24C04 Restoring the dumped content in a new FM24C04 ============================================= Now I have 3 candidates. First:: 0x0000 3C 84 7C 6C 57 57 6C 7C 84 3C 3F 71 BD 2A 68 68 0x0010 2A BD 71 3F 3C F8 27 74 30 30 74 27 F8 3C 3F 71 0x0020 9D 81 31 31 81 9D 71 3F 00 00 00 00 00 00 00 00 0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 0x0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x00A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x00B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x00C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x00D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x00E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x00F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x01A0 F8 F7 10 10 F7 F8 FC DF 24 24 DF FC 00 00 00 00 0x01B0 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 0x01C0 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 0x01D0 00 FF 00 FF FF 00 00 FF 00 00 00 00 00 00 00 00 0x01E0 FF FF FF FF FF FF FF FF 00 00 00 00 39 39 30 33 0x01F0 30 32 30 33 31 34 33 36 E8 00 00 00 00 00 00 00 Second:: 0x0000 86 00 00 00 00 86 00 00 86 00 00 00 00 A6 00 00 0x0010 86 00 00 00 02 86 00 00 86 00 00 00 07 86 00 00 0x0020 86 00 00 00 00 86 00 00 86 00 00 00 05 86 00 00 0x0030 86 00 00 00 05 86 00 00 86 00 00 00 07 86 00 00 0x0040 86 00 00 00 07 86 00 00 86 00 00 00 07 86 00 00 0x0050 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0060 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0070 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0080 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0090 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x00A0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x00B0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x00C0 86 00 00 00 A7 A6 00 00 00 00 00 00 00 00 00 00 0x00D0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x00E0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x00F0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0100 FF FF FF FF FF FF FF 7F 00 00 00 00 00 00 00 00 0x0110 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0120 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0130 FF FF FF FF FF FF FF FF 01 00 00 00 00 00 00 00 0x0140 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0150 FF FF FF FF FF FF FF FF 01 00 00 00 00 00 00 00 0x0160 FF FF FF FF FF FF FF FF 01 00 00 00 00 00 00 00 0x0170 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0180 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x0190 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x01A0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x01B0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x01C0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x01D0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x01E0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 0x01F0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 Third:: 0x0000 01 0C 00 00 00 1A 00 00 22 1A 00 0A 80 46 FE 77 0x0010 37 B5 57 DB CA 6E FB 6F 3F EC F9 FB DE FF FF 77 0x0020 F7 04 7D FF FB FE FA 67 77 FD DD FB DF FF FF 76 0x0030 37 BC 59 FB FF 7E FA 66 37 E5 D9 FF FB EE FF F7 0x0040 BF 45 77 FB FA FF FA 77 3F ED 51 FF DE FF FF FE 0x0050 37 27 51 DB DF FE FA 66 B7 EC 7F FB EE FE FE F6 0x0060 37 F5 D2 FF CB EE FE 6F FF 65 71 FF FF FF FE 7F 0x0070 3F 4E 71 FF CF FE FF 67 BF BD 5D FF FE FE FE 7F 0x0080 37 04 55 DF EA EE FF 6E F7 E5 7F FF DE FF FE 7E 0x0090 FF 0C 70 FF FF FF FA 6E FF FD 7F FF DE FE FF 76 0x00A0 3F 3D 71 DF FE FE FB 6E B7 E5 FD FB DF FF FE FF 0x00B0 FF 7F FF DB DB FF FE 6F BF FD F9 FB EA FF FE FE 0x00C0 F7 E3 FB BB FF FE FB 66 F7 6C D1 FB DF FE FE F6 0x00D0 B7 64 7D EB DF FE FB 76 3F F5 F1 FF DB FE FF E6 0x00E0 BF C6 D6 DB CA EF FA 76 B7 F5 7F FF FE FE FF 7F 0x00F0 B7 6E 41 DB CA 7E FB EE FF FF FF FF FF FF FF 7F 0x0100 11 00 00 00 00 00 C0 00 FF FF FF FF FF FF FF FF 0x0110 11 00 00 02 00 00 00 20 FF FF FF FF FF FF FF FF 0x0120 11 00 00 00 02 00 00 00 FF FF FF FF FF FF FF FF 0x0130 11 00 00 02 00 20 18 00 FF FF FF FF FF FF FF FF 0x0140 11 00 00 02 80 00 08 00 FF FF FF FF FF FF FF FF 0x0150 11 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF 0x0160 11 00 00 00 02 00 50 00 FF FF FF FF FF FF FF FF 0x0170 11 00 00 02 00 00 00 00 FF FF FF FF FF FF FF FF 0x0180 11 00 00 00 00 00 D0 00 FF FF FF FF FF FF FF FF 0x0190 01 00 00 00 00 08 08 02 FF FF FF FF FF FF FF FF 0x01A0 11 00 00 00 00 00 08 20 FF FF FF FF FF FF FF FF 0x01B0 11 00 00 00 00 00 08 00 FF FF FF FF FF FF FF FF 0x01C0 13 00 00 08 02 00 08 00 FF FF FF FF FF FF FF FF 0x01D0 11 00 00 08 00 00 18 00 FF FF FF FF FF FF FF FF 0x01E0 11 00 00 00 00 00 90 00 FF FF FF FF FF FF FF FF 0x01F0 01 00 00 00 00 00 08 00 FF FF FF FF FF FF FF FF The notable thing about the first one is the absence of long 0xFF patterns. So I chose it as a first guess, and I was right. Now my HP 34970A does not complainany more at all on startup! So I "just" have to fix the display (and recalibrate it). But "just" fixing the display looks a not so easy task, since my display unit microcontroller (U1) seems to be partially dead. But that's an other story. .. _extEEPROM: https://github.com/JChristensen/extEEPROM