{"id":7771,"date":"2018-05-10T14:19:07","date_gmt":"2018-05-10T13:19:07","guid":{"rendered":"http:\/\/blog.whatsbee.net\/?p=7771"},"modified":"2018-05-10T14:21:41","modified_gmt":"2018-05-10T13:21:41","slug":"septimo-paso-que-tonto-si-tenia-que-ser-triestado","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=7771","title":{"rendered":"S\u00e9ptimo paso: Que tonto!!!! si ten\u00eda que ser triestado"},"content":{"rendered":"<p>Supongo que para cualquiera que haya le\u00eddo algunos de los art\u00edculos de esta serie deber\u00eda de tener claro que no pretenden ser unas instrucciones\u00a0sobre como hacer un nodo de bajo consumo en Lora, tampoco un sitio del que coger un c\u00f3digo para pegarlo en tu IDE y tener un dispositivo funcionando. Lo que pretendo es\u00a0ir documentando los puntos en los que me he atascado y las soluciones.\u00a0\u00a0Cualquiera que haya intentado algo parecido lo apreciar\u00e1, porque el desarrollo es bastante sencillo y una parte importante del tiempo te la pasas resolviendo problemas que te atascan.<\/p>\n<p>Y este es uno que posiblemente merezca la pena resaltar, porque\u00a0 de un problema \u00abtonto\u00bb de concepto tenemos unos s\u00edntomas esot\u00e9ricos.<\/p>\n<p>Tal como comentaba en art\u00edculos anteriores es absurdo que tengamos un micro en deep sleep con un consumo de 20uA pero que los sensores est\u00e9n consumiendo energ\u00eda la mayor parte del tiempo. La soluci\u00f3n es alimentar los sensores solo cuando sea necesario para realizar una lectura y mantenerlos sin alimentaci\u00f3n el resto del tiempo. Podr\u00edamos alimentarlos conectando el pin de alimentaci\u00f3n a uno de los GPIO, poner el GPIO en nivel alto solo cuando necesitemos leer y en nivel bajo el resto del tiempo. Lamentablemente los GPIO del ESP8266 no son capaces de proporcionar la corriente necesaria.<\/p>\n<p>A la b\u00fasqueda de soluciones lo primero que pens\u00e9 es en utilizar un transistor, Lamentablemente cuando el transistor estuviera en saturaci\u00f3n habr\u00eda una ca\u00edda de tensi\u00f3n\u00a0entre el colector y el emisor.\u00a0Como norma general no es un problema una ca\u00edda de\u00a0600 a 900 mV, pero trabajando a 3,3V y alimentando un sensor, 2,4V ser\u00eda insuficiente. (<a href=\"https:\/\/cuningan.wordpress.com\/2011\/02\/15\/polarizacion-de-transistor-npn-en-saturacion\/comment-page-1\/\">M\u00e1s info sobre el transistor trabajando en saturaci\u00f3n<\/a>).<\/p>\n<p>La segunda opci\u00f3n fu\u00e9 utilizar mosfets, pero antes de que me pusiera a mirar la forma de hacerlo pens\u00e9 \u00bfPorqu\u00e9 no utilzar una puerta l\u00f3gica (buffer) que si que soportara la corriente necesaria?<\/p>\n<p>Buscando buscando vi varias, pero todas ten\u00edan unos valores de consumo en reposo bastante altos (de 5 a 10 uA, es muy poco, pero alto comparado con nuestros objetivos), encontr\u00e9 el\u00a0NC7SV34P5X un buffer de ultra bajo consumo que tiene una corriente de reposo de solo 0,9uA. Lamentablemente su encapsulado m\u00e1s grande es SC70 no se ve ni con lupa.\u00a0 Independientemente de esto lo he pedido y he conseguido\u00a0conectarlo a la placa de prototipos,\u00a0he conectado al alimentaci\u00f3n, el GND, la entrada al GPIO10 y la salida a los pines de alimentaci\u00f3n de los sensores (Ultrasonidos y temperatura).<\/p>\n<p>Una vez conectado todo ha dejado de funcionar!!, en la consola de depuraci\u00f3n solo aparec\u00eda una cadena con basura. He puesto el terminal a 74880 baudios que es lo que utiliza mi ESP en el arranque y he visto que el boot mode era 1 (el que se utiliza para subir los programas) . Normalmente para poner el boot mode en 1 lo que se hace es poner el GPIO0 a nivel bajo, por lo que he hecho una investigaci\u00f3n en esa l\u00ednea.<\/p>\n<p>Si record\u00e1is, el GPIO0 lo hab\u00edamos usado para el term\u00f3metro, pruebo, lo desconecto y arranca.\u00a0 La situaci\u00f3n es bastante inexplicable, pero al final caigo. Intuitivamente pensaba en alimentar cuando necesitara, pero un buffer tiene dos niveles Alto y bajo, es decir, no solo alimenta cuando est\u00e1 a nivel alto, tambi\u00e9n conecta con GND cuando est\u00e1 a nivel bajo, El GPIO0 lleva una resistencia de pullup de 10K para mantenerlo a nivel alto, el DS18B20 (el term\u00f3metro) lleva una resistencia de pullup para el bus de 4,8K (entre el positivo y la l\u00ednea que usa para comunicar). Al poner la alimentaci\u00f3n del DS18B20 a nivel bajo y ser la resistencia de pullup del bus onewire menor que la de pullol del GPIO0 el GPIO0 acaba puesto a nivel bajo. Con el GPIO0 a nivel bajo lo que espera el micro es que le suban un programa.<\/p>\n<p>Intuitivamente he asumido que es lo mismo tener la alimentaci\u00f3n de los sensores a nivel bajo\u00a0 que tenerla sin alimentar, pero no es lo mismo. Lo que necesito es una puerta triestado\u00a0con la que tenga la posibilidad de poner la salida en modo de alta impedancia, que ser\u00eda lo mismo que no tener conectada la corriente.<\/p>\n<p>En la misma serie que la que he utilizado, la que necesito es la\u00a0NC7SV34P5X (<a href=\"https:\/\/docs-emea.rs-online.com\/webdocs\/12cf\/0900766b812cfed0.pdf\">aqui el datasheet<\/a>)<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Supongo que para cualquiera que haya le\u00eddo algunos de los art\u00edculos de esta serie deber\u00eda de tener claro que no pretenden ser unas instrucciones\u00a0sobre como hacer un nodo de bajo consumo en Lora, tampoco un sitio del que coger un&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=7771\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":7772,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[208],"tags":[225,223,219,209,216,226,227,224],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7771"}],"collection":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7771"}],"version-history":[{"count":1,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7771\/revisions"}],"predecessor-version":[{"id":7773,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7771\/revisions\/7773"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/media\/7772"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}