Table des matières:

Comment utiliser le Dragon Rider 500 avec votre AVR Dragon : 10 étapes
Comment utiliser le Dragon Rider 500 avec votre AVR Dragon : 10 étapes

Vidéo: Comment utiliser le Dragon Rider 500 avec votre AVR Dragon : 10 étapes

Vidéo: Comment utiliser le Dragon Rider 500 avec votre AVR Dragon : 10 étapes
Vidéo: LSE Week - Reverse engineering AT32UC3A's JTAG - Pierre Surply 2024, Novembre
Anonim
Comment utiliser le Dragon Rider 500 avec votre AVR Dragon
Comment utiliser le Dragon Rider 500 avec votre AVR Dragon

Cette instructable est un cours accéléré sur la façon d'utiliser certaines des fonctionnalités du Dragon Rider 500 d'Ecros Technologies. Veuillez noter qu'un guide de l'utilisateur très détaillé est disponible sur le site Web d'Ecros.

Le Dragon Rider est une carte d'interface à utiliser avec un programmeur de microcontrôleur AVR appelé AVR Dragon d'Atmel. Pour plus d'informations: Site Web d'Atmel: https://www.atmel.com/ Lien AVR Dragon: https://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 Dragon Rider 500 par Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Assemblage Dragon Rider 500 Instructable: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/ Apprenez tout sur les microcontrôleurs AVR: https://www.avrfreaks.net Cette instructable peut grandir avec le temps alors revenez de temps en temps !

Étape 1: AVR Mec

Vous avez besoin d'un logiciel de programmation pour utiliser l'AVR Dragon pour la programmation. J'utilise AVRdude avec le système d'exploitation Ubuntu (linux) et je suis très satisfait des résultats. Cette instructable ne traitera pas des subtilités du logiciel de programmation. Si vous ne savez pas comment configurer ou utiliser un logiciel de programmation, consultez cette instruction pour vous mettre au courant: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Je suppose que si vous avez acheté et assemblé un Dragon Rider 500, vous savez déjà comment programmer une puce avec l'AVR Dragon….. en avant !

Étape 2: ATtiny2313 - Faire clignoter les LED

ATtiny2313 - Faire clignoter les LED
ATtiny2313 - Faire clignoter les LED
ATtiny2313 - Faire clignoter les LED
ATtiny2313 - Faire clignoter les LED
ATtiny2313 - Faire clignoter les LED
ATtiny2313 - Faire clignoter les LED

Programmons un ATtiny2313 qui est un microcontrôleur à 20 broches. Le Dragon Rider 500 possède des prises pour plusieurs microcontrôleurs AVR de tailles différentes. Il s'agit notamment des prises à 8, 20, 28 et 40 broches. Selon la prise que vous utilisez, les cavaliers de la carte Dragon Rider doivent être réglés différemment.

Paramètres des cavaliers

Placez les cavaliers sur le Dragon Rider de sorte que les shunts relient les broches suivantes. (la broche 4 est la broche centrale pour J22-J-24) Broches: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Il s'agit d'une configuration de base qui permet l'ISP (In System Programming).

Clignotant Clignotant

La programmation ne sert à rien sauf si vous avez quelque chose à programmer. J'ai écrit un exemple de code très court pour faire clignoter les LED du Dragon Rider une à la fois. Utilisez un câble plat pour connecter l'en-tête LED (J29) à l'en-tête PortB (J2).

La programmation

J'ai inclus le fichier C ainsi qu'un makefile et le fichier hexadécimal. Comme je l'ai mentionné dans l'intro, je ne peux pas couvrir le côté logiciel de la programmation dans l'Instructable. Programmez comme vous le feriez pour l'AVR Dragon, car le Dragon Rider ne modifie en rien le côté logiciel des choses.

Étape 3: Utilisation du module complémentaire LCD

Utilisation du module complémentaire LCD
Utilisation du module complémentaire LCD

Voici un moyen simple d'utiliser le module complémentaire LCD. Cela écrira "Dragon Rider" sur l'écran LCD.

Matériel:

  • ATtiny2313
  • R/W Jumper: R/W doit être connecté à « BIT1 » sur le Dragon Rider Board (voir l’explication dans le Assembly Instructable)
  • J23: Ce cavalier doit être installé pour la programmation du FAI, puis retiré pour que l'écran LCD fonctionne correctement.
  • Connectez l'écran LCD au PORT B à l'aide d'un câble plat (J31 à J2)

Logiciel

J'utilise la bibliothèque LCD de Peter Fleury pour piloter l'écran LCD en mode 4 bits. Consultez la page d'accueil de Peter pour télécharger la bibliothèque. Vous devrez vous assurer que lcd.c est compilé avec votre code et que vous apportez les modifications suivantes à lcd.h:

Nous utilisons l'oscillateur RC interne, donc XTAL doit être réglé sur 1 MHz:

#définir XTAL 1000000

  • Les paramètres du port doivent être ajustés sur PORTB:
  • #define LCD_PORT PORTB

  • Le brochage de 4 lignes de données doit être adapté:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Le brochage pour RS, RW et E doit être adapté:
  • #définir LCD_RS_PIN 3 #définir LCD_RW_PIN 1 #définir LCD_E_PIN 2

    Le programme principal est très simple grâce au travail de Peter Fleury dans sa bibliothèque LCD. CODE:

    #include #include "lcd.h"int main(void){ lcd_init(LCD_DISP_ON); //Initialiser LCD avec le curseur désactivé lcd_clrscr(); //Effacer l'écran LCD lcd_gotoxy(5, 0); //Déplacer le curseur à cet emplacement lcd_puts("Dragon"); //Mettez cette chaîne sur l'écran LCD lcd_gotoxy(6, 1); //Déplacer le curseur à cet emplacement lcd_puts("Rider"); // Mettez cette chaîne sur l'écran LCD pour (;;) { // Ne rien faire pour toujours (Message déjà affiché sur l'écran LCD) }}

    Code ci-joint

    Le code joint inclut la bibliothèque LCD de Peter Fleury (lcd.c et lcd.h) avec sa permission. Merci Pierre ! La seule modification que j'y ai apportée est de définir les broches appropriées dans les définitions. Veuillez visiter son site pour télécharger le package: https://www.jump.to/fleury J'ai également inclus un makefile que j'utilise écrit par Eric B. Weddington et Jorg Wunsch. J'ai envoyé un MP à Jorg sur avrfreaks.net mais je n'ai jamais reçu de réponse de sa part. Il y a quelques changements dans le makefile pour s'adapter à l'utilisation de Linux et de Dragon. Merci à vous deux, n'hésitez pas à me faire part de vos préférences concernant le partage de votre travail.

    Étape 4: Programmation UC ISP 28 broches (ATmega8)

    Programmation UC ISP 28 broches (ATmega8)
    Programmation UC ISP 28 broches (ATmega8)
    Programmation UC ISP 28 broches (ATmega8)
    Programmation UC ISP 28 broches (ATmega8)

    La prochaine démonstration du projet utilisera un ATmega8 qui est un avr à 28 broches. Voici le jeu de cavaliers de base pour la programmation par le FAI des microcontrôleurs à 28 broches.

    Paramètres des cavaliers

    Placez les cavaliers sur le Dragon Rider de sorte que les shunts relient les broches suivantes. (la broche 4 est la broche centrale pour J22-J-24) Broches: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Informations techniques

    • La connexion de J11 et J12 de cette manière vous permet d'utiliser ces broches comme broches d'E/S. L'alternative serait de router ces broches pour établir une connexion avec le cristal externe.
    • La connexion de J13 de cette manière nous permet de l'utiliser comme broche de réinitialisation. L'alternative consisterait à acheminer cette broche vers l'en-tête PORTC pour l'utiliser comme broche d'E/S. (cela aurait de nombreux inconvénients, dont l'impossibilité de programmer cette puce à l'aide du FAI).
    • J16 et J22-J24 sont connectés de cette manière pour acheminer les broches appropriées (Reset, MISO, MOSI et SCK) vers l'en-tête ISP de l'AVR Dragon.

    Étape 5: Utilisation avancée de l'écran LCD et des boutons: la grande horloge

    Utilisation avancée de l'écran LCD et des boutons: la grande horloge
    Utilisation avancée de l'écran LCD et des boutons: la grande horloge

    C'est un projet amusant qui utilise l'écran LCD et les boutons. Nous traiterons des fonctions d'horloge en temps réel et des caractères personnalisés sur l'écran LCD. Dans l'image en bas, vous pouvez voir l'heure 19:26:07 affichée en grand nombre sur l'écran LCD. Chaque numéro utilise une grille 2x2 de l'affichage des caractères pour montrer le grand nombre. Cela utilise une police écrite à l'origine par Xtinus pour le projet XBMC. Les boutons sont utilisés pour régler l'horloge. Gauche incrémente les heures, Haut incrémente les minutes, Droite bascule entre 12 et 24 heures et Entrée remet les secondes à zéro. L'horloge ne tient pas très bien car nous utilisons l'oscillateur interne très imprécis, mais ce programme peut facilement être modifié pour utiliser un cristal externe beaucoup plus précis. Voyez cela en action dans la vidéo ci-dessous. Une explication du fonctionnement de ce code s'impose, mais je n'ai pas le temps pour le moment. Pour l'instant, connectez l'en-tête LCD (J31) au PORTD (J4) et l'en-tête du bouton (J30) au PORTB (J2). Assurez-vous que SW1 et SW2 sont en position d'arrêt. Connectez l'AVR Dragon à un câble USB et branchez l'autre extrémité de ce câble sur votre ordinateur. Allumez SW2 et programmez l'ATmega8 avec le logiciel de programmation de votre choix (fichier hexadécimal ci-dessous; fusibles gravés aux paramètres d'usine). REMARQUE: pour utiliser les boutons Gauche et Haut, vous devrez retirer les shunts de J22 et J24, ne ceci pendant que l'alimentation est coupée.

    Étape 6: Programmation haute tension

    J'ai utilisé la programmation parallèle haute tension pour ressusciter un ATtiny2313 sur lequel j'ai réglé les mauvais paramètres de fusible. J'en avais besoin une deuxième fois lorsque je travaillais sur cette instructable parce que j'ai accidentellement écrit le paramètre lfuse que je voulais dans le registre hfuse….. ooops. La programmation parallèle haute tension est un outil pratique à avoir à votre disposition ! Vous trouverez ci-dessous une liste de mes réglages de cavaliers: À UTILISER À VOS PROPRES RISQUES, CE TYPE DE PROGRAMMATION PEUT ENDOMMAGER VOTRE MATÉRIEL SI VOUS NE SAVEZ PAS CE QUE VOUS FAITES ! Programmation parallèle haute tension: ATtiny2313 dans la prise U3: SW1 - OFFSW2 - ONJ5, J6, J7 - connectez la broche 1 et la broche 2XTAL1 - connectez la broche 1 et la broche 2J16 - Connectez la broche 1 et la broche 22x5 Câbles IDC: PROG_CTRL au PORT D, PROG_DATA au PORT BTous les autres cavaliers non connectés (J8-J13, J18, J19, J20, J22-J28, J24) Pour les autres puces, vous devriez pouvoir déterminer les paramètres dont vous avez besoin à partir du guide de l'utilisateur d'Atmel pour leur STK500.

    Étape 7: S'étendre au-delà du conseil d'administration

    S'étendre au-delà du conseil d'administration
    S'étendre au-delà du conseil d'administration

    Je trouve qu'il est assez facile de s'interfacer avec une maquette. Cela permet beaucoup plus de flexibilité dans le prototypage et le développement de code en même temps. Ci-dessous, vous verrez quelques maquettes connectées au Dragon Rider. Je connecte les câbles plats aux ports appropriés à une extrémité. De l'autre, j'utilise des fils de liaison pour connecter le bon conducteur ICD aux planches à pain.

    Étape 8: Conclusion

    Il y a beaucoup plus qui pourrait être impliqué dans ce Instructable. Ce soir, je complète un adaptateur qui vous permet d'utiliser l'en-tête de programmation à 6 broches sans retirer le dragon du Dragon Rider. Je mettrai des informations sur la façon d'en construire un vous-même… à venir. Si vous pensez que d'autres choses doivent être ajoutées, laissez un commentaire.

    Étape 9: Ajout d'un FAI à 6 broches

    Ajout d'un FAI à 6 broches
    Ajout d'un FAI à 6 broches
    Ajout d'un FAI à 6 broches
    Ajout d'un FAI à 6 broches
    Ajout d'un FAI à 6 broches
    Ajout d'un FAI à 6 broches

    J'intègre généralement un en-tête ISP à 6 broches à tous mes projets afin que je puisse reprogrammer la puce si nécessaire et ne pas avoir à la retirer de la carte du projet. Le cavalier de dragon n'a malheureusement pas d'en-tête ISP à 6 broches disponible, mais j'ai compris comment en rendre un disponible.

    Avertissement!

    Ceci est un hack. Si vous ne savez pas exactement comment cela fonctionne, ne le faites pas

    Vous avez été prévenu. J'ai créé ma propre carte adaptateur et un cavalier à 3 broches afin d'alimenter l'en-tête du FAI à 6 broches. Ce que vous faites est de configurer le Dragon Rider pour programmer et un microcontrôleur à 8 broches. En utilisant une prise à 3 broches, je cavalier J8 pour connecter les broches 1 et 3. Cela achemine le signal d'horloge vers le connecteur PortB. Je lance ensuite un câble de démarrage de l'en-tête PortB à ma carte adaptateur et le tour est joué! Il y a des images ci-dessous…. s'il vous plaît, s'il vous plaît, s'il vous plaît, ne faites pas cela à moins que vous ne compreniez vraiment ce que vous faites car vous pourriez endommager votre AVR Dragon ou pire si vous le faites mal.

    Brochage: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Étape 10: Lecteur RSS utilisant la connexion série et l'écran LCD

    Lecteur RSS utilisant la connexion série et l'écran LCD
    Lecteur RSS utilisant la connexion série et l'écran LCD
    Lecteur RSS utilisant la connexion série et l'écran LCD
    Lecteur RSS utilisant la connexion série et l'écran LCD

    Je continue à jouer avec cette carte de développement. Cette fois, j'ai passé une partie d'un après-midi à développer une lecture RSS (principalement du côté python). Je ne pense pas que cela justifie son propre instructable donc je l'ajoute ici.

    Matériel

    Nous utilisons le Dragon Rider 500 comme carte de développement. Cela fournit tout le matériel dont vous avez besoin (en supposant que vous ayez tous les kits complémentaires). Cela étant dit, vous pouvez certainement le faire avec votre propre configuration matérielle:

    • Microcontrôleur ATmega8 (ou tout autre qui a un USART et suffisamment de broches pour toutes les connexions
    • Un moyen de programmer le microcontrôleur (j'utilise l'AVR Dragon)
    • Puce MAX232 pour les communications série
    • connecteur DB9
    • Écran LCD HD44780
    • Cristal (j'ai utilisé un cristal 8MHz)
    • Condensateurs et résistances assortis

    Un schéma est fourni ci-dessous. Sur le Dragon Rider, nous devrons faire preuve de créativité pour acheminer les connexions. Normalement, le port D peut être connecté directement à l'en-tête LCD. Ce n'est pas le cas ici car l'USART nécessaire à la connexion série utilise PD0 et PD1. De plus, le port B ne peut pas être utilisé car PB6 et PB7 sont utilisés pour le cristal externe. La photo ci-dessous est ma solution à ce problème. Je branche un câble plat aux en-têtes de l'écran LCD, du port B et du port D, puis j'utilise des câbles de démarrage pour effectuer les itinéraires appropriés. N'oubliez pas de brancher la tension et la terre à l'en-tête LCD.

    Logiciel

    Le logiciel de ce projet se compose de deux parties, le firmware du microcontrôleur et le script python pour récupérer les flux RSS et les envoyer via la connexion série. Firmware AVRJ'utilise à nouveau la bibliothèque LCD de Peter Fleury (https://jump.to /fleuri). Il est puissant et concis, polyvalent et facile à modifier pour votre configuration matérielle. Si vous regardez le fichier d'en-tête joint (lcd.h), vous verrez que je fonctionne en mode 4 bits avec le port D comme bits de données et le port B comme bits de contrôle. Le concept de ce firmware est assez simple:

    • Une fois mis sous tension, le microcontrôleur affiche "RSS Reader" puis attend les données série.
    • Chaque octet de données série reçu provoque un décalage vers la gauche d'un tampon de 16 caractères et ajoute l'octet au tampon, puis affiche le tampon.
    • Trois commandes spéciales sont acceptées par le microcontrôleur: 0x00, 0x01 et 0x02. Ce sont des écrans clairs, passer à la ligne 0 et passer à la ligne 1 respectivement.

    Python ScryptI a écrit un script pyton pour récupérer les données RSS et les envoyer via la connexion série. Cela nécessite le module python "pyserial" que vous devrez probablement installer sur votre système pour que cela fonctionne. Le flux RSS peut être configuré en haut du fichier pyton. Notez que vous devez entrer un nom pour le flux ainsi que l'URL du flux. Il y a trois exemples là-bas, je suis certain que vous pouvez les suivre pour la bonne syntaxe. Faire tout fonctionner

    • Assembler le matériel
    • Programmez le microcontrôleur (dragon_rss.hex peut être utilisé si vous ne voulez pas le compiler vous-même). Paramètres de fusible pour ATmega8 utilisant un cristal de 8 MHz: lfuse= 0xEF hfuse=0xD9
    • Allumez le Dragon Rider et assurez-vous que le câble série est branché (l'écran LCD doit lire: "RSS Reader")
    • Exécutez le programme python (python serial_rss.py)
    • Prendre plaisir

    Conseillé: