Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Najprostszy układ na attiny13

bdfhjk 30 Wrz 2007 21:58 3173 9
  • #1 30 Wrz 2007 21:58
    bdfhjk
    Poziom 11  

    Najprostszy układ na attiny13

    Czy nie popełniłem żadnego błędu w projektowaniu układu? Czy ten układ da się wykonać na "pająka" lub w inny amatorski sposób (bez wytrawiania)? Mam zamiar użyć podstawki DIP-08. Podejrzewam, że mam źle podłączony reset. Układ ma za zadanie pomóc mi w nauce programowania mikroprocesorów. W przyszłości mam zamiar zamienić jedną diodę na zworkę. Jeżeli trzeba by było w tym celu zmienić coś, np. usunąć rezystor, to proszę o napisanie.

  • Pomocny post
    #2 01 Paź 2007 04:25
    Paweł Es.
    Pomocny dla użytkowników

    Dobrze jest dać kondensatory blokujące zasilanie: np. po 100 nF (przy stabilizatorze - z obu stron i bezpośrednio przy procesorze)

  • Pomocny post
    #3 01 Paź 2007 07:10
    czarutek
    Poziom 34  

    Na RESET (pin 1) trzeba podać 5V przez rezystor 10k.

  • #4 01 Paź 2007 17:48
    bdfhjk
    Poziom 11  

    Kierując się powyższymi wskazówkami opracowałem drugą wersję
    Najprostszy układ na attiny13
    Dalej jednak nie wiem, czy jest to wykonalne bez płytki drukowanej. Jeśli tak, to czy dało by się też tak wykonać układ z atmega8 w plcc?

  • #5 02 Paź 2007 12:00
    Paweł Es.
    Pomocny dla użytkowników

    Kup sobie jakąś płytkę uniwersalną produkcji Cyfroniki

    www.cyfronika.com.pl

    i to powinno wystarczyć do realizacji prostych układów

  • #6 02 Paź 2007 21:27
    bdfhjk
    Poziom 11  

    Chciałbym, żeby jeszcze ktoś sprawdził przykładowy kod dla tego układu, i napisał, czy ostatecznie będzie on działał bez żadnych błędów.



    inicjalizacja:

    ;ustawienie portów 3 i 4 jako porty wyjścia
    sbi DDRB, 3
    sbi DDRB, 4

    ;ustawienie stanu niskiego na portach 3 i 4 (diody nie świecą)
    cbi PORTB, 3
    cbi PORTB, 4

    ;ustawienie stanu początkowego rejestrów kontroli diod
    sbr r21, 0x00
    sbr r22, 0x01

    ;ustawienie stanu początkowego licznika pętli
    reset_licznika:
    cbr r16, 0xff
    cbr r17, 0xff
    cbr r18, 0xff
    sbr r19, 0xff
    sbr r20, 0x0a


    ;pętle, czas trwania w sumie ok. 8.20s.
    p1:
    inc r16
    cp r16, r19
    breq p2
    rjmp p1

    p2:
    inc r17
    cp r17, r19
    breq p3
    sbr r16, 0x00
    rjmp p1

    p3:
    inc r18
    cp r18, r20
    breq ok
    sbr r17, 0x00
    sbr r16, 0x00
    rjmp p1
    ;------------------------------------------

    ok:
    cp r21, r22
    breq zgas_diody
    inc r21
    rjmp zapal_diody

    zapal_diody:
    sbi PORTB, 3
    sbi PORTB, 4
    rjmp reset_licznika

    zgas_diody:
    cbr r21, 0x01
    cbi PORTB, 3
    cbi PORTB, 4
    rjmp reset_licznika

  • #7 08 Paź 2007 17:56
    bdfhjk
    Poziom 11  

    Nie rozumiem jeszcze jednej rzeczy, czemu służy połączenie resetu z Vcc przez opornik 10kΩ. Na niektórych schematach jest, a na innych nie ma.

  • #8 08 Paź 2007 22:15
    shg
    Specjalista techniki cyfrowej

    bdfhjk napisał:
    Nie rozumiem jeszcze jednej rzeczy, czemu służy połączenie resetu z Vcc przez opornik 10kΩ. Na niektórych schematach jest, a na innych nie ma.

    AVRy posiadają wbudowane podciąganie resetu, ale jest ono strasznie słabe (a zatem podatne na zakłócenia z zewnątrz).
    Nawet z rezystorem 47k, przynajmniej w moim wypadku, dotknięcie palcem końcówki /RESET powoduje resetowanie układu.
    Rezystor daje się poto, żeby zapobiegać przypadkowym resetom. Oczywiście zwarcie tej końcówki do Vcc zapewni całkowitą odporność, ale z drugiej strony całkowicie uniemożliwia programowanie.
    Rezystor potrzebny jest też właśnie podczas programowania, bo wewnętrzny pull-up moze okazać się za słaby żeby przeładować pojemności kabli / pojemności wewnętrzne układu w sensownym czasie, ale to w wypadku gdy programator ma do końcówki /RESET podpięte wyjście typu 'otwarty kolektor'.

    Stosowanie samego rezystora nie jest oczywiście najszczęśliwszym rozwiązaniem, lepiej dołożyć jeszcze kondensator do masy, żeby przedłużyć trochę czas resetu po włączeniu zasilania, ale to może utrudniać programowanie. Można oczywiście nie korzystać z zewnętrznego resetu, tylko z wbudowanego BODa.

    Kondensator 100nF przy układzie, i przy stabilizatorze, chyba że oba te elementy znajdują się bardzo blisko siebie, wtedy wystarczy jeden.
    Nie pasuje mi trochę koncepcja tego. Brak jest wyłącznika zasilania, a stosowana jest bateria 9V, której cechami charakterystycznymi są między innymi mała pojemność i wysoka cena.
    Zamiast tego możesz użyć trzech baterii AAA, AA, czy nawet dwóch w wypadku wersji V (pracuje od 1.8V) układu.
    Jeżeli procesor będzie przechodził w stan uśpienia w celu oszczędzania energii, to może się uszkodzić. Stabilizatory serii 78xx przy obciążeniu mniejszym niż minimalny prąd potrafią podać na wyjście napięcie niewiele mniejsze od wejściowego (zależy od egzemplarza / producenta). W praktyce będzie to wyglądało tak, że układ w stanie uśpienia zacznie pobierać za mało prądu, stabilizator poda wyższe napięcie i wzrośnie pobór prądu przez uC (który być może się w tej sytuacji spali), napięcie na stabilizatorze wróci do wartości nominalnej, abo niewiele większej, ale pobór prądu już wcale taki mały nie będzie (rzędu mA).

    Możesz na przykład, tak jak ja to kiedyś zrobiłem zasilać układ z niższego napięcia (u mnie były dwa akumulatory AAA), a na czas programowania odłączać zasilanie bateryjne i podłączyć zasilanie z programatora (5V), albo zamiast baterii podłączać zasilanie 5V, oczywiście to pod warunkiem, że podłączone do uC elementy z założenia będą również poprawnie pracować i przy takim napięciu.

    Niezłym rozwiązaniem mogło by być zastosowanie w programatorze translatorów poziomów napięć. Taki na przykład MAX3002 pasował by tu chyba idealnie. Od strony programatora zasilanie 5V, a od strony układu zasilanie z układu (1.8V .. 5V).

  • #9 09 Paź 2007 17:16
    bdfhjk
    Poziom 11  

    [quote="shg"]

    /\ napisał:

    Zamiast tego możesz użyć trzech baterii AAA, AA, czy nawet dwóch w wypadku wersji V (pracuje od 1.8V) układu.

    - chodzi o stabilizator w wersji V czy µP? Czy można by dołączyć diodę LED za stabilizatorem, jako rodzaj "zabezpieczenia" stałości napięcia? Co to jest podciąganie resetu?

  • Pomocny post
    #10 09 Paź 2007 18:21
    shg
    Specjalista techniki cyfrowej

    Wersja procesora (ATtiny13V).
    Można podłączyć LEDa, z odpowiednim rezystorem prąd można ustalić na poziomie gwarantującym prawidłową pracę stabilizatora. Tylko że niestety wpływ na energooszczędność układu będzie powiedzmy niekorzystny.

    Podciąganie resetu znaczy że pin /RESET jest utrzymywany na potencjale napięcia zasilania przez jakiś rezystor. Rzecz w tym, że piny wejściowe same z siebie pobierają bardzo mały prąd (prawie żaden) gdy poda się na nie jakiś stan logiczny, albo inaczej, mają wysoką impedancję wejściową. Problemem są tutaj tzw. prądy upływu. W strukturze układu wejścia nie są od siebie odizolowane jakimś specjalnie dobrym izolatorem i jeżeli tylko będzie między nimi jakaś różnica potencjału to popłynie prąd (upływu). Prąd ten może też płynąć (i najczęściej tak jest) przez wbudowaną diodę zabezpieczającą przed wyładowaniami elektrostatycznymi.
    Ten niewielki prąd w połączeniu z dużą rezystancją wejściową będzie powodował że na wejściu ustali się jakiś potencjał (prawo Ohma), jeżeli prąd i rezystancja są dostatecznie duże, to w końcu potencjał ten moze być na tyle duży, że zostanie potraktowany przez ukłądy logiki jako 1 lub 0. Piny mają też jakąś niewielką pojemność wejściową (głównie to zasługa diody zabezpieczającej), przez co takie wejście po włączeniu zasilania będzie powolutku "płynęło" w stronę potencjału masy lub zasilania (pojemność wejściowa będzie ładowana przez prąd upływu). Taki proces może trwać nawet kilka godzin. Już mi się podobny efekt zdarzył, ale akurat nie w uC, tylko we wzmacniaczu, który miał wejście o ogromnej impedancji (~1Tohm) i separację składowej stałej na szeregowym kondensatorze. Po kilku godzinach przestawał działać, po dotknięciu palcem ścieżek znów pracował normalnie. Okazało się, że prądy upływu wejść ładowały kondensatory separujące aż do momentu gdy wejście wzmacniacza się "nasycało" (dochodziło do potencjału, przy którym wzmacniacz nie mógł już normalnie pracować).

    Rezystor podciągający ma zatem za zadanie ustalić stały znany potencjał, klasyfikowany jako jeden z pożądanych stanów logicznych, tak żeby pomimo prądów upływu nie ulegał on zmianie (znowu prawo Ohma).

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME