Spisu treści:

Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2: 9 kroków
Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2: 9 kroków

Wideo: Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2: 9 kroków

Wideo: Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2: 9 kroków
Wideo: Jak skompilować kod w C i zaprogramować układ AVR: ATTINY / ATMEGA z USBASP + AVR-GCC + AVRDUDE 2024, Grudzień
Anonim
Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2
Jak używać pinów GPIO i Avrdude Raspberry Pi do programu Bit-bang-DIMP 2 lub DA PIMP 2

Są to instrukcje krok po kroku, jak używać Raspberry Pi i darmowego polecenia open-source do programowania bit-bang DIMP 2 lub DA PIMP 2. Zakładam, że znasz swoje Raspberry Pi i LINUX wiersz poleceń. Nie musisz znać się na programowaniu układów AVR, ale pomaga, jeśli coś pójdzie nie tak, ponieważ możesz odczytać dane wyjściowe avrdude i mieć pewne pojęcie, co robić.

Ta procedura powinna zająć około 1 godziny za pierwszym razem i 5 do 10 minut za każdym razem.

Będziesz potrzebować:

1) Raspberry Pi z pinami GPIO i zasilaczem. Używam Raspberry Pi Zero W z przylutowanymi pinami GPIO. System operacyjny powinien być Raspberry Pi OS (dawniej Raspbian). Używam Raspbian Lite (Stretch), który jest trochę stary. Te polecenia powinny nadal działać w najnowszej wersji Raspberry Pi OS.

Idąc dalej będę określał Raspberry Pi jako „RPi”.

2) Przewody połączeniowe żeńsko-żeńskie. Zdobądź jeden z tych kolorów: czerwony, czarny, niebieski, żółty, zielony, fioletowy. Używam brązu zamiast fioletu.

3) DIMP 2 lub DA PIMP 2 z wlutowanym opcjonalnym 10-pinowym złączem ICSP. Używam tutaj DIMP 2, ale instrukcje są takie same dla DA PIMP 2.

4) Dostęp do Internetu dla RPi, dzięki czemu można zainstalować bezpłatne polecenie avrdude o otwartym kodzie źródłowym.

5) Kopia pliku flash.hex dla twojego DIMP 2 lub DA PIMP 2. Możesz sam zbudować plik.hex z surowego kodu źródłowego, ale nie będę ci tutaj pokazywał, jak to zrobić.

6) Jakiś sposób na zalogowanie się do RPi - użyj połączenia sieciowego lub bezpośredniego dostępu do konsoli. Musisz mieć możliwość uruchamiania na nim poleceń.

Krok 1: Odłącz przewód zasilający i wyjmij baterię 9V

Najpierw sprawdź, czy przewód zasilający AC jest podłączony do DIMP 2 lub DA PIMP 2 i czy jest podłączony do sieci AC. Jeśli tak, NIEBEZPIECZEŃSTWO: RYZYKO PORAŻENIA ŚMIERTELNEGO. Załóż gumowe rękawiczki, a następnie wyłącz główny przełącznik kołyskowy na DIMP 2 lub DA PIMP 2. Następnie odłącz przewód zasilający AC od sieci AC i odłącz przewód zasilający AC od DIMP 2 lub DA PIMP 2. zdjąć gumowe rękawiczki po odłączeniu przewodu zasilającego.

Następnie wyjmij baterię 9V. Zasilanie będzie dostarczane do DIMP 2 przez RPi przez czerwone (Vcc) i czarne (GND) przewody. Na wszelki wypadek ustaw przełącznik suwakowy na DIMP 2 lub DA PIMP 2 w pozycji wyłączonej.

Krok 2: Podłącz przewody połączeniowe

Podłącz przewody połączeniowe
Podłącz przewody połączeniowe
Podłącz przewody połączeniowe
Podłącz przewody połączeniowe
Podłącz przewody połączeniowe
Podłącz przewody połączeniowe
Podłącz przewody połączeniowe
Podłącz przewody połączeniowe

Gdy RPi nie jest włączone, zacznij podłączać przewody połączeniowe. Idąc dalej, piny GPIO znajdują się na Raspberry Pi, a piny ICSP na DIMP 2 (nagłówek J3) lub DA PIMP 2 (nagłówek J1).

Zapoznaj się ze schematem, który ułożyłem, i zdjęciami, jeśli się zgubiłeś.

Część diagramu dotycząca RPi pochodzi z pinout.xyz.

Część schematu ATMEGA48V-10PU jest chroniona prawem autorskim 2016 Atmel Corp.

Twierdzę, że te rysunki są dozwolone ze względu na znaczące, transformacyjne dodatki.

Czarny przechodzi z pinu 6 GPIO do pinu 10 ICSP. To jest GND (masa)

Żółty przechodzi z pinu 12 GPIO do pinu 9 ICSP. To jest MISO.

Zielony przechodzi z pinu 16 GPIO do pinu 1 ICSP. To jest MOSI.

Niebieski przechodzi z pinu 18 GPIO do pinu 7 ICSP. To jest SCK lub SCLK (SClock)

Fioletowy (brązowy na moich zdjęciach) przechodzi z pinu 32 GPIO do pinu 5 ICSP. To jest RESET.

Czerwony przechodzi z pinu 4 GPIO do pinu 2 ICSP. To jest Vcc (zasilanie 5 V)

Krok 3: Włącz RPi

Teraz idź dalej i włącz RPi. Część woltomierza DIMP 2 lub DA PIMP 2 również powinna się zasilić, ale nie poznasz tego patrząc na wyświetlacz. W razie wątpliwości zmierzyć napięcie czerwoną sondą na pinie 20 na ATMEGA48V-10PU i czarną sondą na pinie 4, 6 lub 8 na złączu ICSP. Powinno wynosić około 5VDC.

Krok 4: Zainstaluj Avrdude

Moje instrukcje pokażą tylko polecenia wiersza poleceń. Jeśli masz uruchomiony GUI, będziesz chciał otworzyć Terminal, aby uruchomić te polecenia wiersza poleceń.

Zaloguj się jako domyślny użytkownik pi. Domyślne hasło to malina

Zainstaluj polecenie avrdude, wpisując następujące polecenie w wierszu poleceń terminala:

sudo apt-get install avrdude

Krok 5: Edytuj plik konfiguracyjny Avrdude

Edytuj plik konfiguracyjny avrdude, wpisując:

sudo nano /etc/avrdude.conf

Dodaj te wiersze w środku pliku, gdzie znajdują się inne definicje programisty. To, co zrobiłem, to skopiowanie sekcji programisty tuż nad nią dla id = "linuxgpio", a następnie wklejenie jej tuż poniżej (w linii 1274), a następnie edytowanie nowej sekcji.

programista

id = "pi_1"; desc = "Użyj interfejsu sysfs Linuksa do bitów linii GPIO"; typ = "linuxgpio"; reset = 12; sck = 24; mosi = 23; miso = 18;;

Następnie zapisz plik, naciskając: Ctrl-O

A następnie wyjdź z edytora nano, naciskając: Ctrl-X

Krok 6: Pobierz lub skopiuj plik Flash.hex do /home/pi

Skopiuj plik flash.hex do RPi. Zakładam, że wiesz, jak to zrobić. WSKAZÓWKA: Użyj polecenia wget, curl, git lub scp, aby przenieść plik z sieci do RPi.

Plik.hex programu DIMP 2 jest tutaj, wraz z kodem źródłowym:

github.com/dchang0/dimp2

Spersonalizowana wersja pliku.hex programu DA PIMP 2 jest tutaj. Nie testowałem tego!

github.com/jcwren/DaPimp2

Jeśli powyższa wersja pliku.hex DA PIMP 2 nie działa, oryginalny kod źródłowy DA PIMP 2 Mikeya Sklara jest tutaj. Będziesz musiał sam skompilować go do działającego pliku.hex. Nie opisuję tego w tej instrukcji, ponieważ będzie to długi (ale nie trudny) samouczek. Z powodzeniem zaprogramowałem kilka działających jednostek DA PIMP 2 za pomocą tego kodu źródłowego:

drive.google.com/open?id=0Bx5Als-UeiZbSUdH…

