7 :Tags: HP, 34970A, DMM, repair, test equipment |
7 :Tags: HP, 34970A, DMM, repair, test equipment |
8 :series: HP 34970A repair |
8 :series: HP 34970A repair |
9 :series_index: 3 |
9 :series_index: 3 |
10 |
10 |
11 |
11 |
12 As explained in `the previous post in this series <{filename}/hp34970a_2.rst>`_, I've started to sniff the serial |
12 As explained in `the previous post in this series <{filename}/hp34970a_2.rst>`_, |
13 protocol between the main board and the display panel so I can replace |
13 I've started to sniff the serial protocol between the main board and |
14 the failed VFD by an OLED or TFT display managed by an arduino or |
14 the display panel so I can replace the failed VFD by an OLED or TFT |
15 similar. |
15 display managed by an arduino or similar. |
16 |
16 |
17 Protocol |
17 Protocol |
18 ======== |
18 ======== |
19 |
19 |
20 The serial communication takes place at a rather unusual speed: 187.5 |
20 The serial communication takes place at a rather unusual speed: 187.5 |
42 themselves. |
42 themselves. |
43 |
43 |
44 - ``<0x55>``: end of transmission. |
44 - ``<0x55>``: end of transmission. |
45 |
45 |
46 |
46 |
47 I've only identified 2 commands for now, but these are the most |
47 I've only identified 3 commands for now, but these are the most |
48 important ones: |
48 important ones: |
49 |
49 |
50 - ``0x00``: send the chars to the main display |
50 - ``0x00``: send the chars to the main display |
51 - ``0x0C``: send the chars to the secondary channel display |
51 - ``0x0C``: send the chars to the secondary channel display |
|
52 - ``0x0A``: set the display indicators |
52 |
53 |
|
54 |
|
55 Main display |
|
56 ------------ |
|
57 |
|
58 Characters are simply sent to the display. However, to specify that a |
|
59 part of the string to display should be less bright (usually, the |
|
60 selected option is bright and the other ones are dim), the CPU insert |
|
61 a special character (need to check which hexadecimal value it is) at |
|
62 the beginning and the end of the dim part of the string. |
|
63 |
|
64 |
|
65 Channel display |
|
66 --------------- |
|
67 |
|
68 Seems there is nothing special there. The frame payload always consist |
|
69 in 3 characters (the 3 digits). |
|
70 |
|
71 |
|
72 Indicator flags |
|
73 --------------- |
|
74 |
|
75 The indicator flags are always sent as 4 bytes, each bit controlling |
|
76 one indicator. |
|
77 |
|
78 The indicator flags I've been able to identify so far |
|
79 are below. |
|
80 |
|
81 Let's say the frame is: ``<0x0A> <0x04> <F1> <F2> <F3> <F4>``, then: |
|
82 |
|
83 |
|
84 - F1.7 = |
|
85 - F1.6 = |
|
86 - F1.5 = |
|
87 - F1.4 = |
|
88 - F1.3 = |
|
89 - F1.2 = Mx+B enabled |
|
90 - F1.1 = Alarm enabled (or the alarm frame) |
|
91 |
|
92 - F2.5 = 4W |
|
93 - F2.4 = |
|
94 - F2.1 = |
|
95 |
|
96 - F3.6 = |
|
97 - F3.5 = |
|
98 |
|
99 - F4.7 = CONFIG (not sure) |
|
100 - F4.6 = |
|
101 - F4.5 = MON |
|
102 - F4.4 = VIEW |
|
103 - F4.3 = |
|
104 - F4.2 = |
|
105 - F4.1 = |
|
106 |
|
107 |
53 |
108 |
54 Quick prototype |
109 Quick prototype |
55 =============== |
110 =============== |
56 |
111 |
57 With this very incomplete reverse ingeeniring of the communication, I |
112 With this very incomplete reverse ingeeniring of the communication, I |