Google+ Start   |   E-mail   |   Newsletter:

MkAvrCalculator

 

Program MkAvrCalculator to zaawansowane rozwiązanie dla każdego kto posługuje się mikrokontrolerami AVR8. Spełnia on dwa podstawowe zadania.

 

  • Pozwala na wiele wygodnych sposobów obliczać Fusebity dla mikrokontrolerów AVR (cztery różne widoki, opisane niżej)
  • Zapewnia możliwość programowania mikrokontrolerów dzięki temu iż pracuje także jako nakładka graficzna na program AVRDUDE. (instruktaż w postaci video poniżej)

Każdy kto zetknął się z zagadnieniem programowania Fusebitów odpowiadających za podstawową konfigurację pracy tych procesorów oraz ich zabezpieczenia, zdaje sobie sprawę z wielu potocznych aczkolwiek nieprawdziwych opinii jakie krążą w internecie, jakoby było to zadanie trudne do przeprowadzenia i niebezpieczne z uwagi na możliwość tzw "zablokowania mikrokontrolera". Z naszym programem można te obawy odłożyć między bajki. W programie zastosowano bowiem bardzo wygodną funkcjonalność w zakładce "Fusy uproszczone". Okazuje się, że zaczyna ona być jedną z najczęściej używanych zakładek w tym programie nie tylko przez początkujących ale co ciekawe nawet przez zawodowych elektroników. Powodem takiego stanu rzeczy jest absolutne i niespotykane w żadnym innym tego typu programie, podejście do ustawiania tych Fusebitów, które odpowiadają za konfigurację wyboru taktowania mikrokontrolera. Nazywają się one CKSEL. O ile w przypadku początkujących, którzy nie mają doświadczenia, można zrozumieć, że chętnie skorzystają z tej zakładki, to zdziwienie zapewne budzi fakt, dlaczego jest chętnie wykorzystywana tak często przez zawodowych programistów, którzy na co dzień dokonują przeprogramowania kilku-, kilkunastu albo i kilkudziesięciu mikrokontrolerów. Z opinii jakie do nas napływają, wiele osób zajmujących się tym zawodowo, potwierdza, że często gubi ich po prostu rutyna. Nie oznacza to, że dla zawodowca niewłaściwe zaprogramowanie Fusebitów CKSEL oznacza zablokowanie mikrokontrolera. Skądże? Każdy z nich potrafi przywrócić go do prawidłowego działania. Potrzebny jest jednak czas. A czas to pieniądz. Tymczasem organizacja i uproszczenie widoku w tej zakładce do niezbędnego minimum, wg opinii zainteresowanych, jednoznacznie powoduje, że nawet przez nieuwagę nie uda się nikomu ani zablokować mikrokontrolera ani też narazić na stratę czasu aby przywrócić mu normalne funkcjonowanie. Dlatego tak szybko zakładka w tym programie zdobyła sobie liczną rzeszę zwolenników. Stała się ona zresztą jedną ze sztandarowych cech naszego oprogramowania, które zdecydowanie wyróżnia je od pozostałych konkurencyjnych rozwiązań. Tym bardziej, że biorąc pod uwagę cenę pełnej wersji, stanowi to najwyższy stosunek ceny do jakości. Tymczasem zarówno początkujące osoby, oraz wszyscy, którzy zechcą sprawdzić jak to działa w praktyce, mogą zupełnie za darmo skorzystać z wersji FREE (w pełni darmowej) naszego oprogramowania. Pozwala ona bowiem, na obsługę najbardziej popularnych na rynku (na świecie) mikrokontrolerów, takich jak: ATmega8, ATtiny2313, ATmega128 a także ATmega162. Jeśli ktoś pracuje tylko z takimi mikrokontrolerami, nie musi nawet kupować pełnej wersji programu a posiada jednocześnie pełne prawo do wsparcia technicznego oraz darmowych aktulalizacji naszego programu.


Film instruktażowy

 


Zakładka "Fusy Uproszczone", zapewnia na tyle intuicyjny widok, że praktycznie może skorzystać z ustawień w tym miejscu nawet absolutnie początkująca osoba, która nie ma doświadczenia w ustawianiu Fusebitów a jednocześnie jest pełna obaw o zablokowanie mikrokontrolera. Na szczęście z naszym programem oraz tą właśnie zakładką nie uda się po prostu doprowadzić do jego zablokowania. Natomiast przejrzysty widok i opis opcji umożliwiają w pełni intuicyjny wybór źródła taktowania. Albo wewnętrzny oscylator RC albo zewnętrzny rezonator kwarcowy w odpowiednim przedziale częstotliwości. Po lewej stronie można obejrzeć widok tejże zakładki. Każdy może ocenić jak to się ma do opisu tutaj prezentowanego oraz do rzeczywistości, wziąwszy pod uwagę przykładowy i popularny mikrokontroler ATmega32. Do prezentacji wybrany został ten procesor, ponieważ w zakładce tej można szybko i bezproblemowo wyłączyć także interfejs JTAG, jeśli nie jest wykorzystywany. Zwykle wielu początkujących zapomina lub nie doczyta w nocie PDF, że domyślne ten Fusebit jest włączony co powoduje, iż nie mamy do dyspozycji pełnego portu C mikrokontrolera. Jego piny od PC2 do PC5, nie pracują domyślnie w trybie I/O, przez co wiele osób jest zdziwionych, że przykładowe i pierwsze programy nie działają poprawnie jeśli akurat korzystają z tych pinów. A wystarczy tylko w prosty sposób wyłączyć ów Fusebit, aby pozbyć się kłopotu gdy korzystamy z typowego programatora USBASP lub podobnego. Proszę zwrócić uwagę, że w zakładce tej nie mamy do wyboru ustawienia taktowania zewnętrznego przy pomocy bądź to zewnętrznego oscylatora RC bądź to zewnętrznego generatora TTL. To właśnie zapobiega ogromnej ilości pomyłek, które popełniają początkujące osoby, korzystające szczególnie z takich programów jak np. PonyProg. Jest to jeden z najgorszych programów jakie powstały do ustawiania Fusebitów. Posiada on wprawdzie wiele innych zalet czy też dodatkowych możliwości jakich nie uda się znaleźć w naszym programie. To jednak, zdecydowanie największa ilość kłopotów zgłaszanych na przeróżnych forach internetowych dotyczy tzw "zablokowania mikrokontrolera AVR", które nastąpiło jak się okazuje, po przeczytaniu opisu problemu, podczas korzystania z PonyProg. Pod tym względem zajmuje on niechlubne ostatnie miejsce na liście przyjaznych programów dla elektronika nie tylko w naszej opinii. Wprawdzie korzystając z ustawień Fusebitów w omawianej zakładce, osoba dokonująca tej operacji nie musi się nawet dobrze orientować w szczegółach działania poszczególnych Fusebitów w mikrokontrolerach AVR, to nie oznacza, że nie ma możliwości sprawdzenia dokładnie jakie wartości zostają zaprogramowane, biorąc pod uwagę prezentację binarną każdego z Bajtów zabezpieczających. A mamy do czynienia w zależności od mikrokontrolera AVR z jednym, dwoma lub maksymalnie trzeba takimi bajtami. Nazywają się one zgodnie z notami PDF, kolejno: LOW, HIGH oraz EXTENDED. Jeśli zatem, początkująca osoba zamierza głębiej poznać zasady działania Fusebitów to nic nie stoi na przeszkodzie. Więcej, nasz program umożliwia lepsze zapoznanie się z tą tematyką, bowiem mamy możliwość skorzystania w ramach tego samego programu z kolejnej cennej zakładki prezentującej widok Fusebitów, znany z takich programów jak: Bascom czy też AVR Studio bądź ECLIPSE.


 Zakładka "Fusy Właściwości". Powstała z myślą o tych wszystkich, którzy do tej pory byli przyzwyczajeni do widoku Fusebitów prezentowanych w programach: Bascom czy nowszej wersji AVR Studio. Istotną różnicą jednak pomiędzy wspomnianymi programami a naszym jest fakt, że u nas użytkownik może się w dowolnej chwili przełączać na dowolny widok. Programując zatem Fusebity w zakładce opisanej powyżej, może przejść do tej zakładki i sprawdzić w szczegółach jaka wersja bitów CKSEL a także SUT została wybrana domyślnie. Pozwala to na dużo szybszy proces zapoznawania się z ideą ustawień Fusebitów oraz przyswojenia sobie zasad nimi rządzących co jednocześnie drastycznie zmniejsza nieuzasadnione obawy (o których mowa była na początku), o omyłkowe ustawienia, które mogą doprowadzić do zablokowania mikrokontrolera. W trakcie korzystania z naszego programu, wielu użytkowników szybko uznało te wszystkie opowieści za mity nie godne uwagi. Zaś sam proces ustawiania Fusebitów w mikrokontrolerach AVR za przyjemny i wygodny. Wszystko okazuje się bowiem kwestią odpowiedniej prezentacji w tzw "interfejsie użytkownika" jeśli chodzi o oprogramowania pozwalające na dokonywanie zmian w bitach konfiguracyjnych i zabezpieczających. Prezentowany tutaj widok zapewnia nam równie wygodną obsługę poszczególnych Fusebitów, które zostały pogrupowane w pewne kategorie, można powiedzieć pewne "właściwości". Wszystkie Fusebity zostały opisane w książce naszego wydawnictwa pt: "Mirkokontrolery AVR Język C Podstawy programowania". Prezentowana tutaj struktura oraz możliwość korzystania z rozwijanych pól wyboru pozwalają już w 100% dokonać najbardziej zaawansowanych oraz wszystkich możliwych operacji z tym związanych. Jak widać obsługa jest nadal bardzo intuicyjna, zakładając oczywiście, że użytkownik zapozna się uprzednio chociażby z pobieżnym opisem poszczególnych sekcji Fusebitów, do czego one służą i za co każdy z nich odpowiada. Należy zwrócić uwagę, że wszystkie zakładki prezentujące różne widoki Fusebitów są ze sobą ściśle zsynchronizowane, co zapewnia, że zmiana dokonana w jednej z nich od razu ma odzwierciedlenie w pozostałych. To niesamowicie wspomaga proces zapoznawania się z podstawą działania Fusebitów, szczególnie biorąc pod uwagę opisy znajdujące się w notach PDF. A zwykle to właśnie te surowe opisy z not bywają dla początkujących największym kłopotem, ponieważ ciężko skorelować nieraz opisy, nawet przy dobrej znajomości języka angielskiego, jeśli nie zna się jeszcze ogólnych zasad. Dlatego kolejny widok, opisany niżej pozwala zrozumieć i spojrzeć na Fusebity jak na typowe poszczególne bajty, ponieważ tak są one zorganizowane w rzeczywistości. Spójrzmy zatem na kolejną zakładkę.


Zakładka "Fusy manualnie" jest widokiem odzwierciedlającym grupy opisane wcześniej, jednak na poziomie każdego bitu w jednym z kilku bajtów konfiguracyjnych o jakich mowa była wcześniej: LOW, HIGH, lub Extended. Jest to widok zbliżony do wielu innych programów, jednakże proszę zwrócić uwagę na bardzo istotne Fusebity, odpowiedzialne za możliwość prawdziwego "zablokowania mikrokontrolera". Bardzo newralgicznym Fusebitem pod tym względem jest ten o nazwie RSTDISBL, który powoduje zmianę funkcjonowania pinu RESET, niektórych mikrokontrolerów. Można bowiem go tak przestawić aby działał jak każdy normalny pin I/O, świadomie rezygnując z możliwości programowania za pomocą programatorów ISP. Czasem zachodzi taka konieczność. Niestety inne programy, pozwalają bez żadnego nadzoru czy kontroli lub chociażby ostrzeżenia, zmienić ustawienie tego Fusebitu. Zwykle prowadzi to do natychmiastowego zablokowania możliwości przeprogramowania mikrokontrolera za pomocą tego samego programatora ISP. Jeśli nie mamy innego pod ręką, procesor staje się od tego momentu praktycznie bezużyteczny. Tymczasem w naszym programie niektóre ważniejsze Fusebity tego typu domyślnie są zablokowane przed przypadkową nawet zmianą. Można naturalnie zmienić ten stan rzeczy, należy jednak świadomie w tym celu skorzystać z zakładki "Ustawienia" po to aby odblokować tę funkcjonalność. Rozwiązanie najprostsze z możliwych, ale jednocześnie okazuje się najbardziej skuteczne. Ilość omyłkowo zaprogramowanych mikrokontrolerów AVR dzięki naszemu programowi spada praktycznie do zera. Można wręcz powiedzieć, że program rzeczywiście wspomaga użytkownika i nie należy do tych, które zmuszają go najpierw do żmudnego studiowania wielu stron instrukcji a następnie stosowania żmudnych procedur, które jeszcze należy wykonywać w ściśle określonej kolejności. Ten podgląd Fusebitów jest już najbliższy kolejnemu, czyli reprezentacji Hexadecymalnej, wartości każdego z bajtów. Służy do tego celu już nie kolejna zakładka ale widoczna wciąż w głównym oknie programu ramka opisana poniżej.


Ramka "Fuse i lock bity" to kolejny sposób podglądu wartości ustawionych Fusebitów i Lockbitów w mikrokontrolerze. Znakomicie uzupełnia widok każdej z poprzednio opisanych zakładek i pozwala na szybką kontrolę wzrokową wprowadzanych zmian w każdej zakładce z osobna, jeśli zachodzi taka potrzeba. Podgląd wartości hexadecymalnych to nie jedyna zaleta. Można bowiem w każde z tych pól wprowadzać ręcznie wartości HEX, jeśli np. posiadamy podane przez kogoś (twórcę jakiegoś projektu), wartości jakimi on się posłużył podczas jego tworzenia a jednocześnie udostępnił go publicznie aby kolejne osoby mogły go odtworzyć we własnym zakresie. W takich sytuacjach najczęściej właśnie spotykamy się z prezentacją trzech bajtów postaci Hex, np.: LOW 0x62, HIGH 0xDF, Extended 0xF0. Wystarczy wtedy wpisać w odpowiednie pola wartości Hex i użyć klawisza "Ustaw" znajdującego się wewnątrz ramki. Można jednocześnie obserwować jak w zakładkach opisanych powyżej nastąpią jednocześnie stosowne zmiany. Pomaga to niesamowicie w szybszym przyswojeniu tych ustawień i co ważne ocenić wzrokowo z jakiego źródła ma pochodzić taktowanie mikrokontrolera a niejednokrotnie od razu jaka jest częstotliwość przeznaczona dla danego projektu.


Zanim przejdę do opisu kolejnej ważnej funkcjonalności programu MkAvrCalculator, przedstawię króciutko jeszcze jedną dosyć istotną zakładkę programu. Służy ona do ustawiania LockBitów, czyli zabezpieczeń mikrokontrolera przed niepowołanym dostępem do jego zawartości osób trzecich. Dzięki niej oraz dzięki odpowiednim ustawieniom możemy zabezpieczyć skutecznie wynik naszej, częstokroć wielomiesięcznej pracy, przed nielegalnym skopiowaniem czy też powieleniem. Zwykle próby zapoznania się po raz pierwszy na podstawie tylko noty PDF mikrokontrolera, z możliwościami ustawień Lockbitów, nastręczają początkującym osobom sporo kłopotów. Spowodowane jest to dosyć specyficznymi opcjami, które tak na prawdę nabierają szczególnego znaczenia jeśli już w zaawansowany sposób posługujemy się tymi zabezpieczeniami. O ile jednak osobom zaawansowanym nie potrzeba dużo tłumaczyć, to każdemu początkującemu w tym zakresie przyda się podstawowa informacja w jaki sposób można zabezpieczyć skutecznie wsad w mikrokontrolerze.

Proszę rzucić okiem na widok zakładki "Lock bity". Widzimy na niej trzy rozwijane pola wyboru z poszczególnymi opcjami. Widać zatem, że sam sposób dokonywania zmiany ustawień znowu jest przyjazny i bardzo wygodny dla użytkownika, podobnie jak to miało miejsce w zakładce "Fusy właściwości". Aby nie rozpisywać się teraz i nie powielać opisu z noty PDF na temat wszystkich możliwości zabezpieczeń, jakie można dokonać dzięki Lockbitom, wystarczy wiedzieć, że włączenie podstawowego zabezpieczenia w postaci wyboru opcji jak na zrzucie ekranu po lewej stronie, spowoduje całkowitą blokadę i możliwość odczytu wgranego wsadu do mikrokontrolera. Niestety, wiele osób myli to zabezpieczenie i spodziewa się, że próba odczytu wsadu zakończy się niepowodzeniem. Tymczasem ku zaskoczeniu początkujących, program na pierwszy rzut oka pozwala pięknie odczytać całą zawartość wsadu do pliku. Jest jednak poważna różnica pomiędzy wsadem odczytanym przed zabezpieczeniem za pomocą Lockbitów oraz po zabezpieczeniu. Otóż już nawet mało doświadczona osoba, która porówna zawartość obu plików, podejrzanych dowolnym edytorem, z powodzeniem wskaże który plik jest niewłaściwy, czyli zawierający nieużyteczne śmieci zamiast wsadu. Okazuje się bowiem, że po zabezpieczeniu, do pliku zapisane zostaną ciągi powtarzających się bajtów, które nie reprezentują binarnej zawartości pamięci Flash lub EEPROM mikrokontrolera. Inne nieporozumienie dotyczy często zadawanego na forach internetowych pytania, o to co się stanie z mikorkontrolerem po zabezpieczeniu. Czy będzie się jeszcze nadawał do dalszego użytku? Jak najbardziej TAK. Odczytu wsadu wprawdzie już nie uda się dokonać, jednak pozostaje możliwość zarówno skasowania mikrokontrolera jak i wgrania nowego wsadu, który bezpowrotnie pokryje poprzedni zabezpieczony. Dzieje się tak na skutek polecenia chip erase tuż przed programowaniem pamięci Flash. Co istotne, skasowaniu ulegają także zabezpieczenia Lockbitów. Zatem od razu mamy ponownie do użytku cały i zdrowy mikrokontroler. Operacja jest w pełni powtarzalna a zatem można dzięki naszemu programowi z powodzeniem poćwiczyć różne wersje zabezpieczeń i sprawdzić zawartość odczytanego wsadu po zabezpieczeniu, aby na własne oczy przekonać się czym różnią się dwa tak odczytane wsady. Przed i po dokonaniu zabezpieczeń.


Zakładka "Ustawienia". W zasadzie to od niej powinien rozpoczynać się opis tego programu, z uwagi na to iż to właśnie dzięki tej zakładce można a wręcz trzeba (jest o bardzo zalecane), dokonać instalacji programu AVRDUDE w systemie Windows. W ogromnej ilości przypadków problemów z jakimi borykają się początkujące osoby to brak lub niewłaściwa wersja programu AVRDUDE. W internecie można bowiem znaleźć setki jak nie tysiące przeróżnych kompilacji i różnych wersji tego programu. Niestety spora część z nich jest po prostu wadliwa. Często bywa też właśnie to powodem, że program MkAvrCalculator nie chce działać właściwie, ponieważ użytkownik, zamiast dokonać zalecanej instalacji AVRDUDE z wnętrza programu MkAvrCalculator, próbuje pobrać go gdzieś z internetu a później są same kłopoty. Tymczasem jak widać na zrzucie ekranu, w zakładce tej posiadamy ramkę o nazwie "avrdude" a w niej m.in klawisz "Instaluj" (na obrazku oznaczono ją zielonym kolorem). Jedyne co należy zrobić to użyć tego klawisza i wskazać folder gdzieś na dysku twardym. Uwaga! powinien to być jak najkrótszy folder i najlepiej nie zawierający spacji lub polskich ogonków. W żadnym wypadku nie powinno się go tworzyć na pulpicie co tak ochoczo robi wielu użytkowników. Podpowiedź jest prosta, oto przykładowy polecany folder:

C:\AVRDUDE

Proszę to dobrze zapamiętać. Ostatecznie do tak utworzonego folderu instalujemy program avrdude za pomocą klawisza "Instaluj". To wszystko, jeśli chodzi o instalację, prawda że proste? Dodatkowo w przypadku systemu Windows XP zostanie automatycznie zainstalowany sterownik GiveIO.SYS, który pozwoli na korzystanie z programatorów podłączanych do portu LPT1. Niestety sposób ten nie powiedzie się w nowszych systemach jak Windows Vista czy Windows 7. Tu już należy korzystać z programatorów sprzętowych podłączanych np. do USB.
Kolejne bardzo istotne ustawienie, które wymaga objaśnienia, to ramka o nazwie "pokazuj konsolę AVRDUDE" (oznaczona na rysunku kolorem fioletowym). Proszę ją ustawić w takiej pozycji jak na zrzucie ekranu. Wybrana pozycja: "gdy wystąpi błąd". To właśnie dzięki temu będzie można lepiej zdiagnozować każdy błąd jaki zaistnieje w programie podczas dowolnej operacji dostępu do mikrokontrolera za pomocą kolejnej zakładki. To właśnie przy okazji jej opisu, przedstawione zostaną przykłady wykorzystania informacji z konsoli DOS (czarne okienko konsoli).


Zakładka "Programator AVR" stanowi drugą i najważniejszą funkcjonalność całego programu wymienioną w jednym z dwóch podpunktów na górze tego opisu.

Na rysunku powyżej przedstawiono widok zakładki podczas prawidłowego przebiegu odczytu mikrokontrolera za pomocą programu MkAvrCalculator a dokładniej z użyciem żółtego klawisza o nazwie "Sprawdź podłączony AVR". To właśnie ta opcja, zdecydowanie odróżnia nasz program od wszystkich nakładek graficznych avrdude jakie do tej pory powstały. Umożliwia bowiem za pomocą jednego przycisku nie tylko sprawdzenie jaki mikrokontroler mamy podłączony do fizycznego programatora, ale także wczytanie jego bieżącej konfiguracji w postaci Fusebitów do kalkulatora, opisywanego we wszystkich zakładkach wcześniej. Naturalnie przed użyciem tego klawisza, należy bezwzględnie wybrać z rozwijanego pola o nazwie "Programator" rodzaj programatora sprzętowego z jakiego korzystamy. W omawianym przykładzie do testów wykorzystany został znany i popularny programator ATB-USBASP. Jeśli nie istnieją żadne problemy sprzętowe i programator jest prawidłowo podłączony do mikrokontrolera. Gdy mikrokontroler jest prawidłowo zasilany oraz włączone jest pokazywanie konsoli w każdym przypadku, naszym oczom powinien się pokazać taki właśnie obraz. W testowym przypadku użyty został mikrokontroler ATmega32 i jak widać taki właśnie został prawidłowo wykryty. Uwaga! opcja wykrywania mikrokontrolera nie wymaga korzystania ze sprzętowej zworki typu "SLOW_SCK", która bywa czasem montowana na niektórych programatorach a służy do spowolnienia sygnału zegarowego, podczas programowania mikrokontrolerów, które domyślnie (fabrycznie) taktowane są częstotliwością 1 MHz z wewnętrznego oscylatora RC lub wolniejszą. Nasz program w pełni radzi sobie bez takiej zworki. Dlatego też nie jest ona nawet fizycznie zamontowana w naszej wersji programatora ATB-USBASP.


Gdy wystąpią problemy z komunikacją z mikrokontrolerem za pomocą programu, najczęściej bywają w 99% dwa powody odpowiedzialne za taki stan rzeczy. Pierwszy objaw jaki może się nam przydarzyć, to znany komunikat "Błąd AVRDUDE" podczas sprawdzania mikrokontrolera. Niestety w takim przypadku komunikaty w konsoli mogą się nieco różnić w zależności od tego jaki będzie użyty programator sprzętowy. Nie mniej jednak warto je zaobserwować i ew z nimi zgłosić się do pomocy technicznej naszej firmy jeśli sami nie będziemy sobie w stanie poradzić na bazie niniejszego opisu. Poniżej pierwszy z typowych i częstych błędów, jakie opisują użytkownicy na forach internetowych, z jakim się spotykają:

Pojawienie się takiego komunikatu w czarnym oknie konsoli może oznaczać tylko i wyłącznie jedno. Programator USBASP nie jest prawidłowo widoczny w systemie Windows. Winę za to może ponosić błędna instalacja sterowników lub też wadliwie wykonany programator. Nie można zatem nic dalej zrobić dokąd ta sytuacja nie zostanie doprowadzona do porządku. W przypadku korzystania z programatorów opartych o układ FT232R, komunikat ten może wyglądać następująco:

To także oznacza, iż nie wykonano np. prawidłowych połączeń programatora, przedstawionych w tym LINKU. Proszę pamiętać, że dokąd nie uda się wykryć podłączonego mikrokontrolera do programatora a będą pojawiały się powyższe komunikaty, to należy bezwzględnie ponownie sprawdzać połączenia aż do skutku. Nie ma absolutnie żadnej innej możliwości niż błąd połączeń, lub brak albo złe sterowniki do programatora. Jeśli uda nam się już doprowadzić drivery oraz sam programator do poprawnego stanu. może się jednak pojawić czasem kolejny ale już inny komunikat błędu, tym razem taki jak niżej:

Tym razem, nie widząc już poprzednich komunikatów możemy być przynajmniej pewni, że pozbyliśmy się kłopotów ze sterownikami do programatora lub z jego fizycznym defektem. Mamy wręcz pewność, że programator działa i prawidłowo zwraca odpowiedzi, co widać na powyższym zrzucie ekranu. Jesteśmy zatem o krok bliżej. Co może być powodem takiego komunikatu, a jest on także bardzo często zgłaszany wśród problemów. Oznacza on z kolei, że tym razem występują albo błędne połączenia ale już pomiędzy naszym programatorem sprzętowym i programowanym mikrokontrolerem, lub brak zasilania tegoż mikrokontrolera. I znowu, nie ma innego wyjścia ani innego wytłumaczenia. Dotąd - dokąd będzie się pojawiał taki komunikat należy szukać przyczyny w połączeniach z procesorem i/lub zasilaniu procesora. Niestety błędne połączenia najczęściej wśród początkujących wynikają z błędnego podłączenia samej wtyczki ISP, wykonanej w standardzie KANDA. Bardzo często początkująca osoba zapomina, że mając w ręku wtyk żeński, ma do czynienia niejako z odbiciem lustrzanym złącza męskiego KANDA, które zwykle jest opisywane w różnych źródłach. Natomiast podłączając przewody np. pomiędzy samym wtykiem żeńskim a np. płytką stykową należy mieć na uwadze to lustrzane odbicie. Myślę, że najlepiej zilustruje to poniższy rysunek, proszę się dokładnie przyjrzeć:

Przedstawiamy tutaj precyzyjnie różnice w wyprowadzeniach sygnałów linii ISP (MOSI, MISO, SCK, RST, VCC i GND) pomiędzy gniazdem KANDA, na przykładzie programatora lub zestawu uruchomieniowego ATB a żeńską końcówką wtyczki kabla łączącego programator z docelowym układem. Myślę, że to wiele wyjaśni każdemu, kto zaczyna pracę z tego typu złączami i programatorami ISP. Wbrew pozorom częste pomyłki związane z połączeniami ISP zdarzają się nie tylko podczas odwrotnego podłączania sygnałów z wtyczki. Bodajże najczęstszym przypadkiem i źródłem problemów są płytki stykowe, które najczęściej wyglądają w ten sposób:

Dlatego jeśli już decydujemy się na korzystanie z płytek stykowych do prac z mikrokontrolerami, nigdy nie należy dopuszczać do takiego bałaganu na nich, gdyż z reguły odbija się to samymi kłopotami nie tylko na etapie programowania ale także później podczas prowadzenia własnych testów, gdy co chwilę projekt pracuje w sposób nieprzewidywalny. Inną metodą pozbycia się takich kłopotów jest bądź to zrobienie we własnym zakresie zestawu uruchomieniowego lub zakupienie gotowej konstrukcji, nie narażonej na ciągłe przekładanie przewodów lub po prostu ich wypadanie. W tego typu sytuacjach często dochodzi np. do fizycznego zwarcia na liniach ISP. Dlatego postanowiliśmy przeprowadzić mały eksperyment, doprowadzając świadomie do zwarcia na linii MISO oraz SCK za pomocą niewielkiego śrubokręta, jak na zdjęciu poniżej:

Proponujemy nie powtarzać tego doświadczenia na własnych mikrokontrolerach, nie mniej jednak efektem takiego zabiegu (o ile można to nazwać zabiegiem), jest nadal wciąż ten sam komunikat błędu jak wyżej z powtarzającą się frazą:

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1

Natomiast po rozwarciu linii, program zaczyna poprawnie wykrywać podłączony na tym zdjęciu mikrokontroler. Jest to zatem bardzo typowa symulacja efektów z jakimi spotykają się początkujący na płytkach stykowych podczas pierwszych prób podłączania mikrokontrolera i programatora.

 

 

Program MkAvrCalculator jest dostępny w naszym sklepie

ikona Strona główna ikona O nas ikona Wydawnictwo ikona Elektronika ikona Oprogramowanie ikona Kursy ikona Nowości ikona SKLEP ikona FORUM ikona Kontakt ikona Polityka Prywatności Cookie

ATNEL Nowoczesne Rozwiązania - programowanie AVR w C | pisanie programów dla AVR | pisanie programów ATmega | pisanie programów dla AVR | programowanie mikrokontrolerów |
mikrokontrolery AVR programowanie | programowanie w C mikrokontrolerów | programowanie ATmega | programy w C AVR
Realizacja: Dpl Agency - Projektowanie Stron Internetowych