Spisu treści:

Jak używać Dragon Rider 500 z AVR Dragon: 10 kroków
Jak używać Dragon Rider 500 z AVR Dragon: 10 kroków

Wideo: Jak używać Dragon Rider 500 z AVR Dragon: 10 kroków

Wideo: Jak używać Dragon Rider 500 z AVR Dragon: 10 kroków
Wideo: Dragon Ball Characters Before Death😭 2024, Listopad
Anonim
Jak używać Dragon Rider 500 z AVR Dragon?
Jak używać Dragon Rider 500 z AVR Dragon?

Ta instrukcja jest szybkim kursem korzystania z niektórych funkcji Dragon Rider 500 firmy Ecos Technologies. Należy pamiętać, że na stronie internetowej Ecros dostępny jest bardzo szczegółowy przewodnik użytkownika.

Dragon Rider to płyta interfejsu do użytku z programatorem mikrokontrolera AVR o nazwie AVR Dragon firmy Atmel. Więcej informacji: 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 firmy Ecos Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Montaż Dragon Rider 500 Instrukcja: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/ Dowiedz się wszystkiego o mikrokontrolerach AVR: https://www.avrfreaks.net Ta instrukcja może z czasem rosnąć, więc sprawdzaj ją od czasu do czasu!

Krok 1: Koleś AVR

Aby używać AVR Dragon do programowania, potrzebujesz oprogramowania do programowania. Używam AVRdude z systemem operacyjnym Ubuntu (linux) i jestem bardzo zadowolony z wyników. Ta instrukcja nie zajmie się zawiłościami oprogramowania programistycznego. Jeśli nie wiesz, jak skonfigurować lub korzystać z oprogramowania do programowania, sprawdź tę instrukcję, aby przyspieszyć: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-smok/Domyślam się, że jeśli kupiłeś i zmontowałeś Dragon Rider 500, wiesz już, jak zaprogramować chip za pomocą AVR Dragon… dalej!

Krok 2: ATtiny2313 - Migaj diodami

ATtiny2313 - Migaj diodami
ATtiny2313 - Migaj diodami
ATtiny2313 - Migaj diodami
ATtiny2313 - Migaj diodami
ATtiny2313 - Migaj diodami
ATtiny2313 - Migaj diodami

Zaprogramujmy ATtiny2313, który jest 20-pinowym mikrokontrolerem. Dragon Rider 500 posiada gniazda dla kilku różnych wielkości mikrokontrolerów AVR. Należą do nich: 8, 20, 28 i 40-pinowe gniazda. W zależności od używanego gniazda, zworki na planszy Dragon Rider muszą być ustawione inaczej.

Ustawienia zworek

Ustaw zworki na Smoczym Jeźdźcu tak, aby boczniki łączyły kolejne styki. (pin4 jest środkowym pinem dla J22-J-24) Piny:J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Jest to podstawowa konfiguracja, która pozwala na ISP (w programowaniu systemowym).

Blinky Blinky

Programowanie na nic się nie zda, jeśli nie masz czegoś do zaprogramowania. Napisałem bardzo krótki przykład kodu, aby migać pojedynczo diody LED Dragon Rider. Użyj kabla taśmowego, aby podłączyć nagłówek LED (J29) do nagłówka PortB (J2).

Programowanie

Dołączyłem plik C, a także makefile i plik hex. Jak wspomniałem we wstępie, nie mogę omówić strony programowej programowania w Instructable. Program taki jak dla AVR Dragon, ponieważ Dragon Rider w ogóle nie zmienia oprogramowania.

Krok 3: Korzystanie z dodatku LCD

Korzystanie z dodatku LCD
Korzystanie z dodatku LCD

Oto prosty sposób korzystania z dodatku LCD. Spowoduje to wypisanie „Dragon Rider” na ekranie LCD.

Sprzęt komputerowy:

  • ATtiny2313
  • Zworka R/W: R/W powinna być podłączona do „BIT1” na płycie Dragon Rider (patrz wyjaśnienie w Instrukcji montażu)
  • J23: Ta zworka musi być zainstalowana w celu programowania przez ISP, a następnie usunięta, aby wyświetlacz LCD działał prawidłowo.
  • Podłącz LCD do PORT B za pomocą kabla taśmowego (J31 do J2)

Oprogramowanie

Używam biblioteki LCD Petera Fleury do sterowania wyświetlaczem LCD w trybie 4-bitowym. Sprawdź stronę domową Petera, aby pobrać bibliotekę. Musisz się upewnić, że lcd.c jest skompilowany z twoim kodem i że dokonałeś następujących zmian w lcd.h:

Używamy wewnętrznego oscylatora RC, więc XTAL musi być ustawiony na 1MHz:

#define XTAL 1000000

  • Ustawienia portu należy dostosować do PORTB:
  • #define LCD_PORT PORTB

  • Należy dostosować pinout dla 4 linii danych:
  • #Define LCD_DATA0_PIN 4 #Define LCD_DATA1_PIN 5 #Define LCD_DATA2_PIN 6 #Define LCD_DATA3_PIN 7

  • Pinout dla RS, RW i E wymaga dostosowania:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    Główny program jest bardzo prosty dzięki pracy, jaką Peter Fleury wykonał w swojej bibliotece LCD. KOD:

    #include #include "lcd.h"int main(void){ lcd_init(LCD_DISP_ON); //Zainicjuj LCD z wyłączonym kursorem lcd_clrscr(); //Wyczyść ekran LCD lcd_gotoxy(5, 0); //Przenieś kursor w to miejsce lcd_puts("Smok"); //Umieść ten ciąg na wyświetlaczu LCD lcd_gotoxy(6, 1); //Przenieś kursor w to miejsce lcd_puts("Jeździec"); //Umieść ten ciąg na wyświetlaczu LCD for (;;) { // Nie rób nic wiecznie (wiadomość jest już wyświetlana na wyświetlaczu LCD) }}

    Dołączony kod

    Załączony kod zawiera bibliotekę LCD Petera Fleury'ego (lcd.c i lcd.h) za jego zgodą. Dziękuję Piotrze! Jedyną zmianą, jaką w nim wprowadziłem, jest ustawienie właściwych pinów w Define. Proszę odwiedzić jego stronę, aby pobrać pakiet: https://www.jump.to/fleuryDołączyłem również plik makefile, którego używam, napisany przez Erica B. Weddingtona i Jorga Wunscha. Wysłałem PW do Jorga na avrfreaks.net, ale nigdy nie otrzymałem od niego odpowiedzi. W pliku makefile wprowadzono kilka zmian, aby dostosować je do korzystania z Linuksa i Smoka. Dziękuję wam obojgu, proszę, poinformuj mnie o swoich preferencjach dotyczących dzielenia się twoją pracą.

    Krok 4: 28-pinowe programowanie ISP UC (ATmega8)

    28-pinowe programowanie ISP UC (ATmega8)
    28-pinowe programowanie ISP UC (ATmega8)
    28-pinowe programowanie ISP UC (ATmega8)
    28-pinowe programowanie ISP UC (ATmega8)

    Kolejna demonstracja projektu będzie wykorzystywała ATmega8, który jest 28-pinowym avr. Oto podstawowy zestaw zworek do programowania 28-pinowych mikrokontrolerów przez ISP.

    Ustawienia zworek

    Ustaw zworki na Smoczym Jeźdźcu tak, aby boczniki łączyły kolejne styki. (pin4 to środkowy pin dla J22-J-24) Piny:J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Specyfikacja

    • Połączenie J11 i J12 w ten sposób pozwala używać tych pinów jako pinów we/wy. Alternatywą byłoby poprowadzenie tych pinów w celu połączenia z zewnętrznym kryształem.
    • Podłączenie J13 w ten sposób pozwala nam wykorzystać go jako pin resetujący. Alternatywą byłoby skierowanie tego pinu do nagłówka PORTC do wykorzystania jako pin I/O. (miałoby to wiele wad, w tym brak możliwości zaprogramowania tego chipa za pomocą ISP).
    • J16 i J22-J24 są połączone w ten sposób, aby poprowadzić odpowiednie piny (Reset, MISO, MOSI i SCK) do nagłówka ISP AVR Dragon.

    Krok 5: Zaawansowane użycie wyświetlacza LCD i przycisków: duży zegar

    Zaawansowane użycie wyświetlacza LCD i przycisków: duży zegar
    Zaawansowane użycie wyświetlacza LCD i przycisków: duży zegar

    To zabawny projekt, który wykorzystuje ekran LCD i przyciski. Będziemy mieli do czynienia z funkcjami zegara czasu rzeczywistego i niestandardowymi znakami na wyświetlaczu LCD. Na zdjęciu na dole widać godzinę 19:26:07 wyświetlaną dużymi liczbami na ekranie LCD. Każda liczba wykorzystuje siatkę 2x2 wyświetlanych znaków, aby pokazać dużą liczbę. Wykorzystuje czcionkę oryginalnie napisaną przez Xtinus dla projektu XBMC. Przyciski służą do ustawiania zegara. W lewo zwiększa godziny, w górę minuty, w prawo przełącza między czasem 12 a 24-godzinnym, a Enter resetuje sekundy do zera. Zegar nie odmierza zbyt dobrze czasu, ponieważ używamy bardzo niedokładnego wewnętrznego oscylatora, ale ten program można łatwo zmienić tak, aby używał znacznie dokładniejszego zewnętrznego kryształu. Zobacz to w akcji na poniższym filmie. Wyjaśnienie, jak działa ten kod, jest w porządku, ale nie mam teraz czasu. Na razie podłącz złącze wyświetlacza LCD (J31) do portu PORTD (J4), a złącze przycisku (J30) do portu PORTB (J2). Upewnij się, że oba przełączniki SW1 i SW2 są wyłączone. Podłącz AVR Dragon do kabla USB i podłącz drugi koniec tego kabla do komputera. Włącz SW2 i zaprogramuj ATmega8 wybranym programem do programowania (plik szesnastkowy poniżej; bezpieczniki spalone do ustawień fabrycznych). to, gdy zasilanie jest wyłączone.

    Krok 6: Programowanie wysokiego napięcia

    Użyłem programowania równoległego wysokiego napięcia, aby wskrzesić ATtiny2313, w którym ustawiłem niewłaściwe ustawienia bezpieczników. Potrzebowałem tego po raz drugi podczas pracy nad tym instruktażem, ponieważ przypadkowo napisałem ustawienie bezpiecznika, które chciałem, do rejestru bezpiecznika….. ooops. Programowanie równoległe wysokiego napięcia jest poręcznym narzędziem do Twojej dyspozycji! Poniżej znajduje się lista moich ustawień zworek: UŻYWAJ NA WŁASNE RYZYKO, TEN TYP PROGRAMOWANIA MOŻE USZKODZIĆ SPRZĘT, JEŚLI NIE WIESZ CO ROBISZ!! Programowanie równoległe wysokiego napięcia: ATtiny2313 w gnieździe U3:SW1 - OFFSW2 - ONJ5, J6, J7 - połącz pin1 i pin2XTAL1 - połącz pin1 i pin2J16 - połącz pin1 i pin22x5 Kable IDC: PROG_CTRL do PORT D, PROG_DATA do PORT B Wszystkie inne zworki niepodłączone (J8-J13, J18, J19, J20, J22-J28, J24) W przypadku innych układów powinieneś być w stanie znaleźć potrzebne ustawienia z instrukcji obsługi Atmela dla ich STK500.

    Krok 7: Rozszerzanie poza tablicę

    Rozszerzanie poza tablicę
    Rozszerzanie poza tablicę

    Wydaje mi się, że interfejs z płytą prototypową jest dość łatwy. Pozwala to na znacznie większą elastyczność w prototypowaniu i tworzeniu kodu w tym samym czasie. Poniżej zobaczysz kilka płytek prototypowych połączonych z Dragon Riderem. Podłączam kable taśmowe do odpowiednich portów na jednym końcu. Z drugiej strony używam zworek do połączenia właściwego przewodu ICD z płytkami stykowymi.

    Krok 8: Wniosek

    Jest o wiele więcej rzeczy, które można zaangażować w ten Instruktaż. Właśnie dziś wieczorem skompletowałem adapter, który umożliwia korzystanie z 6-pinowego złącza programującego bez wyjmowania smoka z Dragon Rider. Będę zamieszczać informacje o tym, jak samemu je skonstruować… wkrótce. Jeśli masz inne rzeczy, które Twoim zdaniem należy dodać, zostaw komentarz.

    Krok 9: Dodawanie 6-pinowego dostawcy usług internetowych

    Dodawanie 6-pinowego ISP
    Dodawanie 6-pinowego ISP
    Dodawanie 6-pinowego ISP
    Dodawanie 6-pinowego ISP
    Dodawanie 6-pinowego ISP
    Dodawanie 6-pinowego ISP

    Zazwyczaj do wszystkich moich projektów wbudowuję 6-pinowe złącze ISP, dzięki czemu mogę przeprogramować układ w razie potrzeby i nie muszę go zdejmować z płytki projektowej. Dragon rider niestety nie ma dostępnego 6-pinowego złącza ISP, ale wymyśliłem, jak go udostępnić.

    Ostrzeżenie!

    To jest hack. Jeśli nie wiesz dokładnie, jak to działa, nie rób tego

    Zostałeś ostrzeżony. Stworzyłem własną płytkę adaptera i 3-pinową zworkę do zasilania 6-pinowego złącza ISP. To, co robisz, to ustawianie Dragon Ridera na zaprogramowanie i 8-pinowy mikrokontroler. Używając 3-pinowego gniazda zwieram J8, aby połączyć piny 1 i 3. To kieruje sygnał zegara do złącza PortB. Następnie prowadzę kabel połączeniowy z nagłówka PortB do mojej płytki adaptera i voila! Poniżej znajdują się zdjęcia…. proszę, proszę, proszę, nie rób tego, chyba że naprawdę rozumiesz, co robisz, ponieważ możesz uszkodzić swojego AVR Dragona lub gorzej, jeśli zrobisz to źle.

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

    Krok 10: Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD

    Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD
    Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD
    Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD
    Czytnik RSS przy użyciu połączenia szeregowego i wyświetlacza LCD

    Nadal bawię się tą tablicą rozwojową. Tym razem spędziłem część popołudnia na rozwijaniu czytnika RSS (głównie po stronie pytona). Nie sądzę, że gwarantuje to własne instrukcje, więc dodaję to tutaj.

    Sprzęt komputerowy

    Używamy Dragon Rider 500 jako płyty rozwojowej. Zapewnia to cały potrzebny sprzęt (zakładając, że masz wszystkie dodatkowe zestawy). Biorąc to pod uwagę, z pewnością możesz to zrobić z własną konfiguracją sprzętu:

    • Mikrokontroler ATmega8 (lub dowolny, który ma USART i wystarczającą ilość pinów do wszystkich połączeń)
    • Sposób na zaprogramowanie mikrokontrolera (ja używam AVR Dragon)
    • Układ MAX232 do komunikacji szeregowej
    • Złącze DB9
    • Ekran LCD HD44780
    • Kryształ (użyłem kryształu 8MHz)
    • Różne kondensatory i rezystory

    Schemat znajduje się poniżej. Na Smoczym Jeźdźcu będziemy musieli użyć trochę kreatywności, aby poprowadzić połączenia. Normalnie Port D może być podłączony bezpośrednio do nagłówka LCD. W tym przypadku tak nie jest, ponieważ USART potrzebny do połączenia szeregowego używa PD0 i PD1. Co więcej, port B nie może być używany, ponieważ PB6 i PB7 są używane dla zewnętrznego kryształu. Na zdjęciu poniżej moje rozwiązanie tego problemu. Podłączam kabel taśmowy do gniazd wyświetlacza LCD, portu B i portu D, a następnie używam przewodów połączeniowych, aby utworzyć odpowiednie trasy. Nie zapomnij podłączyć napięcia i masy do złącza LCD.

    Oprogramowanie

    Oprogramowanie do tego projektu składa się z dwóch części: firmware dla mikrokontrolera i skrypt Pythona do zgarniania kanałów RSS i wysyłania ich przez połączenie szeregowe. AVR Firmware Ponownie korzystam z biblioteki LCD Petera Fleury (https://jump.to /fleury). Jest potężny i zwięzły, wszechstronny i łatwy do dostosowania do konfiguracji sprzętu. Jeśli spojrzysz na załączony plik nagłówkowy (lcd.h), zobaczysz, że pracuję w trybie 4-bitowym z Portem D jako bitami danych i Portem B jako bitami kontrolnymi. Koncepcja tego oprogramowania jest dość prosta:

    • Po włączeniu mikrokontroler wyświetla komunikat „RSS Reader” i czeka na dane szeregowe.
    • Każdy odebrany bajt danych szeregowych powoduje przesunięcie 16-znakowego bufora w lewo i dodanie bajtu do bufora, a następnie wyświetlenie bufora.
    • Mikrokontroler akceptuje trzy specjalne polecenia: 0x00, 0x01 i 0x02. Są to wyczyść ekran, przejdź do wiersza 0 i odpowiednio do wiersza 1.

    Python ScryptI napisał skrypt Pythona, aby zeskrobać dane RSS i wysłać je przez połączenie szeregowe. Wymaga to modułu Pythona „pyserial”, który prawdopodobnie będziesz musiał zainstalować w swoim systemie, aby to zadziałało. Kanał RSS można skonfigurować w górnej części pliku Pythona. Zwróć uwagę, że musisz podać nazwę kanału oraz jego adres URL. Są tam trzy przykłady, jestem pewien, że możesz je śledzić, aby uzyskać poprawną składnię. Aby wszystko działało

    • Złóż sprzęt
    • Zaprogramuj mikrokontroler (dragon_rss.hex może być użyty, jeśli nie chcesz tego sam kompilować). Ustawienia bezpieczników dla ATmega8 przy użyciu kryształu 8 MHz: lfuse= 0xEF hfuse=0xD9
    • Włącz Dragon Rider i upewnij się, że kabel szeregowy jest podłączony (na wyświetlaczu LCD powinien pojawić się komunikat: „Czytnik RSS”)
    • Uruchom program Pythona (python serial_rss.py)
    • Cieszyć się

    Zalecana: