LA CLOCHE

Il y en a qui ont lu cette news avant vous.
Abonnez-vous pour recevoir les derniers articles.
E-mail
Nom
Nom de famille
Aimeriez-vous lire The Bell
Pas de spam

Auparavant, j'utilisais AvrUsb500 de Petka (STK500) et AVR Studio 4 pour flasher les microcontrôleurs AVR.Tout allait bien jusqu'à ce que la puce FTDI FT232RL échoue et ne veuille pas fonctionner. Après cela, j'ai commencé à chercher des alternatives et je suis tombé sur Programmeur AVR Khazama et . J'ai tout de suite aimé le programme pour son minimalisme, il a une interface simple et intuitive. Petit et éloigné. Depuis lors, j'utilise ce merveilleux programmeur AVR.

Caractéristiques du programmeur Khazama AVR

Khazama fonctionne avec tous les microcontrôleurs AVR courants, vous permet de programmer flash et eeprom, de lire le contenu de la mémoire flash et eeprom, d'effacer la puce et de modifier la configuration des bits de fusible (fusibles et bits de verrouillage). Tout ce dont vous avez besoin pour flasher les microcontrôleurs AVR. Les fusibles sont configurés en sélectionnant la source d'horloge dans la liste déroulante, ainsi, la probabilité de "tuer" le contrôleur par erreur est fortement réduite. Les fusibles peuvent également être modifiés en plaçant des cases à cocher dans le champ inférieur, tandis que vous ne pouvez pas cocher une configuration inexistante, ce qui rend la configuration des fusibles plus sûre. Et c'est aussi un gros plus.

Fusibles d'enregistrement

Les fusibles sont écrits dans la mémoire du microcontrôleur en appuyant sur le bouton Write All. Il y a un bouton Enregistrer pour enregistrer la configuration actuelle, et Charger renvoie celle enregistrée. Le bouton par défaut sert à écrire une configuration de fusible standard, telle que les microcontrôleurs proviennent de l'usine, généralement à 1 MHz du RC interne.
En général, pendant toute la durée d'utilisation de ce programmeur, il s'est montré du meilleur côté en termes de stabilité, de sécurité et de vitesse. Je recommande de l'utiliser à tous ceux qui souhaitent programmer des microcontrôleurs AVR.

Comme le théâtre commence par un cintre, la programmation du microcontrôleur commence par le choix d'un bon programmeur. Depuis que je commence à maîtriser les microcontrôleurs ATMEL, j'ai dû me familiariser à fond avec ce que proposent les fabricants. Ils offrent beaucoup de choses intéressantes et savoureuses, mais à des prix très élevés. Par exemple, une écharpe avec un microcontrôleur à vingt pattes avec une paire de résistances et de diodes comme cerclage coûte comme un «avion». Par conséquent, la question s'est posée de l'auto-assemblage du programmeur. Après une longue étude des développements de radioamateurs expérimentés, il a été décidé d'assembler un programmeur USBASP bien établi, dont le cerveau est le microcontrôleur Atmega8 (il existe également des options de micrologiciel pour atmega88 et atmega48). La liaison minimale du microcontrôleur vous permet d'assembler un programmeur assez miniature, que vous pouvez toujours emporter avec vous comme une clé USB.

L'auteur de ce programmeur est l'Allemand Thomas Fichl, sa page de développement avec schémas, fichiers PCB et pilotes.
Une fois qu'il a été décidé d'assembler un programmeur miniature, j'ai redessiné le circuit du microcontrôleur Atmega8 dans le boîtier TQFP32 (le brochage du microcontrôleur est différent du brochage dans le boîtier DIP):

Le cavalier J1 est utilisé s'il est nécessaire de flasher le microcontrôleur avec une fréquence d'horloge inférieure à 1,5 MHz. Soit dit en passant, ce sauteur peut être complètement éliminé en plantant la 25e jambe du MK au sol. Ensuite, le programmateur travaillera toujours à une fréquence réduite. J'ai personnellement constaté que la programmation à vitesse réduite prend une fraction de seconde de plus, et donc maintenant je ne tire pas le pull, mais je couds constamment avec.
Les diodes Zener D1 et D2 servent à faire correspondre les niveaux entre le programmateur et le bus USB, cela fonctionnera sans eux, mais pas sur tous les ordinateurs.
La LED bleue indique que le circuit est prêt à être programmé, la LED rouge s'allume pendant la programmation. Les contacts pour la programmation sont amenés sur le connecteur IDC-06, le brochage correspond à la norme ATMEL pour un connecteur ISP 6 broches :

Ce connecteur possède des contacts pour l'alimentation des appareils programmables, ici il est directement prélevé sur le port USB de l'ordinateur, il faut donc faire attention à ne pas autoriser les courts-circuits. Le même connecteur sert également à la programmation du microcontrôleur de contrôle, pour cela il suffit de connecter les broches Reset sur le connecteur et sur le MK (voir la ligne pointillée rouge sur le schéma). Dans le schéma de l'auteur, cela se fait par un cavalier, mais je n'ai pas encombré le tableau et je l'ai retiré. Pour un seul firmware, un simple cavalier suffit. La planche s'est avérée être à double face, de taille 45x18 mm.

Le connecteur pour la programmation et un cavalier pour réduire la vitesse du programmateur sont placés sur l'extrémité de l'appareil, ce qui est très pratique

