logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Co wsadzić do zestawu uruchomieniowego? ATMega8(ATMega32)

marenc 05 Mar 2006 16:13 4527 19
  • #1 2377870
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Zaprojektowałem taki zestaw uruchomieniowy, do potrzeb własnych.

    Zestaw posiada:
    -Wyświetlacz LCD - 2x16
    -Wyświetlacze 7-dmio segmentowe - 2x2
    -Diody kontrolne - 16szt.
    -Klawiaturę - 16xMicroSwith - układ 4x4
    -Podstawki: DIP40, DIP28w(w DIP40), 3xDIP20(na rozszerzenia)
    -Stabilizowane źródło napięciowe
    -Rezonator kwarcowy - 16Mhz
    -Złącze do programatora ISP

    Połączenia pomiędzy elementami będą dokonywane za GoldPin'ach.

    Pytanie: Co jeszcze będzie przydatne do nauki ATMega8(z czasem ATMega32)? Czy opłaca się zamontować stałą pamięć zewnętrzną?
    Załączniki:
    • Co wsadzić do zestawu uruchomieniowego? ATMega8(ATMega32) Zestaw Uruchomieniowy.PNG (27.75 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #2 2377979
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    Garść moich uwag:
    1. do diód led użyj rezystorów SMD 1206 naprawde bardzo wygodnie się lutuje.
    2. domontuj układ max232 do transmisji szeregowej.
    3. ja bym podłączył kwarc i isp w miare na stałe, pozbywasz się kilku przewodów które bedą 95% czasu podłączone
    4. może dorzuć jakieś pamięci I2C albo SPI
    5. jeśli to ma być zestaw uruchomieniowy, to ja bym zastosował największy i najbardziej rozbudowany procesor jaki da się kupić (na jaki Cie stać), masz wtedy do dyspozycji większość sprzętu jaki mają wbudowa mniejsze procesory.
  • #3 2378110
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    elektryk napisał:
    Garść moich uwag:
    1. do diód led użyj rezystorów SMD 1206 naprawde bardzo wygodnie się lutuje.
    2. domontuj układ max232 do transmisji szeregowej.
    3. ja bym podłączył kwarc i isp w miare na stałe, pozbywasz się kilku przewodów które bedą 95% czasu podłączone
    4. może dorzuć jakieś pamięci I2C albo SPI
    5. jeśli to ma być zestaw uruchomieniowy, to ja bym zastosował największy i najbardziej rozbudowany procesor jaki da się kupić (na jaki Cie stać), masz wtedy do dyspozycji większość sprzętu jaki mają wbudowa mniejsze procesory.


    Ad1. Ostatnio spaliły mi się dwie lutownice, i obecna niepozwoli mi na lutowanie SMD :P

    Ad2. MAX232? Transmisja szeregowa? Może jakieś informacje, bo niewiem o co chodzi?

    Ad3. No fakt, że kwarc jest troszku daleko dla niektórych µC, jednak chcę stosować różne typy(µC) więc niema co na stałe go montować. Może zrobić połączenia dla ATMega8 i ATMega32, a wyboru dokonywać zworką na goldpin'ach? Myślę, że to dobre rozwiązanie gdyż jak będzie jakiś inny układ, to zworkę można wyjąć i podłączyć kabelkami :)

    Ad4. Czy to aby napewno będzie potrzebne do nauki I2C? Może lepiej z czasem dołączyć to jako podół pod DIP20(lub dwa :) )?

    Ad5. Owszem, ale na tym forum poradzono mi, że µC wytrzymują określoną liczbę programowań. Niemiało by sensu kupować µC z np. 256kB Flash, gdy moje pierwsze programy to około 0,1kB.
  • #4 2378227
    adamusx
    Poziom 27  
    Posty: 977
    Pomógł: 94
    Ocena: 28
    Bezwzględnie MAX 232 do transmisji szeregowej...to nawet ważniejesze od samego uC :D
  • #5 2378334
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    adamusx napisał:
    Bezwzględnie MAX 232 do transmisji szeregowej...to nawet ważniejesze od samego uC :D


    Dobra, dobra, ale co to i do czego? Do MAX232 nieznalazłem dokumentacji w necie, a też na hasło transmisja szeregowa nieznalazło żadnych konkretów :(
  • #7 2378378
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Czyli to nie do programowania, tylko do przesyłu danych? Jeżeli tak to zaraz to dołączę do PCB :)
  • #8 2378403
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    Spójrz tutaj:

    http://www.oz1bxm.dk/PIC/628uart_dk.htm

    Wykorzystujesz sprzętowy układ do transmisji po rs232 z mikrokontrolera, a max232 zmienia tylko poziom napięć sygnałów na te określowe w specyfikacji do transmisji po rs232. Taki kabelek podłanczasz do komputera i już masz komunikacje uC <-> PC (lub inne urządzenie z tego typu łączem)
  • #9 2378421
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    :) Ok. Napewno to przyłączę do PCB.

    Jeszcze jakieś pomysły, na ulepszenia? Z kwarcem już sobie poradziłam :)
  • #10 2400153
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    mariuszlorenc napisał:
    Ad1. Ostatnio spaliły mi się dwie lutownice, i obecna niepozwoli mi na lutowanie SMD :P
    Rezystory SMD do diód LED możesz nawet wlutować transformatorówką.
    mariuszlorenc napisał:
    Ad5. Owszem, ale na tym forum poradzono mi, że µC wytrzymują określoną liczbę programowań. Niemiało by sensu kupować µC z np. 256kB Flash, gdy moje pierwsze programy to około 0,1kB.
    Nie chodzi o flash, tylko o sprzęt wbudowany, te "większe" z reguły mają go więcej.

    PS tak sobie pomyślałem że klawiaturke lepiej dać jakąś gotową, będzie miała nadruk na klawiszach, a wcale drogo nie kosztuje.
  • #11 2400247
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    mariuszlorenc wrote:
    Cytat:
    Ad5. Owszem, ale na tym forum poradzono mi, że µC wytrzymują określoną liczbę programowań. Niemiało by sensu kupować µC z np. 256kB Flash, gdy moje pierwsze programy to około 0,1kB.

    A przez ile lat masz zamiar pisać te pierwsze programy? Policz ile programów i poprawek zdołasz wgrać do pamięci mikrokontrolera zanim przekroczysz magiczną liczbę 10000 razy.

    Co do kwarcu to w pierwszych programach jego użyteczność jest raczej minimalna. Wystarcza wewnętrzny oscylator RC w mikrokontrolerze. Kwarc zaczyna być potrzebny gdy chcesz wykorzystać port szeregowy albo bardzo precyzyjnie liczyć czas.
  • #12 2400764
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Jacu$ napisał:
    mariuszlorenc wrote:
    Cytat:
    Ad5. Owszem, ale na tym forum poradzono mi, że µC wytrzymują określoną liczbę programowań. Niemiało by sensu kupować µC z np. 256kB Flash, gdy moje pierwsze programy to około 0,1kB.

    A przez ile lat masz zamiar pisać te pierwsze programy? Policz ile programów i poprawek zdołasz wgrać do pamięci mikrokontrolera zanim przekroczysz magiczną liczbę 10000 razy.

    Co do kwarcu to w pierwszych programach jego użyteczność jest raczej minimalna. Wystarcza wewnętrzny oscylator RC w mikrokontrolerze. Kwarc zaczyna być potrzebny gdy chcesz wykorzystać port szeregowy albo bardzo precyzyjnie liczyć czas.


    To fakt z tymi 10 000 razy, bo zawsze symuluje programy, i wgrywam, gdy jestem w 99% pewny, że wszystko OK.

    Co do kwarcu, to podłączyłem go na stałe, ale jest możliwość odłączenia jumper'kami :)
  • #13 2400878
    Ireq
    Poziom 13  
    Posty: 56
    Pomógł: 1
    Ocena: 1
    A jakiego symulatora uzywasz?
  • #14 2400881
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    W zasadzie to dopiero teraz zwróciłem większą uwagę na szczegóły i zauważyłem, że diody LED są wmontowane zbyt mało elastycznie. Będziesz je mógł zapalać z portu tylko jednym stanem. W płytce uruchomieniowej zestawu NE 300-K zrobiono to lepiej. Można tam testować program, w którym stan aktywny na wyjściu dowolnego pinu jest wysoki lub niski. Zapewniają to jumper'ki przy LED-ach zarówno od strony anody jak i katody. Ściągnij sobie dokumentację tego zestawu i popatrz na schemat a później na widok ścieżek na płytce drukowanej a wszystko stanie się bardziej zrozumiałe. Sam używam takiego zestawu (kupiłem samą płytkę i obsadziłem elementy w/g potrzeb) i takie rozwiązanie bardzo mi się podoba. Osobiście preferuję załączanie urządzeń z mikrokontrolera stanem niskim a wyłączanie stanem wysokiej impedancji ale już mi się zdarzyło, że musiałem zmienić upodobania :wink:.

    --------------| dodano po chwili |--------------------

    Zapomniałem o linku do wspomnianej dokumentacji 300-K.pdf
  • #15 2400967
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Jacu$ napisał:
    W zasadzie to dopiero teraz zwróciłem większą uwagę na szczegóły i zauważyłem, że diody LED są wmontowane zbyt mało elastycznie. Będziesz je mógł zapalać z portu tylko jednym stanem. W płytce uruchomieniowej zestawu NE 300-K zrobiono to lepiej. Można tam testować program, w którym stan aktywny na wyjściu dowolnego pinu jest wysoki lub niski. Zapewniają to jumper'ki przy LED-ach zarówno od strony anody jak i katody. Ściągnij sobie dokumentację tego zestawu i popatrz na schemat a później na widok ścieżek na płytce drukowanej a wszystko stanie się bardziej zrozumiałe. Sam używam takiego zestawu (kupiłem samą płytkę i obsadziłem elementy w/g potrzeb) i takie rozwiązanie bardzo mi się podoba. Osobiście preferuję załączanie urządzeń z mikrokontrolera stanem niskim a wyłączanie stanem wysokiej impedancji ale już mi się zdarzyło, że musiałem zmienić upodobania :wink:.

    --------------| dodano po chwili |--------------------

    Zapomniałem o linku do wspomnianej dokumentacji 300-K.pdf


    Dokumentację posiadam. Co do LED'ów to czy niejest logiczne, że jak steruje katodami, to gdy na katodą podam HIGH to się nie zaświeci, a jak LOW to się saćwieci? Sterowanie anodami jest zbędne, bo gdybyśmy kilka LED'ów podłączyli różnie(część do anod, a część do katod) to moża by było się nieźle pogubić.

    Ireq: Symulator do AVR? Oczywiście, że Avr Studio ;) Chyba najlepszy(a przynajmniej najlepszy jaki spotkałem) ;)

    Zamieszczam zaktualizowaną wersję mojej płytki.
    Załączniki:
    • Co wsadzić do zestawu uruchomieniowego? ATMega8(ATMega32) PCB.PNG (53.91 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #16 2401339
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    Cytat:
    Co do LED'ów to czy niejest logiczne, że jak steruje katodami, to gdy na katodą podam HIGH to się nie zaświeci, a jak LOW to się saćwieci?

    Częściowo masz rację, ale...
    Dioda nie zaświeci się również od stanu wysokiej impedancji. Wszystko jest fajnie do czasu, gdy będziesz zmuszony zaprojektować urządzenie, w którym stan wysoki na wyjściu jest stanem aktywnym. Stan nieaktywny nie koniecznie musi być stanem niskim. W takim momencie przy testowaniu układu diody nigdy nie będą się w stanie zapalać i trudno Ci będzie zdiagnozować czy układ działa poprawnie, czy nie. Nawet jeśli obiecasz sobie, że nigdy nie skorzystasz z rozwiązania, które Ci podpowiadam to w końcu jego zastosowanie nic Cię nie kosztuje (płytka jeszcze jest w fazie projektowania).
    Jest jeszcze jedna fajna rzecz na 300-K - piszczyk z wbudowanym generatorkiem. Dzięki niemu mogę wpatrywać się w coś a jednocześnie słyszę, czy na jakimś innym wyjściu pojawia sie stan aktywny.
  • #17 2401540
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Jacu$ napisał:
    Cytat:
    Co do LED'ów to czy niejest logiczne, że jak steruje katodami, to gdy na katodą podam HIGH to się nie zaświeci, a jak LOW to się saćwieci?

    Częściowo masz rację, ale...
    Dioda nie zaświeci się również od stanu wysokiej impedancji. Wszystko jest fajnie do czasu, gdy będziesz zmuszony zaprojektować urządzenie, w którym stan wysoki na wyjściu jest stanem aktywnym. Stan nieaktywny nie koniecznie musi być stanem niskim. W takim momencie przy testowaniu układu diody nigdy nie będą się w stanie zapalać i trudno Ci będzie zdiagnozować czy układ działa poprawnie, czy nie. Nawet jeśli obiecasz sobie, że nigdy nie skorzystasz z rozwiązania, które Ci podpowiadam to w końcu jego zastosowanie nic Cię nie kosztuje (płytka jeszcze jest w fazie projektowania).
    Jest jeszcze jedna fajna rzecz na 300-K - piszczyk z wbudowanym generatorkiem. Dzięki niemu mogę wpatrywać się w coś a jednocześnie słyszę, czy na jakimś innym wyjściu pojawia sie stan aktywny.


    Co do LED'ów to nadal nie łapie, bo jak na I/O ustawie HIGH a podam to na katode, to się nie zaświeci(i wiem wtedy, że tam jest HIGH).

    Co do "buczka" to wybrałem "Buczek z generatorem 85dB/3-16V (elektromagnetyczny)". Mam tylko pytanie. Napięcie to 3-16v. Czy na dowolnym napięciu efekt generowany będzie taki sam? Już go dodałem na PCB.

    Może jeszcze jakieś pomysły?
  • #18 2402124
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    Cytat:
    Co do LED'ów to nadal nie łapie, bo jak na I/O ustawie HIGH a podam to na katode, to się nie zaświeci(i wiem wtedy, że tam jest HIGH).

    Jak nic nie podasz też się nie zaświeci. Wyobraź sobie, że sterujesz czymś poprzez ustawienie pinu jako wyjście w stanie wysokim. Jeśli zapomnisz wpisać do rejestru DDRx jedynki i wyrzucisz na PORTx jedynkę to dioda się nie zaświeci a Ty będziesz myślał, że program działa poprawnie. Na dokładkę sprawdzenie woltomierzem wykaże, że na tym pinie jest napięcie zbliżone do zasilającego. Tymczasem pin będzie ustawiony jako wejście z wewnętrznym podciąganiem. Jeśli nie wyłapiesz takiego błędu w trakcie uruchamiania układu na płytce to później gotowe urządzenie może się zachowywać w sposób nieprzewidywalny (czasem samo podciągnięcie na wejściu wystarcza zamiast wyjścia stanem wysokim a czasem nie). Oczywiście, nie śmiem Ci zarzucać popełniania takich "głupich" błędów ale mnie już się różne rzeczy zdarzały.
    Nie miałem przyjemności testować brzęczyka elektromagnetycznego, ponieważ kupiłem taki mały piezoceramiczny. Piszczy nawet zasilany wejściem z podciąganiem. Ma taką małą dziurkę w obudowie, którą można zakleić taśmą jak ma się dość hałasu. Wtedy piszczy cicho i przyjemnie.
  • #19 2403323
    avr_elektronik
    Poziom 14  
    Posty: 171
    Pomógł: 1
    Ocena: 1
    zapytam tak z ciekawosci pod jakimprogramem projektujesz plytke ?
  • #20 2403355
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    avr_elektronik napisał:
    zapytam tak z ciekawosci pod jakimprogramem projektujesz plytke ?


    ExpressPCB zapraszam na stronę producenta po nową wersję: http://www.expresspcb.com/

Podsumowanie tematu

✨ Omówiono projekt zestawu uruchomieniowego opartego na mikrokontrolerach ATMega8 i ATMega32, wyposażonego w wyświetlacz LCD 2x16, wyświetlacze 7-segmentowe, diody LED, klawiaturę 4x4 z mikrowłącznikami, stabilizowane źródło napięcia, rezonator kwarcowy 16 MHz oraz złącze ISP. Zasugerowano dodanie układu MAX232 do konwersji poziomów napięć dla transmisji szeregowej UART z komputerem, co umożliwia komunikację mikrokontrolera z PC. Dyskutowano o montażu kwarcu i ISP na stałe lub z możliwością odłączenia za pomocą zworki, co pozwala na elastyczne stosowanie różnych mikrokontrolerów. Poruszono temat pamięci zewnętrznej I2C lub SPI jako opcjonalnego rozszerzenia do nauki. Zwrócono uwagę na praktyczne aspekty montażu diod LED z rezystorami SMD 1206 oraz elastyczne sterowanie diodami, umożliwiające testowanie stanów aktywnych zarówno wysokich, jak i niskich, co ułatwia diagnostykę. Zaproponowano także dodanie brzęczyka elektromagnetycznego z generatorem dźwięku do sygnalizacji stanów aktywnych. Wskazano, że do symulacji programów AVR najlepszym narzędziem jest Atmel Studio. Projekt płytki PCB wykonano w programie ExpressPCB. Podkreślono, że w początkowej fazie nauki mikrokontrolera kwarc może być zastąpiony wewnętrznym oscylatorem RC, a większe mikrokontrolery warto stosować ze względu na bogatszy sprzęt wbudowany, mimo ograniczeń liczby cykli programowania pamięci Flash.
Wygenerowane przez model językowy.
REKLAMA