{"id":355324,"date":"2024-05-20T23:06:26","date_gmt":"2024-05-20T23:06:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=355324"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=355324","title":{"rendered":"<span>Cross-Detect \u0434\u043b\u044f \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u041f\u0430\u0439\u043a\u0438 \u0432 \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0426\u0435\u043f\u044f\u0445<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>#\u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430 #H-\u043c\u043e\u0441\u0442 #sensitivity #\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b #\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 #FSM #\u0440\u0443\u0441\u0441\u043a\u0430\u044f \u0441\u043c\u0435\u043a\u0430\u043b\u0430<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4cc\/d8a\/6eb\/4ccd8a6eb63dd663cb69580e02cce25b.png\" width=\"731\" height=\"396\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4cc\/d8a\/6eb\/4ccd8a6eb63dd663cb69580e02cce25b.png\"\/><\/figure>\n<p><strong>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/strong><\/p>\n<p>\u0412\u0430\u043c \u0441 out source \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0438 600 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 (PCB). \u0418\u043b\u0438 \u0412\u0430\u043c \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0438 5 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0432\u0438\u0437\u0438\u0438 PCB \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u0440\u044f\u043c\u043e \u0441 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0430\u0436\u0430.<\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0430\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u0440\u0430\u043a \u043c\u043e\u043d\u0442\u0430\u0436\u0430: \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 GND \u0438\u043b\u0438 VCC, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u043e\u0432 \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ffc\/2dc\/ca5\/ffc2dcca54f733b908ab53496e091d5e.png\" alt=\"\u042f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u0430\u0445\" title=\"\u042f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u0430\u0445\" width=\"768\" height=\"707\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ffc\/2dc\/ca5\/ffc2dcca54f733b908ab53496e091d5e.png\"\/><\/p>\n<div><figcaption>\u042f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u0430\u0445<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439<\/strong><\/p>\n<p>1&#8212; <strong>\u043f\u0438\u043d<\/strong> <strong>(pin)<\/strong> &#8212; \u044d\u0442\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u0440\u0447\u0438\u0442 \u0438\u0437 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0434\u0435\u0441\u044f\u0442\u0438 \u0438 \u0434\u0430\u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043f\u0438\u043d\u043e\u0432.<\/p>\n<p>2&#8212; <strong>\u0433\u0440\u0430\u0444<\/strong> &#8212; \u044d\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0440\u0435\u0431\u0435\u0440 (\u043f\u0430\u043b\u043e\u0447\u043a\u0438 \u0438 \u043a\u0440\u0443\u0436\u043e\u0447\u043a\u0438).  <\/p>\n<p><strong>3&#8212; \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444<\/strong>\u00a0\u2014 \u0433\u0440\u0430\u0444 \u0443\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430 \u0438\u043c\u0435\u044e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/p>\n<p>4&#8212;\u043a<strong>\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442<\/strong> &#8212; \u00a0\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444. \u0412\u0435\u0440\u0448\u0438\u043d\u044b &#8212; \u044d\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0440\u0435\u0431\u0440\u0430 &#8212; \u0441\u043e\u0431\u044b\u0442\u0438\u044f    <\/p>\n<p>5&#8212;<strong>\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0438\u043b\u0438<\/strong>&#8212;\u00a0\u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0443\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432  <\/p>\n<p>6&#8212;<strong>\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0443\u0440\u0430<\/strong> &#8212;\u00a0\u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0443\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432\u00a0\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438  <\/p>\n<p>7&#8212;<strong>\u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a GND<\/strong>&#8212; \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435  \u043f\u0438\u043d\u0430 \u0438 GND \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c 40kOm<\/p>\n<p>8&#8212;<strong>\u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a VCC<\/strong>&#8212; \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435  \u043f\u0438\u043d\u0430 \u0438 VCC \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c 40kOm<\/p>\n<p>9&#8212; <strong>\u0442\u043e\u043a\u0435\u043d<\/strong> &#8212; \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432. \u0421\u043b\u0443\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<p>10- <strong>bring-up PCB<\/strong>&#8212; \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u0412\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u0438 \u0438\u0445 \u0440\u0435\u043c\u043e\u043d\u0442.<\/p>\n<p>\u041f\u043e-\u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c PCB \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0440\u044b\u0432 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0435\u0449\u0435 \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043f\u0430\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0410 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0441\u0442\u0435\u043d\u0434\u044b (test jig) \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e PCB. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 test jig \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043a\u0443\u0441\u0442\u0430\u0440\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438?<\/p>\n<p>\u041f\u043e\u0434\u043e\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437\u0434\u0430\u043b\u0435\u043a\u0430. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440. \u041a\u0430\u043a \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0437\u0430\u0447\u0435\u043c \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0430\u043a \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043a GND, VCC \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438? \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 I2C, 1-Wire, UART Rx, \u043a\u043d\u043e\u043f\u043e\u043a, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043f\u0438\u043d\u043e\u0432.   <\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e \u0441\u0436\u0435\u0447\u044c \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u043b\u0430\u0442\u0435. \u041f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u044f 10kOm-40kOm, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0442\u043e\u043a\u0438 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u0446\u0435\u043f\u0438 \u043f\u0440\u043e\u0442\u0435\u043a\u0430\u044e\u0442 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 (80 uA &#8230; 300 uA).<\/p>\n<p>\u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430\u043c\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u0438\u043d\u0430\u0445, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 <strong>\u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435<\/strong> \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u0430\u043a \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430, \u0438\u043b\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u043d\u0430 GND \u0438\u043b\u0438 VCC. <\/p>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 Load-detect \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0440\u0443\u0431\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438.  \u0412\u043e\u0442 \u043e\u043d <a href=\"https:\/\/habr.com\/ru\/articles\/756572\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/756572\/<\/a>. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0442\u043e\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0431\u044b\u043b\u043e \u043e\u0434\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u0422\u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u043f\u0438\u043d\u0430\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0410 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u044b\u0439 \u0432\u0438\u0434 \u0431\u0440\u0430\u043a\u0430 \u0432 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 Hi-Tech \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0438. \u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e, \u0442\u043e \u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 Load-detect \u0441 FSM \u043d\u0430 3 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u043c\u043d\u043e\u0433\u043e\u043a\u043b\u0435\u0442\u043e\u0447\u043d\u044b\u0445. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0436\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u0434\u0438\u043d\u043e\u0437\u0430\u0432\u0440\u0435 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Cross-Detect. <\/p>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435 \u044f \u0434\u043e\u043b\u0433\u043e \u043d\u0435 \u043c\u043e\u0433 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u0440\u0430\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u0411\u044b\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e solder-test, assembly-check, wire-verify. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 cross-detect \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b Cross-Detect \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u0438\u043c\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e \u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u0435\u0449\u0451 \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u043f\u0438\u043d\u0430\u043c\u0438, \u043d\u043e \u0438 \u043c\u0435\u0436\u0434\u0443 \u043b\u044e\u0431\u044b\u043c\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 (PCB)! \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u0447\u0442\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f BringUp(\u043e\u043c) \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0437\u044f\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043d\u044b\u0445 \u043f\u0438\u043d\u0430 \u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a H-\u043c\u043e\u0441\u0442. \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0446\u0435\u043f\u044c H-\u043c\u043e\u0441\u0442\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f53\/963\/405\/f53963405cf5a49461df1571d370bcca.png\" width=\"904\" height=\"515\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f53\/963\/405\/f53963405cf5a49461df1571d370bcca.png\"\/><\/figure>\n<p>\u041f\u0440\u043e \u0442\u043e \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043e\u0440\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0441\u0438\u043b\u043e\u0432\u043e\u043c H-\u043c\u043e\u0441\u0442\u0435 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/709374\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/709374\/<\/a>. \u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438 PCB \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041e\u0442\u043e\u0440\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 <strong>\u0431\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439<\/strong> \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0422\u0443\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0451 \u043a\u0430\u043a \u0432 \u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043e\u0431\u0440\u044b\u0432\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 \u0442\u043e\u0439 \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043b\u0435\u0447\u0435\u0439 \u043c\u043e\u0441\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0432\u0430 \u043f\u0438\u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0435\u0449\u0435 \u0438 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a \u0437\u0435\u043c\u043b\u0435. <\/p>\n<p>\u042f \u043e\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p><strong>\u041a\u0430\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 H-\u043c\u043e\u0441\u0442\u0435?<\/strong><\/p>\n<p>\u0414\u0430 \u0446\u0435\u043b\u0430\u044f \u043a\u0443\u0447\u0430. \u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043b\u0435\u0432\u043e\u0435 \u043f\u043b\u0435\u0447\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u043e \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u0430 \u043f\u0440\u0430\u0432\u043e\u0435 \u043d\u0430 VCC. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0438\u043d\u044b \u0432\u0434\u0440\u0443\u0433 \u0437\u0430\u043c\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430 \u0442\u0430\u043c, \u0433\u0434\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c. \u0418\u043b\u0438 \u043e\u0431\u0430 \u043f\u0438\u043d\u0430 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b \u043d\u0430 VCC. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/875\/419\/a8d\/875419a8dcf5b493a4f749dd529cac1b.png\" width=\"720\" height=\"287\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/875\/419\/a8d\/875419a8dcf5b493a4f749dd529cac1b.png\"\/><\/figure>\n<p><strong>\u041a\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u0431\u0440\u0430\u043a \u043f\u0430\u0439\u043a\u0438?<\/strong><\/p>\n<p>\u041a\u0430\u043a \u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 (FSM) \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u044d\u0442\u043e \u0437\u043e\u043b\u043e\u0442\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u044b \u0445\u043e\u0440\u043e\u0448\u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 FSM \u043b\u0435\u0442 \u043a\u0430\u043a \u0441\u0442\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0440\u0435\u043b\u044cc\u044b \u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u0442\u043e \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0437.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 1. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430.<\/strong><\/p>\n<p>\u0421 \u0432\u0445\u043e\u0434\u0430\u043c\u0438 \u0442\u0443\u0442 \u0432\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0412\u0445\u043e\u0434 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d. \u042d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0422\u0430\u0439\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439, \u0442\u0430\u043a \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439. <br \/>\u0418\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 (Load-Detect \u0434\u043b\u044f \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u041f\u0430\u0439\u043a\u0438) \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0435\u0434\u043a\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 3 ms. \u041d\u043e \u044f \u0434\u043b\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b 10&#8230;100ms. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5cb\/c84\/f65\/5cbc84f65d6b1841ab4f1efed72567db.png\" width=\"1560\" height=\"581\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5cb\/c84\/f65\/5cbc84f65d6b1841ab4f1efed72567db.png\"\/><\/figure>\n<p><strong>\u0424\u0430\u0437\u0430 2. \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430.<\/strong><\/p>\n<p>\u0422\u0443\u0442 \u0447\u0438\u0441\u0442\u0430\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430 2 \u043f\u0438\u043d\u0430? \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, 3*3=9 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432. \u0417\u043d\u0430\u0447\u0438\u0442 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0432\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/600\/347\/e4b\/600347e4bbcf1a5308d69a33977cba9a.png\" width=\"532\" height=\"389\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/600\/347\/e4b\/600347e4bbcf1a5308d69a33977cba9a.png\"\/><\/figure>\n<p><strong>\u0424\u0430\u0437\u0430 3. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430<\/strong> <\/p>\n<p>\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u0435\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c (\u043b\u0435\u0433\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f) \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e\u043c\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043f\u0430\u0439\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0441\u0435\u0433\u043e-\u043d\u0430\u0432\u0441\u0435\u0433\u043e \u0432\u043e\u0442 \u044d\u0442\u0438\u0445 \u0434\u0435\u0432\u044f\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/522\/881\/d3e\/522881d3e36fb124dde2204f3f55619f.png\" width=\"584\" height=\"350\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/522\/881\/d3e\/522881d3e36fb124dde2204f3f55619f.png\"\/><\/figure>\n<p> <strong>\u0424\u0430\u0437\u0430 4. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/strong><\/p>\n<p>\u0415\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u043d\u0430\u0434\u043e \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e \u0434\u0432\u0443\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c: <\/p>\n<p>1)\u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, <\/p>\n<p>2)\u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u041e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>\u0412 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u0434\u044b, \u0433\u0434\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0431\u0438\u0442 &#8212;  \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u0434\u0430\u043c\u0438 \u0413\u0440\u0435\u044f. \u0423 \u043d\u0430\u0441 \u0436\u0435 \u0442\u0443\u0442, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u043e\u0436\u0435 \u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0440\u0435\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c45\/98d\/ec5\/c4598dec562e6df8683cc265312ee7f0.png\" width=\"830\" height=\"666\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c45\/98d\/ec5\/c4598dec562e6df8683cc265312ee7f0.png\"\/><\/figure>\n<p><strong>\u0424\u0430\u0437\u0430 5. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 (Action Table)<\/strong><\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435: \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0442\u0430\u0439\u043c\u0435\u0440. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043e\u0442\u0447\u0435\u0442 \u0438, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0430\u0440\u0443 \u043f\u0438\u043d\u043e\u0432 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439. <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/077\/06a\/742\/07706a74204e8da41477619c4147a898.png\" width=\"500\" height=\"495\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/077\/06a\/742\/07706a74204e8da41477619c4147a898.png\"\/><\/figure>\n<p>\u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043f\u043e \u0441\u0443\u0442\u0438 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0442\u0430\u0431\u043b\u0438\u0447\u0435\u043a. \u0410 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u0421\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0412\u043e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c &#8212; \u044d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 6. \u041d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430<\/strong><\/p>\n<p>\u0413\u0440\u0430\u0444 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 inkscape (\u043a\u0430\u043a \u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u043b) \u0438\u043b\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Graphviz. \u0422\u0443\u0442 \u0443\u0436 \u043a\u043e\u043c\u0443 \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435. \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0433\u0440\u0430\u0444 (\u0440\u0438\u0441.5.)\u0434\u043b\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438. \u0422\u0443\u0442 \u0432\u0441\u0451 \u043a\u0430\u043a \u043d\u0430 \u043b\u0430\u0434\u043e\u043d\u0438: \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u0440\u043e\u0434\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u043e\u0432\u0438\u0446\u0430: &#171;\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441\u0442\u043e\u0438\u0442 \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u043b\u043e\u0432&#187; (\u0410 picture is worth a thousand words).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a2\/4d0\/39e\/0a24d039e05ca124f3ddfc5829771f71.png\" alt=\"\u0440\u0438\u0441.5.\" title=\"\u0440\u0438\u0441.5.\" width=\"1901\" height=\"2068\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a2\/4d0\/39e\/0a24d039e05ca124f3ddfc5829771f71.png\"\/><\/p>\n<div><figcaption>\u0440\u0438\u0441.5.<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u0447\u0438\u0441\u0442\u043e\u0442\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u043f\u0438\u043d\u043e\u0432. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 cross-detect \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f N \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0430\u0440\u044b \u043f\u0438\u043d\u043e\u0432 \u0438 \u0437\u0430\u043d\u0435\u0441\u0435\u0442 \u0435\u0433\u043e \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. <\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 Cross-Detect \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0443\u0440\u0430, \u0442\u0430\u043a  \u043a\u0430\u043a \u0442\u0443\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043a\u0430\u043a \u0440\u0430\u0437, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0438\u043b\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 7. \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c Look-Up \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u0442\u0443\u0442-\u0442\u043e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 GPIO \u043f\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u0444\u043e\u0440\u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u0443\u043b\u0438\u0446\u0443, \u0442\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0435, GPIO \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0442\u044b\u0440\u0435  \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0430\u0440\u044b.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\"><strong>Left GPIO pin<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\"><strong>Right GPIO \u043f\u0438\u043d<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">0.0 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">0.0 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">0.0 V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0441ross-detect \u0437\u0430 \u043e\u0434\u043d\u0443 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0432\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u0418 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0445\u043e\u0434\u043e\u0432 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f GPIO. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0438\u0437 9*4 = 36 \u0441\u0442\u0440\u043e\u0447\u0435\u043a.<\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 H-\u043c\u043e\u0441\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u0432\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u043b\u0435\u0447\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u043b\u0435\u0447\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u0435. \u041e\u0434\u0438\u043d H-\u043c\u043e\u0441\u0442 \u0438 \u0434\u0432\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438. <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u0438\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u043d\u0430 5 \u0431\u0438\u0442.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\"><strong>\u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0431\u0438\u0442\u0430<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <br \/>\u0431\u0438\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>0<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 GND<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 VCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 GND<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 VCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u043f\u0438\u043d\u044b \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 H-\u043c\u043e\u0441\u0442\u0435 \u0434\u0432\u0430 \u043f\u0438\u043d\u0430 \u043d\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u043e\u0439? \u0415\u0441\u043b\u0438 GPIO \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0438\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043f\u0430\u0439\u043a\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043a\u043b\u044f\u043a\u0441\u0430 \u0438\u0437 \u043f\u0440\u0438\u043f\u043e\u044f, \u0442\u043e \u043d\u0430 \u043f\u0438\u043d\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/89b\/759\/b50\/89b759b50271378246180fd253bf8728.png\" width=\"737\" height=\"641\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/89b\/759\/b50\/89b759b50271378246180fd253bf8728.png\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439? \u041e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u0441\u043b\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f bool IsLeftShortGnd(Node_t Node). \u041e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445 2, 7 \u0438 8 \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u043b\u0435\u0447\u0435 \u043c\u043e\u0441\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 GPIO \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 0V. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/13c\/c83\/d3a\/13cc83d3a566092326c965312a25081f.JPG\" width=\"834\" height=\"374\"\/><\/figure>\n<p>\u042d\u0442\u043e \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c, \u0447\u0442\u043e \u043b\u0435\u0432\u044b\u0439 \u043f\u0438\u043d \u043d\u0430\u043a\u043e\u0440\u043e\u0442\u043a\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442 \u043d\u0430 GND.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/81e\/b61\/839\/81eb618394da8e2f1bd69ce7b62f4445.png\" width=\"652\" height=\"318\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/81e\/b61\/839\/81eb618394da8e2f1bd69ce7b62f4445.png\"\/><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445 2, 6 \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043f\u043b\u0435\u0447\u0430\u0445 GPIO \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 3.3V, \u0430 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445 3, 9 GPIO \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 0 V, \u0442\u043e \u044d\u0442\u043e \u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044d\u043b\u0438 \u0434\u0432\u0430 \u043f\u0438\u043d\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u043e\u0439. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/54c\/dfe\/59a\/54cdfe59a5016e212aeaec68333f4799.png\" width=\"612\" height=\"255\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/54c\/dfe\/59a\/54cdfe59a5016e212aeaec68333f4799.png\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u044b \u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 VCC.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68c\/210\/069\/68c2100694a0c65161dfb310a455a0f6.JPG\" width=\"813\" height=\"368\"\/><\/figure>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043d\u0430 <strong>\u043f\u0440\u0430\u0432\u043e\u043c<\/strong> \u043f\u043b\u0435\u0447\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a \u0437\u0435\u043c\u043b\u0435, \u0430 GPIO \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 3.3 V, \u0442\u043e \u044d\u0442\u043e \u044f\u0432\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a, \u0447\u0442\u043e \u043d\u0430 <strong>\u043f\u0440\u0430\u0432\u043e\u043c<\/strong> \u043f\u043b\u0435\u0447\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c-\u0442\u043e \u0434\u0435\u043b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 VCC.<strong><br \/><\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3ff\/06b\/153\/3ff06b15384b894cf8ea19ee34042c4f.png\" width=\"620\" height=\"317\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ff\/06b\/153\/3ff06b15384b894cf8ea19ee34042c4f.png\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b \u0433\u043b\u044f\u0434\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0434\u043d\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u041d\u0430\u0434\u043e \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f GPIO \u0432\u043e \u0432\u0441\u0435\u0445 \u0434\u0435\u0432\u044f\u0442\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445, \u0447\u0442\u043e\u0431\u044b \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0430\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0446\u0435\u043f\u0438. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u044f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e \u043a\u0430\u043a  \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u0438\u0433\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438\u0437 \u043f\u0440\u043e\u0434\u0430. <\/p>\n<p><strong>\u0424\u0430\u0437\u0430 8. \u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0421\u0438<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u043a\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 cross-detect<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u043e\u0442 \u043a\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 cross-detect<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\"> #include \"cross_detect_drv.h\"  #include &lt;stdint.h> #include &lt;string.h>  #include \"cross_detect_diag.h\" #include \"data_utils.h\" #include \"gpio_drv.h\" #include \"gpio_general_diag.h\" #include \"log.h\" #include \"time_utils.h\"  uint64_t cross_detect_period_us = MSEC_2_USEC(20);  static bool CrossDetectIsLeftHi(CrossDetectGpioRead_t read){     bool res = false;     switch((uint8_t)read){         case READ_L1_R0: res = true;break;         case READ_L1_R1: res = true; break;         case READ_L0_R0: res = false; break;         case READ_L0_R1: res = false;  break;     }     return res; }  static bool CrossDetectIsRightHi(CrossDetectGpioRead_t read){     bool res = false;     switch((uint8_t)read){         case READ_L0_R1: res = true; break;         case READ_L1_R1: res = true; break;         case READ_L0_R0: res = false; break;         case READ_L1_R0: res = false; break;     }     return res; }  static bool CrossDetectIsRightLow(CrossDetectGpioRead_t read){     bool res = false;     switch((uint8_t)read) {         case READ_L0_R0: res = true; break;         case READ_L1_R0: res = true;break;         case READ_L0_R1: res = false;  break;         case READ_L1_R1: res = false; break;     }     return res; }  static bool CrossDetectIsLeftLow(CrossDetectGpioRead_t read){     bool res = false;     switch((uint8_t)read){     case READ_L0_R0: res = true; break;     case READ_L0_R1: res = true; break;     case READ_L1_R0: res = false; break;     case READ_L1_R1: res = false; break;     }     return res; }  static bool cross_detect_is_left_gnd(CrossDetectPairInfo_t* pair ){     bool res = false;     res = CrossDetectIsLeftLow(pair->measurements[CROSS_DETECT_STATE_LU_RA].read);     if(res){         res=CrossDetectIsLeftLow(pair->measurements[CROSS_DETECT_STATE_LU_RU].read);         if(res){             res=CrossDetectIsLeftLow(pair->measurements[CROSS_DETECT_STATE_LU_RD].read);         }     }      return res; }  static bool cross_detect_is_left_vcc(CrossDetectPairInfo_t* pair ){     bool res = false;     res = CrossDetectIsLeftHi(pair->measurements[CROSS_DETECT_STATE_LD_RA].read);     if(res) {         res = CrossDetectIsLeftHi(pair->measurements[CROSS_DETECT_STATE_LD_RD].read);         if(res) {             res=CrossDetectIsLeftHi(pair->measurements[CROSS_DETECT_STATE_LD_RU].read);         }     }      return res; }  static bool cross_detect_is_right_gnd(CrossDetectPairInfo_t* pair ){     bool res = false;      res = CrossDetectIsRightLow(pair->measurements[ CROSS_DETECT_STATE_LD_RU].read);     if(res){         res=CrossDetectIsRightLow(pair->measurements[CROSS_DETECT_STATE_LA_RU].read);         if(res){             res=CrossDetectIsRightLow(pair->measurements[CROSS_DETECT_STATE_LU_RU].read);         }     }     return res; }  static bool cross_detect_is_right_vcc(CrossDetectPairInfo_t* pair ){     bool res = false;      res = CrossDetectIsRightHi(pair->measurements[CROSS_DETECT_STATE_LU_RD].read);     if(res) {         res = CrossDetectIsRightHi(pair->measurements[CROSS_DETECT_STATE_LD_RD].read);         if(res) {             res=CrossDetectIsRightHi(pair->measurements[CROSS_DETECT_STATE_LA_RD].read);         }     }     return res; }  static bool cross_detect_is_cross(CrossDetectPairInfo_t* pair ){     bool res = false;     if(READ_L1_R1==pair->measurements[CROSS_DETECT_STATE_LU_RA].read){         if(CROSS_DETECT_STATE_LU_RA==pair->measurements[CROSS_DETECT_STATE_LU_RA].state){             if(READ_L1_R1==pair->measurements[CROSS_DETECT_STATE_LA_RU].read){                 if(CROSS_DETECT_STATE_LA_RU==pair->measurements[CROSS_DETECT_STATE_LA_RU].state){                     res = true;                 }             }         }     }      if(res){         res = false;         if(READ_L0_R0==pair->measurements[CROSS_DETECT_STATE_LA_RD].read){             if(READ_L0_R0==pair->measurements[CROSS_DETECT_STATE_LD_RA].read){                 res =true;             }          }     }     return res; }  static bool cross_detect_run_analitic(CrossDetectHandle_t* const Node) {     bool res = false;     LOG_PARN(CROSS_DETECT, \"RunAnalytics\");     if(Node) {         CrossDetectState_t state = 0;         Node->pair.fault_cnt = 0;           Node->pair.Fault.fault_code = 0;         res = cross_detect_is_cross(&amp;Node->pair);         if(res){             Node->pair.Fault.cross = 1;         }else{             Node->pair.Fault.cross = 0;         }          res = cross_detect_is_left_gnd(&amp;Node->pair);         if(res){             Node->pair.Fault.left_short_gnd = 1;         }else{             Node->pair.Fault.left_short_gnd = 0;         }          res = cross_detect_is_right_gnd(&amp;Node->pair);         if(res){             Node->pair.Fault.right_short_gnd = 1;         }else{             Node->pair.Fault.right_short_gnd = 0;         }           res = cross_detect_is_left_vcc(&amp;Node->pair);         if(res){             Node->pair.Fault.left_short_vcc = 1;         }else{             Node->pair.Fault.left_short_vcc = 0;         }          res = cross_detect_is_right_vcc(&amp;Node->pair);         if(res){             Node->pair.Fault.right_short_vcc = 1;         }else{             Node->pair.Fault.right_short_vcc = 0;         }          if(Node->pair.Fault.fault_code != CrossDetectResult[Node->left_num][Node->right_num].FaultPrev.fault_code) {             if(Node->pair.Fault.fault_code) {                 res = CrossDetectDiagFault(Node);             }         }         CrossDetectResult[Node->left_num][Node->right_num].Fault.fault_code = Node->pair.Fault.fault_code;         CrossDetectResult[Node->left_num][Node->right_num].FaultPrev.fault_code = Node->pair.Fault.fault_code;         CrossDetectResult[Node->left_num][Node->right_num].update_cnt++;         res = true;     }     return res; }  \/*  a  b  m     a  b  m  * (0, 4, 5) ->(1, 0, 5)*\/ U16Pair_t calc_next_uniq_u16pair(U16Pair_t pair) {     U16Pair_t out;     out = pair;      if(out.a &lt; out.max ) {         if(out.b &lt; out.max ) {             out.b++;             if(out.max ==out.b){                 out.a++;                 out.b = 0;             }         } else {             out.a++;             out.b = 0;         }     } else {         out.a = 0;         out.b = 1;     }      if(out.max==out.a){         out.a=0;     }      if(out.a == out.b) {         if(out.b &lt; (out.max - 1)) {             out.b++;         } else {             out.b = 0;             if(out.a &lt; (out.max - 1)) {                 out.a++;             } else {                 out.a = 0;             }         }     }     return out; }  static bool cross_detect_set_next_pair(CrossDetectHandle_t* const Node) {     bool res = false;     if(Node) {         Node->pair.spin_cnt = 0;          uint32_t cnt = cross_detect_get_pin_cnt();         res = cross_detect_reset_pair(&amp;Node->pair);          U16Pair_t in_pair = {             .a = Node->left_num,             .b = Node->right_num,             .max = cnt,         };         U16Pair_t out = calc_next_uniq_u16pair(in_pair);         Node->left_num = out.a;         Node->right_num = out.b;         LOG_DEBUG(CROSS_DETECT,\"%u,%u\",Node->left_num ,Node->right_num );          if(   (cnt*cnt-cnt)&lt;Node->pair_cnt ){             if(0==(  Node->pair_cnt%(cnt*cnt-cnt)   )  ){                 uint32_t diratin_ms = time_get_ms32() - Node->start_ms;                 LOG_WARNING(CROSS_DETECT,\"All %u PairsSolved!, %u ms\",cnt*cnt-cnt,diratin_ms);                 Node->start_ms = time_get_ms32();             }         }         Node->pair_cnt++;         if(Node->left_num != Node->right_num) {             res = cross_detect_init_pair(&amp;Node->pair, CrossDetectPinConfig[Node->left_num].pad,                                          CrossDetectPinConfig[Node->right_num].pad);         }     }      return res; }  static bool cross_detect_cycle_complete(CrossDetectHandle_t* const Node) {     bool res = false;     LOG_PARN(CROSS_DETECT, \"CycleComplete\");     if(Node) {         Node->pair.spin_cnt++;         res = cross_detect_run_analitic(Node);         if(CROSS_DETECT_TRY_PER_PAIR &lt; Node->pair.spin_cnt) {             res = cross_detect_set_next_pair(Node);         }     }     return res; }  static bool cross_detect_next_state(CrossDetectHandle_t* const Node) {     bool res = true;     LOG_PARN(CROSS_DETECT, \"NextState\");     return res; }  static bool cross_detect_start(CrossDetectHandle_t* const Node) {     bool res = true;     LOG_PARN(CROSS_DETECT, \"Start\");      return res; }  static const CrossDetectStateInfo_t StateTableLookUpTable[] = {     [CROSS_DETECT_STATE_LA_RA] =         {             .pull_left = GPIO__PULL_AIR,             .pull_right = GPIO__PULL_AIR,             .action = cross_detect_start,             .state_new = CROSS_DETECT_STATE_LU_RA,         }, \/*Left Pull air,Right pull air*\/     [CROSS_DETECT_STATE_LU_RA] =         {             .pull_left = GPIO__PULL_UP,             .pull_right = GPIO__PULL_AIR,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LD_RA,         }, \/*Left pull up,Right pull air*\/     [CROSS_DETECT_STATE_LD_RA] =         {             .pull_left = GPIO__PULL_DOWN,             .pull_right = GPIO__PULL_AIR,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LD_RD,         }, \/*Left pull down,Right pull air*\/     [CROSS_DETECT_STATE_LD_RD] =         {             .pull_left = GPIO__PULL_DOWN,             .pull_right = GPIO__PULL_DOWN,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LD_RU,         }, \/*Left pull down,Right pull down*\/     [CROSS_DETECT_STATE_LD_RU] =         {             .pull_left = GPIO__PULL_DOWN,             .pull_right = GPIO__PULL_UP,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LA_RU,         }, \/*Left pull down,Right pull up*\/     [CROSS_DETECT_STATE_LA_RU] =         {             .pull_left = GPIO__PULL_AIR,             .pull_right = GPIO__PULL_UP,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LU_RU,         }, \/*Left pull air,Right pull up*\/     [CROSS_DETECT_STATE_LU_RU] =         {             .pull_left = GPIO__PULL_UP,             .pull_right = GPIO__PULL_UP,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LU_RD,         }, \/*Left pull up,Right pull up*\/     [CROSS_DETECT_STATE_LU_RD] =         {             .pull_left = GPIO__PULL_UP,             .pull_right = GPIO__PULL_DOWN,             .action = cross_detect_next_state,             .state_new = CROSS_DETECT_STATE_LA_RD,         }, \/*Left pull up,Right pull down*\/     [CROSS_DETECT_STATE_LA_RD] =         {             .pull_left = GPIO__PULL_AIR,             .pull_right = GPIO__PULL_DOWN,             .action = cross_detect_cycle_complete,             .state_new = CROSS_DETECT_STATE_LA_RA,         }, \/*Left pull air,Right pull down*\/ };  static bool cross_detect_state_set(CrossDetectPairInfo_t* const pair, CrossDetectState_t new_state) {     bool res = false;     if(pair) {         uint8_t ok = 0;         res = gpio_set_pull(pair->left.byte, StateTableLookUpTable[new_state].pull_left);         if(res) {             ok++;         }          res = gpio_set_pull(pair->right.byte, StateTableLookUpTable[new_state].pull_right);         if(res) {             ok++;         }          if(2 == ok) {             pair->state = new_state;             res = true;         } else {             LOG_ERROR(CROSS_DETECT, \"SetStateErr %u=%s\", new_state, CrossDetectState2Str(new_state));             res = false;         }     }     return res; }   const CrossDetectSolutionInfo_t CrossDetectSolutionInfo[36] = {     {         \/*1*\/ .state = CROSS_DETECT_STATE_LA_RA,         .read = READ_L0_R0,         .left_short_gnd = CONF_NO,         .right_short_gnd = CONF_NO,         .left_short_vcc = CONF_NO,         .right_short_vcc = CONF_NO,         .cross = CONF_NO,         .open = CONF_NO,         .error = CONF_NO,         .ok = CONF_YES,     },      {         \/*2*\/ .state = CROSS_DETECT_STATE_LU_RA,         .read = READ_L0_R0,         .left_short_gnd = CONF_YES,         .left_short_vcc = CONF_NO,         .right_short_gnd = CONF_NO,         .right_short_vcc = CONF_NO,         .cross = CONF_MAYBE,         .open = CONF_MAYBE,         .error = CONF_YES,         .ok = CONF_NO,     },      {         \/*3*\/ .state = CROSS_DETECT_STATE_LD_RA,         .read = READ_L0_R0,         .left_short_gnd = CONF_MAYBE,         .left_short_vcc = CONF_NO,         .right_short_gnd = CONF_MAYBE,         .right_short_vcc = CONF_NO,         .cross = CONF_MAYBE,         .open = CONF_MAYBE,         .error = CONF_NO,         .ok = CONF_YES,     },      {         \/*4*\/ .state = CROSS_DETECT_STATE_LD_RD,         .read = READ_L0_R0,         .left_short_gnd = CONF_MAYBE,         .left_short_vcc = CONF_NO,         .right_short_gnd = CONF_MAYBE,         .right_short_vcc = CONF_NO,         .cross = CONF_MAYBE,         .open = CONF_MAYBE,         .error = CONF_NO,         .ok = CONF_YES,     },      {         \/*5*\/ .state = CROSS_DETECT_STATE_LD_RU,         .read = READ_L0_R0,         .left_short_gnd = CONF_MAYBE,         .left_short_vcc = CONF_NO,         .right_short_gnd = CONF_YES,         .right_short_vcc = CONF_NO,         .cross = CONF_MAYBE,         .open = CONF_MAYBE,         .error = CONF_YES,         .ok = CONF_NO,     },      {         \/*6*\/ .state = CROSS_DETECT_STATE_LA_RU,         .read = READ_L0_R0,         .left_short_gnd = CONF_MAYBE,         .left_short_vcc = CONF_NO,         .right_short_gnd = CONF_YES,         .right_short_vcc = CONF_NO,         .cross = CONF_MAYBE,         .open = CONF_MAYBE,         .error = CONF_YES,         .ok = CONF_NO,     },      {\/*7*\/ .state = CROSS_DETECT_STATE_LU_RU,      .read = READ_L0_R0,      .left_short_gnd = CONF_YES,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_YES,      .right_short_vcc = CONF_NO,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*8*\/ .state = CROSS_DETECT_STATE_LU_RD,      .read = READ_L0_R0,      .left_short_gnd = CONF_YES,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*9*\/ .state = CROSS_DETECT_STATE_LA_RD,      .read = READ_L0_R0,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_NO,      .ok = CONF_YES},      {\/*10*\/ .state = CROSS_DETECT_STATE_LA_RA,      .read = READ_L0_R1,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*11*\/ .state = CROSS_DETECT_STATE_LU_RA,      .read = READ_L0_R1,      .left_short_gnd = CONF_YES,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*12*\/ .state = CROSS_DETECT_STATE_LD_RA,      .read = READ_L0_R1,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*13*\/ .state = CROSS_DETECT_STATE_LD_RD,      .read = READ_L0_R1,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_YES,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*14*\/ .state = CROSS_DETECT_STATE_LD_RU,      .read = READ_L0_R1,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_NO,      .ok = CONF_YES},      {\/*15*\/ .state = CROSS_DETECT_STATE_LA_RU,      .read = READ_L0_R1,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_NO,      .ok = CONF_YES},      {\/*16*\/ .state = CROSS_DETECT_STATE_LU_RU,      .read = READ_L0_R1,      .left_short_gnd = CONF_YES,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*17*\/ .state = CROSS_DETECT_STATE_LU_RD,      .read = READ_L0_R1,      .left_short_gnd = CONF_YES,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_YES,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*18*\/ .state = CROSS_DETECT_STATE_LA_RD,      .read = READ_L0_R1,      .left_short_gnd = CONF_MAYBE,      .left_short_vcc = CONF_NO,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_YES,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*19*\/ .state = CROSS_DETECT_STATE_LA_RA,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*20*\/ .state = CROSS_DETECT_STATE_LU_RA,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_NO,      .ok = CONF_YES},      {\/*21*\/ .state = CROSS_DETECT_STATE_LD_RA,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_YES,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*22*\/ .state = CROSS_DETECT_STATE_LD_RD,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_YES,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*23*\/ .state = CROSS_DETECT_STATE_LD_RU,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_YES,      .right_short_gnd = CONF_YES,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*24*\/ .state = CROSS_DETECT_STATE_LA_RU,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_YES,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*25*\/ .state = CROSS_DETECT_STATE_LU_RU,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_YES,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*26*\/ .state = CROSS_DETECT_STATE_LU_RD,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_NO,      .ok = CONF_YES},      {\/*27*\/ .state = CROSS_DETECT_STATE_LA_RD,      .read = READ_L1_R0,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_NO,      .cross = CONF_NO,      .open = CONF_YES,      .error = CONF_YES,      .ok = CONF_NO},      {\/*28*\/ .state = CROSS_DETECT_STATE_LA_RA,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*29*\/ .state = CROSS_DETECT_STATE_LU_RA,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_YES,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*30*\/ .state = CROSS_DETECT_STATE_LD_RA,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_YES,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*31*\/ .state = CROSS_DETECT_STATE_LD_RD,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_YES,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_YES,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*32*\/ .state = CROSS_DETECT_STATE_LD_RU,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_YES,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*33*\/ .state = CROSS_DETECT_STATE_LA_RU,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_YES,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*34*\/ .state = CROSS_DETECT_STATE_LU_RU,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_MAYBE,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_NO,      .ok = CONF_YES},      {\/*35*\/ .state = CROSS_DETECT_STATE_LU_RD,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_NO,      .right_short_vcc = CONF_YES,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO},      {\/*36*\/ .state = CROSS_DETECT_STATE_LA_RD,      .read = READ_L1_R1,      .left_short_gnd = CONF_NO,      .left_short_vcc = CONF_MAYBE,      .right_short_gnd = CONF_MAYBE,      .right_short_vcc = CONF_YES,      .cross = CONF_MAYBE,      .open = CONF_MAYBE,      .error = CONF_YES,      .ok = CONF_NO}, };  uint32_t cross_detect_get_lut_size(void) {     uint32_t cnt = ARRAY_SIZE(CrossDetectSolutionInfo);     return cnt; }  static const CrossDetectSolutionInfo_t* GetSolNode(const CrossDetectStateMeasure_t* const measure_node) {     const CrossDetectSolutionInfo_t* LutNode = NULL;     uint32_t cnt = cross_detect_get_lut_size( );     uint32_t i = 0;     for(i = 0; i &lt; cnt; i++) {         if(CrossDetectSolutionInfo[i].state == measure_node->state) {             if(CrossDetectSolutionInfo[i].read == measure_node->read) {                 LutNode = &amp;CrossDetectSolutionInfo[i];                 break;             }         }     }     return LutNode; }  CrossDetectHandle_t* CrossDetectGetNode(uint8_t num) {     CrossDetectHandle_t* Node = NULL;     uint32_t i = 0;     uint32_t cnt = cross_detect_get_cnt();     for(i = 0; i &lt; cnt; i++) {         if(num == CrossDetectInstance[i].num) {             if(CrossDetectInstance[i].valid) {                 Node = &amp;CrossDetectInstance[i];                 break;             }         }     }     return Node; }  const CrossDetectConfig_t* CrossDetectGetConfNode(uint8_t num) {     const CrossDetectConfig_t* Config = NULL;     uint32_t i = 0;     uint32_t cnt = cross_detect_get_cnt();     for(i = 0; i &lt; cnt; i++) {         if(num == CrossDetectConfig[i].num) {             if(CrossDetectConfig[i].valid) {                 Config = &amp;CrossDetectConfig[i];                 break;             }         }     }     return Config; }  bool cross_detect_init_pair(CrossDetectPairInfo_t* const pair, Pad_t left, Pad_t right) {     bool res = false;     if(pair) {         if(left.byte != right.byte) {             pair->left = left;             pair->right = right;             pair->solution = CROSS_DETECT_SOL_UNDEF;             \/\/pair->prev_solution = CROSS_DETECT_SOL_UNDEF;             pair->state = CROSS_DETECT_STATE_LA_RA;             pair->spin_cnt = 0;             pair->err_cnt = 0;             pair->time_start = 0;             pair->pause_ms = 0;             pair->init = true;             CrossDetectDiagPair(pair);             res = cross_detect_state_set(pair, CROSS_DETECT_STATE_LA_RA);         }     }     return res; }  bool cross_detect_reset_pair(const CrossDetectPairInfo_t* const pair){     bool res = false;     res = gpio_set_pull(pair->left.byte, GPIO__PULL_AIR);     res = gpio_set_pull(pair->right.byte, GPIO__PULL_AIR);     return res; }  bool cross_detect_enable(uint8_t num, bool on_off) {     bool res = false;     CrossDetectHandle_t* Node = CrossDetectGetNode(num);     if(Node) {         Node->on = on_off;         res = true;     }     return res; }  static bool cross_detect_init_pin(const CrossDetectPinConfig_t* const PinConfig) {     bool res = false;     if(PinConfig) {             uint8_t ok = 0;             LOG_WARNING(CROSS_DETECT, \"InitPad: %s In PullAir\", GpioPad2Str(PinConfig->pad.byte));              res = gpio_set_dir(PinConfig->pad.byte, GPIO_DIR_IN);             if(res) {                 ok++;             } else {                 LOG_ERROR(CROSS_DETECT, \"Pad: %s SetDirIn Err\", GpioPad2Str(PinConfig->pad.byte));             }              res = gpio_set_pull(PinConfig->pad.byte, GPIO__PULL_AIR);             if(res) {                 ok++;             } else {                 LOG_ERROR(CROSS_DETECT, \"Pad: %s SetPullAir Err\", GpioPad2Str(PinConfig->pad.byte));             }  #ifdef HAS_NRF5340             res = gpio_set_pin_mcu(PinConfig->pad, NRF_GPIO_PIN_MUX_APP);             if(res) {                 ok++;             } else {                 LOG_ERROR(CROSS_DETECT, \"Pad: %s SetAppCore Err\", GpioPad2Str(PinConfig->pad.byte));             } #endif              if(3 == ok) {                 res = true;             } else {                 res = false;             }      }      return res; }  bool cross_detect_init_pins(uint8_t num) {     bool res = false;     uint32_t pin_cnt = cross_detect_get_pin_cnt();     LOG_WARNING(CROSS_DETECT, \"LD%u Init %u Pins\", num, pin_cnt);     uint32_t i;     uint32_t ok = 0;     for(i = 0; i &lt; pin_cnt; i++) {         if(num == CrossDetectPinConfig[i].num) {             res = cross_detect_init_pin(&amp;CrossDetectPinConfig[i]);             if(res) {                 ok++;                 LOG_DEBUG(CROSS_DETECT, \"InitPin %s Ok\", GpioPadToStr(CrossDetectPinConfig[i].pad));             } else {                 LOG_ERROR(CROSS_DETECT, \"InitPinErr %d\", num);             }         }     }     if(0 &lt; ok) {         res = true;     }     return res; }   bool cross_detect_init_one(uint8_t num) {     bool res = false;     LOG_WARNING(CROSS_DETECT, \"Init %d\", num);     const CrossDetectConfig_t* Config = CrossDetectGetConfNode(num);     if(Config) {         CrossDetectHandle_t* Node = CrossDetectGetNode(num);         if(Node) {             Node->on = true;             Node->init = true;             Node->valid = true;             Node->pair_cnt = 0;             Node->left_num = 0;             Node->right_num = 1;             Node->start_ms = time_get_ms32();             \/\/size_t size = sizeof(CrossDetectResult_t) * CROSS_DETECT_PIN_CNT * CROSS_DETECT_PIN_CNT;             \/\/LOG_INFO(CROSS_DETECT, \"ZeroSize %u byte of result array\", size);             uint32_t l, r;             uint32_t cnt = cross_detect_get_pin_cnt();             for(l=0;l&lt;cnt;l++){                 for(r=0;r&lt;cnt;r++){                     CrossDetectResult[l][r].Fault.fault_code=0;                     CrossDetectResult[l][r].FaultPrev.fault_code=0;                 }             }              res = cross_detect_init_pins(num);             if(res) {                 LOG_INFO(CROSS_DETECT, \"%u InitPinsOk\", num);             } else {                 LOG_ERROR(CROSS_DETECT, \"%u InitPinsErr\", num);             }               res = cross_detect_init_pair(&amp;Node->pair, CrossDetectPinConfig[Node->left_num].pad,                                          CrossDetectPinConfig[Node->right_num].pad);             if(res){              }else{                 LOG_ERROR(CROSS_DETECT, \"InitPair %u,%u Err\",Node->left_num, Node->right_num);             }         } else {             LOG_ERROR(CROSS_DETECT, \"%u NodeErr\", num);         }     } else {         LOG_ERROR(CROSS_DETECT, \"%u ConfErr\", num);     }     return res; }  bool cross_detect_init(void) {     bool res = false;     set_log_level(CROSS_DETECT, LOG_LEVEL_DEBUG);     uint32_t cnt = cross_detect_get_cnt();     uint32_t ok = 0;     LOG_WARNING(CROSS_DETECT, \"Init Cnt %d\", cnt);      uint32_t i = 0;     for(i = 1; i &lt;= cnt; i++) {         res = cross_detect_init_one(i);         if(res) {             ok++;             LOG_INFO(CROSS_DETECT, \"LD%u InitOk\", i);         } else {             LOG_ERROR(CROSS_DETECT, \"LD%u InitErr\", i);         }     }      if(ok) {         res = true;         LOG_INFO(CROSS_DETECT, \"Init %u Ok\", ok);     } else {         res = false;         LOG_ERROR(CROSS_DETECT, \"InitErr\");     }      set_log_level(CROSS_DETECT, LOG_LEVEL_INFO);     return res; }  static bool cross_detect_calc_fault(CrossDetectPairInfo_t* const pair, CrossDetectState_t state) {     bool res = false;     uint32_t i = 0;     \/*Are any faults found in this state?*\/     for(i = 0; i &lt; 9; i++) {         if(pair->measurements[i].state == state) {             const CrossDetectSolutionInfo_t* LutNode = GetSolNode(&amp;pair->measurements[i]);             if(LutNode) {                 \/\/if(CONF_YES == LutNode->cross) {                 \/\/    pair->Fault.cross = 1;                 \/\/}                 if(CONF_YES == LutNode->left_short_gnd) {                     pair->Fault.left_short_gnd = 1;                 }                 if(CONF_YES == LutNode->left_short_vcc) {                     pair->Fault.left_short_vcc = 1;                 }                 if(CONF_YES == LutNode->right_short_gnd) {                     pair->Fault.right_short_gnd = 1;                 }                 if(CONF_YES == LutNode->right_short_vcc) {                     pair->Fault.right_short_vcc = 1;                 }                 res = true;             }else{                 LOG_ERROR(CROSS_DETECT,\"UndefCase State %u, Read %u\",state,pair->measurements[i].read);             }             break;         }     }     return res; }  static bool cross_detect_measure(CrossDetectPairInfo_t* const pair) {     bool res = false;     if(pair) {         LOG_PARN(CROSS_DETECT, \"MeasureGPIOin %s\", CrossDetectState2Str(pair->state));          GpioLogicLevel_t logic_left=GPIO_LVL_UNDEF;         GpioLogicLevel_t logic_right=GPIO_LVL_UNDEF;         res = gpio_get_state(pair->left.byte, &amp;logic_left);         res = gpio_get_state(pair->right.byte, &amp;logic_right);          if(GPIO_LVL_HI == logic_left) {             if(GPIO_LVL_HI == logic_right) {                 pair->measurements[pair->state].read = READ_L1_R1;             } else {                 pair->measurements[pair->state].read = READ_L1_R0;             }         } else {             if(GPIO_LVL_HI == logic_right) {                 pair->measurements[pair->state].read = READ_L0_R1;             } else {                 pair->measurements[pair->state].read = READ_L0_R0;             }         }          pair->measurements[pair->state].state = pair->state;     }     return res; }  \/*UP->AIR->Down->Up*\/ bool cross_detect_proc_one(uint8_t num) {     bool res = false;     LOG_PARN(CROSS_DETECT, \"Proc:%u\", num);     CrossDetectHandle_t* Node = CrossDetectGetNode(num);     if(Node) {         if(Node->on) {             \/*Measure GPIO logic levels *\/             res = cross_detect_measure(&amp;Node->pair);             if(res) {                 LOG_PARN(CROSS_DETECT, \"MeasureGPIOOk\");             } else {                 Node->pair.err_cnt++;                 LOG_ERROR(CROSS_DETECT, \"MeaseireGPIOErr\");             }              CrossDetectState_t new_state = StateTableLookUpTable[Node->pair.state].state_new;             CrossDetectHandler_t action = StateTableLookUpTable[Node->pair.state].action;             if(action) {                 res = action(Node);             }              res = cross_detect_state_set(&amp;Node->pair, new_state);             if(res) {                 LOG_PARN(CROSS_DETECT, \"SetStateOk %u=%s\", new_state, CrossDetectState2Str(new_state));             } else {                 LOG_ERROR(CROSS_DETECT, \"SetStateErr %u=%s\", new_state, CrossDetectState2Str(new_state));             }         } else {             LOG_DEBUG(CROSS_DETECT, \"Off %u\", num);         }     } else {         LOG_ERROR(CROSS_DETECT, \"NodeErr %u\", num);     }     return res; }  bool cross_detect_proc(void) {     bool res = false;     uint8_t ok = 0;     uint8_t cnt = cross_detect_get_cnt();     LOG_PARN(CROSS_DETECT, \"Proc Cnt:%u\", cnt);     for(uint32_t i = 1; i &lt;= cnt; i++) {         res = cross_detect_proc_one(i);         if(res) {             ok++;         }     }      if(ok) {         res = true;     } else {         res = false;     }      return res; } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u043a\u043e\u0434 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d \u044d\u043a\u0440\u0430\u043d. \u0422\u0430\u043a\u0436\u0435 \u043a\u043e\u0434 \u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435\u043d \u043a \u0432\u044b\u0431\u043e\u0440\u0443 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 GPIO. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 9. \u041e\u0442\u043b\u0430\u0434\u043a\u0430<\/strong><\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u043e. \u041a\u043e\u0434 \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438. \u041d\u043e \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 cross-detect? <\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u043f\u0430\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043b\u0430\u0442\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0441 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u043e\u043c IO-Bang. \u042d\u0442\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 cross-detect. \u0422\u0430\u043a\u0436\u0435 \u0442\u0430\u043c \u0435\u0441\u0442\u044c UART-CLI \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 c \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043c\u0438\u0440\u043e\u043c, \u0430 \u0432\u0441\u0435 \u043f\u0438\u043d\u044b \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0432\u0445\u043e\u0434. <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0443\u0442-\u0442\u043e \u043d\u0430\u043c \u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 UART. \u041f\u0440\u043e \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/694408\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/694408\/<\/a>. \u0421\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043f\u043b\u0430\u0442\u0443 \u0438 LapTop \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u043c USB-UART, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 TeraTerm, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c help \u0438 \u0432\u0438\u0434\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 cross-detect.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0dd\/703\/e23\/0dd703e23a483cbf041424e7dcb5c092.png\" width=\"748\" height=\"431\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0dd\/703\/e23\/0dd703e23a483cbf041424e7dcb5c092.png\"\/><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u043e\u0432, \u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0432 run-time \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0443 P0.04-P0.05. \u041f\u043e \u0441\u0443\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0437\u0432\u043e\u043d\u043a\u0430 \u0446\u0435\u043f\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 DMM.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/62b\/e32\/f0a\/62be32f0a423ab3ad376c23d8944d54f.png\" width=\"1160\" height=\"916\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/62b\/e32\/f0a\/62be32f0a423ab3ad376c23d8944d54f.png\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u043e\u0442\u0447\u0435\u0442 \u0432 TeraTerm \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0438\u043d P0.24 \u0437\u0430\u043c\u043a\u043d\u0443\u043b \u043d\u0430 GND.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6f7\/b8d\/658\/6f7b8d658384fc984eb2f5d143bf4565.png\" width=\"1162\" height=\"919\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f7\/b8d\/658\/6f7b8d658384fc984eb2f5d143bf4565.png\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 VCC<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/87f\/522\/b3b\/87f522b3b77b258a2f99fb559b4b44a6.png\" width=\"1160\" height=\"919\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/87f\/522\/b3b\/87f522b3b77b258a2f99fb559b4b44a6.png\"\/><\/figure>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b 6 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0437\u0430 22 \u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<p><strong>\u0414\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430 cross-detect<\/strong><\/p>\n<p>1++ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442. \u0412\u0441\u0451 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f \u0437\u0430 3 \u0434\u043d\u044f. <\/p>\n<p>2++\u042d\u0442\u043e \u0447\u0438\u0441\u0442\u043e \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0418\u0437 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043f\u0435\u0435\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a USB-UART.<\/p>\n<p>3++ \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 cross-detect \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0432\u0441\u0435 4 \u0442\u0438\u043f\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"75\" width=\"75\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"75\" width=\"75\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 GND<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"75\" width=\"75\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 VCC<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"75\" width=\"75\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043b\u044e\u0431\u044b\u0445 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"75\" width=\"75\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u0440\u044b\u0432 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0430\u043c\u0438 <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>4++ \u0421ross-detect \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 (\u041a\u0417) \u043f\u0438\u043d\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u0432 BGA \u043a\u043e\u0440\u043f\u0443\u0441\u0430\u0445, \u0433\u0434\u0435 \u0434\u0430\u0436\u0435 \u0449\u0443\u043f\u043e\u043c \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u0430 \u0438\u043b\u0438 pogo pins \u043a \u043f\u0438\u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0434\u043b\u0435\u0437\u0442\u044c!  \u0421 BGA \u0443 \u0412\u0430\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: \u043f\u0440\u043e\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u0443 \u0441 BGA \u0440\u0435\u043d\u0442\u0433\u0435\u043d\u043e\u0432\u0441\u043a\u0438\u043c \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u043c (X-ray) \u0438 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u041a\u0417 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0430\u043c\u0438, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0442\u044c \u0441ross-detect.    <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/797\/302\/eba\/797302ebacdfde951a20d72f47eb54d5.png\" alt=\"\u0422\u0443\u0442 SMD \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u0435\u0448\u0430\u044e\u0442 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0430\u043c\u0438.\" title=\"\u0422\u0443\u0442 SMD \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u0435\u0448\u0430\u044e\u0442 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0430\u043c\u0438.\" width=\"447\" height=\"426\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/797\/302\/eba\/797302ebacdfde951a20d72f47eb54d5.png\"\/><\/p>\n<div><figcaption>\u0422\u0443\u0442 SMD \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u0435\u0448\u0430\u044e\u0442 \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u043d\u0430\u043c\u0438.<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0435\u0449\u0451 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c?<\/strong><br \/>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 cross-detect \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0430 target \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 ARM Cortex-M4 \u0438\u043b\u0438 ARM Cortex-M33. \u0421ross-detect &#8212; \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c.  \u041c\u043e\u0436\u043d\u043e c\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c PC \u0438 Target-PCB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c JTAG \u0447\u0435\u0440\u0435\u0437 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a USB-JTAG (FT232H), \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 DeskTop \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0441 CLI(\u0448\u043a\u043e\u0439) \u0432 stdin\/stdout (\u0438\u043b\u0438 GUI) \u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u043e\u043f\u0440\u043e\u0441\u0430 GPIO \u043f\u0440\u044f\u043c\u043e \u043d\u0430 LapTop(\u0435) NetTop(e). <br \/>\u041f\u043e \u0441\u0443\u0442\u0438 \u043d\u0430\u0434\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c CMSIS \u043d\u0430 \u043a\u043e\u0434 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430 USB-JTAG, \u0447\u0442\u043e\u0431\u044b \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0427\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 JTAG \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438\u043b\u0438 \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 (GPIO, SPI, PLL, RCC, UART \u0438 \u043f\u0440\u043e\u0447\u0435\u0435). <\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u043f\u043e JTAG \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u043d\u0430\u0447\u0435 \u0432\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439, \u043a\u0430\u043a \u0438 \u0441\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 ISR. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a (Linker).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/10e\/f59\/252\/10ef59252a0e8b8e3601b956511fa1e9.png\" width=\"664\" height=\"456\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/10e\/f59\/252\/10ef59252a0e8b8e3601b956511fa1e9.png\"\/><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0430\u043c\u0438, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440-\u043c\u0430\u0440\u0438\u043e\u043d\u0435\u0442\u043a\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u043a\u0443\u043a\u043e\u043b\u043a\u0438 &#8212; \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0438\u0442\u043e\u0447\u0435\u043a 4 \u043f\u0440\u043e\u0432\u043e\u0434\u0430 JTAG. \u0410 \u043a\u0443\u043a\u043b\u043e\u0432\u043e\u0434 &#8212; \u044d\u0442\u043e Windows-\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430 Host PC. Easy.<\/p>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043f\u043e JTAG (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 STM32 ST-LINK Utility.exe \u0438\u043b\u0438 nrfjprog.exe) \u0442\u0430\u043a \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u041e\u043d\u0438 \u043f\u043e JTAG \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043a \u043a\u0430\u0440\u0442\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 Flash \u043f\u0430\u043c\u044f\u0442\u0438, \u0441\u043d\u0438\u043c\u0430\u044e\u0442 \u0437\u0430\u0449\u0438\u0442\u0443 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c \u0431\u0438\u043d\u0430\u0440\u044c, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0437\u0430\u0449\u0438\u0442\u0443 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c Flash \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u044f\u0434\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u042d\u0442\u043e \u043e\u0442\u043b\u0430\u0436\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 198x \u0433\u043e\u0434\u043e\u0432.<\/p>\n<p>\u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 <br \/><strong>\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0436\u0438\u0442\u044c<\/strong> <a href=\"https:\/\/habr.com\/ru\/articles\/433504\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/433504\/<\/a><\/p>\n<p><strong>\u041f\u043b\u044e\u0441\u044b \u0442\u0435\u0441\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u043f\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 JTAG<\/strong><\/p>\n<p>1++\u0423\u0442\u0438\u043b\u0438\u0442\u0443 Firmware Simulator \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u043c\u043e\u0434\u043d\u044f\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (Python, \u0421#, C++, Go, Java, C). <\/p>\n<p>2++\u0432\u044b \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u0431\u0438\u043d\u0430\u0440\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442\u044b \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0438\u0437\u0434\u0435\u043b\u0438\u044f \u0432 \u0431\u0430\u0437\u0443 \u0437\u043d\u0430\u043d\u0438\u0439, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438, \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u043d\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0435, \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430. <\/p>\n<p>3++\u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0438\u043d\u044b \u0441\u0430\u043c\u043e\u0433\u043e UART \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0435\u0433\u043e \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442.<\/p>\n<p>4++\u0423 JTAG \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0431\u0438\u0442\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 30MHz. \u042d\u0442\u043e \u0432 30&#8212;60 \u0440\u0430\u0437 \u0432\u044b\u0448\u0435 \u0447\u0435\u043c \u043f\u043e UART<\/p>\n<p><strong>\u0412\u044b\u0432\u043e\u0434<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0438\u0447\u043d\u043e, \u0442\u043e cross-detect \u044d\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0433\u043d\u043e\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0435\u0433\u0430\u044e\u0442 \u043f\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442 \u0431\u0440\u0430\u043a \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 PCB. \u0412\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e-\u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432.<\/p>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u043f\u043b\u0430\u0442\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0430\u043c\u0430 \u0441\u0435\u0431\u044f \u0438\u0437\u043d\u0443\u0442\u0440\u0438. <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0438 \u0432\u044b \u0443\u043c\u0435\u0435\u0442\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c cross-detect \u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0447\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c PCB \u0431\u0440\u0430\u043a \u0432 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430\u0445 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442. <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u0442\u0440\u043e\u0443\u043c\u043d\u043e\u043c\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0444\u0442\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u043b\u0430\u0442\u0435!  <\/p>\n<p><strong>\u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\"><strong>\u0410\u043a\u0440\u043e\u043d\u0438\u043c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">GPIO <\/p>\n<\/td>\n<td>\n<p align=\"left\">General-purpose input\/output<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">V<\/p>\n<\/td>\n<td>\n<p align=\"left\">Volts<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">ISR<\/p>\n<\/td>\n<td>\n<p align=\"left\">Interrupt Service Routine<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">CMSIS<\/p>\n<\/td>\n<td>\n<p align=\"left\">Common Microcontroller Software Interface Standard <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">CLI<\/p>\n<\/td>\n<td>\n<p align=\"left\">command-line interface<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u041e\u0422\u041a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u0434\u0435\u043b \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">UART<\/p>\n<\/td>\n<td>\n<p align=\"left\">universal asynchronous receiver \/ transmitter  <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">PCB<\/p>\n<\/td>\n<td>\n<p align=\"left\">printed circuit board<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u041a\u0417<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">BGA<\/p>\n<\/td>\n<td>\n<p align=\"left\">Ball grid array<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">DFM<\/p>\n<\/td>\n<td>\n<p align=\"left\">design for manufacturability<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">FSM <\/p>\n<\/td>\n<td>\n<p align=\"left\">Finite-state machine<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">MPSSE<\/p>\n<\/td>\n<td>\n<p align=\"left\">Multi-Protocol Synchronous Serial Engine<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">EoL\u00a0  <\/p>\n<\/td>\n<td>\n<p align=\"left\">End-of-life<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">MCAL<\/p>\n<\/td>\n<td>\n<p align=\"left\">MicroController Absorption Layer<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">DMM<\/p>\n<\/td>\n<td>\n<p align=\"left\">digital multimeter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u041c\u041a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">MCU<\/p>\n<\/td>\n<td>\n<p align=\"left\">Micro Controller Unit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">GCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">GNU Compiler Collection, GNU-GNU\u2019s Not UNIX<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">UNIX\/UNICS   <\/p>\n<\/td>\n<td>\n<p align=\"left\">Uniplexed Information and Computing System<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u041b\u0423\u0422<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u0430\u0437\u0435\u0440\u043d\u043e-\u0443\u0442\u044e\u0436\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0438\u0437\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0447\u0430\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">IO<\/p>\n<\/td>\n<td>\n<p align=\"left\">Input\/Output<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">JTAG<\/p>\n<\/td>\n<td>\n<p align=\"left\">Joint Test Action Group<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">NDA<\/p>\n<\/td>\n<td>\n<p align=\"left\">Non-disclosure agreement<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">SWD<\/p>\n<\/td>\n<td>\n<p align=\"left\">Serial Wire Debug<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u041f\u041e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u041e\u0421<\/p>\n<\/td>\n<td>\n<p align=\"left\">operating system<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">\u042d\u0412\u041c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>Links<\/h2>\n<p>Load-Detect \u0434\u043b\u044f \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u041f\u0430\u0439\u043a\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/756572\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/756572\/<\/a><\/p>\n<p>H-\u043c\u043e\u0441\u0442: Load Detect (\u0438\u043b\u0438 \u043a\u0430\u043a \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0432\u0430\u043d\u0434\u0430\u043b\u0438\u0437\u043c) <a href=\"https:\/\/habr.com\/ru\/articles\/709374\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/709374\/<\/a> <\/p>\n<p>\u0412\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438 \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0443\u0442 <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1Bs4YaRxqCRQDz73HKJhUfD-evO-U6rQLS0fySpSOWG8\/edit#gid=2020010813\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.google.com\/spreadsheets\/d\/1Bs4YaRxqCRQDz73HKJhUfD-evO-U6rQLS0fySpSOWG8\/edit#gid=2020010813<\/a><\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 UART-CLI <a href=\"https:\/\/habr.com\/ru\/articles\/694408\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/694408\/<\/a><\/p>\n<p>\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0436\u0438\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/433504\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/433504\/<\/a><\/p>\n<p><strong>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b:<\/strong><\/p>\n<p>1&#8212;\u041a\u0430\u043a \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u043f\u0438\u043d\u0430\u043c\u0438 \u0432 \u0443\u0436\u0435 \u043f\u0440\u0438\u043f\u0430\u044f\u043d\u043d\u043e\u0439 BGA \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435?<\/p>\n<p>2&#8212;\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0427\u0442\u043e \u0412\u044b \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043c\u0435\u0442\u0435 \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u043f\u043e\u043b\u043e\u043c\u043a\u0438?<\/p>\n<p>3&#8212;\u0427\u0435\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0443\u0440\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u041c\u0438\u043b\u0438?<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><\/p>\n<div class=\"tm-article-poll-container\"><!--[--><\/p>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/762142\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u043b\u0438 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 cross-detect?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">15.63% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">5<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 15.63%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">84.38% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">27<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 84.38%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 32 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.    \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 6 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/762142\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u043f\u043e\u043d\u044f\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 cross-detect?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">73.08% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">19<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 73.08%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">26.92% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">7<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 26.92%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 26 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 9 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/762142\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">29.03% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">9<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 29.03%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">70.97% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">22<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 70.97%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b 31 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c 8 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/762142\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0412\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f PC \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u043f\u0430\u0439 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 GPIO \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 JTAG?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">13.33% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">2<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 13.33%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">86.67% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">13<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 86.67%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 15 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f 1 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. <\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll tm-article-poll_variant-bordered\">\n<div class=\"tm-notice tm-notice_positive tm-article-poll__notice\"><!----><\/p>\n<div class=\"tm-notice__inner\"><!----><\/p>\n<div class=\"tm-notice__content\" data-test-id=\"notice-content\"><!--[--><span>\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a rel=\"nofollow\" href=\"\/kek\/v1\/auth\/habrahabr\/?back=\/ru\/articles\/762142\/&#038;hl=ru\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/span><!--]--><\/div>\n<\/div>\n<\/div>\n<p><!--[--><\/p>\n<div class=\"tm-article-poll__header\">\u0423 \u0412\u0430\u0441 \u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0435\u0441\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0431\u043e\u0440\u043a\u0438\/\u043f\u0430\u0439\u043a\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442?<\/div>\n<div class=\"tm-article-poll__answers\"><!--[--><\/p>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent tm-article-poll__answer-percent_winning\">80% <\/span><span class=\"tm-article-poll__answer-label\">\u0434\u0430<\/span><span class=\"tm-article-poll__answer-votes\">8<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress tm-article-poll__answer-progress_winning\" style=\"width: 80%\"><\/div>\n<\/div>\n<\/div>\n<div class=\"tm-article-poll__answer\">\n<div class=\"tm-article-poll__answer-data\"><span class=\"tm-article-poll__answer-percent\">20% <\/span><span class=\"tm-article-poll__answer-label\">\u043d\u0435\u0442<\/span><span class=\"tm-article-poll__answer-votes\">2<\/span><\/div>\n<div class=\"tm-article-poll__answer-bar\">\n<div class=\"tm-article-poll__answer-progress\" style=\"width: 20%\"><\/div>\n<\/div>\n<\/div>\n<p><!--]--><\/div>\n<div class=\"tm-article-poll__stats\"> \u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u0438 10 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.   \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442. <\/div>\n<p><!--]--><\/div>\n<p><!--]--><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/762142\/\"> https:\/\/habr.com\/ru\/articles\/762142\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>#\u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430 #H-\u043c\u043e\u0441\u0442 #sensitivity #\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b #\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 #FSM #\u0440\u0443\u0441\u0441\u043a\u0430\u044f \u0441\u043c\u0435\u043a\u0430\u043b\u0430<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/strong><\/p>\n<p>\u0412\u0430\u043c \u0441 out source \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0438 600 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 (PCB). \u0418\u043b\u0438 \u0412\u0430\u043c \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0438 5 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0440\u0435\u0432\u0438\u0437\u0438\u0438 PCB \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u0440\u044f\u043c\u043e \u0441 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0430\u0436\u0430.<\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0430\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u0440\u0430\u043a \u043c\u043e\u043d\u0442\u0430\u0436\u0430: \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 GND \u0438\u043b\u0438 VCC, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u043e\u0432 \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438?<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u042f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0438\u043d\u0430\u0445<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439<\/strong><\/p>\n<p>1&#8212; <strong>\u043f\u0438\u043d<\/strong> <strong>(pin)<\/strong> &#8212; \u044d\u0442\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u043e\u0440\u0447\u0438\u0442 \u0438\u0437 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0434\u0435\u0441\u044f\u0442\u0438 \u0438 \u0434\u0430\u0436\u0435 \u0441\u043e\u0442\u043d\u0438 \u043f\u0438\u043d\u043e\u0432.<\/p>\n<p>2&#8212; <strong>\u0433\u0440\u0430\u0444<\/strong> &#8212; \u044d\u0442\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0440\u0435\u0431\u0435\u0440 (\u043f\u0430\u043b\u043e\u0447\u043a\u0438 \u0438 \u043a\u0440\u0443\u0436\u043e\u0447\u043a\u0438).  <\/p>\n<p><strong>3&#8212; \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444<\/strong>\u00a0\u2014 \u0433\u0440\u0430\u0444 \u0443\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430 \u0438\u043c\u0435\u044e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/p>\n<p>4&#8212;\u043a<strong>\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442<\/strong> &#8212; \u00a0\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444. \u0412\u0435\u0440\u0448\u0438\u043d\u044b &#8212; \u044d\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0440\u0435\u0431\u0440\u0430 &#8212; \u0441\u043e\u0431\u044b\u0442\u0438\u044f    <\/p>\n<p>5&#8212;<strong>\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0438\u043b\u0438<\/strong>&#8212;\u00a0\u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0443\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432  <\/p>\n<p>6&#8212;<strong>\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0443\u0440\u0430<\/strong> &#8212;\u00a0\u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0443\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432\u00a0\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438  <\/p>\n<p>7&#8212;<strong>\u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a GND<\/strong>&#8212; \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435  \u043f\u0438\u043d\u0430 \u0438 GND \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c 40kOm<\/p>\n<p>8&#8212;<strong>\u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a VCC<\/strong>&#8212; \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435  \u043f\u0438\u043d\u0430 \u0438 VCC \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c 40kOm<\/p>\n<p>9&#8212; <strong>\u0442\u043e\u043a\u0435\u043d<\/strong> &#8212; \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432. \u0421\u043b\u0443\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p>\n<p>10- <strong>bring-up PCB<\/strong>&#8212; \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430. \u0412\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0435\u0439, \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u0438 \u0438\u0445 \u0440\u0435\u043c\u043e\u043d\u0442.<\/p>\n<p>\u041f\u043e-\u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c PCB \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0440\u044b\u0432 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0435\u0449\u0435 \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043f\u0430\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0410 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0441\u0442\u0435\u043d\u0434\u044b (test jig) \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e PCB. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 test jig \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043a\u0443\u0441\u0442\u0430\u0440\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438?<\/p>\n<p>\u041f\u043e\u0434\u043e\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437\u0434\u0430\u043b\u0435\u043a\u0430. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440. \u041a\u0430\u043a \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0437\u0430\u0447\u0435\u043c \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0430\u043a \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043a GND, VCC \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438? \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 I2C, 1-Wire, UART Rx, \u043a\u043d\u043e\u043f\u043e\u043a, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043f\u0438\u043d\u043e\u0432.   <\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e \u0441\u0436\u0435\u0447\u044c \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u043b\u0430\u0442\u0435. \u041f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u044f 10kOm-40kOm, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0442\u043e\u043a\u0438 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u0446\u0435\u043f\u0438 \u043f\u0440\u043e\u0442\u0435\u043a\u0430\u044e\u0442 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 (80 uA &#8230; 300 uA).<\/p>\n<p>\u0421\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430\u043c\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u0438\u043d\u0430\u0445, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 <strong>\u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435<\/strong> \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u0430\u043a \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430, \u0438\u043b\u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u043d\u0430 GND \u0438\u043b\u0438 VCC. <\/p>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 Load-detect \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0440\u0443\u0431\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438.  \u0412\u043e\u0442 \u043e\u043d <a href=\"https:\/\/habr.com\/ru\/articles\/756572\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/756572\/<\/a>. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0442\u043e\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0431\u044b\u043b\u043e \u043e\u0434\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u0422\u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u043f\u0438\u043d\u0430\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u0410 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0430\u0441\u0442\u044b\u0439 \u0432\u0438\u0434 \u0431\u0440\u0430\u043a\u0430 \u0432 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 Hi-Tech \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0438. \u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e, \u0442\u043e \u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 Load-detect \u0441 FSM \u043d\u0430 3 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u043c\u043d\u043e\u0433\u043e\u043a\u043b\u0435\u0442\u043e\u0447\u043d\u044b\u0445. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0436\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u0434\u0438\u043d\u043e\u0437\u0430\u0432\u0440\u0435 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Cross-Detect. <\/p>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435 \u044f \u0434\u043e\u043b\u0433\u043e \u043d\u0435 \u043c\u043e\u0433 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u0440\u0430\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u0411\u044b\u043b\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u044d\u0442\u043e solder-test, assembly-check, wire-verify. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 cross-detect \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0443\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430.  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b Cross-Detect \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u0438\u043c\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e \u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u0435\u0449\u0451 \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u043f\u0438\u043d\u0430\u043c\u0438, \u043d\u043e \u0438 \u043c\u0435\u0436\u0434\u0443 \u043b\u044e\u0431\u044b\u043c\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 (PCB)! \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u0447\u0442\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f BringUp(\u043e\u043c) \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0442 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0437\u044f\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043d\u044b\u0445 \u043f\u0438\u043d\u0430 \u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a H-\u043c\u043e\u0441\u0442. \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0446\u0435\u043f\u044c H-\u043c\u043e\u0441\u0442\u0430.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u043e \u0442\u043e \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043e\u0440\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0441\u0438\u043b\u043e\u0432\u043e\u043c H-\u043c\u043e\u0441\u0442\u0435 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u0443\u043b\u044c\u0442\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 <a href=\"https:\/\/habr.com\/ru\/articles\/709374\/\" rel=\"noopener noreferrer nofollow\">https:\/\/habr.com\/ru\/articles\/709374\/<\/a>. \u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438 PCB \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041e\u0442\u043e\u0440\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 <strong>\u0431\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439<\/strong> \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0422\u0443\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0451 \u043a\u0430\u043a \u0432 \u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043e\u0431\u0440\u044b\u0432\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 \u0442\u043e\u0439 \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043b\u0435\u0447\u0435\u0439 \u043c\u043e\u0441\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0432\u0430 \u043f\u0438\u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0435\u0449\u0435 \u0438 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430 \u043a \u0437\u0435\u043c\u043b\u0435. <\/p>\n<p>\u042f \u043e\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p><strong>\u041a\u0430\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 H-\u043c\u043e\u0441\u0442\u0435?<\/strong><\/p>\n<p>\u0414\u0430 \u0446\u0435\u043b\u0430\u044f \u043a\u0443\u0447\u0430. \u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043b\u0435\u0432\u043e\u0435 \u043f\u043b\u0435\u0447\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u043e \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u0430 \u043f\u0440\u0430\u0432\u043e\u0435 \u043d\u0430 VCC. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0438\u043d\u044b \u0432\u0434\u0440\u0443\u0433 \u0437\u0430\u043c\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430 \u0442\u0430\u043c, \u0433\u0434\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c. \u0418\u043b\u0438 \u043e\u0431\u0430 \u043f\u0438\u043d\u0430 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b \u043d\u0430 VCC. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u041a\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0432\u044b\u044f\u0432\u0438\u0442\u044c \u0431\u0440\u0430\u043a \u043f\u0430\u0439\u043a\u0438?<\/strong><\/p>\n<p>\u041a\u0430\u043a \u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 (FSM) \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u044d\u0442\u043e \u0437\u043e\u043b\u043e\u0442\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u044b \u0445\u043e\u0440\u043e\u0448\u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 FSM \u043b\u0435\u0442 \u043a\u0430\u043a \u0441\u0442\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0440\u0435\u043b\u044cc\u044b \u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0448\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u0442\u043e \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0437.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 1. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430.<\/strong><\/p>\n<p>\u0421 \u0432\u0445\u043e\u0434\u0430\u043c\u0438 \u0442\u0443\u0442 \u0432\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0412\u0445\u043e\u0434 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d. \u042d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u0435\u0440\u0430 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0422\u0430\u0439\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439, \u0442\u0430\u043a \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439. <br \/>\u0418\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 (Load-Detect \u0434\u043b\u044f \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u041f\u0430\u0439\u043a\u0438) \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0435\u0434\u043a\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 3 ms. \u041d\u043e \u044f \u0434\u043b\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b 10&#8230;100ms. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u0424\u0430\u0437\u0430 2. \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430.<\/strong><\/p>\n<p>\u0422\u0443\u0442 \u0447\u0438\u0441\u0442\u0430\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0438 \u043d\u0430 2 \u043f\u0438\u043d\u0430? \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, 3*3=9 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432. \u0417\u043d\u0430\u0447\u0438\u0442 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0432\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u0424\u0430\u0437\u0430 3. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430<\/strong> <\/p>\n<p>\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u0435\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c (\u043b\u0435\u0433\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f) \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e\u043c\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043f\u0430\u0439\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0441\u0435\u0433\u043e-\u043d\u0430\u0432\u0441\u0435\u0433\u043e \u0432\u043e\u0442 \u044d\u0442\u0438\u0445 \u0434\u0435\u0432\u044f\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p> <strong>\u0424\u0430\u0437\u0430 4. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/strong><\/p>\n<p>\u0415\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u043d\u0430\u0434\u043e \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u0430. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e \u0434\u0432\u0443\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c: <\/p>\n<p>1)\u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, <\/p>\n<p>2)\u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u041e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>\u0412 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u0434\u044b, \u0433\u0434\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0431\u0438\u0442 &#8212;  \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u0434\u0430\u043c\u0438 \u0413\u0440\u0435\u044f. \u0423 \u043d\u0430\u0441 \u0436\u0435 \u0442\u0443\u0442, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u043e\u0436\u0435 \u043a\u043e\u0434\u044b \u0413\u0440\u0435\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0440\u0435\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>\u0424\u0430\u0437\u0430 5. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 (Action Table)<\/strong><\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435: \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0442\u0430\u0439\u043c\u0435\u0440. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043e\u0442\u0447\u0435\u0442 \u0438, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0430\u0440\u0443 \u043f\u0438\u043d\u043e\u0432 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439. <\/p>\n<figure class=\"\"><\/figure>\n<p>\u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043f\u043e \u0441\u0443\u0442\u0438 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0442\u0430\u0431\u043b\u0438\u0447\u0435\u043a. \u0410 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u0421\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0412\u043e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c &#8212; \u044d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 6. \u041d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430<\/strong><\/p>\n<p>\u0413\u0440\u0430\u0444 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 inkscape (\u043a\u0430\u043a \u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u043b) \u0438\u043b\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Graphviz. \u0422\u0443\u0442 \u0443\u0436 \u043a\u043e\u043c\u0443 \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435. \u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0433\u0440\u0430\u0444 (\u0440\u0438\u0441.5.)\u0434\u043b\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0430\u0439\u043a\u0438. \u0422\u0443\u0442 \u0432\u0441\u0451 \u043a\u0430\u043a \u043d\u0430 \u043b\u0430\u0434\u043e\u043d\u0438: \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u0440\u043e\u0434\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u043e\u0432\u0438\u0446\u0430: &#171;\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441\u0442\u043e\u0438\u0442 \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u043b\u043e\u0432&#187; (\u0410 picture is worth a thousand words).<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0440\u0438\u0441.5.<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u0447\u0438\u0441\u0442\u043e\u0442\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u044b \u043f\u0438\u043d\u043e\u0432. \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 cross-detect \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f N \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0430\u0440\u044b \u043f\u0438\u043d\u043e\u0432 \u0438 \u0437\u0430\u043d\u0435\u0441\u0435\u0442 \u0435\u0433\u043e \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. <\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 Cross-Detect \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0443\u0440\u0430, \u0442\u0430\u043a  \u043a\u0430\u043a \u0442\u0443\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043a\u0430\u043a \u0440\u0430\u0437, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u041c\u0438\u043b\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u0442\u044f\u0436\u0435\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p><strong>\u0424\u0430\u0437\u0430 7. \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c Look-Up \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u0442\u0443\u0442-\u0442\u043e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 GPIO \u043f\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u0444\u043e\u0440\u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u0443\u043b\u0438\u0446\u0443, \u0442\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0435, GPIO \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0442\u044b\u0440\u0435  \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0430\u0440\u044b.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\"><strong>\u2116<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\"><strong>Left GPIO pin<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\"><strong>Right GPIO \u043f\u0438\u043d<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">0.0 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">0.0 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">0.0 V<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"52\" width=\"52\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<td data-colwidth=\"158\" width=\"158\">\n<p align=\"left\">3.3 V<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442 \u0441ross-detect \u0437\u0430 \u043e\u0434\u043d\u0443 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0432\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u0418 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0445\u043e\u0434\u043e\u0432 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f GPIO. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0438\u0437 9*4 = 36 \u0441\u0442\u0440\u043e\u0447\u0435\u043a.<\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 H-\u043c\u043e\u0441\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u0432\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u043b\u0435\u0447\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u043b\u0435\u0447\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u0435. \u041e\u0434\u0438\u043d H-\u043c\u043e\u0441\u0442 \u0438 \u0434\u0432\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438. <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u0438\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u043d\u0430 5 \u0431\u0438\u0442.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\"><strong>\u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0431\u0438\u0442\u0430<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\"><strong>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <br \/>\u0431\u0438\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>1<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>0<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">0<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 GND<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043b\u0435\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 VCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 GND<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">3<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u041d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u0438\u043d\u0435 \u041a\u0417 \u043d\u0430 VCC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"119\" width=\"119\">\n<p align=\"left\">4<\/p>\n<\/td>\n<td data-colwidth=\"238\" width=\"238\">\n<p align=\"left\">\u043f\u0438\u043d\u044b \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 H-\u043c\u043e\u0441\u0442\u0435 \u0434\u0432\u0430 \u043f\u0438\u043d\u0430 \u043d\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u043e\u0439? \u0415\u0441\u043b\u0438 GPIO \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0438\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435,<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-355324","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/355324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=355324"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/355324\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=355324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=355324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=355324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}