Table des matières:

Programmeur VUSBTiny AVR SPI : 3 étapes
Programmeur VUSBTiny AVR SPI : 3 étapes

Vidéo: Programmeur VUSBTiny AVR SPI : 3 étapes

Vidéo: Programmeur VUSBTiny AVR SPI : 3 étapes
Vidéo: USBtinyISP AVR ISP программатор 2024, Novembre
Anonim
Programmeur VUSBTiny AVR SPI
Programmeur VUSBTiny AVR SPI

après avoir créé un programmeur usbtiny ISP et l'avoir utilisé pendant 6 mois, je cherchais à en créer un autre pour le transporter. j'aime la simplicité de la conception usbtiny ISP mais j'aimerais le rendre encore plus petit et prendre moins de pièces. une chose dans la conception originale que je veux changer est d'éliminer l'utilisation du cristal d'horloge. une solution que j'ai trouvée est que les pilotes v-usb prennent en charge l'oscillateur interne 16,5 MHz sur les appareils attiny25/45/85. Je commence donc ce projet pour que usbtiny ISP utilise v-usb pour la communication usb. les avantages immédiats sont qu'il économise de l'espace et a moins de composants (plus de cristaux). protocole pour les microcontrôleurs Atmel ATtiny. Bien sûr, cela fonctionnera également sur la série ATmega. Le logiciel est écrit pour un AVR cadencé à 12 MHz. A cette fréquence, chaque bit sur le bus USB prend 8 cycles d'horloge, et avec beaucoup de ruse, il est possible de décoder et d'encoder les formes d'onde USB par logiciel. Le pilote USB a besoin d'environ 1250 à 1350 octets d'espace flash (à l'exclusion des chaînes d'identification facultatives), selon la configuration et la version du compilateur, et de 46 octets de RAM (à l'exclusion de l'espace de pile). L'interface C se compose de 3 à 5 fonctions, selon la description de configuration.vusb de https://www.obdev.at/products/vusb/ V-USB est une implémentation logicielle uniquement d'un périphérique USB à faible vitesse pour Atmel Microcontrôleurs AVR, permettant de construire du matériel USB avec presque n'importe quel microcontrôleur AVR, ne nécessitant aucune puce supplémentaire.vidéo sur la construction et l'utilisation

Étape 1: Caractéristiques et pièces

Caractéristiques et pièces
Caractéristiques et pièces

