Contactos

Estamos creando un programador de comunicaciones para microcontroladores avr. Programador USB en miniatura para microcontroladores AVR. Dispositivos con adaptadores analógicos

06-01-2011

Descripción

Este sencillo programador AVR le permitirá cargar programas hexadecimales sin problemas en la mayoría de los microcontroladores ATM AVR sin sacrificar su presupuesto ni su tiempo. Es más confiable que la mayoría de los otros programadores AVR simples disponibles y requiere mucho menos tiempo de ensamblaje.

El programador AVR consta de un programador serie en circuito (con un conector) y una pequeña placa de circuito impreso con un conector DIP en el que puedes colocar tu microcontrolador y programarlo rápidamente.

También puede utilizar este programador solo como programador en circuito, con el que puede programar fácilmente el microcontrolador AVR sin quitarlo del dispositivo.

Todo el programador AVR está ensamblado a partir de componentes ampliamente utilizados y encaja en una carcasa de conector de puerto COM. Una placa de circuito impreso con un zócalo DIP le permite insertar un microcontrolador AVR ATmega8 de 28 pines en un paquete DIP, pero puede fabricar placas de circuito impreso para microcontroladores en cualquier otro paquete. Este programador es compatible con el popular software PonyProg, que le muestra el progreso del proceso de firmware en forma de barra de estado.

Programador serie en circuito AVR

Placa con toma para AVR

La placa tiene una cantidad mínima de componentes y se utiliza para programar microcontroladores fuera del dispositivo de destino.


La placa incluye un conector DIP de 28 pines, un resonador de cuarzo de 4 MHz o un resonador con dos condensadores de 22 pF y dos conectores. El conector de dos pines se usa para conectar alimentación de +5 V al microcontrolador AVR y el conector de 6 pines se usa para conectar el programador.

Alimentar el microcontrolador desde una fuente de voltaje externa, en lugar de directamente desde el puerto serie, garantiza que el controlador reciba exactamente 5 V y garantiza un firmware confiable y sin errores.

software ponyprog

Para poder cargar archivos hexadecimales desde su computadora al microcontrolador, deberá descargar e instalar el software. Después de la instalación, lo primero que debe hacer es configurar PonyProg para que funcione con el programador AVR. Para hacer esto, vaya al menú "Configuración" y seleccione "Configuración de interfaz". La siguiente figura resalta exactamente las opciones que debe seleccionar.

El siguiente paso es seleccionar “AVR micro” y el tipo de microcontrolador que deseas programar (por ejemplo ATmega8).

Ahora la configuración de PonyProg está completa y podemos abrir el archivo hexadecimal con el programa que estará codificado en el microcontrolador. Vaya al menú "Archivo", seleccione "Abrir archivo de programa (FLASH)..." y señale el archivo hexadecimal que necesita actualizarse. Deberías ver valores hexadecimales similares a los que se muestran en la imagen a continuación. Si aún no has conectado el programador al puerto serie de tu ordenador, ahora es el momento de hacerlo. Asegúrese de que su programador esté conectado físicamente al microcontrolador AVR a través de una placa de enchufe o un conector ICSP de 6 pines. Finalmente, haga clic en el icono resaltado "Escribir memoria de programa (FLASH)" o vaya al menú "Comando" y seleccione "Escribir programa (FLASH)".

Haga clic en el botón “Sí” para confirmar la entrada.

Ahora siéntese, relájese y observe el proceso de programación utilizando el indicador de estado. PonyProg flasheará el microcontrolador AVR y comprobará si el archivo hexadecimal se cargó sin errores. Este proceso suele tardar entre 10 y 30 segundos, dependiendo del tamaño del programa que integrará en el microcontrolador.

Después de la programación, aparecerá una ventana "Escritura exitosa" que indica que el microcontrolador AVR ha sido programado y ahora está listo para usar.

  • Verifique la instalación y conexión al microcontrolador de destino.
  • Bueno, no hay nada militar en este circuito y no hay necesidad de hacerlo, pero conecté el puerto com de Lonic a la computadora y listo, aunque todavía tengo un buffer en mi puerto com para no quemarlo accidentalmente. En cuanto al uso del programa Pony, nos olvidamos de una de las cosas más importantes que decir: los fusibles, porque si lo instalas incorrectamente, el chip se bloqueará.
  • El puerto com está desactualizado. Si solo hay USB, ¿el trabajo con los controladores se puede considerar terminado sin siquiera comenzar? Nadie en la red ofrece usb-com y, si lo hacen, entonces hay un controlador en el circuito. Si lo ensambla usted mismo, desde cero. y no como mucha gente hace ahora, pedí un diseñador, metí elementos en los agujeros, los soldé y listo, hay suficientes genios de este tipo en el servicio. y si te acercas a alguien así con una pregunta, él realmente no lo sabe. pero quiero saber en detalle.
  • Bueno, por supuesto, nadie (¡escrito juntos!) ofrece. Dado que hay muchos microcircuitos prefabricados en la inclusión típica: puentes USB-COM para fuente de alimentación de 5 V y 3,3 V. Pero los ciudadanos muy alfabetizados, naturalmente, no lo saben. Tampoco conocen el análogo AVR910 de Prottos, en el que el MK se representa a través de USB mediante un puerto COM virtual y se programa a través de ISP. Por ejemplo. La burguesía también tiene muchos diseños similares. Y, por supuesto, no hay descripciones detalladas: hay que buscarlas. Y quieres tener algo listo de inmediato: presionas un botón y todo está en bandeja de plata. ¿O tal vez sea mejor dar lecciones?
  • Muy respetado SergeBS, este foro no es para errores ortográficos y especialmente para enseñanzas sobre lo que es. aquí piden ayuda y consejo a personas que conocen y han encontrado tal o cual problema. pero el hecho de que esté listo y puedas comprarlo sin esforzarte es ciertamente genial. P.D. Sin embargo, gracias por su participación en el problema. Y UN ESPECIAL AGRADECIMIENTO POR LAS MUY ÚTILES ENSEÑANZAS. Hola a la burguesía, ¿pero ni siquiera podía saber qué tienen antes? ¿A dónde vamos con los campesinos?
  • Sí. Como los “cool” que escriben lo que quieren. Es más, ni siquiera pueden formular el “problema”. Mocos como: "Quiero saber las preguntas frecuentes, pero no conozco las preguntas frecuentes" - no cuenta. :)
  • Todavía no sabes de qué está hecho todo esto... En un mercadillo chino, las piezas de tus circuitos se venden por peso en kilogramos y ningún estándar de calidad tiene nada que ver con dichas piezas. Compre únicamente productos de marca de empresas relevantes.
  • Hago pedidos en tiendas online (rusas). Adiós (ugh * 3) por defectos/trucos, etc. no voló.
  • ¡Hola! ¡Feliz Año Nuevo a todos! :) Monté un programador para AVR según el esquema especificado (revisé todo 3 veces). Pero ponyprog 2000 se niega a ver y programar el controlador ATMega168-20PU: muestra un error de dispositivo faltante o dispositivo desconocido (-24). Utilicé diodos Zener KS407G, transistor KT3102AM y diodo KD522B. Tenía cuarzo a 4.032 MHz. Desarrollado por L7805. Antes de que ocurra el error, llegan mensajes de servicio, que superviso usando el Monitor de puerto serie avanzado, pero solo activan y desactivan la pausa durante el proceso de grabación. No se pierde ningún dato. Configuré PonyProg2000 según las instrucciones. Paso a paso. ¿Qué podría estar causando este error? ¿Necesito conectar el pin 22 a tierra y el pin 20 a la alimentación (tierra y alimentación analógicas)? ¿Por qué no se utiliza la selección de chip (pin SS 16 del controlador)? ¡Gracias por la ayuda!
  • Monté este programador y usé: Resistencias - los valores indicados Transistor - KT3102GM El diodo H48 es un análogo de los diodos Zener 1N4148 - BZX55C 5,1 voltios También cuarzo a 4 MHz y 2 condensadores cerámicos a 22 pF, pero no creo que eso son necesarios porque Configuramos el uso de cuarzo interno/externo con bits programables, de fábrica los mikruhi vienen programados para usar cuarzo interno (si no me equivoco), se requiere alimentación externa de +5V, lo conecté desde la fuente de alimentación del misma PC desde la que cargué el firmware. Diodo H48 (esta marca no está presente en el cuerpo de este diodo) en Internet dicen que es un análogo de 1N4148. Todo funciona para mí, PonyProg 2000 cargó exitosamente el firmware en ATmega8. Foto http://i.imgur.com/34GhDcN.jpg http://i.imgur.com/gCzAuzA.jpg
  • Recomendaría uno de los proyectos de clonación de avr mk ii, basado en lib y un ejemplo de lufa. El controlador at90usb168 generalmente viene con un gestor de arranque, que le permite cargar el firmware a través de USB después del ensamblaje sin un programador externo. Admite todos los avr actuales, incluidos xmega y el nuevo protocolo Tinki, pdi/tpi. Funciona con avrstudio y dude, firmware diferente para ellos. Las fuentes están abiertas, los errores han sido solucionados. Por ejemplo, para estudios nuevos basta con incrementar la versión de firmware en la configuración del firmware. El firmware se está compilando para winavr. Mi versión en este tema, desde los 12 años. Con una foto. http://m.radiokot.ru/forum/viewtopic...rt=700&t=26417
  • Hola. Monté este programador para el firmware ATtiny 2313, todo funciona. Leemos el MK sin problemas, pero aquí está el problema. El autor del circuito para el cual estoy flasheando el MK escribió que por primera vez se puede flashear sin un cuarzo externo, pero primero cargue el firmware MK y luego cambie Fuse. En resumen, cargué el firmware, se instaló bien, luego cambié Fuse y hice clic en Escribir, pero después de hacer clic en Escribir salió esto: Falta dispositivo o dispositivo desconocido ( -24) y después de eso el MK ya no es legible, ¿cuál podría ser el problema?
  • Esto ha vuelto, por favor dígame, intenté flashear ATtiny 2313 con cuarzo externo e instalé 2 condensadores, conector de cuarzo de 8 MHz. programa leyó el MK, abrió el firmware en el pony, configuró los fusibles, cuáles se necesitan, estos son los de fábrica http://i.imgur.com/rSdlENN.jpg y estos deben actualizarse http:/ /i.imgur.com/gc4yyxA.gif pero qué más noté en la configuración de fábrica hay una casilla de verificación que no se puede eliminar llamada SPIEN, y cuáles deben actualizarse no hay esta casilla de verificación, está bien, continuaré con mi problema después de abrir el firmware y configurar Fuse como en la segunda imagen, hice clic en LEER DISPOSITIVO, realicé el proceso de firmware y al final esto es lo que salió http://i.imgur.com/UpR5qhE.jpg y luego cerré el pony y lo abrí de nuevo e hice clic en leer MK y obtuve este dispositivo faltante o dispositivo desconocido (-24) igual que lo que flasheé sin cuarzo externo, descrito anteriormente, y después de eso este MK ya no se leyó, ¿quién puede decirme qué es? mal lo que hice mal es que ya maté a 3 MKs muchas gracias soy nuevo en esto
  • Recibí este error solo cuando no conecté la fuente de alimentación externa, bueno, por supuesto, es posible que tengas errores en el circuito, tal vez configuraste el pony prog para el dispositivo incorrecto (pero es poco probable porque soy un novato). Subí el firmware.) SPIEN es un fusible que le permite funcionar MK a través de la interfaz SPI. Todos los microcontroladores se lanzan con el bit SPIEN ya configurado. Considerado un fusible peligroso...
  • El bit de fusible SPIEN está configurado de forma predeterminada en los microcontroladores AVR (modo de programación en circuito) y no se puede eliminar usando PonyProg. Y en general es mejor no tocarlo... Después de instalar y programar los bits Fuse como en la última imagen, configuró el microcontrolador para que funcione desde un cuarzo externo de 8 MHz, deshabilitó el divisor de frecuencia del reloj interno en 8 y habilitó el Brown. -Detector de salida (módulo de control de energía) con un nivel de 2.7 V. Y luego el programador no vio el microcontrolador, por lo que sería lógico suministrar energía externa al microcontrolador (no de PonyProg) e intentar leerlo nuevamente. PD: Por supuesto, si todo se hizo correctamente inicialmente (el tipo de microcontrolador en el programador se seleccionó correctamente durante la programación y los bits del fusible se configuraron correctamente)
  • gracias por la respuesta, acabo de actualizar el firmware para 3 MK y ahora el programa no los ve y necesito cambiarlos, y siempre le suministré alimentación externa cuando actualicé el firmware, pero el pony todavía no lo ve. pero el MK funciona, lo inserté en el dispositivo para quien lo cosieron los tres trabajadores, pero necesito subir otros allí, le pregunté al autor del circuito para el que los estaba cosiendo cómo cambiarlos, me dijo que Si no se detecta el cuarzo externo, entonces también necesitará crear un generador de reloj externo y enviar una señal al XTAL 1 MK y luego programarlo. Veré el MK si alguien puede mostrar un diagrama de circuito simple de un generador de reloj externo, busqué mucho en Google y no encontré nada, o tal vez alguien más tenga una manera, y Fuse, definitivamente tuve que recordar cómo en la segunda imagen. porque con los de fábrica no sirve, gracias por la ayuda
  • ¡Gracias por el artículo! Gran adaptador. Funciona rápidamente, sin errores. En primer lugar, soldé el puerto LPT, no tenía un enchufe COM a mano. El puerto LPT se quemó durante el primer llenado. Tuve que correr a la tienda para conseguir un enchufe COM. También recomiendo soldar el fusible del médico, algo muy útil. Fui el primero en fusionar tanto el cristal que parecía que había liberado su alma (humo azul), ¡pero no! - La mecha de Dokhdur instantáneamente le devolvió la vida. Resulta que este adaptador + fusible de base = un programador paralelo completo.
  • Después de la "neblina azul", ningún médico pudo devolverle la vida. Y "Doctor Fuse": sí, probablemente pueda resultar útil a veces. Pero casi siempre es posible prescindir de él, sólo hay que sincronizar el MK no con cuarzo, sino con un generador externo...
  • Pero tuve la suerte, en la primera configuración de los fusibles, de cerrarlo de golpe para que ni un solo generador pudiera salvarlo. No sabía que hay 2 opciones para mostrar fusibles: directo (histórico, canónico) e invertido (intuitivamente conveniente). Entonces puse la casilla canónica con la foto invertida. Por cierto, PonyProg opera con fusibles en una representación invertida.
  • Leer para todos:

La opción de programador más sencilla para AVR Estos son cinco cables soldados al puerto del controlador y conectados a LPT puerto. No lo discuto, es posible. Pero aun no lo recomiendo Por aquí. Ni siquiera te daré un diagrama de cableado; si lo necesitas, puedes encontrarlo tú mismo. Dado que este método no es muy estable, es posible el firmware falla, la longitud de los cables está limitada a veinte centímetros (si es más, habrá fallas), por lo que tendrás que hurgar en el trasero de tu computadora. si y El puerto LPT es fácil de quemar. En general, no mando.

Buscando en Internet encontré un excelente programador que trabaja a través de RS232 alias COM puerto. Y también un programa conveniente para actualizar el controlador. UniProf de Nikolaev. El circuito programador fue inventado por Gromov, el creador de Algorithm Builder.

Para montar el programador necesitarás:

  • Tres diodos, cualquiera de los de bajo consumo. Por ejemplo 1N4148.
  • Siete resistencias de 1kOhm. Tengo resistencias de tamaño 1206.
  • Si lo haces según mi placa de circuito impreso, también puedes comprar resistencias de 3 0 ohmios: puentes, no les importa.

La placa de circuito impreso se dibuja con un marcador o, como la mía, se fabrica con una plancha láser.

Instalé el conector DB9 en la foto por conveniencia. Tengo diferentes cables intermitentes conectados allí, o un adaptador como este:


El programador está soldado y el controlador está conectado a él. Es hora de asegurarse de que todo se haga correctamente.

Lanzamiento UniProf.exe y elige un numero COM Puerto al que tienes conectado el programador. El tipo de controlador debe determinarse inmediatamente y mostrarse encima de la ventana de código izquierda.

¿No funciono? Hay tres opciones:

  • El programador está soldado torcidamente.
  • Controlador muerto.
  • Soldé incorrectamente el cableado al microcontrolador.

Una vez más revisas todo minuciosamente y vuelves a intentarlo. Deberia de funcionar.

A continuación, si nunca antes ha trabajado con controladores, es posible que necesite un programa de prueba. No hará nada útil, pero te permitirá estar seguro de que todo lo que hiciste antes se hizo correctamente.

Descargar Estudio Atmel AVR es el entorno oficial para el desarrollo de programas para microcontroladores AVR. El estudio soporta todos los microcontroladores de la familia. Atmel AVR. Puede encontrar su última versión en Atmel.com

A continuación, cree un nuevo proyecto, seleccione como lenguaje de programación. Ensamblador e indique la carpeta y el nombre donde se ubicará su proyecto. Úselo como depurador AVR SIMULADOR e indique con qué controlador trabajará. Luego ingrese un programa simple en la ventana de texto.

Aquí está su texto de ejemplo:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .INCLUDE "m16def.inc" ; esto incluye una lista de definiciones de macros; sin él, el compilador no sabrá cuál; es el procesador con el que montamos el programa; si tienes un controlador diferente, sustitúyelo; inclusión correspondiente. Ellos están en; Carpeta de AVR Studio en; "Herramientas AVR\AvrAssembler\Appnotes\" .MACRO fuera de LDI R16,@1 SALIDA @0,R16 .ENDMACRO ; Configuramos una macro muy conveniente que permite; escribir un número dado arbitrario a cualquiera; se registra en una línea de código. .CSEG .ORG 0x0000 RESTABLECER RJMP .ORG 0x0030 ; La directiva inicia el código desde la dirección 0x0030; la dirección se tomó con gran margen, porque; diferentes AVR tienen diferentes tamaños de mesa; interrumpe. ¡Así que seguro! REINICIAR: ; etiqueta de inicio OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Configure las direcciones del puerto de salida; Si este controlador no tiene, por ejemplo, un puerto; C, entonces esta línea debe comentarse. PORTA SALIDA,0xAA PUERTO SALIDAB,0xAA PUERTO SALIDATC,0xAA PUERTO SALIDA,0xAA ; Generamos 10101010 para obtener; una imagen clara de lo que ocurrió en los puertos; cambios. Después de completar el programa; en las salidas del microcontrolador en forma de tablero de ajedrez; Habrá voltaje de suministro o tierra. Qué; fácil de comprobar ya sea con un voltímetro o con uno simple; Sonda LED. REINICIAR RJMP; Repetimos el programa.

INCLUYE "m16def.inc"; esto incluye una lista de definiciones de macros; sin él, el compilador no sabrá cuál; es el procesador con el que montamos el programa; si tienes un controlador diferente, sustitúyelo; inclusión correspondiente. Ellos están en; Carpeta de AVR Studio en; "Herramientas AVR\AvrAssembler\Appnotes\" .MACRO fuera de LDI R16,@1 SALIDA @0,R16 .ENDMACRO ; Configuramos una macro muy conveniente que permite; escribir un número dado arbitrario a cualquiera; se registra en una línea de código. .CSEG .ORG 0x0000 RESTABLECER RJMP .ORG 0x0030 ; La directiva inicia el código desde la dirección 0x0030; la dirección se tomó con gran margen, porque; diferentes AVR tienen diferentes tamaños de mesa; interrumpe. ¡Así que seguro! REINICIAR: ; marca de inicio OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; Configure las direcciones del puerto de salida; Si este controlador no tiene, por ejemplo, un puerto; C, entonces esta línea debe comentarse. PORTA SALIDA,0xAA PUERTO SALIDAB,0xAA PUERTO SALIDATC,0xAA PUERTO SALIDA,0xAA ; Generamos 10101010 para obtener; una imagen clara de lo que ocurrió en los puertos; cambios. Después de completar el programa; en las salidas del microcontrolador en forma de tablero de ajedrez; Habrá voltaje de suministro o tierra. Qué; fácil de comprobar ya sea con un voltímetro o con uno simple; Sonda LED. REINICIAR RJMP; Repetimos el programa.

A continuación, haga clic en el botón compilar (o F7) y vaya a la carpeta de su proyecto. Ya debería estar esperándote allí. ****.maleficio archivo de firmware.
Lanzamiento UniProf.exe, haga clic en el botón con una carpeta abierta y la inscripción MALEFICIO. Seleccione su proyecto recién compilado y presione Aceptar.
Segunda ventana UniProf le pedirá que ingrese datos EEPROM, tenemos EEPROM no utilizado, así que presione cancelar.
Eso es todo, ahora puedes flashearlo. Haga clic en la flecha roja con la inscripción Prog y espera. Cuando termine, puede hacer clic en Leer y ver lo que se escribió en su controlador; debería mostrar lo mismo que ya estaba cargado en la ventana.

Ahora todo lo que tienes que hacer es aplicar energía a tu microcontrolador y ver qué aparece en los puertos. ¿Viste un “peine” de niveles de voltaje alto y bajo? ¡Excelente! ¡Has mostrado el primer mando de tu vida! Ahora puede sumergirse de lleno en el aprendizaje sobre los microcontroladores AVR.

Si no funciona, aquí hay posibles rastrillos y soluciones.

  • Los ordenadores modernos, con procesadores de gigahercios, los novedosos Vista y Sevens, son muy malos amigos de este programador. No sólo es posible que simplemente no tenga un puerto COM, sino que incluso si esto sucede, no es un hecho que todo funcione como debería. Para experimentos de ingeniería de radio, recomiendo construir algo como PIII 800/Windows'98 a partir de chatarra. No será un problema desenterrar un milagro así de forma gratuita y no te importará quemarlo si algo sale mal.
  • este esquema No funciona a través de adaptadores USB-COM o funciona, pero MUY lentamente. Digamos que el firmware de un microcontrolador puede durar una hora y media.
  • Por primera vez, lo mejor es tomar comida. del bloque de computadora. Menos probabilidades de quemar algo o cometer un error
  • ¡Comprueba el diagrama 3-4 veces! Porque, a juzgar por los comentarios, la mayoría de los problemas se deben a una instalación incorrecta.
  • Antes de iniciar el programa en MK NECESITAS DESACTIVAR EL PROGRAMADOR y aplique +5 voltios a la entrada RESET a través de una resistencia de 1..10 kOhm. Nada funcionará con el programador conectado, porque... presiona RESET y no permite que el cristal arranque.
  • Si UniProf no detecta el MK, es posible que su computadora sea demasiado rápida. Para compensar esta “desventaja”, es necesario habilitar Casilla de verificación "Freno" Aparece si lo apagas desmarcando EEPROM Panel de visualización de datos EEPROM.
  • Si la casilla de verificación Freno no ayudó, intente en otra computadora. Porque Aquí el puerto COM se procesa en modo anormal, lo que significa que no es un hecho que su puerto COM entienda todo correctamente.
  • En el peor de los casos, si todo lo demás falla, pruebe con un programador de 5 cables u otro programa de actualización, como avrdude. ¡Mantenga los cables lo más cortos posible! ¡10-15 centímetros es el MÁXIMO!
  • Lee los comentarios en la publicación.. Muchas de las jambas ya se habían solucionado. Quizás el tuyo esté entre ellos.

Adición de Forastero:
1. Si no hay un conector de puerto COM en la parte posterior de la computadora, esto no significa al 100% que, en principio, no exista dicho puerto en la placa base. Todavía hay conectores en las placas base con 9 pines en dos filas; para obtener más detalles, debe consultar la documentación de la placa base. Lo encontré en mi ASUS P5K SE y lo usé con éxito.

2. Sí, +5 y GND no son tierra ni un contacto del puerto COM, sino alimentación externa. La forma más sencilla de obtenerlo es en su computadora: +5 está en el cable rojo de cualquiera de los conectores que alimentan los discos duros. Y GND está en el cuerpo de la computadora. O en el cable negro del mismo conector.

3. Si algo no funciona con UniProf, puedes probar con avrdude. Para hacer esto, necesita escribir lo siguiente en avrdude.conf:

programador
id = "nikolaew";
desc = "golpe del puerto serie, reset=dtr sck=rts mosi=txd miso=cts";
tipo = serbio;
restablecer = 4;
scck = 7;
mosi = 3;
miso = 8;
;

Y luego ejecute avrdude con los siguientes parámetros:

avrdude -n -c nikolaew -P com1 -p m16

Si todo está en orden el programa dirá:
avrdude: Dispositivo AVR inicializado y listo para aceptar instrucciones

Adición de Riko
Se descubrió experimentalmente que para un funcionamiento adecuado este programador La tensión de alimentación del MK debe ser de al menos 5 voltios.(¡¡¡pero no superior a 5,5!!!). Es decir, si el MK está conectado a tres pilas AA, entonces estás arruinado, ¡ya que hay 4,5 voltios! Enciéndelo desde tu computadora!!!

Adición de SLY_DEr
No funcionó. Cambié las resistencias de 3k (no estaban en 1k) a 460 ohmios; funcionó, pero con errores.
Decidí, puramente por deporte, reducir velocidad del puerto com en el administrador de dispositivos y oh milagro, todo funcionó como debería. Reduje la velocidad del puerto de 9600k a 4800k y también reduje el buffer de recepción y transmisión (ibid.) a valores de 4 y 6, respectivamente.

Si algo no queda claro, no dudes en preguntarme en los comentarios.

zy
Si no funciona en absoluto, entonces tal vez su placa base no admita un manejo tan no estándar del puerto COM y valga la pena probar con otros programadores. Por ejemplo, o. Aunque son más complicados, funcionan más correctamente, sin distorsiones.

Hoy en día existen muchos programadores de microcontroladores AVR de este tipo, pero lo que no me gusta es que estén demasiado “sueltos” (elementos discretos), mientras que hay microcircuitos especializados que ya lo tienen todo dentro.

Mi elección recayó en el microcircuito. GD75232, algunos de cuyos elementos, cuando se encienden adecuadamente, utilicé para este programador. Las patas 10 y 11 del microcircuito deben estar conectadas a tierra (cable común).

Este microcircuito está ubicado en las placas base, su función es precisamente coordinar las señales de dispositivos externos con el puerto COM. La ilustración de la hoja de datos muestra qué elementos están conectados y cómo (no describiré cómo ni por qué, puedes leer sobre esto en la descripción del microcircuito). No lo compré a propósito, sino que lo saqué de una placa base "muerta".

No incluyo la placa de circuito impreso, porque corté un trozo de la placa junto con el microcircuito con unas tijeras para metal, al final las dimensiones de la placa resultaron ser 20x30 mm, los conductores se soldaron a 3 conectores.

1- fuente de alimentación +5V

Conector de 2 puertos com

Conector 3-ISP para programación

Puedes utilizar el programador con el conocido programa Pony Prog, en la configuración selecciona la interfaz (Serial, COM1) para el puerto COM y cualquiera de los 3 tipos de interfaces que allí se enumeran, no hace ninguna diferencia, funciona con todos (JDM API, SI Prog I/0, Si Prog API), las imágenes explican esto. Las configuraciones restantes en la configuración del puerto permanecen en el programa de forma predeterminada.

El programador es tan simple que no contiene resistencias ni condensadores, solo un microcircuito. Conectar la fuente de alimentación de +5V, conectarla a la toma en la que se inserta el microcontrolador AVR preparado para la programación y programar como de costumbre en modo ISP.

El circuito ha sido probado y probado.

Almacenamiento en búfer

Los programadores simples son efectivos siempre que estemos hablando de programar microcontroladores en un paquete DIP (es conveniente cuando puede quitar el microcircuito del zócalo en la placa de trabajo y enchufarlo en el zócalo del programador, y luego, después de la programación, colocarlo). en su lugar), o cuando los pines del microcontrolador en la placa de trabajo no están muy cargados con elementos de circuito externos.

Existen buenos circuitos probados para programadores simples con buses con búfer como STK200/300, ensamblados en microcircuitos de las series 244, 245, pero están diseñados para conectarse a un puerto LPT, lo que recientemente se ha convertido en una rareza en las placas base modernas. Hoy en día, solo los puertos USB y COM son más comunes, y los programadores USB son más difíciles de usar para los radioaficionados principiantes.

Los programadores sencillos más conocidos que trabajan con un puerto COM tienen un inconveniente común: no todos tienen suficiente capacidad de carga.

Recientemente, los componentes SMD se han utilizado cada vez más y los microcontroladores se utilizan en paquetes tipo SOIC y se sueldan directamente a la placa, sin enchufes. En este caso, para reprogramar nuevamente, debes programarlo directamente en la placa, o desoldar el chip, y en algunos casos primero debes desconectar la carga en sus pines en el circuito si resulta que los elementos externos “sapan” el programador pulsa, a menos que sus buses estuvieran amortiguados (aumentados en corriente para trabajar con mayor carga).

Por experiencia personal, diré que muchos programadores simples conocidos adolecen de estas deficiencias, por ejemplo, con 5 resistencias, o el conocido circuito con transistor, resistencias y diodos Zener: con una mayor carga, los problemas comienzan en el programador. autobuses. Para no tener que crear un nuevo programador, existe una forma sencilla de mejorar las características de carga del programador: esto consiste en amortiguar los buses de señal existentes, simplemente agregando otro chip.

En este caso, tomé lo que tenía a mano: un microcircuito. 561PU4 ( o tal vez su análogo occidental CD4050). Este microcircuito contiene seis elementos buffer no inversores que repiten la señal de entrada en la salida sin realizar cambios. Cada uno de estos elementos tiene una determinada capacidad de carga; en la ilustración tomada en la hoja de datos, puede ver la estructura de esos elementos discretos contenidos dentro del buffer.

Al conectar dicho complemento a nuestro programador entre los pines del programador y el conector de programación, obtendremos un dispositivo con mayor capacidad de carga. Tenemos tres señales del puerto COM para recepción y una señal (MISO) para transmisión. Después de soldar otro chip buffer al circuito existente usando cables cortos, probé el funcionamiento del nuevo circuito y, comparándolo con el que había antes, me convencí de que había un efecto. En aquellas placas donde anteriormente había encontrado un problema similar durante la programación, tuve que desconectar la carga durante la programación, pero ahora con el nuevo circuito ya no necesitaba hacer esto.

Recomiendo a todos los propietarios de programadores simples que modifiquen su circuito existente de la misma manera, si encontró problemas similares durante la programación, al agregar un chip buffer, no necesariamente este, puede usar otros chips como 74HC125, 74HC126 Con base en estos microcircuitos, puede transferir las salidas del programador a un estado de alta impedancia, lo que le permitirá no desconectar el conector ICSP de la placa, esto es especialmente conveniente cuando se trabaja con una placa de desarrollo, hay muchos variaciones en el uso de mi programador como módulo base, esto incluye la programación de microcircuitos como 24Cxx 93Cxx, así como la programación de controladores PIC, pero probablemente desarrollaré este tema un poco más adelante en este artículo.

Z - estado de los buses de salida

Lo mejor es enemigo de lo bueno (c).

Todo parece funcionar, pero tan pronto como agregas algo más al circuito, este pasa de ser pequeño a convertirse en un “monstruo”, pero ¿qué debes hacer? A veces, durante el proceso de depuración, es necesario hacerlo por comodidad en el trabajo, porque a veces es necesario enchufar el conector varias docenas de veces. PEPSI Al reprogramar el microcontrolador repetidamente, esta actividad a veces se vuelve aburrida, y si dejas el programador constantemente conectado al circuito, entonces el circuito del programador afectará el funcionamiento del dispositivo, pero hay una solución que mencioné anteriormente, esta es cambiar el estado de los buses a alta impedancia - z estado, entonces el circuito programador podrá estar conectado por el tiempo que desee y ya no pasará por alto los buses del microcontrolador, para este caso encontré este chip y lo usé como buffer, este procedimiento lo realizaremos usando el botón S1, que , cuando está cerrado, pondrá las salidas del programador en modo de funcionamiento, programando conectando sus señales al circuito. En el momento de la programación, debe mantener presionado el botón y, después de que el procedimiento de programación sea exitoso, soltarlo. Cuando el botón está abierto, las salidas del programador cambian al estado z

De la hoja de datos 74HC125, según el diagrama y la tabla de verdad queda claro que si aplicamos las conclusiones A"uno" el circuito transfiere las salidas a un estado de alta impedancia (de hecho, está completamente desconectado de la carga) y además, este microcircuito tiene una capacidad de carga aún mayor que el microcircuito que elegí como buffer en el anterior circuito..

En general, publico otro diagrama y las imágenes adjuntas para su consideración.

Vladímir Naumenko

Kaliningrado.

Averigüemos qué es una interfaz ISP y veamos un programador ISP USB económico y conveniente. Veamos los diagramas esquemáticos de los programadores más simples para microcontroladores AVR que utilizan puertos COM y LPT en una computadora. Esta información es suficiente para actualizar la mayoría de los modelos de microcontroladores AVR no solo en Linux, sino también en otros sistemas operativos.

Interfaz de programación en el sistema del ISP

Para escribir un programa en el microcontrolador AVR necesitará un programador.

Programador Es un pequeño circuito electrónico que permite conectar un microcontrolador a uno de los puertos del ordenador (COM, LPT, USB) para su posterior lectura y escritura del firmware (programación).

Existen muchos diseños diferentes de programadores para microcontroladores AVR que se conectan a diferentes puertos de computadora.

La opción más confiable y conveniente es un programador que se conecta a un puerto USB, ya que los puertos COM y LPT ya no están instalados en las computadoras de escritorio y portátiles nuevas.

