Obsah:

Jak používat Dragon Rider 500 s drakem AVR: 10 kroků
Jak používat Dragon Rider 500 s drakem AVR: 10 kroků

Video: Jak používat Dragon Rider 500 s drakem AVR: 10 kroků

Video: Jak používat Dragon Rider 500 s drakem AVR: 10 kroků
Video: Real dragons? 2024, Červenec
Anonim
Jak používat Dragon Rider 500 se svým drakem AVR
Jak používat Dragon Rider 500 se svým drakem AVR

Tento instruktáž je rychlokurz, jak používat některé z funkcí Dragon Rider 500 od Ecros Technologies. Mějte prosím na paměti, že na webových stránkách Ecros je k dispozici velmi podrobná Uživatelská příručka.

Dragon Rider je deska rozhraní pro použití s programátorem mikrokontroléru AVR s názvem AVR Dragon od společnosti Atmel. Další informace: Atmel's Wesite: https://www.atmel.com/ AVR Dragon odkaz: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 od Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Sestava Dragon Rider 500 Instructable: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/Zjistěte vše o mikrokontrolérech AVR: https://www.avrfreaks.net Tato instrukce se může časem rozrůstat, takže se sem a tam vraťte!

Krok 1: AVR Dude

Abyste mohli AVR Dragon používat k programování, potřebujete nějaký programovací software. Používám AVRdude s operačním systémem Ubuntu (linux) a jsem s výsledky velmi spokojen. Tento návod se nebude zabývat složitostí programovacího softwaru. Pokud nevíte, jak nastavit nebo používat programovací software, podívejte se na tento návod, aby vám pomohl: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Můj odhad je, že pokud jste si zakoupili a sestavili Dragon Rider 500, už víte, jak programovat čip pomocí AVR Dragon….. dál!

Krok 2: ATtiny2313 - Blikejte kontrolkami LED

ATtiny2313 - blikají LED diody
ATtiny2313 - blikají LED diody
ATtiny2313 - blikají LED diody
ATtiny2313 - blikají LED diody
ATtiny2313 - blikají LED diody
ATtiny2313 - blikají LED diody

Naprogramujme ATtiny2313, což je 20kolíkový mikrokontrolér. Dragon Rider 500 má zásuvky pro několik různých velikostí mikrokontrolérů AVR. Patří sem: 8, 20, 28 a 40 pinových zásuvek. V závislosti na tom, kterou zásuvku používáte, musí být propojky na desce Dragon Rider nastaveny odlišně.

Nastavení propojky

Nastavte propojky na Dragon Rider tak, aby zkraty spojily následující piny. (pin4 je středový kolík pro J22 -J -24) Piny: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Toto je základní nastavení, které umožňuje ISP (v programování systému).

Blinky Blinky

Programování není dobré, pokud nemáte něco na programování. Napsal jsem velmi krátký příklad kódu pro blikání LED diod Dragon Rider po jednom. Pomocí plochého kabelu propojte hlavičku LED (J29) se záhlavím PortB (J2).

Programování

Zahrnul jsem soubor C, makefile a hex soubor. Jak jsem zmínil v úvodu, nemohu pokrýt softwarovou stránku programování v Instructable. Programujte jako pro AVR Dragon, protože Dragon Rider vůbec nemění softwarovou stránku věci.

Krok 3: Použití doplňku LCD

Použití doplňku LCD
Použití doplňku LCD

Toto je jednoduchý způsob, jak používat doplněk LCD. Na LCD obrazovku se zapíše „Dragon Rider“.

Hardware:

  • ATtiny2313
  • R/W propojka: R/W by měla být připojena k "BIT1" na desce Dragon Rider (viz vysvětlení v instrukcích pro montáž)
  • J23: Tato propojka musí být nainstalována pro programování ISP, ale poté musí být odstraněna, aby LCD správně fungoval.
  • Připojte LCD k PORT B pomocí plochého kabelu (J31 až J2)

Software

K ovládání LCD ve 4bitovém režimu používám LCD knihovnu Petera Fleuryho. Chcete -li si stáhnout knihovnu, podívejte se na Petrovu domovskou stránku. Budete se muset ujistit, že lcd.c je zkompilován s vaším kódem a že na lcd.h provedete následující změny:

Používáme interní RC oscilátor, takže XTAL je třeba nastavit na 1 MHz:

#definujte XTAL 10 000 000

  • Nastavení portu je třeba upravit na PORTB:
  • #define LCD_PORT PORTB

  • Pinout pro 4 datové linky je třeba upravit:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Pinout pro RS, RW a E je třeba upravit:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Hlavní program je velmi jednoduchý díky práci, kterou Peter Fleury odvedl ve své LCD knihovně. KÓD:

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Inicializace LCD s kurzorem vypnutým lcd_clrscr (); // Vymazání obrazovky LCD lcd_gotoxy (5, 0); // Přesuňte kurzor na toto místo lcd_puts ("Dragon"); // Vložte tento řetězec na LCD lcd_gotoxy (6, 1); // Přesuňte kurzor na toto místo lcd_puts ("Rider"); // Vložte tento řetězec na LCD pro (;;) {// Nedělejte nic navždy (Zpráva již zobrazena na LCD)}}

    Připojen kód

    Připojený kód obsahuje LCD knihovnu Petera Fleuryho (lcd.c a lcd.h) s jeho svolením. Děkuji Petře! Jedinou změnou, kterou jsem provedl, je nastavení správných kolíků v definicích. Balíček si stáhněte na jeho webu: https://www.jump.to/fleury Také jsem zahrnoval makefile, který používám, napsaný Ericem B. Weddingtonem a Jorgem Wunschem. Poslal jsem PM Jorgovi na avrfreaks.net, ale nikdy jsem od něj nedostal odpověď. V makefile došlo k několika změnám, které je možné přizpůsobit Linuxu a Dragon. Děkuji vám oběma, dejte mi prosím vědět, jaké máte preference, když sdílím vaši práci.

    Krok 4: 28kolíkové programování UC ISP (ATmega8)

    28-pin UC ISP Programming (ATmega8)
    28-pin UC ISP Programming (ATmega8)
    28-pin UC ISP Programming (ATmega8)
    28-pin UC ISP Programming (ATmega8)

    Další demonstrace projektu bude využívat ATmega8, což je 28pinový avr. Zde je základní propojovací sada pro ISP programování 28kolíkových mikrokontrolérů.

    Nastavení propojky

    Nastavte propojky na Dragon Rider tak, aby zkraty spojily následující piny. (pin4 je středový kolík pro J22 -J -24) Piny: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Technické informace

    • Spojení J11 a J12 tímto způsobem vám umožní použít tyto piny jako I/O piny. Alternativou by bylo nasměrovat tyto kolíky tak, aby byly spojeny s vnějším krystalem.
    • Připojení J13 tímto způsobem nám umožňuje použít jej jako resetovací kolík. Alternativou by byl tento pin směrovat do záhlaví PORTC pro použití jako pin I/O. (to by mělo mnoho nevýhod, včetně nemožnosti programovat tento čip pomocí ISP).
    • J16 a J22-J24 jsou připojeny tímto způsobem, aby směrovaly příslušné piny (Reset, MISO, MOSI a SCK) do hlavičky ISP AVR Dragon.

    Krok 5: Pokročilé používání LCD a tlačítek: velké hodiny

    Pokročilé použití LCD a tlačítek: velké hodiny
    Pokročilé použití LCD a tlačítek: velké hodiny

    Jedná se o zábavný projekt, který využívá LCD obrazovku a tlačítka. Budeme se zabývat funkcemi hodin v reálném čase a vlastními znaky na LCD displeji. Na obrázku v dolní části můžete vidět čas 19:26:07 pm zobrazený ve velkém na LCD obrazovce. Každé číslo používá k zobrazení velkého čísla mřížku zobrazení znaků 2x2. To využívá písmo původně napsané Xtinus pro projekt XBMC. Tlačítka slouží k nastavení hodin. Vlevo zvyšuje hodiny, Nahoru zvyšuje minuty, Vpravo přepíná mezi 12 a 24 hodinami a Enter resetuje sekundy na nulu. Hodiny nezachovávají příliš dobrý čas, protože používáme velmi nepřesný interní oscilátor, ale tento program lze snadno změnit tak, aby používal mnohem přesnější externí krystal. Podívejte se na to v akci ve videu níže. Vysvětlení, jak tento kód funguje, je na místě, ale teď nemám čas. Prozatím připojte záhlaví LCD (J31) k PORTD (J4) a záhlaví tlačítek (J30) k PORTB (J2). Ujistěte se, že máte SW1 i SW2 ve vypnuté poloze. Připojte AVR Dragon k USB kabelu a druhý konec tohoto kabelu zapojte do počítače. Zapněte SW2 a naprogramujte ATmega8 programovacím softwarem dle vašeho výběru (hex soubor níže; pojistky přepálené do továrního nastavení). UPOZORNĚNÍ: Abyste mohli používat tlačítka Left a Up, budete muset odstranit zkraty z J22 a J24, proveďte to při vypnutém napájení.

    Krok 6: Programování vysokého napětí

    Použil jsem paralelní programování vysokého napětí k vzkříšení ATtiny2313, u kterého jsem nastavil nesprávné nastavení pojistky. Při práci na tomto pokynu jsem to potřeboval podruhé, protože jsem omylem napsal nastavení lfuse, které jsem chtěl, do registru hfuse ….. oops. Paralelní programování vysokého napětí je šikovný nástroj, který máte k dispozici! Níže jsou uvedeny seznamy mých nastavení propojek: POUŽÍVEJTE NA SVÉ VLASTNÍ NEBEZPEČÍ, TENTO TYP PROGRAMOVÁNÍ MŮŽE POŠKOZIT VÁŠ HARDWAR, POKUD NEVÍTE, CO DĚLÁTE !! Paralelní programování vysokého napětí: ATtiny2313 v zásuvce U3: SW1 - OFFSW2 - ONJ5, J6, J7 - připojení pin1 a pin2XTAL1 - připojení pin1 a pin2J16 - připojení pin1 a pin22x5 IDC kabely: PROG_CTRL do PORT D, PROG_DATA do PORT B Všechny ostatní propojky odpojeny (J8-J13, J18, J19, J20, J22-J28, J24) U ostatních čipů byste měli zjistit potřebná nastavení z uživatelské příručky společnosti Atmel k jejich STK500.

    Krok 7: Rozšíření za hranice

    Expanze za hranice představenstva
    Expanze za hranice představenstva

    Rozhraní s prkénkem mi připadá docela snadné. To umožňuje mnohem větší flexibilitu při prototypování a vývoji kódu současně. Níže uvidíte několik prkének připojených k Dragon Rider. Ploché kabely připojuji na jednom konci k příslušným portům. Na druhé straně používám propojovací vodiče k propojení správného vodiče ICD s prkénky.

    Krok 8: Závěr

    Do tohoto Instructable lze zahrnout mnohem více. Právě dnes večer dokončuji adaptér, který vám umožní používat 6pólovou programovací hlavičku, aniž byste draka z Dragon Ridera odstranili. Brzy přidám informace o tom, jak si jeden postavit… Pokud máte další věci, které si myslíte, že je třeba přidat, zanechte komentář.

    Krok 9: Přidání 6kolíkového ISP

    Přidání 6kolíkového ISP
    Přidání 6kolíkového ISP
    Přidání 6kolíkového ISP
    Přidání 6kolíkového ISP
    Přidání 6kolíkového ISP
    Přidání 6kolíkového ISP

    Ke všem svým projektům obvykle stavím 6pinový ISP záhlaví, abych mohl v případě potřeby čip přeprogramovat a nemusel ho sundávat z projektové desky. Dračí jezdec bohužel nemá k dispozici 6kolíkovou hlavičku ISP, ale přišel jsem na to, jak ji zpřístupnit.

    Varování!

    To je hack. Pokud přesně nevíte, jak to funguje, nedělejte to

    Byli jste varováni. Vytvořil jsem vlastní desku adaptéru a 3kolíkový můstek, abych mohl dodávat 6pólovou hlavičku isp. To, co uděláte, je nastavit Dragon Rider na programování a 8kolíkový mikrokontrolér. Pomocí 3kolíkové zásuvky propojuji J8 pro připojení pinů 1 a 3. To směruje hodinový signál do konektoru PortB. Poté vedu propojovací kabel ze záhlaví PortB na desku adaptéru a voila! Níže jsou obrázky …. prosím, prosím, prosím, nedělejte to, pokud opravdu nerozumíte tomu, co děláte, protože byste mohli poškodit AVR Dragon nebo ještě hůře, pokud to uděláte špatně.

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

    Krok 10: Čtečka RSS pomocí sériového připojení a LCD

    Čtečka RSS využívající sériové připojení a LCD
    Čtečka RSS využívající sériové připojení a LCD
    Čtečka RSS využívající sériové připojení a LCD
    Čtečka RSS využívající sériové připojení a LCD

    Pokračuji v hraní s touto vývojovou deskou. Tentokrát jsem strávil část odpoledne vývojem čtení RSS (většinou na straně Pythonu). Nemyslím si, že to zaručuje vlastní instruktáž, takže to přidávám sem.

    Hardware

    Jako vývojovou desku používáme Dragon Rider 500. To poskytuje veškerý hardware, který potřebujete (za předpokladu, že máte všechny doplňkové sady). Jak již bylo řečeno, určitě to můžete udělat s vlastním nastavením hardwaru:

    • Mikrokontrolér ATmega8 (nebo jakýkoli, který má USART a dostatek pinů pro všechna připojení
    • Způsob programování mikrokontroléru (používám AVR Dragon)
    • Čip MAX232 pro sériovou komunikaci
    • Konektor DB9
    • LCD obrazovka HD44780
    • Krystal (použil jsem krystal 8 MHz)
    • Různé kondenzátory a odpory

    Níže je uvedeno schéma. Na Dragon Rideru budeme muset použít určitou kreativitu při směrování spojení. Port D by normálně mohl být připojen přímo k záhlaví LCD. Zde tomu tak není, protože USART potřebný pro sériové připojení používá PD0 a PD1. Kromě toho nelze použít port B, protože pro externí krystaly se používají PB6 a PB7. Na následujícím obrázku je moje řešení tohoto problému. Zapojím plochý kabel do konektorů pro LCD, port B a port D a poté použij propojovací vodiče k vytvoření správných tras. Nezapomeňte připojit napětí a zem k záhlaví LCD.

    Software

    Software pro tento projekt se skládá ze dvou částí, firmwaru pro mikrokontrolér a skriptu python pro škrábání kanálů RSS a jejich odesílání přes sériové připojení. Firmware AVR Opět používám knihovnu LCD Petera Fleuryho (https://jump.to /fleury). Je to výkonné a stručné, univerzální a snadno se mění v nastavení hardwaru. Když se podíváte na připojený soubor záhlaví (lcd.h), uvidíte, že běžím ve 4bitovém režimu s portem D jako datovými bity a portem B jako řídicími bity. Koncept tohoto firmwaru je velmi jednoduchý:

    • Po zapnutí mikrokontrolér zobrazí „RSS Reader“a poté čeká na sériová data.
    • Každý přijatý bajt sériových dat způsobí, že se vyrovnávací paměť 16 znaků posune doleva, přidá bajt do vyrovnávací paměti a poté se zobrazí vyrovnávací paměť.
    • Mikrokontrolér přijímá tři speciální příkazy: 0x00, 0x01 a 0x02. Jedná se o čistou obrazovku, přesun na řádek 0 a přesun na řádek 1.

    Python ScryptI napsal skript pytonu, aby oškrábal data RSS a odeslal je přes sériové připojení. To vyžaduje modul python "pyserial", který budete pravděpodobně muset nainstalovat do svého systému, aby to fungovalo. RSS kanál lze konfigurovat v horní části souboru pyton. Všimněte si, že je třeba zadat název zdroje a také adresu URL zdroje. Existují tři příklady, jsem si jistý, že je můžete sledovat pro správnou syntx. Aby to všechno fungovalo

    • Sestavte hardware
    • Naprogramujte mikrokontrolér (dragon_rss.hex lze použít, pokud to nechcete sestavit sami). Nastavení pojistek pro ATmega8 pomocí krystalu 8 MHz: lfuse = 0xEF hfuse = 0xD9
    • Zapněte Dragon Rider a ujistěte se, že je zapojen sériový kabel (na LCD by mělo být: „RSS Reader“)
    • Spustit program python (python serial_rss.py)
    • Užívat si

    Doporučuje: