ARM Procesor
Get the Flash Player to see this player.
Wstęp AVR |
Na wstępie opiszę jak zabrać się za programowanie mikrokontrolerów, co trzeba zakupić i na co trzeba zwrócić szczególną uwagę. Jeśli ktoś jest totalnie zielony w tych sprawach to polecam kupić gotowy zestaw uruchomieniowy dla Atmegi16 lub 32. Unikniecie tym samym problemów takich jak ustawianie fuse bitów, źle polutowane przewody oraz błędy w schematach. Polecam także aplikację ElectroDroid (Demetrio Iero) dla wszystkich osób posiadających smartphone z systemem android oczywiście aplikację można ściągnąć za darmo z android market kategoria narzędzia. W skład aplikacji wchodzi przelicznik kodów paskowych i zwykłych dla rezystorów, kondensatorów i dławików. Można tam obliczyć wielkość rezystora dla diody, sprawdzić prawo Ohma, obejrzeć wszystkie standardy przewodów, obliczyć dzielnik napięcia oraz wiele innych. Ciekawą książką do nauki tego języka jest http://helion.pl/ksiazki/jezyk-c-dla-mikrokontrolerow-avr-od-podstaw-do-zaawansowanych-aplikacji-tomasz-francuz,jcmikr.htm jeśli nie stać Ciebie na książkę, to możesz odwiedzić ten link i ściągnąć sobie przykłady. Nawet bez opisu, to bardzo użyteczna wiedza. Ale ogólnie zachęcam do korzystania ze sprawdzonych książek. Wszystkie programy, które udostępnię wypróbowałem na płytce Gotroniki moduł uruchomieniowy AVR wersja 2 (http://www.gotronik.pl/modul-uruchomieniowy-avr-atmega16-wersja-p-572.html) i jest to naprawdę dobry produkt. Jest też spory wybór na http://kamami.pl mają także dobry opis zestawów uruchomieniowych. Do programowania tej płytki nie potrzeba PROGRAMATORA, ani zewnętrznego zasilania (wystarczy kabel USB)!! Podpinamy kabel USB, ściągamy program megaload (dołączony do płytki jak zakupicie z Gotroniki) i możemy zacząć zabawę. Płytka posiada wyświetlacz siedmiosegmentowy, wyświetlacz LCD ze standardem HD44780, konwerter RS232 na USB, mikroprzyciski, termometr cyfrowy ds18b20 i czujnik podczerwieni. Zaletą takiej płytki jest to, że wszystkie układy są polutowane i sami nie musimy nic lutować. Wystarczy, że podłączymy odpowiednie wyprowadzenia. Na płytce jest tylko jeden błąd konstrukcyjny, a mianowicie czujnik podczerwieni jest na równoległej linii z termometrem cyfrowym, co powoduje indukowanie się sygnałów na obydwu liniach. Dlatego nie załączajcie termometru jednocześnie z czujnikiem podczerwieni. Jak eliminować zakłócenia w naszych projektach można poczytać na http://www.forbot.pl/forum/topics20/dla-poczatkujacych-zaklocenia-w-pracy-mikrokontrolerow-poradnik-praktyczny-dla-robotykow-vt6913.htm Jeśli ktoś już miał styczność z takim zestawem i chciałby zrobić coś samodzielnie, to musi kupić:
Jak już kupiłeś sobie wszystko i polutowałeś swój pierwszy układ, a on nie chce wgrać programu, to najprawdopodobniej źle przylutowałeś przewody. Robienie własnych urządzeń, to ciągłe sprawdzanie tego co się aktualnie robi i jak nie potrafisz się z tym pogodzić, to zmień hobby, bo im dalej w las tym będzie więcej drzew. Aby mikrokontroler działał, to musi być doprowadzone napięcie stałe z reguły 4,5-5V o jak najmniejszych zakłóceniach. Doprowadzamy je zarówno do zasilania mikrokontrolera jak i do zasilania przetwornika ADC, jest to dosyć istotne, ponieważ nawet jak nie używasz ADC, to i tak musi być doprowadzone napięcie i GND. Do tego zawsze przy nóżkach z napięciem jest przylutowany kondensator ceramiczny 100nF (takie małe żółte coś), po to żeby zmniejszyć zakłócenia. Mało tego niektóre mikrokontrolery nie działają, gdy tych kondensatorów nie ma. Pisze o tych kondensatorach ponieważ ich nie uwzględnia się nigdy w schematach, a wkłada się je wszędzie, gdy tylko można. Jeśli wiesz, że mikrokontroler ma załączone fuse bity umożliwiające wgrywanie programu, a program dalej nie chce się wgrać, to należy zobaczyć na błąd który wyskakuje podczas wgrywania. AVR Studio informuje zawsze o tym dlaczego program się nie wgrał. Czasem wystarczy obciążyć linie reset opornikiem 10k ohm, a czasem wystarczy odlutować ten opornik, ponieważ oporność przewodów wystarcza. Czasem po prostu występuje jakieś zwarcie i trzeba dobrze przejrzeć luty, albo polutować na nowo. Jeśli udało nam się wgrać pierwszy program, a program nie działa tak jak powinien, to najprawdopodobniej program został źle napisany i sprawdź program ponownie. Najpierw można sprawdzić, czy na pewno skompilowaliśmy program pod dany mikrokontroler, ponieważ mikroprocesory różnią się budową. Głównym problemem jest także używanie bibliotek z zdefiniowanym czasem w samej bibliotece (np. #define F_CPU =4000000). Jeśli ustawiliśmy Fuse bity na 8MHz, a nasz biblioteka była pisana na 4MHz to nasze opóźnienia się rozjadą, a wszystkie funkcje wykorzystujące opóźnienia będą działały nieprawidłowo. Jeśli masz pewność, że program jest ok, to sprawdź czy nie przylutowałeś urządzenia do nóżek odpowiadającym za JTAG, ponieważ jest to najczęstszy błąd. Jeśli masz załączone fuse bity uruchamiające JTAG, to oznacza, że na tych nóżkach jest zawsze niskie napięcie, a tym samym wartość logiczna zawsze na danej nóżce jest 0. Więc urządzenia podłączone do tych nóżek działają nieprawidłowo. Żeby usunąć ten błąd należy odpalić AVR Studio kilknąć ikonkę AVR i przejść na zakładkę fuse bity po czym odznaczyć JTAG. Po tej operacji powinno być ok. PDF w wersji polskiej dla ATmegi16 pobrany z http://www.pg.gda.pl
Adresy:
|