Firmware du microcontrôleur de contrôle
Ainsi, après avoir assemblé l'appareil, la chose la plus importante reste - de flasher le microcontrôleur de contrôle. À ces fins, les amis qui ont laissé des ordinateurs avec un port LPT sont bien adaptés :) Le programmeur à cinq fils le plus simple pour AVR
Le microcontrôleur peut être flashé à partir du connecteur de programmation en connectant les broches de réinitialisation du microcontrôleur (29e patte) et le connecteur. Un firmware existe pour les modèles Atmega48, Atmega8 et Atmega88. Il est conseillé d'utiliser l'une des deux dernières pierres, car le support de la version Atmega48 a été interrompu et la dernière version du firmware date de 2009. Et les versions des 8e et 88e pierres sont constamment mises à jour, et l'auteur semble prévoir d'ajouter un débogueur en circuit à la fonctionnalité. Nous prenons le firmware sur la page allemande. Pour télécharger le programme de contrôle sur le microcontrôleur, j'ai utilisé le programme PonyProg. Lors de la programmation, il est nécessaire de faire fonctionner le cristal à partir d'une source d'horloge externe à 12 MHz. Capture d'écran du programme avec les paramètres de cavalier de fusible dans PonyProg :

Après le firmware, la LED connectée à la 23ème patte du microcontrôleur doit s'allumer. Ce sera un signe certain que le programmeur a été flashé avec succès et est prêt à fonctionner.

Installation du pilote
L'installation a été effectuée sur une machine avec un système Windows 7 et aucun problème n'est survenu. Lors de la première connexion à un ordinateur, un message apparaîtra sur la découverte d'un nouveau périphérique, vous invitant à installer le pilote. Choisissez d'installer à partir de l'emplacement spécifié :

En un instant, une fenêtre apparaîtra avec un avertissement indiquant que le pilote en cours d'installation n'a pas de signature numérique pour les petits logiciels :

Nous marquons sur l'avertissement et continuons l'installation, après une courte pause une fenêtre apparaîtra vous informant de la réussite de l'opération d'installation du pilote

Tout, maintenant le programmeur est prêt à travailler.

Programmeur AVR Khazama
Pour travailler avec le programmateur, j'ai choisi le flasher Khazama AVR Programmer. Un programme merveilleux avec une interface minimaliste.

Il fonctionne avec tous les microcontrôleurs AVR populaires, vous permet de flasher le flash et l'eeprom, d'afficher le contenu de la mémoire, d'effacer la puce et également de modifier la configuration des bits de fusible. En général, un ensemble assez standard. Les fusibles sont configurés en sélectionnant la source d'horloge dans la liste déroulante, ainsi, la probabilité de verrouiller le cristal par erreur est fortement réduite. Les fusibles peuvent également être changés en plaçant des cases à cocher dans le champ inférieur, alors que vous ne pouvez pas placer de cases à cocher sur une configuration inexistante, et c'est également un gros plus en termes de sécurité.

L'enregistrement des fusibles dans la mémoire du MK, comme vous pouvez le deviner, est effectué en appuyant sur le bouton Write All. Le bouton Enregistrer enregistre la configuration actuelle et le bouton Charger renvoie celle enregistrée. Certes, je ne pouvais pas penser à une application pratique pour ces boutons. Le bouton par défaut est conçu pour écrire la configuration de fusible standard, telle que les microcontrôleurs viennent de l'usine (généralement 1 MHz du RC interne).
En général, pendant toute la durée d'utilisation de ce programmeur, il s'est montré du meilleur côté en termes de stabilité et de vitesse. Cela a fonctionné sans problème à la fois sur un ancien PC fixe et sur un nouvel ordinateur portable.

Vous pouvez télécharger le fichier PCB dans SprintLayout en

Le programme a été mis à jour à la version 08.06.2010.
Auteur Uniprof travaillant sans relâche pour améliorer son programme, le rendant encore meilleur. Version du programme de 08.06.2010 beaucoup mieux coud des microcontrôleurs. Les plantages fréquents observés dans la version précédente lors de la programmation sans case à cocher "frein" appartiennent au passé. Tout le reste que nous aimons tant chez UniProf est resté en place.

Pour être honnête, j'ai d'abord décidé d'utiliser le programme AVRDUDE ("pipe") pour flasher les microcontrôleurs. AVRDUDE est un programme puissant qui mérite le respect - il peut fonctionner avec un grand nombre de programmeurs, avec un tas de paramètres et est assez largement utilisé pour les microcontrôleurs AVR. Le programme n'a pas sa propre "GUI" (il fonctionne depuis la ligne de commande) et j'allais écrire des fichiers batch pour chaque firmware afin de flasher la manette en "un clic". Mais après réflexion, j'en suis arrivé à la conclusion :
- le programme doit être simple et accessible - pour que même une personne qui n'a jamais travaillé avec des microcontrôleurs puisse le comprendre (enfin, je suis tellement idéaliste :));
- était petit, portable, avec sa propre interface graphique, affichait visuellement toutes les étapes de la programmation, supportait les microcontrôleurs utilisés dans le blog.
Malheureusement, AVRDUDE ne répond pas à ces exigences.
Mais un autre programme convient - Programmateur universel UniProf pour AVR. Le programme présente certains inconvénients, mais ils sont compensés par la simplicité et l'accessibilité. De plus, UniProf peut travailler avec nos programmeurs LPT et COM. Par conséquent, j'ai décidé de faire une post-révision générale du programme UniProf, et plus tard, je décrirai séparément la programmation via LPT et le port COM. Alors …

L'auteur du programme est Mikhail Nikolaev. Le programme a une histoire assez longue, mais ne peut pas se vanter de mises à jour fréquentes. En même temps, le programme est si simple et pratique qu'il ne perd pas sa pertinence même maintenant, même dans le contexte de programmes plus avancés.

Commençons l'introduction.
contient toutes les fonctionnalités du programme. Vous n'avez pas à monter dans le menu - tout se fait en un clic. Le programme a sa propre aide (appuyez sur F1) dans laquelle tout est décrit en détail. L'interface UniProf est intuitive, mais passons en revue les éléments de la fenêtre.
L'élément principal est la fenêtre PROGRAMME. Il affiche (dans les cellules du tableau) les valeurs lues ou écrites des cellules mémoire du contrôleur. Si vous décochez la case PROGRAMME, la fenêtre disparaîtra. Il existe également une case à cocher EEPROM pour afficher ou masquer la fenêtre EEPROM de la mémoire du contrôleur (dans la plupart des cas, nous n'avons pas besoin d'EEPROM - décochez-la).

Rangée supérieure de boutons (de gauche à droite)

Écrivez le contenu des fenêtres (firmware) sur le contrôleur. Vous devez d'abord charger le firmware du fichier dans les fenêtres. (lorsque la case EEPROM est cochée, la zone EEPROM est également enregistrée).

Contrôle (vérification) de la mémoire du contrôleur avec des valeurs dans des cases. Les différences sont indiquées par des astérisques. (Après l'enregistrement, la vérification est effectuée automatiquement - vous n'avez donc pas besoin de vérifier).

Vérification de la propreté du contrôleur. Pour un contrôleur "propre", toutes les cellules mémoire contiennent 0xFF, qui est vérifié.

Réglage des bits FUSE. Cochez soigneusement les cases comme sur l'image jointe à chaque firmware.
Important! Avant de flasher les bits FUSE, assurez-vous de cocher la case "brake", cela réduira le risque d'enregistrement incorrect.

équipe de bas niveau. Mieux vaut ne pas toucher.

Effacer (effacer) le contrôleur. Avant chaque programmation, nettoyez le cristal.

Trois premiers ouvrir le fichier du micrologiciel du type approprié (je posterai le firmware HEX) et remplissez les cases avec les valeurs du fichier ouvert. Trois suivants enregistrer dans un fichier le type de valeur sélectionné dans les cases.

"oscal"- lecture des octets de calibration du contrôleur. On n'a pas besoin.

F1-aide– appeler l'aide intégrée.

Les deux boutons suivants déboguer dans le contrôleur- on n'a pas besoin.

Broches LPT- une chose très utile pour ceux qui ont déjà tiré certaines lignes du port LPT ou qui utilisent un programmeur de conception différente. Vous permet d'attribuer des lignes de port pour remplacer celles brûlées.

Cases à cocher sous les boutons.

Set comme sur la photo. Le premier affiche les octets lus ou prêts à être écrits dans le contrôleur. La seconde est pour l'écriture forcée de 0xFF dans une cellule vide. Le troisième consiste à inverser les lignes du port COM (lors de l'utilisation d'une puce tampon dans le programmeur). Le nom du contrôleur connecté s'allume en bleu. Suivant - marche / arrêt de la fenêtre EEPROM. La fréquence du système est indiquée en rouge.
Important! Si vous cliquez sur le rouge, le programme se resynchronisera avec le contrôleur. Appuyez, au cas où, avant la programmation.

Autres éléments de la fenêtre.

Ces cases à cocher suppriment les boutons supplémentaires (afin de ne pas être confondus). Nous l'avons mis comme sur la photo.

Très important! Case à cocher obligatoire. Dans l'ancienne version du programme, il y avait certains problèmes avec la fiabilité de la programmation sans cette case à cocher. Ce problème est résolu dans la nouvelle version du programme ! Mais si des erreurs se produisent lors de l'écriture ou de la lecture, le programme l'admet immédiatement et honnêtement. Si vous êtes délivré - cochez la case "frein" et tout sera enregistré sans problème ! Seulement plus lent. Lors de l'enregistrement des fusibles, un "frein" est nécessaire ! Inutile de prendre des risques.

Vous pouvez spécifier la zone à graver - définissez "Tout!".

Le choix du port avec lequel nous allons travailler. Si nous ne savons pas où le programmateur a été piqué, nous trions tout à tour de rôle jusqu'à ce que votre manette s'allume en bleu.

Il existe également des raccourcis clavier.

F2 Réglage du délai d'enregistrement, normal = 6. S'il y a des erreurs, essayez de l'augmenter (? aucun effet n'est observé).

F3 Affiche une liste des contrôleurs pris en charge.

Gris-,+ Diminuez-agrandissez la police des nombres dans les fenêtres Flash et EEPROM - cela peut être utile lors du redimensionnement de la fenêtre.

Esc– annuler l'action en cours.

Il y en a plus, mais pas vraiment nécessaires - lisez l'aide intégrée.

UniProf peut être téléchargé ici :
- Programmeur pour AVR. Voir avr.nikolaew.org

PS Quoi qu'il en soit, au fil du temps, nous utilisons AVRDUDE - une chose puissante !

(Visité 48 833 fois, 11 visites aujourd'hui)

Nous apprendrons ce qu'est une interface ISP, nous traiterons d'un programmateur ISP USB peu coûteux et pratique. Considérez les schémas de circuit des programmeurs les plus simples pour les microcontrôleurs AVR utilisant les ports COM et LPT d'un ordinateur. Ces informations sont suffisantes pour flasher la plupart des modèles de microcontrôleurs AVR non seulement sous Linux, mais également dans d'autres systèmes d'exploitation.

Interface de programmation intégrée au système ISP

Pour écrire un programme sur le microcontrôleur AVR, vous aurez besoin d'un programmeur.

programmeur- il s'agit d'un petit circuit électronique qui vous permet de connecter le microcontrôleur à l'un des ports de l'ordinateur (COM, LPT, USB) pour la lecture et l'écriture ultérieures du firmware (programmation).

Il existe de nombreuses conceptions différentes de programmeurs pour les microcontrôleurs AVR qui se connectent à différents ports d'un ordinateur.

L'option la plus fiable et la plus pratique est un programmeur qui se connecte à un port USB, car les nouveaux ordinateurs de bureau et ordinateurs portables n'installent plus les ports COM et LPT.

Dans les appareils finis, le programmateur est connecté au microcontrôleur via une interface FAI(En programmation système) - une interface pour la programmation intra-système. L'interface ISP se compose de plusieurs conducteurs à travers lesquels le signal d'horloge et les données sont reçus pour connecter le programmeur au microcontrôleur.

En règle générale, l'interface ISP est placée sur des cartes sous la forme de dix ou six broches, auxquelles le programmeur est connecté via un connecteur approprié via un câble.

Riz. 4. Interface ISP sur la carte.

Affectation des broches dans l'interface ISP :

  1. VCC - plus alimentation, généralement + 5V;
  2. GND - alimentation moins, masse (Ground);
  3. MOSI - entrée de données (Master Out Slave In);
  4. MISO - sortie de données (Master In Slave Out);
  5. SCK - signal d'horloge (Serial Clock);
  6. RST - pour envoyer un signal de réinitialisation (Reset).

Pour la programmation en circuit du microcontrôleur, seules 4 broches suffisent, car le microcontrôleur peut être alimenté à partir du circuit lui-même où il est installé.

Comment connecter le programmateur à la puce du microcontrôleur AVR s'il n'est pas soudé dans le circuit ? - très simple, en utilisant les mêmes broches de l'interface ISP, si nécessaire, en alimentant le microcontrôleur à partir d'une source d'alimentation.

Programmeur USB FAI ASP

Pour travailler avec les puces AVR, j'ai acheté un programmeur USB ISP peu coûteux pour environ 10 $. Un tel appareil est maintenant en vente dans de nombreux magasins en ligne nationaux et étrangers, il ne devrait donc pas y avoir de problèmes avec l'achat.

Riz. 5. USB ISP - un programmeur avec une boucle pour la programmation en circuit des microcontrôleurs AVR d'ATMEL.

Ce programmeur est sûr à utiliser, a une petite taille et est pris en charge par la plupart des programmes pour flasher les microcontrôleurs AVR. Le FAI USB fonctionne sous les systèmes d'exploitation Linux, Mac OS X et Windows. Pour Linux, vous n'avez pas besoin d'installer de pilotes, après avoir connecté le programmeur au port USB, l'appareil sera immédiatement détecté et prêt à l'emploi.

Vous trouverez ci-dessous le brochage des connecteurs du programmeur USB ISP - il sera utile plus tard lors de la connexion au microcontrôleur.

Riz. 6. L'emplacement des broches sur le connecteur USB ISP (brochage).

Riz. 7. L'emplacement des contacts dans les prises du connecteur connecté au programmateur USB ISP.

Que faire s'il n'est pas possible d'acheter un programmateur USB ISP ?- vous pouvez programmer des microcontrôleurs à l'aide de simples programmeurs faits maison qui se connectent à un port COM ou LPT, mais il est préférable de créer vous-même un FAI USB tout en programmant la puce du microcontrôleur une fois avec un simple programmeur fait maison via un port COM ou LPT .

Riz. 8. Schéma de principe d'un programmeur USB ASP ISP fait maison.

Des informations détaillées sur la fabrication de l'USB ASP, ainsi que sur les cartes de circuits imprimés, les pilotes et le micrologiciel du microcontrôleur sont disponibles sur le site officiel : http://www.fischl.de/usbasp/

De plus, il existe de nombreuses ressources sur Internet pour ce programmeur gratuit, il existe de nombreuses dispositions de PCB prêtes à l'emploi, y compris dans le programme SprintLayout, nous ne nous attarderons donc pas sur cela en détail dans cet article.

Programmeur utilisant le port COM

Ce programmeur est également appelé le "programmeur Gromov", en l'honneur de celui qui a inventé ce schéma, le créateur du programme Algorithm Builder (un environnement graphique pour programmer AVR sous Windows à l'aide d'un langage algorithmique) - G.L. Gromov.

Ce programmateur vous permet de programmer des puces AVR à l'aide du port COM de l'ordinateur - interface RS232. Pour assembler un tel programmateur, vous aurez besoin d'un minimum de pièces - 3 diodes, 7 résistances, un connecteur DB-9 ou DB-25 (selon le connecteur homologue installé dans votre ordinateur) et un connecteur ISP pour la connexion à un microcontrôleur (ou juste quelques conducteurs à chiper). Les diodes dans le circuit peuvent être utilisées n'importe quelle basse puissance.

Riz. 9. Schéma de principe des microcontrôleurs du programmateur AVR via le port COM de l'ordinateur.

Pour des informations complètes, vous trouverez ci-dessous le brochage des ports RS-232 pour les options DB-9 et DB-25.

Riz. 10. RS232 - Port COM, brochage DB-9.

Riz. 11. Port COM RS232 DB-25 - brochage sur les connecteurs.

Programmeur utilisant le port LPT

Comme nous le savons, le port LPT d'un ordinateur est conçu pour connecter une imprimante locale (Local Printer Port), mais néanmoins il est souvent utilisé pour connecter divers appareils et produits maison. Dans ce cas, nous pouvons l'utiliser pour programmer des microcontrôleurs AVR en assemblant un circuit très simple à cet effet, qui est illustré ci-dessous.

Riz. 12. Schéma de principe du programmateur pour microcontrôleurs AVR utilisant le port LPT de l'ordinateur.

Comme vous pouvez le voir, le circuit est encore plus simple que dans l'option c, ici nous n'avons besoin que de 4 résistances de faible puissance et d'un connecteur (mâle, avec des broches) pour se connecter au port LPT de l'ordinateur.

Riz. 13. Emplacement des broches pour les connecteurs du port LPT.

Toutes les pièces et connexions peuvent être placées dans le boîtier du connecteur LPT, et pour se connecter au microcontrôleur, sortez un câble avec un connecteur pour l'interface ISP ou juste les conducteurs nécessaires pour se connecter à la micropuce.

Logiciel et notes

Après avoir connecté un programmeur COM ou LPT au microcontrôleur, vous devez vous rappeler d'alimenter la puce elle-même. Vous pouvez utiliser des piles ou une alimentation avec un stabilisateur comme source d'alimentation pour le microcontrôleur, ce sera le plus sûr pour le port de l'ordinateur et la puce. Nous avons déjà expliqué comment l'utiliser.

Sous Linux, il existe un programme très puissant qui peut fonctionner avec les programmeurs USB ASP, COM et LPT - c'est un programme AVRDUDE, dont il sera question dans les sections suivantes.

Pour flasher les puces AVR sous Windows à l'aide de ces programmeurs COM et LPT, vous avez besoin du programme UniProf de Nikolaev, qui est un programmeur universel pour AVR (avr.nikolaew.org).

ATTENTION! Soyez extrêmement prudent lors de l'assemblage et de l'utilisation de programmeurs utilisant le port COM ou LPT de l'ordinateur, une simple erreur peut facilement mettre le feu à ces ports. Pour le fonctionnement normal de tels programmeurs, vous devez essayer d'utiliser les conducteurs les plus courts possibles du connecteur au circuit du programmeur et au microcontrôleur. Il est souhaitable que le microprocesseur de l'ordinateur ait une fréquence ne dépassant pas 1 à 2 GHz et il est souhaitable d'utiliser Win2000 ou WinXP comme système d'exploitation pour la programmation des puces.

Il est également important de savoir que les adaptateurs USB-RS232 (port USB-COM) ne fonctionneront probablement pas avec le programmeur Gromov, seuls ceux avec des microcircuits plus récents fonctionneront probablement, il est donc préférable de rechercher une machine avec un port COM natif .

Conclusion

Les programmeurs dont il est question dans l'article ne sont que quelques-unes des solutions les plus abordables et les plus simples parmi une grande liste de programmeurs AVR : USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, programmeurs FTDI et autres.

Maintenant, dans tous les cas, vous pouvez assembler un programmeur à votre disposition et flasher au moins un microcircuit, sur la base duquel vous pouvez assembler un autre programmeur plus pratique ou une sorte d'appareil.

Dans le prochain article, nous verrons comment connecter différents modèles de microcontrôleurs AVR au programmeur, découvrir où obtenir des informations sur le brochage des microcontrôleurs.

Sur la planche à pain métaboard très pratique à monter FAI programmeur pour RAV microcontrôleurs AVRProg. Le schéma est très simple, le code source du programmeur est ouvert et disponible pour deux variantes du programmeur - il existe une version usasp et versions Dopeur AVR. Le circuit programmateur est assemblé directement sur le champ layout de la carte metaboard. Le firmware (version du programmateur) peut être facilement modifié via le chargeur de démarrage USB intégré dans la métacarte.

[Caractéristiques du programmeur AVRProg]

1. Le programmeur dispose de deux socles pour installer des microcontrôleurs AVR programmables dans des boîtiers DIP pour 8, 20 et 28 broches, y compris les populaires ATTiny25/45/85, ATTiny2313, ATMega8, ATMega48/88/168/328 (8 broches AVR branché sur une prise 20 broches).

2. Pour les microcontrôleurs programmables, une fréquence d'horloge de 1 MHz est générée (pour les microcontrôleurs dont les fusibles sont réglés pour fonctionner avec une fréquence d'horloge externe ou avec un résonateur à quartz externe).

3. Le circuit du programmeur est très simple et pratique pour l'auto-assemblage à la maison.

4. Pour le circuit de ce programmateur (AVRProg sur la metaboard), deux versions de firmware ont été portées - usasp et Dopeur AVR. Le portage est également prévu dans le futur AVRminiProg. Pour les liens de téléchargement du micrologiciel, voir .

5. Un connecteur FAI à 10 broches séparé avec un brochage compatible avec le FAI standard à 10 broches (les brochages standard des connecteurs FAI peuvent être visualisés), conçu pour la programmation en circuit des microcontrôleurs AVR (et également comme port de sortie de débogage dans le version AVR-Doper, voir ci-dessous) . Ce connecteur délivre une tension d'alimentation de 5 volts pour la carte programmable, qui peut être connectée en réglant le cavalier JP5 (voir le schéma du programmeur), une fréquence d'horloge de 1 MHz, et déboguer les signaux de réception et de transmission UART.

[Schéma de principe du programmateur AVRProg]

Pour simplifier au maximum le circuit (et, par conséquent, pour faciliter l'auto-assemblage du programmeur), les convertisseurs de niveau en sont exclus, qui dans le cas général sont généralement installés pour correspondre aux niveaux logiques du programmeur et du circuit programmé par ISP, car la tension d'alimentation du circuit programmateur peut différer de la tension d'alimentation des appareils programmables (voir possibilité de raccordement de tels convertisseurs de niveau dans ). Cela signifie que le programmateur AVRProg et l'appareil programmé via le connecteur SV1 ISP doivent, si possible, être alimentés à peu près au même niveau de tension (environ 5 volts). Des résistances R1..R7 sont ajoutées au circuit, connectées en série dans le circuit de signal numérique, ce qui atténue quelque peu (mais n'élimine pas complètement) le problème de la différence de niveau logique. Ces résistances limitent le courant maximal et évitent d'endommager le programmateur et le programmateur, qui sont alimentés par des tensions différentes. Grâce à ces résistances et à la présence de diodes de protection dans l'AVR, une certaine conversion du niveau du signal est effectuée. 1MHZ, RÉINITIALISER, MOSI, MISO, SCK, RXD, TXD, il devrait donc être possible de programmer des appareils ISP alimentés en 3,3 volts.

De plus, il est possible d'alimenter en plus le +5 volts de l'appareil en cours de programmation. L'alimentation est activée en réglant le cavalier JP5. Gardez à l'esprit que le circuit du programmateur AVRProg n'a pas de limite de courant de protection appliquée à l'appareil en cours de programmation. Bien sûr, sauf dans le cas où le programmeur lui-même est alimenté par USB et que le contrôleur USB de l'ordinateur dispose d'une telle protection. N'installez jamais le cavalier JP5 si l'appareil programmable ISP est alimenté par sa propre source de tension et si la tension d'alimentation de l'appareil programmable (connecté via ISP SV1) n'est pas de +5V !

Le circuit programmateur utilisé FAI 10 broches"ancien style" (en plus de ces brochages ISP, il y a aussi plus pratique FAI 6 broches connecteurs), car des signaux supplémentaires sont émis vers ses jambes (qui sont connectées à GND dans le brochage ISP à 10 broches d'origine). Ce sont trois signaux supplémentaires que vous pouvez utiliser pour vos besoins dans un appareil programmable, si nécessaire :

X1MHZ- fréquence d'horloge 1 MHz. Peut être utilisé pour raviver les puces maçonnées conçues pour fonctionner avec un oscillateur RC interne, mais dont les fusibles sont mal réglés pour utiliser un cristal externe ou un générateur d'horloge. Sans fournir une fréquence d'horloge externe ou connecter un quartz, il est impossible de programmer de tels AVR, c'est là qu'un signal d'horloge externe de 1 MHz peut être utile.

XRXD- Entrée de port série pouvant recevoir la sortie de données de débogage de l'appareil en cours de programmation. Cette fonction est prise en charge dans la version du micrologiciel AVR-Doper. Tout ce que l'appareil en cours de débogage transmet via UART (presque tous les microcontrôleurs AVR ont un UART matériel) peut être affiché dans la fenêtre du terminal connecté au port COM USB virtuel AVR-Doper. Cette fonctionnalité facilite l'écriture et le débogage de logiciels dans un appareil programmable par le FAI sur un microcontrôleur AVR. Pour activer cette fonctionnalité, vous devez connecter la sortie matérielle TXD du port UART de l'AVR programmable au signal XRXD (broche 10 du connecteur SV1 ISP), et également utiliser les macros de sortie de débogage dans le micrologiciel en cours de débogage (dans le Bibliothèques WinAVR, ceci est une macro DBG, vous pouvez aussi utiliser printf, redirigé vers UART).

XTXD- une sortie de port série qui peut transmettre des données utilisateur arbitraires à un appareil programmable. Cette fonction est prise en charge dans la version du micrologiciel AVR-Doper. Tout ce qui est imprimé dans la fenêtre du terminal (connecté au port COM USB virtuel de l'AVR-Doper) sera transféré à l'entrée UART de l'appareil en cours de débogage (presque tous les microcontrôleurs AVR ont un UART matériel). Ceci est moins couramment utilisé que la sortie de débogage XRXD (via une macro DBG ou une instruction printf), mais cela facilite également l'écriture et le débogage de logiciels sur un périphérique programmable par le FAI. Par exemple, vous pouvez envoyer des commandes textuelles au périphérique en cours de débogage directement à partir de la fenêtre du terminal. Pour activer cette fonctionnalité, vous devez connecter l'entrée matérielle RXD du port UART de l'AVR programmable au signal XTXD (broche 8 du connecteur SV1 ISP).

L'alimentation des puces AVR programmables installées dans les socles IC1 et IC2 est fournie par les deux pattes du microcontrôleur de la carte métacarte PC3 et PC4 (broches 4 et 5 du connecteur JP3). Les ports PC3 et PC4 sont programmés en sorties, et leur courant de sortie est suffisant pour l'alimentation directe d'un microcontrôleur programmable installé dans la prise (deux ports connectés en parallèle sont spécialement utilisés pour augmenter la capacité de charge de la sortie). Si un journal est émis sur PC3 et PC4. 1, puis l'alimentation est fournie au microcontrôleur programmable. Cet état indique également la lueur de la LED rouge connectée à la broche 1 du connecteur JP3 (contrôlée par la broche logicielle du port PC0). Si un journal est émis sur PC3 et PC4. 0, le microcontrôleur programmable est mis hors tension (avec la LED éteinte) et il peut être retiré librement de la prise sans crainte de dommages électriques.

[Assemblage du programmateur]

Pour pouvoir installer le connecteur ISP SV1, vous devez dessouder le connecteur d'alimentation JP4 sur la métacarte (si installé). L'assemblage n'a pas d'autres caractéristiques, il suffit de connecter tous les fils, guidés par le schéma de circuit - approximativement comme indiqué sur la photo. Les fils multicolores sont utilisés uniquement pour plus de clarté, afin de faciliter la compréhension du câblage des différents signaux. Un circuit correctement assemblé commence à fonctionner immédiatement et ne nécessite aucun débogage.

De nombreux composants du diagramme AVRProg sont facultatifs pour l'installation. Par exemple, si vous n'avez pas besoin de berceaux de prises et que vous n'avez besoin que d'un FAI, les prises IC1 et IC2 ne peuvent pas être installées et dessoudées. Ou, par exemple, si vous n'avez pas besoin de la capacité de programmation ISP, vous ne pouvez pas installer le connecteur ISP SV1, et vous n'avez pas non plus besoin des résistances R1..R7 et du cavalier JP5.

Ce qui suit décrit les différences dans le fonctionnement de deux versions de firmware du programmateur - USBasp et AVR-Doper. Les deux options sont facilement chargées dans la mémoire de la puce à l'aide d'un chargeur de démarrage USB et du programme Khazama AVR Programmer (voir), de sorte que vous avez toujours la possibilité de reflasher facilement la version souhaitée du programmeur. Pour activer le chargeur de démarrage, le cavalier de téléchargement JP6 doit être installé, et avec la métacarte connectée via USB à l'ordinateur, appuyez sur le bouton de réinitialisation S1 (le cavalier JP6 et le bouton S1 sont initialement installés sur la métacarte). Après cette procédure simple, un périphérique USB USBasp apparaîtra sur l'ordinateur (s'il n'y a pas de pilote, Windows le demandera. Prenez le pilote du package sur le lien). Le périphérique USB du chargeur de démarrage USBasp (le chargeur de démarrage USB émule le programmeur USBasp) peut accepter les commandes du shell du programmeur Khazama AVR. À l'aide du programme Khazama AVR Programmer, l'une des deux options de micrologiciel du programmeur - USBasp et AVR-Doper peut être écrite dans la mémoire de la puce metaboard (pour une description de la façon de travailler avec ce micrologiciel, voir ci-dessous). Des options de micrologiciel prêtes à l'emploi (à la fois USBasp et AVR-Doper) sont disponibles sur le lien.

[usasp]

Téléchargez le package d'archives à partir du lien et prenez-en le binaire (fichier HEX) avec le nom de fichier approprié. Le nom du fichier indique le type de micrologiciel (USBasp ou AVR-Doper), le type de microcontrôleur utilisé dans la métacarte (ATmega168PA et ATmega328P conviennent également) et la fréquence d'horloge du quartz (généralement le quartz est utilisé sur 16 MHz, mais des fréquences sont également possibles 12 , 15 , 16.5 , 20 MHz). Flashez le binaire dans la mémoire de la puce à l'aide du chargeur de démarrage USB metaboard et du programme Khazama AVR Programmer (sélectionnez la puce metaboard dedans et). Ignorez les avertissements concernant l'impossibilité de changer la fréquence d'horloge du FAI - le chargeur de démarrage USB est extrêmement simplifié et ne prend pas en charge le traitement de la commande pour définir la fréquence du FAI (ce n'est pas nécessaire pour le chargeur de démarrage).

Une fois le micrologiciel USBasp écrit dans la mémoire de la puce de la carte méta, reconnectez la carte méta avec le programmeur assemblé via USB, et le programmeur USBasp est prêt à fonctionner. Pour travailler avec le programmeur AVRProg dans la version USBasp, le même programme peut être utilisé Programmeur AVR Khazama(version 1.7.0 ou ultérieure) ou utilitaire de ligne de commande avrdude.

J'ai moins aimé la version USBasp que la version AVR-Doper, car ce firmware a des défauts liés au manque de support pour changer la fréquence d'horloge du FAI (le shell Khazama AVR Programmer donne des messages d'erreur, mais le programmeur fonctionne toujours). De plus, les fusibles ne sont pas pris en charge pour certaines puces, comme la puce ATmega328P. Les choses vont un peu mieux avec avrdude, mais travailler avec cet utilitaire n'est pas très pratique, car il s'agit toujours d'un utilitaire de ligne de commande, pas d'une interface graphique. Cependant, pour le travail par lots (lorsque vous devez automatiser la programmation de flux d'un grand nombre d'appareils), avrdude peut être le meilleur choix. Pour travailler avec avrdude, sélectionnez le protocole usbasp.

[Dopeur AVR]

Le firmware de la variante AVR-Doper est flashé de la même manière que le processus pour USBasp est décrit, il vous suffit de prendre un autre fichier de firmware de l'archive (dont le nom mentionne AVR-Doper). Cette option, à mon avis, mérite plus de respect, car elle représente le support du protocole STK500 par Atmel (ce protocole est devenu un standard de facto en raison de la popularité de la plateforme AVR et de ses outils). Protocole STK500 pris en charge Studio AVR, de sorte que l'option AVR-Doper fonctionnera correctement avec le shell de programmation AVRprog de l'environnement de programmation AVR Studio. Ceci est très pratique pour les utilisateurs d'AVR Studio et ouvre de larges possibilités de programmation de puces (il n'y a aucun problème avec le support de fusion sur certains AVR, comme c'est le cas avec Khazama + USBasp). Pour travailler avec avrdude, choisissez le protocole STK500.

Lorsque vous travaillez dans l'environnement AVR Studio, lancez l'utilitaire de programmation AVRprog et sélectionnez l'option de programmation STK500 dans la boîte de dialogue initiale. Attention : l'utilitaire AVRprog vous proposera de re-uploader le firmware du programmateur, refusez-le en cliquant sur le bouton "Non". Sinon, travailler avec l'utilitaire du programmeur n'a pas de particularités et ne mérite pas une description séparée. Voir aussi un aperçu du travail avec AVRprog AVRStudio sur le lien .

[Comment installer des puces programmables dans les sockets]

Programmation DIP8 Programmation DIP20 Programmation DIP28

ATtiny25/45/85 ATtiny2313A-PU ATmega8, ATmega48/88/168/328

[Compilation du code source USBasp et AVR-Doper]

Étant donné que le code source du micrologiciel du programmateur de métacarte AVRProg est disponible (pour les versions USBasp et AVR-Doper), il peut être modifié selon vos besoins, recompilé et flashé à l'aide d'un chargeur de démarrage dans la mémoire de la puce de métacarte. En particulier, la version USBasp peut ajouter la prise en charge des commandes de changement d'horloge ISP.

Les codes source USBasp et AVR-Doper ont la même erreur, qui est liée à une gestion incorrecte du port de l'indicateur LED1 LED (la sélection du port ne correspond pas au schéma de circuit). Dans le code source, que vous pouvez télécharger à partir du lien, cette erreur a été corrigée.

La compilation est simple, idem pour les versions USBasp et AVR-Doper. Pour compiler, vous devez avoir installé le package WinAVR. Décompressez le code source du micrologiciel dans un dossier séparé. Accédez au répertoire racine du projet où se trouve le fichier makefile, et exécutez deux commandes l'une après l'autre sur la ligne de commande : rendre propre et faire du métaboard. Après cela, un fichier apparaîtra dans le répertoire racine du projet main.hex, qui est un fichier de firmware binaire pour le programmeur. C'est elle qui doit être remplie à l'aide d'un bootloader USB dans la mémoire de la puce metaboard.

La métacarte peut être utilisée avec les microcontrôleurs ATmega168PA et ATmega328P. L'ATmega168PA et l'ATmega328P utilisent un micrologiciel de programmation compilé pour l'ATmega168PA. Gardez à l'esprit que le firmware compilé pour l'ATmega328P ne fonctionne pas (je n'ai pas encore compris pourquoi). Si vous utilisez un résonateur à quartz dans la métacarte non pas pour 16 MHz, mais pour une autre fréquence (12, 15, 16,5 ou 20 MHz), modifiez la macro dans le makefile avant de compiler F_CPU.

1 . Code source du micrologiciel d'origine du programmeur USBasp porté sur la métacarte AVRProg (remarque : ce code contient des erreurs, veuillez utiliser le code source du lien). Voir Télécharger à la fin de l'article (télécharger avrprog-metaboard-1.1.zip ou une version plus récente).
2 . Code source du micrologiciel d'origine du programmeur AVR-Doper, porté sur le métaboard AVRProg (remarque : ce code contient des erreurs, veuillez utiliser le code source du lien).
3 . .
4 . Brochages du connecteur ISP.
5 . Programmeur Khazama AVR et pilote USB pour USBasp (système d'exploitation Windows). Pour travailler avec la version USBasp du programmeur AVRProg, installez Khazama version 1.7.0 ou ultérieure !
6 .

LA CLOCHE

Il y en a qui ont lu cette news avant vous.
Abonnez-vous pour recevoir les derniers articles.
E-mail
Nom
Nom de famille
Aimeriez-vous lire The Bell
Pas de spam