En los dispositivos terminados, el programador está conectado al microcontrolador a través de una interfaz ISP(En programación del sistema): interfaz de programación en el sistema. La interfaz ISP consta de varios conductores a través de los cuales se reciben una señal de reloj y datos para conectar el programador con el microcontrolador.

Como regla general, la interfaz ISP se coloca en placas con forma de diez o seis pines, a las que se conecta el programador mediante un conector adecuado mediante un cable.

Arroz. 4. Interfaz ISP en la placa.

Propósito de los pines en la interfaz del ISP:

  1. VCC - fuente de alimentación plus, normalmente +5V;
  2. GND - potencia negativa, tierra (Tierra);
  3. MOSI - entrada de datos (Master Out Slave In);
  4. MISO - salida de datos (Master In Slave Out);
  5. SCK - señal de reloj (reloj serie);
  6. RST: para proporcionar una señal de reinicio.

Para la programación en circuito del microcontrolador sólo son suficientes 4 pines, ya que el microcontrolador puede alimentarse desde el propio circuito donde está instalado.

¿Cómo conectar el programador al chip del microcontrolador AVR si no está soldado al circuito? - muy simplemente, utilizando los mismos pines de la interfaz ISP, si es necesario, alimentando el microcontrolador desde la fuente de alimentación.

Programador USB ISP ASP

Para trabajar con chips AVR, compré un programador ISP USB económico por unos 10 dólares. Un dispositivo de este tipo ya está a la venta en muchas tiendas en línea nacionales y extranjeras, por lo que no debería haber problemas con la compra.

Arroz. 5. USB ISP: programador con cable para programación en circuito de microcontroladores AVR de ATMEL.

Este programador es seguro de usar, de tamaño pequeño y compatible con la mayoría de los programas para flashear microcontroladores AVR. USB ISP se ejecuta en los sistemas operativos Linux, Mac OS X y Windows. Para Linux, no necesita instalar ningún controlador; después de conectar el programador al puerto USB, el dispositivo será detectado inmediatamente y estará listo para usar.

A continuación, daré la distribución de pines de los conectores del programador USB ISP; nos será útil más adelante cuando nos conectemos al microcontrolador.

Arroz. 6. Ubicación de los pines en el conector USB ISP (pinout).

Arroz. 7. Ubicación de los contactos en las tomas de los conectores conectados al programador USB ISP.

¿Qué hacer si no puedes comprar un programador ISP USB?- Puede programar microcontroladores utilizando programadores caseros simples que se conectan a un puerto COM o LPT, pero es mejor hacer un ISP USB usted mismo y programar el chip del microcontrolador una vez con un programador casero simple a través de un puerto COM o LPT.

Arroz. 8. Diagrama esquemático de un programador ISP USB ASP casero.

Puede encontrar información detallada sobre la fabricación de USB ASP, así como placas de circuito impreso, controladores y firmware para el microcontrolador en el sitio web oficial: http://www.fischl.de/usbasp/

Además, hay bastantes recursos sobre este programador gratuito en Internet, hay muchos diseños de placas de circuito impreso listos para usar, incluso en el programa SprintLayout, por lo que no nos detendremos en esto en detalle en este artículo.

Programador usando puerto COM

Este programador también se llama "programador Gromov", en honor a quien ideó este esquema, el creador del programa Algorithm Builder (un entorno gráfico para programar AVR en Windows utilizando un lenguaje algorítmico): G.L. Gromová.

Este programador le permite programar chips AVR utilizando el puerto COM de la computadora - interfaz RS232. Para ensamblar un programador de este tipo, necesitará un mínimo de piezas: 3 diodos, 7 resistencias, un conector DB-9 o DB-25 (dependiendo del conector acoplado que esté instalado en su computadora) y un conector ISP para conectarse al microcontrolador. (o simplemente unos pocos conductores para chip). Se puede utilizar cualquier diodo de baja potencia en el circuito.

Arroz. 9. Diagrama esquemático del programador del microcontrolador AVR a través de un puerto COM de computadora.

Para completar la información, a continuación proporcionaré la distribución de pines de los puertos RS-232 para las opciones DB-9 y DB-25.

Arroz. 10. RS232 - Puerto COM, disposición de pines DB-9.

Arroz. 11. Puerto COM RS232 DB-25: ubicación de las clavijas en los conectores.

Programador usando puerto LPT

Como sabemos, el puerto LPT de una computadora está diseñado para conectar una impresora local (Local Printer Port), pero sin embargo se usa a menudo para conectar varios dispositivos y productos caseros. En este caso podemos utilizarlo para programar microcontroladores AVR montando un circuito muy sencillo para tal fin, que se muestra a continuación.

Arroz. 12. Diagrama esquemático de un programador para microcontroladores AVR utilizando el puerto LPT de una computadora.

Como ves, el circuito es incluso más sencillo que en la versión con, aquí solo necesitamos 4 resistencias de bajo consumo y un conector (macho, con pines) para conectar al puerto LPT del ordenador.

Arroz. 13. Ubicación de pines para conectores de puerto LPT.

Todas las piezas y conexiones se pueden colocar en la carcasa del conector LPT, y para conectar al microcontrolador se puede sacar un cable con un conector para la interfaz ISP o simplemente los conductores necesarios para conectar al microchip.

Software y notas

Una vez conectado el programador COM o LPT al microcontrolador, no se debe olvidar suministrar energía al propio microchip. Puedes utilizar baterías o una fuente de alimentación con estabilizador como fuente de alimentación para el microcontrolador, esto será lo más seguro tanto para el puerto de la computadora como para el chip. Ya hemos hablado de cómo utilizarlo.

En Linux existe un programa muy potente que puede funcionar con programadores USB ASP, COM y LPT: este programa AVRDUDE, se discutirá en las siguientes secciones.

