Esquemas y materiales. Actualización del firmware del programador

Así como un teatro comienza con una percha, la programación de microcontroladores comienza con la elección de un buen programador. Desde que estoy empezando a dominar los microcontroladores de la empresa. ATMEL Luego tuve que familiarizarme a fondo con lo que ofrecen los fabricantes. Ofrecen muchas cosas interesantes y sabrosas, sólo que a precios exorbitantes. Por ejemplo, una bufanda con un microcontrolador de veinte patas con un par de resistencias y diodos a modo de arnés cuesta como un "avión". Por tanto, surgió la cuestión del autoensamblaje del programador. Después de un largo estudio de los desarrollos de radioaficionados experimentados, se decidió montar un programador probado. USBASP , cuyo cerebro es un microcontroladorAtmega8 (También hay opciones de firmware para atmega88 y atmega48). El cableado mínimo del microcontrolador le permite ensamblar un programador bastante en miniatura que siempre puede llevar consigo, como una unidad flash.

Una vez que decidí montar un programador en miniatura, volví a dibujar el circuito para el microcontrolador Atmega8 en la carcasa. TQFP32(La distribución de pines del microcontrolador es diferente de la distribución de pines del paquete DIP):

El puente J1 se utiliza si es necesario flashear un microcontrolador con una frecuencia de reloj inferior a 1,5 MHz. Por cierto, este saltador se puede eliminar por completo colocando la etapa 25 del MK en el suelo. Entonces el programador funcionará siempre a una frecuencia reducida. Personalmente, noté que programar a velocidad reducida lleva una fracción de segundo más y, por lo tanto, ahora no tiro el jersey, sino que coso constantemente con él.
Los diodos Zener D1 y D2 se utilizan para hacer coincidir los niveles entre el programador y el bus USB; funcionará sin ellos, pero no en todas las computadoras.
El LED azul indica que el circuito está listo para ser programado; el LED rojo se enciende durante la programación. Los contactos de programación están ubicados en el conector IDC-06, el pinout cumple con el estándar ATMEL para un conector ISP de 6 pines:


Este conector contiene contactos para alimentar dispositivos programables, aquí se toma directamente del puerto USB de la computadora, por lo que debes tener cuidado y evitar cortocircuitos. El mismo conector también se utiliza para programar el microcontrolador de control, para ello basta conectar los pines de Reset en el conector y en el microcontrolador (ver la línea de puntos roja en el diagrama). En el circuito del autor, esto se hace con un puente, pero no desordené el tablero y lo quité. Para un solo firmware, bastará con un simple puente de cable. El tablero resultó ser de doble cara y mide 45x18 mm.


El conector de programación y un puente para reducir la velocidad del programador se encuentran al final del dispositivo, esto es muy conveniente


Firmware del microcontrolador de control.

Entonces, después de ensamblar el dispositivo, lo más importante que queda es flashear el microcontrolador de control. Los amigos que todavía tienen computadoras con puerto LPT son muy adecuados para estos fines :)El programador de cinco hilos más sencillo para AVR
El microcontrolador se puede flashear desde el conector de programación conectando los pines de reinicio del microcontrolador (pata 29) y el conector. Existe firmware para los modelos Atmega48, Atmega8 y Atmega88. Es recomendable utilizar una de las dos últimas piedras, ya que se suspendió el soporte para la versión Atmega48 y la última versión de firmware data de 2009. Y las versiones para las piedras 8 y 88 se actualizan constantemente, y el autor parece estar planeando agregar un depurador en circuito a la funcionalidad. El firmware lo obtenemos de la página alemana. Para cargar el programa de control al microcontrolador, utilicé el programa PonyProg. Al programar, es necesario configurar el cristal para que funcione desde una fuente de reloj externa a 12 MHz. Captura de pantalla del programa con configuración de puentes de fusibles en PonyProg:


Después de actualizar el firmware, el LED conectado a la pata 23 del microcontrolador debería encenderse. Esta será una señal segura de que el programador se ha programado correctamente y está listo para usar.

Instalación del controlador

La instalación se realizó en una máquina con Windows 7 y no surgieron problemas. Cuando se conecte a su computadora por primera vez, aparecerá un mensaje indicando que se ha detectado un nuevo dispositivo y le solicitará que instale un controlador. Seleccione la instalación desde la ubicación especificada:


Seleccione la carpeta donde se encuentra la leña y haga clic en Siguiente


Aparecerá instantáneamente una ventana con una advertencia de que el controlador que se está instalando no tiene una firma digital para los pequeños software:


Ignoramos el aviso y continuamos con la instalación, tras una breve pausa aparecerá una ventana informándonos que la operación de instalación del controlador se ha completado con éxito.


Eso es todo, el programador ya está listo para usar.

Programador Khazama AVR

Para trabajar con el programador, elegí el flasher del programador Khazama AVR. Un programa maravilloso con una interfaz minimalista.


Funciona con todos los microcontroladores AVR populares, le permite flashear flash y eeprom, ver el contenido de la memoria, borrar el chip y también cambiar la configuración de los bits de los fusibles. En general un conjunto totalmente estándar. La configuración del fusible se realiza seleccionando la fuente del reloj de la lista desplegable, por lo que la probabilidad de bloquear el cristal por error se reduce drásticamente. Los fusibles también se pueden cambiar colocando casillas de verificación en el campo inferior, pero no se pueden colocar casillas de verificación en una configuración inexistente, y esto también es una gran ventaja en términos de seguridad.


Los fusibles se escriben en la memoria MK, como puede imaginar, presionando el botón Escribir todo. El botón Guardar guarda la configuración actual y el botón Cargar devuelve la configuración guardada. Es cierto que no se me ocurrió ningún uso práctico para estos botones. El botón Default está diseñado para registrar la configuración de fusibles estándar, aquella con la que vienen de fábrica los microcontroladores (normalmente 1 MHz del RC interno).
En general, durante todo el tiempo que llevo usando este programador, ha demostrado ser el mejor en cuanto a estabilidad y velocidad de funcionamiento. Funcionó sin problemas tanto en una PC de escritorio antigua como en una computadora portátil nueva.

Descargar archivo PCBen SprintLayout puedes seguir este enlace

¿Qué primeros pasos debe tomar un radioaficionado si decide montar un circuito en un microcontrolador? Naturalmente, se necesita un programa de control: "firmware", además de un programador.

Y si no hay problemas con el primer punto: los autores de los circuitos suelen cargar el "firmware" terminado, entonces con el programador las cosas son más complicadas.

El precio de los programadores USB prefabricados es bastante elevado y la mejor solución sería montarlos usted mismo. Aquí hay un diagrama del dispositivo propuesto (se puede hacer clic en las imágenes).

Parte principal.

Panel de instalación MK.

El diagrama original fue tomado del sitio web LabKit.ru con el permiso del autor, por lo que muchas gracias. Este es el llamado clon del programador propietario PICkit2. Dado que la versión del dispositivo es una copia "ligera" del PICkit2 patentado, el autor llamó a su desarrollo PICkit-2 Lite, lo que enfatiza la facilidad de montaje de dicho dispositivo para los radioaficionados principiantes.

¿Qué puede hacer un programador? Con el programador, puede actualizar las MCU de la serie PIC más populares y disponibles (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A, etc.), así como chips de memoria EEPROM de la serie 24LC. Además, el programador puede funcionar en modo convertidor USB-UART y tiene algunas de las funciones de un analizador lógico. Una función particularmente importante que tiene el programador es el cálculo de la constante de calibración del generador RC incorporado de algunas MCU (por ejemplo, como PIC12F629 y PIC12F675).

Cambios necesarios.

Hay algunos cambios en el circuito que son necesarios para que utilizando el programador PICkit-2 Lite sea posible escribir/borrar/leer datos de los chips de memoria EEPROM de la serie 24Cxx.

De los cambios que se hicieron al esquema. Se agregó conexión del pin 6 de DD1 (RA4) al pin 21 del panel ZIF. El pin AUX se utiliza exclusivamente para trabajar con chips de memoria EEPROM 24LC (24C04, 24WC08 y análogos). Transmite datos, por eso está marcado con la palabra “Datos” en el diagrama del panel de programación. Al programar microcontroladores, el pin AUX generalmente no se usa, aunque sí es necesario al programar MK en modo LVP.

También se agregó una resistencia pull-up de 2 kOhm, que está conectada entre los pines SDA y Vcc de los chips de memoria.

Todas estas modificaciones ya las realicé en la placa de circuito impreso, luego de ensamblar el PICkit-2 Lite según el diagrama original del autor.

Los chips de memoria 24Cxx (24C08, etc.) se utilizan ampliamente en equipos de radio domésticos y, a veces, es necesario actualizarlos, por ejemplo, al reparar televisores CRT. Utilizan memoria 24Cxx para almacenar configuraciones.

Los televisores LCD utilizan un tipo diferente de memoria (memoria Flash). Ya he hablado de cómo flashear la memoria de un televisor LCD. Si a alguien le interesa, que le eche un vistazo.

Debido a la necesidad de trabajar con microcircuitos de la serie 24Cxx, tuve que “terminar” el programador. No grabé una nueva placa de circuito impreso, simplemente agregué los elementos necesarios en la placa de circuito impreso. Esto es lo que pasó.

El núcleo del dispositivo es un microcontrolador. PIC18F2550-I/SP.

Este es el único chip del dispositivo. Es necesario "actualizar" MK PIC18F2550. Esta sencilla operación genera confusión en muchos, pues surge el problema del llamado “huevo y la gallina”. Un poco más tarde os cuento cómo lo solucioné.

Listado de piezas para el montaje del programador. En la versión móvil, arrastre la tabla hacia la izquierda (deslice el dedo de izquierda a derecha) para ver todas sus columnas.

Nombre Designación Clasificación/Parámetros Marca o tipo de artículo
Para la parte principal del programador.
Microcontrolador DD1 microcontrolador de 8 bits PIC18F2550-I/SP
transistores bipolares VT1, VT2, VT3 KT3102
VT4 KT361
Diodo VD1 KD522, 1N4148
diodo Schottky VD2 1N5817
LED HL1, HL2 cualquier 3 voltios, rojo Y verde colores brillantes
Resistencias R1, R2 300 ohmios
R3 22 kOhmios
R4 1 kiloohmio
R5, R6, R12 10 kOhmios
R7, R8, R14 100 ohmios
R9, R10, R15, R16 4,7 kOhmios
R11 2,7 kiloohmios
R13 100 kOhmios
Condensadores C2 0,1 μ K10-17 (cerámica), análogos importados
C3 0,47 micras
Condensadores electrolíticos C1 100uF * 6,3V K50-6, análogos importados
C4 47 uF * 16 V
Inductor (estrangulador) L1 680 µH tipo unificado EC24, CECL o casero
resonador de cuarzo ZQ1 20MHz
Toma USB XS1 tipo USB-BF
Saltador XT1 cualquier tipo de "saltador"
Para panel de instalación de microcontrolador (MK)
Panel ZIF XS1 cualquier panel ZIF de 40 pines
Resistencias R1 2 kiloohmios MLT, MON (potencia de 0,125 W y superior), análogos importados
R2, R3, R4, R5, R6 10 kOhmios

Ahora un poco sobre los detalles y su finalidad.

Verde El LED HL1 se enciende cuando se aplica energía al programador y rojo El LED HL2 se emite cuando se transfieren datos entre la computadora y el programador.

Para darle versatilidad y confiabilidad al dispositivo, se utiliza una toma USB XS1 tipo “B” (cuadrada). La computadora utiliza una toma USB tipo A. Por lo tanto, es imposible confundir los enchufes del cable de conexión. Esta solución también contribuye a la fiabilidad del dispositivo. Si el cable queda inutilizable, se puede reemplazar fácilmente por uno nuevo sin tener que recurrir a soldaduras ni trabajos de instalación.

Como inductor L1 de 680 µH, es mejor utilizar uno ya preparado (por ejemplo, tipos EC24 o CECL). Pero si no puede encontrar un producto terminado, puede fabricar el acelerador usted mismo. Para hacer esto, debe enrollar entre 250 y 300 vueltas de cable PEL-0.1 en un núcleo de ferrita de un inductor tipo CW68. Vale la pena considerar que debido a la presencia de PWM con retroalimentación, no hay necesidad de preocuparse por la precisión de la clasificación de inductancia.

El voltaje para la programación de alto voltaje (Vpp) de +8,5 a 14 voltios lo crea el regulador de llave. Incluye elementos VT1, VD1, L1, C4, R4, R10, R11. Los pulsos PWM se envían desde el pin 12 del PIC18F2550 a la base VT1. La retroalimentación la proporciona el divisor R10, R11.

Para proteger los elementos del circuito del voltaje inverso de las líneas de programación cuando se usa un programador USB en modo ICSP (Programación en serie en circuito), se usa un diodo VD2. VD2 es un diodo Schottky. Debe seleccionarse con una caída de voltaje en la unión P-N de no más de 0,45 voltios. Además, el diodo VD2 protege los elementos del voltaje inverso cuando el programador se utiliza en modo de conversión USB-UART y analizador lógico.

Cuando use el programador exclusivamente para programar microcontroladores en el panel (sin usar ICSP), puede eliminar el diodo VD2 por completo (esto es lo que hice) e instalar un puente en su lugar.

La compacidad del dispositivo se debe al panel ZIF universal (Zero Insertion Force, sin esfuerzo de instalación).

Gracias a él, puede "cablear" un microcontrolador en casi cualquier paquete DIP.

El diagrama "Panel de instalación del microcontrolador (MK)" indica cómo se deben instalar en el panel los microcontroladores con diferentes carcasas. Al instalar el MK, debe prestar atención al hecho de que el microcontrolador en el panel está colocado de modo que la llave del chip esté en el lado de la palanca de bloqueo del panel ZIF.

Así es como necesita instalar microcontroladores de 18 pines (PIC16F84A, PIC16F628A, etc.).

Y aquí están los microcontroladores de 8 pines (PIC12F675, PIC12F629, etc.).

Si necesita actualizar un microcontrolador en un paquete de montaje en superficie (SOIC), puede usar un adaptador o simplemente soldar 5 pines al microcontrolador que generalmente se requieren para la programación (Vpp, Reloj, Datos, Vcc, GND).

Puede encontrar el dibujo terminado de la placa de circuito impreso con todos los cambios en el enlace al final del artículo. Al abrir el archivo en el programa Sprint Layout 5.0, usando el modo "Imprimir", no solo puede imprimir una capa con un patrón de conductores impresos, sino también ver la ubicación de los elementos en la placa de circuito impreso. Presta atención al jumper aislado que conecta el pin 6 de DD1 y el pin 21 del panel ZIF. Necesitas imprimir el dibujo del tablero. en imagen de espejo.

Puedes hacer una placa de circuito impreso usando el método LUT, así como un marcador para placas de circuito impreso, usando tsaponlak (esto es lo que hice yo) o el método del "lápiz".

Aquí hay una imagen del posicionamiento de los elementos en una placa de circuito impreso (en la que se puede hacer clic).

Al realizar la instalación, el primer paso es soldar puentes hechos de alambre de cobre estañado, luego instalar elementos de bajo perfil (resistencias, condensadores, cuarzo, conector de clavija ISCP), luego transistores y un MK programado. El último paso es instalar el panel ZIF, la toma USB y sellar los cables con aislamiento (puentes).

"Firmware" del microcontrolador PIC18F2550.

Archivo de firmware - PK2V023200.hexadecimal debe escribir el PIC18F2550I-SP MK en la memoria utilizando cualquier programador que admita microcontroladores PIC (por ejemplo, Extra-PIC). Utilicé el programador JDM JONIC PROG y el programa WinPic800.

Puede cargar el firmware al MCU PIC18F2550 utilizando el mismo programador propietario PICkit2 o su nueva versión PICkit3. Naturalmente, puedes hacer esto con un PICkit-2 Lite casero, si uno de tus amigos logró ensamblarlo antes que tú :).

También vale la pena saber que el “firmware” del microcontrolador PIC18F2550-I/SP (archivo PK2V023200.hexadecimal) se escribe al instalar el programa PICkit 2 Programmer en una carpeta junto con los archivos del propio programa. Ubicación aproximada del archivo PK2V023200.hex - "C:\Archivos de programa (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . Para aquellos que tienen instalada una versión de Windows de 32 bits en su PC, la ruta de ubicación será diferente: "C:\Archivos de programa\Microchip\PICkit 2 v2\PK2V023200.hex" .

Bueno, si no pudiste resolver el problema del "huevo y la gallina" utilizando los métodos propuestos, entonces puedes comprar un programador PICkit3 ya preparado en el sitio web de AliExpress. Allí cuesta mucho más barato. Escribí sobre cómo comprar piezas y kits electrónicos en AliExpress.

Actualización del firmware del programador.

El progreso no se detiene y de vez en cuando Microchip lanza actualizaciones para su software, incluido el programador PICkit2, PICkit3. Por supuesto, también podremos actualizar el programa de control de nuestro PICkit-2 Lite casero. Para hacer esto necesitarás el programa Programador PICkit2. Qué es y cómo utilizarlo, un poco más adelante. Mientras tanto, unas palabras sobre lo que se debe hacer para actualizar el firmware.

Para actualizar el software del programador es necesario cerrar el puente XT1 del programador cuando esté desconectado del ordenador. Luego conecte el programador a la PC e inicie PICkit2 Programmer. Cuando XT1 está cerrado, el modo se activa. gestor de arranque para descargar la nueva versión del firmware. Luego en PICkit2 Programmer, a través del menú “Herramientas” - “Descargar sistema operativo PICkit 2”, abra el archivo hexadecimal previamente preparado del firmware actualizado. A continuación, se producirá el proceso de actualización del software del programador.

Después de la actualización, debe desconectar el programador de la PC y quitar el puente XT1. En modo normal el jumper está abierto.. Puede encontrar la versión del software del programador a través del menú "Ayuda" - "Acerca de" en el programa PICkit2 Programmer.

Se trata de cuestiones técnicas. Y ahora sobre el software.

Trabajando con el programador. Programador PICkit2.

Para trabajar con el programador USB, necesitaremos instalar el programa PICkit2 Programmer en el ordenador. Este programa especial tiene una interfaz sencilla, es fácil de instalar y no requiere configuración especial. Vale la pena señalar que puede trabajar con el programador utilizando el entorno de desarrollo MPLAB IDE, pero para flashear/borrar/leer el MK, basta con un programa simple: PICkit2 Programmer. Recomiendo.

Después de instalar el programa Programador PICkit2, conecte el programador USB ensamblado a la computadora. Al mismo tiempo se iluminará verde LED ("encendido"), y el sistema operativo reconoce el dispositivo como "Programador de microcontroladores PICkit2" e instalar los controladores.

Inicie el programa programador PICkit2. Debería aparecer una inscripción en la ventana del programa.

Si el programador no está conectado, la ventana del programa mostrará un mensaje aterrador y breves instrucciones "¿Qué hacer?" en Inglés.

Si el programador está conectado a un ordenador con un MK instalado, el programa lo detectará al iniciarlo y nos lo notificará en la ventana del Programador PICkit2.

¡Felicidades! Se ha dado el primer paso. Y hablé sobre cómo utilizar el programa Programador PICkit2 en un artículo aparte. Próximo paso .

Archivos requeridos:

    Manual de usuario de PICkit2 (ruso) toma o.

Con el desarrollo de la tecnología informática, cada vez hay menos ordenadores equipados con puertos COM y LPT. Esto, a su vez, causa dificultades, en particular para los radioaficionados, asociadas con el emparejamiento de herramientas de programación de microcontroladores con una computadora personal.

Este artículo describe un programador USB para microcontroladores AVR, que puede ensamblar usted mismo. Está construido sobre un microcontrolador Atmega8 y es capaz de funcionar desde el conector USB de una computadora. Este programador es compatible con STK500 v2.

Descripción del programador USB

El programador USB está construido sobre una placa hecha de fibra de vidrio de una cara. Hay 2 puentes en la placa: uno está ubicado debajo del conector SPI y el segundo puente está ubicado cerca del mismo conector.

Una vez selladas todas las piezas, debe actualizar el microcontrolador Atmega8 con el firmware que se encuentra al final del artículo. Los fusibles que deben configurarse al programar el microcontrolador Atmega8 deberían verse así:

  • SU1 = 0
  • BOTASZ1 = 0
  • BOTASZ0 = 0
  • COMPRAR = 0
  • ESPIEN = 0

Hay que recordar que en algunos programas la configuración de los fusibles se configura en sentido contrario a este. Por ejemplo, en el programa CodeVisionAVR debe marcar las casillas junto a los fusibles mencionados anteriormente, y en el programa PonyProg viceversa.

Programación de Atmega8 a través del puerto LPT de una computadora

La forma más rápida y económica de programar Atmega8 es utilizar un programador LPT para AVR. A continuación se muestra un diagrama similar.

El microcontrolador funciona mediante un simple regulador de voltaje 78L05. Puede utilizar el programa UniProf como shell de programación.

Cuando enciende el programa por primera vez y cuando el controlador no está conectado, al presionar el botón "LPTpins", debe configurar los pines del puerto LPT de la siguiente manera:

Cuando se inicia UniProf, determina automáticamente el tipo de microcontrolador. Cargamos el firmware Atmega8_USB_prog.hex en la memoria de UniProf y rechazamos la conexión del archivo EEPROM.

Configuramos los fusibles de la siguiente manera (para el programa UniProF) presionando el botón “FUSIBLE”:

Para recordar la configuración, presione los tres botones "Escribir". Luego, al hacer clic en "Borrar", primero borramos la memoria del microcontrolador que se está actualizando. Después de esto, haga clic en "Prog" y espere a que se complete el firmware.

Configurar un programador USB

Después de actualizar nuestro microcontrolador, debe instalarse en la placa del programador USB. A continuación, conectamos el programador al puerto USB del ordenador, pero aún no le suministramos energía.

Configuración del puerto:

Configuración de terminales:

Configuración ASCII:

Ahora, una vez completados todos los procedimientos, suministramos energía al programador USB. El LED HL1 debería parpadear 6 veces y luego permanecer encendido.

Para verificar la conexión entre el programador USB y la computadora, presione la tecla "Enter" 2 veces en el programa HyperTerminal. Si todo está bien deberíamos ver la siguiente imagen:

Si este no es el caso, revise nuevamente la instalación, especialmente la línea TxD.

A continuación entramos en la versión 2.10 del programador, ya que sin ella el programador no funcionará con programas de “nivel superior”. Para hacer esto, ingrese “2” y presione “Enter”, ingrese “a” (inglés) y presione “Enter”.

El programador USB es capaz de reconocer la conexión de un microcontrolador programable. Esto se hace monitoreando el "pull-up" de la señal de reinicio a la fuente de energía. Este modo se activa y desactiva de la siguiente manera:

  • “0”, “Entrar”: el modo está deshabilitado.
  • “1”, “Entrar”: el modo está habilitado.

Cambio de velocidad de programación (1MHz):

  • “0”, “Entrar” – velocidad máxima.
  • “1”, “Enter” – velocidad reducida.

Esto completa el trabajo preparatorio, ahora puede intentar actualizar algún microcontrolador.

(descargas: 1.203)

Un día decidí montar un medidor LC sencillo para pic16f628a y, naturalmente, había que flashearlo con algo. Solía ​​tener una computadora con un puerto COM físico, pero ahora solo tengo USB y una placa pci-lpt-2com. Para empezar, monté un programador JDM simple, pero resultó que no quería funcionar ni con la placa pci-lpt-com ni con el adaptador usb-com (bajo voltaje de señales RS-232). Luego me apresuré a buscar programadores de imágenes USB, pero resultó que todo se limitaba al uso del costoso pic18f2550/4550, que naturalmente no tenía, y es una lástima usar MK tan caros si es muy Rara vez hago algo en los picos (prefiero av- Sí, flashearlos no es un problema, son mucho más baratos y me parece que es más fácil escribir programas en ellos). Después de profundizar durante mucho tiempo en Internet en uno de los muchos artículos sobre el programador EXTRA-PIC y sus diversas variantes, uno de los autores escribió que extrapic funciona con cualquier puerto com e incluso con un adaptador usb-com.

El circuito de este programador utiliza un convertidor de nivel lógico max232.

Pensé que si usas un adaptador USB, sería muy estúpido convertir el USB a usart TTL, TTL a RS232, RS232 nuevamente a niveles TTL dos veces, si pudieras tomar las señales TTL del puerto RS232 del USB. chip convertidor usado.

Así que lo hice. Tomé el chip CH340G (que tiene las 8 señales del puerto de comunicaciones) y lo conecté en lugar del max232. Y esto es lo que sucedió.

En mi circuito hay un jumper jp1, que no está en el pico extra, lo instalé porque no sabía cómo se comportaría la salida TX a nivel TTL, así que permití invertirlo en la NAND libre restante. elemento y, como resultó, era cierto que hay uno lógico en el pin TX y, por lo tanto, hay 12 voltios en el pin VPP cuando se enciende, pero durante la programación no sucederá nada (aunque puede invertir TX en el software) .

Después de montar el tablero, llegó el momento de realizar las pruebas. Y aquí vino la principal decepción. El programador fue identificado inmediatamente (con el programa ic-prog) y empezó a trabajar, ¡pero muy lentamente! En principio, como se esperaba. Luego, en la configuración del puerto COM configuré la velocidad máxima (128 kilobaudios) y comencé a probar todos los programas encontrados para JDM. Como resultado, PicPgm resultó ser el más rápido. Mi pic16f628a se actualizó por completo (hexadecimal, eeprom y configuración) además de verificación durante aproximadamente 4 a 6 minutos (la lectura es más lenta que la escritura). IcProg también funciona, pero más lento. No hubo errores de programación. También intenté flashear la eeprom 24c08, el resultado es el mismo: todo encaja, pero muy lentamente.

Conclusiones: el programador es bastante simple, no contiene piezas costosas (CH340 - 0,3-0,5 $, k1533la3 generalmente se puede encontrar entre la basura de radio), funciona en cualquier computadora, computadora portátil (e incluso puede usar tabletas con Windows 8/10 ). Contras: es muy lento. También requiere alimentación externa para la señal VPP. Como resultado, me pareció que para el parpadeo poco frecuente de picos, esta es una opción fácil de repetir y económica para quienes no tienen a mano una computadora antigua con los puertos necesarios.

Aquí hay una foto del dispositivo terminado:

Como dice la canción: "Lo hice a partir de lo que era". El conjunto de piezas es muy diverso: tanto SMD como DIP.

Para aquellos que se atrevan a repetir el circuito, casi cualquiera servirá como convertidor usb-uart (ft232, pl2303, cp2101, etc.), en lugar de k1533la3, k555 servirá, creo que incluso la serie k155 o un análogo extranjero. 74als00, incluso puede funcionar con elementos lógicos NOT del tipo k1533ln1. Estoy adjuntando mi propia placa de circuito impreso, pero cualquiera puede volver a dibujar allí el cableado de los elementos que estaban disponibles.

Lista de radioelementos

Designación Tipo Denominación Cantidad NotaComerciomi bloc de notas
IC1 ChipCH340G1 al bloc de notas
IC2 ChipK1533LA31 al bloc de notas
VR1 Regulador lineal

LM7812

1 al bloc de notas
VR2 Regulador lineal

LM7805

1 al bloc de notas
VT1 transistores bipolares

KT502E

1 al bloc de notas
VT2 transistores bipolares

KT3102E

1 al bloc de notas
VD1-VD3 Diodo rectificador

1N4148

2 al bloc de notas
C1, C2, C5-C7 Condensador100 nF5 al bloc de notas
C3, C4 Condensador22 pF2 al bloc de notas
HL1-HL4 Diodo emisor de luzCualquier4 al bloc de notas
R1, R3, R4 Resistor

1 kiloohmio

3
22 de septiembre de 2011 a las 20:11

Programador USB en miniatura para microcontroladores AVR

  • Programación de microcontroladores

Así como un teatro comienza con una percha, la programación de microcontroladores comienza con la elección de un buen programador. Desde que comencé a dominar los microcontroladores de ATMEL, tuve que familiarizarme a fondo con lo que ofrecen los fabricantes. Ofrecen muchas cosas interesantes y sabrosas, sólo que a precios exorbitantes. Por ejemplo, una bufanda con un microcontrolador de veinte patas con un par de resistencias y diodos a modo de arnés cuesta como un "avión". Por tanto, surgió la cuestión del autoensamblaje del programador. Después de un largo estudio de los desarrollos de radioaficionados experimentados, se decidió ensamblar un programador USBASP probado, cuyo cerebro es el microcontrolador Atmega8 (también hay opciones de firmware para atmega88 y atmega48). El cableado mínimo del microcontrolador le permite ensamblar un programador bastante en miniatura que siempre puede llevar consigo, como una unidad flash.

El autor de este programador es el alemán Thomas Fichl, su página de desarrollo con diagramas, archivos de placas de circuito impreso y drivers.
Una vez que se decidió ensamblar un programador en miniatura, volví a dibujar el circuito para el microcontrolador Atmega8 en el paquete TQFP32 (el pin del microcontrolador difiere del pin del paquete DIP):

El puente J1 se utiliza si es necesario flashear un microcontrolador con una frecuencia de reloj inferior a 1,5 MHz. Por cierto, este saltador se puede eliminar por completo colocando la etapa 25 del MK en el suelo. Entonces el programador funcionará siempre a una frecuencia reducida. Personalmente, noté que programar a velocidad reducida lleva una fracción de segundo más y, por lo tanto, ahora no tiro el jersey, sino que coso constantemente con él.
Los diodos Zener D1 y D2 se utilizan para hacer coincidir los niveles entre el programador y el bus USB; funcionará sin ellos, pero no en todas las computadoras.
El LED azul indica que el circuito está listo para ser programado; el LED rojo se enciende durante la programación. Los contactos de programación están ubicados en el conector IDC-06, el pinout cumple con el estándar ATMEL para un conector ISP de 6 pines:

Este conector contiene contactos para alimentar dispositivos programables, aquí se toma directamente del puerto USB de la computadora, por lo que debes tener cuidado y evitar cortocircuitos. El mismo conector también se utiliza para programar el microcontrolador de control, para ello basta conectar los pines de Reset en el conector y en el microcontrolador (ver la línea de puntos roja en el diagrama). En el circuito del autor, esto se hace con un puente, pero no desordené el tablero y lo quité. Para un solo firmware, bastará con un simple puente de cable. El tablero resultó ser de doble cara y mide 45x18 mm.

El conector de programación y un puente para reducir la velocidad del programador se encuentran al final del dispositivo, esto es muy conveniente

Firmware del microcontrolador de control.
Entonces, después de ensamblar el dispositivo, lo más importante que queda es flashear el microcontrolador de control. Los amigos que todavía tienen computadoras con puerto LPT son muy adecuados para estos fines :) El programador de cinco cables más simple para AVR
El microcontrolador se puede flashear desde el conector de programación conectando los pines de reinicio del microcontrolador (pata 29) y el conector. Existe firmware para los modelos Atmega48, Atmega8 y Atmega88. Es recomendable utilizar una de las dos últimas piedras, ya que se suspendió el soporte para la versión Atmega48 y la última versión de firmware data de 2009. Y las versiones para las piedras 8 y 88 se actualizan constantemente, y el autor parece estar planeando agregar un depurador en circuito a la funcionalidad. El firmware lo obtenemos de la página alemana. Para cargar el programa de control al microcontrolador, utilicé el programa PonyProg. Al programar, es necesario configurar el cristal para que funcione desde una fuente de reloj externa a 12 MHz. Captura de pantalla del programa con configuración de puentes de fusibles en PonyProg:

Después de actualizar el firmware, el LED conectado a la pata 23 del microcontrolador debería encenderse. Esta será una señal segura de que el programador se ha programado correctamente y está listo para usar.

Instalación del controlador
La instalación se realizó en una máquina con Windows 7 y no surgieron problemas. Cuando se conecte a su computadora por primera vez, aparecerá un mensaje indicando que se ha detectado un nuevo dispositivo y le solicitará que instale un controlador. Seleccione la instalación desde la ubicación especificada:

Aparecerá instantáneamente una ventana con una advertencia de que el controlador que se está instalando no tiene una firma digital para los pequeños software:

Ignoramos el aviso y continuamos con la instalación, tras una breve pausa aparecerá una ventana informándonos que la operación de instalación del controlador se ha completado con éxito.

Eso es todo, el programador ya está listo para usar.

Programador Khazama AVR
Para trabajar con el programador, elegí el flasher del programador Khazama AVR. Un programa maravilloso con una interfaz minimalista.

Funciona con todos los microcontroladores AVR populares, le permite flashear flash y eeprom, ver el contenido de la memoria, borrar el chip y también cambiar la configuración de los bits de los fusibles. En general un conjunto totalmente estándar. La configuración del fusible se realiza seleccionando la fuente del reloj de la lista desplegable, por lo que la probabilidad de bloquear el cristal por error se reduce drásticamente. Los fusibles también se pueden cambiar colocando casillas de verificación en el campo inferior, pero no se pueden colocar casillas de verificación en una configuración inexistente, y esto también es una gran ventaja en términos de seguridad.

Los fusibles se escriben en la memoria MK, como puede imaginar, presionando el botón Escribir todo. El botón Guardar guarda la configuración actual y el botón Cargar devuelve la configuración guardada. Es cierto que no se me ocurrió ningún uso práctico para estos botones. El botón Default está diseñado para registrar la configuración de fusibles estándar, aquella con la que vienen de fábrica los microcontroladores (normalmente 1 MHz del RC interno).
En general, durante todo el tiempo que llevo usando este programador, ha demostrado ser el mejor en cuanto a estabilidad y velocidad de funcionamiento. Funcionó sin problemas tanto en una PC de escritorio antigua como en una computadora portátil nueva.

Puede descargar el archivo PCB en SprintLayout usando