Skocz do zawartości

Matthias

Użytkownicy
  • Zawartość

    8
  • Rejestracja

  • Ostatnio

Reputacja

11 Dobra

O Matthias

  • Ranga
    2/10
  • Urodziny 18.05.1987

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Gdańsk
  • Języki programowania
    C/C++
  • Zawód
    Technik elektronik

Ostatnio na profilu byli

84 wyświetleń profilu
  1. Tylko bym się jeszcze zajął kondensatorami C202 i C205 chodzi o to aby dać je jak najbliżej nóżek procesora bo odległość też może mieć znaczenie na filtrowanie napięcia zasilającego procek. Bywały przypadki gdzie pomimo zastosowanie kondensatorów na pinach zasilających procek występowały problemy z prawidłowym działaniem układu. Im bliżej tym lepiej. Jeżeli płytka będzie wykonywana czy w warunkach domowych czy przez zewnętrzną firmę to warto zrobić wylewke masy. W przypadku pierwszej metody zużyje się mniej roztworu trawiącego a dodatkowo urządzenie będzie lepiej zasilane a co więcej masa działa jak ekran na zakłócenia zewnętrzne jak oraz zakłócenia generowane przez układy płytki.
  2. Cechą wspólną obu płytek jest połączyć elementy w w działający układ ale na płytce stykowej zawsze mogą wystąpić problemy w postaci niestykających połączeń czyli zaśniedziałe nóżki elementów wyrobione styki płytki. Ja generalnie miałem problem na zaprojektowanej PCB więc aby zaprogramować procka musiałem wylutować kondensator i wtedy program się wgrał bez problemu. Jak już wykorzystujemy kondensator na pinie RESET warto przy projektowaniu uwzględnić zworkę. To tylko dwie minuty pracy i koszt kilku groszy ale dzięki temu eliminujemy jeden problem i wtedy gdyby zaistniał problem z wgraniem programu to szukamy przyczyny gdzie indziej.
  3. Witam Odnośnie tego kondensatora na pinie RESET bezpiecznie jest dać zworkę aby na czas programowania procesora odłączyć go od pinu reset. Miałem przypadek gdzie kiedyś też kondensator 100nF zastosowałem na pinie RESET na procesorze Atmega328 i nie mogłem wgrać napisanego przez siebie programu, który był dobrze napisany. Wiec zacząłem szukać źródła problemu i natrafiłem na taki artykuł: http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html#reset_vs_kondensator Faktycznie po usunięciu kondensatora program się wgrał i wszystko działało jak należy. Dlatego kiedy wiem w jakich warunkach działa urządzenie to owszem dodaje go ale razem ze zworka, aby gdy zajdzie potrzeba wgrania programu na czas jego wgrywania był niepodłączony. W artykule tym będzie napisane aby nie dawać kondensatorów większych niż 100nF bo wtedy może wystąpić problem z graniem programu, ale jak widać nawet 100nF może zakłócić proces wgrywania programu do procesora.
  4. Witam wszystkich!!! W końcu po długiej nieobecności na forum, zrealizuje to do czego się zobowiązałem w moim wpisie pod projektem Bootlader programmer for UNO R3 - Rev.2, a dokładniej mówiąc opisze jak za pomocą Arduino UNO i wyżej przedstawionego urządzenia wgrywać Bootloadery do konkretnych ATmeg. Na warsztat weźmiemy procesory ATmega 8/168/328, gdyż środowisko Arduino IDE wspiera te procesory umożliwiając nam wgranie wybranego bootloadera. Cały proces przedstawię z wykorzystaniem Arduino UNO R3 wyposażonym w ATmegę 328. Opiszę cały proces od początku czyli od instalacji środowiska Arduino IDE, które jest dostępne na stronie producenta Arduino. Na razie nie podłączamy naszego Arduino do komputera tylko instalujemy Arduino IDE. Kiedy instalacja przebiegnie do końca bez jakichkolwiek problemów, wtedy podłączamy nasze Arduino i czekamy. Bywa także, że Windows musi doinstalować sterowniki aby prawidłowo rozpoznać podłączone urządzenie. Instalacja odbywa się automatycznie z Windows Update. System znajdzie i zainstaluje potrzebne nam drivery po czym wyświetli się komunikat, że sterowniki zostały prawidłowo zainstalowane oraz wyświetli nam nazwę podłączonego do komputera urządzenia. Po zakończeniu instalacji odłączamy nasze arduino i przygotujemy je do podłączenia Bootloader programmera. Najpierw zaczniemy od podłączenia płytki programatora do naszego Arduino tak jak to zostało przedstawione na zdjęciu. Aby ułatwić cały proces podłączenia, złącze programatora opisane zostało identycznymi oznaczeniami jakimi są opisane złącza Arduino UNO, dzięki temu proces podłączenia jest prosty i bezproble- mowy. Uwaga: Nie podłączamy linii RX, TX. W przypadku wgrywania bootloadera linie te nie mogą być podłączone. Następnym krokiem jest podłączenie Arduino do komputera oraz uruchomienie środowiska Arduino IDE po czym przechodzimy do ustawień środowiska Arduino IDE. Na początek sprawdzamy port, do którego podłączone jest nasze arduino. Jeżeli instalacja środowiska Arduino IDE przebiegła bez komplikacji to w zakładce "Narzędzia/Port" powinniśmy ujrzeć taki widok. Mamy do wyboru porty COM, wśród których znajduje się port do którego jest podłączone Arduino UNO. U mnie jest to port COM3. Możemy to rozpoznać po nazwie naszego urządzenia znajdującej się w nawiasie, po czym zaznaczamy wybrany port i przechodzimy do kolejnego ustawienia jakim jest wybór płytki. W tym celu klikamy "Narzędzia" i wybieramy opcję "Płytka". Z dostępnej listy wybieramy tą, która odpowiada naszej płytce podłączonej do komputera. W moim przypadku jest to: "Arduino UNO". Jest to bardzo ważne ustawienie bo od niego zależy wgrywanie sketch-ów czyli programów do Atmegi która jest sercem naszego Arduino, a także wgrywania bootloaderów do wybranych ATmeg z wykorzystaniem bootloader programmer. Ale wszystko po kolei. Po ustawieniu portu i wybraniu płytki klikamy "Plik/Przykłady" i z menu rozwijanego wybieramy "11.ArduinoISP/ArduinoISP". Jest to sketch, który czyni nasze arduino programatorem, które umożliwi nam wgranie do konkretnej ATmegi wybranego bootloadera z użyciem bootloader programmer. Naciskamy przycisk "wgraj" (strzałka w kółku) i czekamy na wgranie się sketcha. Po jego wgraniu klikamy na "Narzędzia/Programator" i z menu rozwijanego wybieramy "Arduino as ISP". Po zaznaczeniu tej opcji jesteśmy gotowi do wgrywania bootloaderów do ATmeg. Przejdziemy teraz do najważniejszej czynności czyli procesu wgrywania bootloadera. Bierzemy czysty procesor ATmega i umieszczamy go w podstawce bootloader programmera tak jak na zdjęciu. Jak widać na obudowie procesora z brzegu mamy półokrągle wycięcie a pod nim wgłębienie w postaci kółka które musi się znaleźć od strony dźwigni podstawki bootloader programmera. Opuszczamy na dół dźwignię podstawki tak aby piny złącza podstawki zostały dociśnięte do pinów procesora. Wgrywanie bootloadera do procesora ATMEGA 328 Klikamy na "Narzędzia i wybieramy "Wypal bootloader" po czym następuje wgrywanie bootloadera do naszej nowej czystej ATmegi. Proces ten może trwać od 15 sekund do jednej minuty. Diody: L, RX, TX na arduino powinny migać w trakcie wgrywania, a w dolnej części okna Arduino IDE powinniśmy ujrzeć taki komunikat w trakcie wgrywania oraz po zakończeniu wgrywania - zdjęcia poniżej. Po wszystkim możemy wyjąć procesor z podstawki i zaprogramować kolejny, jeżeli istnieje taka potrzeba. Wgrywanie bootloadera do procesora ATMEGA8/168 Tutaj zanim zaczniemy wypalać bootloader do jednego w powyższych procesorów, musimy dokonać zmiany jednego ustawienia. Klikamy "Narzędzia" i wybieramy opcję "Płytka" po czym z dostępnej listy wybieramy "Arduino NG or older" Ponownie klikamy "Narzędzia" i na liście wyboru pojawia nam się pole "Procesor" najeżdżamy na to pole kursorem, gdzie z menu rozwijanego mamy do wybory wyżej wymienione procesory. Klikamy na dany procesor do którego będziemy wgrywać bootloader. Następnie znów klikamy "Narzędzia" i opcję "Wypal bootloader" Proces ten może trwać od 15 sekund do jednej minuty. Diody: L, RX, TX na arduino powinny migać w trakcie wgrywania, a w dolnej części okna Arduino IDE powinniśmy ujrzeć taki komunikat w trakcie wgrywania oraz po zakończeniu wgrywania - zdjęcia poniżej. Po wszystkim możemy wyjąć procesor z podstawki i zaprogramować kolejny, jeżeli istnieje taka potrzeba. W przypadku kiedy wszystkie czynności zostały wykonane poprawnie a bootloader nie chce się wgrać, powinniśmy sprawdzić wszystkie połączenia płytek i procesora. Gdy to nie pomoże, warto na chwilę odłączyć arduino od komputera oraz zamknąć po czym ponownie uruchomić środowisko IDE Arduino. Za jakiś czas przedstawię kilka sposobów wgrywania sketch-y do procesora, który znajduje się już w gotowym projekcie. Tak aby obyło się bez zbędnych czynności w postaci ciągłego przekładania ATmegi z Arduino do gotowego projektu.
  5. Witam. Dziękuje Ci atMegaTona za konstruktywną opinię. Bo powiem, że dzięki niej dowiedziałem się paru rzeczy, ale zaraz się odniosę do wszystkiego. Nie będę ukrywać, że pierwsza część wypowiedzi, odnośnie taktowania procesora jest mi dobrze znana. Jednakże początkującym osobom w programowaniu z użyciem arduino, chciałem to przedstawić w dość uproszczony sposób, bo fakt faktem Atmegi, które można zamówić lub kupić, są już ustawione do pracy z konkretną częstotliwością taktowania, mowa tu o zewnętrznym kwarcu, który łatwiej jest podłączyć do procesora, szczególnie początkującym osobom. Ja co prawda jeszcze się nie bawiłem w zmianę parametrów taktowania procesora, ale wiem że jest to możliwe u użyciem fuse bitów. Nie bawiłem się dlatego, że generalnie wszystkie programy piszę w środowisku Arduino IDE i generalnie używam do moich projektów ATmeg 8A/328, które są taktowane zewnętrznym generatorem z częstotliwością 16 MHz, które bardzo łatwo jest kupić. W sumie to za jakiś czas mam ochotę się pobawić w uruchomienie procesora na jego własnym wewnętrznym generatorze a nawet zmianę częstotliwości tego generatora. Odnośnie boot loaderów przyznaje się bez bicia, że tego co napisałeś nie wiedziałem i kto wie może kiedyś mi się ta wiedza przydać. Tak jak pisałem, projekt który opisałem jak i sposób jego użycia odnosi się do jedynego w tym momencie narzędzia jakim jest Arduino bez dodatkowych programatorów oraz innych metod. Dlatego tak a nie inaczej opisałem sposób wgrywania bootloaderów oraz taktowanie procesorów, podpierając się tym co znalazłem w internecie, co potem sam zweryfikowałem. Wszystko co opisałem wcześniej zostało przeze mnie sprawdzone. Ale nie zmienia to faktu, że dowiedziałem się kilku ciekawych rzeczy odnośnie boot loaderów i dziękuje za komentarz. Pozdrawiam.
  6. Witam. Od jakiegoś czasu bawię się arduino UNO, które wybrałem ze względu na niską cenę, ale jak również że jest to dobra platforma dla początkujących, którzy zaczynają od prostych projektów do których ATmega 328 nadaje się idealnie, a także na łatwość przenoszenia projektów na zaprojektowane przez nas PCB. Głównie dzięki temu, że procesor ten nie jest na stałe wbudowane w arduino tylko znajduje się w podstawce. Można go łatwo wyjąć i zastosować w naszym projekcie, lub na przykład gdy procesor ten jest uszkodzony, możemy wymienić go na inny działający w naszym arduino. Co więcej nie musi być to koniecznie ATmega328. Tak naprawdę arduino UNO umożliwia nam skorzystanie z takich procesorów jak choćby ATmega8/8A, która co ciekawe była używana w pierwszych wersjach arduino . Środowisko arduino IDE umożliwia nam także wykorzystanie ATmegi168. Aby wykorzystać wymienione procesory w ardunio najpierw musimy do nich wgrać bootloader. Środowisko arduino IDE wspiera te procesory i umożliwia nam wgranie właściwego bootloadera. Z mojego doświadczenia udało mi się grać bootloader do ATmega8A oprócz standardowej ATmegi 328, a także prosty standardowy sketch - blink LED. Tyle tytułem wstępu. Przejdziemy teraz do dalszego opisu dlaczego tak nie inaczej, projekt ten został zrealizowany. Na samym początku wgrywałem bootloader na odpowiednio przygotowanej do tego celu płytce stykowej. Jak wiadomo takie przygotowanie trwa trochę czasu i wymaga cierpliwości aby wszystko było właściwie podłączone. Co więcej czasem zdarzało się, że nie miałem kondensatorów, lub kwarcu bo wcześniej został on już gdzieś wykorzystany w innym projekcie. Także przy takim połączeniu na płytce stykowej zawsze istnieje ryzyko, że któreś połączenie może nie łączyć i w efekcie bootloader nie wgra nam się do procesora, a my będziemy zmuszeni szukać przyczyny zaistniałej sytuacji. Postanowiłem poszukać w internecie modułów do wgrywania bootloaderów do ATmeg dla arduino. Wyniki wyszukiwań są uzależnione od tego co wpiszemy w wyszukiwarce. Wysyp róźnych shieldów czyli nakładek na arduino, ale właściwy shield jak już znalazłem to przeważnie na zagranicznych stronach, ale na polskich stronach co mnie zdziwiło to komunikat: "wycofany ze sprzedaży" lub brak. Z kolei shieldy na zagranicznych stronach rozbudowane o dodatkowe elementy jak buzzer i ledy, które tak naprawdę nie są nam potrzebne. Generalnie cena max do 20 PLN nie uwzględniając kosztów wysyłki. Następną rzeczą jako, że posiadam klon arduino to niezbyt równo polutowane gniazda więc będę musiał się bawić w odpowiednie ukierunkowanie pinów do gniazd aby włożyć shield. Na koniec ostatnia kwestia, że przy takiej ilości pinów gniazda, takie shieldy nieraz ciężej się wyciąga , ale to indywidualna kwestia. Każdy może mieć własne zdanie na ten temat oraz sam fakt, że piny takiego shielda mogą się powykrzywiać w jakieś sytuacji, bo istnieje większe ryzyko, że gdzieś nimi o coś zahaczymy lub spadnie nam na podłogę. Na podstawie powyższych przemyśleń postanowiłem sam zaprojektować programator do bootloader-ów tylko, że nie w postaci schield-u ale normalnej płytki i tylko z podstawowymi elementami, bez których wgranie bootloadera byłoby niemożliwe. Jedyne dodatkowe elementy to dioda LED1 oraz rezystor R2 o tym do czego służą te elementy wyjaśnię później. Poniżej zdjęcia prezentowanego przeze mnie programatora: Mając garść elementów odpowiednio je rozmieściłem na płytce tzn. gęsto, dzięki czemu płytka ma znacznie małe wymiary w stosunku do shieldu, mimo zastosowania elementów THT oraz nie ma tak jak shieldy wystających pinów, co sprawia że łatwo możemy ją przenosić lub schować bez obawy o to, że jakiś pin złącza ulegnie wykrzywieniu. Dzięki opisom na stronie TOP płytki możemy bez problemu podłączyć programator do arduino. Jak widać opisy pinów gniazda programatora, odpowiadają opisom gniazd arduino. Programator ma wykonane nóżki z nylonowych słupków o wysokości 6mm przykręconych śrubą krzyżakową M3. Dzięki temu stoi prosto i stabilnie. Zamiast tego można zastosować gumowe samoprzylepne nóżki co doda-tkowo poprawi kontakt z podłożem i ustabilizuje nam programator. Na poniższym zdjęciu pokazana została płytka samego programatora, a na następnym zaś jak jest ona podłączona do arduino. Do podłączenia użyłem przewodów do połączeń na płytce stykowej. Nic nie stoi na przeszkodzie aby wykonać to jeszcze w inny sposób. Na przykład lutując przewody w miejscu złącza SV1, zaś na końcu tych przewodów dolutowując odpowiednie złącza goldpin, które możemy umieścić w gniazdach arduino. Jeżeli wgrywamy bootloader piny opisane jako Rx oraz Tx pozostają nie podłączone. Dokładny opis jak wgrywać bootloader do ATmegi 8/168/328 przedstawię za jakiś czas w osobnym wpisie. Na koniec jeszcze wyjaśnię dlaczego na złączu SV1 mamy piny Rx, Tx oraz do czego służy obwód złożony z R2 oraz LED1 1 przykład Jeżeli używamy Arduino do programowania ATmeg, czyli wgrywania stworzonego przez siebie sketcha, którą to ATmegę potem znów wyciągamy z arduino aby przełożyć do zapro-jektowanego przez nas urządzenia. Szczególnie często może się to zdarzać początkującym osobom, które muszą poprawiać coś w kodzie programu zanim znajdą lukę, która unie-możliwiała prawidłową pracę zaprojektowanego przez siebie urządzenia. Takie przekładanie ATmegi może być uciążliwe i wyrabia styki podstawki. Ponadto takie podważanie procesora może za którymś razem uszkodzić nam ubudowę podstawki a nawet procesora nie mówiąc już o powykrzywianych lub ułamanych pinach pinach procesora. O ile tę czynność będziemy musieli powtarzać na zaprojektowanym urządzeniu wyeliminujemy ją przynajmniej na arduino. Zawsze to połowę mniejsze ryzyko uszkodzeń i straty czasu. 2. przykład Jeżeli wgrywamy bootloader do dużo większej ilości ATmeg niż ma to miejsce w przypadku osób zajmujących się tym amatorsko, bo być może są osoby które programują procesory do urządzeń, które są potem gdzieś wykorzystywane na większą skale. Warto sprawdzić czy po wgraniu bootloadera jesteśmy w stanie wgrać do procesora prosty sketch. Sprawdzimy w ten sposób czy nasz procesor oprócz wgranego bootloadera-bez niego nie będziemy w stanie wgrać sketcha, uruchamia się. Tutaj wgrywamy sketch z migającą diodą LED. Uwaga: domyślny sketch w arduino-blink nie będzie działać, ze względu na inny port procesora, do którego jest podłączona dioda LED. Wykaz elementów: a) elektronika SV - złącze goldpin żeńskie, 8-pin IC1 - podstawka testowa ZIF28 (228-3341)-wąska C1,C2 - kondensator ceramiczny 22pF/50V C3,C4 - kondensator ceramiczny 100nF/50V Q1 - kwarc 16 MHz* (opcjonalny) R1 - 10k 0,2W R2 - 120R 0,2W LED1 - Zielona 5mm S1 - tact switch 6x6x5mm czarny J1 - kynar, srebrzanka 0.54mm b) mechanika Słupek dystansowy M3 6mm w/w poliamid 4 szt. Śruba walcowa na krzyżak M3x5mm DIN 7985 4 szt. * Programujemy tylko procesory taktowane częstotliwością 16MHz. Należą do nich ATMEGA8/328 ale są też spotykane wersje tych procesorów taktowane częstotliwością 8Mhz. Dlatego jeżeli wiemy jakich procesorów będziemy używać do tworzenia naszych projektów, bądź jakimi obecnie dysponujemy, musimy zamontować kwarc Q1 o odpowiedniej częstotliwości dla danego procesora. Co ciekawe Atmega168 jest taktowana częstotliwością 20 Mhz. Zatem mamy do wyboru kwarc o częstotliwości 8/16/20 MHz Dodatkowe uwagi odnośnie montażu: Użycie innej wersji podstawki ZIF28 niż ta wymieniona w wykazie może skutkować problemem z montażem takich elementów jak R1, Q1, R2, C3. Chodzi o wersję szerszą podstawki. Użyta w projekcie podstawka o numerze 22-3341 - wąska i pod nią zostało zaprojektowane PCB. Elementy LED1 i R2 są opcjonalne. Jeżeli nie będziemy wykorzystywać programatora do wgrywania sketcha testującego, nie ma potrzeby montowania tych elementów. Przedstawiona na zdjęciu płytka programatora w rev.1 co jak widać nie ma na niej kondensatora C4, który dolutowałem od strony BOTTOM programatora. W załączonych do opisywanego projektu plikach, znajduje się uaktualniony rysunek PCB w rev.2, na którym ten kondensator został dodany oraz dodatkowo płytka została jeszcze nieco zminiaturyzowana względem pierwotnej wersji. Oprócz zdjęć urządzenia zamieszczam schemat, rysunki PCB płytki programatora - do wykonania metodą termo transferu, dzięki czemu jak ktoś będzie chciał to będzie mógł go wykonać oraz sketch testowy blink. Wszystkie wyżej opisane pliki umieszczone są w pliku ZIP pod nazwą "bootloaderburn-Rev.2 W następnym poście opisze wgrywanie bootloaderów do ATmeg: 8/168/328 z użyciem wyżej opisanego programatora, wykorzystując do tego arduino UNO. Płytka została zaprojektowana w programie Eagle. Na początku montażu najpierw zacznijmy od montażu zworki J1, która jest kluczowa do zasilania procesora. Zworka ta znajduje się w miejscu gdzie później będzie montowana podstawka do procesorów. Montaż tradycyjnie zaczynamy od najmniejszych elementów, gdzie na końcu montujemy podstawkę pod procesor. Pobierz:bootloaderburn-Rev.2.zip
  7. Witam wszystkich. Nazywam się Maciek mam 32 lata, interesuje się elektroniką od 11 roku życia. Elektronika miała duży wpływ na to co chciałem robić w przyszłości, tak więc z zawodu jestem elektronikiem. Od dwóch lat kiedy znajomy z pracy powiedział mi o Arduino UNO, zacząłem się interesować programowaniem mikrokontrolerów. Wcześniej tego nie robiłem bo tworzyłem dość proste układy albo od kiedy zostałem ojcem nie miałem na to zbytnio czasu, który mam teraz. Mam nadzieję, że niedługo przedstawię kilka swoich projektów, nad którymi pracuje. Na początek chciałbym przedstawić prosty projekt, ale mocno związany z ważnym aspektem programowania w Arduino. Mianowicie wgrywania bootloaderów do atmeg, dokładniej kilku rodzajów za pomocą środowiska Arduino IDE. Pozdrawiam wszystkich i życzę owocnej pracy nad projektami, dzięki którym możemy wzajemnie poszerzać naszą wiedzę i wymieniać się doświadczeniami.
×
×
  • Utwórz nowe...