Zauważyłem, że ostatnio w internecie furorę robi płytka Digispark, oparta o Attiny85, którą można programować za pomocą najnowszego Arduino IDE. Ciekawą cechą, którą posiada ta płytka jest możliwość emulacji klawiatury, myszki itp. Co prawda można zamówić Digisparka od majfriendów za ok. 6 zł, ale cóż byliby z nas majsterkowicze, gdybyśmy nie zrobili go sami :) Zabierzmy się więc do roboty!
Potrzebne części
Swój schemat zbudowałem na podstawie oryginalnego schematu Digispark dostępnego tutaj. Ja jednak trochę go przerobiłem. Najbardziej widoczne zmiany to usunięcie stabilizatora 5V oraz dwóch LEDów.
Oto rzeczy, których będziemy potrzebowali do zbudowania naszej płytki:
- Attiny85 – 1szt.
- Rezystor 68 Ohm (lub podobny, ja użyłem 75 Ohm) – 2 szt.
- Rezystor 1,5 kOhm (lub podobny, ja użyłem 2,2 kOhm) – 1 szt.
- Diody Zenera 3V3 – 2 szt.
- Kondensatory ceramiczne 100 nF – 2 szt.
- Końcówka USB lub sam kabelek – 1 szt.
- Trochę goldpinów
- Arduino (w celu wgrania bootloadera na Attiny85)
Schemat oraz projekt płytki
EDIT 07.09.2015: UWAGA! Zasugerowany numerami pinów złącza USB w EAGLE podłączyłem całość na schemacie tak jak wg. specyfikacji USB czyli 1 – VCC, 4 – GND itd. Niestety dzisiaj dopatrzyłem się, że złącze USB, którego użyłem w schemacie i na płytce to złącze ŻEŃSKIE tak więc jeśli chcecie lutować tam złącze MĘSKIE należy to zrobić od dołu tak, żeby piny stworzyły lustrzane odbicie.
Wystarczy ten projekt przenieść na laminat pokryty warstwą miedzi metodą termotransferu, a następnie wytrawić naszą płytkę.
Pliki EAGLE dostępne tutaj.
Kiedy nasza płytka jest już wytrawiona, wywiercona i posmarowana kalafonią możemy wlutować na nią wszystkie części. Najlepiej wlutować podstawkę DIP8 zamiast mikroprocesora w razie, gdybyśmy się jednak rozmyślili. Poza tym, jeśli chcemy jednak na 100% wlutować tam Attiny85 to pamiętajmy, że najpierw musimy wgrać bootloader.
Tak to wygląda u mnie:
Wgrywanie bootloadera za pomocą Arduino IDE
Upewniamy się, że mamy zainstalowane na naszym komputerze Arduino IDE w wersji przynajmniej 1.6.5. Jeśli tak, to klikamy Plik -> Preferencje, a następnie w polu Addidtional Boards Manager URLs dopisujemy http://digistump.com/package_digistump_index.json
Zatwierdzamy i przechodzimy do Narzędzia -> Płyta -> Boards manager…
W wyszukiwarce wpisujemy słowo kluczowe digistump i instalujemy pakiet Digistump AVR Boards.
Teraz podłączamy nasze Arduino, wybieramy Plik -> Przykłady -> ArduinoISP i wgrywamy ten szkic na naszą płytkę. Na początku szkicu widzimy zakomentowane linijki, w których znajdziemy informacje na temat numerów pinów Arduino, do których należy podłączyć poszczególne piny Attiny85.
W Attiny85 prezentuje się to tak:
RESET – 1
GND – 4
MOSI – 5
MISO – 6
SCK – 7
VCC – 8
Zanim jednak wgramy bootloader musimy nieco pogrzebać w plikach Arduno, ponieważ Digistump nie zapewnia możliwości wypalania bootloadera przez Arduino IDE. W tym celu pobieramy bootloader dla naszej płytki stąd.
Teraz klikamy Windows + R i wpisujemy w okienku Uruchom %appdata%, następnie przechodizmy do Arduino15/packages/digistump/hardware/avr/1.6.5/, tam tworzymy folder bootloaders i wrzucamy do niego plik t85_default.hex z paczki.
Ostatnie rzeczy, które musimy zrobić to drobna edycja plików boards.txt oraz platform.txt.
W pierwszym z nich (boards.txt) dopisujemy następującą treść:
1 2 3 4 5 |
digispark-tiny.bootloader.tool=arduino:avrdude digispark-tiny.bootloader.high_fuses=0xDD digispark-tiny.bootloader.extended_fuses=0xFE digispark-tiny.bootloader.low_fuses=0xE1 digispark-tiny.bootloader.file={runtime.hardware.path}\1.6.5\bootloaders\t85_default.hex |
Szczególną uwagę należy tu zwrócić na ostatnią linijkę, gdzie znajduje się ścieżka do naszego bootloadera. Upewniamy się, że jest poprawna, zapisujemy plik i zamykamy go.
Teraz pora na platform.txt – do niego dopisujemy taki oto tekst:
1 2 3 4 5 6 |
tools.avrdude.erase.params.verbose=-v -v tools.avrdude.erase.params.quiet=-q -q tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m tools.avrdude.bootloader.params.verbose=-v -v tools.avrdude.bootloader.params.quiet=-q -q tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{bootloader.file}:i" |
Teraz czas na wgranie bootloadera. W tym celu w Arduino IDE wybieramy Narzędzia -> Płyta -> Digispark (Default – 16.5mhz) oraz Narzędzia -> Programator -> Arduino as ISP.
Ostatnim krokiem jest wybranie Narzędzia -> Wypal bootloader. Teraz czekamy chwilkę, aż bootloader się wgra. Jak już wszystko zakończy się pomyślnie wystarczy, że wepniemy zaprogramowane Attiny85 w podstawkę wlutowaną w naszego klona Digisparka i możemy zacząć zabawę z naszym nowym nabytkiem ;)
Tak wygląda mój działający klon:
Zapomniałem na schemacie dopisać wartości rezystorow i kondensatorów. Jak będę na konputerze to poprawię. Póki co R2 to ten większy rezystor ;)
po co są oporniki od USB i diody zenera?
Służą do ograniczania napięć za liniach D+ i D- usb, bo attiny działa na 5V, a standard usb wymaga max 3,6V.
Super, zainteresowałem się tym ATtiny85! Ale pytanie mam takie: czy w praktyce nie byłoby lepiej wyprowadzić ISP (6 pinów) i programować układ w Arduino IDE za pośrednictwem USBasp? 25% pojemności układu zabierane za bootloader to jakby dużo…
Słuszna uwaga. Przyznam, że nie zastanawiałem się nad tym, bo chciałem zrobić urządzenie, które będzie programowało się dokładnie tak jak oryginał. Tylko czy to nie będzie wtedy kiepsko chodziło? Pamiętam, że kiedyś programowałem te układy w Arduino IDE bez bootloadera i nigdy nie udało mi się, żeby chodziły one tak jak trzeba (miały złe taktowanie).
Sam Arduino IDE nie lubię. Ale pewno źle fusebity ustawiłeś. High Speed PWM w ATTiny85 jest świetny, taktowanie timera jak pamiętam dobrze do 65MHz z wewnętrznym PLL’em
Czy można tego używać jako mysz i klawiatura za pomocą klas Mouse i Keyboard z Arduino IDE?
Jak pobierzesz pliki digisparka przez boards manager to w przykładach masz DigisparkKeyboard i DigisparkMouse. Te z Arduino raczej nie będą działały.
Rozumiem, dzięki!
Czy możliwe jest poraz drugi wypalenie bootloadera, czy to jest czynność jednorazowa?
Bootloader możesz “wypalać” ile razy chcesz.
Witam, a gdzie to kupić za te 6zł?
http://www.ebay.pl/sch/i.html?_odkw=arduino&LH_PrefLoc=2&_sop=15&LH_BIN=1&_osacat=0&ssPageName=STRK%3AMEFSRCHX%3ASRCH&_from=R40&_trksid=m570.l1313&_nkw=digispark&_sacat=0
Dziękuję. Rozumiem, że jest to już gotowiec – czyli będę miał wgrany bootloader?
tak, to gotowiec
Hej. Można ożywić linki do Eagle?
Niestety nie znalazłem już u siebie na komputerze tych plików (musiałem przypadkiem skasować), ale myślę, że to dość prosty schemat do przerysowania w Eaglu. Trzeba jedynie poszukać w necie biblioteki z ATtiny85
Hej
Spoko, da radę – wrodzone lenistwo kazało zapytać – dzięki wielkie
Witam. Mam diody 3v3 i 3v6, resystory 68 Ohm oraz 1,5K i 2,2k. za chiny nie mogę zmusić do wykrycia Attiny po USB, Ciągle otrzymuję nieznane urządzenie.
A bootloader wgrałeś dobry na mikroprocesor?
Wypaliłem micronuclus
A sterownik od Digisparka jest? Przy pobieraniu paczki digispark w Arduino IDE powinno samo się wgrać.
Ja to robię na płytce projektowej i może z uwagi na niskie oporności są jakieś zakłócenia (na takiej płytce nie ma dobrego styku). Musze wytrawić i zrobić to mniej więcej tak jak u ciebie, żeby były pewne połączenia. Dziwne bo Przez Arduino IDE nie chciało mi bootloadera wgrać i to zarówno po usbasp jak i arduino as isp. Dopiero jak ręcznie wklepałem w CMD:
avrdude -c usbasp -p t85 -U flash:w:t85_default.hex -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m
to poszło. Więc dalej walczę
bootloader ?? nie istnieje :( Nie znaleziono pliku. Możliwe, że został usunięty.
w najnowszym 1.6.1 nie wspierany ?
dużo trudu i na nic
Wrzucisz jeszcze raz pliki EAgle?? bo na turbobit już nie ma
Niestety nie mam ich na dysku. Mam teraz sesję egzaminacyjną, ale po egzaminach postaram się sprawdzić, czego brakuje i wrzucić gdzieś, gdzie nie zginie :)
podeślij mi te pliki to wrzucę do mnie na MEGA
Poda ktoś bootloader?
Może ktoś podać działający link z bootloader’em?
https://mega.nz/#!fA1wCApK!7Uaj57LpivGb9d4yLCfiqSgWOa-qVTrtE10X_IN9PtA
Proszę bardzo
Proszę zaktualizować linka do bootloadera, bo nie działa.
Czy wersja obudowy attiny robi jakąkolwiek różnicę w programowaniu? W oryginale jest wersja smd, jeśli się nie mylę.
Żaden link do bootloadera nie działa! Proszę albo zaktualizować, albo przesłać na mail eleinfroot@gmail.com