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

1

Lo más extraño está sucediendo 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 vinculados a través de los conectores de la derecha (JP1 a JP12).
  3. Tiene botones de cursor decodificados usando una escala de voltaje a través de ANALOG_0 (A0).
  4. Tiene un reloj de tiempo real para mantener la hora cuando la pizarra está apagada.
  5. Tiene un módulo receptor de RF.
  6. Tiene un encabezado UART (JP17), por lo que puedo programar la placa mediante un puerto serie.
  7. Tiene un altavoz conectado al pin digital 3 (D3).

LesuboelfirmwareconunadaptadorRS232aTTLquetambiénheconstruido(losesquemastambiénsemuestranacontinuación)yuncabledeserieaUSB.Alprogramarlo,laplacasecomportacomouna placa Arduino Severino .

Lo que es extraño es que, cuando subo el firmware con Arduino IDE 1.03, el proceso se detiene en el medio y luego el altavoz comienza a emitir un pitido continuo. Simplemente se sienta allí esperando que yo haga algo. Cuando presiono restablecer en la placa, el pitido se detiene, la carga continúa y el firmware se carga correctamente en la placa.

Por lo tanto, mis preguntas son:

  1. ¿Qué está haciendo el proceso de carga en pausa?
  2. ¿Por qué el timbre suena cuando el proceso se detiene?

PS. Esta es una publicación cruzada del recientemente creado sitio privado de Arduino, pero pensé que la pregunta también estaría relacionada con el tema aquí.

    
pregunta Ricardo

1 respuesta

1

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 se disparó hasta 10V antes de ir a 0V y estaba activando la programación de alto voltaje en el ATmega . A continuación se muestra un plano de alcance que muestra la situación:

LatrazaamarillaeslaseñalDTRmientrasquelatrazaverdeeslaseñalRESETenelATmega.

Deacuerdocon Atmel AVR042: AVR Hardware Design Considerations nota de aplicación , se debe agregar un diodo ESD entre RESET y Vcc de ATmega para evitar que la señal de reinicio active el modo de programación de alto voltaje, como por ejemplo:

Despuésdeagregarundiododeseñaltanpequeño(1N4148)comolanotadeaplicaciónrecomendada,solucionéelproblema.Veaacontinuaciónelalcancedeltirotomadodespuésdeagregareldiodo.

Ahora el pico de 10V se ha ido.

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

    
respondido por el Ricardo

Lea otras preguntas en las etiquetas