Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Licencja Pulsonix
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Układ uruchomieniowy "MegaStarterKit"

Grizzly16 05 Gru 2013 21:10 15723 20
  • Układ uruchomieniowy "MegaStarterKit"
    Zaprojektowany i wykonany układ uruchomieniowy powstał jako część dyplomowej pracy inżynierskiej na wydziale Elektronika i Telekomunikacja. Tytuł inżyniera obroniłem w 2010 roku ale dopiero niedawno postanowiłem przedstawić szerszej publice urządzenie mojego autorstwa. Urządzenie wraz z zestawem podstawowych ćwiczeń wspomagających naukę programowania mikrokontrolerów AVR w języku C pomyślane zostały dla takiego odbiorcy jak: uczeń technikum elektronicznego lub studenta politechniki o kierunku elektronika/informatyka. Nie mniej myśląc o pierwszych kształtach układu prócz celu dydaktycznego chciałem uwzględnić również swoje potrzeby, które płynęły nieustanie z zainteresowania i pasji jakim jest dla mnie świat mikrokontrolerów.

    Tak więc na projekt zostały nałożone następujące założenia:
    - bogactwo praktycznych peryferii
    - "mocny" mikrokontroler dający duże możliwości i brak skrępowania znacznymi ograniczeniami na polu prototpypwania
    - Wysoka elastyczność dająca z jednej strony narzędzie edukacyjne o krótkim czasie konfiguracji potrzebnej do przygotowania urządzenia do następnego ćwiczenia laboratoryjnego. A z drugiej strony dającego się w łatwy sposób rekonfigurować w zależności od aktualnej potrzeby elektronika-konstruktora
    - Maksymalnie uproszczona obsługa, tak by z zaprogramowaniem układu poradził sobie laik.
    - Łatwość analizy sygnałów

    Połączenie tak różnych potrzeb na jednej płytce PCB było dla mnie sporym wyzwaniem. Z jednej strony wymiary płytki dla celów prototypowych musiały być ściśle kompaktowe, zaś z drugiej strony potrzeba uwzględnienia jak największej ilości użytecznych peryferii i czytelności płytki dla celów edukacyjnych sprawiała, że ciężko było uzyskać kompromis nie tracąc nic dla żadnej z potrzeb.

    Przed dojściem do dyplomu wykonałem nie jeden układ uruchomieniowy dla AVR o różnych koncepcjach projektowych, jednak za każdym razem czułem, że to nie to. Projekty o zdefiniowanych połączeniach szybko zamieniały się w "monstrum doktora Frankensteina", zaś rozwiązania z mnogą ilością złącz kołkowych kończyła się wypuszczeniem do lasu kolejnego szalonego jeża z pomieszanymi obwodami.

    Dopiero realizując podobny projekt na potrzeby Koła Naukowego Pasjonatów Elektroniki zrozumiałem, że by do tego dojść potrzebuję efektu synergicznego. Dokonałem tego decydując się na wybranie najważniejszych moim zdaniem peryferiów pod kątem dydaktycznym, następnie przydzieliłem im konkretne połączenia z nóżkami mikrokontrolera. Połączenie te jest możliwe dzięki zworką, gdyż złącza kołkowe przystają do wybranych pinów złącz kołkowych o podwójnym wyprowadzeniu każdego funkcyjnego pinu AVR-a.

    Tak więc by skorzystać z takich peryferii jak:
    - LCD,
    - linijka diodowa,
    - konwerter USART-USB (FT232),
    - RS485,
    - zegar czasu rzeczywistego (RTC) I2C,
    - pamięć trwała EEPROM I2C,
    - klawiatura matrycowa 4x4,
    - piszczek piezo-elektryczny
    nie potrzebny jest ani jeden kabelek łączeniowy!!!

    Z pomocą kilku(dziesięciu ;P) zworek możemy przystąpić do pracy z wyżej wymienionymi peryferiami. Rozwiązanie to jest bardzo wygodne i estetyczne. Ponadto zachowuje dostatecznie kompaktowe rozmiary płytki tak by można było ją zabrać ze sobą wrzucając ją do plecaka, torby czy niewielkiego pudełka. Może również znaleźć miejsce w większym konstruowanym urządzeniu nie zajmując specjalnie wiele miejsca. Oczywiście nic nie stoi na przeszkodzie by dowolnie re konfigurować połączenia przewodami łączeniowymi.

    A teraz parę suchych faktów co by już dłużej nie przynudzać.
    Wyposażenie zestawu:
    - Mikrokontroler Atmel AVR ATmega 16/32/x64
    - Kwarc 16MHz
    - Przycisk Reset
    - Klawiatura matrycowa 4x4
    - 8 X Przełącznik typu Dip-Switch Piano
    - 2 X Ceramiczny potencjometr montażowy
    - 10 X LED (linijka diodowa)
    - 2 X dwucyfrowy wyświetlacz LED 7-segmentowy z kropką
    - Wyświetlacz LCD 2X16 znaków z podświetleniem i regulacja kontrastu
    - Zegar RTC PCF8583 (I2C) z własną baterią pastylkową podtrzymującą pamięć
    - Pamięć EEPROM AT24C08 (I2C) – pełna re-konfigurowalność adresu
    - Slot karty pamięci typu MMC/SD (z WP/CD)
    - Złącze klawiatury/myszy PS/2
    - Konwerter USB<>UART (FT232)
    - Konwerter RS485<>UART (zabezpieczony dwukierunkowymi diodami tonsil)
    - Termometr DS18B20
    - Interfejs 1Wire (wyprowadzony na kątowym złączu kołkowym)
    - Nadajnik podczerwieni
    - Odbiornik podczerwieni TSOP43836
    - Interfejs I2C (TWI)
    - 8ch. Driver Darlington ULN2803
    - Sygnalizator dźwiękowy piezo (wbudowany generator)
    - 3 x złącza napięć stabilizowanych (12V, 5V, 3.3V) + 1 X niestabilizowane + 1 X Masa
    - Złącze programujące ISP w standardzie KANDA
    - Diody LED sygnalizujące napięcia 5V i 12V
    - Dolna płyta ochronna wraz z gumowymi nóżkami.
    - Bateria litowa podtrzymująca zegar RTC

    Cechy szczególne:
    - Napięcie pracy układu do wyboru 5V lub 3.3V
    - Peryferie z predefiniowanymi połączeniami zworkowymi:
    LCD, Klawiatura matrycowa, 8xLED, USB, RS485(prócz linii kierunku), RTC, EEPROM, piszczek piezo
    - Podwójne wyprowadzenia portów- ułatwia badanie stanów na pinach i umożliwia wprowadzenia bardziej skomplikowanej konfiguracji
    - Konwerter USB<>UART posiada diody sygnalizacyjne RxD, TxD
    - Dzięki użytemu konwerterowi FT232 można programować mikrokontroler i obsługiwać port szeregowy przez USB
    - Port RS485 zabezpieczony 2-kierunowymi diodami tonsil
    - Większość scalaków w podstawkach
    - Interfejs I2C wyprowadzone na złączu zaciskowym TerminalBlock i złączu kołkowym, na których są: VCC, SDA(PC1), SCL(PC0), I2C Interrupt, GND
    - Dodatkowe wyprowadzenie na interfejsie 1Wire dla montażu Strong Pull-Up
    - Złącze sterownika mocy ULN2803 wraz z masą i napięciem wybieranym zworką (12V lub niestabilizowane)
    ew. inne za pomocą przewodu łączeniowego
    - Radiator na stabilizatory typu T

    Układ wyposażony jest w mikrokontroler z wgranym Bootloaderem. Bootloader umożliwia szybkie wgrywanie programu (średnio 1.4kb/s) przez USB bez ryzyka o zablokowanie mikrokontrolera FuseBit-ami. Ja w swoim układzie używam z powodzeniem AVRUBD.

    Płytka została wykonana metodą sitodruku z pomocą znajomego emerytowanego drukarza i nie ocenionym supportem Ojca. Wtedy to był niezły eksperyment wynikający z chęci zrobienia niewielkiej serii. Ostatnio natknąłem się na pdf-a szczegółowo opisujący użytą wtedy technologię, a więc zainteresowanych zapraszam do lektury:
    http://eeit.pl/uploads/files/ad10_book_AA_rep.pdf

    Decyzja użycia druku jednostronnego i znacznej ilości tanich elementów przewlekanych wiązała się z masą otworów na każdą z wykonanych płytek.
    Z pomocą przyszła mała frezarka CNC poskładana ze szrotu i paru płaskowników pospawanych przy uprzejmości jednego z kolegów taty zajmującego się tym zawodowo.

    Link


    Z polutowaniem, poskładaniem oraz uruchomieniem układu nie było większego problemu wszak bazuje on na sprawdzonych już rozwiązaniach.
    W załączniku daję wzór PCB oraz schemat.
    Układ uruchomieniowy "MegaStarterKit"
    Układ uruchomieniowy "MegaStarterKit"
    Układ uruchomieniowy "MegaStarterKit" Układ uruchomieniowy "MegaStarterKit" Układ uruchomieniowy "MegaStarterKit" Układ uruchomieniowy "MegaStarterKit" Układ uruchomieniowy "MegaStarterKit"

    Układ uruchomieniowy cały czas towarzyszy mi gdzie się tylko tułam po tym malutkim świecie.
    Niedawno wspomagał pracę polskich renowatorów sztuki w katedrze w Nemur, Belgia podczas analizy struktury uszkodzonego płótna z pomocą profilometru laserowego.
    Układ uruchomieniowy "MegaStarterKit"

    Zapraszam do dyskusji. :)

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Licencja Pulsonix
  • #2
    dondu
    Moderator Mikrokontrolery Projektowanie
    Tylko o co tu pytać :)
    Może o to, czy ją nadal wykorzystujesz i czy po tych 3 latach coś byś w niej zmienił?
  • Licencja Pulsonix
  • #3
    Grizzly16
    Poziom 13  
    Jak widać na ostatnim zdjęciu ( z tego roku). Ostatnio wchłonął mnie kompletnie LPC43xx ale i tak, korzystam z niej bardzo często. AVR w połączeniu z moją platformą jest dla mnie pewną bazą przy uruchamianiu nowych zabawek, eksperymentów i nauki nowych urządzeń, budowaniu bibliotek obsługi protokołów komunikacyjnych poznawanych urządzeń itp.
    Po prostu wiem, że jeżeli chcę być czegoś pewny podczas testów to biorę moją płytkę, ładuje swojego frameworka, dopisuje potrzebny kawałek kodu i działam.

    Co bym zmienił? Myślę, że piny AVR z I2C dał bym również na rekonfigurowalnym złączu kołkowym bo niestety są na sztywno do PU i dalej na interfejs i peryferia.
    Innaczej bym rozwiązał klawiaturę matrycową bo teraz trzeba skanować ją z wykorzystaniem rejestru kierunku pinów co nie jest nie poprawne, ale można bardziej elegancko.
    Zasilanie zamienił bym na przetwornice z porządną filtracją napięć. Może dorzucił bym dodatkowe precyzyjne napięcie referencyjne.
    Brak złącza JTAG, co prawda dla AVRów zawsze mi wystarczył debugging po USART, ale przy zabawie z LPC43XX czuję bardzo mocno jaką daje wygodę.
    Pełne wyprowadzenie FT232 też by się od czasu do czasu przydało.
    Potencjometry mogły by być na predefiniowanych.
    Full-Duplex w 485 też przyjemny bajer ;)

    Ale nigdy nie były to dla mnie poprawki krytyczne, które w jakiś szczególnie dotkliwy sposób przeszkadzały w użytkowaniu.
  • #5
    Grizzly16
    Poziom 13  
    Zgadza się. To nie żaden chwyt na ominięcie praw patentowych, a zwyczajna literówka, która albo się wkradła przez omyłkę, którejś pracowitej nocy, albo powielony błąd z jakieś publikacji. Dziś już nie pamiętam, ale muszę przyznać że nazwa "KANADA" bardziej mi się podoba ;)
  • #6
    novak512
    Poziom 12  
    Witam,

    Co prawda domyślam sie odpowiedzi, ale nie zaszkodzi zapytać. :)

    Masz może jeszcze pcb do tego projektu na sprzedaż?

    pozdrawiam,
    Bartek
  • #7
    Grizzly16
    Poziom 13  
    Przykro mi, nakład już dawno temu wyczerpany. Projekt został opracowany na bazie jednostronnego druku więc zachęcam do wykonania we własnym zakresie.

    Uprzedzając może kolejne pytania na temat sprzedaży. Nie planuję wznawiania produkcji... a już na pewno nie w bliskiej przyszłości. A nawet jeżeli to zapewne była by to kolejna wersja.
  • #8
    actin
    Poziom 33  
    A ja chciałbym zapytać jaką pracę wykonywał układ przy tych pracach konserwatorskich? Gratuluję i podziwiam.
  • #9
    Grizzly16
    Poziom 13  
    Przy samym skanowaniu 3D obrazu muszę się przyznać do tego, że niewielką. Całe sterowanie zostało upakowane w LPC1769, a moja płytka w tym przypadku służyła jedynie za konwerter USB<>USART(LPC). Była to wersja wciąż mocno prototypowa, docelowo ma zostać użyty Ethernet i karta SD do bufforowania danych z profilometru.
    Żeby się lekko zrehabilitować napiszę, że do niedawna służyła mi jako symulator skanera, gdyż nie mam do niego teraz fizycznego dostępu. Tak więc płytka odbierała sygnały DIR i STEP i na ich podstawie udawała pracę enkoderów liniowych oraz krańcówek co dało mi możliwość dalszego rozwijania kodu dla docelowego mikrokontrolera.

    Edit:
    Pytanie o koszta CNC zostało usunięte, ale już zdążyłem odpowiedziec więc wklejam:

    Koszt około zerowy. W tej chwili już nie pamiętam, ale większość elementów już miałem na stanie. Oś Z z drukarki A3, oś X ze starej maszyny do prudukcji tranzystorów, stół po przysłudze. Prowadnice do szuflad. Do sterownika jedynie trzeba było zakupić 3 party L-ek. Mam do niej dodatkowo wrzeciono Boscha to kosztowało 200zł używka. To nawet ciężko frezarką nazwać. Taka maszynka na konkretną potrzebę. Owszem i w sklejce i w plexi i laminacie coś tam się nią wycinało, ale sił to ona za fajnych nie przenosiła niestety i tak z kół wychodziły lekkie elipsy. Błędy kątowe na osiach wolę nie komentować. Miało być szybko i tak by maszyna zdołała powiercić duuuuuuużo otworów, na które ja już nie miałem cierpliwości po wykonaniu niezliczonej ilości kabelków łączeniowych.
  • #10
    gplud
    Poziom 10  
    Witam
    Czy Kolega posiada załączniki w wersji Eagle? Bo te w PDF są trochę nieskalowne.
  • #11
    Grizzly16
    Poziom 13  
    Nie ma. Proszę drukować w Landscape (poziomo) i Scale 100%. Podczas wałkowania tak dużych płytek na termo proszę zwrócić uwagę że tak duży laminat znacząco zmienia swoje wymiary w czasie zagrzewania, z papierem też dzieją się cuda, bo ten się znowu kurczy.
  • #12
    luki331023
    Poziom 8  
    Jakie są orientacyjne koszty wykonania takiej płytki? :)
  • #13
    Grizzly16
    Poziom 13  
    W detalu ciężko mi powiedzieć.
    Z wykonaniem płytki (30zł) + części 50-70zł. Więc pewnie w okolicach 100zł przy wykorzystaniu wszystkich peryferii.
  • #14
    slawson3
    Poziom 12  
    Witam.
    Płytkę zrobiłem na107,75% ,jestem teraz na etapie lutowania elementów,może wkleję jakąś fotkę w wolnej chwili.
    Może kolega ma schemat lub jakieś zdjęcie od strony druku bo trochę się gubię w elementach smd.
    Czy atmega musi mieć wgrany bootloader czy bez niego też da się programować
    (może dla kolegów jest to dziwne pytanie ale jestem na etapie nauki języka C i programowania mikrokontrolerów)
    Pozdrawiam
  • #15
    naprawartv1
    Poziom 9  
    Twój projekt bardzo przypomina zestaw od www.atnel.pl [url=https://obrazki.elektroda.pl/1188913200_1388317205.jpg]
  • #16
    Grizzly16
    Poziom 13  
    Ok, podsyłam podgląd rozmieszczenia elementów wraz z oznaczeniami. Sorry, że tak chaotycznie i niezgrabnie ale nie mam zbytnio czasu żeby się pobawić trochę w estetykę.
  • #17
    slawson3
    Poziom 12  
    Mam dwa pytania do kolegi Grizzly16 ,jaki jest typ wyświetlacza siedmio-segmentowego ?
    czy kolega użył wszystkie 5 szt. diody zenera przy slocie MMC/SD bo na zdięciach ich nie widzę(widać tylko 2 szt.),czy wszystkie są potrzebne?
    Ja mam projekt na ukończeniu brakuje zworek i kilku elementów.
  • #18
    Grizzly16
    Poziom 13  
    JZD056216R

    Dostępne są/był w Maritexie.
    http://download.maritex.com.pl/pdfs/op/LTD056R-AMBW.pdf

    Diody wszystkie oprócz od napięcia. Pomysł ze stabilizacją na diodzie nie był zbyt dobry ponieważ się grzała. Zamiast tego w miejsce jednej nóżki wstawiłem 1 pinowe złącze kołkowe, którym podłączam się do 3.3V z użyciem kabelka łączeniowego.
  • #19
    slawson3
    Poziom 12  
    Witam ,wgrałem pierwszy program zapalanie i gaszenie diody led obiecane zdięcie musze zrobić aparatem bo telefonem wychodzi zbyt kiepskie a płytke mam w pracy.
    Przełącznik RS 485/USB chyba też z firmy Maritex o symbolu:
    SW-S22N08F02
    prosze autora o poprawkę jeżeli nie trafiłem.
  • #20
    Grizzly16
    Poziom 13  
    Jak najbardziej to ten przełącznik. Chciałem, by był zgrabny i łatwy w użyciu, dlatego też użyłem go zamiast np. goldpinów.

    W razie problemów z uruchomieniem postaram się pomóc.

    Na pewno mogą pojawić się nie jasności przy klawiaturze matrycowej.

    A więc w skrócie opiszę zasadę sprawdzania przycisku:
    1. Ustawiamy C1-C4 jako wejścia z podciągnięciem do +.
    2. R1-R4 jako WEJŚCIA (bez podciągnięcia).
    3. Aktualnie sprawdzany rząd Rx zmieniamy na WYJŚCIE i ściągamy do 0.
    5. Sprawdzamy stan na wejściach C1-C4.
    6. Ściągnięte wejście do 0 oznacza wciśnięty przycisk.

    Tak jak widać, przy zmianie wiersza manipulujemy rejestrem DDR.
    Gdyby R1-R4 dać jako wyjścia i tylko ściągać kolejny sprawdzany wiersz do 0, można przypadkiem uszkodzić uC jeśli naciśniemy na raz przyciski z dwóch rzędów, gdyż spowoduje to zwarcie!