1 votos

La placa Arduino personalizada emite un pitido y el proceso se congela mientras le subo el firmware. ¿Por qué?

Lo más extraño está ocurriendo con una placa Arduino independiente que he diseñado y construido. La placa (cuyos esquemas están abajo) tiene las siguientes características:

  1. Tiene un ATmega328P con un regulador de voltaje de 5V.
  2. Controla un marcador con varios dígitos de 7 pantallas vinculadas a través de los conectores de la derecha (JP1 a JP12).
  3. Tiene botones de cursor decodificados mediante una escalera de tensión a través de ANALOG_0 (A0).
  4. Dispone de un reloj en tiempo real para mantener la hora cuando la placa está apagada.
  5. Dispone de un módulo receptor de RF.
  6. Tiene una cabecera UART (JP17) para que pueda programar la placa utilizando un puerto serie.
  7. Tiene un altavoz conectado al pin digital 3 (D3).

My controller schematics

Le subo el firmware usando un adaptador de RS232 a TTL que también he construido (los esquemas también están abajo) y un cable de serie a USB. Al programarla, la placa se comporta como una Placa Arduino Severino .

My RS232 to TTL adapter

Lo extraño es que, cuando subo el firmware usando Arduino IDE 1.03, el proceso se detiene en la mitad y luego el altavoz empieza a pitar continuamente. Se queda ahí esperando a que haga algo. Cuando pulso reset en la placa, el pitido se detiene, la carga continúa y el firmware se carga con éxito en la placa.

Así que mis preguntas son:

  1. ¿Qué hace que el proceso de carga se detenga?
  2. ¿Por qué suena el zumbador cuando el proceso se detiene?

PS. Este es un post cruzado del recién creado sitio de la beta privada de Arduino, pero pensé que la pregunta sería on-topic aquí, también.

1voto

Ricardo Puntos 3575

Finalmente encontré lo que estaba causando el problema: la señal de reinicio del pin 4 (DTR - Data Terminal Ready) en el conector DB9-Hembra tenía un pico de 10V antes de ir a 0V y estaba disparando la programación de alto voltaje en el ATmega. A continuación se muestra una imagen de alcance que muestra la situación:

Scope shot showing voltage spike to 10V

El trazo amarillo es DTR mientras que el trazo verde es la RESET en el ATmega.

Según el informe de Atmel Atmel AVR042: Nota de aplicación sobre el diseño del hardware del AVR se debe añadir un diodo ESD entre el ATmega's RESET y Vcc para evitar que la señal de reset active el modo de programación de alto voltaje, así:

Recommended RESET pin connection for ATmegas

Después de añadir un pequeño diodo de señal (1N4148) como recomendaba la nota de la aplicación, conseguí solucionar el problema. Ver abajo la toma de alcance tomada después de la adición del diodo.

Scope shot after fixing the board

Ahora el pico de 10V ha desaparecido.

¡¡Eso fue complicado!! Pero nunca pude encontrar lo que estaba mal sin la investigación y las herramientas adecuadas. El dinero en un telescopio es dinero bien gastado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X