Programando un ATmega328P en una placa de pruebas - el programador no puede conectarse

4

Lo que estoy tratando de hacer es programar el ATmega328P en una placa de pruebas. He seguido el esquema por el cual el tablero Duemilanove fue cableado en vano.

Tengo un programador de bolsillo SparkFun AVR que funciona bien. Soy capaz de programar con éxito, usando ISP, el ATmega328P en el tablero Arduino Duemilanove. Además, puedo quitar el controlador original, reemplazarlo con un nuevo controlador (el mismo modelo y el mismo chip que estoy intentando programar en la placa de pruebas) y programar con éxito también.

Conectodirectamentelosiguiente:

  • MISOalpin18
  • SCKalpin19
  • RESTABLECERalpin1
    • RESETtambiéntieneunaresistenciapull-up
  • VCCalpin7
  • MOSIalpin17
  • TIERRAhastaelpin8

HeintentadovincularAREFaVCCyambosTERRENOSjuntos,todavíanada.Tambiénprobélaprogramacióndelaplacaalimentándolaexternamente(esdecir,retirandoVCCdelconectorISP).Lospinesquehedescritoanteriormentesonlasúnicasconexiones.¿Hayalgoquemeestoyperdiendoaquí?

Elerrorquereciboes:

Donde he leído este resultado indica que el programador no puede conectarse a la placa de destino.

Intenté mirar más a fondo el esquema para ver si faltaba alguna conexión adicional (es decir, algún otro pin conectado a tierra o suministrado a 5V, de lo contrario estaría desviando la conexión de VCC directamente al pin 7); No pude encontrar nada. ¿Alguna sugerencia?

Aquí está la salida detallada (-v marca usando avrdude). No estoy seguro de qué hacer con esta información.

    
pregunta sherrellbc

2 respuestas

2

El 328P tiene un pullup interno débil en la línea de reinicio, pero el vendedor recomienda agregar un pull-up externo si se conecta algún circuito de reinicio externo. En mi experiencia, el MCU también necesita ser alimentado externamente. Si tiene otros dispositivos SPI en las líneas MOSI o MISO, asegúrese de que estén desconectados o en modo de triple estado antes de programar. No use pull ups / downs en las líneas MOSI / MISO / SCK ... son líneas conducidas. Además, tenga en cuenta que la MCU solo se puede programar mientras se mantiene en estado de restablecimiento. Si eso no funciona, asegúrese de que sus líneas MISO / MOSI / SCK estén conectadas correctamente y no invertidas, lo que es bastante fácil de hacer en una placa de pruebas. Siempre uso programadores de Atmel AVR ISP Mk II reales y no tengo problemas. Los elementos que he enumerado han sido las únicas cosas que he encontrado al programar un dispositivo AVR. ¡Salud!

    
respondido por el Pugz
1

AVR tiene algunas buenas notas de aplicación para consideraciones de hardware. De particular interés podría ser nota de aplicación 042 particularmente figuras 2- 2, 2-3 y 3-2.

Las figuras 2-2 y 2-3 muestran el esquema de pines RESET recomendado. Hay varias diferencias entre la recomendación y su esquema: el condensador desplegable a tierra, el resistor pullup y el resistor en línea en el interruptor de reinicio. Tenga en cuenta que la línea RESET del ISP se conecta directamente al pin RESET de la unidad uC, mientras que el interruptor de restablecimiento externo tiene la resistencia entre este y el pin RESET. Nunca he tenido suerte con ese diodo en el esquema de reinicio y te animo a que no te molestes. Cuando lo uso, el chip se puede programar, pero se debe quitar la energía y volver a aplicarlo para que funcione.

La Figura 3-2 muestra resistencias entre los dispositivos SPI y los pines SPI en la uC, mientras que las líneas del ISP están conectadas directamente a los pines SPI en la uC. Ese puede ser otro problema.

Además, puede leer la Application Note 910 con respecto a la programación en el sistema. No puedo señalarle nada específico, pero a menudo encuentro que leer ese tipo de documentos de fondo cuando me golpeo la cabeza contra una pared me da una idea brillante que lo arregla todo. Algunas veces.

¡Buena suerte!

    
respondido por el AngryEE

Lea otras preguntas en las etiquetas