Tabla de contenido:

Programador VUSBTiny AVR SPI: 3 pasos
Programador VUSBTiny AVR SPI: 3 pasos

Video: Programador VUSBTiny AVR SPI: 3 pasos

Video: Programador VUSBTiny AVR SPI: 3 pasos
Video: flashing ATtiny85 with Tiny AVR Programmer 2024, Noviembre
Anonim
Programador VUSBTiny AVR SPI
Programador VUSBTiny AVR SPI

después de hacer un programador usbtiny isp y usarlo durante 6 meses, estaba pensando en hacer otro para llevar. Me gusta la simplicidad del diseño usbtiny isp, pero me gustaría hacerlo aún más pequeño y tener menos partes. Una cosa en el diseño original que quiero cambiar es eliminar el uso del cristal de reloj. Una solución que encontré es que los controladores v-usb admiten el oscilador interno de 16.5Mhz en dispositivos attiny25 / 45/85. así que empiezo este proyecto para que usbtiny isp emplee v-usb para la comunicación usb. los beneficios inmediatos son que ahorra espacio y tiene menos componentes (no más cristales). Descripción usbtiny de https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny es una implementación de software del USB de baja velocidad protocolo para los microcontroladores Atmel ATtiny. Por supuesto, también funcionará en la serie ATmega. El software está escrito para un AVR con frecuencia de 12 MHz. A esta frecuencia, cada bit del bus USB tarda 8 ciclos de reloj y, con muchos trucos, es posible decodificar y codificar las formas de onda USB mediante software. El controlador USB necesita aproximadamente de 1250 a 1350 bytes de espacio flash (sin incluir las cadenas de identificación opcionales), según la configuración y la versión del compilador, y 46 bytes de RAM (sin incluir el espacio de la pila). La interfaz C consta de 3 a 5 funciones, dependiendo de la configuración. La descripción de vusb de https://www.obdev.at/products/vusb/ V-USB es una implementación de software de un dispositivo USB de baja velocidad para Atmel's Microcontroladores AVR, lo que permite construir hardware USB con casi cualquier microcontrolador AVR, sin necesidad de ningún chip adicional. Vídeo sobre la construcción y el uso

Paso 1: características y piezas

Características y piezas
Características y piezas

* lógica de programación de usbtiny isp, soporte para avr-dude maduro * huella pequeña * componentes mínimos * dispositivos de potencia de destino tenga en cuenta que las líneas io al mcus de destino no están protegidas. Puede agregar resistencias de 1k-2k a SCK y MOSI y proteger contra posibles conexiones incorrectas. nl / ~ dicks / avr / usbtiny / lista de piezas * attiny45 / 85 (85 es más fácil de conseguir) * diodos zener de 3.6v (1n747, BZX79,..avoid 1W tipos) * 68ohm resistor x 2 * 1.5K resistor * mini tablero 170 puntos de conexión * cable usb (el cable de impresora usb de la tienda de dólar está bien) * resistencias de 1k / 2k para protección de líneas io (opcional) herramientas necesarias * un programador avr que funcione (sí, es un catch22, necesitamos uno para hacer uno) * entorno de programación avr de trabajo

Paso 2: Diseño, esquema y construcción de la placa de pruebas

Diseño, esquema y construcción de la placa de pruebas
Diseño, esquema y construcción de la placa de pruebas
Diseño, esquema y construcción de la placa de pruebas
Diseño, esquema y construcción de la placa de pruebas

construcción

* siga el diseño de la placa de pruebas, no hay componentes, 3 resistencias, 2 diodos, 1 tapa, más un mcu de 8 pines. * Obtenga un cable de impresora usb de la tienda de dólar para cortar el extremo de la impresora, habrá 4 cables expuestos, asegúrelos y conviértalos en un encabezado macho de 4 pines, lo usaremos para conectarlo a la placa de pruebas. consulte el esquema para la distribución y asignación de pines (J1). * cuidado con la polaridad del diodo.

construyendo y exhibiendo el proyecto

el proyecto se construyó en una caja lúcida de linux ubuntu con la cadena de herramientas avr-gcc. se supone que ya tiene un entorno de este tipo, o puede averiguar en Internet cómo configurar uno. los códigos fuente son gnu gpl v2 con licencia de herencia.

