Accidentalmente acorté los pines 10 y 11 con 10 configurados para la salida ALTA y 11 configurados para la entrada. El pin 11 no funciona. ¿Cómo averiguo qué componente quemé?
Especificar qué placa Arduino es ayudaría a identificar componentes posiblemente comprometidos, desde el esquema.
Anindo Ghosh
@AnindoGhosh Lo etiqueté como uno ^
asheeshr
Respuestas:
21
Supuesto: como el modelo Arduino específico no se ha especificado, utilice el Arduino Uno para ilustrar esta respuesta. La lógica se aplica de manera idéntica a los otros Arduinos, para sus respectivos pines y voltajes de operación del microcontrolador.
Como puede verse, los pines 10 y 11 son pines GPIO estándar.
Cualquier GPIO no puede emitir un voltaje más alto que el voltaje de suministro del microcontrolador (V CC ) , en el Arduino. Para el Uno V CC es de 5 voltios.
Cualquier pin GPIO puede soportar un voltaje de entrada de hasta V CC y un poco más alto (se toleran 5.5 voltios como estándar)
Además, cuando cualquier Arduino GPIO está configurado como entrada, está en un estado de alta impedancia, lo que hace que sea imposible pasar suficiente corriente a él para los voltajes involucrados, para que ocurra cualquier daño.
Por lo tanto, el cortocircuito de los pines 10 y 11 no puede causar ningún daño a ninguno de los pines , en las circunstancias indicadas en la pregunta.
Ahora examinemos las posibilidades alternativas:
Si el Uno se alimenta desde el conector de barril de CC en lugar de 5 voltios desde la conexión USB u otra fuente de alimentación regulada, el pin Vin produce 1 caída de diodo menor que este voltaje de entrada: esto sería alrededor de 8.3 voltios si el suministro es de 9 voltios batería unida al jack de barril.
Cortocircuito este pin VIN a cualquiera de los pines analógicos o digitales del Arduino (que no sean pines específicos que están protegidos por resistencias ) es muy probable que destruya el circuito de protección / diodo ESD interno para ese pin dentro del microcontrolador, o destruya el microcontrolador sí mismo. Esta podría ser la causa del problema.
Otra hipótesis es que el Pin 11 estuvo expuesto a alguna otra fuente de alto voltaje, más allá del Vcc de la placa. Esto podría deberse a un EMF inverso de un motor o al alto voltaje (puede ser de más de 10 voltios ) generado por un doblador piezoeléctrico (altavoz piezoeléctrico) si se golpea contra algo. Esto podría causar daños a los diodos ESD / circuitos de protección como se indicó anteriormente
A continuación, la descarga electrostática de la electricidad estática puede dañar cualquier pin GPIO dado incluso si el dispositivo no está encendido. ¿Por casualidad te peinaste y luego tocaste la tabla Arduino en algún momento, por ejemplo? El problema solo aparecerá más tarde, cuando intente usar ese pin en el tablero, por lo que la causalidad a menudo es difícil de precisar.
Finalmente, si dos pines están configurados para salir , uno alto y otro bajo, y estos están en corto, el pin "Alto" ve un corto a tierra a través del pin "Bajo". Esta fuente para reducir la contención puede hacer que el microcontrolador se caliente, y aunque los microcontroladores AVR generalmente tienen protección de salida en GPIO, esto puede hacer que uno u otro de los pines dejen de funcionar, aunque es más probable que falle todo el microcontrolador. .
Dicho todo esto, si por alguna razón el Pin 11 ya no realiza entradas o salidas, los circuitos de protección interna correspondientes de la MCU están irrevocablemente dañados. No hay forma de reparar esto. Esto ha sido bien cubierto en la respuesta de Manishearth .
Considérese afortunado de que no se haya destruido todo el microcontrolador, y vuelva a codificar sus aplicaciones para que ya no use el Pin 11.
Consejo personal: Hace mucho tiempo que bloqueé los enchufes VIN en mis placas Arduino al pegarles un aislamiento pelado, para evitar exponer accidentalmente cualquier cable de puente a ese voltaje. Si alguna vez necesito usar VIN algún día, pasaré una hora encantadora luchando por extraer ese trozo de aislamiento atrapado allí.
No debería ser posible destruir tu pin acortando la entrada a la salida. Los pines de entrada pueden manejar el voltaje de nivel Vcc, por lo que deberían poder manejar el voltaje de salida más bajo del otro pin. Además, tienen una alta impedancia, por lo que deberían protegerlos de la mayoría de las cosas. (Consulte la respuesta de Anindo sobre esta misma pregunta para obtener más detalles al respecto). En su caso específico, supongo que sucedió uno de los siguientes:
Ambos pines fueron configurados para salida
Cortaste algo y no te diste cuenta
(Como mencionaste en el chat que el pin comenzó a funcionar nuevamente), el polvo o la humedad acumulados se volcaron al pin
Sin embargo, se puede destruir pines con las siguientes conexiones (tomadas de este excelente post , hay muchas más formas generales de destruir un Arduino allí):
ALTO pin de salida a GND
Pin de salida ALTA a pin de salida BAJA
Aplique cualquier voltaje alto por encima de 5.5V a un pin (esto puede destruir más que solo el pin)
En cuanto a qué hacer en general cuando destruyes un pin:
En tales casos, el pin del microcontrolador está quemado y no se puede reparar. La única forma de solucionar esto es reemplazar el microcontrolador (si es un paquete DIP, esto es relativamente barato y fácil) o comprar una nueva placa. Al reemplazar el microcontrolador, tendrá que grabar el cargador de arranque en el nuevo microcontrolador (a menos que lo haya adquirido con el cargador de arranque) si desea programar el Arduino a través de USB.
Echando un vistazo a los esquemas, las siguientes placas tienen pines directamente conectados al microcontrolador.
Uno
Mega
Duemilanove
LilyPad
Fio
Nuova Generazione
Diecimila
En los siguientes tableros, hay algunos pines que están protegidos y son difíciles de quemar:
Otra cosa bastante barata para probar es comprar otro atmega328, descargar el chip presuntamente dañado, cargar el nuevo en el zócalo, quemar el gestor de arranque y ver si eso ayuda. Suponiendo que su placa tenga un DIP engarzado atmega328.
Respuestas:
Supuesto: como el modelo Arduino específico no se ha especificado, utilice el Arduino Uno para ilustrar esta respuesta. La lógica se aplica de manera idéntica a los otros Arduinos, para sus respectivos pines y voltajes de operación del microcontrolador.
Consulte este diagrama de pin-out para Arduino Uno : ( fuente )
Ahora examinemos las posibilidades alternativas:
Dicho todo esto, si por alguna razón el Pin 11 ya no realiza entradas o salidas, los circuitos de protección interna correspondientes de la MCU están irrevocablemente dañados. No hay forma de reparar esto. Esto ha sido bien cubierto en la respuesta de Manishearth .
Considérese afortunado de que no se haya destruido todo el microcontrolador, y vuelva a codificar sus aplicaciones para que ya no use el Pin 11.
Consejo personal: Hace mucho tiempo que bloqueé los enchufes VIN en mis placas Arduino al pegarles un aislamiento pelado, para evitar exponer accidentalmente cualquier cable de puente a ese voltaje. Si alguna vez necesito usar VIN algún día, pasaré una hora encantadora luchando por extraer ese trozo de aislamiento atrapado allí.
fuente
No debería ser posible destruir tu pin acortando la entrada a la salida. Los pines de entrada pueden manejar el voltaje de nivel Vcc, por lo que deberían poder manejar el voltaje de salida más bajo del otro pin. Además, tienen una alta impedancia, por lo que deberían protegerlos de la mayoría de las cosas. (Consulte la respuesta de Anindo sobre esta misma pregunta para obtener más detalles al respecto). En su caso específico, supongo que sucedió uno de los siguientes:
Sin embargo, se puede destruir pines con las siguientes conexiones (tomadas de este excelente post , hay muchas más formas generales de destruir un Arduino allí):
En cuanto a qué hacer en general cuando destruyes un pin:
En tales casos, el pin del microcontrolador está quemado y no se puede reparar. La única forma de solucionar esto es reemplazar el microcontrolador (si es un paquete DIP, esto es relativamente barato y fácil) o comprar una nueva placa. Al reemplazar el microcontrolador, tendrá que grabar el cargador de arranque en el nuevo microcontrolador (a menos que lo haya adquirido con el cargador de arranque) si desea programar el Arduino a través de USB.
Echando un vistazo a los esquemas, las siguientes placas tienen pines directamente conectados al microcontrolador.
En los siguientes tableros, hay algunos pines que están protegidos y son difíciles de quemar:
Sin embargo, si quema un pin en estos, no hay mucho más que pueda hacer que reemplazar el microcontrolador.
Si parece propenso a la quema de alfileres, puede probar el ruggedduino .
fuente
Otra cosa bastante barata para probar es comprar otro atmega328, descargar el chip presuntamente dañado, cargar el nuevo en el zócalo, quemar el gestor de arranque y ver si eso ayuda. Suponiendo que su placa tenga un DIP engarzado atmega328.
fuente