|
1 ========================================== |
|
2 HP 34970A Data Acquisition Unit - part 2 |
|
3 ========================================== |
|
4 |
|
5 :Author: David Douard |
|
6 :Category: Electronics |
|
7 :Tags: HP, 34970A, DMM, repair, test equipment |
|
8 :series: HP 34970A repair |
|
9 :series_index: 2 |
|
10 |
|
11 |
|
12 This is quick follow up of my previous blog post on my attempt to fix |
|
13 my recently acquired HP 34970A. |
|
14 |
|
15 In my hurry to replace the failing FRAM (FM24C04) chips, I also |
|
16 replaced the FRAM chip on one of my 2 plugin modules. |
|
17 |
|
18 Bad idea: the module then provoques an error on startup (something |
|
19 related to the memory being incorrect). |
|
20 |
|
21 So I decided to try to dump the content of the memory on copy it into |
|
22 a brand new chip. The FRAM chips on the plugin modules are much less |
|
23 prone to fail, but I would not have been pleased to be obliged to |
|
24 reinstall the original chip... |
|
25 |
|
26 At this point, I had 2 problems: |
|
27 |
|
28 - I don't have a universal programmer (yet), |
|
29 |
|
30 - I don't which one of the 3 FM24C04 is the one from the plugin |
|
31 modules (the other 2 are from the main board and the DMM). |
|
32 |
|
33 Dumping the FRAM chips |
|
34 ====================== |
|
35 |
|
36 I don't have a programmer, but I have some Arduino Uno laying |
|
37 around. So let's use it as a poor man's mem dumper/programmer. |
|
38 |
|
39 My first problem has been to build a setup to install the SOIC8 chips |
|
40 on, connect the 2 pull-up resistors and wire it to the Arduino. |
|
41 |
|
42 I ended with this: |
|
43 |
|
44 .. image:: {filename}/images/hp34970a/soic8_breadboard.jpg |
|
45 :alt: the breadboard-based setup to dump/write the FM24C04 chips. |
|
46 |
|
47 And with a FM24C04 chip soldered on: |
|
48 |
|
49 .. image:: {filename}/images/hp34970a/soic8_breadboard_populated.jpg |
|
50 :alt: the breadboard-based setup with a FM24C04 to be dumped. |
|
51 |
|
52 I've been using a small library named extEEPROM_ dedicated to |
|
53 reading/writing I2C EEPROM chips. My problem was I was not able to get |
|
54 any acnkoledge from any FM24C04 I "plugged" on my board. It was |
|
55 working properly with a MAG3110 or a PCF8563 I have, but not wth the |
|
56 FM24C04. |
|
57 |
|
58 According to the datasheet I have (FM24C04U from Fairchild), the chip |
|
59 is supposed to accept a wide range of voltage (from 2.7v to 5.5v), so |
|
60 I used the 3.3v pin of the Arduino to power the chip. That was the |
|
61 problem: using a 5v power rail made meable to dump the content of the |
|
62 chips. |
|
63 |
|
64 .. image:: {filename}/images/hp34970a/fm24c04_dump.jpg |
|
65 :alt: dumping the content of a FM24C04 |
|
66 |
|
67 Restoring the dumped content in a new FM24C04 |
|
68 ============================================= |
|
69 |
|
70 Now I have 3 candidates. |
|
71 |
|
72 First:: |
|
73 |
|
74 0x0000 3C 84 7C 6C 57 57 6C 7C 84 3C 3F 71 BD 2A 68 68 |
|
75 0x0010 2A BD 71 3F 3C F8 27 74 30 30 74 27 F8 3C 3F 71 |
|
76 0x0020 9D 81 31 31 81 9D 71 3F 00 00 00 00 00 00 00 00 |
|
77 0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 |
|
78 0x0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
79 0x0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
80 0x0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
81 0x0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
82 0x0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
83 0x0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
84 0x00A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
85 0x00B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
86 0x00C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
87 0x00D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
88 0x00E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
89 0x00F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
90 0x0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
91 0x0110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
92 0x0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
93 0x0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
94 0x0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
95 0x0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
96 0x0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
97 0x0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
98 0x0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
99 0x0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|
100 0x01A0 F8 F7 10 10 F7 F8 FC DF 24 24 DF FC 00 00 00 00 |
|
101 0x01B0 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 |
|
102 0x01C0 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 |
|
103 0x01D0 00 FF 00 FF FF 00 00 FF 00 00 00 00 00 00 00 00 |
|
104 0x01E0 FF FF FF FF FF FF FF FF 00 00 00 00 39 39 30 33 |
|
105 0x01F0 30 32 30 33 31 34 33 36 E8 00 00 00 00 00 00 00 |
|
106 |
|
107 |
|
108 Second:: |
|
109 |
|
110 0x0000 86 00 00 00 00 86 00 00 86 00 00 00 00 A6 00 00 |
|
111 0x0010 86 00 00 00 02 86 00 00 86 00 00 00 07 86 00 00 |
|
112 0x0020 86 00 00 00 00 86 00 00 86 00 00 00 05 86 00 00 |
|
113 0x0030 86 00 00 00 05 86 00 00 86 00 00 00 07 86 00 00 |
|
114 0x0040 86 00 00 00 07 86 00 00 86 00 00 00 07 86 00 00 |
|
115 0x0050 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
116 0x0060 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
117 0x0070 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
118 0x0080 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
119 0x0090 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
120 0x00A0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
121 0x00B0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
122 0x00C0 86 00 00 00 A7 A6 00 00 00 00 00 00 00 00 00 00 |
|
123 0x00D0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
124 0x00E0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
125 0x00F0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
126 0x0100 FF FF FF FF FF FF FF 7F 00 00 00 00 00 00 00 00 |
|
127 0x0110 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
128 0x0120 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
129 0x0130 FF FF FF FF FF FF FF FF 01 00 00 00 00 00 00 00 |
|
130 0x0140 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
131 0x0150 FF FF FF FF FF FF FF FF 01 00 00 00 00 00 00 00 |
|
132 0x0160 FF FF FF FF FF FF FF FF 01 00 00 00 00 00 00 00 |
|
133 0x0170 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
134 0x0180 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
135 0x0190 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
136 0x01A0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
137 0x01B0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
138 0x01C0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
139 0x01D0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
140 0x01E0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
141 0x01F0 FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 |
|
142 |
|
143 |
|
144 Third:: |
|
145 |
|
146 0x0000 01 0C 00 00 00 1A 00 00 22 1A 00 0A 80 46 FE 77 |
|
147 0x0010 37 B5 57 DB CA 6E FB 6F 3F EC F9 FB DE FF FF 77 |
|
148 0x0020 F7 04 7D FF FB FE FA 67 77 FD DD FB DF FF FF 76 |
|
149 0x0030 37 BC 59 FB FF 7E FA 66 37 E5 D9 FF FB EE FF F7 |
|
150 0x0040 BF 45 77 FB FA FF FA 77 3F ED 51 FF DE FF FF FE |
|
151 0x0050 37 27 51 DB DF FE FA 66 B7 EC 7F FB EE FE FE F6 |
|
152 0x0060 37 F5 D2 FF CB EE FE 6F FF 65 71 FF FF FF FE 7F |
|
153 0x0070 3F 4E 71 FF CF FE FF 67 BF BD 5D FF FE FE FE 7F |
|
154 0x0080 37 04 55 DF EA EE FF 6E F7 E5 7F FF DE FF FE 7E |
|
155 0x0090 FF 0C 70 FF FF FF FA 6E FF FD 7F FF DE FE FF 76 |
|
156 0x00A0 3F 3D 71 DF FE FE FB 6E B7 E5 FD FB DF FF FE FF |
|
157 0x00B0 FF 7F FF DB DB FF FE 6F BF FD F9 FB EA FF FE FE |
|
158 0x00C0 F7 E3 FB BB FF FE FB 66 F7 6C D1 FB DF FE FE F6 |
|
159 0x00D0 B7 64 7D EB DF FE FB 76 3F F5 F1 FF DB FE FF E6 |
|
160 0x00E0 BF C6 D6 DB CA EF FA 76 B7 F5 7F FF FE FE FF 7F |
|
161 0x00F0 B7 6E 41 DB CA 7E FB EE FF FF FF FF FF FF FF 7F |
|
162 0x0100 11 00 00 00 00 00 C0 00 FF FF FF FF FF FF FF FF |
|
163 0x0110 11 00 00 02 00 00 00 20 FF FF FF FF FF FF FF FF |
|
164 0x0120 11 00 00 00 02 00 00 00 FF FF FF FF FF FF FF FF |
|
165 0x0130 11 00 00 02 00 20 18 00 FF FF FF FF FF FF FF FF |
|
166 0x0140 11 00 00 02 80 00 08 00 FF FF FF FF FF FF FF FF |
|
167 0x0150 11 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF |
|
168 0x0160 11 00 00 00 02 00 50 00 FF FF FF FF FF FF FF FF |
|
169 0x0170 11 00 00 02 00 00 00 00 FF FF FF FF FF FF FF FF |
|
170 0x0180 11 00 00 00 00 00 D0 00 FF FF FF FF FF FF FF FF |
|
171 0x0190 01 00 00 00 00 08 08 02 FF FF FF FF FF FF FF FF |
|
172 0x01A0 11 00 00 00 00 00 08 20 FF FF FF FF FF FF FF FF |
|
173 0x01B0 11 00 00 00 00 00 08 00 FF FF FF FF FF FF FF FF |
|
174 0x01C0 13 00 00 08 02 00 08 00 FF FF FF FF FF FF FF FF |
|
175 0x01D0 11 00 00 08 00 00 18 00 FF FF FF FF FF FF FF FF |
|
176 0x01E0 11 00 00 00 00 00 90 00 FF FF FF FF FF FF FF FF |
|
177 0x01F0 01 00 00 00 00 00 08 00 FF FF FF FF FF FF FF FF |
|
178 |
|
179 |
|
180 The notable thing about the first one is the absence of long 0xFF |
|
181 patterns. So I chose it as a first guess, and I was right. |
|
182 |
|
183 Now my HP 34970A does not complainany more at all on startup! |
|
184 |
|
185 So I "just" have to fix the display (and recalibrate it). But "just" |
|
186 fixing the display looks a not so easy task, since my display unit |
|
187 microcontroller (U1) seems to be partially dead. |
|
188 |
|
189 But that's an other story. |
|
190 |
|
191 .. _extEEPROM: https://github.com/JChristensen/extEEPROM |