Para actualizar chips AVR en Windows utilizando datos de programadores COM y LPT, necesita el programa UniProf de Nikolaev, que es un programador universal para AVR (avr.nikolaew.org).

¡ATENCIÓN! Tenga mucho cuidado y cuidado al ensamblar y usar programadores usando el puerto COM o LPT de una computadora, un simple error puede fácilmente prendió fuego a estos puertos. Para el funcionamiento normal de dichos programadores, debe intentar utilizar los conductores más cortos posibles desde el conector hasta el circuito del programador y el microcontrolador. Es recomendable que el microprocesador de la computadora tenga una frecuencia de no más de 1-2 GHz, y como sistema operativo para programar los chips es recomendable utilizar Win2000 o WinXP.

También es importante saber que los adaptadores USB-RS232 (puerto USB-COM) probablemente no funcionarán con el programador de Gromov; solo funcionarán aquellos con chips más nuevos, por lo que es mejor buscar una máquina con un puerto COM nativo.

Conclusión

Los programadores discutidos en el artículo son solo algunas de las soluciones más asequibles y simples de una gran lista de programadores AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, programadores FTDI y otros.

Ahora, en cualquier caso, puede ensamblar un programador disponible para usted y actualizar al menos un chip, a partir del cual puede ensamblar otro programador más conveniente o algún otro dispositivo.

En el próximo artículo, descubriremos cómo conectar diferentes modelos de microcontroladores AVR al programador y descubriremos dónde obtener información sobre la distribución de pines de los microcontroladores.

Los microcontroladores se utilizan cada vez más en los circuitos electrónicos modernos. ¿Qué puedo decir si hoy en día no se puede encontrar ni siquiera una guirnalda de árbol de Navidad normal sin un microcontrolador en su interior: establece varios programas de iluminación?

La primera vez que me encontré con microcontroladores fue cuando estaba construyendo el primero. Fue entonces cuando resultó que un controlador sin firmware es solo una pieza de plástico con patas.

Y para cargar el firmware requerido en ATMEG, no puede prescindir de un programador. A continuación, veremos los dos circuitos programadores más simples y probados.

Esquema uno

Con este programador puede actualizar casi cualquier controlador AVR de ATMEL, solo necesita verificar el pinout del chip.

El conector COM en el diagrama es “madre”.

Por si acaso, presento el diseño de la placa de circuito impreso para atmega8 (), aunque un circuito tan primitivo es más fácil de dibujar a mano. El tablero debe reflejarse antes de imprimir.

Abra el archivo PCB usando el popular programa Sprint Layout (si aún no lo tiene instalado, es mejor que lo haga de inmediato).

Como se desprende del diagrama, para montar el programador necesitarás una cantidad insignificante de piezas:

En lugar del KT315, conecté un transistor SMD BFR93A, que todavía tenía después del montaje.

Y aquí está todo el programador ensamblado:

Decidí tomar energía (+5V) del puerto USB.

Si tiene un microcontrolador nuevo (y nadie ha intentado actualizarlo antes), entonces no es necesario instalar cuarzo con los condensadores que lo acompañan. El funcionamiento sin un resonador de cuarzo es posible debido a que la piedra viene de fábrica con una broca al generador incorporado y, en consecuencia, el circuito se sincroniza con él.

Si se utiliza su microcircuito, es posible que no se inicie sin cuarzo externo. Entonces es mejor configurar el cuarzo a 4 MHz y los condensadores a 33 pF.

Como puede ver, no instalé cuarzo con condensadores, pero por si acaso les dejé espacio en el tablero.

Lo mejor es cargar el firmware utilizando el programa PonyProg (descargar).

Firmware usando PonyProg

Vaya al menú Configuración -> Calibración -> Sí. Debería aparecer la ventana "Calibración OK".

Ahora conectamos el microcontrolador a la toma del programador y le suministramos 5 voltios (puede, por ejemplo, desde una fuente de alimentación separada o un puerto USB). Luego haga clic en Comando -> Leer todo.

Después de leer, aparece la ventana "Lectura exitosa". Si todo está bien, seleccione el archivo con el firmware requerido para cargar: Archivo -> Abrir archivo del dispositivo. Haga clic en "Abrir".

Ahora haga clic en Comando -> Bits de seguridad y configuración y configure los fusibles según sea necesario.

Eso es todo, ¡el MK está cosido y listo para usar!

Tenga en cuenta que al flashear usando otros programas (no PonyProg), ¡los bits pueden invertirse! Entonces hay que configurarlos exactamente al revés. Esto se puede determinar leyendo los fusibles y mirando la casilla de verificación "SPIEN".

Esquema dos

Otra versión del programador con la que se puede cargar firmware al microcontrolador ATMEG (el llamado programador Gennady Gromov). El circuito consta de sólo 10 partes:
Puede tomar cualquier diodo de pulso (por ejemplo, nuestro KD510, KD522). El conector es "madre". La alimentación del MK (+5V) debe suministrarse por separado, por ejemplo, desde la misma computadora desde la salida USB.

Todo esto se puede ensamblar mediante montaje montado directamente en el conector, pero si eres un buen soldador y sabes qué es el montaje SMD, puedes hacerlo maravillosamente:

Algoritmo de firmware usando el programador Gromov

Conectamos el programador con el microcircuito instalado al puerto COM de la computadora, luego iniciamos Uniprof y luego suministramos energía al microcontrolador. Y en primer lugar comprobamos si los bits de los fusibles son legibles.

Si todo está bien, seleccione el archivo con el firmware requerido y presione grabar.

Tenga mucho cuidado y tenga mucho cuidado, porque si hay un problema técnico al registrar los fusibles, el MK será expulsado o soldará el circuito del médico (y es complicado). Si cambias el bit SPIEN por el opuesto, el resultado será el mismo (para el médico).




¿Te gustó el artículo? Compártelo