* logique de programmation de usbtiny ISP, support avr-dude mature * petite empreinte * composants minimaux * alimente le périphérique cible notez que les lignes io vers le mcus cible ne sont pas protégées. vous pouvez ajouter des résistances 1k-2k à SCK et MOSI et vous protéger contre d'éventuelles références de connexions erronées basées sur les travaux trouvés sur v-usb à partir du framework https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl/~dicks/avr/usbtiny/parts list * attiny45/85 (85 est plus facile à trouver) * Diodes Zener 3.6v (1n747, BZX79,..éviter les types 1W) * Résistance 68ohm x 2 * Résistance 1.5K * mini planche à pain 170 points de liaison * câble usb (le câble d'imprimante usb de magasin de dollars est bien) * résistances 1k/2k pour la protection des lignes io (facultatif) outils requis * un programmeur avr fonctionnel (oui, c'est un catch22, nous en avons besoin pour en faire un) * environnement de programmation avr de travail

Étape 2: mise en page, schéma et construction de la planche à pain

Disposition, schéma et construction de la planche à pain
Disposition, schéma et construction de la planche à pain
Disposition, schéma et construction de la planche à pain
Disposition, schéma et construction de la planche à pain

construction

* suivez la disposition de la maquette, il n'y a pas de composants, 3 résistances, 2 diodes, 1 capuchon, plus un mcu à 8 broches. * obtenez un câble d'imprimante usb dollar shop coupé l'extrémité de l'imprimante, il y aura 4 fils exposés, fixez-les et transformez-les en un en-tête mâle à 4 broches, nous l'utiliserons pour nous connecter à la planche à pain. consulter le schéma pour la disposition et l'affectation des broches (J1). * attention à la polarité des diodes.

construire et flasher le projet

le projet a été construit dans une boîte lucide linux ubuntu avec la chaîne d'outils avr-gcc. il est supposé que vous disposez déjà d'un tel environnement, ou vous pouvez découvrir sur Internet comment en configurer un. les codes sources sont sous licence gnu gpl v2 par héritage.

le code source suit une convention recommandée par v-usb, vous pouvez télécharger le package source vusbtiny.tgz et le décompresser dans un répertoire de projet. dans votre répertoire source, il y a un main.c, qui est ma version du programmeur usbtiny modifié. et un sous-répertoire usbdrv, qui contient la couche v-usb. veuillez respecter les conditions de licence des deux projets ci-dessus lors de la construction de celui-ci. ma source sur la logique du programmeur est basée sur la version Dick Streefland et non sur la version ladyada (bien qu'elles soient presque les mêmes).

pour ceux qui n'ont pas de build too-chain, vous pouvez utiliser le binaire suivant

cliquez pour télécharger vusbtiny.hex

et utilisez avrdude pour flasher le firmware

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

(si votre appareil est un tiny85, remplacez -p t45 par -p t85)

la source peut être téléchargée ici cliquez pour télécharger vusbtiny.tgz

décompressez le paquet source dans votre répertoire de travail

tar -zxvf vusbtiny.tgz

* faire cd vsubtiny, pour passer au répertoire de travail vusbtiny * ajuster le makefile pour le périphérique cible en fonction de la puce que vous utiliserez. c'est-à-dire PROGRAMMER_MCU=t45 ou t85 * faites un make * attachez votre programmeur ISP préféré * modifiez le makefile et changez vos paramètres avrdude si nécessaire. celui d'origine suppose le programmeur USBTiny. c'est-à-dire AVRDUDE_PROGRAMMERID=usbtiny * flash firmware via make install

après avoir flashé le firmware, nous devons régler correctement le fusible, nous utilisons la réinitialisation de la broche 1 comme io dans ce projet

* horloge ppl utilisée comme requis par la couche v-usb pour la synchronisation usb * broche de réinitialisation désactivée car nous devons l'utiliser comme io

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

ce paramètre désactive la programmation ultérieure via 5V SPI car nous avons besoin de la broche RESET (broche1) pour io. vous aurez besoin d'accéder à un programmeur HVSP pour récupérer le fusible.

Étape 3: Utilisation et application

Utilisation et application
Utilisation et application
Utilisation et application
Utilisation et application
Utilisation et application
Utilisation et application

flash direct sur maquette

si vous utilisez vusbtiny pour flasher des appareils AVR à 8 broches, vous pouvez simplement appuyer sur votre appareil cible au-dessus de l'appareil de programmation. le programmeur a été conçu pour que les broches de programmation correspondent aux cibles. il y a une astuce cependant, vous devrez isoler les broches 2 et 3 sur le programmeur mcu, car ce sont les broches USB D+ et D- se connectant au PC. J'utilise un morceau de scotch pour réaliser cela, vous pouvez le voir sur les photos. montrer ci-dessous est un tiny13v "à cheval" sur le tiny45, prêt à recevoir le firmware.

FAI clignotant via cavalier

pour programmer un circuit cible via ISP (programmation in-system), vous avez besoin d'un câble ISP. ici, je n'utilise pas les en-têtes à broches standard 2x3 ou 2x5. au lieu de cela, j'utilise un cavalier 1x6 qui est plus convivial pour la maquette, vous pouvez créer un en-tête à broches 2x3 ou 2x5 en les mappant sur J2 comme indiqué sur la disposition et les schémas de la maquette. la photo suivante montre un tiny2313 prêt à être flashé via ISP.

dépannage

* impossible de flasher le firmware ? vérifiez votre programmeur d'origine, vous devrez peut-être ajuster la synchronisation via le drapeau -B dans avrdude. essayez de lire la puce en premier, peut-être un mauvais fusible, peut-être que votre puce a besoin d'un signal d'horloge externe. vous devrez peut-être réparer votre puce par défaut en premier. * vérifiez les connexions * si vous utilisez des broches io différentes, vérifiez le code et les connexions * vous pouvez remplacer les diodes Zener par des types de 500 mw, 400 mw * vous pouvez essayer de réduire la valeur R3 à 1,2 K ou moins * vous êtes plus susceptible de rencontrer des problèmes de synchronisation avrdude, essayez -B drapeau d'avrdude, avoir un câble USB plus court tout aide

Conseillé: