Po bardzo długiej przerwie postanowiłem wznowić pracę nad kursem programowania mikrokontrolerów AVR. Zmotywowało mnie to, że obserwując statystyki to jest to najpopularniejszy cykl na mojej stronie, więc warto go dalej rozwijać. Następne części będą poświęcone transmisją danych, a dzisiaj opiszę chyba najpopularniejszą transmisję UART. UART (Universal Asynchronous serial Receiver and Transmitter) to metoda asynchronicznej transmisji […]
Kurs AVR
Mikrokontrolery AVR część 9 – Komparator analogowy
Komparator to układ, który ma za zadanie porównywać dwie wartości. W przypadku komparatora analogowego, który jest wbudowany w układ atmega8, porównuje on napięcia. Jego najważniejszym elementem, jest wzmacniacz operacyjny. Wzmacniacz ten pracuje w typowym układzie komparatora, czyli brak sprzężenia zwrotnego (jego rezystancja nieskończenie duża). Schemat komparatora analogowego przedstawiam na rysunku poniżej. Lewa strona układu, […]
Mikrokontrolery AVR część 8 – timer2
Ostatnim z układów licznikowych w kontrolerze atmega8 jest licznik/czasomierz 2. Ma on architekturę 8 bitową, co oznacza, że może pomieścić 256 impulsów. Liczniki ten może pracować w czterech trybach. Te tryby to: normalny, PWM, PWM z poprawną fazą, oraz CTC. Tryb PWM jest tylko 8 bitowy.Schemat poniżej ilustruje budowę tego licznika. Na razie zajmijmy się […]
Mikrokontrolery AVR część 7 – tmier1
W poprzednim artykule zajmowaliśmy się timerem 0, który był stosunkowo prostym układem, w tej część będzie zawierała opis timera 1. Rysunek poniżej pomoże bardzo w zrozumieniu działania licznika, jednak co do szczegółów odsyłam do noty katalogowej, bo to zagadnienie jest z byt szerokie jak na ten artykuł. Postaram się jednak opisać podstawowe tryby pracy tego […]
Mikrokontrolery AVR część 6 – timer0
Ta część kursu będzie poświęcona najprostszemu z układów licznikowych w mikrokontrolerach atmega8. Będę mówiło liczniki/czasomierzu 0. Takie licznik/czasomierz to po prostu układ, którego celem jest zliczać przychodzące do niego impulsy. Tutaj już pojawia się problem kiedy mówimy że coś jest licznikiem, a kiedy czasomierzem. Generalnie to jest to dokładnie ten sam układ, ale zależnie od […]
Mikrokontrolery AVR część 5 – przerwania
Po dłuższej przerwie przystąpiłem do napisania kolejnej części mojego kursu. Ta część będzie poświęcona przerwaniom. Opisze podstawy pracy z przerwaniami, oraz przerwania zewnętrzne. Zacznijmy od tego co to w zasadzie są te przerwania. Jest to układ, który po pojawieniu się odpowiedniego sygnału powoduje skoku do konkretnego miejsca w programie. Skok ten następuje zaraz po wykonaniu […]
Mikrokontrolery AVR część 4 – Porty we/wy
Porty wejścia – wyjścia służą kontrolerowi do komunikacji się z otoczeniem. Normalnym trybem pracy portów jest wysyłanie lub czytanie ich stanu, porty te mają też swoje alternatywne funkcje, dzięki czemu kontroler może podawać lub odbierać sygnały od układów takich jak liczniki, przetworniki oraz moduły komunikacji, takie jak i2C, SPI czy RS-232. W tym artykule zajmę się […]
Mikrokontrolery AVR część 3 – wokół kontrolera
Kiedy już wiemy do czego służy każda z nóżek kontrolera, można w zasadzie przejść do tworzenia układu elektronicznego i programowania. Ale właśnie co podpiąć do kontrolera, żeby zaczął działać i żeby można było wgrać program do pamięci programu, czyli pamięci typu Flash? W tym artykule zajmę się właśnie tymi podstawowymi elementami potrzebnymi do pracy kontrolera […]
Mikrokontrolery AVR część 2 – podstawy
Bez zbędnego wstępu przejdę od razu do konkretów. Na początku muszę powiedzieć, że AVRy to kontrolery o 8 bitowej magistrali danych. Tak wiem, teraz pewnie zadajecie pytanie co to jest ta magistrala danych? Często słyszymy że jakiś procesor jest 8bitowy czy 32b. Ale co to znaczy? To właśnie określa szerokość magistrali danych, czyli ilość linii, po […]
Mikrokontrolery AVR część 1 – wprowadzenie
Przeglądając internet, zaobserwowałem, że nie ma artykułu opisującego dokładnie w szczegółach kontrolery z rodziny AVR. Postanowiłem zlikwidować tę dziurę w publikacjach internetowych i napisać kilkuczęściowy artykuł na temat tych kontrolerów. Postaram się przedstawić coś w stylu noty katalogowej kontrolera, wraz z prostymi przykładami w języku C. Artykuł będzie bazował na kontrolerze Atmega8A, który jest nową […]