UMPP, czyli łatwe prototypowanie bez Arduino

UMPP, czyli łatwe prototypowanie bez Arduino

Witam Was w moim kolejnym wpisie na Majsterkowie.

Przedmiot dzisiejszego wpisu powstał (jak to często bywa z dobrymi wynalazkami) przez lenistwo. Ze względu na fakt, iż nie posiadam Arduino za każdym razem, gdy chciałem sprawdzić poprawność zaprojektowanego układu wykorzystywałem płytkę stykową (tudzież prototypową). Można do niej podłączyć wiele rzeczy na tzw. „pająka” i sprawdzić czy (i dlaczego nie) współpracują one ze sobą. Z prototypowaniem na takiej płytce wiąże się pewien uciążliwy problem. Nasz mikrokontroler dobrze byłoby mieć podłączony ciągle do programatora, żeby móc łatwo zmieniać program, wypadałoby także filtrować jego zasilanie (kondensatory), jeżeli nasz projekt zakłada wykorzystanie przetwornika ADC, należy także prawidłowo zasilić część analogową (cewka, kondensator na AREF do masy), a już nie daj Boże, jeżeli chcielibyśmy zasilić prototypowany układ z jakiegoś zewnętrznego źródła zasilania (i to jeszcze może o napięciu większym niż 5V?) – składanie układu ze stabilizatorem 7805, który np. w moją płytkę prototypową wchodzi z dużymi oporami. Ilość rzeczy, którą musimy podłączyć, zanim będziemy mogli wgrać zwykły program typu „Hello World” jest znacząca, a fakt, że musimy dokładnie te same czynności powtarzać przy każdym prototypie jest po prostu nużący.

I tu właśnie pojawia się przedmiot niniejszego artykułu czyli UMP2 – Uniwersalny Moduł Prototypowo Programujący.

Moduł ten zawiera w sobie:
– standardowe elementy pasywne niezbędne do poprawnego działania układu (wymienione powyżej kondensatory, cewka filtrująca zasilanie części analogowej, rezystor podciągający pin reset do zasilania itd.)
– złącze programatora w standardzie ISP (złącze KANDA)
– złącza RX, TX oraz GND do podłączenia układu USB-UART
– przycisk służący do resetowania mikrokontrolera
– kwarc 16MHz (z możliwością odłączenia go od układu)
– złącze śrubowe ARK,standardowe okrągłe gniazdo DC oraz podwójne żeńskie gniazdo goldpin (wszystkie posiadają wspólną diodę zabezpieczającą przed odwrotną polaryzacją zasilania)
– możliwość wyboru sposobu zasilania układu przy pomocy zworek
– dioda LED sygnalizująca prawidłowe zasilanie mikrokontrolera
– przycisk RESET
– zapewne coś jeszcze, co wymyśliłem podczas projektowania, a o czym teraz nie pamiętam.

Jak widać lista jest dosyć długa. Najciekawszy jest jednak sposób podłączenia modułu do układu – wystarczy umieścić mikrokontroler na płytce prototypowej, a następnie wpiąć „na” mikrokontroler niniejszy układ. Układ podaje swoje sygnały poprzez przedłużoną listwę goldpin, dzięki czemu nie blokuje on dostępu do samego mikrokontrolera. Układ posiada też proste zabezpieczenie przed nieprawidłowym wpięciem go na płytkę – dwa dodatkowe goldpiny (niepodłączone do żadnego sygnału) nie pozwalają na przesunięcie układu względem mikrokontrolera – wystarczy upewnić się, że pierwszy pin modułu jest na wysokości pinu reset mikrokontrolera i wpiąć moduł w płytkę.

W związku z koniecznością dostosowania modułu do rozstawu nóżek mikrokontrolera współpracuje on z mikrokontrolerami ATMEGA8/328 i innymi o analogicznej pinologii.

Podstawową zaletą modułu jest łatwość jego wykonania w warunkach domowych – płytka jest zwykłą jednowarstwową płytką, a wszystkie znajdujące się na niej elementy są w obudowach do montażu przewlekanego. Są tylko trzy elementy, które mogą sprawić pewne problemy – w związku z tym, że płytka jest jednowarstwowa, a trzy zestawy goldpinów (te łączące moduł z płytką prototypową) muszą być skierowane w przeciwną stronę niż pozostałe elementy na płytce. Oznacza to konieczność przylutowania tych pinów z dwóch stron – po stronie czystego laminatu tak, aby je przytwierdzić (żeby nie wyjechały) i po stronie miedzi w celu polepszenia trzymania i przekazania na nie sygnału – idealnym rozwiązaniem byłoby zastosowanie męskich goldpinów do montażu SMD, ale niestety nie udało mi się ich dorwać w “długiej” wersji. Poza tymi elementami na płytce jest ciasno, ale jej lutowanie nie powinno sprawić większych problemów dla nikogo kto lutował już kiedyś jakąś płytkę.

Ale dość już tego pisania, czas zaprezentować wreszcie parę obrazków. Na pierwszy ogień schemat ogólny z Eagle:

untitled

Oraz jego rozłożenie na płytce drukowanej:

UMPP_PCB

Jak widać płytka jest stosunkowo niewielka – patrząc z góry płytka „zabiera” tylko dwa rzędy styków na płytce prototypowej (na szerokość), na długości także nie tracimy za dużo – patrz zdjęcia poniżej. Na schematach widać także 4 zworki. Dwie z nich służą do odłączania kwarcu od nóżek mikrokontrolera (jeżeli nie potrzebujemy szybkości 16 MHz w naszym projekcie). Następne dwie służą do wyboru napięcia zasilającego układ. Zworka “VCC_SELECT” służy do wyboru pomiędzy napięciem pochodzącym z mikrokontrolera a napięciem podawanym “z zewnątrz”, natomiast zworka “STAB_ON_OFF” pozwala na wybór, czy zewnętrzne napięcie zostanie przepuszczone przez stabilizator, czy też podane bezpośrednio do zworki “VCC_SELECT” – dodałem tą opcję w celu zasilenia układu z zewnętrznego zasilacza o napięciu wyjściowym 5V – napięcie takie podane na stabilizator 7805 nie dałoby nam na wyjściu pożądanego napięcia 5V, ponieważ jest za niskie.

Teraz parę zdjęć.
Procesu produkcji pierwszej pary płytek.

IMG_20131218_225843

Tak przedstawia się sam moduł:

IMG_20131222_142800

A tak moduł wpięty na płytkę wraz z mikrokontrolerem:

IMG_20131222_142819

IMG_20131222_142829

IMG_20131222_143146

IMG_20131222_143152

Na pierwszy ogień wykonałem dwa takie moduły – jeden dla siebie, a drugi dla znajomego na prezent świąteczny :)

Jak widać na zdjęciach, na płytkach brak jeszcze złącz śrubowych ARK. Byłem tak bardzo pewny, że jeszcze posiadam parę podwójnych, że ich nie zamówiłem, a kiedy zorientowałem się że ostatnie wlutowałem w poprzednią płytkę było już za późno na domówienie tak, aby przyszły przed świętami. Po świętach lecę do sklepu kupić i wlutować, jak nie zapomnę to wrzucę później zdjęcie ostatecznej wersji.

Zamieszczam oczywiście pliki Eagle żeby każdy mógł sobie wykonać taką płytkę samemu:

UMPPv1.0_MAJSTERKOWO.PL

Czekam na Wasze komentarze. Czy Waszym zdaniem taka płytka to przydatny pomysł? Co byście na niej dodali? Co jest zbędne?

Czekając na Wasze reakcje życzę Wam wszystkim Wesołych, Majsterkowych Świąt Bożego Narodzenia! ;)

Zgodnie z trafną sugestią umieszczoną w komentarzu publikuję listę elementów niezbędnych do zbudowania modułu:

– listwa męska goldpin (najlepiej długa, taka jak tu) – 15 „szpilek”
– kondensatory ceramiczne 100nF – 6 szt
– kwarc 16MHz (choć oczywiście może być inny) – 1 szt
– kondensatory ceramiczne 22pF do kwarcu – 2 szt
– microswitch – 1szt
– gniazdo ISP 10 pin do druku – 1 szt
– rezystor 10kOhm – 1 szt
– listwa męska goldpin (standardowa) – 9 „szpilek”
– dioda LED 3mm (kolor dowolny, ja wybrałem zielony) – 1 szt
– rezystor 330Ohm (lub inny, w zależności od koloru diody) – 1 szt
– stabilizator napięcia serii 7805 – 1 szt
– gniazdo zasilania DC okrągłe do druku – 1 szt
– złącze śrubowe ARK podwójne – 1 sztuka
– listwa goldpin żeńska – 2 otwory
– zworki (najlepiej długie, takie jak tu) – 4 szt
– dioda prostownicza 1N4007 – 1 szt (lub zamiennik)
– cewka 10uH (najlepiej w obudowie, że tak to nazwę “rezystorowej”) – 1 szt

A tutaj PDF z layoutem płytki gotowy do wydruku i termo transferu:

UMPP v1.0 – plik PDF do termotransferu

Ocena: 4.27/5 (głosów: 55)

Podobne posty

17 komentarzy do “UMPP, czyli łatwe prototypowanie bez Arduino

  • Fajny artykuł :) Na pewno się przyda :) Ja cały czas walczę z artykułem o “klonowaniu” ale przegrywam z lenistwem i brakiem czasu :D
    Tak po za tym kupiłem niedawno taki sam moduł TTL (jak u ciebie na zdjęciu) tylko nie miałem okazji przetestować. Trzeba wciskać reset przy wgrywaniu programu? Czy wystarczy wgrać bootloader w atmege i idzie?

    Odpowiedz
    • pomysł mam taki, że po wykonaniu jednego takiego modułu dla siebie jak będę robił kolejne płytki to nie będę na nich umieszczał złączy programatora oraz UART, tylko będą goldpiny do wpięcia tej płytki w celu zaprogramowania mikrokontrolera.
      oszczędzę w ten sposób miejsce na płytce i zdecydowanie łatwiej będzie prowadzić ścieżki – odpada przeciąganie ścieżki od resetu, która jest zazwyczaj problematyczna i zazwyczaj kończy się przelotką przy płytkach jednostronnych.

      A taki moduł jak Ty proponujesz już podchodzi pod klon arduino mikro ;)
      PS. Czy to Ty popełniłeś ten moduł z obrazka? Jak tworzysz takie rendery? Eksport z Eagle do POV-Ray’a?

      Odpowiedz
      • Fakt, z tym arduino mikro :P Ale tego typu płytki są mega przydatne – większość miejsca na płytce zajmowały mi zawsze połączenia z kondensatorami itd., a tak pyk, wkładamy uP i zaczynamy pracę.

        A no ja popełniłem. Zabawa w 3D jest o wiele lepsza z połączenia Eagle’a ze SketchUP’em:
        http://eagleup.wordpress.com/
        A do renderowania:
        http://www.kerkythea.net/cms/index.php/downloads/software

        Dodatkowe modele można ściągnąć najczęściej w parę chwil z galerii SketchUP albo zrobić samemu :). Fajny motyw jest, bo można sobie zamodelować np. obudowę i zobaczyć czy przypadkiem nie ma jakichś kolizji (tu zwykły eksport z programu do png-a):
        http://dl.getdropbox.com/u/19477765/obudowa.png

        SketchUP jest naprawdę prostym programem 3D. Możemy oglądać płytkę z każdej strony przesuwając tylko myszką, więc pod tym względem jest lepszy od POV-Ray’a. Jak ktoś ma ambicje, to można bawić się w rendery itd. :)

        Odpowiedz
    • Maciek, zapodasz projekt płytki? Zrobiłem sobie UMPP z tego artykułu ale chciałbym używać tego “na co dzień”, mieć atmegę widoczną na górze.
      UMPP zasłania mi atmegę, a chcę korzystać z nalepki z wypisanymi wyprowadzeniami procka.
      Gdybyś zarzucił projekt w formacie do edycji to by było już ekstra.
      Pozdrawiam!

      Odpowiedz
  • Witam!
    Ciekawy pomysł, ale zauważyłem jeden mały problem. Mianowicie przełącznik RESET długo nie pożyje, ponieważ rozładowujesz kondensator bezpośrednio przez niego. W momencie wciśnięcia przełącznika, cały zgromadzony ładunek kondensatora w ułamku sekundy jest zwierany do masy, natomiast prąd płynący przez przełącznik jest bardzo duży. Czyli mówiąc inaczej spawasz jego styki. Dorzuć rezystor, np. 330Ohm w szereg z przełącznikiem i będzie dobrze.
    Pozdrawiam

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?