Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ATmega128 TestBoard i inne płytki testowe

leonow32 28 Apr 2011 15:46 17063 32
Altium Designer Computer Controls
  • ATmega128 TestBoard i inne płytki testowe

    Przy tworzeniu projektów z mikrokontrolerami, oprócz uniwersalnych płytek stykowych, często przydają się gotowe moduły testowe, które można szybko podłączyć. Można kupić takie w wielu sklepach, ale ich ceny są na ogół absurdalne, np. w Kamami sprzedają płytkę z ATmega128 za 109 zł!
    Poniżej prezentowana płytka kosztowała mnie niecałe 40 zł, z czego 20 zł poszło na mikrokontroler. Inne płytki - RAM, RTC - są wykonane tak, żeby dało się wyciągnąć najdroższe elementy bez żadnego problemu. Wszystkie rezystory i kondensatory są w obudowach SMD 1206. Jeżeli będą wątpliwości co do pozostałych rzeczy, to chętnie udzielę wyjaśnień.
    Przykładowe kody programów są "przykładowe", a konkretniej:
    - funkcja t ("xxxx") - powoduje wyświetlenie tekstu
    - funkcja out (123) - powoduje wyświetlenie liczby w postaci dziesiętnej
    - funkcja out_hex (123) - powoduje wyświetlenie liczby w postaci szesnastkowej, czyli w tym przypadku 7B.
    Czy to będzie wyświetlane na LCD, czy terminalu, to już wasza sprawa :)

    ATmega128 TestBoard
    Płytka jest wyposażona w złącza programujące ISP oraz JTAG z wtykami IDC-10. Oprócz tego jest mały potencjometr przeznaczony do zabawy z ADC albo do sterowania kontrastem wyświetlacza LCD. W dwóch rogach płytki umieściłem złącza zasilające. Można nimi zasilać inne moduły lub wyświetlacze. Są połączone bezpośrednio do zasilania złącz programujących. Płytka nie jest wyposażona we własny stabilizator. Pamiętać należy, aby nie podłączyć równolegle dwóch źródeł zasilania, np. programatora i baterii. Obecność napięcia na szynach zasilających sygnalizuje czerwona dioda. Na płytce są także dwa rezystory 4,7 k przeznaczone jako pull-up do I2C. Wystarczy założyć zworki na piny przy porcie D.

    Złącze XTAL służy do podłączenia kwarcu taktującego CPU. Należy zastosować kawałek listwy precyzyjnej do goldpinów. Przy zastosowaniu listwy zwykłej, kwarc przesuwa się i rozłącza, co zawiesza procesor. TOSC to miejsce na kwarc 32 kHz do wewnętrznego zegara RTC. Kiedy nie używamy RTC, to złącze można wykorzystać jako zwykłe wyjścia portu G.

    ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe


    RAM 64KB
    ATmega128 umożliwia współpracę z pamięcią zewnętrzną RAM (a dokładniej SRAM) o maksymalnym rozmiarze 64 KB bez stronicowania. Interfejs jest tak prosty w obsłudze, że podczas pracy zapominam, że działam na zewnętrznym RAM-ie. W module zastosowałem dwa układy scalone 62256. Są to tanie pamięci RAM o rozmiarze 32 KB (256 kbit). Najlepiej byłoby zastosować jedną 62512 zamiast dwóch 62256, ale te pierwsze są bardzo trudno dostępne (ciekawe czemu?). W nazwie 62256-50 druga liczba oznacza czas dostępu - w tym przypadku 50 ns. Układy scalone 7404 i 74573 muszą być w wersji HC, czyli 74HC04 i 74HC573.

    ATmega128 ma 4 KB wewnętrznej pamięci RAM. Nie można podłączyć 64 KB, by uzyskać 68 KB ze względu na 16-bitową szynę adresową. Po prostu więcej niż 64 KB nie da się zaadresować. W związku z tym, pierwsze 4 KB zewnętrznej pamięci RAM się marnuje, a dostępne jest tylko 60 KB. W przypadku podłączania mniejszych pamięci, np. 32 KB, możliwe jest oczywiście wykorzystanie całej pojemności.

    Karta pamięci RAM jest przystosowana do współpracy z płytką ATmega128. Wystarczy wetknąć RAM w odpowiednie miejsce i do programu trzeba dopisać kilka linijek kodu. W poniższym przykładzie pamięć RAM służy jako wielka tablica zmiennych.
    ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe

    Code: c
    Log in, to see the code


    Real Time Clock DS1307
    DS1307 to zegar czasu rzeczywistego z własnym oscylatorem i zasilaniem bateryjnym. Działa zawsze, niezależnie od innych układów. Komunikuje się z procesorem przez magistralę I2C. Na płytce są wbudowane rezystory podciągające 4,7 k, które można podłączyć odpowiednimi zworkami. W przypadku, jeżeli układ ma działać bez baterii, należy nałożyć zworkę NOBAT.
    ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe
    Code: c
    Log in, to see the code



    Pamięć EEPROM 24C
    Podstawka umożliwia podłączenie trzech pamięci 24 Cxxx (xxx oznacza pojemność pamięci w kilobotach). Pamięci EEPROM tego typu komunikują się przez magistralę I2C. Dodatkowo jest możliwość (konieczność?) zmiany adresów pamięci przy pomocy zworek - założona zworka oznacza 1, brak zworki to 0. Dla przykładu, pamięć AT24C128 bez żadnych zworek na liniach adresowych, ma adres 160 dla zapisu oraz 161 dla odczytu. Więcej szczegółów w dokumentacji pamięci. Płytka ma także możliwość zabezpieczenia write-protect dla każdego scalaka. Jest także możliwość skorzystania z rezystorów 4,7 k jako pull-up na liniach SDA oraz SCL - wystarczy założyć zworki na odpowiednie piny. Myślę, że wszystkie istotne informacje na temat tej płytki można wyczytać ze schematu, a na temat funkcjonowania pamięci 24 C napiszę kiedyś osobny artykuł.

    ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe


    Sonda logiczna
    Sonda logiczna lub próbnik stanów logicznych to podstawowe wyposażenie elektronika-cyfronika. W Internecie można znaleźć wiele różnych rozwiązań tego typu sond. Niektóre są nawet bardzo zaawansowanymi rejestratorami. Prezentowana tutaj sonda jest banalna. Została zaprojektowana w taki sposób, by dało się ją wetknąć między plątaninę kabli na płytce stykowej i żeby była łatwa w użyciu. Zielona dioda oznacza stan 1, czerwona to 0, a brak świecenia jakiejkolwiek diody oznacza stan wysokiej impedancji lub że sonda została podłączona do wejścia wiszącego w powietrzu.

    Dwa potencjometry służą do regulacji napięć progowych. Przed pierwszym użyciem należy tak wyregulować potencjometry, by zielona dioda zapalała się powyżej napięcia 3,5 V, a czerwona poniżej 1,5 V (przy zasilaniu sondy z 5 V). Celem tego rozwiązania było to, żeby sondę dało się wykorzystać nie tylko do badania układów logicznych CMOS. Praktyka pokazała jednak, że sztywny dzielnik rezystorowy byłby wystarczający dla zdecydowanej większości zastosowań. Sonda nie jest wyposażona w "wykrywacz szpilek".

    ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe


    ATmega128 DIL64

    W przygotowaniu... ale model wygląda fajnie ;)
    ATmega128 TestBoard i inne płytki testowe


    Pliki do pobrania
    Udostępniam PDF-y do wykonania płytek i napisów, a także pliki projektowe programu KiCad. Z oczywistych powodów niestety muszę zastrzec, że zgadzam się na wykorzystanie ich wyłącznie do celów hobbystycznych. Wykorzystanie komercyjne, między innymi sprzedaż całości lub części plików, płytek, urządzeń wykonanych w oparciu o zamieszczone tutaj materiały jest możliwe wyłącznie za pisemną zgodą autora.
    Pozdrawiam wszystkich cwaniaczków, którzy ściągają darmowe projekty i sprzedają je na Allegro :twisted:

    Cool? Ranking DIY
    About Author
    leonow32
    Level 30  
    Offline 
    leonow32 wrote 2004 posts with rating 1205, helped 37 times. Live in city Poznań. Been with us since 2007 year.
  • Altium Designer Computer Controls
  • #2
    didii0074
    Level 12  
    Bardzo ładnie Ci wychodzą płytki, powiedz jak dokładnie robisz opis na pcb ? domyślam się ze to termo-transfer. Jak sprawiasz ze napisy są takie czarne ?
  • #3
    luxus19
    Level 15  
    didii0074 wrote:
    Bardzo ładnie Ci wychodzą płytki, powiedz jak dokładnie robisz opis na pcb ? domyślam się ze to termo-transfer. Jak sprawiasz ze napisy są takie czarne ?



    Zapewne termo transfer tylko kolego mógłbym polakierować bezbarwnym lakierem warstwę opisową żeby napisy się nie ścierały. Co do czarnego koloru napisów to prosta sprawa, po namoczeniu i zdjęciu papieru moczyć płytkę w kwasku cytrynowym może być cytrynka taką co do herbaty się leje z buteleczki, czekasz 10 min i delikatnie ścierasz resztkę kredy z tonera i w taki sposób możesz uzyskać czarny kolor napisów a nie szary :)
  • #4
    piotrva
    VIP Meritorious for electroda.pl
    Bardzo estetyczne i praktyczne wykonanie, gratulacje projektu.
    Nie myślałeś jeszcze nad modułem z LCD, też do podpięcia "na szybko" jak te pamięci ram?
  • Altium Designer Computer Controls
  • #5
    Karol966
    Level 31  
    luxus19 wrote:
    didii0074 wrote:
    Bardzo ładnie Ci wychodzą płytki, powiedz jak dokładnie robisz opis na pcb ? domyślam się ze to termo-transfer. Jak sprawiasz ze napisy są takie czarne ?



    Zapewne termo transfer tylko kolego mógłbym polakierować bezbarwnym lakierem warstwę opisową żeby napisy się nie ścierały. Co do czarnego koloru napisów to prosta sprawa, po namoczeniu i zdjęciu papieru moczyć płytkę w kwasku cytrynowym może być cytrynka taką co do herbaty się leje z buteleczki, czekasz 10 min i delikatnie ścierasz resztkę kredy z tonera i w taki sposób możesz uzyskać czarny kolor napisów a nie szary :)


    Ocet, zwykły ocet za 2zł i zarówno papier kredowy w całości usuniesz przy robieniu płytek jak i całkowicie usuniesz kredę zostawiając sam czarny toner.

    Leon - jakie masz ścieżki przy tej m128? Wychodzi to całkiem ekstra.
    PS. Trafny dopis w części Pliki do pobrania.
  • #6
    Dawid_20
    Level 17  
    Quote:
    Bardzo ładnie Ci wychodzą płytki, powiedz jak dokładnie robisz opis na pcb ? domyślam się ze to termo-transfer. Jak sprawiasz ze napisy są takie czarne ?

    A ja mam patent taki, że stronę opisową po dobrym dociśnięciu odrywam na ciepło, jak płytka jeszcze leży na żelazku. Nie ma śladu po kredzie, a napisy są elegancko wyraźne.
  • #7
    drzasiek
    CNC specialists
    Wszystko super, szkoda, że ciągle lutowane :) Wszystko jest dobrze dopóki działa, a jak się układ uszkodzi? Albo na gwałt trzeba dany procek a nie ma akurat, jest tylko w płytce? Mam zrobione takie płytki pod M8, M32 i M128 ale przymierzam się do zrobienia takich płytek, żeby uC nie trzeba było lutować, ale to strasznie dużo roboty przy tym..
    Ogólnie bardzo ładnie to wszystko robisz, masz chłopie cierpliwość do tego :)
  • #8
    piotrva
    VIP Meritorious for electroda.pl
    Ja jestem szczęśliwym posiadaczem podstawki do tqfp100 ;-)
    na prawdę pożyteczne ustrojstwo, ja się z procesorami w takiej obudowie pracuje.
  • #10
    leonow32
    Level 30  
    Nie stosowałem żadnego octu ani kwasu cytrynowego :) Trik polega na mocnym prasowaniu napisów i potem zmyciu resztek papieru przy pomocy gąbki do mycia naczyń szorstką stroną. Toner trzyma się bardzo mocno i nawet nie trzeba lakierować.

    drzasiek
    Jak się procek zepsuje to trudno. Koszt nowej ATmegi128 to u mnie 20zł więc da się przetrzymać ;) Myślałem o zastosowaniu podstawki TQFP64 ale strasznie drogie to dziadostwo...

    Karol966
    Ścieżki mają grubość 15mils, a odstęp to też 15mils. ATmega128 lutowałem w pracy pod mikroskopem. Takie rzeczy lutujemy "nożem" ;) Da się też ręcznie i to zwykłą lutownicą.
  • #11
    garlinski
    Level 13  
    Mój patent (bo nigdzie indziej nie udało mi się znaleźć takiego rozwiązania) na usunięcie resztek papieru z tonera przy opisach, to najzwyklejsza gumka do mazania (lekko namoczona). Polecam, szybko bez problemów.
  • #12
    piotreks-89
    Level 12  
    leonow32 gratuluję konstrukcji ;) Super płytki! Możesz napisać jak lutować takim "nożem"?
  • #13
    yogi009
    Level 43  
    Jestem pod wrażeniem precyzji wykonania płytek. Muszę spróbować z tymi opisami, wyglądają jak drukowne. Osobiście doskonalę cały czas (jestem amatorem) sztukę lutowania i patrząc na Twoje luty chciałbym Ci podpowiedzieć używanie bardzo cienkiego drutu lutowniczego, wtedy (przynajmniej optycznie) można uzyskać bardzo estetyczne punkty np. w SMD. Ale to taka dygresja, za projekt maksymalna liczba punktów :-) Od razu widać alternatywę dla rozwiązań komercyjnych.
  • #14
    leonow32
    Level 30  
    Do lutowania nożem potrzebny jest taki grot
    http://www.tme.eu/pl/katalog/?art=ETC-T950#id_category%3D100540%26cleanParameters%3D1%26

    W pierwszej kolejności smaruję pola topnikiem aktywnym. Dalej kładę scalak. Na czubek grotu nabieram cynę i lutuję dwie nóżki w przeciwległych narożnikach, żeby się nie przesuwał. Nalej nabieram cynę na nóż i smaruję :D trzeba przejechać ostrą krawędzią noża po nóżkach. Dzięki topnikowi cyna sama klei się tego co powinna i nie robią się zwarcia, Nawet jeżeli się zrobią, to można je zgarnąć albo przeciąć. Nożem da się lutować scalaki drobnonóżkowe, np SSOP. TQFP to pikuś ;)
  • #16
    DarkStorm
    Level 13  
    płytki super wykonane, a lutowanie atmegi 128 to zabawa.
    Starczy tania stacja lutownicza i duzo topnika:D
    jak jest dużo topnika leci się falą pokolei.
    Lutowanie idzie szybko i sprawnie.
    Ja mam podobny patent na takiej płytce testowej z tym że umnie mam gniazda simm:D. Płytka z procesorem wygląda jak dawne moduły pamięci z tym że jest wyższa.
  • #17
    leonow32
    Level 30  
    Jeżeli macie własne płytki testowe to wrzućcie tu zdjęcia :) też chętnie zobaczę

    ATmega128 DIL64
    Po małym opóźnieniu wreszcie dokończyłem to cudo. ATmega128 występuje wyłącznie w obudowach SMD, więc trzeba ją lutować albo stosować drobie podstawki. Mam w planach kilka konstrukcji z ATmega128, które mają być rozebrane kiedy przestaną być potrzebne. Tak więc powstał moduł ATmega128 w obudowie DIL64 - dzięki temu można ją bez problemu wyciągnąć. Pasuje też do płytek stykowych, w przeciwieństwie do typowych "kwadratowych" przejściówek z TQFP.

    Poniżej widać też kartę pamięci RAM - piny karty pamięci odpowiadają pinom ATmegi. Dzięki temu można ją wetknąć do płytki stykowej obok ATmega128 DIL64 i wystarczy jeszcze tylko wetknąć dwa kabelki zasilania.

    Płytki są bardzo precyzyjne. Ścieżki 12mils, odstęp 10mils. Należy zastosować laminat 1,5mm bo cieńszy się połamie przy wyciąganiu. Nie warto inwestować w precyzyjne szpilki i oryginalną podstawkę DIL64 - zwykłe tanie szpilasy i dziurasy są wystarczająco dobre i tanie. Dostępne są różne wzory :) gdyby ktoś chciał taką to zapraszam na PW. Mam też płytki z pierwszego postu. Zawsze robię kilka na zapas.

    ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe ATmega128 TestBoard i inne płytki testowe
  • #18
    drzasiek
    CNC specialists
    leonow32 wrote:
    Jeżeli macie własne płytki testowe to wrzućcie tu zdjęcia :) też chętnie zobaczę

    Mówisz, żeby pokazać więc pokazuję :)
    ATmega128 TestBoard i inne płytki testowe
    Wczoraj zrobiłem sobie podstawkę pod TQFP64. Założyłem nawet temat w DIY, powinien niebawem być na głównej o ile moderatorzy nie uznają go za nieodpowiedni i nie usuną.
    https://www.elektroda.pl/rtvforum/topic1986483.html
  • #19
    lolcio
    Level 16  
    Witam,
    chciałbym zapytać jaką rolę pełni w płytce atmegi128 układ MC14053, oraz czy można go nie lutować? Mam tylko układ hcf4053, i nie wiem czy jest on zamiennikiem tego mc14053....(taki dostałem w sklepie)
  • #20
    piotrva
    VIP Meritorious for electroda.pl
    układ ten ma za zadanie podczas programowania:
    1. odłączać peryferia od linii, do których podpięty jest programator (np. switche, diody, itp, które mogą zakłócić proces programowania)
    2. odłączać programator, jeśli nie jest przeprowadzane programowanie, żeby z kolei on nie wprowadzał zakłóceń w pracy peryferiów podpiętych pod te wyprowadzenia
    co do zamienników to sprawdź datasheety tych kości :D
  • #21
    lolcio
    Level 16  
    ahaaa..:) Czyli bardzo użyteczna rzecz :)
    Właśnie próbuje wyczytać cokolwiek z datasheet ale słabo u mnie z angiekism i nie bardzo rozumiem czy te układy pełnią tą samą role...Mógłbyś rzucić okiem na to i powiedzieć czy mogę to wlutować czy raczej pominąć ten układ?
  • #22
    piotrva
    VIP Meritorious for electroda.pl
    Jeśli masz dokładnie taką płytkę, to pominąć nie możesz, bo takto programator w ogóle nie będzie połączony z układem. (chyba, żebyś zrobił na stałe zworki).
    ---
    zerknąłem na ds'y i to są odpowiedniki, także powinno działać)
  • #23
    lolcio
    Level 16  
    Dzięki wielkie za szybką pomoc :) Ide wlutować ten układ :)
  • #24
    piotrva
    VIP Meritorious for electroda.pl
    Nie ma sprawy, ale i tak polecam przyłożyć się do angielskiego, bo w elektronice, jak zaczniesz brnąć dalej, to trzeba mieć ten język w przysłowiowym "małym paluszku".
  • #25
    leonow32
    Level 30  
    MC14053 to zwykły scalak 4053, a MC1 to oznaczenie producenta, trochę dziwne i mylące. Z jakiegoś powodu ATmegę128 nie programuje się tak jak wszystkie inne, podpinając programator pod MISO i MOSI, tylko są tutaj zarezerwowane dwa piny PDI i PDO, które normalnie wykorzystuje UART0.
  • #26
    lolcio
    Level 16  
    Faktycznie wlutowałem hcf4053 i programator (usbasp) odczytuje sygnature i programuje...
    Wrzucam na niego taki kod:

    Code: csharp
    Log in, to see the code


    No i nie bardzo chce dzialać... Caly czas na porcie d.0 jest 2,5 V. Jakie są fabryczne ustawienia fuse bitów tego mikrokontrolera? Nie moge tego znaleść nigdzie, a wydaje mi się że jest to 1 mhz wewnetrzny..
  • #27
    leonow32
    Level 30  
    Powinno być #define F_CPU 1000000UL, ale i tak będzie działać.

    Problem może być w tym, że domyślnie ATmega128 ma ustawiony fusebit "ATmega103 compatibility mode". Ściągnij sobie program AVR Burn-o-mat, bo w nim można łatwo zmieniać fusebity.

    i sprawdzaj stan na porcie A a nie D ;)
  • #28
    Pazio10211993
    Level 10  
    W tej sondzie logicznej jaki jest kondensator (C1)
    Bo na schemacie nie jest napisane.
  • #30
    GrasalxD
    Level 1  
    @leonow32

    Witam!

    Chciałbym się dowiedzieć w jakim eagle otwierają sięte projekty bo w 5.9 ; 7.2 ; i 6.0 mi się nie otwierają