content/hp34970a_protocol.rst

Mon, 19 Sep 2016 00:25:06 +0200

author
David Douard <david.douard@logilab.fr>
date
Mon, 19 Sep 2016 00:25:06 +0200
changeset 69
56bcb94f6ff5
parent 68
4fa6621fec0f
child 111
25cae2c53694
permissions
-rw-r--r--

[hp34970a] small update

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

mercurial