Wybierz swój język

AVRFusesCalc jest pierwszą aplikacją na macOS, dzięki której w prosty sposób, bez obaw o zablokowanie mikrokontrolera, można ustawić fusebity oraz lockbity w procesorach ATmega i ATtiny.

AVRFusesCalc jest pierwszą aplikacją z graficznym interfejsem użytkownika na macOS, dzięki której w prosty sposób, bez obaw o zablokowanie mikrokontrolera, można ustawić fusebity oraz lockbity w procesorach ATmega i ATtiny. Do poprawnego działania programu, wymagane jest środowisko AVR-GCC zainstalowane w systemie, wraz z programem "avrdude". Można też wykorzystać "avrdude" z pakietu Arduino. Nie trzeba wtedy instalować AVR-GCC, ponieważ wszystkie potrzebne biblioteki są dostarczane wraz z aplikacją Arduino. Jest to w sumie najszybszy i najmniej kłopotliwy sposób, na rozpoczęcie przygody z mikrokontrolerami AVR. Jak użyć "avrdude" z Arduino, opisałem w poradniku do którego link znajduje się na końcu tego artykułu. Oprócz oprogramowania, niezbędny jest też programator poprzez który aplikacja będzie się komunikować z podłączonym mikrokontrolerem.

Jedną z większych korzyści z używania AVRFusesCalc jest oszczędność czasu. Po pierwsze, w bardzo przejrzysty i prosty sposób można dokonać zmiany ustawień fusebitów. A po drugie, podłączamy programator do mikrokontrolera i o nim zapominamy. Nie trzeba już zaprzątać sobie głowy tym, czy przestawiło się zworkę SlowSCK na programatorze czy też nie. Aplikacja rozpozna podłączony mikrokontroler, bez względu na ustawioną prędkość taktowania mikrokontrolera. Potrafi również określić, jaki protokół programowania, SPI lub TPI, jest wymagany do komunikacji z podłączonym mikrokontrolerem.

AVRFusesCalc składa się z dwóch części. Jedna jest przeznaczona dla zaawansowanych użytkowników, a druga dla tych co dopiero stawiają pierwsze kroki w świecie mikrokontrolerów AVR.

Część dla początkujących nazwana została „Fusebity uproszczone”. Korzystając z tej opcji, ma się ograniczone możliwości konfiguracji mikrokontrolera tylko do tych najbardziej niezbędnych. Między innymi można ustawić prędkość taktowania zewnętrznego lub wewnętrznego. Można również włączyć lub wyłączyć niektóre bity dodatkowe, takie jak JTAG czy CKDIV8. Najistotniejsze jest to, że na 99,99% nie zablokujemy procesora korzystając z fusebitów uproszczonych. Nawet ustawienie zegara na częstotliwość 128 kHz plus podział jej przez 8 (CKDIV8), nie przeszkodzi programowi w poprawnym rozpoznaniu mikrokontrolera. Jak wspominałem, jest to idealne rozwiązanie dla osób początkujących, którym zależy tylko na ustawieniu taktowania i które nie mają jeszcze dostatecznej wiedzy na temat fusebitów w procesorach AVR.

Druga część jest przeznaczona dla osób które nie boją się mnogości kontrolek i ustawień. Nazywa się "Fuse/Lock Bits AVR". Tutaj ma się dostęp do wszystkich bitów konfiguracyjnych mikrokontrolera, łącznie z Lockbitami. Korzystając z tej opcji, należy posiadać wiedzę na temat poszczególnych bitów dostępnych w konkretnym mikrokontrolerze. Nierozważne włączenie lub wyłączenie jakiegoś bitu może doprowadzić do zablokowania procesora, a dokładnie uniemożliwienia powtórnego zaprogramowania, np. wyłączenie linii reset (RSTDISBL). Z jednej więc strony trzeba zachować ostrożność, ale za to z drugiej ma się pełną kontrolę nad mikrokontrolerem.

Poza ustawianiem w tej zakładce fusebitów i lockbitów, istnieje też możliwość wgrania „wsadu” do mikrokontrolera, oraz odczytania „wsadu” z mikrokontrolera i zapisania go do pliku. Możliwe jest również przywrócenie fabrycznych ustawień fusebitów, oraz skasowanie pamięci mikrokontrolera wraz z resetem Lockbitów.

Na chwilę obecną program został przetestowany na programatorach zgodnych z USBAsp oraz na Arduino UNO. Zaimplementowana jest co prawda obsługa wirtualnych portów szeregowych, ale nie miałem możliwości przetestowania innych programatorów które z portu szeregowego korzystają. Dlatego też proszę o informację, jak wygląda współpraca aplikacji z innymi programatorami.

Poproszę również o wyrażenie swojej opinii na temat aplikacji, jak i o jej ocenę w App Store.


Jak skonfigurować i używać AVRFusesCalc.