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

mój pierwszy układ- może ktoś sprawdzić - atmega16 i ds1820

25 Lut 2007 22:15 3968 12
  • Poziom 15  
    Witam.
    Jestem w trakcie tworzenia projektu dla wielu z was pewnie banalnego ale dla mnie pierwszego na mikrokontrolerze.

    Jest to termometr oparty na ds 1820, wyświetlający wynik na lcd. Ma to być docelowo układ, któremu ma się zadawać temperaturę (po to jest klawiatura - 4-to przyciskowa) i on w zależności od tego ma coś włączyć (układu wykonawczego na razie nie narysowałem.)

    Prosiłbym o rzucenie okiem czy poprawnie to popodpinałem - głównie lcd i isp.
    Wklejam kawałek kodu z bascoma, który konfiguruje mi porty do lcd.
    i podaje link do wyświetlacza, który tu będzie pracował
    http://sklep.avt.pl/photo/_pdf/wc1602a0.pdf?sess_id=4653aa4bbfb3755a21136f4963442b25

    i kod
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portd.0 , E = Portc.2 , Rs = Portc.1

    Będę wdzięczny za jakiekolwiek opinie. Układ jest skłądany z jakiegoś projektu znalezionego w sieci oraz z książki i pdfa do atmegi. A ponieważ jest to mój pierwszy rysunek w eagle to i z tym mi zeszło długo.

    Pozdrawiam

    i jeszcze link do schematu bo sie jakoś nie dołączył
    mój pierwszy układ- może ktoś sprawdzić - atmega16 i ds1820
  • Poziom 14  
    Konfiguracja wyświetlacza jest poprawna. Jeżeli używasz zewnętrznego rezonatora kwarcowego - musisz przestawić Fusebit'y mikrokontrolera. Chociaż może lepiej na początek nic nie przestawiaj bo będzie problem. W takim razie dodaj na początku intrukcję
    Code:
    $crystal = 1000000


    Pozdrawiam
  • Poziom 15  
    szeri88 napisał:
    Konfiguracja wyświetlacza jest poprawna. Jeżeli używasz zewnętrznego rezonatora kwarcowego - musisz przestawić Fusebit'y mikrokontrolera. Chociaż może lepiej na początek nic nie przestawiaj bo będzie problem. W takim razie dodaj na początku intrukcję
    Code:
    $crystal = 1000000


    Pozdrawiam

    mam wstawione
    $regfile = "m16def.dat"
    $crystal = 8000000

    bo taki mam kwarc.
  • Poziom 21  
    No a więc tak. Ja dałbym jeszcze elektrolit na wejściu 7805. Drugi między reset a masę. Samo ISP jest OK. Pin 5 od LCD (RW) połączyłeś z RS (pin 4) a powinien być ściągnięty do masy. Rezystor od podświetlenia ograniczy prąd do 10mA, a wyświetlacz pewnie wymaga ok. 100mA więc resytor powinien być ok. 50R. Reszta układu OK.
  • Poziom 32  
    Rezystor od DS1820 zmniejsz do 4k7. Końcówki wyświetlacza D4 - D7 podłącz do któregoś
    portu odpowiednio pod końcówki PX4 - PX7. Łatwiej oprogramować. Dodaj kondensatory
    odsprzęgające blisko ATMegi. Dodatkowy kondensator elektrolityczny na wyjściu mostka
    prostowniczego nie zaszkodzi. Nie bój się łączyć gniazda do programatora z np. LCD.
    Nieraz to będzie konieczne żeby wykorzystać tyle końcówek ile się da.
    Np. tutaj tak zrobiłem i działa w porządku.
    https://obrazki.elektroda.pl/16_1165854081.jpg
  • Poziom 15  
    Jj_Johnys napisał:
    No a więc tak. Ja dałbym jeszcze elektrolit na wejściu 7805. Drugi między reset a masę. Samo ISP jest OK. Pin 5 od LCD (RW) połączyłeś z RS (pin 4) a powinien być ściągnięty do masy. Rezystor od podświetlenia ograniczy prąd do 10mA, a wyświetlacz pewnie wymaga ok. 100mA więc resytor powinien być ok. 50R. Reszta układu OK.


    Elektrolit na wejściu - ok mogę dać.
    Ale co do pinu 5 - Wydaje mi się, że u mnie to on dynda niepodpięty.
    Co do rezystora ograniczającego - sprawdzę i poprawię.
  • Poziom 14  
    A zmieniałeś Fusebit'y? Jeżeli nie to układ korzysta z wewnętrznego oscylatora 1MHz.

    Pozdrawiam
  • Poziom 15  
    szod napisał:
    Rezystor od DS1820 zmniejsz do 4k7.

    ok. Zmniejszę
    szod napisał:

    Końcówki wyświetlacza D4 - D7 podłącz do któregoś
    portu odpowiednio pod końcówki PX4 - PX7. Łatwiej oprogramować. Dodaj kondensatory
    odsprzęgające blisko ATMegi.

    Czyli pojemności ok 100n na zasilaniu czy jeszcze gdzieś?
    szod napisał:

    Dodatkowy kondensator elektrolityczny na wyjściu mostka
    prostowniczego nie zaszkodzi.

    Tam już wstawiłem jedno 47 mikroF. Dać jeszcze jedno?
    szod napisał:

    Nie bój się łączyć gniazda do programatora z np. LCD.

    Zastanwiałem się nad tym, ale ten mój projekt - nie będzie bardziej rozbudowany - tzn dołożę mu jeszcze buzzer no i sterowanie przekaźnikiem - więc portów mi wystarczy.
    szod napisał:

    Nieraz to będzie konieczne żeby wykorzystać tyle końcówek ile się da.
    Np. tutaj tak zrobiłem i działa w porządku.
    https://obrazki.elektroda.pl/16_1165854081.jpg


    Masz na zasilaniu dławik 8,2 mH. Na jakimiś innym schemacie widziałem 10mH. Czy jest on niezbędny? Czy lepiej go dać?

    Na jednej płytce będzie atmega z transofrmatorem i 7805 oraz tranzystorem z przekaźnikioem no i buzzerem, na drugiej będzie lcd razem z klawiaturą.
  • Poziom 34  
    Cytat:
    Ale co do pinu 5 - Wydaje mi się, że u mnie to on dynda niepodpięty.

    Więc zobaczysz ciemność na wyświetlaczu. Połącz z masą.
    Cytat:
    Końcówki wyświetlacza D4 - D7 podłącz do któregoś
    portu odpowiednio pod końcówki PX4 - PX7. Łatwiej oprogramować.

    Z fragmentów programu wydedukowałem, że kolega uprawia Bascom. Nie musi więc nic programować w kwestii podłączenia wyświetlacza LCD.
  • Poziom 15  
    szeri88 napisał:
    A zmieniałeś Fusebit'y? Jeżeli nie to układ korzysta z wewnętrznego oscylatora 1MHz.

    Pozdrawiam

    Coś czuję , że jeszcze o tym Fusebit muszę poczytać. Bo chyba nic nie zmieniałem.

    Ale na razie mój projekt ogranicza się do części elektroniki, natopmaist program będzie powstawał w międzyczasie robienia i gromadzenia części.
    No i nauki tego wszystkiego czyli bascom avr i eagle :)
    Na razie bascom avr zmusiłem żeby mi lcd sterował no i program coś tam sobie liczy, działa przerwanie.
    Przy okazji mam pytanie. Da się jakoś zasymulować wskazania ds1820?
    Bo jak na razie to wsazuje mi dziwną wartość (symulator).

    Dodano po 5 [minuty]:

    M. S. napisał:
    Cytat:
    Ale co do pinu 5 - Wydaje mi się, że u mnie to on dynda niepodpięty.

    Więc zobaczysz ciemność na wyświetlaczu. Połącz z masą.
    Cytat:
    Końcówki wyświetlacza D4 - D7 podłącz do któregoś
    portu odpowiednio pod końcówki PX4 - PX7. Łatwiej oprogramować.

    Z fragmentów programu wydedukowałem, że kolega uprawia Bascom. Nie musi więc nic programować w kwestii podłączenia wyświetlacza LCD.


    Ok. więc pin 5 łączę z masą. Wolę oglądać jasność :)

    Program będę pisał faktycznie w bascomie, dlatego że assembler mnie rozłożył, W zasadzie poza zasymulowaniem dwóch błyskających diod nic mi się nie udało stworzyć. Nawet opóźnienia dobrać im nie umiałem.
    A że czas mnie goni to wybrałem to co prostsze.
  • Poziom 34  
    Cytat:
    Coś czuję , że jeszcze o tym Fusebit muszę poczytać. Bo chyba nic nie zmieniałem.

    Słusznie. Zabawa z fusami może skutecznie unieruchomić µC. Na razie zmień $crystal na 1000000 i będzie działać - nawet bez kwarcu.
  • Poziom 32  
    pawelj napisał:

    Czyli pojemności ok 100n na zasilaniu czy jeszcze gdzieś?

    Nie zaszkodzi dodatkowy elektrolit równolegle do ceramika.

    pawelj napisał:

    Tam już wstawiłem jedno 47 mikroF. Dać jeszcze jedno?

    Na wyjściu mostka daj coś większego. 470 - 1000u.

    pawelj napisał:

    Masz na zasilaniu dławik 8,2 mH. Na jakimiś innym schemacie widziałem 10mH. Czy jest on niezbędny? Czy lepiej go dać?

    Chodzi o jak najlepszą filtrację zasilania. Ogólnie przyjmnij zasadę że lepiej za dobrze odfiltrować
    zasilanie niż za słabo. Będziesz miał mniej niespodzianek. Nie ma co oszczędzać na kilku
    kondensatorach. To są grosze a oszczędzą Ci nerwów.

    pawelj napisał:

    Na jednej płytce będzie atmega z transofrmatorem i 7805 oraz tranzystorem z przekaźnikioem no i buzzerem, na drugiej będzie lcd razem z klawiaturą.

    Zadbaj też o poprawne poprowadzenie ścieżki masy. Będzie to miało wpływ na działanie.
  • Poziom 15  
    no i jeszcze jedna rzecz dotycząca bardziej eagle. Chciałem użyć funkcj auto - przy projektowaniu płytki. Straszna motanina mi wychodzi.
    Wyskakuje jakiś błąd "The Light edition of EAGLE can't perform the requested action See Help for further details".
    Co to może być i jak temu zaradzić...?

    pozdrawiam
    pawelj