Wiki source code of Point to Point Communication of LT-22222-L
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | {{box cssClass="floatinginfobox" title="**Contents**"}} |
2 | {{toc/}} | ||
3 | {{/box}} | ||
4 | |||
![]() |
4.2 | 5 | = **1. Overview** = |
![]() |
1.1 | 6 | |
![]() |
6.1 | 7 | ((( |
![]() |
1.1 | 8 | Shipped LT-22222-L is base on LoRaWAN protocol. We also develop a open source Point to Point LoRa protocol for LT-22222-L. The source code and hex file can be found at: |
![]() |
6.1 | 9 | ))) |
![]() |
1.1 | 10 | |
![]() |
6.1 | 11 | ((( |
![]() |
1.1 | 12 | [[Point to Point Software for LT-22222-L>>https://github.com/dragino/LT-22222-L]]. |
![]() |
6.1 | 13 | ))) |
![]() |
1.1 | 14 | |
15 | == == | ||
16 | |||
![]() |
4.2 | 17 | = **2. Features for this firmware** = |
![]() |
1.1 | 18 | |
![]() |
4.2 | 19 | |
![]() |
8.2 | 20 | == **2.1 Point To Point** == |
![]() |
4.2 | 21 | |
![]() |
12.2 | 22 | === **2.1.1 Overview** === |
![]() |
8.1 | 23 | |
![]() |
8.2 | 24 | [[image:image-20220602111219-1.png||height="472" width="972"]] |
![]() |
4.2 | 25 | |
26 | |||
![]() |
12.2 | 27 | === **2.2.2 Configure** === |
![]() |
4.2 | 28 | |
![]() |
15.3 | 29 | |
![]() |
4.3 | 30 | (% border="1" style="background-color:#f7faff; color:black; width:500px" %) |
31 | |=**A's configuration**|=**B's configuration** | ||
32 | |AT+GROUPMOD=0|AT+GROUPMOD=0 | ||
33 | |AT+TXCHS=868700000|AT+TXCHS=869000000 | ||
34 | |AT+RXCHS=869000000|AT+RXCHS=868700000 | ||
35 | |AT+TRIG1=2,50|AT+TRIG1=2,50 | ||
36 | |AT+TRIG2=2,50|AT+TRIG2=2,50 | ||
37 | |AT+DI1TODO1=2|AT+DI1TODO1=2 | ||
38 | |AT+DI1TORO1=2|AT+DI1TORO1=2 | ||
39 | |AT+DI2TODO2=2 |AT+DI2TODO2=2 | ||
40 | |AT+DI2TORO2=2|AT+DI2TORO2=2 | ||
![]() |
4.2 | 41 | |
42 | |||
![]() |
7.1 | 43 | |
![]() |
15.2 | 44 | === **2.2.3 Serial port display** === |
![]() |
12.2 | 45 | |
![]() |
15.2 | 46 | |
![]() |
12.2 | 47 | (% class="wikigeneratedid" %) |
![]() |
4.2 | 48 | [[image:image-20220602111219-2.png]] |
49 | |||
50 | |||
![]() |
12.2 | 51 | (% class="wikigeneratedid" %) |
![]() |
4.2 | 52 | [[image:image-20220602111219-3.png]] |
53 | |||
![]() |
12.2 | 54 | (% class="wikigeneratedid" %) |
55 | If the sender does not get the ACK reply from the receiver, it will retransmit up to 4 times, each interval is 6 seconds, and the UplinkCounter of the retransmission will not increase. | ||
56 | |||
57 | |||
58 | == **2.2 Point To Mult-Point ** == | ||
59 | |||
![]() |
15.2 | 60 | === **2.2.1 Overview** === |
![]() |
12.2 | 61 | |
62 | |||
![]() |
15.2 | 63 | [[image:1654152390874-192.png]] |
![]() |
12.2 | 64 | |
65 | |||
![]() |
15.2 | 66 | === **2.2.2 Configure** === |
67 | |||
68 | |||
69 | (% style="color:#4f81bd" %)**Configuration of the TX group:** | ||
70 | |||
71 | AT+GROUPMOD=0,2 | ||
72 | |||
73 | AT+TXCHS=868700000 | ||
74 | |||
75 | AT+RXCHS=869000000 | ||
76 | |||
77 | AT+TRIG1=2,50 | ||
78 | |||
79 | AT+TRIG2=2,50 | ||
80 | |||
81 | AT+DI1TODO1=1 | ||
82 | |||
83 | AT+DI1TORO1=1 | ||
84 | |||
85 | AT+DI2TODO2=1 | ||
86 | |||
87 | AT+DI2TORO2=1 | ||
88 | |||
89 | |||
90 | (% style="color:#4f81bd" %)**Configuration for RX group number 1:** | ||
91 | |||
92 | AT+GROUPMOD=1,1 | ||
93 | |||
94 | AT+TXCHS=869000000 | ||
95 | |||
96 | AT+RXCHS=868700000 | ||
97 | |||
98 | |||
99 | (% style="color:#4f81bd" %)**Configuration for RX group number 2:** | ||
100 | |||
101 | AT+GROUPMOD=1,2 | ||
102 | |||
103 | AT+TXCHS=869000000 | ||
104 | |||
105 | AT+RXCHS=868700000 | ||
106 | |||
107 | |||
108 | === **2.2.3 Serial port display** === | ||
109 | |||
110 | |||
111 | [[image:image-20220602144747-1.png]] | ||
112 | |||
113 | |||
114 | [[image:image-20220602144747-2.png]] | ||
115 | |||
![]() |
8.9 | 116 | ((( |
![]() |
15.2 | 117 | If the TX group does not receive all the ACK replies from the RX group, it will retransmit up to 4 times, each time interval is 30 seconds, and the retransmission UplinkCounter will not increase. |
![]() |
8.9 | 118 | ))) |
![]() |
4.2 | 119 | |
![]() |
8.2 | 120 | |
![]() |
15.2 | 121 | |
122 | |||
![]() |
8.2 | 123 | == **2.3 AT command** == |
124 | |||
125 | |||
![]() |
11.3 | 126 | ((( |
![]() |
8.6 | 127 | (% style="color:#037691" %)**ATZ** (%%)**: ** Trig a reset of the MCU |
![]() |
11.3 | 128 | ))) |
![]() |
8.2 | 129 | |
![]() |
11.3 | 130 | ((( |
![]() |
8.6 | 131 | (% style="color:#037691" %)**AT+FDR** (%%)**:** Reset Parameters to Factory Default, Keys Reserve |
![]() |
11.3 | 132 | ))) |
![]() |
8.2 | 133 | |
![]() |
11.3 | 134 | ((( |
![]() |
8.6 | 135 | (% style="color:#037691" %)**AT+FCU** (%%)**:** Get or Set the Frame Counter Uplink |
![]() |
11.3 | 136 | ))) |
![]() |
8.2 | 137 | |
![]() |
11.3 | 138 | ((( |
![]() |
8.6 | 139 | (% style="color:#037691" %)**AT+FCD** (%%)**:** Get or Set the Frame Counter Downlink |
![]() |
11.3 | 140 | ))) |
![]() |
8.2 | 141 | |
![]() |
11.3 | 142 | ((( |
![]() |
8.6 | 143 | (% style="color:#037691" %)**AT+TXP** (%%)**:** Get or Set the transmit power, the maximum is 20dBm (default is 14dBm) |
![]() |
11.3 | 144 | ))) |
![]() |
8.2 | 145 | |
![]() |
11.3 | 146 | ((( |
![]() |
8.8 | 147 | (% style="color:#037691" %)**AT+SYNC** (%%)**:** Get or Set the Sync word [1:0x34,0:0x12] (default is 1) |
![]() |
11.3 | 148 | ))) |
![]() |
8.2 | 149 | |
![]() |
11.3 | 150 | ((( |
![]() |
8.7 | 151 | (% style="color:#037691" %)**AT+PMB** (%%)**: **Get or Set the preamble (default:8) |
![]() |
11.3 | 152 | ))) |
![]() |
8.2 | 153 | |
![]() |
11.3 | 154 | ((( |
![]() |
8.6 | 155 | (% style="color:#037691" %)**AT+TXCHS **(%%)**:** Get or Set the transmit frequency of TX (default:868700000) |
![]() |
11.3 | 156 | ))) |
![]() |
8.2 | 157 | |
![]() |
11.3 | 158 | ((( |
![]() |
8.6 | 159 | (% style="color:#037691" %)**AT+TXSF **(%%)**:** Get or Set the spreading factor of TX (7 to 12) (default:12) |
![]() |
11.3 | 160 | ))) |
![]() |
8.2 | 161 | |
![]() |
11.3 | 162 | ((( |
![]() |
8.6 | 163 | (% style="color:#037691" %)**AT+RXCHS **(%%)**:** Get or Set the transmit frequency of RX (default:869000000) |
![]() |
11.3 | 164 | ))) |
![]() |
8.2 | 165 | |
![]() |
11.3 | 166 | ((( |
![]() |
8.6 | 167 | (% style="color:#037691" %)**AT+RXSF **(%%)**:** Get or Set the spreading factor of RX (7 to 12) (default:12) |
![]() |
11.3 | 168 | ))) |
![]() |
8.2 | 169 | |
![]() |
11.3 | 170 | ((( |
![]() |
9.2 | 171 | (% style="color:#037691" %)**AT+BW **(%%)**: **Get or Set the bandwidth [0:125khz,1:250khz,2:500khz] (default:0) |
![]() |
11.3 | 172 | ))) |
![]() |
8.2 | 173 | |
![]() |
11.3 | 174 | ((( |
![]() |
8.7 | 175 | (% style="color:#037691" %)**AT+CR **(%%)**: **Get or Set the coding rate [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] (default:1) |
![]() |
11.3 | 176 | ))) |
![]() |
8.2 | 177 | |
![]() |
11.3 | 178 | ((( |
![]() |
8.6 | 179 | (% style="color:#037691" %)**AT+TDC **(%%)**:** Get or set the application data transmission interval in ms(default 10 minutes) |
![]() |
11.3 | 180 | ))) |
![]() |
8.2 | 181 | |
![]() |
11.3 | 182 | ((( |
![]() |
8.8 | 183 | (% style="color:#037691" %)**AT+VER **(%%)**:** Get firmware version number |
![]() |
11.3 | 184 | ))) |
![]() |
8.2 | 185 | |
![]() |
11.3 | 186 | ((( |
![]() |
9.2 | 187 | (% style="color:#037691" %)**AT+SEND **(%%)**: **Set Custom sent hex data |
![]() |
11.3 | 188 | ))) |
![]() |
8.2 | 189 | |
![]() |
11.3 | 190 | ((( |
![]() |
8.6 | 191 | (% style="color:#037691" %)**AT+GROUPMOD **(%%)**: **Set or Get the grouping mode of the device (default: 0) |
![]() |
11.3 | 192 | ))) |
![]() |
8.2 | 193 | |
![]() |
11.1 | 194 | ((( |
![]() |
11.3 | 195 | ((( |
![]() |
8.7 | 196 | (% style="color:#037691" %)**AT+GROUPID **(%%)**: **Set or Get the password for matching between TX group and RX group, which can be composed of numbers or characters (default: 12345678) |
![]() |
11.1 | 197 | ))) |
![]() |
11.3 | 198 | ))) |
![]() |
8.2 | 199 | |
![]() |
11.3 | 200 | ((( |
![]() |
8.6 | 201 | (% style="color:#037691" %)**AT+TRIG1 **(%%)**:** Set or Get the DI1 pin interrupt trigger mode (default 0,0) |
![]() |
11.3 | 202 | ))) |
![]() |
8.2 | 203 | |
![]() |
11.3 | 204 | ((( |
![]() |
8.7 | 205 | (% style="color:#037691" %)**AT+TRIG2 **(%%)**: **Set or Get the DI2 pin interrupt trigger mode (default 0,0) |
![]() |
11.3 | 206 | ))) |
![]() |
8.2 | 207 | |
![]() |
11.3 | 208 | ((( |
![]() |
8.7 | 209 | (% style="color:#037691" %)**AT+DI1TODO1 **(%%)**: **Set or get the mode in which DI1 maps to DO1 (default 0) |
![]() |
11.3 | 210 | ))) |
![]() |
8.2 | 211 | |
![]() |
11.3 | 212 | ((( |
![]() |
8.7 | 213 | (% style="color:#037691" %)**AT+DI1TORO1 **(%%)**: **Set or get the mode in which DI1 maps to RO1(default 0) |
![]() |
11.3 | 214 | ))) |
![]() |
8.2 | 215 | |
![]() |
11.3 | 216 | ((( |
![]() |
8.6 | 217 | (% style="color:#037691" %)**AT+DI2TODO2 **(%%)**:** Set or get the mode in which DI2 maps to DO2(default 0) |
![]() |
11.3 | 218 | ))) |
![]() |
8.2 | 219 | |
![]() |
11.3 | 220 | ((( |
![]() |
8.7 | 221 | (% style="color:#037691" %)**AT+DI2TORO2 **(%%)**: **Set or get the mode in which DI2 maps to RO2(default 0) |
![]() |
11.3 | 222 | ))) |
![]() |
8.2 | 223 | |
![]() |
11.3 | 224 | ((( |
225 | |||
226 | ))) | ||
![]() |
8.2 | 227 | |
![]() |
11.3 | 228 | ((( |
229 | |||
230 | ))) | ||
![]() |
8.2 | 231 | |
![]() |
11.3 | 232 | ((( |
![]() |
8.7 | 233 | (% style="color:#4f81bd" %)**Example 1:** |
![]() |
11.3 | 234 | ))) |
![]() |
8.2 | 235 | |
![]() |
11.3 | 236 | ((( |
![]() |
8.7 | 237 | **AT+SEND=01020304 **will send a payload of 01020304 |
![]() |
11.3 | 238 | ))) |
![]() |
8.2 | 239 | |
![]() |
11.3 | 240 | ((( |
241 | |||
242 | ))) | ||
![]() |
8.2 | 243 | |
![]() |
11.3 | 244 | ((( |
![]() |
8.7 | 245 | (% style="color:#4f81bd" %)**Example 2: ** |
![]() |
11.3 | 246 | ))) |
![]() |
8.2 | 247 | |
![]() |
11.3 | 248 | ((( |
![]() |
8.8 | 249 | **AT+TRIGx=a **Trigger directly without triggering time |
![]() |
11.3 | 250 | ))) |
![]() |
8.2 | 251 | |
![]() |
11.3 | 252 | ((( |
![]() |
8.7 | 253 | **AT+TRIGx=a,b** |
![]() |
11.3 | 254 | ))) |
![]() |
8.2 | 255 | |
![]() |
11.3 | 256 | ((( |
![]() |
8.7 | 257 | a=0: falling edge; |
![]() |
11.3 | 258 | ))) |
![]() |
8.2 | 259 | |
![]() |
11.3 | 260 | ((( |
![]() |
8.7 | 261 | a=1: rising edge; |
![]() |
11.3 | 262 | ))) |
![]() |
8.2 | 263 | |
![]() |
11.3 | 264 | ((( |
![]() |
8.7 | 265 | a=2: falling edge or rising edge; |
![]() |
11.3 | 266 | ))) |
![]() |
8.2 | 267 | |
![]() |
11.3 | 268 | ((( |
![]() |
8.7 | 269 | b: triggering time in milliseconds. |
![]() |
11.3 | 270 | ))) |
![]() |
8.2 | 271 | |
![]() |
11.3 | 272 | ((( |
![]() |
8.7 | 273 | AT+TRIGx=2,50 Falling edge or rising edge trigger, and the trigger time exceeds 50ms. |
![]() |
11.3 | 274 | ))) |
![]() |
8.2 | 275 | |
![]() |
11.3 | 276 | ((( |
277 | |||
278 | ))) | ||
![]() |
8.2 | 279 | |
![]() |
11.3 | 280 | ((( |
![]() |
8.7 | 281 | (% style="color:#4f81bd" %)**Example 3: ** |
![]() |
11.3 | 282 | ))) |
![]() |
8.2 | 283 | |
![]() |
11.3 | 284 | ((( |
![]() |
8.7 | 285 | **AT+DI1TODO1= maps value** |
![]() |
11.3 | 286 | ))) |
![]() |
8.2 | 287 | |
![]() |
11.3 | 288 | ((( |
![]() |
8.7 | 289 | **AT+DI1TORO1= maps value** |
![]() |
11.3 | 290 | ))) |
![]() |
8.2 | 291 | |
![]() |
11.3 | 292 | ((( |
![]() |
8.7 | 293 | **AT+DI2TODO2= maps value** |
![]() |
11.3 | 294 | ))) |
![]() |
8.2 | 295 | |
![]() |
11.3 | 296 | ((( |
![]() |
8.7 | 297 | **AT+DI2TORO2= maps value** |
![]() |
11.3 | 298 | ))) |
![]() |
8.7 | 299 | |
![]() |
11.3 | 300 | ((( |
301 | |||
302 | ))) | ||
![]() |
8.7 | 303 | |
![]() |
8.4 | 304 | (% border="1" style="background-color:#f7faff; color:black; width:706px" %) |
![]() |
11.3 | 305 | |=(% style="width: 102px;" %)((( |
306 | Maps value | ||
307 | )))|=(% style="width: 331px;" %)((( | ||
308 | DIx to DOx | ||
309 | )))|=(% style="width: 268px;" %)((( | ||
310 | DIx to ROx | ||
311 | ))) | ||
312 | |(% style="width:102px" %)((( | ||
313 | 0 | ||
314 | )))|(% style="width:331px" %)((( | ||
315 | No Action | ||
316 | )))|(% style="width:268px" %)((( | ||
317 | No Action | ||
318 | ))) | ||
319 | |(% style="width:102px" %)((( | ||
320 | 1 | ||
321 | )))|(% style="width:331px" %)((( | ||
322 | If DIx is high, control DOx to output low level, If DIx is low, control DOx to output high level | ||
323 | )))|(% style="width:268px" %)((( | ||
324 | ((( | ||
![]() |
8.2 | 325 | If DIx is high, control ROx to close, |
![]() |
11.3 | 326 | ))) |
![]() |
8.2 | 327 | |
![]() |
11.3 | 328 | ((( |
![]() |
8.2 | 329 | if DIx is low, control ROx to open |
330 | ))) | ||
![]() |
11.3 | 331 | ))) |
332 | |(% style="width:102px" %)((( | ||
333 | 2 | ||
334 | )))|(% style="width:331px" %)((( | ||
335 | If DIx is high, control DOx to output high level, If DIx is low, control DOx to output low level | ||
336 | )))|(% style="width:268px" %)((( | ||
337 | ((( | ||
![]() |
8.2 | 338 | If DIx is high, control ROx to open, |
![]() |
11.3 | 339 | ))) |
![]() |
8.2 | 340 | |
![]() |
11.3 | 341 | ((( |
![]() |
8.2 | 342 | if DIx is low, control ROx to close |
343 | ))) | ||
![]() |
11.3 | 344 | ))) |
345 | |(% style="width:102px" %)((( | ||
346 | 3 | ||
347 | )))|(% style="width:331px" %)((( | ||
348 | DOx state flip | ||
349 | )))|(% style="width:268px" %)((( | ||
350 | ROx state flip | ||
351 | ))) | ||
![]() |
8.2 | 352 | |
![]() |
11.3 | 353 | ((( |
![]() |
8.7 | 354 | (% style="color:#4f81bd" %)**Example 4: ** |
![]() |
11.3 | 355 | ))) |
![]() |
8.2 | 356 | |
![]() |
11.3 | 357 | ((( |
![]() |
8.7 | 358 | **AT+GROUPMOD=0** Set to point to point mode |
![]() |
11.3 | 359 | ))) |
![]() |
8.2 | 360 | |
![]() |
11.3 | 361 | ((( |
![]() |
8.7 | 362 | **AT+GROUPMOD=0,aa** Set the TX group that controls the number of aa (The maximum value of aa is 8) |
![]() |
11.3 | 363 | ))) |
![]() |
8.2 | 364 | |
![]() |
11.1 | 365 | ((( |
![]() |
11.3 | 366 | ((( |
![]() |
8.7 | 367 | **AT+GROUPMOD=1,bb** Set to the RX group controlled by the TX group, numbered bb(The maximum value of aa is 8) |
![]() |
11.1 | 368 | ))) |
![]() |
11.3 | 369 | ))) |
![]() |
8.2 | 370 | |
![]() |
11.3 | 371 | ((( |
![]() |
8.7 | 372 | **AT+GROUPMOD=0,2** Set to control the TX group of the two RX groups |
![]() |
11.3 | 373 | ))) |
![]() |
8.2 | 374 | |
![]() |
11.3 | 375 | ((( |
![]() |
8.7 | 376 | **AT+GROUPMOD=1,1** Set the RX group numbered 1 |
![]() |
11.3 | 377 | ))) |
![]() |
8.2 | 378 | |
![]() |
11.3 | 379 | ((( |
![]() |
8.7 | 380 | **AT+GROUPMOD=1,2** Set the RX group numbered 2 |
![]() |
11.3 | 381 | ))) |
![]() |
8.2 | 382 | |
383 | |||
384 | == **2.4 Data Format** == | ||
385 | |||
![]() |
11.3 | 386 | ((( |
![]() |
8.2 | 387 | 8 bytes of GROUPID + 9 bytes of payload + 4 bytes of checksum |
![]() |
11.3 | 388 | ))) |
![]() |
8.2 | 389 | |
![]() |
11.3 | 390 | ((( |
391 | |||
392 | ))) | ||
![]() |
8.2 | 393 | |
![]() |
11.3 | 394 | ((( |
![]() |
8.8 | 395 | (% style="color:#4f81bd" %)**Payload:** |
![]() |
11.3 | 396 | ))) |
![]() |
8.2 | 397 | |
![]() |
8.4 | 398 | (% border="1" style="background-color:#f7faff; color:black; width:938px" %) |
![]() |
11.3 | 399 | |=(% style="width: 123px;" %)((( |
400 | **Size (bytes)** | ||
401 | )))|=(% style="width: 107px;" %)((( | ||
402 | 1 | ||
403 | )))|=(% style="width: 107px;" %)((( | ||
404 | 1 | ||
405 | )))|=(% style="width: 107px;" %)((( | ||
406 | 1 | ||
407 | )))|=(% style="width: 107px;" %)((( | ||
408 | 1 | ||
409 | )))|=(% style="width: 107px;" %)((( | ||
410 | 1 | ||
411 | )))|=(% style="width: 107px;" %)((( | ||
412 | 1 | ||
413 | )))|=(% style="width: 107px;" %)((( | ||
414 | 1 | ||
415 | )))|=(% style="width: 107px;" %)((( | ||
416 | 1 | ||
417 | )))|=(% style="width: 107px;" %)((( | ||
418 | 1 | ||
419 | ))) | ||
420 | |(% style="width:123px" %)((( | ||
421 | **Value** | ||
422 | )))|(% style="width:38px" %)((( | ||
423 | address | ||
424 | )))|(% style="width:70px" %)((( | ||
425 | request | ||
426 | )))|(% style="width:52px" %)((( | ||
427 | ACK | ||
428 | )))|(% style="width:127px" %)((( | ||
429 | ((( | ||
![]() |
8.2 | 430 | DI1& |
![]() |
11.3 | 431 | ))) |
![]() |
8.2 | 432 | |
![]() |
11.3 | 433 | ((( |
![]() |
8.2 | 434 | DI1 level |
![]() |
11.3 | 435 | ))) |
436 | )))|(% style="width:101px" %)((( | ||
437 | DI1TODO1 | ||
438 | )))|(% style="width:91px" %)((( | ||
439 | DI1TORO1 | ||
440 | )))|(% style="width:111px" %)((( | ||
441 | ((( | ||
![]() |
8.2 | 442 | DI2& |
![]() |
11.3 | 443 | ))) |
![]() |
8.2 | 444 | |
![]() |
11.3 | 445 | ((( |
![]() |
8.2 | 446 | DI2 level |
![]() |
11.3 | 447 | ))) |
448 | )))|(% style="width:105px" %)((( | ||
449 | DI2TODO2 | ||
450 | )))|(% style="width:106px" %)((( | ||
451 | DI2TORO2 | ||
452 | ))) | ||
![]() |
8.2 | 453 | |
![]() |
11.3 | 454 | ((( |
![]() |
8.5 | 455 | (% style="color:#037691" %)**The first byte**(%%)**:** 00 is the broadcast address, 01-08 is the RX group number. |
![]() |
11.3 | 456 | ))) |
![]() |
8.2 | 457 | |
![]() |
11.3 | 458 | ((( |
![]() |
8.5 | 459 | (% style="color:#037691" %)**The second byte**(%%)**:** send mapping request when not 0, not request when it is 0. |
![]() |
11.3 | 460 | ))) |
![]() |
8.2 | 461 | |
![]() |
11.3 | 462 | ((( |
![]() |
8.5 | 463 | (% style="color:#037691" %)**The third byte**(%%)**:** ACK returned to the sender after the mapping is completed. |
![]() |
11.3 | 464 | ))) |
![]() |
8.2 | 465 | |
![]() |
11.1 | 466 | ((( |
![]() |
11.3 | 467 | ((( |
![]() |
8.5 | 468 | (% style="color:#037691" %)**The fourth byte**(%%)**:** the high four bits are 1 to represent DI1, and the low four bits are the level of DI1 when the interrupt is triggered. |
![]() |
11.1 | 469 | ))) |
![]() |
11.3 | 470 | ))) |
![]() |
8.2 | 471 | |
![]() |
11.3 | 472 | ((( |
![]() |
8.6 | 473 | (% style="color:#037691" %)**The Fifth byte**(%%)**: **DI1TODO1 when the interrupt is triggered, 0 when the interrupt is not triggered. |
![]() |
11.3 | 474 | ))) |
![]() |
8.2 | 475 | |
![]() |
11.3 | 476 | ((( |
![]() |
8.5 | 477 | (% style="color:#037691" %)**The Sixth byte**(%%)**:** 0 does not trigger interrupt when DI1TORO1 interrupt is triggered. |
![]() |
11.3 | 478 | ))) |
![]() |
8.2 | 479 | |
![]() |
11.1 | 480 | ((( |
![]() |
11.3 | 481 | ((( |
![]() |
8.5 | 482 | (% style="color:#037691" %)**The seventh byte**(%%)**:** the high four bits are 2 to represent DI2, and the low four bits are the level of DI2 when the interrupt is triggered. |
![]() |
11.1 | 483 | ))) |
![]() |
11.3 | 484 | ))) |
![]() |
8.2 | 485 | |
![]() |
11.3 | 486 | ((( |
![]() |
8.6 | 487 | (% style="color:#037691" %)**The 8th byte**(%%)**: **DI2TODO2 when the interrupt is triggered, 0 when the interrupt is not triggered. |
![]() |
11.3 | 488 | ))) |
![]() |
8.2 | 489 | |
![]() |
11.3 | 490 | ((( |
![]() |
8.5 | 491 | (% style="color:#037691" %)**The 9th byte**(%%)**:** DI2TORO2 when an interrupt is triggered, 0 when an interrupt is not triggered. |
![]() |
11.3 | 492 | ))) |
![]() |
8.2 | 493 | |
![]() |
1.1 | 494 |