Możesz też przejść do głównej strony DA PIMP 2 tutaj i kliknąć link do kodu źródłowego.

mikeysklar.blogspot.com/p/da-pimp-battery-…

Umieść plik.hex w tej ścieżce i nazwie pliku w RPi…

Dla DIMP 2:

/home/pi/dimp2.hex

Dla DA PIMP 2:

/home/pi/da_pimp2.hex

Krok 7: Sprawdź, czy Avrdude może rozmawiać z ATMEGA48V-10PU

Uruchom polecenie avrdude, aby upewnić się, że może komunikować się z układem ATMEGA48V-10PU na DIMP 2 lub DA PIMP 2.

cd /home/pi

sudo avrdude -c pi_1 -p m48 -v

Dostaniesz o stronie wyjścia. Spójrz na koniec. Jeśli otrzymasz taką odpowiedź, możesz kontynuować.

avrdude: urządzenie AVR zainicjowane i gotowe do przyjęcia instrukcji

Czytanie | ################################################## | 100% 0,00s

Jeśli nie, to coś jest nie tak i powinieneś to rozgryźć. Najprawdopodobniej jest to błędne okablowanie, ale innym powszechnym zarzutem, jaki widziałem, jest to, że układ ATMEGA48V-10PU jest fałszywy. Wygląda na to, że wiele z nich sprzedawanych na Amazon lub ebayu to podróbki. Te sprzedawane przez Mouser lub Digikey i innych autoryzowanych dystrybutorów są oryginalne.

Krok 8: Flashuj plik.hex do ATMEGA48V-10PU

Uruchom to polecenie, aby zaprogramować układ…

Dla DIMP 2:

cd /home/pi

sudo avrdude -c pi_1 -p m48 -U flash:w:dimp2.hex

Dla DA PIMP 2:

cd /home/pi

sudo avrdude -c pi_1 -p m48 -U flash:w:da_pimp2.hex

Dostaniesz o stronie wyjścia. Poszukaj tych linii:

avrdude: pisanie flasha (1528 bajtów):

Pisanie | ################################################## | 100% 0,79s

avrdude: weryfikacja …

avrdude: 1528 bajtów zweryfikowanych przez flash avrdude: safemode: Bezpieczniki OK (E:FF, H:DF, L:62)

Jeśli dotarłeś tak daleko, powinieneś zobaczyć wyświetlacz LED pokazujący zera napięcia. Jeśli widzisz zera, gotowe! Jeśli nie, przejdź do następnego kroku.

Jeśli widzisz zera, wdzięcznie zamknij RPi za pomocą tego polecenia:

wyłączanie sudo -h teraz

Gdy kontrolka zasilania na RPi zgaśnie (DIMP 2 lub DA PIMP 2 będą nadal włączone), możesz odłączyć zasilanie od RPi. Następnie odłącz przewody połączeniowe między RPi a DIMP 2 lub DA PIMP 2.

Krok 9: Proste rozwiązywanie problemów w przypadku awarii lampy błyskowej

Jeśli nie widzisz zer na wyświetlaczu DIMP 2 lub DA PIMP 2, czas rozwiązać problem.

Ponownie sprawdź najpierw okablowanie.

Następnie sprawdź stany bezpieczników pokazane przez avrdude. Możliwe, że twój chip został dostarczony z bezpiecznikami ustawionymi na inne wartości niż domyślne. Chip może wymagać zresetowania bezpieczników, co wymaga zupełnie innego urządzenia sprzętowego. Jest to problem z wieloma fałszywymi chipami ATMEGA48V-10PU sprzedawanymi w serwisie eBay - są to stare chipy wyciągnięte z wyrzuconego sprzętu, a bezpieczniki zostały ustawione, a sprzedawca nie zadał sobie trudu, aby je zresetować.

Czasami chip nie jest nawet ATMEGA48V-10PU. Mógłby to być inny chip o zmienionej nazwie. Zazwyczaj można rozpoznać te podróbki, uważnie przyglądając się oznaczeniom na górze i na dole chipa. Rozsądniej jest kupić ATMEGA48V-10PU od zaufanego dostawcy, takiego jak Mouser lub Digikey.

Zalecana: