Mój pierwszy AVR

Ten wpis jest częścią mojego starego bloga, prowadzonego w latach 2005-2007 pod adresem dragonee.jogger.pl. Został on zachowany w celach archiwizacyjnych i niekoniecznie reprezentuje moje bieżące stanowisko na dany temat.

… miga zachęcająco czerwoną diódką do mnie. Zacznijmy jednak od początku.

Od dawna wiedziałem, że mikrokontrolery to bardzo ciekawe urządzenia, skoro mogą wykonywać więcej niż jedną czynność, a na dodatek można je oprogramować wedle uznania. W tamtych, pięknych czasach, mikroprocesory nie były jednak rozpowszechnione, a wszystkie programatory były albo drogie, albo droższe. Poza tym koszt samych układów wahał się w granicach kilkudziesięciu złotych. I sam także nie znałem się na programowaniu, więc pozostawały one dla mnie marzeniem.

Od pewnego czasu sytuacja się zmieniła. Powstały układy AVR, do których nie potrzeba specjalistycznych urządzeń, a ich koszty zmalały. Nadają się świetnie do różnych układów, począwszy od budzików, skończywszy na pomniejszych sterownikach, a dzięki otwartemu oprogramowaniu nie ma dużych problemów, by je oprogramować. Chęć ich poznania wróciła ze zdwojoną siłą.

Zachęcający był szczególnie pseudoprogramator – tak naprawdę odpowiedni kabel drukarkowy – dzięki któremu można było programować procesor w układzie, bez wyjmowania go z płytki. Kwestia zlutowania kilku kabelków z dwiema wtyczkami.

Domowym sposobem została zmontowana płytka, na której znajdują się cztery diody świecące LED, jeden przycisk, jeden mikrokontroler i kilka dodatków, potrzebnych do działania. Praktycznie, jeden dzień roboty od projektu do gotowej płytki.

Dla komatybilności z artykułem Wojtka Kaniewskiego, na którym się wzorowałem, użyłem układu ATTiny2313. Dużo czasu zejdzie, zanim zacznę używać wszystkich jego funkcji.

Po przygotowaniu płytki, wyjęciu zasilacza warsztatowego (zmontowanego przez ojca, kiedy byłem mały), przeniesieniu ustrojstwa do domu, zasileniu układu i podłączeniu wtyczki programującej, skompilowałem, wykorzystując źródło kodu z artykułu Wojtka, nieco zmodyfikowany plik Makefile z jednego z przykładów z manuala avr-libc oraz używając programu avrdude do wrzucania skompilowanego kodu do pamięci Flash mikrokontrolera. Uisp niestety nie chciał działać.

Kompilator i avrdude są w Ubuntu, co skraca proces ich instalacji do jakiejś minuty.

Po wgraniu flasha dioda nadal nie migała. Wziąłem woltomierz i zacząłem sprawdzać wszystko. Jakie było moje zdziwienie, gdy zauważyłem regularnie pulsujące napięcie na zaprogramowanym wyjściu. Jeśli tak, to mikrokontroler był w porządku, a jakiś element za nim odmówił współpracy. Tak być nie może! Nie damy się przecież pomiatać rezystorom i kondensatorom! Wreszcie, zmierzywszy napięcia na całej drodze od układu do diody, doszedłem do wniosku, że bezmyślnie wlutowałem diody odwrotnie do kierunku przewodzenia.

Zapamiętać: w tym typie diód ścięta końcówka nie oznacza anody.

Szybko przelutowałem i zaczęło migać. Udało się!

Teraz mogę zacząć rozgryzać stronę programową mojego mikroprocesora. I wyrywać Girls2.0, oczywiście.

10 komentarzy
  1. Październik 9, 2006
  2. Październik 9, 2006
  3. Październik 9, 2006
  4. Październik 9, 2006
  5. Październik 9, 2006
  6. Październik 9, 2006
  7. Październik 9, 2006
  8. Październik 9, 2006
  9. Październik 9, 2006
  10. Październik 9, 2006

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *