Après que j’ai été vraiment marre toujours faire la connexion MOSI, MISO, Reset, SCK, SCR et au sol avec des fils afin de programmer une Attiny85/45/13, j’ai acheté un programmateur USBASP (cher).
N’ai pas que cela fonctionne, toujours obtenu le message « Aïe, signature du périphérique non valide » redouté, qui est généralement le signe d’une mauvaise connexion. Couldnt trouver rapidement, peut-être un câble pourri, mais je ne voulais pas perdre plus de temps, donc j’ai mis en place un programmeur Attiny rapide et simple.
Je sais il y a des dizaines de circuits et les dessins qui circulent sur internet, mais j’ai tout simplement jamais eu le temps de faire réellement un, donc si vous êtes comme moi, c’est juste un petit coup pour vous dire de « just do it » il faut peut-être 10 minutes de ferraille au programmeur.
J’ai reçu ma source d’inspiration d’un site espagnol d’un gars qui m’a inspiré pour construire mon premier Arduino, mais quand j’ai vérifié, les veroboard-illustrations de son programmeur avaient disparus.
Pas de panique, tout simple pour faire un moi-même.
L’idée est un petit bout de veroboard qui se branche dans les en-têtes nécessaires de l’Arduino. Un 20hole x 9 bandes pièce suffit, mais j’ai fait que 22 trous, juste pour donner quelques petites « ailes » pour m’aider à sortir.
BOM
20 x 9 veroboard
broches d’en-tête mâle 7
broches d’en-tête mâle 6
2 LEDs
2 résistances 560-1k
1 condensateur électrolytique 10 uF (en fait que j’ai utilisé un 33uF, qui a fonctionné aussi bien)
support dil IC 8 broches
Le FAI de l’Arduino offre 3 LEDs pour garder une trace de statut. J’ai implémenté 2: le rythme cardiaque et l’erreur (D9 et D8). Ajoutant la LED « Programmation » est un peu plus compliqué parce qu’il faut D7, qui est juste de l’autre côté du fossé non normalisée dans les en-têtes de l’Arduino, mais si vous voulez, vous pouvez ajouter une épingle de plier légèrement à fente en D7.
Le jury se branche facilement, mais n’est pas parfaitement droit à cause de comment les en-têtes arduino s’alignent, mais il fonctionne très bien.
Juste un mot sur le condensateur. Afin d’éviter que l’Arduino se réinitialise lorsque le programme attiny est téléchargé, la broche de remise à zéro doit rester élevée. Il existe deux façons comment cela se faits habituellement : une résistance (120 ohms) à la SCR ou un condensateur (10uF) entre la terre et Reset. Les deux fonctionnent bien.
Toutefois, le condensateur est également la raison que vous ne pouvez pas télécharger le programme ArduinoISP avec la carte insérée, il faut sortir. Vous pouvez bien sûr ajouter un cavalier à la Commission, ou un petit interrupteur, de déconnecter temporairement le condensateur
Important!!!
Rendre sûr et double Vérifiez que vous n’avez pas oublié de faire toutes les coupes nécessaires dans le veroboard. Vérifiez après chaque coupe, utilisez un multimètre si nécessaire.
Après qu’il vous soudé tout, vérifiez à nouveau qu’il n’y a pas de connexions errants ou shorts. La raison en est que vous ne souhaitez pas court des broches sur votre arduino ou connecter les broches à l’endroit où ils ne devraient pas être branchés. Vous ne voulez pas que vos broches de sortie numérique pour être connecté à la masse Lorsque vous tirez sur eux est élevé.
De toute façon, générez-le hier et fonctionne très bien. J’ai programmé plus Attiny en une demi journée que j’ai fait dans ma vie avant.
Pour les personnes qui débutent dans la programmation un Attiny : les étapes sont les suivantes.
Assurez-vous que vous avez un noyau Attiny installé (il y en a beaucoup, essayez ici ou ici , vous pouvez également vérifier ici)
Enlever la carte de programmation et télécharger le programme « ArduinoISP » vers votre Arduino.
Insérer la carte de programme et charger le croquis Attiny désiré.
Choisir le bon réglage Attiny sous « Outils-Conseil »
Allez dans "téléchargement de fichier à l’aide de Programmer' pour les IDE-les versions précédentes, cela pourrait être juste « Upload »
Vous pouvez cocher ici ou ici pour plus d’informations sur la programmation.
est important de savoir que même avec une programmation réussie, vous obtiendrez deux messages d’erreur :
Ignorez les deux messages d’erreur :
« avrdude : s’il vous plaît définir les signaux PAGEL et BS2 dans le fichier de configuration pour la partie ATtiny85 ".
ignorez ces messages.
Si vous êtes perfectionniste, vous pouvez résoudre ces messages d’erreur par edit file avrdude.conf, dans
(windows) C:\Program Files (x86)\arduino-1.0.6\hardware\tools\avr\etc
(Ubuntu) Home\Arduino-1.06\hardware\tools
Trouvez le mot Attiny85 et descendre jusqu'à de quelques lignes :
chip_erase_delay = 4500 ;
et d’ajouter sous ces lignes :
# Ajouté afin d’éliminer le bug à construire.
Pagel = 0xB3 ;
BS2 = 0xB4 ;
Trouver cette section plus bas et ajoutez le code en surbrillance :
mémoire « lock »
taille = 1 ;
écrire = "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 j’ai j’ai j’ai j’ai j’ai j’ai" ;
lu = « 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 ;
;
Merci baelza.bubba pour me mettre sur la bonne voie pour cela. Si vous avez mal compréhension, vérifiez les deux images. Comprendre que vous n’avez pas à modifier le fichier, cela fonctionnera. L’altération est juste pour se débarrasser des messages d’erreur.
Juste une astuce: lorsque j’étais programmation de Attiny j’ai utilisé le réglage de l’horloge interne à 8 MHz et trouvé mon temps estimés pour être loin. coïncidence ou pas, il semblait qu’ils étaient un facteur 8 hors (plus lent). Quand j’ai essayé à 1 MHz, tout semblait OK à nouveau. Ceci est causé par ce qui suit : le fonctionnement standard de vitesse pour le Attiny est 1Mhz, et il obtient qu’en divisant l’oscillateur interne par 8. Lorsque j’ai présumé que le 8MHz serait réglé les fusibles correct de dire le Attiny qu'il ne devrait pas diviser l’oscillateur interne plus, il semble qu’on ne peut pas le faire. La solution serait tout d’abord définir les fusibles appropriées en sélectionnant « graver bootloader » qui ne brûle pas le bootloader, mais qu’il ne définit pas les fusibles de droite.
Juste un autre truc: il y a différents cœurs Attiny et ne sont pas tous des implémentations complets. Si vous avez l’intention d’utiliser la bibliothèque « OneWire », vous pourriez rencontrer erreurs comme :
/Libraries/OneWire/OneWire.cpp:105 : erreur: 'digitalPinToBitMask' n’a pas été déclarée dans cette portée
/Libraries/OneWire/OneWire.cpp:106 : erreur: 'digitalPinToPort' n’a pas été déclarée dans cette portée
/Libraries/OneWire/OneWire.cpp:106 : erreur: 'portInputRegister' n’a pas été déclarée dans cette portée
Il y a une solution facile pour cela :
• Recherchez et ouvrez OneWire.h
• Localiser cette section de code vers le haut...
#if ARDUINO > = 100
#include « Arduino.h » / / pour delayMicroseconds, digitalPinToBitMask, etc.
#else #include « WProgram.h » / / pour delayMicroseconds
#include « pins_arduino.h » / / pour digitalPinToBitMask, etc.
#endif
• Changement dans :
#if ARDUINO > = 100
#include « Arduino.h » / / pour delayMicroseconds, digitalPinToBitMask, etc.
#include « pins_arduino.h » / / pour digitalPinToBitMask, etc.
#else #include « WProgram.h » / / pour delayMicroseconds
#include « pins_arduino.h » / / pour digitalPinToBitMask, etc.
#endif
• Enregistrer et fermer OneWire.h
• Pas besoin de redémarrer l’IDE Arduino
Le problème n’est pas avec la bibliothèque, mais avec le noyau. C’est juste plus facile à corriger dans la bibliothèque
Et encore une autre astuce : Si vous essayez d’utiliser le Attiny avec la bibliothèque de LCD de F. Malpertida, vous pouvez exécuter dans certains messages d’erreur qui doivent faire avec les fichiers print.h et print.cpp du noyau.
Ceux-ci peuvent être fixés. Il y a deuxpublications sur la façon de le faire. Infos utiles iciaussi.
Et une autre astuce concernant le Attiny13
Si vous programmez l’Attiny13 et vous trouverez l’analogRead ne fonctionne ne pas, ajoutez « analogReference(0) » dans le programme d’installation.