Después de que yo estaba realmente harto siempre haciendo la conexión MOSI, MISO, Reset, SCK, Vcc y tierra con cables para programar un Attiny85/45/13, he comprado un programador de atmega32 de USBASP (realmente barato).
No conseguir que funcione, siempre consiguió el temido mensaje de 'UH, firma de dispositivo no válido', que es generalmente un signo de una mala conexión. Couldnt localizar rápidamente, tal vez un cable podrido, pero no quería perder más tiempo, así que junté un programador Attiny rápido y sencillo.
Sé que hay decenas de circuitos y diseños flotando alrededor en el internet, pero nunca tengo a realmente hacer una, así que si eres como yo, esto es un empujoncito para decirle a 'just do it toma tal vez 10 minutos de chatarra a programador.
Tengo mi inspiración de un sitio en Español de un chico que me inspiró a crear mi primer Arduino, pero cuando me registré, las placa perforada-ilustraciones de su programador se habían ido.
Sin sudar, una simple hacer uno yo mismo.
La idea es un pequeño trozo de placa perforada que se conecta en las cabeceras necesarias de Arduino. 20hole pedazo de 9 tiras de x es bastante, pero hice eso agujeros 22, por poner un par de pequeños 'alas' para ayudarme a sacarlo.
LISTA DE MATERIALES
placa perforada 20 x 9
clavijas macho jefe 7
clavijas macho encabezado 6
2 LEDs
2 resistencias de 560-1k
1 condensador electrolítico de 10 uF (de hecho que utilicé un 33uF, que funcionó tan bien)
titular de dil IC de 8 pines
El ISP de Arduino ofrece 3 LEDs para hacer un seguimiento de estado. He implementado 2: el latido del corazón y el Error (D9 y D8). Agregando el LED 'Programación' es un poco más de una molestia ya que necesita D7 que es justo al otro lado de la brecha no normalizada en las cabeceras de Arduino, pero si lo desea puede añadir un pin ligeramente curva a ranura en D7.
La Junta Directiva y se conecta fácilmente, pero no es completamente recta debido a cómo se alinean los encabezados de arduino, pero funciona muy bien.
Sólo una palabra en la condensador. Para evitar que el Arduino se restablecerá cuando se carga el programa attiny, el pin de reset debe mantenerse alta. Cómo que se realiza de dos maneras: una resistencia (120 ohmios) para el Vcc o un condensador (10uF) entre la tierra y la reiniciar. Ambos funcionan bien.
Sin embargo, el condensador es también la razón por la que no puede cargar el programa ArduinoISP con la tarjeta conectada, así que tienes que tirar de ella. Por supuesto podría añadir un puente a la Junta, o un pequeño interruptor para desconectar temporalmente el condensador
Importante!!!!!!
Hacer seguro y compruebe que no ha olvidado a hacer todos los cortes necesarios en la placa perforada. Comprobar después de cada corte, utilice un multimetro si es necesario.
Después de que soldados todos, revise de nuevo que no hay conexiones callejeros ni pantalones cortos. La razón de esto es que no quieren corto las patas en su arduino o conectar las patas donde no debe estar conectados. No desea que cualquiera de sus pernos de la salida Digital para conectarse a tierra cuando les tira alto.
De todos modos, construir ayer y funciona muy bien. Yo he programado más Attiny en medio día lo hice en mi vida antes.
Para las personas que son nuevas a la programación un Attiny: los pasos son los siguientes.
Asegúrese de tener un núcleo Attiny instalado (hay muchos, prueba aquí o aquí , también puede que desee revisar)
Remueva la tarjeta de programación y cargarlo en el programa 'ArduinoISP' su Arduino.
Inserte la Junta de programa y carga el bosquejo Attiny deseado.
Elegir el ajuste correcto del Attiny bajo 'Herramientas-Board'
Ir a 'Upload de archivos usando programador' en más viejas versiones de IDE puede ser sólo 'subir'
Puede comprobar aquí o aquí para más información sobre la programación.
es importante saber que incluso con una programación exitosa, recibirás dos mensajes de error:
Ignorar los mensajes de dos error:
"avrdude: por favor definir señales de PAGEL y BS2 en el archivo de configuración por parte ATtiny85".
simplemente ignorar esos mensajes.
Si eres perfeccionista, puede resolver estos mensajes de error por editar archivo avrdude.conf, encontrado en
(windows) C:\Program Files (x86)\arduino-1.0.6\hardware\tools\avr\etc
(Ubuntu) Home\Arduino-1.06\hardware\tools
Encontrar la palabra Attiny85 y bajar hasta unas líneas:
chip_erase_delay = 4500;
y añadir a continuación de estas líneas:
# Añadido para eliminar el error de construir.
Pagel = 0xB3;
BS2 = 0xB4;
Encuentre esta sección más abajo y agregue el código resaltado:
memoria "lock"
tamaño = 1;
escribir = "1 0 1 0 1 1 0 0 1 1 1 x x x x x","x x x x x x x x 1 1 me me me me me me";
leer = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0","0 0 0 0 0 0 0 0 o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;
Baelza.bubba gracias por colocarme en el camino para. Si usted tiene conocimiento de problemas, compruebe las dos imágenes. Entiendo que no tienes que modificar el archivo, todo funcionará. La alteración es sólo para deshacerse de los mensajes de error.
Sólo un Consejo: cuando fui de programación del Attiny utiliza la configuración para el reloj interno de 8 MHz y mis horarios para estar lejos. coincidencia o no, parecía que eran un factor 8 apagado (más lento). Cuando intenté a 1 MHz, todo parecía OK otra vez. Esto es causado por lo siguiente: el funcionamiento estándar de la velocidad para el Attiny es 1Mhz, y lo que obtiene dividiendo el oscilador interno 8. Donde se presume que la configuración de 8MHz establecería los fusibles adecuados para contar el Attiny no divide el oscilador interno ya, parece que no puede hacer eso. La solución sería establecer primero los fusibles apropiados seleccionando 'burn bootloader' que no quema el bootloader, pero fijó los fusibles de la derecha.
Justo otro Consejo: hay varios núcleos Attiny y no todos son implementaciones completas. Si usted va a utilizar la biblioteca 'OneWire', se puede ejecutar en errores como:
/Libraries/OneWire/OneWire.cpp:105: error: 'digitalPinToBitMask' no se declaró en este ámbito
/Libraries/OneWire/OneWire.cpp:106: error: 'digitalPinToPort' no se declaró en este ámbito
/Libraries/OneWire/OneWire.cpp:106: error: 'portInputRegister' no se declaró en este ámbito
Hay una solución fácil para eso:
• Busque y abra OneWire.h
• Localizar en esta sección del código hacia la parte superior...
#if ARDUINO > = 100
#include "Arduino.h" / / para delayMicroseconds, digitalPinToBitMask, etc.
#else #include "WProgram.h" / / para delayMicroseconds
#include "pins_arduino.h" / / digitalPinToBitMask, etc.
#endif
• Cambio en:
#if ARDUINO > = 100
#include "Arduino.h" / / para delayMicroseconds, digitalPinToBitMask, etc.
#include "pins_arduino.h" / / digitalPinToBitMask, etc.
#else #include "WProgram.h" / / para delayMicroseconds
#include "pins_arduino.h" / / digitalPinToBitMask, etc.
#endif
• Guarde y cierre OneWire.h
• Sin necesidad de reiniciar el IDE de Arduino
El problema es no con la biblioteca, pero con la base. Es sólo más fácil de fijar en la biblioteca
Otra sugerencia: Si intenta utilizar el Attiny con la librería LCD de F. Malpertida, puede funcionar en algunos mensajes de error que tienen que ver con los archivos print.h y print.cpp de la base.
Estas pueden ser fijas. Hay dospublicaciones sobre cómo hacerlo. Información útil también aquí.
Y otro Consejo con respecto al Attiny13
Si usted está programando el Attiny13 y encuentra el analogRead no funciona, entonces añadir "analogReference(0)" en la configuración.