Wed, 11 Apr 2018 23:09:27 +0200
[hp8662a] minor improvements
68
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
1 | ========================================================== |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
2 | HP 34970A Data Acquisition Unit - communication protocol |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
3 | ========================================================== |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
4 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
5 | :Author: David Douard |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
6 | :Category: Electronics |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
7 | :Tags: HP, 34970A, DMM, repair, test equipment |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
8 | :series: HP 34970A repair |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
9 | :JavaScripts: default.js, WaveDrom.js |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
10 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
11 | In order to build a replacement display for the HP34970A data |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
12 | acquisition unit, I needed to understand the communication protocol |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
13 | between the CPU board and the front panel assembly. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
14 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
15 | General description |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
16 | =================== |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
17 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
18 | The unit is built with four boards: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
19 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
20 | - A1 is the main bard, with the PSU, the main controller and the floating logic, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
21 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
22 | - A2 is the front panel with the display and the keypad, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
23 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
24 | - A3 is the backplane on which I/O modules are plugged, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
25 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
26 | - A4 is the (optional) internal 6.5 digits DMM. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
27 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
28 | .. image:: {filename}/images/hp34970a/block_diagram.svg |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
29 | :alt: System Block Diagram of the HP34970A. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
30 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
31 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
32 | The commnucation between the different system blocks is done with |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
33 | asynchronous serial links. They use the rather uncommon bit rate of |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
34 | 187500 baud, with a classic 8N1 schema. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
35 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
36 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
37 | The CPU <-> Display Panel communication protocol |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
38 | ================================================ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
39 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
40 | The communication protocol between the main controller (CPU) board and |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
41 | the display panel (DP) consists in "datagrams" sent using the general |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
42 | pattern: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
43 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
44 | - when a device (CPU or DP) wants to take control of the communication |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
45 | bus, it sends a ``Start of Transmission`` (SoT) signal (0x66), |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
46 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
47 | - each sent char (but the end of transmission) must be acknowledged |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
48 | (ack value may vary), |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
49 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
50 | - at the end of a communication, the initiator send a "End of |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
51 | Transmission" (EoT, 0x55). This sent value is not acknowledged. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
52 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
53 | - the keyboard can interrupt a CPU->DP communication in progress by |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
54 | not acknowledge a received byte, but sending a SoT instead of the |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
55 | expected ACK value, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
56 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
57 | - acknowledge values are: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
58 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
59 | - 0x99 as a response to the SoT, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
60 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
61 | - 0x00 otherise |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
62 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
63 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
64 | The CPU->DP transmission protocol looks like: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
65 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
66 | .. wavedrom:: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
67 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
68 | { signal: [ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
69 | {name: "Rx", wave: "z3x4x4x=x=x|.=x3x", data: ["0x66", "CMD", "LEN", "D0", "D1", "Dn", "0x55"] }, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
70 | {name: "Tx", wave: "zx5x5x5x5x5x|.5x.", data: ["0x99", "0x00","0x00", "0x00", "0x00", "0x00"] }, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
71 | ]} |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
72 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
73 | Two (or more) datagrams can be transmitted in a single "transmission", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
74 | ie. without sending the EoT byte, eg.: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
75 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
76 | .. wavedrom:: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
77 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
78 | { signal: [ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
79 | {name: "Rx", wave: "z3x4x4x|=x3x4x|3x", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
80 | data: ["0x66", "0x0C", "0x03", "D3", "0x66", "0x0A", "0x55"] }, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
81 | {name: "Tx", wave: "zx5x5x5x|5x5x5x|x", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
82 | data: ["0x99", "0x00", "0x00", "0x00", "0x99", "0x00"] }, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
83 | ]} |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
84 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
85 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
86 | When the user press a key on the front panel, a slightly simpler "packet transmission" occurs: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
87 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
88 | .. wavedrom:: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
89 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
90 | { signal: [ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
91 | {name: "Rx", wave: "zz5x5xx", data: ["0x99", "0x00"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
92 | {name: "Tx", wave: "z3x4x3x", data: ["0x66", "KP", "0x55"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
93 | ]} |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
94 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
95 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
96 | Sending data to the main display |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
97 | ================================ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
98 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
99 | The main display consist in 13 17-segments digits, in which the |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
100 | character is displayed by a main 14-digits, and the punctuation with 3 |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
101 | segments (2 dots and a comma, allowing to represent the signs ".", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
102 | ",", ":" and ";"). Punctuation signs are also very close to the |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
103 | preceding chracters. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
104 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
105 | .. image:: {filename}/images/hp34970a/digit.jpg |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
106 | :alt: 17-segments digit of the main display. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
107 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
108 | The command used to send text to the main display is ``0x00``. The |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
109 | character ``0x09`` (tabulation) has a special meaning: it marks the |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
110 | beginning and the end of a part of the text to be displayed darker |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
111 | than the usual. This is used to emphasis a portion of the displayed |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
112 | text. Also, as the punctuation signs do not consume a digit, the |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
113 | displayed text can be larger than 13 characters. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
114 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
115 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
116 | Sending data to the Channels display |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
117 | ==================================== |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
118 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
119 | This area only allows to display 3 7-segments digits. The command is |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
120 | ``0x0C``, the payload is thus 3 bytes long. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
121 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
122 | .. image:: {filename}/images/hp34970a/channel.jpg |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
123 | :alt: The display area dedicated to current channel. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
124 | :align: center |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
125 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
126 | Flags |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
127 | ===== |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
128 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
129 | The display also has several flags. Display flags are selected by |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
130 | sending the ``0x0A`` command. The payload is 4 bytes long. Each bit |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
131 | of these 4 bytes represent a flag on the display. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
132 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
133 | Let's consider the following (we don't represent the acknowledgements here): |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
134 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
135 | .. wavedrom:: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
136 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
137 | { signal: [ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
138 | {name: "Rx", wave: "z344====3x", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
139 | data: ["0x66", "0x0A", "0x04", "F1", "F2", "F3", "F4", "0x55"]} |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
140 | ]} |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
141 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
142 | Then the flags I've identified so far are: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
143 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
144 | .. wavedrom:: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
145 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
146 | { signal: [ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
147 | {name: "bit", wave: "z========z", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
148 | data: ["7", "6", "5", "4", "3", "2", "1", "0"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
149 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
150 | {name: "F1", wave: "z=3333333z", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
151 | data: ["", "HI", "Alarm", "LO", "Channels", "Ch. frame", "Mx+B", "<Bell>"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
152 | {name: "F2", wave: "z===33333z", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
153 | data: ["", "", "", "4W", "1", "3", "4", "2"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
154 | {name: "F3", wave: "z========z", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
155 | data: ["", "", "", "", "", "", "", ""]}, |
69
56bcb94f6ff5
[hp34970a] small update
David Douard <david.douard@logilab.fr>
parents:
68
diff
changeset
|
156 | {name: "F4", wave: "z=3=333==z", |
56bcb94f6ff5
[hp34970a] small update
David Douard <david.douard@logilab.fr>
parents:
68
diff
changeset
|
157 | data: ["", "CONFIG", "", "MON", "VIEW", "*", "", ""]}, |
68
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
158 | ], |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
159 | config: { hscale: 2 }, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
160 | } |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
161 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
162 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
163 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
164 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
165 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
166 | Keypad |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
167 | ====== |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
168 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
169 | Note that the front panel sends a "key press event" and a "key |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
170 | released event", depending on the value of the bit 7: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
171 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
172 | :0: key pressed |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
173 | :1: key released |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
174 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
175 | The bit 8 of the key event byte is set high for the knob. |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
176 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
177 | .. wavedrom:: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
178 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
179 | {signal: [ |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
180 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
181 | {name: "bit", wave: "z========z", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
182 | data: ["7", "6", "5", "4", "3", "2", "1", "0"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
183 | {name: "KP", wave: "z34=.....z", |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
184 | data: ["Knob", "Key", "Key Code"]}, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
185 | ], |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
186 | config: { hscale: 1 }, |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
187 | } |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
188 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
189 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
190 | The key codes are: |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
191 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
192 | :0x00: View |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
193 | :0x01: Mon |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
194 | :0x02: Sto/Rcl |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
195 | :0x03: Scan |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
196 | :0x04: Alarm |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
197 | :0x05: Mx+B |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
198 | :0x06: Measure |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
199 | :0x07: Interval |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
200 | :0x08: Card Reset |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
201 | :0x09: Close |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
202 | :0x0A: Open |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
203 | :0x0B: Read |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
204 | :0x0C: Shift |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
205 | :0x0D: Write |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
206 | :0x0E: Left |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
207 | :0x0F: Right |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
208 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
209 | :0x10: Advanced |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
210 | :0x11: Step |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
211 | |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
212 | For the knob (including the "Knob" bit): |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
213 | :0x80: Knob left |
4fa6621fec0f
[hp34970a] an article dedicted to the protocol
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
214 | :0x81: Knob right |