{"id":7817,"date":"2018-06-28T13:56:25","date_gmt":"2018-06-28T12:56:25","guid":{"rendered":"http:\/\/blog.whatsbee.net\/?p=7817"},"modified":"2018-06-28T13:56:25","modified_gmt":"2018-06-28T12:56:25","slug":"paso-16-fallos-en-la-pcb-y-tension-en-vacio","status":"publish","type":"post","link":"https:\/\/blog.whatsbee.net\/?p=7817","title":{"rendered":"Paso 16: Fallos en la PCB y tensi\u00f3n en vacio"},"content":{"rendered":"<p>Pues esto si que me ha costado un mont\u00f3n de tiempo para poder resolverlo.<\/p>\n<p>Pruebo la placa y el ESP no llega a arrancar (esto ya lo hab\u00edamos comentado en un post anterior), cojo el pol\u00edmetro, empiezo a medir y me acabo dando cuenta de que falta una resistencia de pulldown en el GPIO15. Curiosamente en mi protoboard\u00a0ese componente no est\u00e1, aunque m\u00e1s tarde me doy cuenta que la plaquita blanca que utilic\u00e9 para poder pinchar el ESP a la protoboard llevaba el espacio para los componentes m\u00ednimos y la resistencia la puse all\u00ed, es de tama\u00f1o 0805, no\u00a0me acord\u00e9 as\u00ed que cuando repas\u00e9 la protoboard para hacer la PCB simplemente no lo v\u00ed.<\/p>\n<p>\u00bfcomo llegu\u00e9 a la conclusi\u00f3n?, la verdad es que el mensaje de boot mode no est\u00e1 muy documentado, pero encontr\u00e9 esta info:<\/p>\n<p><em><code>ets Jan  8 2013,rst cause:XXX, boot mode:(YYY,ZZZ)<\/code><\/em><\/p>\n<p><em>For\u00a0<code>XXX<\/code>\u00a0we can check the meaning\u00a0<a href=\"http:\/\/www.esp8266.com\/viewtopic.php?p=2096#p2112\" rel=\"nofollow\">here<\/a>.<\/em><\/p>\n<p><em>For\u00a0<code>YYY<\/code>\u00a0and\u00a0<code>ZZZ<\/code>\u00a0I am not sure but I know it has something to do with\u00a0<a href=\"https:\/\/github.com\/esp8266\/esp8266-wiki\/wiki\/Boot-Process\" rel=\"nofollow\">this<\/a>. I think\u00a0<code>YYY<\/code>\u00a0stands for\u00a0<code>abc<\/code>\u00a0where a = MTDO, b = GPIO0 and c = GPIO.<\/em><\/p>\n<p>a=MTDO es el estado del GPIO15, en condiciones normales el bit m\u00e1s significativo debe de ser cero, por lo que\u00a0la yyy del bootmode no puede ser 4 o mayor.<\/p>\n<p>Para poder seguir hice lo que t\u00e9cnicamente se conoce como un workaround, Detr\u00e1s de esta palabra lo que se esconde es el soldar una resistencia como se puede para que funcione y ver que es lo siguiente.<\/p>\n<p>La PCB ya\u00a0arranca\u00a0y se puede programar. La programo y va leyendo y pon\u00edendose en deep sleep, pero cuando le toca enviar da un error de LMIC en la l\u00ednea 692 del fichero radio.c.\u00a0 Las pruebas son las siguientes:<\/p>\n<ul>\n<li>Mirando la l\u00ednea parece que el problema es cuando identifica el chipset del RFM95W, por lo que es posible que est\u00e9 mal configurado en el fichero config.h del LMIC, lo compruebo y est\u00e1 bien configurado, ese no es el problema.<\/li>\n<li>Lo segundo que dicen en los foros es que es un problema de pinout, como eliminamos algunos pins para dejar GPIOS libres no es complicado, Mido con el tester la continuidad entre los pines de la radio y los del ESP, todos correctos.<\/li>\n<li>Pienso, estoy comparando con el esquema, igual lo que est\u00e1 mal es el esquema y compraro con la protoboard, todas las pistas son correctas.<\/li>\n<li>Casi por casualidad veo que la se\u00f1al de clock y la de MISO est\u00e1n en corto, comparo en la protoboard y\u00a0all\u00ed no est\u00e1n en corto, pienso que se habr\u00e1 estropeado el ESP o la radio, por lo que saco el ESP (que es m\u00e1s barato).<\/li>\n<li>Con el ESP fuera no me da corto entre sus patillas, tampoco entre las de la radio, pongo otro ESP nuevo. Mido y est\u00e1n en corto, pienso, pues ser\u00e1 la radio.<\/li>\n<li>Cambio la radio, miro la radio que saco y no est\u00e1n en corto, pongo otra\u00a0 y sigo teniendo problemas, est\u00e1n en corto.<\/li>\n<li>Al final llego a la conclusi\u00f3n de que el corto lo hace el ESP con una via que hay muy cerca del pad (ver la foto), as\u00ed que pongo cinta Kapton y vuelvo a soldarlo.<\/li>\n<\/ul>\n<p>Ya no hay corto!!!!!! pero tanto\u00a0soldar y desoldar ahora tiene otro problema, con lo que voy a montar otra desde cero con componentes nuevos.<\/p>\n<h3>Tensi\u00f3n en vac\u00edo<\/h3>\n<p>Pues que me he dado cuenta que como en modo deep-sleep no nodo no consume pr\u00e1cticamente nada la tensi\u00f3n en vac\u00edo de la pila (por lo menos la que mide el nodo), est\u00e1 por encima de las especificaciones del ESP8266, me da casi 4V. \u00bfque es lo que puede provocar esto?, pues inestabilidades y un incremento en la corriente de deep-sleep. He encontrado un regulador de low droutput de TI, que promete que solo consume 0,5uA, se utiliza con muy pocos componentes externos y se puede dejar en nA con una entrada de Enable que incorpora. He pedido algunos para probar, de hecho ten\u00eda en mi lista de cosas pendientes el buscar una alternativa al driver de los sensores porque es de un formato m\u00ednimo y esta me parece una buena opci\u00f3n. Con el regulador principal la entrada EN me va bien por si un d\u00eda quiero poner un rel\u00e9 reed para desactivarlo con un im\u00e1n (pongo el rel\u00e9 entre la entrada EN y la masa y me garantizo que mientras est\u00e9 almacenado solo consume unos pocos nA si tiene el im\u00e1n). Para los sensores controlo la puerta EN con el GPIO10 en lugar de controlar el driver y reduzco de 0,5uA a unos pocos nA, adem\u00e1s estabilizo la tensi\u00f3n. Me parece un buen plan.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pues esto si que me ha costado un mont\u00f3n de tiempo para poder resolverlo. Pruebo la placa y el ESP no llega a arrancar (esto ya lo hab\u00edamos comentado en un post anterior), cojo el pol\u00edmetro, empiezo a medir y&hellip; <br \/><a class=\"read-more-button\" href=\"https:\/\/blog.whatsbee.net\/?p=7817\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":7818,"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,2],"tags":[243,209,244,241,242],"_links":{"self":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7817"}],"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=7817"}],"version-history":[{"count":1,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7817\/revisions"}],"predecessor-version":[{"id":7819,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/posts\/7817\/revisions\/7819"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=\/wp\/v2\/media\/7818"}],"wp:attachment":[{"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.whatsbee.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}