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

Atmega8 - Mały test board - prośba o sprawdzenie

afterparty 29 Gru 2012 14:07 4671 21
  • #1 29 Gru 2012 14:07
    afterparty
    Poziom 12  

    Cześć, jako, że prototypowanie układów z więcej niż jednym wyświetlaczem 7-seg na płytce stykowej jest praktycznie niemożliwe, postanowiłem wykonać sobie mały test board. Miały by się na nim znajdować:
    - Atmega8
    - Złącze 10PIN w standardzie KANDA
    - 4 tact switche
    - 4 diody led
    - 4 wyświetlacze 7-seg (wspólna katoda)
    - Buzzer
    - Miejsce (podstawka 20pin) na inne układy
    - Stabilizator 5V
    - Kwarc 12MHz
    - Przekaźnik, ale raczej się już nie zmieści (nie mam go na schemacie)
    Wszystko miało by być podłączane goldpinami.

    Chyba wystarczy tyle, zależy mi na małych rozmiarach (ograniczenia płytki w Eagle Light :/)

    Zabrałem się za projektowanie, byłby ktoś na tyle miły i sprawdził co tam nabazgrałem? W załączniku plik .sch, niżej to samo w obrazku.

    Atmega8 - Mały test board - prośba o sprawdzenie

    Mam wątpliwości co do pinu RESET, czytałem, że kondensator tam może uniemożliwić programowanie, czy taka konfiguracja będzie działać?

    0 21
  • Pomocny post
    #2 29 Gru 2012 14:58
    dondu
    Moderator Mikrokontrolery Projektowanie

    Cześć,
    żeby każdy tak przygotowywał schematy :)

    1. Reset - widzę, że zrobiłeś zgodnie z notą AVR042 Atmela - bardzo dobrze. W takiej uniwersalnej płytce warto zadbać o to. Co do kondensatora zworka (w szereg z C1) umożliwiająca jego odcięcie od układu na czas programowania załatwia sprawę ewentualnych problemów.

    2. Rezystory na LED'ach - nie widać ... LEDY lub piny pójdą z dymem. Chyba, że to celowe.

    3. Sterowanie buzzer'kiem specjalnie przez PNP?

    4. Rezystory baz tranzystorów wyświetlacza LED - liczyłeś, czy dobrałeś "na oko"?

    5. Dodaj jakiś kondensator elektrolityczny na wyjściu regulatora napięcia. Na wejściu dodaj 100nF.

    6. Przekaźnik - jak będzie sterowany? Nie zapomnij o diodzie: http://mikrokontrolery.blogspot.com/2011/03/przekaznik-i-zaklocenia.html

    7. Ponieważ to płytka uniwersalna, to ja bym dodał dławik na AVcc: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html

    8. Umożliwiłby poprzez zworki inną konfigurację ARef (patrz link powyżej), co może się kiedyś przydać.

    9. Nie pozostawiałbym PB3, PB4 i PB5 tylko do funkcji programowania mikrokontrolera, ale także dodał do JP3. Tym bardziej, że jest tam istotne wyjście PWM OC2.

    10. Podobnie z PB6 i PB7 - zworki by kwarc można było odłączyć a wykorzystać piny w innym celu - mają istotne inne funkcjonalności.

    11 w IC socket dodałbym z boku piny zasilania z kondensatorem 10nF + 10uF. W ten sposób będziesz miał pod ręką zasilanie z filtrowaniem. W końcu nie wiadomo jaki układ tam będziesz wkładał, stąd nie od razu można piny zasilania ustalić.

    12. Może warto dodać podstawkę pod mikrokontroler i przewidzieć możliwość zmiany regulatora napięcia na inny np. o napięciu 3,3V by móc wykorzystać do projektów pracujących z innymi napięciami. Na przykład gdy będziesz chciał podłączyć kartę SD, nie będziesz musiał dodawać do niej konwerterów napięcia 5v<->3,3V).

    13. Ponieważ płytka uniwersalna to dodałbym jeszcze kondensatory 22uF w pobliżu pinów Vcc i AVcc mikrokontrolera. W przypadku pinu AVcc, gdy zdecydujesz się i zastosujesz dławik, to ten kondensator 10uF daj po stronie dławika podłączonej do 7805.

    Pytania:
    - Z czego będziesz zasilał regulator 7805?

    0
  • #3 29 Gru 2012 17:51
    afterparty
    Poziom 12  

    No więc tak:
    Dziękuje za odpowiedź.

    ad. 1:
    Bardzo się cieszę, że wszystko w porządku, zworka dodana

    ad. 2:
    :oops:, oj zapomniałem, dopiero po wysłaniu wiadomości zauważyłem, oczywiście poprawione.

    ad. 3:
    Jestem pewien, że jest to NPN :) W sumie nie wiem czy jest potrzeba sterowania tego buzera tranzystorem, zmierzyłem pobór prądu i wynosił tylko 7mA.

    ad. 4:
    No właśnie liczyłem, ale nie jestem pewien czy dobrze?
    Zmierzyłem pobór prądu przez jeden wyświetlacz 7-seg. Kiedy wszystkie segmenty są aktywne wynosił ok. 100mA. A więc z prawa Ohma:
    R=U/I
    R=5/0.1 = 50
    Z rzędu E3 miałem 47, i taką wartość na schemacie wpisałem

    ad. 5:
    Kondensatory są już na schemacie.

    ad. 6:
    Narazie nie wiem czy na płytce się zmieści, ale na schemacie go zamieściłem (oczywiście z diodą).

    ad. 7:
    Zgodnie ze sugestią dławik został dodany.

    ad. 8:
    Tutaj niestety nie za bardzo wiem o co chodzi. :|

    ad. 9:
    Też zmienione, zawsze te trzy piny więcej.

    ad. 10:
    Właściwie tak miałem zrobić na początku, ale nie wiem czemu się rozmyśliłem, zmienione na schemacie.

    ad. 11:
    Dobry pomysł, tak też zrobiłem.

    ad. 12:
    Podstawkę planowałem dać od początku. Możliwość zmiany regulatora, tzn. chodzi o to, aby dodać drugi reg. do płytki i umożliwić przełączanie 3,3<>5V?

    ad. 13:
    Nie wiem czy dobrze zrozumiałem, proszę sprawdzić na schemacie.

    Oczywiście załączam schemat w obrazku i w pliku .sch
    Atmega8 - Mały test board - prośba o sprawdzenie

    0
  • Pomocny post
    #5 29 Gru 2012 18:41
    Marczeli_P
    Poziom 20  

    Co mi się rzuciło w oczy to, że jeżeli stosujesz tranzystory BC548 to obciążenie powinno być wpięte w obwód kolektora a nie jak u ciebie jest w obwodzie emitera.

    0
  • #6 29 Gru 2012 21:51
    afterparty
    Poziom 12  

    Dzięki za sugestie.
    Tact switche podłączone do GND.
    Tranzystory poprawione. Swoją drogą dlaczego tak powinno być?

    No i nie napisałem czym to chcę zasilać. Znalazłem jakiś stary zasilacz od konsoli 9V, pomyślałem, że się nada. Powinienem zastosować radiator dla 7805?

    Nowy schemat:
    Atmega8 - Mały test board - prośba o sprawdzenie

    0
  • Pomocny post
    #7 30 Gru 2012 00:04
    dondu
    Moderator Mikrokontrolery Projektowanie

    Ad 3. Oj, ciapa ze mnie, albo okularów na nosie nie miałem, a rzucając szybko okiem widziałem, że jest podłączony jak PNP :)
    Przenieś go między masę (emiter) a buzzer (kolektor). Buzzer natomiast bezpośrednio do Vcc - czyli tak jak zrobiłeś z przekaźnikiem.
    Buzzery warto zabezpieczać diodą Shottky lub rezystorem równolegle do niego. Podobnie jak w przypadku przekaźników (link podałem wcześniej) - oczywiście zależy to od samego buzzera i jego wewnętrznych bebechów. Ponieważ nie podajesz typu stąd ogólna uwaga na ten temat.


    Ad 4. Tak nie możesz liczyć rezystora bazy. Nie uwzględniłeś wzmocnienia tranzystora. Tutaj musisz łyknąć wiedzę o tranzystorach NPN, a na razie przyjmij powiedzmy 1-2,2k.

    Ad 8 - zerknij do linku z pkt 7 zobacz, że możesz chcieć kiedyś podłączyć zewnętrzne źródło napięcia odniesienia dla ADC. Jeżeli będziesz będziesz miał tam na stałe kondensator, to może Ci to przeszkadzać. Dlatego warto zrobić tak, by do Aref mieć na płytce kondensator 100nF ale odłączany, z możliwością podpięcia do Aref dowolnego źródła napięcia. Teraz jaśniej?


    Ad 13. Niekoniecznie dodać, tylko móc go wymienić jak Atmegę. Kondensatory zostaną te same.

    Wyjdzie z tego bardzo fajna płytka testowa z dobrą dokumentacją :-)

    0
  • #8 31 Gru 2012 11:14
    afterparty
    Poziom 12  

    A więc:

    ad. 1: Buzzer jest z generatorem, na 5V, konkretnie model TMB12A05. Dałem mu ten rezystor 220, bo był strasznie głośny :). Dodałem diodę, mam zamiar wykorzystać BAT85 (dostępna w lokalnym sklepie), ale, że w bibliotekach Eagle jej nie ma, to na schemacie zamieściłem BAT81.

    ad. 4: Poczytałem trochę, policzyłem i tym razem wyszło mi 1933Ω. A, że pod ręką mam rezystory 2k2, to tak na schemacie wpisałem. Policzyłem też wartość dla rezystora tego tranzystora od buzzera, i wyszło mi 7733Ω, wydaje mi się coś za dużo. Czy to możliwe?

    ad. 8: Ok, rozumiem, już zmienione.

    ad. 13: Jak by to zrobić? Może być jakaś oddzielna mała płytka ze samym regulatorem, wpinana goldpinami?

    No i oczywiście nowy schemat:
    Atmega8 - Mały test board - prośba o sprawdzenie

    0
  • Pomocny post
    #9 31 Gru 2012 11:49
    dondu
    Moderator Mikrokontrolery Projektowanie

    ad. 1 - No to dioda nie będzie potrzebna. Ale zostaw na nią miejsce na PCB, bo w przyszłości możesz chcieć podłączyć zwykły buzzer i wtedy tylko ją wlutujesz.
    ad. 4 - Jeżeli dobrze liczyłeś to widocznie tak powinno być :)
    ad. 13 - Tak, goldpinami na osobnej płytce. Przy takim rozwiązaniu będziesz mógł nawet podłączać jakąś małą przetwornicę.

    Jampery JP22, JP23 oraz JP24 powinny mieć także pin masy.
    W przypadku JP24 pin masy powinien być podłączony do GND nr 22, czyli JP24 powinien być jak najbliżej tego pinu podobnie jak JP13 i C4. Chodzi o to, by masa analogowa "trzymała się razem".

    Schemat na 5.

    0
  • #10 31 Gru 2012 15:04
    afterparty
    Poziom 12  

    Atmega8 - Mały test board - prośba o sprawdzenie

    Powyżej nowy schemat.
    Diodę zostawiam. Dodałem jumpery do GND. Stabilizator teraz jest osobnym modułem. To już chyba wszystko?

    0
  • #12 20 Sty 2013 18:41
    afterparty
    Poziom 12  

    Sprawa ma się tak: PCB jest we fazie projektowania - powoli, ale jakoś to idzie. Natomiast dzisiaj pomyślałem, że można by dodać RS232 - w końcu widzi się to na większości takich płytek. Poczytałem trochę, i postanowiłem wykorzystać MAXIM232CPE (dostępny w lokalnym sklepie). Zrobiłem wszystko według zaleceń z datasheeta wspomnianego Maximka i oto co wyszło:
    Atmega8 - Mały test board - prośba o sprawdzenie
    Chciałem spytać czy wszystko jest w porządku?
    Czy to może być podłączone do ATMEGA8 cały czas, czy dodać jakieś zworki na RXD i TXD?
    I jakie dać te kondensatory? Na różnych stronach widziałem 0.1µF, na innych znowu 1µF. W datasheet zalecane kondensatory to 1µF dla MAX232 oraz 0.1µF dla MAX232A, ale nie ma wyszczególnionego MAX232CPE (na schemacie dałem 1µF).

    Poza tym, schemat trochę mi się zmienił:
    -Diody LED podłączyłem na stałe do VCC, więc załączane będą zerem.
    -Usunąłem Dip-switcha. Nie widzę dla niego praktycznych zastosowań.
    -W rezultacie dyskusji w innym temacie o tej płytce zmienił się zasilacz - dodany został drugi stabilizator z przełącznikiem i diodami wskazującymi. Również główny włącznik urządzenia.

    Atmega8 - Mały test board - prośba o sprawdzenie
    (W załączniku .sch)

    0
  • Pomocny post
    #13 20 Sty 2013 19:24
    BlueDraco
    Specjalista - Mikrokontrolery

    Wyświetlacze - skąd weźmiesz takie ze wspólną katodą? Są znacznie mniej popularne od takich ze wspólną anodą. Czy jesteś pewny, że wyświetlacze mają wewnętrznie połączone oba CC? Radziłbym połączyć na zewnątrz.

    O co chodzi z tymi dwoma stabilizatorami przełączanymi przełącznikiem? Na oko wygląda to bez sensu.

    MAX232 - ok, ale ja wziąłbym po prostu dwa tranzystory. Taniej i mniej miejsca, a do komunikacji z PC w odległości 1 m wystarczy ;) A jeśli już MAX - to podłącz linie RTS i CTS do DB9 i wyprowadź po drugiej stronie MAX na jakiś header.

    Swoją drogą - robić płytkę pod ATmega8 w 2013 roku... Czyste muzealnictwo.

    0
  • #14 20 Sty 2013 22:10
    afterparty
    Poziom 12  

    Witam.
    Wyświetlacze - mam już nawet kupione, a oba piny katod są połączone (sprawdzone). Szkoda, że nie wziąłem wspólnej anody :/

    Stabilizatory - założenie jest takie, żeby można było sobie wybrać napięcie 3.3V/5V, tylko na schemacie oba są takie same, bo nie było tego, którego chciałem użyć w bibliotekach (Pinout ten sam).

    MAX - już zamówiłem, także pozostanę przy nim. RTS i CTS zrobione:
    Atmega8 - Mały test board - prośba o sprawdzenie
    Od czytania mi się już trochę namieszało, mam nadzieję, że nie pomieszałem kierunków.

    Cytat:
    Swoją drogą - robić płytkę pod ATmega8 w 2013 roku... Czyste muzealnictwo.

    Dla amatora/hobbysty jakim jestem, spokojnie wystarczy. Ma mi to posłużyć w nauce podstaw, później można się na coś większego/nowszego przerzucić.

    0
  • #16 21 Sty 2013 09:33
    afterparty
    Poziom 12  

    Widzę, że wszystkie te Atmegi mają taki sam pinout. Na płytce dam podstawkę, i będzie można je sobie wymieniać do woli.

    0
  • Pomocny post
    #17 21 Sty 2013 09:52
    GanzConrad
    Poziom 21  

    afterparty napisał:
    Ma mi to posłużyć w nauce podstaw, później można się na coś większego/nowszego przerzucić.

    To "później" przyjdzie wcześniej niż Ci się wydaje. Pierwszy z brzegu kurs AVR-GCC:
    http://kursc.forbot.pl/
    już na 3 lekcji pojawia się Atmega16A. Ja zrobiłbym podstawkę dip 40 i mniejsze procesory w "razie potrzeb" podłączał poprzez adaptery. Same wyświetlacze zabiorą Ci sporo zasobów procesora, więc większy uP będzie Ci szybko potrzebny.
    Możesz również spróbować podłączyć wyświetlacze poprzez multiplexer np. 74LS155 (ja mam 6 wyświetlaczy). Przy 4 szt zaoszczędzisz tylko 1 port, (przy 6szt już 3) ale nauczysz się liczenia mikrosekund i radzenia sobie bez nieszczęsnych delay_ms() ;-).

    0
  • #18 21 Sty 2013 11:26
    afterparty
    Poziom 12  

    Ech, PCB niedługo będzie skończone, nie opłaca mi się teraz wszystkiego zmieniać :| Naprawdę taka słaba ta Atmega8?
    A multipleksera niestety nie mam już gdzie upchnąć.

    0
  • #19 21 Sty 2013 11:40
    GanzConrad
    Poziom 21  

    może nie słaba, ale ma dość mocno ograniczoną ilość portów. Będziesz musiał wybierać co w danej chwili podłączyć do uP, a ograniczenia już w pierwszej fazie nauki są wyjątkowo uciążliwe (bo co będzie potem?). Co do PCB - zmiany to nieodłączny etap każdego projektu, więc musisz się do nich przyzwyczaić.

    0
  • #20 21 Sty 2013 13:08
    afterparty
    Poziom 12  

    Ja jednak pozostanę przy Atmedze8/88. Może faktycznie po podłączeniu wyświetlaczy zostanie mało wolnych portów. Ale przecież na początku nie będę robił jakichś mega rozbudowanych projektów. Gdybym dopiero zaczynał to PCB tworzyć, na pewno rozważył bym zmianę na Atmegę16/32.

    0
  • #21 21 Sty 2013 13:39
    piotrva
    Moderator Mikrokontrolery

    1. Lepiej zacznij od atmega168.
    2. Co do przeprojektowywania PCB - uwierz mi czasem masz dużo bardziej skomplikowany projekt (np. ostatnio ATMega640 + mnóstwo peryferiów w pewnym urządzeniu) i płytkę przeprojektowywałem kilka razy, po czym klient zażyczył sobie nieco inną obudowę - i trzeba było też przeprojektować, więc nie warunkuj wykonania płytki tym że masz projekt. Bo jak mówią Koledzy i ja jeszcze dodam, że nie warto wyrzucać kasy na coś, o czym za parę miesięcy powiesz, że nie wystarcza (bo owszem, teraz nie będzie nic rozbudowanego, ale po 3 miesiącach nauki...). Lepiej poświęcić tę godzinkę na projekt płytki i zrobić pod tę atmegę32 (pinowo zgodna z atmega16 lub nowszą atmega644p).
    3. A co do wyświetlaczy - można sterować teoretycznie dowolną ich liczbą za pomocą 3-4 pinów procesora (za pomocą specjalizowanych układów lub nawet 74HC595). Ja np. na elce opublikowałem projekt matrycy 8*48 pikseli sterowanej właśnie za pomocą 3 pinów procesora.

    0
  • #22 21 Sty 2013 16:32
    afterparty
    Poziom 12  

    OK, skoro tak mówicie, to wsadzę na płytkę jakąś nowszą ósemkę, ale nie mam już siły tego przeprojektowywać. Po prostu kiedy to mi przestanie wystarczać zrobię kolejną płytkę testową. W każdym razie dzięki wszystkim za pomoc.

    0