Politechnika Krakowska im. T. KoÅ›ciuszki INSTYTUT INFORMATYKI STOSOWANEJ Podstawy pracy z ukÅ‚adami peryferyjnymi i pamiÄ™ciÄ… mikrokontrolera ATMEGA88 Linca RafaÅ‚ Mikrokontrolery i SPRAWOZDANIE Lab. nr 4 13K1 przetwarzanie sygnałów 1. Cel ćwiczenia Celem dwiczenia jest zapoznanie siÄ™ z podstawami programowania i pracy z mikrokontrolerami ATMEGA88, z wykorzystaniem jego ukÅ‚adów peryferyjnych. 2. WstÄ™p Na poczÄ…tek przypomnijmy podstawowe parametry mikrokontrolera: ·ð Architektura RISC z prawie wszystkimi instrukcjami wykonywanymi w jednym cyklu maszynowym. ·ð PamiÄ™ci: 8 kB nieulotnej pamiÄ™ci Flash, 512kB pamiÄ™ci EEPROM, 1 kB pamiÄ™ci SRAM ·ð UkÅ‚ady peryferyjne: dwa 8-bitowe liczniki, jeden 16-bitowy licznik, zegar czasu rzeczywistego, trzy kanaÅ‚y PWM, 6-kanaÅ‚owy przetwornik A/C, szeregowy interfejs IÅ»C, programowany USART do transmisji RS232, programowalny timer Watchdog z oddzielnym oscylatorem, wbudowany komparator analogowy ·ð Specjalne wyposażenie: wewnÄ™trzny kalibrowany oscyiator RC, wewnÄ™trzne oraz zewnÄ™trzne zródÅ‚a sygnałów przerwao oraz piÄ™d typów trybów uÅ›pienia: Idle, ADC Noice reduction, Power-sa ve, Power-down i Standby. W pierwszej części laboratorium zapoznamy siÄ™ z możliwoÅ›ciÄ… sygnalizacji dzwiÄ™kowej zdarzeo. W dalszej części laboratorium zapoznamy siÄ™ z zastosowaniem przetworników do generowania sygnaÅ‚u PWM (Pulse Width Modulation). Za pomocÄ… zmiany współczynnika wypeÅ‚nienia sygnaÅ‚u tworzony jest sygnaÅ‚ analogowy do sterowania odbiornikami prÄ…du staÅ‚ego takimi jak żarówki i silniki prÄ…du staÅ‚ego. Przetworniki A/C mogÄ… byd stosowane do pomiaru i analizy wielu wielkoÅ›ci fizycznych takich jak natężenie oÅ›wietlenia i napiÄ™cie elektryczne. W trakcie laboratorium zajmiemy siÄ™ również problemem zachowywania danych w pamiÄ™ci nieulotnej dla zapamiÄ™tywania wartoÅ›ci poczÄ…tkowych programu po restarcie mikrokontrolera. Kolejnym rozpatrywanym problemem bÄ™dzie problem restartu ukÅ‚adu po wystÄ…pieniu stanu awaryjnego realizowany przez watchdoga nadzorujÄ…cego pracÄ™ aplikacji. Dodatkowym temat laboratorium to czasomierze i zwiÄ…zana z nimi kwestia przerwao po przepeÅ‚nieniu ich licznika. Na zakooczenie rozpatrzymy kwestie sterowania ukÅ‚adami serwomechanizmów oraz tworzeniem sekwencji sterowania nimi. 3. PrzykÅ‚ady zastosowania ATMEGA88 Eksperymenty w laboratorium 2 mikrokontrolerów zostaÅ‚y podzielone na kategorie: ·ð Przetworniki A/C i C/A ·ð Operacje na pamiÄ™ci ·ð Watchdogi i czasomierze ·ð Sterowanie silnikami Syrena z wykorzystaniem komendy sound Lista elementów potrzebnych w dwiczeniu: ·ð 1x GÅ‚oÅ›nik RS267-6968 lub inny ·ð 1x Kondensator = 100uF ·ð 1x Rezystor 120E ·ð 7x Przewody Komenda SOUND daje możliwoÅ›d generowania przez gÅ‚oÅ›nik różnych tonów. Jest to przydatne, jeÅ›li w aplikacji chcemy zasygnalizowad użytkownikowi specyficzne sytuacje (naciÅ›niÄ™cie przycisku, alarm itp.) Komenda SOUND nie jest przeznaczona do generacji dokÅ‚adnych czÄ™stotliwoÅ›ci, chod można to zrobid używajÄ…c timer'a. ZbudowaliÅ›my poniżej pokazany ukÅ‚ad: Po zaprogramowaniu mikrokontrolera sÅ‚yszalny byÅ‚ sygnaÅ‚ syreny. Generator PWM SygnaÅ‚ PWM ma przebieg prostokÄ…tny o zmiennym wypeÅ‚nieniu. WypeÅ‚nienie może byd zmieniane od 0 do 100%. Przy wypeÅ‚nieniu 50% utrzymuje siÄ™ symetryczny przebieg prostokÄ…tny. Na rysunku poniżej przedstawione sÄ… przebiegi sygnałów PWM o różnych wypeÅ‚nieniach. SygnaÅ‚ PWM można zastosowad do sterowania jasnoÅ›ciÄ… Å›wiecenia żarówek, wyÅ›wietlacza LCD lub do regulacji prÄ™dkoÅ›ci obrotowej silnika prÄ…du staÅ‚ego. Lista elementów potrzebnych w dwiczeniu: ·ð 1x MOSFET IRF520 lub odpowiednik ·ð 1x Å»arówka 6 V ·ð 6x Przewody JasnoÅ›d Å›wiecenia żarówki zmieniaÅ‚a siÄ™, a wartoÅ›d sygnaÅ‚u PWM widoczna byÅ‚a w oknie terminala. Przetwornik A/C z fotorezystorem (LDR) Lista elementów potrzebnych w dwiczeniu: ·ð 1x Fotorezystor NSL19-MS51 RS596-141 lub odpowiednik ·ð 1x Komputer z portem COM ·ð 2x Rezystor 2,2kQ ·ð 4x Przewody Fotorezystor NSL19-MS51 przy Å›wietle dziennym (bez jasnego sÅ‚ooca) posiada rezystancje 5kQ. O zmroku posiada rezystancje 1,2MQ, a w ciemnoÅ›ci rezystancja jest > 35MQ. W zwiÄ…zku ze skojarzeniem przetwornika AC z portem C należy doÅ‚Ä…czyd fotorezystor do portu C, pin 1. W oknie terminala widoczne byÅ‚y wartoÅ›ci, które zmieniaÅ‚y siÄ™ przy różnym oÅ›wietleniu fotorezystora. Do oÅ›wietlenia fotorezystora użyliÅ›my latarki. Prosty woltomierz W poprzednim eksperymencie wartoÅ›ci z przetwornika A/C w terminalu przy napiÄ™ciu 0 V wartoÅ›d z przetwornika A/C wynosiÅ‚a 0, a przy napiÄ™ciu 5 V wynosiÅ‚a 1024 (10 bitów). WÅ‚aÅ›ciwie wartoÅ›d 1024 z przetwornika jest już osiÄ…gana przy napiÄ™ciu 1,1 V. Teraz zbudujemy woltomierz z zakresem mierzonych napiÄ™d od 0 do okoÅ‚o 5,0 V z rozdzielczoÅ›ciÄ… 0,1 V. Aby mierzyd napiÄ™cia do 1,1 V, ale potrzebne jest kilka rezystorów do budowy dzielnika napiÄ™cia. TÄ… metodÄ… uzyskamy, że zmierzone napiÄ™cie 1 V odpowiadad bÄ™dzie wejÅ›ciowemu napiÄ™ciu 5 V. Rysunek obok pokazuje jakie wartoÅ›ci rezystorów sÄ… potrzebne do uzyskania potrzebnego dzielnika. Wniosek jest taki, że musimy podzielid wartoÅ›d 1024 przez 11 (1024/11), co daje 93,09. Preferowana jest praca z wartoÅ›ciami caÅ‚kowitymi, gdyż mikrokontrolery nie potrafiÄ… dobrze dzielid. (Mikrokontrolery mogÄ… dzielid z reszta 1Ü24Í11 = 93 reszta 1). Tak wiÄ™c zaokrÄ…glimy wartoÅ›d 93,09 do 93. Kiedy teraz bÄ™dziemy obliczad wartoÅ›d z A/C, dla każdego wolta możemy znalezd wartoÅ›d z przetwornika w tablicy konwersji po prawej stronie. Powiedzmy, że doÅ‚Ä…czamy napiÄ™cie do portu C.1 i odczytujemy z A/C wartoÅ›d 190. WartoÅ›d 190 nie znajduje siÄ™ w tablicy, wiÄ™c możemy jÄ… zaokrÄ…glid. Powiedzmy, że wszystkie wartoÅ›ci poniżej 93 sÄ… 0,0V. WartoÅ›ci od 93 do 185 sÄ… 0,1V, WartoÅ›ci od 186 do 278 sÄ… 0,2V, itd. Lista elementów potrzebnych w dwiczeniu: ·ð 1x Komputer z portem COM ·ð 1x Rezystory 1,2kO, 3,9kO ·ð 1x Potencjometr 10kO ·ð 1x Woltomierz ·ð 5x Przewody Zachowywanie wartoÅ›ci w pamiÄ™ci EEPROM Mikrokontroler ATMega88 posiada 3 różne pamiÄ™ci: ·ð FLASH -> Bootloader FLASH Aplikacja FLASH ·ð RAM ·ð EEPROM PamiÄ™d FLASH (8 kB) może byd programowana tylko za pomocÄ… zewnÄ™trznego programatora STK200/300 lub USB ISP Prog I. Jednakże jest jeden wyjÄ…tek, którym jest Bootloader. Kiedy używamy bootloadera, pamiÄ™d FLASH dzielona jest na 2 obszary. Bootloader znajduje siÄ™ w obszarze Bootloader FLASH i jest programowany programatorem STK lub USB. Wtedy obszar pamiÄ™ci FLASH dla aplikacji może byd programowany za pomocÄ… Å‚Ä…cza szeregowego. W pamiÄ™ci FLASH zapisywany jest program/oprogramowanie, które ma byd wykonywane. Jesli nie jest używany bootloader, cala pamiÄ™d FLASH jest dostÄ™pna dla programu sterujÄ…cego. PamiÄ™d RAM (Random Access Memory) jest pamiÄ™ciÄ… tymczasowa. Po wykonaniu niektórych operacji potrzebujesz zapisad lub usunÄ…d dane. PamiÄ™d RAM jest ulotna, to znaczy ze jej zawartoÅ›d jest tracona po wyÅ‚Ä…czeniu napiÄ™cia zasilania mikrokontrolera. SpecjalnÄ… formÄ… pamiÄ™ci jest pamiÄ™d EEPROM (Electrically Erasable/Programmable Read Only Memory). Stare pamiÄ™ci EPROM mogÅ‚y byd tylko czytane i sÅ‚użyÅ‚y jako pamiÄ™d ROM mikrokontrolera. NIGDY nie mogÅ‚y byd kasowane przez mikrokontroler. Można je byÅ‚o tylko programowad za pomocÄ… specjalnego programatora i kasowad Å›wiatÅ‚em ultrafioletowym UV. Obecnie, mikrokontrolery mogÄ… elektrycznie kasowad i programowad EEPROM, dajÄ…c użytkownikowi możliwoÅ›d gromadzenia w nich danych, których siÄ™ nie straci po wyÅ‚Ä…czeniu zasilania. SÄ… to pamiÄ™ci nie ulotne. EEPROM jest polecany, kiedy aplikacja musi zapamiÄ™tad ustawienia. Sterowanie serwomechanizmem W Bascomie jest możliwe bardzo Å‚atwe sterowanie serwomechanizmami. Serwomechanizm jest silnikiem z przekÅ‚adniÄ…, który może obracad siÄ™ o zadany kÄ…t. DziÄ™ki przekÅ‚adni Serwa majÄ… duży moment obrotowy. Sterowanie serwomechanizmem odbywa siÄ™ za pomocÄ… sygnaÅ‚u o przebiegu impulsowym zwykle o czÄ™stotliwoÅ›ci 50 Hz (okres 20ms) i zmiennym współczynniku wypeÅ‚nienia. Przez zmianÄ™ współczynnika wypeÅ‚nienia można zmieniad w pewnym zakresie kÄ…t obrotu wirnika. Aby zaprezentowad sposób sterowania serwami przygotowano program, który umożliwia sterowaniem serwa za pomocÄ… dwóch przycisków. Pierwszy zmienia poÅ‚ożenie waÅ‚ka Serwa w prawo a drugi w lewo. Lista elementów potrzebnych w dwiczeniu: ·ð 1x Serwomechanizm Tower Pro SG-50 ·ð 6x Przewody PoÅ‚Ä…czenie na uniwersalnej pÅ‚ytce dla tego eksperymentu: Po zwarciu masy z pinem.0 serwo obróciÅ‚o siÄ™ o maksymalny kÄ…t w prawo, a po zwarciu masy z pinem.1 o maksymalny kÄ…t w lewo. 4. Wnioski Po wykonaniu pierwszego dwiczenia zaobserwowaliÅ›my, że po zaprogramowaniu mikrokontrolera sÅ‚yszalny byÅ‚ sygnaÅ‚ syreny. W trakcie drugiego dwiczenia jasnoÅ›d Å›wiecenia żarówki zmieniaÅ‚a siÄ™, a wartoÅ›d sygnaÅ‚u PWM widoczna byÅ‚a w oknie terminala. Podczas kolejnego zadania, w oknie terminala widoczne byÅ‚y wartoÅ›ci, które zmieniaÅ‚y siÄ™ przy różnym oÅ›wietleniu fotorezystora. Do oÅ›wietlenia fotorezystora użyliÅ›my latarki. Natomiast w ostatnim dwiczeniu po zwarciu masy z pinem.0 serwo obróciÅ‚o siÄ™ o maksymalny kÄ…t w prawo, a po zwarciu masy z pinem.1 o maksymalny kÄ…t w lewo.