Tabla de contenido:
- Paso 1: características y piezas
- Paso 2: Diseño, esquema y construcción de la placa de pruebas
- Paso 3: uso y aplicación
Video: Programador VUSBTiny AVR SPI: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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
* 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
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
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:
Arduino como ISP -- Grabar archivo hexadecimal en AVR -- Fusible en AVR -- Arduino como programador: 10 pasos
Arduino como ISP || Grabar archivo hexadecimal en AVR || Fusible en AVR || Arduino como programador: ……………………… SUSCRÍBETE A mi canal de YouTube para ver más videos …….. Este artículo se trata de arduino como isp. Si desea cargar un archivo hexadecimal o si desea configurar su fusible en AVR, entonces no necesita comprar un programador, puede hacerlo
Programador AVR con alto voltaje: 17 pasos
Programador AVR con alto voltaje: este es mi primer Instructable. La placa que diseñé es un programador AVR. La placa combina las funciones de 4 placas prototipo independientes que he construido en los últimos años: - Un programador AVR de alto voltaje, utilizado principalmente en dispositivos ATtiny para configurar fu
Cómo cargar código C a ِ AVR usando Arduino Uno como programador: 6 pasos
Cómo cargar el código C a ِ AVR usando Arduino Uno como programador: Hola a todos: D Aquí compartiré una forma simple de programar cualquier chip AVR usando Arduino Uno R3 Todo lo que necesita para grabar el código en su microcontrolador es Arduino Uno en lugar de comprar uno específico programador que cuesta mucho
Programador AVR STK500 económico para Atmel Studio: 7 pasos
Programador AVR STK500 barato para Atmel Studio: Atmel Studio es una herramienta poderosa para hacer programas AVR, pero escribir un programa es el primer paso. Para usar su programa, debe hacer un circuito y transferir su código al microcontrolador. Puede programar su AVR desde Atmel Studio mediante el uso de
Programador ISP para microcontroladores AVR: 4 pasos
Programador ISP para microcontroladores AVR: Un programador de microcontroladores es un dispositivo de hardware acompañado de software que se utiliza para transferir el código de lenguaje de máquina al microcontrolador / EEPROM desde la PC. El programador ISP para microcontroladores AVR es un programador en serie que utiliza el s