el código fuente sigue una convención recomendada por v-usb, puede descargar el paquete fuente vusbtiny.tgz y desmarcarlo en un directorio de proyecto. dentro de su directorio de origen, hay un main.c, que es mi versión del programador usbtiny modificado. y un subdirectorio usbdrv, que contiene la capa v-usb. tenga en cuenta el plazo de licencia de los dos proyectos anteriores al construir esto. mi fuente sobre la lógica del programador se basa en la versión de Dick Streefland y no en la versión ladyada (aunque son casi iguales).

para aquellos que no tienen una cadena de compilación, puede usar el siguiente binario

haga clic para descargar vusbtiny.hex

y use avrdude para actualizar el firmware

avrdude -c usbtiny -p t45 -e -V -U flash: w: usbtiny.hex

(si su dispositivo es un tiny85, reemplace -p t45 w / -p t85)

la fuente se puede descargar aquí haga clic para descargar vusbtiny.tgz

descomprime el paquete fuente en tu directorio de trabajo

tar -zxvf vusbtiny.tgz

* haga cd vsubtiny, para cambiar al directorio de trabajo de vusbtiny * ajust makefile para el dispositivo de destino de acuerdo con el chip que utilizará. es decir, PROGRAMMER_MCU = t45 o t85 * haga un make * adjunte su programador ISP favorito * modifique el archivo make y cambie sus parámetros avrdude si es necesario. el stock uno asume programador USBTiny. es decir, AVRDUDE_PROGRAMMERID = usbtiny * firmware flash a través de make install

después de actualizar el firmware, necesitamos configurar correctamente el fusible, estamos usando el reinicio del pin 1 como io en este proyecto

* reloj de ppl usado según lo requerido por la capa v-usb para sincronización usb * pin de reinicio deshabilitado ya que necesitamos usarlo como io

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

esta configuración deshabilita la programación adicional a través de 5V SPI ya que necesitamos el pin RESET (pin1) para io. necesitará acceso a un programador HVSP para recuperar el fusible.

Paso 3: uso y aplicación

Uso y aplicación
Uso y aplicación
Uso y aplicación
Uso y aplicación
Uso y aplicación
Uso y aplicación

flasheo directo en protoboard

Si está utilizando vusbtiny para flashear dispositivos AVR de 8 pines, puede simplemente presionar su dispositivo de destino en la parte superior del dispositivo programador. el programador ha sido diseñado para que los pines de programación coincidan con los objetivos. Sin embargo, hay un truco: necesitará aislar los pines 2 y 3 en la mcu del programador, ya que son los pines USB D + y D- que se conectan a la PC. Utilizo un corte de cinta adhesiva para lograr esto, lo puedes ver en las fotos. A continuación se muestra un tiny13v "montado" en el tiny45, listo para recibir firmware.

ISP parpadeando a través de un puente

para programar un circuito de destino a través de ISP (programación en el sistema), necesita un cable ISP. aquí no estoy usando los encabezados estándar de 2x3 o 2x5 pines. en su lugar, estoy usando un puente de 1x6 que es más compatible con la placa de pruebas, puede hacer un encabezado de pin de 2x3 o 2x5 asignándolos a J2 como se muestra en el diseño y los esquemas de la placa de pruebas. la siguiente foto muestra un tiny2313 listo para flashear a través de ISP.

solución de problemas

* ¿No se puede actualizar el firmware? verifique su programador original, es posible que deba ajustar el tiempo a través del indicador -B en avrdude. Intente leer el chip primero, puede ser un fusible defectuoso, puede ser que su chip necesite una señal de reloj externa. es posible que deba arreglar su chip de nuevo al primer valor predeterminado. * verifique las conexiones * si usa diferentes pines io, verifique el código y las conexiones * puede sustituir los diodos Zener con tipos de 500mw, 400mw * puede intentar reducir el valor R3 a 1.2K o menos * es más probable que encuentre problemas de sincronización de avrdude, intente -B bandera de avrdude, tener un cable USB más corto, todo ayuda

Recomendado: