Przejdź do głównej zawartości

Programowanie mikrokontrolerów AVR cz. 2

Parę uwag na temat programowania w sensie wgrywania przygotowanego (skompilowanego) programu (wsadu) do pamięci flash mikrokontrolera ATtiny2313 (i nie tylko).
W pierwszym artykule na temat programowania AVR-ów założyłem, że dysponujemy płytką AVT3500 wraz z programatorem (kompatybilnym z STK500 v2) - płytka ta i programator wchodzą między innymi w skład zestawu do nauki programowania procesorów AVR. Nie każdy jednak ma dostęp do takiej płytki, czy też ma możliwość jej nabycia. Sam również postanowiłem uniezależnić się od tego zestawu - dotychczas używałem wypożyczonego z pracy. W związku z tym nabyłem (drogą kupna) polecany przez wielu użytkowników programator zgodny z USBASP i podłączyłem go do układu ATtiny2313 według wskazówek z artykułów:
Wszystko działa elegancko - mogę zaprogramować układ bezpośrednio ze środowiska BASCOM-AVR oraz korzystając z avrdude (zarówno w systemach Linux, jak i w moim wirtualizowanym Windows XP).

Muszę jednak, dla ścisłości, dodać kilka uwag od siebie (z krótkiego, kilkudziesięciominutowego doświadczenia programatorem USBASP).
Po pierwsze, żeby zaprogramować za pomocą tego programatora mikrokontroler ATtiny2313, należy założyć zworkę na styki opisane (na płytce programatora) jako Slow SCK (jak zwykle niezawodne forum elektroda.pl).
Po drugie, jeśli macie zamiar użyć taśmy do połączenia programatora z układem, pamiętajcie o wskazówce Łukasza z linkowanego wyżej artykułu:
"Jeżeli przewody podłączacie do taśmy, zamiast bezpośrednio do programatora, musicie “odbić” całość w pionie."
Chyba, że chcecie przetestować wytrzymałość i zabezpieczenia elektryczne łącza USB w Waszym komputerze. Ja niechcący przetestowałem - płyta główna przeżyła, programator i ATtiny też, choć, wyposażone w lampki kontrolne zasilania, urządzenia podłączone do USB nerwowo tymi lampkami mrugały... Po raz kolejny okazuje się, że płyty główne MSI tak szybko nie padają ;)

A wkrótce wrócę do konkretów, czyli napiszę o linijce świetlnej, w której zamiast specjalizowanych układów użyjemy naszego ATtiny. I oczywiście będzie też o możliwościach rozbudowy tego programu i wykorzystania go do innych rzeczy (np. wyświetlanie znaków na matrycy diodowej).

Komentarze

Popularne posty z tego bloga

Niesamowicie prosty czujnik zmierzchowy.

Tym razem zero programowania, będzie natomiast nostalgiczno-wspomnieniowy układzik, lekko zmodyfikowany. Otóż kilka dni temu rozmawialiśmy w gronie znajomych o różnego rodzaju czujnikach zmierzchowych i czujnikach ruchu. Ponieważ należę do tych wariatów, co to hołdują jeszcze owej przestarzałej i kompletnie odrealnionej dziś zasadzie: "po co kupować, gdy można zrobić", stwierdziłem, że poskładam takie coś (czujnik zmierzchowy; sensor ruchu faktycznie lepiej nabyć, choćby ze względu na rozmiary ;)) i być może podłączę do jakiegoś mikrokontrolera. Przypomniało mi się też przy okazji, że znalazłem ostatnio w elektronicznych śmieciach stary fotorezystor (dla niewtajemniczonych: element zmieniający rezystancję, czyli opór elektryczny, pod wpływem działania strumienia światła) RPP130, jeden z kilku pozostałych po montowanych wieki temu układach tranzystorowych do zdalnego sterowania pracą urządzeń za pomocą latarki... No OK, nie było to specjalnie rozbudowane zdalne sterowanie ;)

Płytka prototypowa na bazie ESP8266 (ESP-01)

To nie jest kolejny artykuł traktujący od początku do... nieco dalej (bo na pewno nie do końca) o płytkach ESP8266 . Żeby się dowiedzieć, co to takiego, odwiedźcie proszę np. tę stronę (oraz wiele innych – poproście o pomoc Waszą ulubioną wyszukiwarkę): http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family . No ale żeby nie było, ESP8266 to układ zawierający na pokładzie wydajny mikrokontroler z rdzeniem RISC-owym, taktowany zegarem 40MHz (wersja, o której jest ten wpis) lub 80MHz, 512KB pamięci flash i podsystem komunikacji przez sieć WiFi . Jest powszechnie wykorzystywany jako swego rodzaju karta sieciowa do połączeń bezprzewodowych naszych urządzeń IoT , które budujemy w zaciszu domowych laboratoriów (i nie tylko). Układ montowany jest na płytkach występujących w kilku wersjach, różniących się przede wszystkim liczbą wyprowadzeń uniwersalnych, czyli GPIO – im większa liczba, tym większe możliwości wykorzystania układu (więcej urządzeń peryferyjnych itp.). Są też pewne

Programowanie AVR cz.8: Przetwornik analogowo-cyfrowy oraz modulacja szerokości impulsu.

Dziś kolejny wgląd w wyposażenie mikrokontrolera ATmega48P - tym razem przyglądamy się wbudowanemu w układ przetwornikowi analogowo-cyfrowemu oraz - dostępnej również w modelach ATtiny - modulacji szerokości impulsu realizowanej przez timery. Artykuł ten jest w pewnym sensie wstępem do następnego, który pojawi się już wkrótce, a którego tematykę zdradziłem na końcu. Przetwornik A-C (skrót spotykany w anglojęzycznej literaturze to ADC od Analog to Digital Converter ) to układ pozwalający na zamianę wartości napięcia (elektrycznego sygnału analogowego ;-)) na liczbę. W przypadku mojej ATmegi przetwornik ma rozdzielczość 10-bitową, co oznacza, że wartość napięcia podawanego na wejście przetwornika może być po konwersji zapisana jako liczba z przedziału od 0 do 1023 (musimy użyć zmiennej word do zapamiętania tej liczby). Jeśli jesteśmy w posiadaniu mikrokontrolera w obudowie PDIP 28-wyprowadzeniowej, to mamy do dyspozycji sześć kanałów (niezależnych wejść) przetwornika A-C, przyporzą