Cuprins:

Cum să utilizați Dragon Rider 500 cu dragonul dvs. AVR: 10 pași
Cum să utilizați Dragon Rider 500 cu dragonul dvs. AVR: 10 pași

Video: Cum să utilizați Dragon Rider 500 cu dragonul dvs. AVR: 10 pași

Video: Cum să utilizați Dragon Rider 500 cu dragonul dvs. AVR: 10 pași
Video: Cum scrii când începi un caiet nou 2024, Iulie
Anonim
Cum se folosește Dragon Rider 500 cu dragonul dvs. AVR
Cum se folosește Dragon Rider 500 cu dragonul dvs. AVR

Acest instructable este un curs rapid în modul de utilizare a unora dintre caracteristicile Dragon Rider 500 de la Ecros Technologies. Vă rugăm să rețineți că există un ghid al utilizatorului foarte detaliat disponibil pe site-ul Ecros.

Dragon Rider este o placă de interfață pentru utilizare cu un programator de microcontroler AVR numit AVR Dragon de către Atmel. Pentru mai multe informații: Atmel's Wesite: https://www.atmel.com/ AVR Dragon link: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 by Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Asamblarea Dragon Rider 500 Instructabil: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / Aflați totul despre microcontrolerele AVR: https://www.avrfreaks.net Această instrucțiune poate crește cu timpul, așa că verificați din nou și din nou!

Pasul 1: AVR Dude

Aveți nevoie de unele programe software pentru a utiliza AVR Dragon pentru programare. Folosesc AVRdude cu sistemul de operare Ubuntu (Linux) și sunt foarte mulțumit de rezultate. Acest instructiv nu se va ocupa de complexitățile software-ului de programare. Dacă nu știți cum să configurați sau să utilizați software-ul de programare, verificați această instrucțiune pentru a vă aduce la viteză: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon / Cred că, dacă ați achiziționat și asamblat un Dragon Rider 500, știți deja cum să programați un cip cu AVR Dragon ….. în continuare!

Pasul 2: ATtiny2313 - Clipește LED-urile

ATtiny2313 - Clipește LED-urile
ATtiny2313 - Clipește LED-urile
ATtiny2313 - Clipește LED-urile
ATtiny2313 - Clipește LED-urile
ATtiny2313 - Clipește LED-urile
ATtiny2313 - Clipește LED-urile

Să programăm un ATtiny2313, care este un microcontroler cu 20 de pini. Dragon Rider 500 are prize pentru mai multe microcontrolere AVR de dimensiuni diferite. Acestea includ: prize 8, 20, 28 și 40 de pini. În funcție de soclul pe care îl utilizați, jumperii de pe placa Dragon Rider trebuie să fie stabiliți diferit.

Setări jumper

Puneți jumperii pe Dragon Rider, astfel încât șunturile să conecteze următorii pini. (pin4 este pinul central pentru J22-J-24) Pin: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Aceasta este o configurare de bază care permite ISP (în programarea sistemului).

Blinky Blinky

Programarea nu este bună decât dacă aveți ceva de programat. Am scris un exemplu de cod foarte scurt pentru a clipi LED-urile Dragon Rider pe rând. Folosiți un cablu cu bandă pentru a conecta antetul LED (J29) la antetul PortB (J2).

Programare

Am inclus fișierul C, precum și un makefile și fișierul hex. Așa cum am menționat în introducere, nu pot acoperi partea software a programării în Instructable. Programați așa cum ați face pentru Dragonul AVR, deoarece Dragon Rider nu modifică deloc partea software a lucrurilor.

Pasul 3: Utilizarea suplimentului LCD

Utilizarea suplimentului LCD
Utilizarea suplimentului LCD

Iată o modalitate simplă de a utiliza suplimentul LCD. Aceasta va scrie „Dragon Rider” pe ecranul LCD.

Hardware:

  • ATtiny2313
  • Jumper R / W: R / W ar trebui să fie conectat la „BIT1” de pe placa Dragon Rider (a se vedea explicația din instructajul de asamblare)
  • J23: Acest jumper trebuie instalat pentru programarea ISP, dar apoi eliminat pentru ca LCD-ul să funcționeze corect.
  • Conectați ecranul LCD la PORT B utilizând cablul cu bandă (J31 la J2)

Software

Folosesc biblioteca LCD a lui Peter Fleury pentru a conduce ecranul LCD în modul pe 4 biți. Consultați Pagina principală a lui Peter pentru a descărca biblioteca. Va trebui să vă asigurați că lcd.c este compilat cu codul dvs. și că efectuați următoarele modificări la lcd.h:

Folosim oscilatorul RC intern, astfel încât XTAL trebuie setat la 1 MHz:

#define XTAL 1000000

  • Setările portului trebuie ajustate la PORTB:
  • #define LCD_PORT PORTB

  • Eroarea pentru 4 linii de date trebuie adaptată:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Pinout pentru RS, RW și E trebuie adaptat:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Programul principal este foarte simplu datorită muncii pe care a făcut-o Peter Fleury în biblioteca sa LCD.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Inițializați LCD cu cursorul oprit lcd_clrscr (); // Ștergeți ecranul LCD lcd_gotoxy (5, 0); // Mutați cursorul în această locație lcd_puts ("Dragon"); // Puneți acest șir pe LCD lcd_gotoxy (6, 1); // Mutați cursorul în această locație lcd_puts ("Rider"); // Puneți acest șir pe ecranul LCD pentru (;;) {// Nu faceți nimic pentru totdeauna (mesajul este deja afișat pe ecranul LCD)}}

    Cod atașat

    Codul atașat include biblioteca LCD a lui Peter Fleury (lcd.c și lcd.h) cu permisiunea sa. Mulțumesc Peter! Singura modificare pe care i-am făcut-o este să setez pinii corespunzători în Definiții. Vă rugăm să vizitați site-ul său pentru a descărca pachetul: https://www.jump.to/fleury Am inclus și un makefile pe care îl folosesc scris de Eric B. Weddington și, Jorg Wunsch. Am trimis un prim-ministru către Jorg la avrfreaks.net, dar nu am primit niciodată un răspuns de la el. Există câteva modificări în makefile pentru a le adapta la utilizarea Linux și a Dragonului. Vă mulțumesc amândurora, vă rog să-mi spuneți ce preferințe aveți asupra mea să vă împărtășesc munca.

    Pasul 4: Programare ISP cu 28 de pini (ATmega8)

    Programare ISP cu 28 de pini (ATmega8)
    Programare ISP cu 28 de pini (ATmega8)
    Programare ISP cu 28 de pini (ATmega8)
    Programare ISP cu 28 de pini (ATmega8)

    Următoarea demontrare a proiectului va utiliza un ATmega8 care este un avr cu 28 de pini. Iată setul jumper de bază pentru ISP care programează microcontrolerele cu 28 de pini.

    Setări jumper

    Puneți jumperii pe Dragon Rider, astfel încât șunturile să conecteze următorii pini. (pin4 este pinul central pentru J22-J-24) Pinii: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Informații tehnice

    • Conectarea J11 și J12 în acest mod vă permite să utilizați acei pini ca pini I / O. Alternativa ar fi direcționarea acestor pini pentru a face o conexiune cu cristalul extern.
    • Conectarea J13 în acest mod ne permite să o folosim ca pin de resetare. Alternativa ar direcționa acest pin către antetul PORTC pentru a fi utilizat ca pin I / O. (acest lucru ar avea multe dezavantaje, inclusiv incapacitatea de a programa acest cip utilizând ISP).
    • J16 și J22-J24 sunt conectate în acest mod pentru a direcționa pinii corespunzători (Reset, MISO, MOSI și SCK) către antetul ISP al AVR Dragon.

    Pasul 5: Utilizare avansată a ecranului LCD și a butonului: ceasul mare

    Utilizare avansată a ecranului LCD și a butoanelor: ceasul mare
    Utilizare avansată a ecranului LCD și a butoanelor: ceasul mare

    Acesta este un proiect distractiv care folosește ecranul LCD și butoanele. Vom avea de-a face cu funcții de ceas în timp real și cu caractere personalizate pe ecranul LCD. În imaginea din partea de jos puteți vedea ora 19:26:07 afișată în număr mare pe ecranul LCD. Fiecare număr utilizează o grilă 2x2 a afișajului de caractere pentru a afișa numărul mare. Acesta utilizează un font scris inițial de Xtinus pentru proiectul XBMC. Butoanele sunt folosite pentru a seta ceasul. Stânga mărește orele, Sus crește minutele, Dreapta alternează între 12 și 24 de ore, iar Enter resetează secundele la zero. Ceasul nu păstrează timpul foarte bun, deoarece folosim oscilatorul intern foarte inexact, dar acest program poate fi ușor modificat pentru a utiliza un cristal extern mult mai precis. Vedeți acest lucru în acțiune în videoclipul de mai jos. O explicație a modului în care funcționează acest cod este în ordine, dar nu am timp acum. Pentru moment, conectați antetul LCD (J31) la PORTD (J4) și antetul butonului (J30) la PORTB (J2). Asigurați-vă că aveți atât SW1, cât și SW2 în poziția oprit. Conectați AVR Dragon la un cablu USB și conectați celălalt capăt al cablului la computer. Porniți SW2 și programați ATmega8 cu software-ul de programare la alegere (fișier hexagonal de mai jos; siguranțe arse la setările din fabrică). NOTĂ: Pentru a utiliza butoanele stânga și sus, va trebui să eliminați șunturile din J22 și J24, faceți asta în timp ce curentul este oprit.

    Pasul 6: Programare de înaltă tensiune

    Am folosit programarea paralelă de înaltă tensiune pentru a reînvia un ATtiny2313 pe care am setat greșit setările siguranței. Am avut nevoie de a doua oară când lucram la acest instructable, deoarece am scris din greșeală setarea lfuse pe care o doream în registrul hfuse ….. ooops. Programarea în paralel de înaltă tensiune este un instrument la îndemână pe care îl aveți la dispoziție! Mai jos sunt o listă cu setările mele de jumper: UTILIZAȚI-VĂ PE RISCUL DUMNEAVOASTRĂ, ACEST TIP DE PROGRAMARE ÎȚI POATE DETERIORA FERMOARELE DACĂ NU ȘTII CE FĂCI !! Programare paralelă de înaltă tensiune: ATtiny2313 în soclu U3: SW1 - OFFSW2 - ONJ5, J6, J7 - conectați pin1 și pin2XTAL1 - conectați pin1 și pin2J16 - Conectați pin1 și pin22x5 Cabluri IDC: PROG_CTRL la PORT D, PROG_DATA la PORT BAll alte jumperi neconectate J8-J13, J18, J19, J20, J22-J28, J24) Pentru alte cipuri ar trebui să puteți afla setările de care aveți nevoie din ghidul utilizatorului Atmel pentru STK500.

    Pasul 7: Extinderea dincolo de consiliu

    Extinderea dincolo de consiliu
    Extinderea dincolo de consiliu

    Mi se pare destul de ușor să interacționez cu o placă de calcul. Acest lucru permite mult mai multă flexibilitate în crearea de prototipuri și dezvoltarea codului în același timp. Mai jos veți vedea câteva panouri de conectare conectate la Dragon Rider. Conectez cablurile panglică la porturile corespunzătoare la un capăt. La cealaltă, folosesc fire jumper pentru a conecta conductorul ICD adecvat cu panourile de măsurare.

    Pasul 8: Concluzie

    Există multe altele care ar putea fi implicate în acest instructabil. Chiar în seara asta completez un adaptor care vă permite să utilizați antetul de programare cu 6 pini fără a scoate dragonul din Dragon Rider. Voi pune informații despre cum să construiești unul singur … în curând. Dacă ai alte lucruri despre care crezi că trebuie adăugate, lasă un comentariu.

    Pasul 9: Adăugarea unui ISP cu 6 pini

    Adăugarea unui ISP cu 6 pini
    Adăugarea unui ISP cu 6 pini
    Adăugarea unui ISP cu 6 pini
    Adăugarea unui ISP cu 6 pini
    Adăugarea unui ISP cu 6 pini
    Adăugarea unui ISP cu 6 pini

    De obicei, construiesc un antet ISP cu 6 pini pentru toate proiectele mele, astfel încât să pot reprograma cipul dacă este necesar și să nu trebuiască să îl scot de pe placa de proiect. Din păcate, călărețul dragon nu are un antet ISP cu 6 pini disponibil, dar mi-am dat seama cum să fac unul disponibil.

    Avertizare!

    Acesta este un hack. Dacă nu știți exact cum funcționează acest lucru, nu o faceți

    Mi-am creat propria placă de adaptor și jumperul cu 3 pini pentru a furniza antetul isp cu 6 pini. Ceea ce faceți este să setați Dragon Rider la program și microcontroler cu 8 pini. Folosind o priză cu 3 pini, trec J8 pentru a conecta pinii 1 și 3. Aceasta direcționează semnalul ceasului către conectorul PortB. Apoi rulez un cablu jumper de la antetul PortB la placa adaptorului meu și voilă! Sunt imagini mai jos … te rog, te rog, te rog, nu face acest lucru decât dacă înțelegi cu adevărat ce faci, deoarece ți-ai putea deteriora Dragonul AVR sau mai rău dacă faci asta greșit.

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

    Pasul 10: Cititor RSS folosind conexiune serială și ecran LCD

    Cititor RSS folosind conexiune serială și ecran LCD
    Cititor RSS folosind conexiune serială și ecran LCD
    Cititor RSS folosind conexiune serială și ecran LCD
    Cititor RSS folosind conexiune serială și ecran LCD

    Continu să joc cu această placă de dezvoltare. De data aceasta am petrecut o parte dintr-o după-amiază dezvoltând o citire RSS (în cea mai mare parte pe partea Python a lucrurilor). Nu cred că garantează propriul său instructiv, așa că îl adaug aici.

    Hardware

    Folosim Dragon Rider 500 ca placă de dezvoltare. Aceasta oferă tot hardware-ul de care aveți nevoie (presupunând că aveți toate seturile de completare). Acestea fiind spuse, cu siguranță puteți face acest lucru cu propria dvs. configurare hardware:

    • Microcontroler ATmega8 (sau oricare care are un USART și suficiente pini pentru toate conexiunile
    • O modalitate de a programa microcontrolerul (folosesc AVR Dragon)
    • Cip MAX232 pentru comunicații seriale
    • Conector DB9
    • Ecran LCD HD44780
    • Cristal (am folosit un cristal de 8 MHz)
    • Condensatori și rezistențe asortate

    O schemă este furnizată mai jos. Pe Dragon Rider va trebui să folosim oarecare creativitate pentru a direcționa conexiunile. În mod normal, portul D ar putea fi conectat direct la antetul LCD. Nu este cazul aici, deoarece USART necesar conexiunii seriale utilizează PD0 și PD1. În plus, Portul B nu poate fi utilizat deoarece PB6 și PB7 sunt utilizate pentru cristalul extern. În imaginea de mai jos este soluția mea la această problemă. Conectez un cablu panglică la antetele pentru LCD, Port B și Port D, apoi folosesc fire jumper pentru a face traseele corespunzătoare. Nu uitați să conectați tensiunea și împământarea la antetul LCD.

    Software

    Software-ul pentru acest proiect vine în două părți, firmware-ul pentru microcontroler și scriptul python pentru răzuirea fluxurilor RSS și trimiterea acestora prin conexiunea serială. Firmware AVR Folosesc din nou biblioteca LCD a lui Peter Fleury (https://jump.to / fleury). Este puternic și concis, versatil și ușor de modificat pentru configurarea hardware-ului dvs. Dacă vă uitați la fișierul antet atașat (lcd.h), veți vedea că rulez în modul pe 4 biți cu Portul D ca biți de date și Portul B ca biți de control. Conceptul acestui firmware este destul de simplu:

    • Odată pornit, microcontrolerul afișează „RSS Reader” și apoi așteaptă datele seriale.
    • Fiecare octet de date seriale primite face ca un buffer de 16 caractere să se deplaseze la stânga și să adauge octetul în buffer, apoi să afișeze bufferul.
    • Trei comenzi speciale sunt acceptate de microcontroler: 0x00, 0x01 și 0x02. Acestea sunt ecran clar, treceți la linia 0 și, respectiv, treceți la linia 1.

    Python ScryptI a scris un script pyton pentru a răzuie datele RSS și a le trimite prin conexiunea serială. Acest lucru necesită modulul python „pyserial”, pe care probabil va trebui să îl instalați pe sistemul dvs. pentru ca acest lucru să funcționeze. Fluxul RSS poate fi configurat în partea de sus a fișierului pyton. Observați că trebuie să introduceți un nume pentru feed, precum și adresa URL a feedului. Există trei exemple acolo, sunt sigur că le puteți urma pentru o sintaxă adecvată

    • Asamblați hardware-ul
    • Programați microcontrolerul (dragon_rss.hex poate fi utilizat dacă nu doriți să compilați singur). Setări de siguranță pentru ATmega8 folosind un cristal de 8 MHz: lfuse = 0xEF hfuse = 0xD9
    • Porniți Dragon Rider și asigurați-vă că cablul serial este conectat (LCD ar trebui să citească: „RSS Reader”)
    • Executați programul python (python serial_rss.py)
    • Bucurați-vă

    Recomandat: