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

Płytka testowa Atmega32/16

kaka0204 02 Lut 2013 19:03 16587 26
  • Płytka testowa Atmega32/16

    Witam.
    Dziś chciałbym przedstawić moją ostatnią konstrukcję jaką jest płytka testowa do sprawdzania programów procesorów Atmega32/16. Płytka na swoim pokładzie mieści:
    1. Zasilacz stabilizowany 5V na LM7805,
    2. 6 bitową drabinkę LED,
    3. 5 switch,
    4. LM35,
    5. DS18B20 (jeszcze nie wlutowany),
    6. Złącze do programowania KANDA,
    7. RTC na PCF8583
    8. Zewnętrzną pamięć EEPROM na 24C04,
    9. Czterocyfrowy wyświetlacz LED,
    10. Alfanumeryczny wyświetlacz LCD
    11. Buzzer (jeszcze nie wlutowany)

    Każdy port jest wyprowadzony na zewnątrz do osobnego gniazda. Połączenia odbywają się kabelkami zakończonymi goldpinami. Zworkami włącza/wyłącza się poszczególne peryferia. Zasilanie może być z osobnego zasilacza bądź z USB poprzez złącze KANDA. Z płytką współpracuje USBasp. Do płytki jest także dorobiony konwerter Atmega8--->Atmega32. Płytka jest zrobiona metodą termotransferu i zabezpieczona roztworem kalafonii i rozpuszczalnika. Płytka pomaga mi w nauce języka C, którego się uczę.


    Płytka testowa Atmega32/16 Płytka testowa Atmega32/16
    PS. Na razie do zdjęcia jest włożony ICL7107.
    Pozdrawiam.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    kaka0204
    Poziom 28  
    Offline 
    kaka0204 napisał 975 postów o ocenie 132, pomógł 148 razy. Jest z nami od 2010 roku.
  • PCBway
  • #2
    kaken
    Poziom 15  
    Przydatna rzecz. Polecam robić takie płytki pod obudowy pulpitowe (np. Z25 Kradex, płytkę daje się na fabryczne okienko, dodatkowo jest okno z panelem z tyłu). Od razu jest miejsce na przewody itp.
  • PCBway
  • #3
    peter507
    Poziom 16  
    Kolego, pokaż ten konwerter ATmega8--->ATmega32 :)
  • #4
    kaka0204
    Poziom 28  
    Witam.
    Dziękuję za pozytywne opinie. Na razie dodaję tylko schemat i płytkę konwertera z tego powodu, że na płytce startowej jest drobny błąd z resetem.
  • #5
    piotrva
    Moderator na urlopie...
    Co do przydatności - płytka jak płytka.
    Uwagi:
    1. Brak miejsca na kwarc do procesora
    2. Estetyka wykonania - powalająca, szczególnie te diody LED, nawet picasso by się nie powstydził. A te równo wykonane owierty...
  • #6
    Robson40
    Poziom 12  
    Tylko dlaczego każdy LED z innej bajki ? Co prawda to tylko kwestia estetyki ale bardzo psuje ogólne wrażenie.
  • #7
    kaka0204
    Poziom 28  
    Robson40 napisał:
    Tylko dlaczego każdy LED z innej bajki ? Co prawda to tylko kwestia estetyki ale bardzo psuje ogólne wrażenie.

    One będą wymienione. Miałem gdzieś "w szufladzie" te małe, prostokątne i biale, ale gdzieś się zapodziały.
  • #8
    drzasiek
    Specjalista - Mikrokontrolery
    Płytka testowa ma tylko wtedy sens, gdy się uczysz i chcesz wyeliminować błędne podłączenie wynikające ze swojej niewiedzy. Natomiast jaki sens ma płytka którą sam projektujesz i wykonujesz? Taki trochę paradoks, bo skoro sam ją wykonałeś (mniej lub bardziej prawidłowo) to wiesz lub też nie co i gdzie podłączyć, więc nie potrzebny Ci gotowiec. A ileż można testować mruganie diody czy wyświetlacz alfanumeryczny podłączone na stałe do jednych wyjść mikrokontrolera? A co jeśli będziesz chciał wykonać jakiś projekt i będą potrzebne inne wyprowadzenia do innych funkcji? Troszkę utopienie czasu i elementów.
    No ale każdy ma swój sposób na naukę.
    Jak dla mnie estetyka "na odwal się", przydatność bardzo mała. Aż boję się poprosić, żebyś pokazał zdjęcie ścieżkj od spodu :)
  • #9
    21mateuszek
    Poziom 12  
    Jakie są orientacyjne koszty wykonania takiej płytki?

    Interfejs KANDA nie umożliwia nam uruchomienia programu z poziomu aplikacji systemowej? Tylko programowanie? Czy dałoby radę zmontować taką płytkę z interfejsem JTAG?

    Moderowany przez gulson:

    Raport: Nie ma czegoś takiego jak interfejs KANDA. Błędne nazewnictwo wprowadzające chaos.

    [/mod]
  • #10
    dominon
    Poziom 18  
    Matko co za bzdury! Jaki interfejs KANDA. Toż to tylko typ złącza! Podkreślam typ nie standard. Standardem to jest na przykład interfejs SPI (Serial Peripheral Interface) dzięki któremu możemy przeprowadzić ISP (In system Programming) programowanie w systemie.

    Atmega32 posiada piny dla JTAG'a bodajże na porcie C. Więc nic nie stoi na przeszkodzie żeby takowy dołączyć przewodami skoro na płytce kolegi wszystkie piny są wyprowadzone.

    Co do samej płytki. Brak wyprowadzonego UART'u który jest tak popularnym interfejsem komunikacyjnym że aż szkoda że nie został zawarty najprostszy MAXiu i kilka kondensatorów oraz złącze. Zgadzam się z krytyką kolegi drzasiek.
  • #11
    kaka0204
    Poziom 28  
    drzasiek napisał:
    A ileż można testować mruganie diody czy wyświetlacz alfanumeryczny podłączone na stałe do jednych wyjść mikrokontrolera? A co jeśli będziesz chciał wykonać jakiś projekt i będą potrzebne inne wyprowadzenia do innych funkcji? Troszkę utopienie czasu i elementów.

    kaka0204 napisał:
    Każdy port jest wyprowadzony na zewnątrz do osobnego gniazda. Połączenia odbywają się kabelkami zakończonymi goldpinami.

    drzasiek napisał:
    Płytka testowa ma tylko wtedy sens, gdy się uczysz i chcesz wyeliminować błędne podłączenie wynikające ze swojej niewiedzy. Natomiast jaki sens ma płytka którą sam projektujesz i wykonujesz? Taki trochę paradoks, bo skoro sam ją wykonałeś (mniej lub bardziej prawidłowo) to wiesz lub też nie co i gdzie podłączyć, więc nie potrzebny Ci gotowiec.

    Płytka ta ma przede wszystkim pomóc w nieprawidłowym podłączeniu czy to złącza programowania czy wyświetlacza LCD albo LED. Podłączając taki wyświetlacz LED do płytki stykowej robimy ładnego pająka, a ile czasu to zajmuje, w dodatku łatwo o pomyłkę. Płytka przyśpiesza także czas wykonywanych projektów.
    dominon napisał:
    Co do samej płytki. Brak wyprowadzonego UART'u który jest tak popularnym interfejsem komunikacyjnym że aż szkoda że nie został zawarty najprostszy MAXiu i kilka kondensatorów oraz złącze.

    Płytkę wykonywałem w EAGLE, a jak wiadomo ma on ograniczenie powierzchni płytki, UART by się nie zmieścił.
    Pozdrawiam.
  • #12
    blue_17
    Poziom 32  
    Dlatego ja używam DesignSparka niema problemów z ograniczeniami a jest całkowicie za free polecam
  • #13
    mkpl
    Poziom 37  
    Dało by radę i 2 uarty upchać nad stabilizatorem
  • #15
    miszczo997
    Poziom 28  
    Dlaczego akurat 6 ledów? Wg mnie powinno być 8, aby zobrazować cały port atmegi. Co do estetyki to nie ma co się wypowiadać, bo to ma służyć, a nie wyglądać. Strasznie mało modułów zmieściłeś na tych 10x8cm.

    21mateuszek napisał:
    Czy dałoby radę zmontować taką płytkę z interfejsem JTAG?
    Jak chcesz to mam gdzieś projekt podobnej płytki ze złączem jtag.
  • #16
    kaka0204
    Poziom 28  
    piotrva napisał:
    NO i do tego zrobić wszystko w SMD to by jeszcze coś weszło :wink:

    Faktycznie. Ale SMD nigdy nie lutowałem, więc za ładnie to by nie wyglądało.
    miszczo997 napisał:
    Dlaczego akurat 6 ledów? Wg mnie powinno być 8, aby zobrazować cały port atmegi

    Więcej nie zmieściłem :)
  • #17
    aneuron
    Poziom 11  
    Skoro twierdzisz, że dzięki temu nauczysz się programować w C to przetestuj ten kawałek kodu na tej płytce i powiedz co jest nie tak tutaj? ;)

    Code:

    volatile uint16_t adc_avref; // eg. adc_avref=502 -> 5.02V
    .....

    // ADC 10bit to voltage using vref=AVREF
    uint16_t adc_to_avref(uint16_t a ) {
            unsigned long v;

            v= ((a)*adc_avref)/1024;

            return v;
    }


    No i powiedz ile Ci wyszło jak zmieszysz na jakimś pinie wejściowym np. a=456 przy napięciu zasilania VCC=5.02V jak tutaj ;)

    Jestem prawie pewien, że się zdziwisz i ta płytka Ci w tym nie pomoże :D

    BTW: Podpowiedź, chodzi oczywiście o to aby ta funkcja zwróciła sensowny rząd wielkości, a nie chodzi o nawiasy i kolejność działań, czy to że dzielenie przez 1023 czy 1024, a o coś bardziej subtelnego ;)
  • #18
    kaka0204
    Poziom 28  
    aneuron napisał:
    Skoro twierdzisz, że dzięki temu nauczysz się programować w C to przetestuj ten kawałek kodu na tej płytce i powiedz co jest nie tak tutaj? :wink:

    Napisałem przecież, że dopiero się uczę C i nie jestem w stanie wskazać błędu.
  • #19
    elektryku5
    Poziom 38  
    Ja też kiedyś zrobiłem płytkę, tylko że pod 2313 i teraz pracuje jako zegarek, także przydatność takich wyrobów jest niezbyt duża, przydaje się tylko gdy ktoś nie miał żadnej styczności z uC i chce się trochę pobawić. To jest tak, że do każdego projektu rozmieszczenie połączeń może być inne (przykładowo dla wygody projektu PCB) i wtedy płytka testowa jest ograniczeniem.
  • #20
    mkpl
    Poziom 37  
    elektryku5 napisał:
    Ja też kiedyś zrobiłem płytkę, tylko że pod 2313 i teraz pracuje jako zegarek, także przydatność takich wyrobów jest niezbyt duża, przydaje się tylko gdy ktoś nie miał żadnej styczności z uC i chce się trochę pobawić. To jest tak, że do każdego projektu rozmieszczenie połączeń może być inne (przykładowo dla wygody projektu PCB) i wtedy płytka testowa jest ograniczeniem.


    Na płytce testowej a przynajmniej ja odpalam tylko poszczególne moduły i testuję tylko niektóre funkcje. Potem robię pcb docelową i wykorzystuję gotowe kody. Na płytce testowej nie da się zrobić gotowca...
  • #21
    aneuron
    Poziom 11  
    kaka0204 napisał:
    Napisałem przecież, że dopiero się uczę C i nie jestem w stanie wskazać błędu.

    Do uczenia się C lepsza jest dobra książka i wcześniej lepiej jeszcze nauczyć się assemblera na uP, bo spędzisz kilka dni żeby odkryć, że kompilator wygenerował kod taki że mimo iż v jest zadeklarowane jako long 4y bajty, ale w return obcinane dopiero, do 2óch, to po prostu bez tego rzutowania na (unsigned long), kod w asemblerze wygląda słabo i funkcja zwraca złe wyniki ;)
    Code:

    v= (((unsigned long)a)*adc_avref)/1024;

    Poprawny kod maszynowy jest generowany jak się zrobi jak powyżej, albo tak:
    Code:

    v= a;
    v*= adc_avref;
    v/=1024;

    Uroki programowania uP :D
    Żaden najlepszy programator tutaj nie pomoże i płytka testowa, ale do sprawdzenia, czy w ogóle uP jeszcze żyje może się przydać...

    BTW: Program był kompilowany z domyślną opcja avr-gcc -Os ...
  • #22
    elektryku5
    Poziom 38  
    mkpl napisał:
    elektryku5 napisał:
    Ja też kiedyś zrobiłem płytkę, tylko że pod 2313 i teraz pracuje jako zegarek, także przydatność takich wyrobów jest niezbyt duża, przydaje się tylko gdy ktoś nie miał żadnej styczności z uC i chce się trochę pobawić. To jest tak, że do każdego projektu rozmieszczenie połączeń może być inne (przykładowo dla wygody projektu PCB) i wtedy płytka testowa jest ograniczeniem.


    Na płytce testowej a przynajmniej ja odpalam tylko poszczególne moduły i testuję tylko niektóre funkcje. Potem robię pcb docelową i wykorzystuję gotowe kody. Na płytce testowej nie da się zrobić gotowca...


    W sumie racja, u mnie przykładowo przydała się do testu biblioteki HD44780, ale żeby testować dalsze opcje musiałem sobie w pająku zrobić układ, bo przejściówki pod tamtą płytkę nie opłacało się robić.
    No czasem się przydaje, ale żeby jako tako przetestować kod do któregoś z interfejsów procesora starczy pająk z procesorem i docelowe urządzenie, zawsze przydać może się dodatkowy LCD, ale to najlepiej byłoby mieć na jakiś kabelkach połączeniowych, żeby sobie za każdym razem podpiąć jak trzeba i gdzie trzeba, no bo jak tak wszystko na stałe jest spięte, to coś może przeszkadzać.
  • #23
    netotron
    Poziom 26  
    elektryku5 napisał:
    Ja też kiedyś zrobiłem płytkę, tylko że pod 2313 i teraz pracuje jako zegarek, także przydatność takich wyrobów jest niezbyt duża, przydaje się tylko gdy ktoś nie miał żadnej styczności z uC i chce się trochę pobawić. To jest tak, że do każdego projektu rozmieszczenie połączeń może być inne (przykładowo dla wygody projektu PCB) i wtedy płytka testowa jest ograniczeniem.

    Całkowicie się zgadzam, za chwilę przejdziesz na inne AVR, pojawią się inne DS18B20 itd. A nawet zrobić z tego na siłę stacje pogody (by nie leżało w szufladzie) będą kłopoty, bo nie będzie pasowało do obudowy.
    A jeśli już, to mnie brakło ULN28XX. Testowanie rzadko kończy się na wyświetlaczu i diodach.
    Pochwała za zapał.
  • #24
    szulat
    Poziom 23  
    aneuron napisał:
    Do uczenia się C lepsza jest dobra książka i wcześniej lepiej jeszcze nauczyć się assemblera na uP, bo spędzisz kilka dni żeby odkryć, że kompilator wygenerował kod taki że mimo iż v jest zadeklarowane jako long 4y bajty

    z dowolnej ksiązki o C dowiemy się że sposób obliczania wyrażenia nie zależy od tego do jakiego typu zmiennej zostanie potem przypisana wartość (typ v nie ma więc znaczenia!), ale o tym że w avr-gcc int ma 16 bitów i o tym jaki jest wpływ tego faktu na domyślne promocje to już z przypadkowej książki dowiedzieć się trudniej :)
  • #25
    redes
    Poziom 13  
    Kolego Kaka0204 oglądając Twoje dzieło przypomniałem sobie, jak ja zaczynałem z prockami.
    Była to płytka http://sklep.avt.pl/photo/_pdf/AVT3500.pdf dostosowana do Atmegi16 wykonana w technice dwustronnej termotransferem.

    Płytka testowa Atmega32/16 Płytka testowa Atmega32/16

    Niezłe, co? Aż się łza w oku kręci.
    Teraz po paru latach płytki wyglądają trochę lepiej, wykonane w Eagle i wyfrezowane i powiercone na własnej roboty frezarce CNC oraz zabezpieczone farbą transparentną do szkła.

    Płytka testowa Atmega32/16 Płytka testowa Atmega32/16

    Dlatego każda wykonana przez Ciebie płytka będzie prawdopodobnie lepsza. Trening czyni mistrza.
    Za chęci wielki pozytyw, ale jeżeli chodzi o samo założenie tego projektu to pewnie skończy jak mój na stercie starych części jako dawca elementów do nowych projektów. :)
  • #26
    darekRD
    Poziom 13  
    Fajnie, że sam zrobiłeś, to się liczy. Można co prawda kupić za 200 zł zestawy uruchomieniowe wypasione nieprzyzwoicie, ale satysfakcja - bezcenna.
    Za fabryką (moim zdaniem) przemawia jednak jakość wykonania i niezawodność. Przynajmniej, a może szczególnie jeśli chodzi o płytki testowe, uruchomieniowe. Ja kiedy coś uruchamiam, to dążę do minimalizacji zmiennych. Dlatego chcę mieć pewność, że przynajmniej płytka na 100% chodzi, nie ma zimnych lutów, pękniętych ścieżek, zwarć itp.
  • #27
    elektryku5
    Poziom 38  
    Fabryczna płytka jest dość fajnie wykonana, ale szkoda na niej lutować, bo była droga i ładnie wygląda oraz jest problem z ewentualną wymianą któregoś z elementów bez podstawki, bo przelotki i cieniutkie ścieżki dużo łatwiej uszkodzić, niż łopatologiczny druk wykonany w domu.