{"id":702,"date":"2016-09-10T17:44:28","date_gmt":"2016-09-10T16:44:28","guid":{"rendered":"http:\/\/www.open4me.de\/?p=702"},"modified":"2017-01-15T12:19:46","modified_gmt":"2017-01-15T11:19:46","slug":"nodemcu-gpio-verhalten-beim-einschalten","status":"publish","type":"post","link":"https:\/\/www.open4me.de\/index.php\/2016\/09\/nodemcu-gpio-verhalten-beim-einschalten\/","title":{"rendered":"NodeMCU: GPIO Verhalten beim Einschalten"},"content":{"rendered":"<p>Da ich keine brauchbaren Informationen gefunden habe, wie sich die GPIOs beim Einschalten des NodeMCU-Boards (Esp8266 ESP12 based) verhalten, habe ich sie mal mit einem einfachen Logik Analyser nachgemessen. Das Testprogramm (siehe unten) setzt die GPIO f\u00fcr 200 ms auf LOW und danach auf High.<\/p>\n<figure id=\"attachment_696\" aria-describedby=\"caption-attachment-696\" style=\"width: 852px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.open4me.de\/wp-content\/uploads\/Einschaltverhalten-ESP8266.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-696 size-full\" src=\"https:\/\/www.open4me.de\/wp-content\/uploads\/Einschaltverhalten-ESP8266.png\" alt=\"einschaltverhalten-esp8266\" width=\"852\" height=\"438\" srcset=\"https:\/\/www.open4me.de\/wp-content\/uploads\/Einschaltverhalten-ESP8266.png 852w, https:\/\/www.open4me.de\/wp-content\/uploads\/Einschaltverhalten-ESP8266-300x154.png 300w, https:\/\/www.open4me.de\/wp-content\/uploads\/Einschaltverhalten-ESP8266-768x395.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/a><figcaption id=\"caption-attachment-696\" class=\"wp-caption-text\">Bitte beachtet, dass die GPIO-Nummern um eins versetzt sind: 0 =&gt; D1; 1 =&gt; D2; &#8230; 7 =&gt; D8<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><!--more-->Ganz links (Zeitpunkt 2715) ist der Einschaltmoment, nach 311 ms (Zeitpunkt 3026) wird der erste Codeblock (LOW) ausgef\u00fchrt und 200 ms sp\u00e4ter (Zeitpunkt 3226) der n\u00e4chste Codeblock (HIGH). Anschlie\u00dfend habe ich noch getestet, wie sich die Ausg\u00e4nge mit PULL-Downs verhalten.<\/p>\n<p>Erkenntnisse:<\/p>\n<ol>\n<li>D3 und D4 sind beim Einschalten nicht stabil<\/li>\n<li>D8 ist LOW (passt zum Schaltplan)<\/li>\n<li>D1, D2, D5, D6, D7 kann man mit Pull-Downs sch\u00f6n auf LOW ziehen.<\/li>\n<li>D3 und D4 m\u00f6gen (erwartungsgem\u00e4\u00df) keine Pull-Downs.<\/li>\n<\/ol>\n<p>Fazit:<\/p>\n<ol>\n<li>D1, D2, D5, D6, D7 sind problemlos zu nutzen. Je nach gew\u00fcnschten Zustand ggf. mit Pull-Downs.<\/li>\n<li>D3 und D4 k\u00f6nnen f\u00fcr Aufgaben genutzt werden, die immun gegen die nicht stabilen Zust\u00e4nde in der Startphase sind und mit HIGH zurecht kommen.<\/li>\n<li>D8 kann f\u00fcr Aufgaben genutzt werden, wo der Zustand in der Startphase LOW sein darf.<\/li>\n<\/ol>\n<table class=\"table table-bordered table-hover table-condensed\">\n<thead>\n<tr>\n<th title=\"Field #1\">D-Notation<\/th>\n<th title=\"Field #2\">GPIO<\/th>\n<th title=\"Field #3\">Feste Pull-UP\/DOWN<\/th>\n<th title=\"Field #4\">Notwendiger Zustand beim Booten<\/th>\n<th title=\"Field #5\">Anmerkungen<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>D0<\/td>\n<td>GPIO16<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr bgcolor='lightgreen'>\n<td>D1<\/td>\n<td>GPIO5<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr bgcolor='lightgreen'>\n<td>D2<\/td>\n<td>GPIO4<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>D3<\/td>\n<td>GPIO0<\/td>\n<td>PULL-UP<\/td>\n<td>HIGH<\/td>\n<td>Beim Einschalten nicht stabil; wird von der Schaltung beim Flashen auf Low gezogen<\/td>\n<\/tr>\n<tr>\n<td>D4<\/td>\n<td>GPIO2<\/td>\n<td>PULL-UP<\/td>\n<td>HIGH<\/td>\n<td>Beim Einschalten nicht stabil<\/td>\n<\/tr>\n<tr bgcolor='lightgreen'>\n<td>D5<\/td>\n<td>GPIO14<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr bgcolor='lightgreen'>\n<td>D6<\/td>\n<td>GPIO12<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr bgcolor='lightgreen'>\n<td>D7<\/td>\n<td>GPIO13<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>D8<\/td>\n<td>GPIO15<\/td>\n<td>PULL-DOWN<\/td>\n<td>LOW<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<pre class=\"lang:c++ decode:true\">void setup() {\r\npinMode(D1, OUTPUT); digitalWrite(D1, LOW);\r\npinMode(D2, OUTPUT); digitalWrite(D2, LOW);\r\npinMode(D3, OUTPUT); digitalWrite(D3, LOW);\r\npinMode(D4, OUTPUT); digitalWrite(D4, LOW);\r\npinMode(D5, OUTPUT); digitalWrite(D5, LOW);\r\npinMode(D6, OUTPUT); digitalWrite(D6, LOW);\r\npinMode(D7, OUTPUT); digitalWrite(D7, LOW);\r\npinMode(D8, OUTPUT); digitalWrite(D8, LOW);\r\ndelay(200);\r\n\r\ndigitalWrite(D1, HIGH);\r\ndigitalWrite(D2, HIGH);\r\ndigitalWrite(D3, HIGH);\r\ndigitalWrite(D4, HIGH);\r\ndigitalWrite(D5, HIGH);\r\ndigitalWrite(D6, HIGH);\r\ndigitalWrite(D7, HIGH);\r\ndigitalWrite(D8, HIGH);\r\n\r\n}\r\n\r\nvoid loop() {\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da ich keine brauchbaren Informationen gefunden habe, wie sich die GPIOs beim Einschalten des NodeMCU-Boards (Esp8266 ESP12 based) verhalten, habe ich sie mal mit einem einfachen Logik Analyser nachgemessen. Das Testprogramm (siehe unten) setzt die GPIO f\u00fcr 200 ms auf LOW und danach auf High. &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,38],"tags":[],"class_list":["post-702","post","type-post","status-publish","format-standard","hentry","category-esp8266","category-nodemcu"],"_links":{"self":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts\/702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/comments?post=702"}],"version-history":[{"count":10,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts\/702\/revisions"}],"predecessor-version":[{"id":812,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts\/702\/revisions\/812"}],"wp:attachment":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/media?parent=702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/categories?post=702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/tags?post=702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}