-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuart-i2c-spi.html
363 lines (363 loc) · 210 KB
/
uart-i2c-spi.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
<!DOCTYPE html>
<html prefix="og: https://ogp.me/ns#" lang="fr-FR"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"><link rel="profile" href="http://gmpg.org/xfn/11"><link rel="pingback" href="https://passionelectronique.fr/xmlrpc.php"><title>[Intro] Protocoles de communication série : UART, I2C et SPI</title><link rel="stylesheet" href="uart-i2c-spi_fichiers/6f386c7b0b962f174b113498a19aec1a.css" data-minify="1"><meta name="description" content="Les différents protocoles de communication série, article tuto d'introduction aux liaisons séries filaires de type UART, SPI, I2C, avec détail explication"><meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"><link rel="canonical" href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/"><meta property="og:locale" content="fr_FR"><meta property="og:type" content="article"><meta property="og:title" content="[Intro] Protocoles de communication série : UART, I2C et SPI"><meta property="og:description" content="Les différents protocoles de communication série, article tuto d'introduction aux liaisons séries filaires de type UART, SPI, I2C, avec détail explication"><meta property="og:url" content="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/"><meta property="og:site_name" content="Passion Electronique"><meta property="article:tag" content="Cours pratiques"><meta property="article:tag" content="Découverte"><meta property="article:section" content="Bases d'électronique"><meta property="og:updated_time" content="2023-04-09T08:17:36+00:00"><meta property="og:image" content="https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg"><meta property="og:image:secure_url" content="https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg"><meta property="og:image:width" content="930"><meta property="og:image:height" content="523"><meta property="og:image:alt" content="Tutorial communications séries électroniques, type UART I2C ou SPI, cours pratique sur liaisons filaires avec détail protocoles sérial échange de données"><meta property="og:image:type" content="image/jpeg"><meta property="article:published_time" content="2022-12-17T09:22:22+00:00"><meta property="article:modified_time" content="2023-04-09T08:17:36+00:00"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="[Intro] Protocoles de communication série : UART, I2C et SPI"><meta name="twitter:description" content="Les différents protocoles de communication série, article tuto d'introduction aux liaisons séries filaires de type UART, SPI, I2C, avec détail explication"><meta name="twitter:image" content="https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg"><meta name="twitter:label1" content="Écrit par"><meta name="twitter:data1" content="JEROME"><meta name="twitter:label2" content="Temps de lecture"><meta name="twitter:data2" content="33 minutes"> <script async="" src="uart-i2c-spi_fichiers/analytics.js"></script><script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://passionelectronique.fr/#person","name":"JEROME","logo":{"@type":"ImageObject","@id":"https://passionelectronique.fr/#logo","url":"https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_48.png","contentUrl":"https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_48.png","caption":"JEROME","inLanguage":"fr-FR","width":"48","height":"48"},"image":{"@type":"ImageObject","@id":"https://passionelectronique.fr/#logo","url":"https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_48.png","contentUrl":"https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_48.png","caption":"JEROME","inLanguage":"fr-FR","width":"48","height":"48"}},{"@type":"WebSite","@id":"https://passionelectronique.fr/#website","url":"https://passionelectronique.fr","name":"JEROME","publisher":{"@id":"https://passionelectronique.fr/#person"},"inLanguage":"fr-FR"},{"@type":"ImageObject","@id":"https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg","url":"https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg","width":"930","height":"523","caption":"Tutorial communications s\u00e9ries \u00e9lectroniques, type UART I2C ou SPI, cours pratique sur liaisons filaires avec d\u00e9tail protocoles s\u00e9rial \u00e9change de donn\u00e9es","inLanguage":"fr-FR"},{"@type":"BreadcrumbList","@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://passionelectronique.fr","name":"Accueil"}},{"@type":"ListItem","position":"2","item":{"@id":"https://passionelectronique.fr/bases/","name":"Bases d'\u00e9lectronique"}},{"@type":"ListItem","position":"3","item":{"@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/","name":"Introduction aux liaisons s\u00e9ries filaires\u00a0UART, I2C, et SPI (et d\u00e9tail de leurs protocoles de communication)"}}]},{"@type":"WebPage","@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#webpage","url":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/","name":"[Intro] Protocoles de communication s\u00e9rie : UART, I2C et SPI","datePublished":"2022-12-17T09:22:22+00:00","dateModified":"2023-04-09T08:17:36+00:00","isPartOf":{"@id":"https://passionelectronique.fr/#website"},"primaryImageOfPage":{"@id":"https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg"},"inLanguage":"fr-FR","breadcrumb":{"@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#breadcrumb"}},{"@type":"Person","@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#author","name":"JEROME","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/4d5e195e35b13e4a634994f61c9ccb88?s=96&d=blank&r=g","url":"https://secure.gravatar.com/avatar/4d5e195e35b13e4a634994f61c9ccb88?s=96&d=blank&r=g","caption":"JEROME","inLanguage":"fr-FR"}},{"@type":"BlogPosting","headline":"[Intro] Protocoles de communication s\u00e9rie : UART, I2C et SPI","keywords":"s\u00e9rie","datePublished":"2022-12-17T09:22:22+00:00","dateModified":"2023-04-09T08:17:36+00:00","articleSection":"Bases d'\u00e9lectronique","author":{"@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#author","name":"JEROME"},"publisher":{"@id":"https://passionelectronique.fr/#person"},"description":"Les diff\u00e9rents protocoles de communication s\u00e9rie, article tuto d'introduction aux liaisons s\u00e9ries filaires de type UART, SPI, I2C, avec d\u00e9tail explication","name":"[Intro] Protocoles de communication s\u00e9rie : UART, I2C et SPI","@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#richSnippet","isPartOf":{"@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#webpage"},"image":{"@id":"https://passionelectronique.fr/wp-content/uploads/tuto-communications-series-en-electronique.jpg"},"inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#webpage"}}]}</script> <link href="https://fonts.gstatic.com/" crossorigin="" rel="preconnect"><link rel="alternate" type="application/rss+xml" title="Passion Electronique » Flux" href="https://passionelectronique.fr/feed/"><link rel="alternate" type="application/rss+xml" title="Passion Electronique » Flux des commentaires" href="https://passionelectronique.fr/comments/feed/"><link rel="alternate" type="application/rss+xml" title="Passion Electronique » Introduction aux liaisons séries filaires UART, I2C, et SPI (et détail de leurs protocoles de communication) Flux des commentaires" href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/feed/"><style type="text/css">img.wp-smiley,img.emoji{display:inline!important;border:none!important;box-shadow:none!important;height:1em!important;width:1em!important;margin:0 0.07em!important;vertical-align:-0.1em!important;background:none!important;padding:0!important}</style><style id="edd-downloads-style-inline-css" type="text/css">.edd-blocks__columns{grid-gap:1rem;display:grid}@media(min-width:600px){.edd-blocks__columns{grid-template-columns:repeat(2,50%)}}@media(min-width:960px){.edd-blocks__columns-3{grid-template-columns:repeat(3,1fr)}.edd-blocks__columns-4{grid-template-columns:repeat(4,1fr)}.edd-blocks__columns-5{grid-template-columns:repeat(5,1fr)}.edd-blocks__columns-6{grid-template-columns:repeat(6,1fr)}}.wp-block-edd-downloads .navigation{border:none;display:flex;gap:.5rem;justify-content:center;margin:2rem 0}.wp-block-edd-downloads .page-numbers{border:1px solid;border-radius:3px;padding:.5rem 1rem}.edd-blocks__downloads{display:grid;gap:2rem}.edd-blocks__columns .edd-blocks__download{display:flex;flex-direction:column;padding:1rem}.edd-blocks__columns .edd-blocks__download-content{flex-grow:1}.edd-blocks__download-image-link{border:none;padding:0}.edd-blocks__download-image-link img{display:block;height:auto;max-width:100%}.wp-block-edd-buy-button .edd-submit{display:table}.wp-block-edd-buy-button .aligncenter,.wp-block-edd-buy-button .alignwide{margin:0 auto}.wp-block-edd-buy-button .alignright{margin:0 0 0 auto}.wp-block-edd-buy-button .alignleft{margin:0 auto 0 0}.wp-block-edd-buy-button .alignwide{width:100%}</style><style id="edd-buy-button-style-inline-css" type="text/css">.wp-block-edd-buy-button .edd-submit{display:table}.wp-block-edd-buy-button .aligncenter,.wp-block-edd-buy-button .alignwide{margin:0 auto}.wp-block-edd-buy-button .alignright{margin:0 0 0 auto}.wp-block-edd-buy-button .alignleft{margin:0 auto 0 0}.wp-block-edd-buy-button .alignwide{width:100%}</style><style id="edd-login-style-inline-css" type="text/css">.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.edd-blocks-form{border:1px solid var(--edd-blocks-light-grey);display:grid;gap:1.25rem;padding:2rem}.widget .edd-blocks-form{border:none;padding:0}.edd-blocks-form .edd-blocks-form__group,.edd-blocks-form legend{display:block;margin:0}.edd-blocks-form .edd-blocks-form__group>label{display:block;margin-bottom:.5rem!important}.edd-blocks-form input[type=email],.edd-blocks-form input[type=password],.edd-blocks-form input[type=text],.edd-blocks-form select{box-sizing:border-box;display:block;padding:4px 6px;width:100%}.edd-blocks-form .edd-blocks-form__halves{display:flex!important;gap:1rem;justify-content:space-between}@media(min-width:600px){.edd-blocks-form .edd-blocks-form__halves>*{flex-basis:50%}}p+.edd-blocks-form{margin-top:2rem}.edd-button-secondary,.edd-submit{transition:all .2s ease-in-out}.edd-button-secondary:active,.edd-button-secondary:hover,.edd-submit:active,.edd-submit:hover{transform:translateY(-1px)}.edd-button-secondary{background-color:var(--edd-blocks-light-grey);border:1px solid #ddd;border-radius:4px;color:unset;margin:0;padding:.5rem 1rem}.edd-button-secondary:disabled{opacity:.6}.wp-block-edd-login #pass-strength-result{background-color:#f0f0f1;border:1px solid #dcdcde;box-sizing:border-box;color:#1d2327;margin:-1px 1px 5px;opacity:0;padding:3px 5px;text-align:center}.wp-block-edd-login #pass-strength-result.short{background-color:#ffabaf;border-color:#e65054;opacity:1}.wp-block-edd-login #pass-strength-result.bad{background-color:#facfd2;border-color:#f86368;opacity:1}.wp-block-edd-login #pass-strength-result.good{background-color:#f5e6ab;border-color:#f0c33c;opacity:1}.wp-block-edd-login #pass-strength-result.strong{background-color:#b8e6bf;border-color:#68de7c;opacity:1}.wp-block-edd-login .wp-pwd.is-open{position:relative}.wp-block-edd-login .button.wp-hide-pw{background:transparent;border:1px solid transparent;box-shadow:none;color:#555;font-size:14px;height:2.5rem;line-height:2;margin:0;min-height:40px;min-width:40px;padding:5px 9px;position:absolute;right:0;top:0;width:2.5rem}.wp-block-edd-login .button.wp-hide-pw .dashicons{display:block}.wp-block-edd-login div.reset-pass-submit{align-items:center;display:flex;justify-content:space-between}.wp-block-edd-login .edd-alert p,.wp-block-edd-login p{margin:0;padding:0}</style><style id="edd-register-style-inline-css" type="text/css">.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.edd-blocks-form{border:1px solid var(--edd-blocks-light-grey);display:grid;gap:1.25rem;padding:2rem}.widget .edd-blocks-form{border:none;padding:0}.edd-blocks-form .edd-blocks-form__group,.edd-blocks-form legend{display:block;margin:0}.edd-blocks-form .edd-blocks-form__group>label{display:block;margin-bottom:.5rem!important}.edd-blocks-form input[type=email],.edd-blocks-form input[type=password],.edd-blocks-form input[type=text],.edd-blocks-form select{box-sizing:border-box;display:block;padding:4px 6px;width:100%}.edd-blocks-form .edd-blocks-form__halves{display:flex!important;gap:1rem;justify-content:space-between}@media(min-width:600px){.edd-blocks-form .edd-blocks-form__halves>*{flex-basis:50%}}p+.edd-blocks-form{margin-top:2rem}.edd-button-secondary,.edd-submit{transition:all .2s ease-in-out}.edd-button-secondary:active,.edd-button-secondary:hover,.edd-submit:active,.edd-submit:hover{transform:translateY(-1px)}.edd-button-secondary{background-color:var(--edd-blocks-light-grey);border:1px solid #ddd;border-radius:4px;color:unset;margin:0;padding:.5rem 1rem}.edd-button-secondary:disabled{opacity:.6}.wp-block-edd-register .edd-blocks-form__group-password .edd-blocks-form__control{position:relative}.wp-block-edd-register #pass-strength-result{background-color:#f0f0f1;border:1px solid #dcdcde;box-sizing:border-box;color:#1d2327;margin:-1px 1px 5px;opacity:0;padding:3px 5px;text-align:center}.wp-block-edd-register #pass-strength-result.short{background-color:#ffabaf;border-color:#e65054;opacity:1}.wp-block-edd-register #pass-strength-result.bad{background-color:#facfd2;border-color:#f86368;opacity:1}.wp-block-edd-register #pass-strength-result.good{background-color:#f5e6ab;border-color:#f0c33c;opacity:1}.wp-block-edd-register #pass-strength-result.strong{background-color:#b8e6bf;border-color:#68de7c;opacity:1}.wp-block-edd-register .wp-pwd.is-open{position:relative}.wp-block-edd-register .button.wp-hide-pw{background:transparent;border:1px solid transparent;box-shadow:none;color:#555;font-size:14px;height:2.5rem;line-height:2;margin:0;min-height:40px;min-width:40px;padding:5px 9px;position:absolute;right:0;top:0;width:2.5rem}.wp-block-edd-register .button.wp-hide-pw .dashicons{display:block}.wp-block-edd-register div.edd-blocks-form__group-submit{align-items:center;display:flex;justify-content:space-between}.wp-block-edd-register .edd-alert p,.wp-block-edd-register p{margin:0;padding:0}</style><style id="edd-order-history-style-inline-css" type="text/css">.edd-blocks__columns{grid-gap:1rem;display:grid}@media(min-width:600px){.edd-blocks__columns{grid-template-columns:repeat(2,50%)}}@media(min-width:960px){.edd-blocks__columns-3{grid-template-columns:repeat(3,1fr)}.edd-blocks__columns-4{grid-template-columns:repeat(4,1fr)}.edd-blocks__columns-5{grid-template-columns:repeat(5,1fr)}.edd-blocks__columns-6{grid-template-columns:repeat(6,1fr)}}.edd-blocks-form{border:1px solid var(--edd-blocks-light-grey);display:grid;gap:1.25rem;padding:2rem}.widget .edd-blocks-form{border:none;padding:0}.edd-blocks-form .edd-blocks-form__group,.edd-blocks-form legend{display:block;margin:0}.edd-blocks-form .edd-blocks-form__group>label{display:block;margin-bottom:.5rem!important}.edd-blocks-form input[type=email],.edd-blocks-form input[type=password],.edd-blocks-form input[type=text],.edd-blocks-form select{box-sizing:border-box;display:block;padding:4px 6px;width:100%}.edd-blocks-form .edd-blocks-form__halves{display:flex!important;gap:1rem;justify-content:space-between}@media(min-width:600px){.edd-blocks-form .edd-blocks-form__halves>*{flex-basis:50%}}p+.edd-blocks-form{margin-top:2rem}.edd-button-secondary,.edd-submit{transition:all .2s ease-in-out}.edd-button-secondary:active,.edd-button-secondary:hover,.edd-submit:active,.edd-submit:hover{transform:translateY(-1px)}.edd-button-secondary{background-color:var(--edd-blocks-light-grey);border:1px solid #ddd;border-radius:4px;color:unset;margin:0;padding:.5rem 1rem}.edd-button-secondary:disabled{opacity:.6}.edd-blocks__orders-grid{display:grid;gap:1rem}.edd-blocks-orders__order{border:1px solid var(--edd-blocks-light-grey);display:flex;flex-direction:column;gap:1rem;padding:1rem}.edd-blocks-orders__order-data,.edd-blocks-orders__order-header{display:flex;flex-wrap:wrap;justify-content:space-between}.edd-blocks-orders__order-header{border-bottom:1px solid var(--edd-blocks-light-grey);padding-bottom:.5rem}.edd-blocks-orders__order-id{font-weight:700}.edd-blocks-orders__order-details{flex-basis:100%}</style><style id="edd-confirmation-style-inline-css" type="text/css">.edd-blocks__row{align-items:center;display:grid;gap:1rem}.edd-blocks__row-label{font-weight:700}@media(min-width:480px){.edd-blocks__row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.edd-blocks__row>div:last-of-type:not(:first-of-type){text-align:right}.edd-blocks__row>div:only-child{grid-column:1/span 2}}.edd-blocks-receipt__items,.edd-blocks-receipt__totals{border:1px solid var(--edd-blocks-light-grey);display:grid;margin:0 auto 1.5rem;padding:1rem}.edd-blocks-receipt__row-item{border-bottom:1px solid var(--edd-blocks-light-grey);padding:.5rem 0}.edd-blocks-receipt__row-item:last-child{border-bottom:none!important}.edd-blocks-receipt__row-header{border-bottom:1px solid var(--edd-blocks-light-grey);font-size:1.1rem;font-weight:700;padding-bottom:.5rem}</style><style id="edd-receipt-style-inline-css" type="text/css">.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.edd-blocks__row{align-items:center;display:grid;gap:1rem}.edd-blocks__row-label{font-weight:700}@media(min-width:480px){.edd-blocks__row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.edd-blocks__row>div:last-of-type:not(:first-of-type){text-align:right}.edd-blocks__row>div:only-child{grid-column:1/span 2}}.edd-blocks-form{border:1px solid var(--edd-blocks-light-grey);display:grid;gap:1.25rem;padding:2rem}.widget .edd-blocks-form{border:none;padding:0}.edd-blocks-form .edd-blocks-form__group,.edd-blocks-form legend{display:block;margin:0}.edd-blocks-form .edd-blocks-form__group>label{display:block;margin-bottom:.5rem!important}.edd-blocks-form input[type=email],.edd-blocks-form input[type=password],.edd-blocks-form input[type=text],.edd-blocks-form select{box-sizing:border-box;display:block;padding:4px 6px;width:100%}.edd-blocks-form .edd-blocks-form__halves{display:flex!important;gap:1rem;justify-content:space-between}@media(min-width:600px){.edd-blocks-form .edd-blocks-form__halves>*{flex-basis:50%}}p+.edd-blocks-form{margin-top:2rem}.edd-button-secondary,.edd-submit{transition:all .2s ease-in-out}.edd-button-secondary:active,.edd-button-secondary:hover,.edd-submit:active,.edd-submit:hover{transform:translateY(-1px)}.edd-button-secondary{background-color:var(--edd-blocks-light-grey);border:1px solid #ddd;border-radius:4px;color:unset;margin:0;padding:.5rem 1rem}.edd-button-secondary:disabled{opacity:.6}.edd-blocks-receipt__items,.edd-blocks-receipt__totals{border:1px solid var(--edd-blocks-light-grey);display:grid;margin:0 auto 1.5rem;padding:1rem}.edd-blocks-receipt__row-item{border-bottom:1px solid var(--edd-blocks-light-grey);padding:.5rem 0}.edd-blocks-receipt__row-item:last-child{border-bottom:none!important}.edd-blocks-receipt__row-header{border-bottom:1px solid var(--edd-blocks-light-grey);font-size:1.1rem;font-weight:700;padding-bottom:.5rem}.edd-blocks-receipt__items .edd-blocks__row{border-bottom:1px solid var(--edd-blocks-light-grey);padding:.5rem 0}</style><style id="edd-user-downloads-style-inline-css" type="text/css">.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.edd-pro-search__control{display:flex;justify-content:flex-end;margin-bottom:2em}.edd-pro-search__control input{max-width:100%;width:300px}.edd-pro-search__hidden{display:none!important}.edd-blocks__row{align-items:center;display:grid;gap:1rem}.edd-blocks__row-label{font-weight:700}@media(min-width:480px){.edd-blocks__row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.edd-blocks__row>div:last-of-type:not(:first-of-type){text-align:right}.edd-blocks__row>div:only-child{grid-column:1/span 2}}div.edd-blocks__user-downloads{border:1px solid var(--edd-blocks-light-grey);padding:1rem}div.edd-blocks__user-downloads .edd-blocks__row-column{text-align:left}.edd-order-item__product,.edd-order-items__header{border-bottom:1px solid var(--edd-blocks-light-grey);gap:1em;padding:.5em 0}.edd-order-item__product:last-child,.edd-order-items__header:last-child{border-bottom:none;padding-bottom:0}.edd-order-items__header{padding-top:0}</style><style id="edd-terms-style-inline-css" type="text/css">.edd-blocks__columns{grid-gap:1rem;display:grid}@media(min-width:600px){.edd-blocks__columns{grid-template-columns:repeat(2,50%)}}@media(min-width:960px){.edd-blocks__columns-3{grid-template-columns:repeat(3,1fr)}.edd-blocks__columns-4{grid-template-columns:repeat(4,1fr)}.edd-blocks__columns-5{grid-template-columns:repeat(5,1fr)}.edd-blocks__columns-6{grid-template-columns:repeat(6,1fr)}}.wp-block-edd-terms{grid-gap:1rem;display:grid}.wp-block-edd-terms img{display:block;height:auto;max-width:100%}.edd-blocks__term-title{align-items:center;display:flex;gap:.5rem}</style><style id="edd-cart-style-inline-css" type="text/css">.edd-blocks-form__cart .edd_cart_remove_item_btn{border:none;margin-left:.5rem;padding:0;text-decoration:none}.edd-blocks-form__cart .edd_cart_remove_item_btn svg{opacity:.6}.edd-blocks-form__cart .edd_cart_remove_item_btn svg:hover{opacity:.9}.edd-blocks-form__cart #edd_checkout_cart{border:1px solid #eee;display:grid}.edd-blocks-form__cart .edd_cart_item_name{display:grid;gap:1rem}.edd-blocks-form__cart .edd_cart_item_name .edd_cart_actions{align-items:center;display:inline-flex;flex-basis:100%;gap:.5rem}.edd-blocks-form__cart .edd_cart_item_name .edd_cart_actions label{margin:0!important}.edd-blocks-form__cart .edd_cart_item_name .edd_cart_actions input.edd-item-quantity{width:3rem!important}.edd-blocks-form__cart .edd_checkout_cart_item_title{align-items:center;display:flex;gap:1rem}.edd-blocks-form__cart .edd_cart_fee_amount,.edd-blocks-form__cart .edd_cart_item_price{align-items:center;display:flex;gap:.5rem}@media(min-width:480px){.edd-blocks-form__cart .edd_cart_fee_amount,.edd-blocks-form__cart .edd_cart_item_price{justify-content:flex-end}}.edd-blocks-form__cart .edd-blocks-cart__row,.edd-blocks-form__cart .edd_cart_footer_row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;padding:1.5rem}.edd-blocks-form__cart .edd-blocks-cart__row>div:last-of-type:not(:first-of-type),.edd-blocks-form__cart .edd_cart_footer_row>div:last-of-type:not(:first-of-type){flex:1 1 110px}@media(min-width:480px){.edd-blocks-form__cart .edd-blocks-cart__row>div:last-of-type:not(:first-of-type),.edd-blocks-form__cart .edd_cart_footer_row>div:last-of-type:not(:first-of-type){text-align:right}}.edd-blocks-form__cart .edd-blocks-cart__items,.edd-blocks-form__cart .edd-blocks-cart__row-header{border-bottom:1px solid #eee}.edd-blocks-form__cart .edd-blocks-cart__row-header,.edd-blocks-form__cart .edd_cart_total{font-weight:700}.edd-blocks-form__cart .edd-blocks-cart__row-footer{text-align:right}.edd-blocks-form__cart .edd-blocks-cart__row-footer>div:only-child{flex-grow:1}.edd-blocks-form__cart .edd-blocks-cart__action-remove,.edd-blocks-form__cart .edd_discount_remove{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY2xhc3M9InctNiBoLTYiPgogIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTE0Ljc0IDlsLS4zNDYgOW0tNC43ODggMEw5LjI2IDltOS45NjgtMy4yMWMuMzQyLjA1Mi42ODIuMTA3IDEuMDIyLjE2Nm0tMS4wMjItLjE2NUwxOC4xNiAxOS42NzNhMi4yNSAyLjI1IDAgMDEtMi4yNDQgMi4wNzdIOC4wODRhMi4yNSAyLjI1IDAgMDEtMi4yNDQtMi4wNzdMNC43NzIgNS43OW0xNC40NTYgMGE0OC4xMDggNDguMTA4IDAgMDAtMy40NzgtLjM5N20tMTIgLjU2MmMuMzQtLjA1OS42OC0uMTE0IDEuMDIyLS4xNjVtMCAwYTQ4LjExIDQ4LjExIDAgMDEzLjQ3OC0uMzk3bTcuNSAwdi0uOTE2YzAtMS4xOC0uOTEtMi4xNjQtMi4wOS0yLjIwMWE1MS45NjQgNTEuOTY0IDAgMDAtMy4zMiAwYy0xLjE4LjAzNy0yLjA5IDEuMDIyLTIuMDkgMi4yMDF2LjkxNm03LjUgMGE0OC42NjcgNDguNjY3IDAgMDAtNy41IDAiIC8+Cjwvc3ZnPgo=) 50% no-repeat;background-size:1em;box-shadow:none!important;display:block;height:1em;opacity:.6;top:0;width:1em}.edd-blocks-form__cart .edd-blocks-cart__action-remove:hover,.edd-blocks-form__cart .edd_discount_remove:hover{background-position:50%;opacity:1}.edd-blocks-form__cart .edd_cart_item_image img{display:block}.edd-blocks__cart-mini,.edd-blocks__cart-mini a{align-items:center;color:unset;display:flex;gap:.25rem;justify-content:flex-end;text-decoration:none}.edd-blocks__cart-mini a svg,.edd-blocks__cart-mini svg{fill:none;height:1.5rem;width:1.5rem}.wp-block-edd-cart .edd-blocks-cart__row-footer{padding:.5rem 1.5rem}</style><style id="global-styles-inline-css" type="text/css">body{--wp--preset--color--black:#000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#fff;--wp--preset--color--pale-pink:#f78da7;--wp--preset--color--vivid-red:#cf2e2e;--wp--preset--color--luminous-vivid-orange:#ff6900;--wp--preset--color--luminous-vivid-amber:#fcb900;--wp--preset--color--light-green-cyan:#7bdcb5;--wp--preset--color--vivid-green-cyan:#00d084;--wp--preset--color--pale-cyan-blue:#8ed1fc;--wp--preset--color--vivid-cyan-blue:#0693e3;--wp--preset--color--vivid-purple:#9b51e0;--wp--preset--color--neve-link-color:var(--nv-primary-accent);--wp--preset--color--neve-link-hover-color:var(--nv-secondary-accent);--wp--preset--color--nv-site-bg:var(--nv-site-bg);--wp--preset--color--nv-light-bg:var(--nv-light-bg);--wp--preset--color--nv-dark-bg:var(--nv-dark-bg);--wp--preset--color--neve-text-color:var(--nv-text-color);--wp--preset--color--nv-text-dark-bg:var(--nv-text-dark-bg);--wp--preset--color--nv-c-1:var(--nv-c-1);--wp--preset--color--nv-c-2:var(--nv-c-2);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale:url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale:url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow:url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red:url('#wp-duotone-blue-red');--wp--preset--duotone--midnight:url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow:url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green:url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange:url('#wp-duotone-blue-orange');--wp--preset--font-size--small:13px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:36px;--wp--preset--font-size--x-large:42px;--wp--preset--spacing--20:.44rem;--wp--preset--spacing--30:.67rem;--wp--preset--spacing--40:1rem;--wp--preset--spacing--50:1.5rem;--wp--preset--spacing--60:2.25rem;--wp--preset--spacing--70:3.38rem;--wp--preset--spacing--80:5.06rem;--wp--preset--shadow--natural:6px 6px 9px rgba(0,0,0,.2);--wp--preset--shadow--deep:12px 12px 50px rgba(0,0,0,.4);--wp--preset--shadow--sharp:6px 6px 0 rgba(0,0,0,.2);--wp--preset--shadow--outlined:6px 6px 0 -3px rgba(255,255,255,1),6px 6px rgba(0,0,0,1);--wp--preset--shadow--crisp:6px 6px 0 rgba(0,0,0,1)}:where(.is-layout-flex){gap:.5em}body .is-layout-flow>.alignleft{float:left;margin-inline-start:0;margin-inline-end:2em}body .is-layout-flow>.alignright{float:right;margin-inline-start:2em;margin-inline-end:0}body .is-layout-flow>.aligncenter{margin-left:auto!important;margin-right:auto!important}body .is-layout-constrained>.alignleft{float:left;margin-inline-start:0;margin-inline-end:2em}body .is-layout-constrained>.alignright{float:right;margin-inline-start:2em;margin-inline-end:0}body .is-layout-constrained>.aligncenter{margin-left:auto!important;margin-right:auto!important}body .is-layout-constrained>:where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:var(--wp--style--global--content-size);margin-left:auto!important;margin-right:auto!important}body .is-layout-constrained>.alignwide{max-width:var(--wp--style--global--wide-size)}body .is-layout-flex{display:flex}body .is-layout-flex{flex-wrap:wrap;align-items:center}body .is-layout-flex>*{margin:0}:where(.wp-block-columns.is-layout-flex){gap:2em}.has-black-color{color:var(--wp--preset--color--black)!important}.has-cyan-bluish-gray-color{color:var(--wp--preset--color--cyan-bluish-gray)!important}.has-white-color{color:var(--wp--preset--color--white)!important}.has-pale-pink-color{color:var(--wp--preset--color--pale-pink)!important}.has-vivid-red-color{color:var(--wp--preset--color--vivid-red)!important}.has-luminous-vivid-orange-color{color:var(--wp--preset--color--luminous-vivid-orange)!important}.has-luminous-vivid-amber-color{color:var(--wp--preset--color--luminous-vivid-amber)!important}.has-light-green-cyan-color{color:var(--wp--preset--color--light-green-cyan)!important}.has-vivid-green-cyan-color{color:var(--wp--preset--color--vivid-green-cyan)!important}.has-pale-cyan-blue-color{color:var(--wp--preset--color--pale-cyan-blue)!important}.has-vivid-cyan-blue-color{color:var(--wp--preset--color--vivid-cyan-blue)!important}.has-vivid-purple-color{color:var(--wp--preset--color--vivid-purple)!important}.has-black-background-color{background-color:var(--wp--preset--color--black)!important}.has-cyan-bluish-gray-background-color{background-color:var(--wp--preset--color--cyan-bluish-gray)!important}.has-white-background-color{background-color:var(--wp--preset--color--white)!important}.has-pale-pink-background-color{background-color:var(--wp--preset--color--pale-pink)!important}.has-vivid-red-background-color{background-color:var(--wp--preset--color--vivid-red)!important}.has-luminous-vivid-orange-background-color{background-color:var(--wp--preset--color--luminous-vivid-orange)!important}.has-luminous-vivid-amber-background-color{background-color:var(--wp--preset--color--luminous-vivid-amber)!important}.has-light-green-cyan-background-color{background-color:var(--wp--preset--color--light-green-cyan)!important}.has-vivid-green-cyan-background-color{background-color:var(--wp--preset--color--vivid-green-cyan)!important}.has-pale-cyan-blue-background-color{background-color:var(--wp--preset--color--pale-cyan-blue)!important}.has-vivid-cyan-blue-background-color{background-color:var(--wp--preset--color--vivid-cyan-blue)!important}.has-vivid-purple-background-color{background-color:var(--wp--preset--color--vivid-purple)!important}.has-black-border-color{border-color:var(--wp--preset--color--black)!important}.has-cyan-bluish-gray-border-color{border-color:var(--wp--preset--color--cyan-bluish-gray)!important}.has-white-border-color{border-color:var(--wp--preset--color--white)!important}.has-pale-pink-border-color{border-color:var(--wp--preset--color--pale-pink)!important}.has-vivid-red-border-color{border-color:var(--wp--preset--color--vivid-red)!important}.has-luminous-vivid-orange-border-color{border-color:var(--wp--preset--color--luminous-vivid-orange)!important}.has-luminous-vivid-amber-border-color{border-color:var(--wp--preset--color--luminous-vivid-amber)!important}.has-light-green-cyan-border-color{border-color:var(--wp--preset--color--light-green-cyan)!important}.has-vivid-green-cyan-border-color{border-color:var(--wp--preset--color--vivid-green-cyan)!important}.has-pale-cyan-blue-border-color{border-color:var(--wp--preset--color--pale-cyan-blue)!important}.has-vivid-cyan-blue-border-color{border-color:var(--wp--preset--color--vivid-cyan-blue)!important}.has-vivid-purple-border-color{border-color:var(--wp--preset--color--vivid-purple)!important}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background:var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple)!important}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background:var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan)!important}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange)!important}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red)!important}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background:var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray)!important}.has-cool-to-warm-spectrum-gradient-background{background:var(--wp--preset--gradient--cool-to-warm-spectrum)!important}.has-blush-light-purple-gradient-background{background:var(--wp--preset--gradient--blush-light-purple)!important}.has-blush-bordeaux-gradient-background{background:var(--wp--preset--gradient--blush-bordeaux)!important}.has-luminous-dusk-gradient-background{background:var(--wp--preset--gradient--luminous-dusk)!important}.has-pale-ocean-gradient-background{background:var(--wp--preset--gradient--pale-ocean)!important}.has-electric-grass-gradient-background{background:var(--wp--preset--gradient--electric-grass)!important}.has-midnight-gradient-background{background:var(--wp--preset--gradient--midnight)!important}.has-small-font-size{font-size:var(--wp--preset--font-size--small)!important}.has-medium-font-size{font-size:var(--wp--preset--font-size--medium)!important}.has-large-font-size{font-size:var(--wp--preset--font-size--large)!important}.has-x-large-font-size{font-size:var(--wp--preset--font-size--x-large)!important}.wp-block-navigation a:where(:not(.wp-element-button)){color:inherit}:where(.wp-block-columns.is-layout-flex){gap:2em}.wp-block-pullquote{font-size:1.5em;line-height:1.6}</style><style id="neve-style-inline-css" type="text/css">.nv-meta-list li.meta:not(:last-child):after{content:"/"}.nv-meta-list .no-mobile{display:none}.nv-meta-list li.last::after{content:""!important}@media (min-width:769px){.nv-meta-list .no-mobile{display:inline-block}.nv-meta-list li.last:not(:last-child)::after{content:"/"!important}}:root{--container:748px;--postwidth:100%;--primarybtnbg:var(--nv-primary-accent);--primarybtnhoverbg:var(--nv-primary-accent);--primarybtncolor:#fff;--secondarybtncolor:var(--nv-text-color);--primarybtnhovercolor:#fff;--secondarybtnhovercolor:var(--nv-text-color);--primarybtnborderradius:3px;--secondarybtnborderradius:3px;--btnpadding:13px 15px;--primarybtnpadding:13px 15px;--secondarybtnpadding:13px 15px;--bodyfontfamily:Arial,Helvetica,sans-serif;--bodyfontsize:15px;--bodylineheight:1.6em;--bodyletterspacing:0;--bodyfontweight:400;--bodytexttransform:none;--h1fontsize:36px;--h1fontweight:700;--h1lineheight:1.2em;--h1letterspacing:0;--h1texttransform:none;--h2fontsize:28px;--h2fontweight:700;--h2lineheight:1.3em;--h2letterspacing:0;--h2texttransform:none;--h3fontsize:24px;--h3fontweight:700;--h3lineheight:1.4em;--h3letterspacing:0;--h3texttransform:none;--h4fontsize:20px;--h4fontweight:700;--h4lineheight:1.6;--h4letterspacing:0;--h4texttransform:none;--h5fontsize:16px;--h5fontweight:700;--h5lineheight:1.6;--h5letterspacing:0;--h5texttransform:none;--h6fontsize:14px;--h6fontweight:700;--h6lineheight:1.6;--h6letterspacing:0;--h6texttransform:none;--formfieldborderwidth:2px;--formfieldborderradius:3px;--formfieldbgcolor:var(--nv-site-bg);--formfieldbordercolor:#ddd;--formfieldcolor:var(--nv-text-color);--formfieldpadding:10px 12px}.single-post-container .alignfull>[class*="__inner-container"],.single-post-container .alignwide>[class*="__inner-container"]{max-width:718px}.nv-meta-list{--avatarsize:20px}.single .nv-meta-list{--avatarsize:20px}.neve-main{--boxshadow:0 16px 38px -12px rgba(0,0,0,.56),0 4px 25px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)}.nv-post-cover{--height:250px;--padding:40px 15px;--justify:flex-start;--textalign:left;--valign:center}.nv-post-cover .nv-title-meta-wrap,.nv-page-title-wrap,.entry-header{--textalign:left}.nv-is-boxed.nv-title-meta-wrap{--padding:40px 15px;--bgcolor:var(--nv-dark-bg)}.nv-overlay{--opacity:50;--blendmode:normal}.nv-is-boxed.nv-comments-wrap{--padding:20px}.nv-is-boxed.comment-respond{--padding:20px}.single:not(.single-product),.page{--c-vspace:0 0 0 0;}.global-styled{--bgcolor:var(--nv-site-bg)}.header-top{--rowbcolor:var(--nv-light-bg);--color:var(--nv-text-color);--bgcolor:var(--nv-site-bg)}.header-main{--rowbcolor:var(--nv-light-bg);--color:#555;--bgcolor:var(--nv-site-bg)}.header-bottom{--rowbcolor:var(--nv-light-bg);--color:var(--nv-text-color);--bgcolor:var(--nv-site-bg)}.header-menu-sidebar-bg{--justify:flex-start;--textalign:left;--flexg:1;--wrapdropdownwidth:auto;--color:var(--nv-text-color);--bgcolor:var(--nv-site-bg)}.header-menu-sidebar{width:360px}.builder-item--logo{--maxwidth:120px;--padding:10px 0;--margin:0;--textalign:left;--justify:flex-start}.builder-item--nav-icon,.header-menu-sidebar .close-sidebar-panel .navbar-toggle{--borderradius:0}.builder-item--nav-icon{--label-margin:0 5px 0 0;;--padding:10px 15px;--margin:0}.builder-item--primary-menu{--color:#555;--hovercolor:var(--nv-secondary-accent);--hovertextcolor:var(--nv-text-color);--activecolor:var(--nv-primary-accent);--spacing:20px;--height:25px;--padding:0;--margin:0;--fontsize:1em;--lineheight:1.6em;--letterspacing:0;--fontweight:300;--texttransform:none;--iconsize:1em}.hfg-is-group.has-primary-menu .inherit-ff{--inheritedfw:300}.builder-item--button_base{--primarybtnbg:#15c112;--primarybtncolor:#fff;--primarybtnhoverbg:var(--nv-primary-accent);--primarybtnhovercolor:#fff;--primarybtnborderradius:3px;--primarybtnshadow:none;--primarybtnhovershadow:none;--padding:8px 12px;--margin:0}.builder-item--header_search{--height:40px;--formfieldborderwidth:2px;--formfieldborderradius:2px;--padding:0;--margin:0}.builder-item--header_search_responsive{--iconsize:15px;--color:#bababa;--formfieldfontsize:14px;--formfieldborderwidth:2px;--formfieldborderradius:2px;--height:40px;--padding:0 10px;--margin:0}.footer-top-inner .row{grid-template-columns:1fr;--valign:flex-start}.footer-top{--rowbcolor:var(--nv-light-bg);--color:var(--nv-text-color);--bgcolor:var(--nv-site-bg)}.footer-main-inner .row{grid-template-columns:1fr 1fr 1fr;--valign:flex-start}.footer-main{--rowbcolor:var(--nv-light-bg);--color:var(--nv-text-color);--bgcolor:var(--nv-site-bg)}.footer-bottom-inner .row{grid-template-columns:1fr 1fr 1fr;--valign:flex-start}.footer-bottom{--rowbcolor:var(--nv-light-bg);--color:#555;--bgcolor:var(--nv-site-bg)}.builder-item--footer-one-widgets{--padding:0;--margin:0;--textalign:left;--justify:flex-start}@media(min-width:576px){:root{--container:992px;--postwidth:100%;--btnpadding:13px 15px;--primarybtnpadding:13px 15px;--secondarybtnpadding:13px 15px;--bodyfontsize:16px;--bodylineheight:1.6em;--bodyletterspacing:0;--h1fontsize:38px;--h1lineheight:1.2em;--h1letterspacing:0;--h2fontsize:30px;--h2lineheight:1.2em;--h2letterspacing:0;--h3fontsize:26px;--h3lineheight:1.4em;--h3letterspacing:0;--h4fontsize:22px;--h4lineheight:1.5;--h4letterspacing:0;--h5fontsize:18px;--h5lineheight:1.6;--h5letterspacing:0;--h6fontsize:14px;--h6lineheight:1.6;--h6letterspacing:0}.single-post-container .alignfull>[class*="__inner-container"],.single-post-container .alignwide>[class*="__inner-container"]{max-width:962px}.nv-meta-list{--avatarsize:20px}.single .nv-meta-list{--avatarsize:20px}.nv-post-cover{--height:320px;--padding:60px 30px;--justify:flex-start;--textalign:left;--valign:center}.nv-post-cover .nv-title-meta-wrap,.nv-page-title-wrap,.entry-header{--textalign:left}.nv-is-boxed.nv-title-meta-wrap{--padding:60px 30px}.nv-is-boxed.nv-comments-wrap{--padding:30px}.nv-is-boxed.comment-respond{--padding:30px}.single:not(.single-product),.page{--c-vspace:0 0 0 0;}.header-menu-sidebar-bg{--justify:flex-start;--textalign:left;--flexg:1;--wrapdropdownwidth:auto}.header-menu-sidebar{width:360px}.builder-item--logo{--maxwidth:120px;--padding:10px 0;--margin:0;--textalign:left;--justify:flex-start}.builder-item--nav-icon{--label-margin:0 5px 0 0;;--padding:10px 15px;--margin:0}.builder-item--primary-menu{--spacing:20px;--height:25px;--padding:0;--margin:0;--fontsize:1em;--lineheight:1.6em;--letterspacing:0;--iconsize:1em}.builder-item--button_base{--padding:8px 12px;--margin:0}.builder-item--header_search{--height:40px;--formfieldborderwidth:2px;--formfieldborderradius:2px;--padding:0;--margin:0}.builder-item--header_search_responsive{--formfieldfontsize:14px;--formfieldborderwidth:2px;--formfieldborderradius:2px;--height:40px;--padding:0 10px;--margin:0}.builder-item--footer-one-widgets{--padding:0;--margin:0;--textalign:left;--justify:flex-start}}@media(min-width:960px){:root{--container:1170px;--postwidth:100%;--btnpadding:13px 15px;--primarybtnpadding:13px 15px;--secondarybtnpadding:13px 15px;--bodyfontsize:16px;--bodylineheight:1.6em;--bodyletterspacing:0;--h1fontsize:36px;--h1lineheight:1.1em;--h1letterspacing:0;--h2fontsize:28px;--h2lineheight:1.2em;--h2letterspacing:0;--h3fontsize:24px;--h3lineheight:1.4em;--h3letterspacing:0;--h4fontsize:24px;--h4lineheight:1.5;--h4letterspacing:0;--h5fontsize:20px;--h5lineheight:1.6;--h5letterspacing:0;--h6fontsize:16px;--h6lineheight:1.6;--h6letterspacing:0}body:not(.single):not(.archive):not(.blog):not(.search):not(.error404) .neve-main>.container .col,body.post-type-archive-course .neve-main>.container .col,body.post-type-archive-llms_membership .neve-main>.container .col{max-width:100%}body:not(.single):not(.archive):not(.blog):not(.search):not(.error404) .nv-sidebar-wrap,body.post-type-archive-course .nv-sidebar-wrap,body.post-type-archive-llms_membership .nv-sidebar-wrap{max-width:0%}.neve-main>.archive-container .nv-index-posts.col{max-width:100%}.neve-main>.archive-container .nv-sidebar-wrap{max-width:0%}.neve-main>.single-post-container .nv-single-post-wrap.col{max-width:100%}.single-post-container .alignfull>[class*="__inner-container"],.single-post-container .alignwide>[class*="__inner-container"]{max-width:1140px}.container-fluid.single-post-container .alignfull>[class*="__inner-container"],.container-fluid.single-post-container .alignwide>[class*="__inner-container"]{max-width:calc(100% + 15px)}.neve-main>.single-post-container .nv-sidebar-wrap{max-width:0%}.nv-meta-list{--avatarsize:20px}.single .nv-meta-list{--avatarsize:20px}.nv-post-cover{--height:400px;--padding:60px 40px;--justify:flex-start;--textalign:left;--valign:center}.nv-post-cover .nv-title-meta-wrap,.nv-page-title-wrap,.entry-header{--textalign:left}.nv-is-boxed.nv-title-meta-wrap{--padding:60px 40px}.nv-is-boxed.nv-comments-wrap{--padding:40px}.nv-is-boxed.comment-respond{--padding:40px}.single:not(.single-product),.page{--c-vspace:0 0 0 0;}.header-menu-sidebar-bg{--justify:flex-start;--textalign:left;--flexg:1;--wrapdropdownwidth:auto}.header-menu-sidebar{width:360px}.builder-item--logo{--maxwidth:120px;--padding:10px 0;--margin:0;--textalign:left;--justify:flex-start}.builder-item--nav-icon{--label-margin:0 5px 0 0;;--padding:10px 15px;--margin:0}.builder-item--primary-menu{--spacing:1px;--height:25px;--padding:0;--margin:15px;--fontsize:.95em;--lineheight:1.6em;--letterspacing:0;--iconsize:.95em}.builder-item--button_base{--padding:6px 8px;--margin:0}.builder-item--header_search{--height:40px;--formfieldborderwidth:2px;--formfieldborderradius:2px;--padding:0;--margin:0}.builder-item--header_search_responsive{--formfieldfontsize:14px;--formfieldborderwidth:2px;--formfieldborderradius:2px;--height:40px;--padding:3px 10px 0 20px;;--margin:0}.builder-item--footer-one-widgets{--padding:0;--margin:0;--textalign:left;--justify:flex-start}}:root{--nv-primary-accent:#2f5aae;--nv-secondary-accent:#2f5aae;--nv-site-bg:#fff;--nv-light-bg:#f4f5f7;--nv-dark-bg:#121212;--nv-text-color:#444;--nv-text-dark-bg:#fff;--nv-c-1:#9463ae;--nv-c-2:#be574b;--nv-fallback-ff:Arial,Helvetica,sans-serif}</style><style id="hcb-style-inline-css" type="text/css">:root{--hcb-font-size:14px}:root{--hcb-font-size--mobile:13px}:root{--hcb-font-family:Menlo,Consolas,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif}.hcb_wrap pre:not([data-file]):not([data-show-lang])::before{content:none}</style> <script type="text/javascript" id="gainwp-tracking-analytics-events-js-extra">/* <![CDATA[ */ var gainwpUAEventsData = {"options":{"event_tracking":"1","event_downloads":"zip|mp3*|mpe*g|pdf|docx*|pptx*|xlsx*|rar*","event_bouncerate":0,"aff_tracking":1,"event_affiliates":"prdct|kaiweets.com","hash_tracking":0,"root_domain":"passionelectronique.fr","event_timeout":100,"event_precision":0,"event_formsubmit":0,"ga_pagescrolldepth_tracking":0,"ga_with_gtag":0}}; /* ]]> */</script> <script async="" type="text/javascript" id="cookie-notice-front-js-before">var cnArgs = {"ajaxUrl":"https:\/\/passionelectronique.fr\/wp-admin\/admin-ajax.php","nonce":"c403bf53a1","hideEffect":"fade","position":"bottom","onScroll":false,"onScrollOffset":100,"onClick":false,"cookieName":"cookie_notice_accepted","cookieTime":2592000,"cookieTimeRejected":2592000,"globalCookie":false,"redirection":false,"cache":true,"revokeCookies":false,"revokeCookiesOpt":"automatic"};</script> <link rel="https://api.w.org/" href="https://passionelectronique.fr/wp-json/"><link rel="alternate" type="application/json" href="https://passionelectronique.fr/wp-json/wp/v2/posts/13758"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://passionelectronique.fr/xmlrpc.php?rsd"><link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://passionelectronique.fr/wp-includes/wlwmanifest.xml"><meta name="generator" content="WordPress 6.2.2"><link rel="shortlink" href="https://passionelectronique.fr/?p=13758"><meta name="generator" content="Easy Digital Downloads v3.1.2"><link rel="icon" href="https://passionelectronique.fr/wp-content/uploads/2020/12/cropped-logo_pse_512x512-150x150.jpg" sizes="32x32"><link rel="icon" href="https://passionelectronique.fr/wp-content/uploads/2020/12/cropped-logo_pse_512x512-300x300.jpg" sizes="192x192"><link rel="apple-touch-icon" href="https://passionelectronique.fr/wp-content/uploads/2020/12/cropped-logo_pse_512x512-300x300.jpg"><meta name="msapplication-TileImage" content="https://passionelectronique.fr/wp-content/uploads/2020/12/cropped-logo_pse_512x512-300x300.jpg"> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-109698520-7', 'auto');
ga('send', 'pageview');</script> <noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player,[data-lazy-src]{display:none!important}</style></noscript></head><body class="post-template-default single single-post postid-13758 single-format-standard wp-custom-logo edd-test-mode nv-blog-default nv-sidebar-full-width menu_sidebar_slide_left edd-js cookies-set cookies-accepted" id="neve_body" cz-shortcut-listen="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-dark-grayscale"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0 0.49803921568627"></feFuncR><feFuncG type="table" tableValues="0 0.49803921568627"></feFuncG><feFuncB type="table" tableValues="0 0.49803921568627"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-grayscale"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0 1"></feFuncR><feFuncG type="table" tableValues="0 1"></feFuncG><feFuncB type="table" tableValues="0 1"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-purple-yellow"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0.54901960784314 0.98823529411765"></feFuncR><feFuncG type="table" tableValues="0 1"></feFuncG><feFuncB type="table" tableValues="0.71764705882353 0.25490196078431"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-blue-red"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0 1"></feFuncR><feFuncG type="table" tableValues="0 0.27843137254902"></feFuncG><feFuncB type="table" tableValues="0.5921568627451 0.27843137254902"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-midnight"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0 0"></feFuncR><feFuncG type="table" tableValues="0 0.64705882352941"></feFuncG><feFuncB type="table" tableValues="0 1"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-magenta-yellow"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0.78039215686275 1"></feFuncR><feFuncG type="table" tableValues="0 0.94901960784314"></feFuncG><feFuncB type="table" tableValues="0.35294117647059 0.47058823529412"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-purple-green"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0.65098039215686 0.40392156862745"></feFuncR><feFuncG type="table" tableValues="0 1"></feFuncG><feFuncB type="table" tableValues="0.44705882352941 0.4"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 0 0" width="0" height="0" focusable="false" role="none" style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"><defs><filter id="wp-duotone-blue-orange"><feColorMatrix color-interpolation-filters="sRGB" type="matrix" values=" .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 .299 .587 .114 0 0 "></feColorMatrix><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="table" tableValues="0.098039215686275 1"></feFuncR><feFuncG type="table" tableValues="0 0.66274509803922"></feFuncG><feFuncB type="table" tableValues="0.84705882352941 0.41960784313725"></feFuncB><feFuncA type="table" tableValues="1 1"></feFuncA></feComponentTransfer><feComposite in2="SourceGraphic" operator="in"></feComposite></filter></defs></svg><style>.edd-js-none .edd-has-js,.edd-js .edd-no-js,body.edd-js input.edd-no-js{display:none}</style> <div class="wrapper"><header class="header"> <a class="neve-skip-link show-on-focus" href="#content"> Aller au contenu </a><div id="header-grid" class="hfg_header site-header"><nav class="header--row header-main hide-on-mobile hide-on-tablet layout-full-contained nv-navbar has-center header--row" data-row-id="main" data-show-on="desktop"><div class="header--row-inner header-main-inner"><div class="container"><div class="row row--wrapper" data-section="hfg_header_layout_main"><div class="hfg-slot left"><div class="builder-item desktop-left"><div class="item--inner builder-item--logo" data-section="title_tagline" data-item-id="logo"><div class="site-logo"> <a class="brand" href="https://passionelectronique.fr/" title="← Passion Electronique" aria-label="Passion Electronique" rel="home"><div class="title-with-logo"><img src="uart-i2c-spi_fichiers/logo_pse_rond_48.png" class="neve-site-logo skip-lazy" alt="Logo site Passion Electronique, cours, tutoriels, forum, et discussions autour des composants, modules, et solutions électroniques ou électrique" decoding="async" data-variant="logo" width="48" height="48"><div class="nv-title-tagline-wrap"><p class="site-title">Passion Electronique</p></div></div></a></div></div></div></div><div class="hfg-slot center"><div class="builder-item has-nav"><div class="item--inner builder-item--primary-menu has_menu" data-section="header_menu_primary" data-item-id="primary-menu"><div class="nv-nav-wrap"><div role="navigation" class="nav-menu-primary" aria-label="Menu principal"><ul id="nv-primary-navigation-main" class="primary-menu-ul nav-ul menu-desktop"><li id="menu-item-8344" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-8344 nv-active"><div class="wrap"><a href="https://passionelectronique.fr/bases/"><span class="menu-item-title-wrap dd-title">Bases</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 1" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-8345" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8345"><div class="wrap"><a href="https://passionelectronique.fr/loi-de-kirchhoff/">Lois de Kirchhoff</a></div></li><li id="menu-item-9319" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-9319"><div class="wrap"><a href="https://passionelectronique.fr/theoreme-de-millman/">Théorème de Millman</a></div></li><li id="menu-item-11414" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11414"><div class="wrap"><a href="https://passionelectronique.fr/amplificateurs-operationnels-aop/">Amplificateurs Opérationnels</a></div></li><li id="menu-item-16558" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-16558"><div class="wrap"><a href="https://passionelectronique.fr/encodeur-rotatif-incremental-mecanique/">Encodeurs Rotatifs Incrémentaux</a></div></li><li id="menu-item-12289" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12289"><div class="wrap"><a href="https://passionelectronique.fr/photoresistance/">Photorésistances</a></div></li><li id="menu-item-14099" class="menu-item menu-item-type-post_type menu-item-object-post current-menu-item menu-item-14099 nv-active"><div class="wrap"><a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/" aria-current="page">Protocoles séries (UART, I2C, et SPI)</a></div></li><li id="menu-item-8346" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8346"><div class="wrap"><a href="https://passionelectronique.fr/transistor-mosfet/">Transistors Mosfet</a></div></li></ul></li><li id="menu-item-4458" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-4458"><div class="wrap"><a href="https://passionelectronique.fr/tutoriels/"><span class="menu-item-title-wrap dd-title">Tutoriels</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 9" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-4459" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-4459"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-ads1115/">ADS1115 : convertisseur analogique numérique 15 bits</a></div></li><li id="menu-item-8200" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8200"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-bme280/">BME280 : capteur de température, pression, et taux d’humidité</a></div></li><li id="menu-item-6403" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-6403"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-dht22/">DHT22 : capteur température et hygrométrie</a></div></li><li id="menu-item-5425" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-5425"><div class="wrap"><a href="https://passionelectronique.fr/tutoriel-l298n/">L298N : double driver pour moteur DC</a></div></li><li id="menu-item-10149" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-10149"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-mcp4725/">MCP4725 : convertisseur numérique/analogique 12 bits</a></div></li><li id="menu-item-4460" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-4460"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-nrf24l01/">NRF24L01 : émetteur récepteur 2,4 GHz</a></div></li><li id="menu-item-12752" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12752"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-pcf8574/">PCF8574 : module d’extension entrées/sorties</a></div></li></ul></li><li id="menu-item-3436" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-3436"><div class="wrap"><a href="https://passionelectronique.fr/arduino/"><span class="menu-item-title-wrap dd-title">Arduino</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 17" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-6735" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-6735"><div class="wrap"><a href="https://passionelectronique.fr/carte-sd-arduino/">Carte SD Arduino</a></div></li><li id="menu-item-7331" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-7331"><div class="wrap"><a href="https://passionelectronique.fr/ecran-oled-i2c-arduino/">Écran OLED i2c Arduino</a></div></li><li id="menu-item-6001" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-6001"><div class="wrap"><a href="https://passionelectronique.fr/eeprom-arduino-lire-ecrire/">EEPROM interne Arduino</a></div></li><li id="menu-item-3437" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-3437"><div class="wrap"><a href="https://passionelectronique.fr/generateur-signal-carre-arduino-v1/">Générateur de signaux carrés Arduino</a></div></li><li id="menu-item-13297" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-13297"><div class="wrap"><a href="https://passionelectronique.fr/piloter-un-arduino-depuis-un-pc/">Pilotage d’un Arduino avec Python</a></div></li><li id="menu-item-8918" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8918"><div class="wrap"><a href="https://passionelectronique.fr/pwm-arduino/">PWM arduino</a></div></li><li id="menu-item-5787" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-5787"><div class="wrap"><a href="https://passionelectronique.fr/introduction-timer-arduino/">Timers Arduino</a></div></li><li id="menu-item-11012" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11012"><div class="wrap"><a href="https://passionelectronique.fr/watchdog-arduino/">Watchdog Arduino</a></div></li></ul></li><li id="menu-item-14453" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-14453"><div class="wrap"><a href="https://passionelectronique.fr/raspberry-pi-pico/"><span class="menu-item-title-wrap dd-title">Raspberry Pico</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 26" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-14454" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-14454"><div class="wrap"><a href="https://passionelectronique.fr/le-raspberry-pi-pico/">[INTRO] Raspberry Pi Pico (pinout, schéma, …)</a></div></li><li id="menu-item-15702" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-15702"><div class="wrap"><a href="https://passionelectronique.fr/programmer-raspberry-pico-en-micropython/">[GUIDE] Programmation en MicroPython du RPi Pico</a></div></li></ul></li><li id="menu-item-12310" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-12310"><div class="wrap"><a href="https://passionelectronique.fr/realisations/"><span class="menu-item-title-wrap dd-title">Réalisations</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 29" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-15072" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-15072"><div class="wrap"><a href="https://passionelectronique.fr/lm3914-voltmetre-batterie-12v/">Voltmètre pour batterie auto 12V</a></div></li><li id="menu-item-12990" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12990"><div class="wrap"><a href="https://passionelectronique.fr/z80-cpu-testeur/">Testeur de Z80 (CPU)</a></div></li><li id="menu-item-12311" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12311"><div class="wrap"><a href="https://passionelectronique.fr/thermometre-arduino/">Thermomètre/hygromètre Arduino</a></div></li><li id="menu-item-12312" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12312"><div class="wrap"><a href="https://passionelectronique.fr/alimentation-usb-18650/">Alimentation USB sans fil</a></div></li><li id="menu-item-12313" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12313"><div class="wrap"><a href="https://passionelectronique.fr/voiture-telecommandee-arduino/">Voiture radiocommandée (prototype)</a></div></li></ul></li><li id="menu-item-12055" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-12055"><div class="wrap"><a href="https://passionelectronique.fr/tests-et-avis/"><span class="menu-item-title-wrap dd-title">Tests & Avis</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 35" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-16135" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-16135"><div class="wrap"><a href="https://passionelectronique.fr/kaiweets-ps-3010f-review/">Alimentation stabilisée 30V / 10A (Kaiweets PS3010F)</a></div></li><li id="menu-item-12056" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12056"><div class="wrap"><a href="https://passionelectronique.fr/kaiweets-km601-review/">Multimètre Kaiweets KM601</a></div></li><li id="menu-item-12057" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12057"><div class="wrap"><a href="https://passionelectronique.fr/support-soudage-pcb-rotatif/">Support à souder PCB rotatif 360°</a></div></li><li id="menu-item-13701" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-13701"><div class="wrap"><a href="https://passionelectronique.fr/kaiweets-vt200-review/">Testeur sans contact Kaiweets VT200</a></div></li></ul></li><li id="menu-item-11812" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-11812"><div class="wrap"><a href="https://passionelectronique.fr/boite-a-outils/"><span class="menu-item-title-wrap dd-title">Outils</span></a><div role="button" aria-pressed="false" aria-label="Ouvrir le sous-menu" tabindex="0" class="caret-wrap caret 40" style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></div></div><ul class="sub-menu"><li id="menu-item-11813" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11813"><div class="wrap"><a href="https://passionelectronique.fr/calcul-largeur-piste-pcb-cuivre/">Calculateur de largeur de piste PCB</a></div></li><li id="menu-item-11814" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11814"><div class="wrap"><a href="https://passionelectronique.fr/conversion-mm-mm2/">Convertisseur mm ↔ mm² (section/diamètre)</a></div></li><li id="menu-item-12089" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12089"><div class="wrap"><a href="https://passionelectronique.fr/conversion-awg-mm2/">Convertisseur AWG ↔ mm²</a></div></li></ul></li></ul></div></div></div></div></div><div class="hfg-slot right"><div class="builder-item desktop-left hfg-is-group"><div class="item--inner builder-item--button_base" data-section="header_button" data-item-id="button_base"><div class="component-wrap"> <a href="https://passionelectronique.fr/newsletter/?pseSrc=mnuMain" class="button button-primary">⯈ Newsletter</a></div></div><div class="item--inner builder-item--header_search_responsive" data-section="header_search_responsive" data-item-id="header_search_responsive"><div class="nv-search-icon-component"><div class="menu-item-nav-search minimal"> <a aria-label="Rechercher" href="#" class="nv-icon nv-search"> <svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"></path></svg> </a><div class="nv-nav-search" aria-label="search" style="right: 100%; left: auto;"><div class="form-wrap "><form role="search" method="get" class="search-form" action="https://passionelectronique.fr/"> <label> <span class="screen-reader-text">Rechercher...</span> </label> <input type="search" class="search-field" aria-label="Rechercher" placeholder="Rechercher..." name="s"> <button type="submit" class="search-submit nv-submit" aria-label="Rechercher"> <span class="nv-search-icon-wrap"> <span class="nv-icon nv-search"> <svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"></path></svg> </span> </span> </button></form></div></div></div></div></div></div></div></div></div></div></nav><nav class="header--row header-main hide-on-desktop layout-full-contained nv-navbar header--row" data-row-id="main" data-show-on="mobile"><div class="header--row-inner header-main-inner"><div class="container"><div class="row row--wrapper" data-section="hfg_header_layout_main"><div class="hfg-slot left"><div class="builder-item mobile-left tablet-left"><div class="item--inner builder-item--logo" data-section="title_tagline" data-item-id="logo"><div class="site-logo"> <a class="brand" href="https://passionelectronique.fr/" title="← Passion Electronique" aria-label="Passion Electronique" rel="home"><div class="title-with-logo"><img src="uart-i2c-spi_fichiers/logo_pse_rond_48.png" class="neve-site-logo skip-lazy" alt="Logo site Passion Electronique, cours, tutoriels, forum, et discussions autour des composants, modules, et solutions électroniques ou électrique" decoding="async" data-variant="logo" width="48" height="48"><div class="nv-title-tagline-wrap"><p class="site-title">Passion Electronique</p></div></div></a></div></div></div></div><div class="hfg-slot right"><div class="builder-item mobile-right tablet-right"><div class="item--inner builder-item--nav-icon" data-section="header_menu_icon" data-item-id="nav-icon"><div class="menu-mobile-toggle item-button navbar-toggle-wrapper"> <button type="button" class=" navbar-toggle" value="Menu de navigation" aria-label="Menu de navigation " aria-expanded="false" onclick="if('undefined' !== typeof toggleAriaClick ) { toggleAriaClick() }"> <span class="bars"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </span> <span class="screen-reader-text">Menu de navigation</span> </button></div></div></div></div></div></div></div></nav><div id="header-menu-sidebar" class="header-menu-sidebar tcb menu-sidebar-panel slide_left hfg-pe" data-row-id="sidebar"><div id="header-menu-sidebar-bg" class="header-menu-sidebar-bg"><div class="close-sidebar-panel navbar-toggle-wrapper"> <button type="button" class="hamburger is-active navbar-toggle active" value="Menu de navigation" aria-label="Menu de navigation " aria-expanded="false" onclick="if('undefined' !== typeof toggleAriaClick ) { toggleAriaClick() }"> <span class="bars"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </span> <span class="screen-reader-text"> Menu de navigation </span> </button></div><div id="header-menu-sidebar-inner" class="header-menu-sidebar-inner tcb "><div class="builder-item desktop-left tablet-left mobile-left"><div class="item--inner builder-item--header_search" data-section="header_search" data-item-id="header_search"><div class="component-wrap search-field"><div class="widget widget-search" style="padding: 0;margin: 8px 2px;"><form role="search" method="get" class="search-form" action="https://passionelectronique.fr/"> <label> <span class="screen-reader-text">Rechercher...</span> </label> <input type="search" class="search-field" aria-label="Rechercher" placeholder="Rechercher..." name="s"> <button type="submit" class="search-submit nv-submit" aria-label="Rechercher"> <span class="nv-search-icon-wrap"> <span class="nv-icon nv-search"> <svg width="15" height="15" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z"></path></svg> </span> </span> </button></form></div></div></div></div><div class="builder-item desktop-left tablet-left mobile-left"><div class="item--inner builder-item--button_base" data-section="header_button" data-item-id="button_base"><div class="component-wrap"> <a href="https://passionelectronique.fr/newsletter/?pseSrc=mnuMain" class="button button-primary">⯈ Newsletter</a></div></div></div><div class="builder-item has-nav"><div class="item--inner builder-item--primary-menu has_menu" data-section="header_menu_primary" data-item-id="primary-menu"><div class="nv-nav-wrap"><div role="navigation" class="nav-menu-primary" aria-label="Menu principal"><ul id="nv-primary-navigation-sidebar" class="primary-menu-ul nav-ul menu-mobile"><li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-ancestor current-menu-parent current-post-parent menu-item-has-children menu-item-8344 nv-active"><div class="wrap"><a href="https://passionelectronique.fr/bases/"><span class="menu-item-title-wrap dd-title">Bases</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 1 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8345"><div class="wrap"><a href="https://passionelectronique.fr/loi-de-kirchhoff/">Lois de Kirchhoff</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-9319"><div class="wrap"><a href="https://passionelectronique.fr/theoreme-de-millman/">Théorème de Millman</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11414"><div class="wrap"><a href="https://passionelectronique.fr/amplificateurs-operationnels-aop/">Amplificateurs Opérationnels</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-16558"><div class="wrap"><a href="https://passionelectronique.fr/encodeur-rotatif-incremental-mecanique/">Encodeurs Rotatifs Incrémentaux</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12289"><div class="wrap"><a href="https://passionelectronique.fr/photoresistance/">Photorésistances</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post current-menu-item menu-item-14099 nv-active"><div class="wrap"><a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/" aria-current="page">Protocoles séries (UART, I2C, et SPI)</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8346"><div class="wrap"><a href="https://passionelectronique.fr/transistor-mosfet/">Transistors Mosfet</a></div></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-4458"><div class="wrap"><a href="https://passionelectronique.fr/tutoriels/"><span class="menu-item-title-wrap dd-title">Tutoriels</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 9 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-4459"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-ads1115/">ADS1115 : convertisseur analogique numérique 15 bits</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8200"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-bme280/">BME280 : capteur de température, pression, et taux d’humidité</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-6403"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-dht22/">DHT22 : capteur température et hygrométrie</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-5425"><div class="wrap"><a href="https://passionelectronique.fr/tutoriel-l298n/">L298N : double driver pour moteur DC</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-10149"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-mcp4725/">MCP4725 : convertisseur numérique/analogique 12 bits</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-4460"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-nrf24l01/">NRF24L01 : émetteur récepteur 2,4 GHz</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12752"><div class="wrap"><a href="https://passionelectronique.fr/tutorial-pcf8574/">PCF8574 : module d’extension entrées/sorties</a></div></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-3436"><div class="wrap"><a href="https://passionelectronique.fr/arduino/"><span class="menu-item-title-wrap dd-title">Arduino</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 17 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-6735"><div class="wrap"><a href="https://passionelectronique.fr/carte-sd-arduino/">Carte SD Arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-7331"><div class="wrap"><a href="https://passionelectronique.fr/ecran-oled-i2c-arduino/">Écran OLED i2c Arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-6001"><div class="wrap"><a href="https://passionelectronique.fr/eeprom-arduino-lire-ecrire/">EEPROM interne Arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-3437"><div class="wrap"><a href="https://passionelectronique.fr/generateur-signal-carre-arduino-v1/">Générateur de signaux carrés Arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-13297"><div class="wrap"><a href="https://passionelectronique.fr/piloter-un-arduino-depuis-un-pc/">Pilotage d’un Arduino avec Python</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-8918"><div class="wrap"><a href="https://passionelectronique.fr/pwm-arduino/">PWM arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-5787"><div class="wrap"><a href="https://passionelectronique.fr/introduction-timer-arduino/">Timers Arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11012"><div class="wrap"><a href="https://passionelectronique.fr/watchdog-arduino/">Watchdog Arduino</a></div></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-14453"><div class="wrap"><a href="https://passionelectronique.fr/raspberry-pi-pico/"><span class="menu-item-title-wrap dd-title">Raspberry Pico</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 26 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-14454"><div class="wrap"><a href="https://passionelectronique.fr/le-raspberry-pi-pico/">[INTRO] Raspberry Pi Pico (pinout, schéma, …)</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-15702"><div class="wrap"><a href="https://passionelectronique.fr/programmer-raspberry-pico-en-micropython/">[GUIDE] Programmation en MicroPython du RPi Pico</a></div></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-12310"><div class="wrap"><a href="https://passionelectronique.fr/realisations/"><span class="menu-item-title-wrap dd-title">Réalisations</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 29 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-15072"><div class="wrap"><a href="https://passionelectronique.fr/lm3914-voltmetre-batterie-12v/">Voltmètre pour batterie auto 12V</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12990"><div class="wrap"><a href="https://passionelectronique.fr/z80-cpu-testeur/">Testeur de Z80 (CPU)</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12311"><div class="wrap"><a href="https://passionelectronique.fr/thermometre-arduino/">Thermomètre/hygromètre Arduino</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12312"><div class="wrap"><a href="https://passionelectronique.fr/alimentation-usb-18650/">Alimentation USB sans fil</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12313"><div class="wrap"><a href="https://passionelectronique.fr/voiture-telecommandee-arduino/">Voiture radiocommandée (prototype)</a></div></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-12055"><div class="wrap"><a href="https://passionelectronique.fr/tests-et-avis/"><span class="menu-item-title-wrap dd-title">Tests & Avis</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 35 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-16135"><div class="wrap"><a href="https://passionelectronique.fr/kaiweets-ps-3010f-review/">Alimentation stabilisée 30V / 10A (Kaiweets PS3010F)</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12056"><div class="wrap"><a href="https://passionelectronique.fr/kaiweets-km601-review/">Multimètre Kaiweets KM601</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12057"><div class="wrap"><a href="https://passionelectronique.fr/support-soudage-pcb-rotatif/">Support à souder PCB rotatif 360°</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-13701"><div class="wrap"><a href="https://passionelectronique.fr/kaiweets-vt200-review/">Testeur sans contact Kaiweets VT200</a></div></li></ul></li><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-11812"><div class="wrap"><a href="https://passionelectronique.fr/boite-a-outils/"><span class="menu-item-title-wrap dd-title">Outils</span></a><button tabindex="0" type="button" class="caret-wrap navbar-toggle 40 " style="margin-left:5px;"><span class="caret"><svg fill="currentColor" aria-label="Liste déroulante" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></span></button></div><ul class="sub-menu"><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11813"><div class="wrap"><a href="https://passionelectronique.fr/calcul-largeur-piste-pcb-cuivre/">Calculateur de largeur de piste PCB</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-11814"><div class="wrap"><a href="https://passionelectronique.fr/conversion-mm-mm2/">Convertisseur mm ↔ mm² (section/diamètre)</a></div></li><li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-12089"><div class="wrap"><a href="https://passionelectronique.fr/conversion-awg-mm2/">Convertisseur AWG ↔ mm²</a></div></li></ul></li></ul></div></div></div></div></div></div></div><div class="header-menu-sidebar-overlay hfg-ov hfg-pe" onclick="if('undefined' !== typeof toggleAriaClick ) { toggleAriaClick() }"></div></div></header><style>.is-menu-sidebar .header-menu-sidebar{visibility:visible}.is-menu-sidebar.menu_sidebar_slide_left .header-menu-sidebar{transform:translate3d(0,0,0);left:0}.is-menu-sidebar.menu_sidebar_slide_right .header-menu-sidebar{transform:translate3d(0,0,0);right:0}.is-menu-sidebar.menu_sidebar_pull_right .header-menu-sidebar,.is-menu-sidebar.menu_sidebar_pull_left .header-menu-sidebar{transform:translateX(0)}.is-menu-sidebar.menu_sidebar_dropdown .header-menu-sidebar{height:auto}.is-menu-sidebar.menu_sidebar_dropdown .header-menu-sidebar-inner{max-height:400px;padding:20px 0}.is-menu-sidebar.menu_sidebar_full_canvas .header-menu-sidebar{opacity:1}.header-menu-sidebar .menu-item-nav-search{pointer-events:none}.header-menu-sidebar .menu-item-nav-search .is-menu-sidebar &{pointer-events:unset}.nav-ul li:focus-within .wrap.active+.sub-menu{opacity:1;visibility:visible}.nav-ul li.neve-mega-menu:focus-within .wrap.active+.sub-menu{display:grid}.nav-ul li>.wrap{display:flex;align-items:center;position:relative;padding:0 4px}.nav-ul:not(.menu-mobile):not(.neve-mega-menu)>li>.wrap>a{padding-top:1px}</style><style>.header-menu-sidebar .nav-ul li .wrap{padding:0 4px}.header-menu-sidebar .nav-ul li .wrap a{flex-grow:1;display:flex}.header-menu-sidebar .nav-ul li .wrap a .dd-title{width:var(--wrapdropdownwidth)}.header-menu-sidebar .nav-ul li .wrap button{border:0;z-index:1;background:0}.header-menu-sidebar .nav-ul li:not([class*=block]):not(.menu-item-has-children)>.wrap>a{padding-right:calc(1em + (18px*2))}</style><main id="content" class="neve-main"><div class="container single-post-container"><div class="row"><article id="post-13758" class="nv-single-post-wrap col post-13758 post type-post status-publish format-standard has-post-thumbnail hentry category-bases tag-cours-pratiques tag-decouverte"><div class="entry-header"><div class="nv-title-meta-wrap"><small class="neve-breadcrumbs-wrapper"><nav aria-label="breadcrumbs" class="rank-math-breadcrumb"><a href="https://passionelectronique.fr/">Accueil</a><span class="separator"> > </span><a href="https://passionelectronique.fr/bases/">Bases d'électronique</a><span class="separator"> > </span><span class="last">Introduction aux liaisons séries filaires UART, I2C, et SPI (et détail de leurs protocoles de communication)</span></nav></small><h1 class="title entry-title">Introduction aux liaisons séries filaires UART, I2C, et SPI (et détail de leurs protocoles de communication)</h1></div></div><div class="nv-thumb-wrap"><img src="uart-i2c-spi_fichiers/tuto-communications-series-en-electronique.jpg" class="skip-lazy wp-post-image" alt="Tutorial communications séries électroniques, type UART I2C ou SPI, cours pratique sur liaisons filaires avec détail protocoles sérial échange de données" decoding="async" srcset="uart-i2c-spi_fichiers/tuto-communications-series-en-electronique.jpg 930w, uart-i2c-spi_fichiers/tuto-communications-series-en-electronique-300x169.jpg 300w, uart-i2c-spi_fichiers/tuto-communications-series-en-electronique-150x84.jpg 150w, uart-i2c-spi_fichiers/tuto-communications-series-en-electronique-768x432.jpg 768w" sizes="(max-width: 930px) 100vw, 930px" width="930" height="523"></div><div class="nv-content-wrap entry-content"><p>UART,
I2C, SPI, … ces acronymes vous parlent sûrement, car on les retrouve
souvent, en électronique ! Comme vous le savez certainement déjà,
ce sont <strong>différents types de communication série filaire</strong>. Mais en pratique, savez-vous <span style="text-decoration: underline;">comment ils se câblent ? comment ils fonctionnent ? et à quel débit on peut les utiliser ?</span></p><p>C’est en tout cas ce que je vous propose de découvrir aujourd’hui, au travers de cet <strong>article sur les différents types de liaisons séries filaires</strong>. Par contre, pour rester digeste, je me limiterai ici à présenter uniquement les <span style="text-decoration: underline;">« principaux »
protocoles de communication série, que nous rencontrons couramment de
nos jours, sur nos petites cartes à microcontrôleur</span> (comme l’Arduino, par exemple). Alors en avant !</p><div class="bannMaster"><div class="bannContainer"><div class="bannGauche">Ce contenu vous plaît ? Alors abonnez-vous à la Newsletter pour ne rien louper !</div><div class="bannDroite"><button><a href="https://passionelectronique.fr/newsletter/?pseSrc=pgLiaisonsSeriesFilaires&psePos=pgUp">📜 Recevoir la Newsletter !</a></button></div></div></div><p><em>Gardez bien à l’esprit que <strong>cet article n’est qu’une introduction aux liaisons filaires séries</strong>.
C’est pourquoi je n’entrerai pas trop dans les détails de chaque
protocole, et me concentrerai sur l’essentiel. Par ailleurs, dites vous
bien qu’<span style="text-decoration: underline;">il existe de très
nombreux autres protocoles de communication série, qui ne sont
d’ailleurs pas moins importants que ceux que je vous présente ici</span>.
Je pense notamment aux protocoles 1-Wire, RS-232, bus CAN, USB, etc.
Mais pour l’heure, voyons déjà ceux que je vous ai préparé 😉</em></p><div class="lwptoc lwptoc-autoWidth lwptoc-light lwptoc-notInherit" data-smooth-scroll="1" data-smooth-scroll-offset="24" data-lwptoc-initialized="1"><div class="lwptoc_i"><div class="lwptoc_header"> <b class="lwptoc_title">Sommaire</b> <span class="lwptoc_toggle"> <a href="#" class="lwptoc_toggle_label" data-label="Afficher">Masquer</a> </span></div><div class="lwptoc_items lwptoc_items-visible"><div class="lwptoc_itemWrap"><div class="lwptoc_item"> <a href="#generalites"> <span class="lwptoc_item_number">1.</span> <span class="lwptoc_item_label">Généralités</span> </a></div><div class="lwptoc_item"> <a href="#la-liaison-serie-uart"> <span class="lwptoc_item_number">2.</span> <span class="lwptoc_item_label">La liaison série UART</span> </a></div><div class="lwptoc_item"> <a href="#la-liaison-serie-i2c"> <span class="lwptoc_item_number">3.</span> <span class="lwptoc_item_label">La liaison série I2C</span> </a></div><div class="lwptoc_item"> <a href="#la-liaison-serie-spi"> <span class="lwptoc_item_number">4.</span> <span class="lwptoc_item_label">La liaison série SPI</span> </a></div><div class="lwptoc_item"> <a href="#les-autres-protocoles-de-communication-serie-filaires"> <span class="lwptoc_item_number">5.</span> <span class="lwptoc_item_label">Les autres protocoles de communication série filaires</span> </a></div><div class="lwptoc_item"> <a href="#tableau-comparatif-uart-i2c-spi-synthese"> <span class="lwptoc_item_number">6.</span> <span class="lwptoc_item_label">Tableau comparatif UART / I2C / SPI (synthèse)</span> </a></div><div class="lwptoc_item"> <a href="#conclusion"> <span class="lwptoc_item_number">7.</span> <span class="lwptoc_item_label">Conclusion</span> </a></div></div></div></div></div><h2 class="wp-block-heading h2count"><span id="generalites">Généralités</span></h2><p>Par définition, <strong>une
liaison série est un moyen de relier deux éléments (ou plus), afin que
ceux-ci puissent échanger des informations, et ce, en utilisant un
minimum de fils</strong>. Basiquement, <span style="text-decoration: underline;">les informations transmises sont envoyées bit après bit, sur une ligne dédiée aux données</span> (contrairement aux « liaisons parallèles », qui elles, peuvent envoyer parallèlement plusieurs données à la fois).</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="uart-i2c-spi_fichiers/communication-serie-vs-parallele-electronique.jpg" alt="Comparatif transmission série vs parallèle, principe de communication sériel ou simultané au niveau des bits de données, différences expliquées couleur" class="wp-image-13812 lazyloaded" sizes="(max-width: 850px) 100vw, 850px" srcset="uart-i2c-spi_fichiers/communication-serie-vs-parallele-electronique.jpg 850w, uart-i2c-spi_fichiers/communication-serie-vs-parallele-electronique-300x244.jpg 300w, uart-i2c-spi_fichiers/communication-serie-vs-parallele-electronique-150x122.jpg 150w, uart-i2c-spi_fichiers/communication-serie-vs-parallele-electronique-768x623.jpg 768w" data-ll-status="loaded" width="850" height="690"><noscript><img decoding="async" width="850" height="690" src="https://passionelectronique.fr/wp-content/uploads/communication-serie-vs-parallele-electronique.jpg" alt="Comparatif transmission série vs parallèle, principe de communication sériel ou simultané au niveau des bits de données, différences expliquées couleur" class="wp-image-13812" srcset="https://passionelectronique.fr/wp-content/uploads/communication-serie-vs-parallele-electronique.jpg 850w, https://passionelectronique.fr/wp-content/uploads/communication-serie-vs-parallele-electronique-300x244.jpg 300w, https://passionelectronique.fr/wp-content/uploads/communication-serie-vs-parallele-electronique-150x122.jpg 150w, https://passionelectronique.fr/wp-content/uploads/communication-serie-vs-parallele-electronique-768x623.jpg 768w" sizes="(max-width: 850px) 100vw, 850px"></noscript></figure></div><p>En pratique, il existe <strong>différentes manières d’établir une liaison série, avec différents protocoles</strong>. C’est ce que nous allons voir ensemble, dans cet article, au travers des protocoles UART, I2C, et SPI. D’ailleurs, <span style="text-decoration: underline;">vous
avez peut-être déjà utilisé ces différents types de communication série
dans le passé, sans même vous poser plus de questions que cela</span>
(au niveau de leur vitesse min/max usuelle de fonctionnement, ou leur
distance maximale atteignable avec, par exemple). C’est pourquoi je vous
propose d’en découvrir un peu plus aujourd’hui !</p><p>À noter
qu’on retrouve énormément de « périphériques séries » de nos
jours, facilement interfaçables avec nos petits microcontrôleurs. Je
pense notamment aux :</p><ul><li>sondes de température, pression, ou humidité (comme le <a href="https://passionelectronique.fr/tutorial-bme280/?pseSrc=pgLiaisonsSeriesFilaires">module BME280</a>)</li><li>émetteurs/récepteurs radio (comme le <a href="https://passionelectronique.fr/tutorial-nrf24l01/?pseSrc=pgLiaisonsSeriesFilaires">module NRF24L01</a>)</li><li>afficheurs LCD série ou <a href="https://passionelectronique.fr/ecran-oled-i2c-arduino/?pseSrc=pgLiaisonsSeriesFilaires">écran OLED</a></li><li>modules <a href="https://passionelectronique.fr/carte-sd-arduino/?pseSrc=pgLiaisonsSeriesFilaires">lecteur de carte SD</a></li><li>convertisseurs analogique/numérique, ou ADC en anglais (comme le <a href="https://passionelectronique.fr/tutorial-ads1115/?pseSrc=pgLiaisonsSeriesFilaires">module ADS1115</a>)</li><li>convertisseurs numérique/analogique, ou DAC en anglais (comme le <a href="https://passionelectronique.fr/tutorial-mcp4725/?pseSrc=pgLiaisonsSeriesFilaires">module MCP4725</a>)</li><li>périphériques d’ajout d’entrées/sorties (comme le <a href="https://passionelectronique.fr/tutorial-pcf8574/?pseSrc=pgLiaisonsSeriesFilaires">module PCF8574</a>)</li><li>mémoires « de type série » (certaines RAM, EEPROM, …)</li><li>et j’en passe … car la liste serait très longue !</li></ul><p>Leur pilotage est d’ailleurs assez aisé, car <strong>les liaisons séries sont généralement gérées en interne, au niveau de microcontrôleurs actuels</strong>. Et une simple librairie logiciel permet souvent d’en prendre facilement le contrôle. Mais attention, car <span style="text-decoration: underline;">chaque microcontrôleur a ses spécificités, et tous ne peuvent pas gérer tous les protocoles séries qui existent</span>.
En effet, certains sauront gérer uniquement le UART/I2C/SPI, tandis que
d’autres sauront gérer le bus CAN en plus, ou l’USB, par exemple. Au
final, vous devrez donc consulter leur fiche technique avant tout, afin
de savoir s’ils savent nativement prendre en charge tel ou tel protocole
de communication série, avant d’envisager de vous en servir.</p><p class="has-background" style="background-color:#fffbd6"><span style="text-decoration: underline;">Nota</span> : lorsqu’un microcontrôleur n’a pas de « bloc interne » pour gérer tel ou tel protocole, sachez qu’<strong>il est souvent possible d’émuler une communication série, de manière logicielle, si nécessaire</strong>.
Cependant, cela peut être ardu à coder, et difficile à mettre en œuvre
avec le reste du code (tant certains timing de communication série sont
critiques). Cela étant dit, <span style="text-decoration: underline;">certaines
puces électroniques peuvent pallier à ce problème, en gérant
indépendamment tel ou tel protocole à la place d’un µC, de manière
autonome</span>. Je pense par exemple au MCP2515 de Microchip, qui peut
gérer un bus CAN « à lui tout seul », et « faire
tampon » entre ce bus et le microcontrôleur.</p><p>Enfin, pour votre culture, sachez que :</p><ul><li><strong>les transmissions séries peuvent être de type « point-à-point » ou « multi-points »</strong>.
Dans le premier cas, il s’agit d’une communication entre 2 éléments
seulement (comme c’est le cas avec les protocoles UART, RS-232, et SATA,
par exemple). Dans le deuxième cas, un élément peut communiquer avec
tous les autres (comme c’est le cas avec les protocoles I2C, SPI,
RS-485, Ethernet, USB, … et bien d’autres !).</li><li><strong>la communication série peut être synchrone et asynchrone</strong>,
selon si l’échange de données se fait au rythme des coups d’horloge
d’une ligne externe dédiée (et partagée physiquement entre toutes les
« personnes » communicantes). Par exemple : les
protocoles UART et CAN sont asynchrones (aucune horloge), tandis que
l’I2C et le SPI sont synchrones (signal d’horloge présent).</li><li><strong>la
communication peut être du type « une personne parle à la
fois », ou « plusieurs peuvent parler à la fois »</strong>.
On parle alors de communication « half-duplex » (ou
semi-duplex), si la communication s’alterne entre deux communicants,
sans se chevaucher. Et on parle de communication
« full-duplex » (ou duplex intégral), si deux
« personnes » peuvent parler en même temps (comme c’est par
exemple le cas avec nos téléphones portables, où chaque personne peut
parler en même temps que l’autre).</li><li><strong>les lignes de communication peuvent être unidirectionnelles ou bi-directionnelles</strong>.
C’est à dire que les données peuvent circuler dans un seul sens
uniquement, ou bien dans un sens ou l’autre. Un exemple de lignes
unidirectionnelles : les lignes MOSI et MISO du SPI ; et un exemple de
ligne bidirectionnelle : la ligne SDA du I2C.</li><li><strong>la communication série peut se faire entre « 2 personnes uniquement » ou « avec plusieurs interlocuteurs »</strong>.
Dans le premier cas, on parle d’échange « point à point »,
tandis que dans l’autre, on parle d’architecture maître/esclaves (car
dans ce cas, une personne est « maître » de la conversation,
pour éviter la « cacophonie » !).</li><li><strong>une adresse peut être attribuée à chaque destinataire</strong>,
que cela se fasse de manière « logicielle », en encodant
l’adresse du destinataire à même le message transmis à travers tous le
réseau, ou « matériel », en assignant une ligne de contrôle
par destinataire (comme sur le bus SPI, où des lignes /CS ou /SS
permettent de faire « l’aiguillage »).</li></ul><p>Voilà pour
les grandes lignes ! J’espère d’ailleurs ne pas vous avoir perdu en
cours de route ! À présent, commençons par découvrir le protocole
UART 😉</p><h2 class="wp-block-heading h2count"><span id="la-liaison-serie-uart">La liaison série UART</span></h2><p>Le <strong>premier protocole série dont je vais vous parler aujourd’hui est le UART</strong>
(de l’anglais « Universal Asynchronous Receiver Transmitter »). Il
permet à deux éléments (pas plus), de communiquer ensemble, via une
liaison série filaire.</p><p>Petite parenthèse, si vous ne le saviez pas : <span style="text-decoration: underline;">c’est justement au travers du port UART que les microcontrôleurs ATmega de nos Arduino sont programmés, depuis un PC</span>.
Bien entendu, tout ceci est au passage interfacé avec du USB, pour
faire le lien entre PC et port UART de l’Arduino. Mais au final,<strong> c’est bien grâce à cette liaison série UART que nos Arduino sont programmé, depuis leur connecteur USB</strong>.
C’est pourquoi je vous parle de ce protocole série en premier, même
s’il est beaucoup moins utilisé que l’I2C ou le SPI, que nous verrons
ensuite.</p><p>Basiquement, une liaison série UART n’utilise que 3 fils (hors alimentation positive) :</p><ul><li><span style="text-decoration: underline;">2 fils de communication</span> (l’un pour envoyer des données, et l’autre pour recevoir des données)</li><li><span style="text-decoration: underline;">1 fil pour la masse</span>, pour garantir l’équipotentialité de ces signaux</li></ul><p><strong>La
liaison UART est ce qu’on appelle une liaison point à point, en ce sens
qu’elle ne permet de relier que 2 éléments, et deux éléments seulement</strong>
(ces éléments pouvant être un microcontrôleur et des périphériques, par
exemple, ou deux microcontrôleurs qui s’échangent des données). Cette
liaison est bidirectionnelle, c’est à dire que les données peuvent aller
dans un sens, ou dans l’autre.</p><p>En fait, chaque élément dispose de :</p><ul><li><span style="text-decoration: underline;">une entrée pour la réception de données</span>, notée RX</li><li><span style="text-decoration: underline;">une sortie pour la transmission de données</span>, notée TX</li></ul><p>Et
comme vous l’aurez compris, pour que tout n’entre pas en collision, le
TX du premier élément se branche sur le RX du second, et le TX du second
élément revient se brancher sur le RX du premier. En clair : <strong>une
liaison filaire UART comporte 2 fils de communication, dont le premier
permet de faire circuler les données dans un sens (TX → RX), et dont le
second permet de faire circuler les données dans l’autre sens (RX ← TX)</strong>.</p><p>En image, voici ce que cela donne :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="uart-i2c-spi_fichiers/cablage-uart-communication-point-a-point.jpg" alt="Câblage liaison série UART, avec lignes TX et RX entre deux éléments, type microcontrôleur et périphérique quelconque, avec lien GND de masse" class="wp-image-13813 lazyloaded" sizes="(max-width: 850px) 100vw, 850px" srcset="uart-i2c-spi_fichiers/cablage-uart-communication-point-a-point.jpg 850w, uart-i2c-spi_fichiers/cablage-uart-communication-point-a-point-300x244.jpg 300w, uart-i2c-spi_fichiers/cablage-uart-communication-point-a-point-150x122.jpg 150w, uart-i2c-spi_fichiers/cablage-uart-communication-point-a-point-768x623.jpg 768w" data-ll-status="loaded" width="850" height="690"><noscript><img decoding="async" width="850" height="690" src="https://passionelectronique.fr/wp-content/uploads/cablage-uart-communication-point-a-point.jpg" alt="Câblage liaison série UART, avec lignes TX et RX entre deux éléments, type microcontrôleur et périphérique quelconque, avec lien GND de masse" class="wp-image-13813" srcset="https://passionelectronique.fr/wp-content/uploads/cablage-uart-communication-point-a-point.jpg 850w, https://passionelectronique.fr/wp-content/uploads/cablage-uart-communication-point-a-point-300x244.jpg 300w, https://passionelectronique.fr/wp-content/uploads/cablage-uart-communication-point-a-point-150x122.jpg 150w, https://passionelectronique.fr/wp-content/uploads/cablage-uart-communication-point-a-point-768x623.jpg 768w" sizes="(max-width: 850px) 100vw, 850px"></noscript></figure></div><p>Vous voyez donc qu’au final :</p><ul><li><span style="text-decoration: underline;">une liaison UART comporte bien 3 fils</span>
(1 pour la communication dans un sens, 1 autre pour la communication
dans l’autre sens, et 1 fil de masse … hors alimentation positive, bien
sûr !)</li><li><span style="text-decoration: underline;">les
broches RX et TX du premier élément se branchent respectivement sur les
broches TX et RX du second (« croisement » des fils)</span>, afin que les données ne circulent que dans un seul sens, au niveau de chaque fil</li><li><span style="text-decoration: underline;">la communication est bidirectionnelle, en ce sens où chaque élément peut envoyer ou recevoir des informations</span>
(même si, sur le plan strictement physique, cette communication
bidirectionnelle repose effectivement sur 2 fils de communication
unidirectionnels)</li><li><span style="text-decoration: underline;">et chaque élément peut fonctionner en émetteur seul, récepteur seul, ou émetteur/récepteur</span> (comme vous voulez !)</li></ul><p>À noter que <strong>les lignes de données TX et RX sont indépendantes l’une de l’autre</strong>.
Du coup, les données peuvent théoriquement circuler simultanément sur
ces deux lignes, et qui plus est, de manière totalement asynchrone (d’où
le « A » dans l’acronyme « UART). <span style="text-decoration: underline;">Cette communication simultanée UART s’appelle le « full-duplex »</span> (à l’image d’une conversation téléphonique, où chaque personne peut effectivement parler en même temps que l’autre).</p><p>Au niveau du protocole UART en lui-même, voici ce que l’on peut en dire :</p><ul><li><span style="text-decoration: underline;">les données sont envoyées bit à bit</span>, les uns après les autres (d’où l’appellation « série »)</li><li><span style="text-decoration: underline;">les données ne peuvent être égales qu’à 0 ou 1</span>
(pour le 0, cela correspond à une mise à l’état bas sur la ligne TX,
tandis que pour un 1, cela correspond à une mise à l’état haut)</li><li><span style="text-decoration: underline;">les données sont envoyées sous forme de séquence</span>, prototypées de la manière suivante :<ul><li>un <strong>bit de départ</strong>, appelé « start bit » (correspondant à un état bas forcé)</li><li>les <strong>bits de données</strong> (nota : seuls 5 à 9 bits peuvent être envoyés à la suite, ni plus, ni moins !)</li><li>un <strong>bit de parité, optionnel</strong>
(pouvant servir à la détection d’erreur). Lorsqu’on fonctionne en mode
« sans parité », ce bit est absent. Lorsqu’on fonctionne en
mode « parité paire », ce bit est mis à 1 si le nombre de bits
à 1 au niveau des données est pair lui aussi ; sinon ce bit de
parité est mis à 0. Et lorsqu’on fonctionne en mode « parité
impaire », ce bit est mis à 1 si le nombre de bits à 1 au niveau
des données est impair lui aussi ; sinon ce bit de parité est mis à
0.</li><li>et un <strong>bit de fin</strong>, appelé « stop
bit », correspondant à un état haut forcé (à noter que la durée de
ce bit de fin peut être rallongée, d’une fois et demi à deux fois, si
souhaité ; mais en temps « normal », la durée d’un stop
bit est égale à celle d’un start bit)</li></ul></li><li><span style="text-decoration: underline;">la vitesse d’envoi de ces données est normalisée</span> ;
les valeurs standard les plus utilisées sont : 1200, 2400, 4800,
9600, 115200 bauds (mais il en existe des plus basses, et de bien plus
hautes). À noter qu’ici, dans le cas du protocole UART, 1 baud = 1 bit
par seconde ; donc 9600 bauds équivalent à 9600 bits/s, dans ce cas
précis (attention, car 1 baud n’est pas toujours égal à 1 bit par
seconde).</li></ul><p>Graphiquement, voici comment nous pourrions représenter cette trame de données formatées :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="uart-i2c-spi_fichiers/trame-communication-uart-protocole-serie.jpg" alt="Trame communication UART, séquence protocole série pour transmission de données séries, avec bit de start, stop, et parité, selon configuration" class="wp-image-13814 lazyloaded" sizes="(max-width: 850px) 100vw, 850px" srcset="uart-i2c-spi_fichiers/trame-communication-uart-protocole-serie.jpg 850w, uart-i2c-spi_fichiers/trame-communication-uart-protocole-serie-300x244.jpg 300w, uart-i2c-spi_fichiers/trame-communication-uart-protocole-serie-150x122.jpg 150w, uart-i2c-spi_fichiers/trame-communication-uart-protocole-serie-768x623.jpg 768w" data-ll-status="loaded" width="850" height="690"><noscript><img decoding="async" width="850" height="690" src="https://passionelectronique.fr/wp-content/uploads/trame-communication-uart-protocole-serie.jpg" alt="Trame communication UART, séquence protocole série pour transmission de données séries, avec bit de start, stop, et parité, selon configuration" class="wp-image-13814" srcset="https://passionelectronique.fr/wp-content/uploads/trame-communication-uart-protocole-serie.jpg 850w, https://passionelectronique.fr/wp-content/uploads/trame-communication-uart-protocole-serie-300x244.jpg 300w, https://passionelectronique.fr/wp-content/uploads/trame-communication-uart-protocole-serie-150x122.jpg 150w, https://passionelectronique.fr/wp-content/uploads/trame-communication-uart-protocole-serie-768x623.jpg 768w" sizes="(max-width: 850px) 100vw, 850px"></noscript></figure></div><p class="has-background" style="background-color:#fffbd6"><span style="text-decoration: underline;">Petit aparté</span> : généralement, <strong>les niveaux de tension d’une liaison série UART sont de type TTL</strong>
(soit 0 volt pour un niveau bas, et +5V pour un niveau haut). Mais une
communication UART peut tout aussi bien fonctionner en 3,3 volts, par
exemple, du moment où les deux éléments qui communiquent travaillent sur
les mêmes niveaux de tension. Du reste, <span style="text-decoration: underline;">en l’absence de données à échanger, le niveau de la ligne de transmission restera au niveau haut</span> (+Vcc, dans le cas de l’exemple ci-dessus).</p><p>Le plus souvent, <strong>une
séquence de données UART à envoyer est généralement paramétrée de la
manière suivante : 8 bits de données, pas de bit de parité, et 1
seul bit de stop</strong>. Cela permet usuellement l’échange de
caractères ASCII, et même « un peu plus » (car les caractères
ASCII vont historiquement de 0 à 127, et que 8 bits permettent d’aller
de 0 à 255). Bien évidemment, il n’est pas obligatoire de faire
transiter des caractères ASCII avec une liaison série UART ; en
effet, <span style="text-decoration: underline;">n’importe quelles
données peuvent être émises via cette ligne de transmission, du moment
que la séquence et la vitesse d’envoi sont respectées</span> !</p><p>Au
niveau des distances maximales atteignables avec une liaison série
filaire UART, on est aux alentours des 1 mètre de distance (à peu près
bien sûr, car cela dépend notamment de la vitesse de transmission, et de
la qualité des lignes). En clair : <span style="text-decoration: underline;">on ne peut communiquer que sur de faibles distances avec une liaison série UART, en l’état</span>.</p><p>Par contre, <strong>il
est possible de communiquer sur de plus grandes distances, en utilisant
par exemple le protocole RS-232 (« calqué » sur le UART)</strong>. Ceci permet d’aller jusqu’à :</p><ul><li>2 m environ, pour du 56 kbits/s</li><li>3,5 m environ, pour du 38400 bits/s</li><li>7,5 m environ, pour du 19200 bits/s</li><li>15 m environ, pour du 9600 bits/s (c’est la valeur la plus couramment usitée)</li><li>30 m environ, pour du 4800 bits/s</li><li>60 m environ, pour du 2400 bits/s</li></ul><p class="has-background" style="background-color:#fffbd6"><span style="text-decoration: underline;">Nota</span> :
toutes ces valeurs de distances sont soit admises par conventions, soit
issues de règles empiriques. Elles ne sont donc vraiment pas à prendre
au pied de la lettre, car celles-ci sont plutôt approximatives, et
dépendantes de bon nombre de facteurs externes. En fait, je les ai juste
mises là pour vous donner un ordre d’idée de ce qu’il est possible
d’atteindre, en terme de distance de communication UART.</p><p class="has-background" style="background-color:#e7ffd7"><span style="text-decoration: underline;">Remarque</span> : <strong>si
jamais votre microcontrôleur ne dispose pas de port de communication
UART (broches RX et TX, donc), il est tout de même « facile »
d’en émuler un, à partir de 2 entrées/sorties tout-ou-rien</strong>. En fait, <span style="text-decoration: underline;">il
suffit juste d’envoyer les bits l’un après l’autre, à une vitesse
donnée, tout en respectant le format d’une trame de communication UART</span>,
à savoir : un start bit, les bits de données (du poids le plus faible,
LSB, jusqu’au bit de poids le plus fort, MSB), puis un éventuel bit de
parité, et enfin, un bit de stop.</p><h2 class="wp-block-heading h2count"><span id="la-liaison-serie-i2c">La liaison série I2C</span></h2><p>Le <strong>second protocole série que nous allons voir à présent est l’I2C</strong> (ou I²C, de l’anglais « Inter Integrated Circuit »). Ce type de communication série <span style="text-decoration: underline;">permet
l’échange de données séries filaires, notamment entre un
« maître » (un microcontrôleur, par exemple) et des
« esclaves » (des périphériques)</span>. On appelle également
« bus I2C » l’ensemble des liens constituant l’interconnexion
du « maître » avec tous ses « esclaves ».</p><p>De nos jours, <strong>le bus I2C est devenu un moyen de communication très prisé</strong>, dès lors qu’on cherche à interfacer un microcontrôleur avec des périphériques, tels que des :</p><ul><li><span style="text-decoration: underline;">sondes</span> (de température, pression, hygrométrie, …)</li><li><span style="text-decoration: underline;">capteurs</span> (de luminosité, humidité, …)</li><li><span style="text-decoration: underline;">détecteurs</span> (de présence infrarouge, par exemple)</li><li><span style="text-decoration: underline;">convertisseurs</span> (numérique/analogique, analogique/numérique, …)</li><li><span style="text-decoration: underline;">transmetteurs</span> (wifi, bluetooth, …)</li><li><span style="text-decoration: underline;">mémoires séries</span> (ram, eeprom, …)</li><li><span style="text-decoration: underline;">modules d’ajout de ports d’entrées/sorties</span></li><li>et bien d’autres encore !</li></ul><p>Sur le plan matériel, voici <strong>un exemple de câblage filaire I2C, permettant la communication d’un microcontrôleur avec plusieurs périphériques annexes</strong> :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20850%20780'%3E%3C/svg%3E" alt="Exemple câblage liaison I²C multipoints avec maître et esclaves, raccordement lignes SDA et SCL, avec la masse et résistances de pull-up" class="wp-image-13815" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques.jpg 850w, https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques-300x275.jpg 300w, https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques-150x138.jpg 150w, https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques-768x705.jpg 768w" data-lazy-sizes="(max-width: 850px) 100vw, 850px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques.jpg" width="850" height="780"><noscript><img decoding="async" width="850" height="780" src="https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques.jpg" alt="Exemple câblage liaison I²C multipoints avec maître et esclaves, raccordement lignes SDA et SCL, avec la masse et résistances de pull-up" class="wp-image-13815" srcset="https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques.jpg 850w, https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques-300x275.jpg 300w, https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques-150x138.jpg 150w, https://passionelectronique.fr/wp-content/uploads/raccordement-i2c-microcontroleur-peripheriques-768x705.jpg 768w" sizes="(max-width: 850px) 100vw, 850px"></noscript></figure></div><p>Comme vous le voyez, <strong>3 fils sont seulement nécessaires (hors alimentation positive), pour assurer la communication filaire I2C</strong>. On retrouve ainsi :</p><ul><li><span style="text-decoration: underline;">une ligne de données, nommée SDA</span>
(pour « Serial DAta »), bidirectionnelle (les infos peuvent
circuler dans un sens comme dans l’autre, mais jamais en même temps ; on
appelle ça de la communication « semi-duplex »)</li><li><span style="text-decoration: underline;">une ligne d’horloge, nommée SCL</span>
(pour « Serial CLock ») ; celle-ci permet de
synchroniser tous les envois et réceptions de bits, transitant sur la
ligne SDA</li><li><span style="text-decoration: underline;">une ligne d’équipotentielle</span>, représentée ici par GND ; il s’agit en fait d’une masse commune, pour tous les éléments communiquant sur le bus I²C</li></ul><p>Si
ce câblage ne vous semble pas très visuel, en voici une autre
représentation (c’est la même chose que précédemment, mais organisé de
manière différente, et avec des illustrations en plus) :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20850%20410'%3E%3C/svg%3E" alt="Exemple branchement i2c d'un arduino avec capteur, sonde, et autre périphérique, via les lignes SCL, SDA, et GND, et résistances pull up" class="wp-image-13816" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur.jpg 850w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur-300x145.jpg 300w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur-150x72.jpg 150w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur-768x370.jpg 768w" data-lazy-sizes="(max-width: 850px) 100vw, 850px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur.jpg" width="850" height="410"><noscript><img decoding="async" width="850" height="410" src="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur.jpg" alt="Exemple branchement i2c d'un arduino avec capteur, sonde, et autre périphérique, via les lignes SCL, SDA, et GND, et résistances pull up" class="wp-image-13816" srcset="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur.jpg 850w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur-300x145.jpg 300w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur-150x72.jpg 150w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-i2c-capteur-emetteur-recepteur-768x370.jpg 768w" sizes="(max-width: 850px) 100vw, 850px"></noscript></figure></div><p>À noter <strong>des résistances « pull-up » sont indispensables sur un bus I2C (une sur la ligne SDA, et l’autre sur la ligne SCL)</strong> ; celles-ci peuvent être intégrées ou multiples, selon les montages, mais dans tous les cas indispensables. En fait, <span style="text-decoration: underline;">elles
permettent de donner un état haut par défaut, aux lignes du bus I²C (en
sachant que « maître » et « esclaves » ne peuvent
que forcer ces lignes à l’état bas, via leurs transistors à « drain
ouvert »)</span>. Ceci évite ainsi tout conflit de tension sur le bus.</p><p>Pour
ceux que ça intéresse, voici un peu plus précisément comment sont
montés ces « transistors à drain ouvert », permettant
d’abaisser les lignes au besoin :</p><div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20726'%3E%3C/svg%3E" alt="Pull-up resistor sur entrées sorties I2C à drain ouvert, pour échange de données bidirectionnelles sur ce bus série, sans conflit de tension" class="wp-image-13817" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-1024x726.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-300x213.jpg 300w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-150x106.jpg 150w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-768x545.jpg 768w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie.jpg 1100w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-1024x726.jpg" width="1024" height="726"><noscript><img decoding="async" width="1024" height="726" src="https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-1024x726.jpg" alt="Pull-up resistor sur entrées sorties I2C à drain ouvert, pour échange de données bidirectionnelles sur ce bus série, sans conflit de tension" class="wp-image-13817" srcset="https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-1024x726.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-300x213.jpg 300w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-150x106.jpg 150w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie-768x545.jpg 768w, https://passionelectronique.fr/wp-content/uploads/pull-up-i2c-drain-ouvert-mos-bus-serie.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px"></noscript></figure></div><p class="has-background" style="background-color:#ffdada"><span style="text-decoration: underline;">Remarque</span> : <strong>attention
à ne pas les multiplier les résistances de pull-up I2C, car une sur
chaque ligne suffit, quel que soit le nombre d’esclaves sur le bus</strong>.
Sinon cela augmenterait le courant de lignes, et risquerait
d’endommager les composants branchés dessus (sans parler des pertes
d’énergies inutiles). Si je vous parle de ça, c’est parce que c’est
quelque chose auquel on peut ne pas faire attention, lorsqu’on branche
plusieurs modules i²c en parallèle (je pense aux petites plaquettes déjà
montées, avec le périphérique et les pull-up déjà soudées dessus). <span style="text-decoration: underline;">Au final, laissez toujours une paire de résistance adéquates, et pas plus</span> ! Au passage, <strong>la valeur des résistances pull-up pour un bus I²C est typiquement du 4,7 kohms</strong> (mais à ajuster si besoin, en fonction de la charge capacitive du bus, elle-même fonction de la vitesse de transmission).</p><p>Sinon, plus généralement, voici ce que nous pouvons dire du bus i2c :</p><ul><li><span style="text-decoration: underline;">il y a en général qu’un seul élément « maître » (de la communication), et un ou plusieurs « esclaves »</span>
(qui exécutent ses ordres ou répondent aux questions posées) ; les
« esclaves » ne communiquent jamais entre eux. À noter que je
n’ai jamais mis en œuvre de version « multi-maître » ; je ne
vous en parlerai donc pas aujourd’hui</li><li><span style="text-decoration: underline;">la distance maxi entre « maître » et « esclave » est de l’ordre de 1 à 2 mètres environ</span> (fonction de la vitesse de communication, et de la qualité des lignes de transmission, attention)</li><li><span style="text-decoration: underline;">la vitesse de communication est imposée par le « maître », à tous les « esclaves »</span>.
Les différentes vitesses de transmission possibles sont
standardisées ; leurs valeurs vont grosso modo de 10 kbits / sec, à
plusieurs mégabits par seconde. Les valeurs les plus
courantes sont :<ul><li>100 kbits/s (surnommé « <strong>Standard Mode</strong> »)</li><li>400 kbits/s (surnommé « <strong>Fast Mode</strong> »)</li><li>1 Mbits/s (surnommé « <strong>Fast Plus Mode</strong> »)</li><li>3,4 Mbits/s (surnommé « <strong>High Speed Mode</strong> »)</li></ul></li><li><span style="text-decoration: underline;">chaque « esclave » dispose d’une adresse qui lui est propre</span>
(en partie libre, et en partie imposée). Avec le protocole I2C, nous
avons théoriquement 128 adresses différentes possibles (car celles-ci
sont codées sur 7 bits). Toutefois, en pratique, nous en avons bien
moins, car certaines sont réservées ; en effet, certains bits d’adresse
sont « gravés » en dur dans la puce, par le fabricant, les
autres étant généralement libres d’utilisation. À noter qu’il existe une
variante de communication I²C à 10 bits, mais qui est moins commune.</li><li><span style="text-decoration: underline;">tous les esclaves « écoutent » en permanence ce que dit le « maître »</span>, sur le réseau (et prennent seulement en considération les messages qui leurs sont adressés)</li><li><span style="text-decoration: underline;">le « maître » encode l’adresse du destinataire à l’intérieur même du message qu’il envoie</span> (c’est comme ça que chaque « esclave » sait quand un message lui est destiné, ou pas)</li></ul><p>Au niveau du protocole I2C, voici un exemple d’échange de données :</p><div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20717'%3E%3C/svg%3E" alt="Séquence écriture I2C maître esclave, exemple montrant la transmission de bits sur SDA en fonction de l'horloge SCL, avec explications détaillées" class="wp-image-13818" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-1024x717.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-300x210.jpg 300w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-150x105.jpg 150w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-768x538.jpg 768w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave.jpg 1100w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-1024x717.jpg" width="1024" height="717"><noscript><img decoding="async" width="1024" height="717" src="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-1024x717.jpg" alt="Séquence écriture I2C maître esclave, exemple montrant la transmission de bits sur SDA en fonction de l'horloge SCL, avec explications détaillées" class="wp-image-13818" srcset="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-1024x717.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-300x210.jpg 300w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-150x105.jpg 150w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave-768x538.jpg 768w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-i2c-maitre-esclave.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px"></noscript></figure></div><p>Comme vous pouvez le constater :</p><ul><li><span style="text-decoration: underline;">en l’absence de communication, les lignes SDA et SCL sont à l’état haut</span> (en fait, c’est le niveau imposé au repos par les résistances de pull-up, sur chacune de ces lignes)</li><li><span style="text-decoration: underline;">chaque
communication démarre avec une mise à l’état bas de la ligne SDA par le
maître, puis une mise à l’état bas de la ligne SCL</span> (toujours par le maître)</li><li><span style="text-decoration: underline;">un fin de communication s’achève avec un relâchement de la ligne SCL, puis de la ligne SDA</span> (retour à l’état haut, permis par les résistances pull-up)</li><li><span style="text-decoration: underline;">entre
temps, quand le maître veut s’adresser à quelqu’un, il « met en
route » une horloge sur SCL et envoi des trames de données</span> ; parmi les données envoyées par le maître, on retrouve à minima :<ul><li>une <strong>première séquence d’adressage</strong> (dans ce 1er message, le maître communique sur le réseau I2C l’adresse du destinataire à qui il compte s’adresser)</li><li>une <strong>seconde séquence comportant une instruction</strong>, que l’esclave devra exécuter</li></ul></li><li>ensuite, au niveau des données, on retrouve optionnellement (si nécessaire, donc) :<ul><li>soit <strong>une ou plusieurs données supplémentaires que le maître envoie à l’esclave</strong> (ce peut être des paramètres, des valeurs de consignes, ou des données d’instruction complémentaire par exemple)</li><li>soit <strong>une ou plusieurs données renvoyées par l’esclave</strong>, en réponse au questionnement du maître</li></ul></li><li><span style="text-decoration: underline;">chacun
des « bits » formant les séquences défilant sur la ligne SDA
sont synchronisés avec l’horloge présente sur la ligne SCL</span></li><li><span style="text-decoration: underline;">chaque séquence d’envoi ou de réception se termine par un « accusé de réception »</span>
(« acknowledgment » en anglais, d’où le signe ACK récurrent
sur les diagrammes temporels), pour que l’émetteur sache que le
destinataire a bien reçu le message envoyé. Plus précisément, l’ACK
(forçage de la ligne SDA à l’état bas, donc) peut être émis :<ul><li>soit par l’esclave, si c’est le maître qui vient de lui envoyer un message</li><li>soit par le maître, si c’est l’esclave qui vient de lui renvoyer des données</li></ul></li></ul><p class="has-background" style="background-color:#e7ffd7">En clair : <strong>les
envois sont séquentiels sur le bus I2C, toujours à l’initiative puis
rythmés par le maître, avec des « accusés réception » du
destinataire des données, pour chaque message</strong>.</p><p class="has-background" style="background-color:#fffbd6"><span style="text-decoration: underline;">Nota</span> : vous entendrez souvent parler de<strong>
« lecture » ou « écriture » sur le bus I2C (en
anglais : « I2C reading » et « I2C writing »)</strong>. En fait :<br>– <span style="text-decoration: underline;">ce qu’on appelle écriture est une communication unique du maître vers l’esclave</span> (sans réponse de ce dernier, donc)<br>– <span style="text-decoration: underline;">ce qu’on appelle lecture est en fait une « question » envoyée par le maître, auquel l’esclave répond</span>
(par exemple : un µC maître pourrait demander une
« lecture » de température à une sonde esclave, et ce dernier
répondrait en renvoyant au maître la valeur de cette température).<br>Du
coup, attention à ne pas vous méprendre sur les mots, car souvent, il
est sous-entendu par ces termes qu’une écriture n’est qu’une écriture,
mais qu’une lecture est un acte d’écriture puis lecture.</p><p>Enfin, <strong>pour
essayer de vous permettre de comprendre encore mieux les échanges
maître/esclave, voici une autre manière de représenter les échanges sur
le bus I2C</strong>, faisant apparaître qui fait quoi, et à quel moment :</p><div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20680'%3E%3C/svg%3E" alt="Lecture écriture sur bus I2C, diagramme de transmission des bits suivant protocole maître esclave série, avec bits d'acknowledgment ACK et NACK" class="wp-image-13819" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-1024x680.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-300x199.jpg 300w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-150x100.jpg 150w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-768x510.jpg 768w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave.jpg 1100w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-1024x680.jpg" width="1024" height="680"><noscript><img decoding="async" width="1024" height="680" src="https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-1024x680.jpg" alt="Lecture écriture sur bus I2C, diagramme de transmission des bits suivant protocole maître esclave série, avec bits d'acknowledgment ACK et NACK" class="wp-image-13819" srcset="https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-1024x680.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-300x199.jpg 300w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-150x100.jpg 150w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave-768x510.jpg 768w, https://passionelectronique.fr/wp-content/uploads/lecture-ecriture-bus-i2c-maitre-esclave.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px"></noscript></figure></div><p class="has-background" style="background-color:#fffbd6"><span style="text-decoration: underline;">Remarque</span> :
si votre microcontrôleur ne possède pas de « bloc I2C interne
» ou si vous avez besoin d’un « port I2C
supplémentaire », sachez qu’il est techniquement possible de
l’émuler, via de simples broches numériques. Mais franchement, ce n’est
pas chose facile que de coder ça soi-même ! C’est pourquoi je vous
recommande dans ce cas de trouver des <strong>librairies I2C déjà « prêtes à l’emploi », pour vous économiser du temps</strong> … et vos nerfs 😉</p><h2 class="wp-block-heading h2count"><span id="la-liaison-serie-spi">La liaison série SPI</span></h2><p>Rajoutons quelques fils, et <strong>voyons à présent le protocole de communication SPI</strong> ! Là aussi, il s’agit d’une liaison maître/esclaves, avec, généralement :</p><ul><li>un microcontrôleur comme maître</li><li>et des périphériques (capteurs, sondes, convertisseurs, …) comme esclaves</li></ul><p>Les liens les unissant, hors alimentation, sont les suivants :</p><ul><li><span style="text-decoration: underline;">une horloge de synchronisation, nommée SCK (ou SCLK)</span>, générée par le maître, et à destination de tous les esclaves</li><li><span style="text-decoration: underline;">une ligne de données maître vers esclave, nommée MOSI</span> (pour « Master Out, Slave In », donc « Maître en sortie, Esclave en entrée »)</li><li><span style="text-decoration: underline;">une ligne de données esclave vers maître, nommée MISO</span> (pour « Master In, Slave Out », donc « Maître en entrée, Esclave en sortie »)</li><li><span style="text-decoration: underline;">et une ligne de sélection par esclave</span>
(par exemple : s’il y a 3 esclaves, alors il y aura 3 lignes de
transmission ; c’est ainsi que le maître choisi avec qui il veut
converser). Cette ligne est le plus souvent nommée CS (pour « Chip
Select ») ou SS (pour « Slave Select »), c’est égal !</li></ul><p>Au niveau schématique, voici un <strong>exemple de câblage SPI, avec 1 maître et 3 esclaves</strong> (ça aurait pu être plus, tout comme être moins !) :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20950%20840'%3E%3C/svg%3E" alt="Exemple câblage SPI, pour raccordement maître esclaves, comme microcontrôleur et capteurs sondes, via lignes SCK MOSI MISO SS et GND" class="wp-image-13820" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss.jpg 950w, https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss-300x265.jpg 300w, https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss-150x133.jpg 150w, https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss-768x679.jpg 768w" data-lazy-sizes="(max-width: 950px) 100vw, 950px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss.jpg" width="950" height="840"><noscript><img decoding="async" width="950" height="840" src="https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss.jpg" alt="Exemple câblage SPI, pour raccordement maître esclaves, comme microcontrôleur et capteurs sondes, via lignes SCK MOSI MISO SS et GND" class="wp-image-13820" srcset="https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss.jpg 950w, https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss-300x265.jpg 300w, https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss-150x133.jpg 150w, https://passionelectronique.fr/wp-content/uploads/raccordement-spi-bus-miso-mosi-sck-cs-et-ss-768x679.jpg 768w" sizes="(max-width: 950px) 100vw, 950px"></noscript></figure></div><p>Là encore, si cela ne vous semble pas très clair, voici une <span style="text-decoration: underline;">autre représentation de ce même câblage</span> (identique donc, mais présenté différemment, et imagé pour que cela soit mieux appréhensible) :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20850%20460'%3E%3C/svg%3E" alt="Branchement arduino sur bus SPI, exemple avec sonde capteur, lecteur de carte SD, et émetteur récepteur radio, pour communication série multiple" class="wp-image-13821" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques.jpg 850w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques-300x162.jpg 300w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques-150x81.jpg 150w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques-768x416.jpg 768w" data-lazy-sizes="(max-width: 850px) 100vw, 850px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques.jpg" width="850" height="460"><noscript><img decoding="async" width="850" height="460" src="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques.jpg" alt="Branchement arduino sur bus SPI, exemple avec sonde capteur, lecteur de carte SD, et émetteur récepteur radio, pour communication série multiple" class="wp-image-13821" srcset="https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques.jpg 850w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques-300x162.jpg 300w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques-150x81.jpg 150w, https://passionelectronique.fr/wp-content/uploads/cablage-arduino-bus-spi-avec-peripheriques-768x416.jpg 768w" sizes="(max-width: 850px) 100vw, 850px"></noscript></figure></div><p>Comme vous pouvez le remarquer, nous avons :</p><ul><li><span style="text-decoration: underline;">uniquement des lignes unidirectionnelles</span>
(les données ne circulent que dans un seul sens, sur chaque
ligne ; c’est d’ailleurs pour cette raison qu’il n’y a pas de
résistance pull-up ici, contrairement aux liaisons séries I2C)</li><li><span style="text-decoration: underline;">tous les SCK sont tous reliés ensemble, de même que tous les MOSI et tous les MISO</span> (pas de croisement donc, contrairement aux liaisons séries UART, où on croisait RX avec TX, et TX avec RX)</li><li><span style="text-decoration: underline;">autant de lignes de sélection qu’il y a d’esclaves</span> (ce qui peut faire énormément de fils à câbler, s’il y a beaucoup d’esclaves !)</li></ul><p>Au niveau du <strong>protocole de communication SPI</strong> en lui-même, voici un <span style="text-decoration: underline;">exemple de questionnement du maître à l’intention d’un esclave, et la réponse de l’esclave dans la foulée</span> :</p><div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20717'%3E%3C/svg%3E" alt="Chronogramme lecture sur bus SPI, exemple d'échange de données maître esclave, au travers lignes MOSI et MISO, avec horloge SCLK et /SS" class="wp-image-13824" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-1024x717.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-300x210.jpg 300w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-150x105.jpg 150w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-768x538.jpg 768w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves.jpg 1100w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-1024x717.jpg" width="1024" height="717"><noscript><img decoding="async" width="1024" height="717" src="https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-1024x717.jpg" alt="Chronogramme lecture sur bus SPI, exemple d'échange de données maître esclave, au travers lignes MOSI et MISO, avec horloge SCLK et /SS" class="wp-image-13824" srcset="https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-1024x717.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-300x210.jpg 300w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-150x105.jpg 150w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves-768x538.jpg 768w, https://passionelectronique.fr/wp-content/uploads/exemple-lecture-bus-spi-maitre-esclaves.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px"></noscript></figure></div><p>Comme vous voyez, <strong>la communication SPI est somme toute assez simple</strong>, finalement. En effet, l’échange peut ici être divisé entre 4 étapes, qui sont :</p><ul><li>primo, <span style="text-decoration: underline;">le maître abaisse la ligne SS</span> de l’esclave avec qui il souhaite communiquer</li><li>secundo, <span style="text-decoration: underline;">le maître génère une horloge sur SCK et envoie bit à bit les données</span> qu’il souhaite faire parvenir à son esclave (par paquets de 8 bits, généralement, ce qui fait un octet donc)</li><li>tertio, <span style="text-decoration: underline;">le maître continu à générer des impulsions au niveau de sa ligne SCK, et l’esclave renvoie bits à bits des données</span>, à ce rythme là</li><li>enfin, quarto, <span style="text-decoration: underline;">le maître arrête son horloge SCK, et remet la ligne SS au niveau haut</span>, pour déconnecter l’esclave (de toute communication SPI, j’entends)</li></ul><p>Bien entendu, <strong>maître comme esclaves peuvent transmettre un ou plusieurs octets à la suite, suivant la quantité de données à faire passer</strong>.</p><p class="has-background" style="background-color:#fffbd6"><span style="text-decoration: underline;">Remarque</span> :
ci-dessus, j’ai représenté un échange de données
« semi-duplex » (donc 1 ligne émettrice de données, à la
fois). Mais sur le bus SPI, les données peuvent très bien circuler en
simultané sur les lignes MISO et MOSI, c’est à dire en
« full-duplex » ; dans ce cas, les bits de données
transiteraient en même temps sur ces deux lignes, au rythme des coups
d’horloge du maître (sur SCK).</p><p class="has-background" style="background-color:#e7ffd7"><span style="text-decoration: underline;">Nota</span> :<br>– <strong>pour une communication SPI, il faut à minima 1 maître et 1 esclave</strong> (après, il peut même y avoir plusieurs maîtres, mais là, c’est un cas plus particulier)<br>– <strong>les lignes /SS sont de simples sorties numériques, côté maître</strong>,
car ce dernier s’en sert uniquement pour cibler un esclave en
particulier, pendant toute la communication. À minima, il doit donc y en
avoir au moins une ligne /SS, pour cibler au moins un esclave. À noter
que ce type de ligne est active à l’état bas, et au repos à l’état haut<br>– <strong>en l’absence de données à transmettre, l’esclave déconnecte sa sortie MISO, pour la rendre flottante</strong> (afin de ne pas altérer les éventuels données émises par les autres esclaves)</p><p>Bien sûr, <span style="text-decoration: underline;">l’esclave n’a pas forcément besoin de répondre au maître</span>
(s’il s’agit simplement d’une consigne à appliquer, par exemple, on
n’attendrait pas nécessairement de réponse en retour). Dans ce cas, les
données ne circuleraient que du maître vers l’esclave, sur la ligne MOSI
donc, tandis que la ligne MISO resterait « flottante » (à
haute impédance, donc). Voici un exemple illustrant cela, pour être plus
clair :</p><div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20717'%3E%3C/svg%3E" alt="Exemple écriture SPI de maître vers esclave, transmission des données via MOSI, au rythme de l'horloge SCK, avec SS CS abaissé, et MISO haute impédance" class="wp-image-13823" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-1024x717.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-300x210.jpg 300w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-150x105.jpg 150w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-768x538.jpg 768w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave.jpg 1100w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-1024x717.jpg" width="1024" height="717"><noscript><img decoding="async" width="1024" height="717" src="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-1024x717.jpg" alt="Exemple écriture SPI de maître vers esclave, transmission des données via MOSI, au rythme de l'horloge SCK, avec SS CS abaissé, et MISO haute impédance" class="wp-image-13823" srcset="https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-1024x717.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-300x210.jpg 300w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-150x105.jpg 150w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave-768x538.jpg 768w, https://passionelectronique.fr/wp-content/uploads/sequence-ecriture-spi-maitre-esclave.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px"></noscript></figure></div><p>Là
encore, un octet seulement aurait pu être envoyé, et pas nécessairement
plusieurs. Là, c’est juste pour l’exemple ! Et en fait, tout ça reste
plus ou moins libre, au final 😉</p><p>C’est d’ailleurs parfois un peu trop « libre » à mon goût, au niveau de la <strong>notation des entrées/sorties SPI</strong>, car il en existe de très nombreuses. En effet :</p><ul><li><span style="text-decoration: underline;">l’horloge</span> peut être notée SCK, SCLK, ou SCL</li><li><span style="text-decoration: underline;">la ligne de sélection</span> peut être notée CS, SS, nCS, nSS, STE, CSN, …</li><li><span style="text-decoration: underline;">les lignes MISO et MOSI</span> peuvent être « éclatées » en :<ul><li>SDO, DO, ou SO, du côté des sorties « émettrices »</li><li>SDI, DI, ou SI, du côté des entrées « réceptrices »</li></ul></li></ul><p>Et encore, je n’ai pas tout noté … ! Du reste, afin de vous permettre de mieux visualiser ces <span style="text-decoration: underline;">multiples conventions de nommages</span>,
voici une petite image synthétisant le tout (en espérant que ce soit
plus clair pour vous, car ce n’est pas évident à expliquer, en fait
!) :</p><div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%20707'%3E%3C/svg%3E" alt="Différentes notations SPI des entrées sorties, convention de nommage SCK MISO MOSI, vs SDO DO SO et SDI DI SI, avec SCK=SCLK=SCK horloge" class="wp-image-13822" data-lazy-srcset="https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-1024x707.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-300x207.jpg 300w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-150x104.jpg 150w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-768x531.jpg 768w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss.jpg 1100w" data-lazy-sizes="(max-width: 1024px) 100vw, 1024px" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-1024x707.jpg" width="1024" height="707"><noscript><img decoding="async" width="1024" height="707" src="https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-1024x707.jpg" alt="Différentes notations SPI des entrées sorties, convention de nommage SCK MISO MOSI, vs SDO DO SO et SDI DI SI, avec SCK=SCLK=SCK horloge" class="wp-image-13822" srcset="https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-1024x707.jpg 1024w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-300x207.jpg 300w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-150x104.jpg 150w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss-768x531.jpg 768w, https://passionelectronique.fr/wp-content/uploads/branchement-arduino-spi-sclk-mosi-miso-ss.jpg 1100w" sizes="(max-width: 1024px) 100vw, 1024px"></noscript></figure></div><p>Par ailleurs, il est à noter qu’<strong>on a aussi la liberté de « jouer » avec la phase et polarité d’horloge SPI</strong>, c’est à dire de choisir les <span style="text-decoration: underline;">conditions dans lesquelles seront prises en compte les données entrantes ou sortantes</span>. À savoir :</p><ul><li>sur front montant ou descendant d’horloge, pour la polarité</li><li>et pile au moment d’un front ou de manière décalée, pour la phase</li></ul><p>Enfin, juste un mot sur les <strong>avantages et inconvénients du bus SPI, comparé aux deux précédents (UART et I²C)</strong> :</p><ul><li><span style="text-decoration: underline;">la communication peut se faire en duplex intégral</span> (simultanéité de l’émission et de la réception)</li><li><span style="text-decoration: underline;">les débits sont vraiment rapides</span>
(jusqu’à plusieurs mégahertz, sans problème), mais seulement sur de
courtes distances (c’est la contrepartie) ; toutefois, il existe
des « buffer de ligne » permettant d’aller au-delà des
quelques mètres de longueurs, communément admis</li><li><span style="text-decoration: underline;">il y a beaucoup plus de fils à câbler</span>, car il faut une ligne physique de sélection par esclave, en plus des lignes de transmission</li><li><span style="text-decoration: underline;">et il n’y a aucun « accusé de réception » des messages (ACK, en anglais)</span>
au sein d’une communication SPI ; ce qui fait que le maître
pourrait très bien parler des heures dans le vide, sans même le savoir
… !</li></ul><p class="has-background" style="background-color:#ffdada"><span style="text-decoration: underline;">Remarque importante</span> : le mode que je vous ai présenté ici s’appelle la connexion directe (« <strong>Direct Connection</strong>
», en anglais). Dans ce cas, les SCK sont câblés entre eux, les MOSI
entre eux, et les MISO entre eux. Mais ce n’est pas la seule façon de
réaliser une liaison SPI. En effet, il existe un autre mode, dit chaîné
(« <strong>Daisy Chained Connection</strong> », en anglais) qui permet
au maître de piloter plusieurs esclaves avec une seule sortie CS. Le
câblage est quelque peu différent de tout ce que je vous ai présenté
jusqu’à présent, car dans le cas du mode chaîné, le MOSI d’un élément
est relié au MISO de l’élément suivant (jusqu’à former une boucle).
Ainsi, la diffusion des données est propagée d’un esclave à l’autre,
jusqu’à revenir au maître (et vice-versa). Mais comme tout ceci est un
peu plus complexe, je ne l’ai pas abordé ici, dans cette <span style="text-decoration: underline;">introduction aux liaisons séries filaires</span>.</p><h2 class="wp-block-heading h2count"><span id="les-autres-protocoles-de-communication-serie-filaires">Les autres protocoles de communication série filaires</span></h2><p>Comme vous vous en doutez sûrement, je n’ai présenté ici que <strong>les liaisons séries les plus populaires selon moi, pour nous, amateurs d’électronique</strong> ! Mais il en existe bien d’autres (et non des moindres d’ailleurs !). Je pense notamment :</p><ul><li><span style="text-decoration: underline;">au bus CAN, très prisé dans le milieu automobile</span>,
qui permet avec 2 fils seulement (hors alimentation) de relier 20 à 30
éléments ensemble (selon si on fonctionne à 125 kbits/s, ou 1
Mbits/s) ; sans parler des longueurs de communication qui sont
vraiment appréciables : environ 30m à 1 Mbits/s, et jusqu’à 5 km à 10
kbits/s ! Ce type de liaison filaire série est d’ailleurs assez
facile à mettre à œuvre, notamment avec nos arduino, et aux mini shields
« tout équipés » MCP2515 / TJA1050.</li><li><span style="text-decoration: underline;">au bus 1-Wire, popularisé avec les sondes de température DS18B20 de chez Dallas Semiconductor</span> ;
ici, un seul fil suffit, et la masse ! Difficile de faire plus
simple, niveau câblage, bien que des fois, il faille rajouter le +Vcc !
Et c’est d’autant plus simple à mettre en œuvre qu’il existe de
nombreuses librairies gérant cela (car à coder, ce serait fastidieux !).
Du reste, une liaison 1-Wire est bidirectionnelle, fonctionne en
semi-duplex (un seul sens à la fois, au niveau de la transmission),
nécessite une résistance de pull-up, et fonctionne à 16 kbits/s environ,
en standard (ce qui, au passage, permet d’aller sur « d’assez
longues » distances)</li></ul><p>Tout ça, sans parler des liaisons
séries filaires qu’on retrouve couramment en informatique, à
savoir : l’USB (pour les périphériques), le SATA et le SCSI (pour
nos « anciens » disques dur), l’Ethernet (avec ses prises
RJ45), … et j’en passe là aussi !</p><p>Mais au final, <strong>si comme
moi vous aimez « bricoler » en électronique, l’I2C et le SPI
restent surtout les deux protocoles de communication série à privilégier
en premier</strong>, car ce sont ceux que nous retrouvons le plus
souvent, dès lors qu’on souhaite raccorder des périphériques à un
microcontrôleur 😉</p><h2 class="wp-block-heading h2count"><span id="tableau-comparatif-uart-i2c-spi-synthese">Tableau comparatif UART / I2C / SPI (synthèse)</span></h2><p>Afin
que vous ayez quelques repères supplémentaires, j’ai essayé de vous
faire une petite synthèse, sous forme de tableau comparatif :</p><div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Tableau comparatif UART I2C et SPI, nombre de fils nécessaires, nombre de bits données et adresse, vitesse de transmission, et accusé de réception" class="wp-image-13825" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/tableau-comparatif-i2c-spi-uart-liaisons-series.jpg"><noscript><img decoding="async" src="https://passionelectronique.fr/wp-content/uploads/tableau-comparatif-i2c-spi-uart-liaisons-series.jpg" alt="Tableau comparatif UART I2C et SPI, nombre de fils nécessaires, nombre de bits données et adresse, vitesse de transmission, et accusé de réception" class="wp-image-13825"></noscript></figure></div><p>Comme
toujours, j’ai préféré faire quelque chose de synthétique, allant à
« l’essentiel », plutôt que trop entrer dans les détails. Du
coup, ne considérez pas ce tableau comme quelque chose de complet, ou
d’exhaustif ! Car il existe « beaucoup » de variantes pour ces
protocoles, et « beaucoup » de valeurs inférieures,
intermédiaires, et/ou supérieures, que je n’ai pas noté ici.</p><p>Par ailleurs, <strong>les distances max de transmission notées dans ce tableau ne sont qu’indicatives</strong>. Car ces dernières varient grandement, en fonction :</p><ul><li><span style="text-decoration: underline;">de la vitesse de transmission</span></li><li><span style="text-decoration: underline;">des caractéristiques physiques des lignes de transmission</span> (qualité des fils, torsadé ou non, …)</li><li><span style="text-decoration: underline;">de l’impédance des lignes de transmission</span> (parfois améliorables avec l’ajout de résistances en amont, ou des largeurs ou traçages de pistes plus adaptés, par exemple)</li><li><span style="text-decoration: underline;">la puissance de transmission</span> (améliorable par l’ajout de buffers, qui permettent d’aller « au-delà » de ces « longueurs maxi »)</li></ul><p>Sinon, pour compléter cela, n’hésitez pas à faire un saut sur les pages Wikipédia du <a href="https://fr.wikipedia.org/wiki/UART?pseSrc=pgLiaisonsSeriesFilaires" rel="nofollow noopener" target="_blank">protocole UART</a>, du <a href="https://fr.wikipedia.org/wiki/I2C?pseSrc=pgLiaisonsSeriesFilaires" rel="nofollow noopener" target="_blank">protocole I2C</a>, et du <a href="https://fr.wikipedia.org/wiki/Serial_Peripheral_Interface?pseSrc=pgLiaisonsSeriesFilaires" rel="nofollow noopener" target="_blank">protocole SPI</a>.</p><h2 class="wp-block-heading h2count"><span id="conclusion">Conclusion</span></h2><p>Nous voici au terme de cette <strong>introduction à la communication série filaire, et principaux protocoles de transmission sériels</strong>
(pour nous, amateurs d’électronique, j’entends). J’espère que tout ce
contenu pourra vous être utile, et vous servir dans vos futurs projets
électroniques 😉</p><p>Du reste, ne vous inquiétez pas si jamais
vous n’avez pas compris tous les protocoles séries présentés ici. Car il
n’est pas forcé de tous les connaître à fond, pour pouvoir s’en servir !
C’est d’ailleurs le cas lorsqu’on fait de la <span style="text-decoration: underline;">programmation arduino, où les librairies I2C et SPI nous mâchent déjà une bonne partie du travail</span> 😉</p><p>Sur ce, il ne me reste plus qu’à vous dire : à la prochaine !</p><p>Jérôme.</p><p><strong>À découvrir aussi</strong> : <a href="https://passionelectronique.fr/tag/module-arduino/?pseSrc=pgLiaisonsSeriesFilaires">différents modules Arduino, fonctionnant pour beaucoup en I2C ou SPI</a></p><div class="bannMaster"><div class="bannContainer"><div class="bannGauche">Ce contenu vous plaît ? Alors abonnez-vous à la Newsletter pour ne rien louper !</div><div class="bannDroite"><button><a href="https://passionelectronique.fr/newsletter/?pseSrc=pgLiaisonsSeriesFilaires&psePos=pgDown">📜 Recevoir la Newsletter !</a></button></div></div></div><div class="postauthor"><div id="author_box" class="inner-page-header border-bottom clearfix"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3C/svg%3E" class="avatar avatar-100 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="100" height="100"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-100 photo" height="100" width="100"></noscript><p id="author_name" class="vcard">JEROME</p><p id="author_description">Passionné
par tout ce qui touche à l'électronique, sans toutefois être expert ni
ingénieur, j'ai à coeur de partager ici avec vous toutes mes
connaissances, réalisations, expériences, avis et découvertes ! Alors à
très vite !</p></div></div><p>(*) Mis à jour le 09/04/2023</p></div><div id="comments" class="comments-area"><div class="nv-comments-wrap"><div class="nv-comments-title-wrap"><h2 class="comments-title">18
commentaires sur “Introduction aux liaisons séries filaires UART,
I2C, et SPI (et détail de leurs protocoles de communication)”</h2></div><ol class="nv-comments-list"><li class="comment even thread-even depth-1" id="comment-item-777"><article id="comment-777" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">assidu</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-777"> <time class="entry-date published" datetime="2022-12-17T17:08:36+00:00" content="2022-12-17"> 17 décembre 2022 à 17:08 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-777" data-commentid="777" data-postid="13758" data-belowelement="comment-777" data-respondelement="respond" data-replyto="Répondre à assidu" aria-label="Répondre à assidu">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Super
article qui a l’avantage de réunir les 3 protocoles de communications
les plus connus, très utile si un débutant tombe dessus. Franchement
bravo, continuez ainsi, vos pages web sont très claires, merci.</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-778"><article id="comment-778" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-778"> <time class="entry-date published" datetime="2022-12-17T17:12:59+00:00" content="2022-12-17"> 17 décembre 2022 à 17:12 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-778" data-commentid="778" data-postid="13758" data-belowelement="comment-778" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Merci merci ! C’est fait avec plaisir 😉</p><p>À bientôt !<br> Jérôme.</p></div></div></article></li></ol></li><li class="comment even thread-odd thread-alt depth-1" id="comment-item-779"><article id="comment-779" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">Bernard</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-779"> <time class="entry-date published" datetime="2022-12-17T17:55:19+00:00" content="2022-12-17"> 17 décembre 2022 à 17:55 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-779" data-commentid="779" data-postid="13758" data-belowelement="comment-779" data-respondelement="respond" data-replyto="Répondre à Bernard" aria-label="Répondre à Bernard">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Merci Jérôme pour ce super article qui va à l’essentiel, c’est très bien fait</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-780"><article id="comment-780" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-780"> <time class="entry-date published" datetime="2022-12-17T21:19:34+00:00" content="2022-12-17"> 17 décembre 2022 à 21:19 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-780" data-commentid="780" data-postid="13758" data-belowelement="comment-780" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Merci à toi, et bonne soirée !</p></div></div></article></li></ol></li><li class="comment even thread-even depth-1" id="comment-item-783"><article id="comment-783" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">JOEL BRASSELET</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-783"> <time class="entry-date published" datetime="2022-12-18T16:39:08+00:00" content="2022-12-18"> 18 décembre 2022 à 16:39 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-783" data-commentid="783" data-postid="13758" data-belowelement="comment-783" data-respondelement="respond" data-replyto="Répondre à JOEL BRASSELET" aria-label="Répondre à JOEL BRASSELET">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Super pédagogique en même temps que le partage des connaissances bénévolement !!!</p><p>Bravo ! Un vieux de 82 balais …</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-784"><article id="comment-784" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-784"> <time class="entry-date published" datetime="2022-12-18T16:48:30+00:00" content="2022-12-18"> 18 décembre 2022 à 16:48 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-784" data-commentid="784" data-postid="13758" data-belowelement="comment-784" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Y’a pas d’âge pour faire de l’électronique 😉</p><p>Encore merci pour ton retour, ça fait plaisir !</p></div></div></article></li></ol></li><li class="comment even thread-odd thread-alt depth-1" id="comment-item-787"><article id="comment-787" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">Mario</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-787"> <time class="entry-date published" datetime="2022-12-19T14:34:13+00:00" content="2022-12-19"> 19 décembre 2022 à 14:34 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-787" data-commentid="787" data-postid="13758" data-belowelement="comment-787" data-respondelement="respond" data-replyto="Répondre à Mario" aria-label="Répondre à Mario">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Bravo Jérôme pour ce tuto.</p><p>J’admire
autant la profondeur et la précision des explications que la clarté de
la présentation. J’ai des composants de type I2C qui seront heureux
d’être correctement branchés, le moment venu…</p><p>Sans vous mettre de la pression, j’ai hâte de lire votre prochaine publication !</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-788"><article id="comment-788" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-788"> <time class="entry-date published" datetime="2022-12-19T16:00:40+00:00" content="2022-12-19"> 19 décembre 2022 à 16:00 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-788" data-commentid="788" data-postid="13758" data-belowelement="comment-788" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Salut Mario !</p><p>T’inquiète, ça va venir ! Et merci, au passage !</p><p>Là, je travaille actuellement sur 2 nouveaux articles :</p><ul><li>un indicateur de niveau de batterie auto 12V</li><li>et une intro au Raspberry Pi Pico</li></ul><p>Tout ça en fonction du temps que j’arrive à me dégager, comme toujours 😉<br> Alors à très bientôt !</p><p>Jérôme.</p></div></div></article></li></ol></li><li class="comment even thread-even depth-1" id="comment-item-789"><article id="comment-789" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">RIVOLLET Guy</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-789"> <time class="entry-date published" datetime="2022-12-20T08:17:58+00:00" content="2022-12-20"> 20 décembre 2022 à 08:17 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-789" data-commentid="789" data-postid="13758" data-belowelement="comment-789" data-respondelement="respond" data-replyto="Répondre à RIVOLLET Guy" aria-label="Répondre à RIVOLLET Guy">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Bonjour</p><p>Merci
beaucoup pour cet excellent tuto comme d’habitude. Il conforte mon
choix d’utilisation d’un I2C pour gérer mon projet de modernisation d’un
petit circuit de train avec Arduinos, écran OLED, extension
d’entrées/sorties. Le prototype fonctionne reste à passer à la
réalisation. Guy</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-790"><article id="comment-790" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-790"> <time class="entry-date published" datetime="2022-12-20T08:44:16+00:00" content="2022-12-20"> 20 décembre 2022 à 08:44 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-790" data-commentid="790" data-postid="13758" data-belowelement="comment-790" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Super ça ! Bon courage à toi alors 😉</p></div></div></article></li></ol></li><li class="comment even thread-odd thread-alt depth-1" id="comment-item-791"><article id="comment-791" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">Van Lierde Michel</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-791"> <time class="entry-date published" datetime="2022-12-20T11:53:10+00:00" content="2022-12-20"> 20 décembre 2022 à 11:53 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-791" data-commentid="791" data-postid="13758" data-belowelement="comment-791" data-respondelement="respond" data-replyto="Répondre à Van Lierde Michel" aria-label="Répondre à Van Lierde Michel">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Article
très clair, pédagogique, au contenu suffisant pour un débutant que je
suis, bravo pour cet article et tout le travail qui a derrière.</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-792"><article id="comment-792" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-792"> <time class="entry-date published" datetime="2022-12-20T16:19:11+00:00" content="2022-12-20"> 20 décembre 2022 à 16:19 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-792" data-commentid="792" data-postid="13758" data-belowelement="comment-792" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Mille mercis à toi !</p></div></div></article></li></ol></li><li class="comment even thread-even depth-1" id="comment-item-793"><article id="comment-793" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">Patrick</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-793"> <time class="entry-date published" datetime="2022-12-20T19:51:51+00:00" content="2022-12-20"> 20 décembre 2022 à 19:51 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-793" data-commentid="793" data-postid="13758" data-belowelement="comment-793" data-respondelement="respond" data-replyto="Répondre à Patrick" aria-label="Répondre à Patrick">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Bravo pour le contenu de vos articles qui permet une compréhension du sujet et une mise en application rapide.</p></div></div></article></li><li class="comment odd alt thread-odd thread-alt depth-1" id="comment-item-799"><article id="comment-799" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">Florian</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-799"> <time class="entry-date published" datetime="2022-12-25T23:17:38+00:00" content="2022-12-25"> 25 décembre 2022 à 23:17 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-799" data-commentid="799" data-postid="13758" data-belowelement="comment-799" data-respondelement="respond" data-replyto="Répondre à Florian" aria-label="Répondre à Florian">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Merci Jérôme pour cet article on ne peut plus clair, et +1 pour les illustrations câblage !</p></div></div></article></li><li class="comment even thread-even depth-1" id="comment-item-839"><article id="comment-839" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">JACK CARRIER</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-839"> <time class="entry-date published" datetime="2023-01-08T11:03:21+00:00" content="2023-01-08"> 8 janvier 2023 à 11:03 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-839" data-commentid="839" data-postid="13758" data-belowelement="comment-839" data-respondelement="respond" data-replyto="Répondre à JACK CARRIER" aria-label="Répondre à JACK CARRIER">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Merci pour le tuto, il est clair et facile d’accès pour les débutants.</p></div></div></article></li><li class="comment odd alt thread-odd thread-alt depth-1" id="comment-item-861"><article id="comment-861" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">jeenjean</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-861"> <time class="entry-date published" datetime="2023-01-27T07:24:00+00:00" content="2023-01-27"> 27 janvier 2023 à 07:24 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-861" data-commentid="861" data-postid="13758" data-belowelement="comment-861" data-respondelement="respond" data-replyto="Répondre à jeenjean" aria-label="Répondre à jeenjean">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>J aime bien tes articles. Continue</p></div></div></article></li><li class="comment even thread-even depth-1" id="comment-item-1056"><article id="comment-1056" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author">Ben</span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-1056"> <time class="entry-date published" datetime="2023-05-20T14:55:05+00:00" content="2023-05-20"> 20 mai 2023 à 14:55 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-1056" data-commentid="1056" data-postid="13758" data-belowelement="comment-1056" data-respondelement="respond" data-replyto="Répondre à Ben" aria-label="Répondre à Ben">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Bonjour Jérome,</p><p>J’y comprenais rien avant.<br> Je lis l’article, et maintenant c’est clair comme de l’eau de roche.</p><p>Merci beaucoup ! Continuez je me régale 🙂</p></div></div></article></li><li class="children" role="listitem"><ol><li class="comment byuser comment-author-admin3 odd alt depth-2" id="comment-item-1057"><article id="comment-1057" class="nv-comment-article"><div class="nv-comment-avatar"><img alt="Site passionelectronique.fr" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3E%3C/svg%3E" class="avatar avatar-50 photo" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" width="50" height="50"><noscript><img alt="Site passionelectronique.fr" src="https://passionelectronique.fr/wp-content/uploads/logo_pse_rond_50.png" class="avatar avatar-50 photo" height="50" width="50" /></noscript></div><div class="comment-content"><div class="nv-comment-header"><div class="comment-author vcard"> <span class="fn author"><a href="https://passionelectronique.fr/" class="url" rel="ugc">Jérôme</a></span> <a href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#comment-1057"> <time class="entry-date published" datetime="2023-05-20T15:07:15+00:00" content="2023-05-20"> 20 mai 2023 à 15:07 </time> </a></div><div class="edit-reply"> <span class="nv-reply-link"><a rel="nofollow" class="comment-reply-link" href="#comment-1057" data-commentid="1057" data-postid="13758" data-belowelement="comment-1057" data-respondelement="respond" data-replyto="Répondre à Jérôme" aria-label="Répondre à Jérôme">Répondre</a></span></div></div><div class="nv-comment-content comment nv-content-wrap"><p>Héhé, merci !</p><p>Pour
info, si le sujet t’intéresse, je prévois de faire 2 articles
complémentaires dans le courant de l’année, autour du SPI. J’illustrerai
ainsi la « lecture SPI » (en lisant un ADC de 3 manières
différentes), et « l’écriture SPI » (en envoyant des
instructions à un DAC, de 3 manières différentes). Sinon, la théorie
sans la pratique, c’est pas génial 😉</p><p>À bientôt, et bon courage à toi !<br> Jérôme.</p></div></div></article></li></ol></li></ol></div><div id="respond" class="comment-respond nv-is-boxed"><h2 id="reply-title" class="comment-reply-title">Laisser un commentaire <small><a rel="nofollow" id="cancel-comment-reply-link" href="https://passionelectronique.fr/liaisons-series-uart-i2c-spi/#respond" style="display:none;">Annuler la réponse</a></small></h2><form action="https://passionelectronique.fr/wp-comments-post.php" method="post" id="commentform" class="comment-form"><p class="comment-notes"><span id="email-notes">Votre adresse e-mail ne sera pas publiée.</span> <span class="required-field-message">Les champs obligatoires sont indiqués avec <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Commentaire <span class="required">*</span></label><textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><p class="comment-form-author"><label for="author">Nom <span class="required">*</span></label> <input id="author" name="author" type="text" size="30" maxlength="245" autocomplete="name" required="required"></p><p class="comment-form-email"><label for="email">E-mail <span class="required">*</span></label> <input id="email" name="email" type="text" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required="required"></p><p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"> <label for="wp-comment-cookies-consent">Enregistrer mon nom, mon e-mail et mon site dans le navigateur pour mon prochain commentaire.</label></p><p> <label for="nombreY">Résolvez cette soustraction :</label> <input type="hidden" id="nombreY" name="nombreY" value="71" readonly="readonly" style="display: inline-block;"> <label for="nombreX"> 71 - </label> <input type="text" id="nombreX" name="nombreX" size="3" required="required" style="width: auto;"> <label for="nombreZ"> = 67</label> <input type="hidden" id="nombreZ" name="nombreZ" value="67" readonly="readonly"></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="button button-primary" value="Laisser un commentaire"> <input type="hidden" name="comment_post_ID" value="13758" id="comment_post_ID"> <input type="hidden" name="comment_parent" id="comment_parent" value="0"></p></form></div><p class="comment-notes bannMaster" style="background: #ffdada; color: #333; font-size: 1.2em;"><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Symbole danger point d'exclamation site PSE, triangle jaune avec contour noir, texte noir alerte au milieu" style="float: left; padding-right: 10px;" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/symbole-danger-point-exclamation-site-pse-h100.png"><noscript><img src="https://passionelectronique.fr/wp-content/uploads/symbole-danger-point-exclamation-site-pse-h100.png" alt="Symbole danger point d'exclamation site PSE, triangle jaune avec contour noir, texte noir alerte au milieu" style="float: left; padding-right: 10px;"></noscript>Afin de filtrer au maximum les messages de type "spam" ou "inappropriés", <strong>chaque commentaire est soumis à modération, et validé manuellement</strong>. Du coup, il se peut que certains commentaires ne soient pas publiés, ou sinon, avec un peu de retard. Par ailleurs, <u>j'ai malheureusement plus de messages à traiter que de temps pour y répondre</u> ; c'est pourquoi je ne pourrais pas répondre à tout le monde. Désolé …</p></div><div class="nv-tags-list"><span>Étiquettes:</span><a href="https://passionelectronique.fr/tag/cours-pratiques/" title="Cours pratiques" class="cours-pratiques" rel="tag">Cours pratiques</a><a href="https://passionelectronique.fr/tag/decouverte/" title="Découverte" class="decouverte" rel="tag">Découverte</a></div></article></div></div></main><footer class="site-footer" id="site-footer"><div class="hfg_footer"><div class="footer--row footer-top layout-full-contained" id="cb-row--footer-top" data-row-id="top" data-show-on="desktop"><div class="footer--row-inner footer-top-inner footer-content-wrap"><div class="container"><div class="hfg-grid nv-footer-content hfg-grid-top row--wrapper row " data-section="hfg_footer_layout_top"><div class="hfg-slot left"><div class="builder-item desktop-left tablet-left mobile-left"><div class="item--inner builder-item--footer-one-widgets" data-section="neve_sidebar-widgets-footer-one-widgets" data-item-id="footer-one-widgets"><div class="widget-area"><div id="block-13" class="widget widget_block"><div class="container"><div id="pied_de_page">© Copyright 2020-2023, <a href="https://passionelectronique.fr/" rel="nofollow">PassionElectronique.fr</a><br> Tous droits réservés.<br> <br>
Certains liens présents sur ce site sont affiliés. Cela permet, même si
ça reste très limité, d'aider au financement de ce site. Sachez que
ceux-ci ne vous coûtent rien, et que vous restez totalement libre de les
utiliser ou pas. Du reste, merci à vous tous, notamment pour vos
nombreux messages bienveillants, et chaleureux ! Encore merci !<br> <br><div style="display: flex;"><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="Logo Twitter 40x40, rond bleu avec oiseau blanc, pour lien vers réseau social twitter depuis PSE" data-lazy-src="https://passionelectronique.fr/wp-content/uploads/logo-twitter-40x40-1.png"><noscript><img decoding="async" src="https://passionelectronique.fr/wp-content/uploads/logo-twitter-40x40-1.png" alt="Logo Twitter 40x40, rond bleu avec oiseau blanc, pour lien vers réseau social twitter depuis PSE"></noscript><div style="display: flex; flex-wrap: wrap; align-content: center; margin-left: 1rem;">Pour me retrouver sur Twitter : <a href="https://twitter.com/PassionElectron?pseSrc=lnkEndPg" target="_blank">https://twitter.com/PassionElectron</a></div></div> <br> <u>Raccourcis</u> : <a href="https://passionelectronique.fr/articles/" rel="nofollow">Tous les articles</a>, <a href="https://passionelectronique.fr/mentions-legales/" rel="nofollow">Mentions légales</a>, <a href="https://passionelectronique.fr/politique-de-confidentialite/" rel="nofollow">Politique de confidentialité</a>, et <a href="https://passionelectronique.fr/contact/" rel="nofollow">Page contact</a></div></div></div></div></div></div></div></div></div></div></div><div class="footer--row footer-bottom layout-full-contained" id="cb-row--footer-bottom" data-row-id="bottom" data-show-on="desktop"><div class="footer--row-inner footer-bottom-inner footer-content-wrap"><div class="container"><div class="hfg-grid nv-footer-content hfg-grid-bottom row--wrapper row " data-section="hfg_footer_layout_bottom"><div class="hfg-slot left"><div class="builder-item"><div class="item--inner"><div class="component-wrap"><div><p><a href="https://themeisle.com/themes/neve/" rel="nofollow">Neve</a> | Propulsé par <a href="http://wordpress.org/" rel="nofollow">WordPress</a></p></div></div></div></div></div><div class="hfg-slot c-left"></div><div class="hfg-slot center"></div></div></div></div></div></div></footer></div> <script type="text/javascript" id="edd-ajax-js-extra">/* <![CDATA[ */ var edd_scripts = {"ajaxurl":"https:\/\/passionelectronique.fr\/wp-admin\/admin-ajax.php","position_in_cart":"","has_purchase_links":"","already_in_cart_message":"Vous avez d\u00e9j\u00e0 ajout\u00e9 cet article \u00e0 votre panier.","empty_cart_message":"Votre panier est vide","loading":"Chargement en cours","select_option":"Veuillez s\u00e9lectionner une option","is_checkout":"0","default_gateway":"manual","redirect_to_checkout":"1","checkout_page":"https:\/\/passionelectronique.fr\/commande\/","permalinks":"1","quantities_enabled":"","taxes_enabled":"1","current_page":"13758"}; /* ]]> */</script> <script type="text/javascript" id="neve-script-js-extra">/* <![CDATA[ */ var NeveProperties = {"ajaxurl":"https:\/\/passionelectronique.fr\/wp-admin\/admin-ajax.php","nonce":"0075b140a5","isRTL":"","isCustomize":""}; /* ]]> */</script> <script type="text/javascript" id="hcb-script-js-extra">/* <![CDATA[ */ var hcbVars = {"showCopyBtn":"1","copyBtnLabel":"Copy code to clipboard"}; /* ]]> */</script> <style>.lwptoc .lwptoc_i A{color:#1e73be}</style><div id="cookie-notice" role="dialog" class="cn-position-bottom cn-effect-fade cookie-notice-hidden cookie-revoke-visible" aria-label="Cookie Notice" style="background-color: rgba(128,128,128,1);"><div class="cookie-notice-container" style="color: #fff"><span id="cn-notice-text" class="cn-text-container">Nous
utilisons des cookies pour vous garantir la meilleure expérience sur
notre site web. Si vous continuez à utiliser ce site, nous supposerons
que vous acceptez sans réserve notre <a href="https://passionelectronique.fr/politique-de-confidentialite/" target="_blank" rel="nofollow">politique de confidentialité</a></span><span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button" aria-label="Accepter" style="background-color: #00a99d">Accepter</a><a href="#" id="cn-refuse-cookie" data-cookie-set="refuse" class="cn-set-cookie cn-button" aria-label="Refuser" style="background-color: #00a99d">Refuser</a></span><span id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" title="Refuser"></span></div></div> <script>window.lazyLoadOptions={elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){return}
if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){return}
images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1}
if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async="" src="uart-i2c-spi_fichiers/lazyload.min.js"></script><script src="uart-i2c-spi_fichiers/bc3f18ff73b5caf89a2d56a93e104a90.js" data-minify="1"></script>
</body></html>
<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1687302475 -->