Spisu treści:

Programator SPI VUSBTiny AVR: 3 kroki
Programator SPI VUSBTiny AVR: 3 kroki

Wideo: Programator SPI VUSBTiny AVR: 3 kroki

Wideo: Programator SPI VUSBTiny AVR: 3 kroki
Wideo: USBtinyISP AVR ISP программатор 2024, Listopad
Anonim
VUSBTiny AVR Programator SPI
VUSBTiny AVR Programator SPI

po zrobieniu programatora usbtiny isp i używaniu go przez 6 miesięcy, szukałem kolejnego do noszenia. Podoba mi się prostota projektu usbtiny isp, ale chciałbym, aby był jeszcze mniejszy i miał mniej części. jedną rzeczą w oryginalnym projekcie, którą chcę zmienić, jest wyeliminowanie użycia kryształu zegara. jednym z rozwiązań, które znalazłem, jest to, że sterowniki v-usb obsługują wewnętrzny oscylator 16,5 MHz na urządzeniach attiny25/45/85. więc zaczynam ten projekt, aby mieć usbtiny isp zatrudnia v-usb do komunikacji USB. bezpośrednie korzyści to oszczędność miejsca i mniejsza liczba komponentów (brak kryształów). Opis usbtiny z https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny to programowa implementacja USB o niskiej prędkości protokół dla mikrokontrolerów Atmel ATtiny. Oczywiście będzie działać również w serii ATmega. Oprogramowanie jest napisane dla AVR o taktowaniu 12 MHz. Przy tej częstotliwości każdy bit na magistrali USB zajmuje 8 cykli zegara i przy wielu sztuczkach możliwe jest dekodowanie i kodowanie przebiegów USB za pomocą oprogramowania. Sterownik USB wymaga około 1250 do 1350 bajtów pamięci flash (z wyłączeniem opcjonalnych ciągów identyfikacyjnych), w zależności od konfiguracji i wersji kompilatora oraz 46 bajtów pamięci RAM (bez miejsca na stosie). Interfejs C składa się z 3 do 5 funkcji, w zależności od opisu configuration.vusb dostępnego na stronie https://www.obdev.at/products/vusb/ V-USB to implementacja wyłącznie programowa urządzenia USB o niskiej prędkości dla urządzeń firmy Atmel. Mikrokontrolery AVR, dzięki którym można zbudować sprzęt USB z niemal każdym mikrokontrolerem AVR, nie wymagającym żadnego dodatkowego chipa. Film wideo na temat budowy i użytkowania

Krok 1: Funkcje i części

Funkcje i części
Funkcje i części

* Logika programowania z usbtiny isp, wsparcie dojrzałego avr-dude * mały ślad * minimalne komponenty * zasilanie urządzenia docelowego Uwaga, linie io do docelowego mcus nie są chronione. można dodać rezystory 1k-2k do SCK i MOSI i zabezpieczyć się przed ewentualnymi błędnymi połączeniami referencje na podstawie prac znalezionych na v-usb z frameworka https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl/~dicks/avr/usbtiny/parts list * attiny45/85 (85 jest łatwiejszy do zdobycia) * Diody Zenera 3,6V (typy 1n747, BZX79,..unikaj 1W) * Rezystor 68ohm x 2 * Rezystor 1,5K * mini płytka stykowa 170 punktów wiązania * kabel usb (kabel do drukarki dolar shop jest w porządku) * rezystory 1k/2k do ochrony linii io (opcjonalnie) wymagane narzędzia * działający programator avr (tak, to haczyk22, potrzebujemy go do zrobienia) * działające środowisko programistyczne avr

Krok 2: Układ, schemat i konstrukcja płyty chlebowej

Układ, schemat i konstrukcja płytki do krojenia chleba
Układ, schemat i konstrukcja płytki do krojenia chleba
Układ, schemat i konstrukcja płytki do krojenia chleba
Układ, schemat i konstrukcja płytki do krojenia chleba

budowa

* postępuj zgodnie z układem płytki stykowej, nie ma elementów, które mogą, 3 rezystory, 2 diody, 1 nasadka, plus 8-pinowe mcu. * zdobądź kabel usb drukarki dolarowy odetnij koniec drukarki, będą 4 odsłonięte przewody, zabezpiecz i zrób je w 4-pinowy męski nagłówek, użyjemy go do podłączenia do płytki stykowej. zapoznaj się ze schematem układu i przypisania pinów (J1). * uważaj na polaryzację diody.

budowa i obróbka blacharska projektu

projekt został zbudowany w lucid box linux ubuntu z toolchainem avr-gcc. zakłada się, że masz już takie środowisko, lub możesz dowiedzieć się z Internetu, jak je skonfigurować. kody źródłowe są na licencji dziedziczenia gnu gpl v2.

kod źródłowy jest zgodny z konwencją zalecaną przez v-usb, możesz pobrać pakiet źródłowy vusbtiny.tgz i rozpakować go w katalogu projektu. w twoim katalogu źródłowym znajduje się main.c, który jest moją wersją zmodyfikowanego programatora usbtiny. oraz podkatalog usbdrv, który zawiera warstwę v-usb. podczas tworzenia tego należy przestrzegać warunków licencjonowania z powyższych dwóch projektów. moje źródło o logice programisty jest oparte na wersji Dicka Streeflanda, a nie na wersji ladyada (chociaż są one prawie takie same).

dla tych, którzy nie mają kompilacji zbyt-łańcuchowej, możesz użyć następującego pliku binarnego

kliknij, aby pobrać vusbtiny.hex

i użyj avrdude do flashowania oprogramowania układowego!

avrdude -c usbtiny -p t45 -e -V -U flash:w:usbtiny.hex

(jeśli twoje urządzenie to tiny85, zamień -p t45 na -p t85)

źródło można pobrać tutaj kliknij, aby pobrać vusbtiny.tgz

rozpakuj pakiet źródłowy do swojego katalogu roboczego

tar -zxvf vusbtiny.tgz

* wykonaj cd vsubtiny, aby przejść do katalogu roboczego vusbtiny * dostosuj plik makefile dla urządzenia docelowego zgodnie z chipem, którego będziesz używać. np. PROGRAMMER_MCU=t45 lub t85 * wykonaj make * dołącz swojego ulubionego programistę ISP * zmodyfikuj plik makefile i zmień parametry avrdude w razie potrzeby. zapasowy zakłada programator USBTiny. tj. AVRDUDE_PROGRAMMERID=usbtiny * flashowanie firmware przez make install

po sflashowaniu firmware musimy odpowiednio ustawić bezpiecznik, używamy reset pin 1 jako io w tym projekcie

* zegar ppl używany zgodnie z wymaganiami warstwy v-usb dla taktowania usb * reset pin wyłączony, ponieważ musimy go używać jako io

avrdude -c usbtiny -p t45 -V -U bezpiecznik:s:0xe1:m -U bezpiecznik:s:0x5d:m -U bezpiecznik:s:0xff:m

to ustawienie wyłącza dalsze programowanie przez 5V SPI, ponieważ potrzebujemy pinu RESET (pin1) dla io. będziesz potrzebować dostępu do programatora HVSP, aby odzyskać bezpiecznik.

Krok 3: Użycie i aplikacja

Użytkowanie i zastosowanie
Użytkowanie i zastosowanie
Użytkowanie i zastosowanie
Użytkowanie i zastosowanie
Użytkowanie i zastosowanie
Użytkowanie i zastosowanie

bezpośrednie flashowanie na płytce stykowej

jeśli używasz vusbtiny do flashowania 8-pinowych urządzeń AVR, możesz po prostu nacisnąć urządzenie docelowe na górze urządzenia programatora. programator został zaprojektowany tak, aby piny programujące pasowały do celów. jest jednak jedna sztuczka, musisz odizolować piny 2 i 3 na MCU programatora, ponieważ są to piny USB D+ i D- łączące się z komputerem. używam do tego kawałka taśmy klejącej, widać to na zdjęciach. pokaż poniżej jest tiny13v "jazdy" na tiny45, gotowe do odbioru oprogramowania.

ISP miga przez zworkę

aby zaprogramować obwód docelowy przez ISP (programowanie w systemie), potrzebny jest kabel ISP. tutaj nie używam standardowych złączy kołkowych 2x3 lub 2x5. zamiast tego używam zworki 1x6, która jest bardziej przyjazna dla płytki prototypowej, możesz utworzyć nagłówek pinów 2x3 lub 2x5, mapując je na J2, jak pokazano na układzie i schemacie płytki prototypowej. Poniższe zdjęcie pokazuje tiny2313 gotowe do flashowania przez ISP.

rozwiązywanie problemów

* nie można sflashować oprogramowania? sprawdź swojego oryginalnego programistę, może być konieczne dostosowanie czasu za pomocą flagi -B w avrdude. spróbuj odczytać chip 1st, może to być zły bezpiecznik, może twój chip potrzebuje zewnętrznego sygnału zegara. być może będziesz musiał przywrócić swój chip do domyślnego 1. * sprawdź połączenia * jeśli używasz różnych pinów io, sprawdź kod i połączenia * możesz zastąpić diody Zenera typami 500mw, 400mw * możesz spróbować zmniejszyć wartość R3 do 1,2K lub mniej * bardziej prawdopodobne jest wystąpienie poważnych problemów z synchronizacją, spróbuj -B flaga avrdude, posiada krótszy kabel USB, wszystko to pomaga

Zalecana: