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.

[Bascom] początkujący migająca dioda

22 Lut 2010 18:13 8779 17
  • Poziom 10  
    Witam.

    Mam taki problem: próbuję odpalić mój pierwszy prosty układzik na procesorze Atmega8-16PU ale coś nie wychodzi - dioda mam migać a nie miga.
    Jak to wszystko wygląda: do Atmegi podpięte zasilanie 5V z zasilacza zewnętrznego przez kondensatory 100nF (agnd i avcc też podpięte) do nogi PortB.1 podpięty rezystor, do rezystora anoda leda, katoda leda do gnd.

    Tak wygląda bardzo poważny układ testowy :) :
    [Bascom] początkujący migająca dioda

    Kod programu wygląda tak:
    Code:

    $regfile = "m8def.dat"                                      'zadeklarowanie użytego procesora
    $crystal = 1000000                                          'zadeklarowanie szybkości wewnętrznego kwarcu

    Config Portb = Output                                       'zadeklarowanie wszystkich portów b jako wyjście
            Portb = &B00000000                                  'ustalenie stanu początkowego portów na stan niski

       Do                                                       'początek nieskończonej pętli DO

         Portb.1 = 1                                            'portb.1 stan wysoki
         Waitms 500                                             'czekaj 0,5 sekundy
         Portb.1 = 0                                            'portb.1 stan niski
         Waitms 500                                             'czekaj 0,5 sekundy

       Loop                                                     'koniec nieskończonej pętli DO

    End


    lub zastępczo w pętli do-loop:

    Code:

    waitms 500
    toggle portb.1


    Tak wyglądają fusy:
    [Bascom] początkujący migająca dioda

    Procesor programuje się i w ogóle komunikuje z programatorem bez problemu.
    Po zaprogramowaniu procesora odpinam programator i podłączam zasilacz zewnętrzny (ładowarka Samsunga 5V/0,7A) i jedyne co się dzieje to dioda zaczyna słabo świecić.
    Co robię źle? bo nie mam już pomysłu...
  • Poziom 21  
    Witam.
    Sprawdź miernikiem napięcie na procesorze.
    A jak podłączyłeś pin od reset ?. Może tu jest problem.
  • Poziom 38  
    1.jaką wartość ma opornik?
    2. Jak mniejszą niż 1kom to przepnij prawą nóżkę diody do + zasilania.
  • Poziom 10  
    alien_audio : napięcie na procku 5,15V, a co do resetu do dopiero doczytałem i już podpiąłem go do vcc przy pomocy opornika 1k.

    janbernat: opornik przy diodzie ma 130 omów, prawą nóżkę tzn + czy - diody?
  • Poziom 38  
    Prawą- to znaczy to co widzę na obrazku- trochę z prawej i trochę w górze.
    + diody do +zasilania.
  • Poziom 36  
    Witam !
    Jeśli nadaj masz problemy z LED to wykonaj taki test:
    1. Wymontuj ATmegę8
    2. podłącz LED do +5V, nie do masy, przez rezystor ( ja daję rezystor 1k)
    3. aby sprawdzić czy LED masz odpowiednio podłączony wolną końcówkę led podłącz do masy.
    Jak włączysz zasilanie LED świeci to ok , jeśli nie świeci obróć LED, jeśli nadal nie świeci ? sprawdź napięcie 5V, diodę.
    4. Jeśli LED świeci , wyłącz napięcie , włóż procesor w podstawkę, włącz napięcie , LED świeci jest OK, LED nie świeci masz jakiś problem.
    Pozdrawiam. Stefan
    ps. odwrotne podłączenie diody LED do napięcia nie powoduje jej uszkodzenia.
  • Poziom 10  
    janbernat : próbowałem już w różnych konfiguracjach podłączyć diodę do nogi portB.1 zmieniając również konfigurację wszystkich portów B na input, ale w każdym wypadku było tak samo przy prawidłowej polaryzacji diody lekkie świecenie i to wszystko. (próbowałem również na innych portach - to samo), sprawdzałem również na innym procku - to samo.

    sp3ots : dioda sprawna, opornik dobrany prawie właściwy - prawie bo dałem 130omów a powinien być 150omów
  • Poziom 36  
    Zastanawiam się nad fuse bitami które ustawiłeś.
    Tem program powinien działać na fusach fabrycznych:
    High - 0xD9
    Low - 0xA1
  • Poziom 38  
    Ab owo- czyli od początku.
    Jak zasilasz tę płytkę?
    Bo to chyba nie program- tylko podłączenia.
    Gdy program się już wgrał i uruchomił- jakie jest wtedy napięcie zasilania?
  • Poziom 10  
    sp3ots : odhaczyłem CKOPT i fusy są fabryczne - nadal to samo

    janbernat : napięcie na procku po podłączeniu zasilacza zewnętrznego 5,15V - ale rzeczywiście coś może być nie tak z tym zasilaczem - jest to stara ładowarka do telefonów samsunga która daje 5V/0,7A. Jutro zorganizuję jakieś inne źródło i puszczę to jeszcze przez stabilizator 7805 żeby mieć pewność że to nie wina zasilania.
  • Poziom 38  
    Ale czy zmierzyłeś miernikiem co się dzieje po uruchomieniu programu?
    Zasilacze do telefonów są niedobre.
  • Poziom 11  
    Code:
    $regfile = "m8def.dat"                                      
    
    $crystal = 1000000                                         

    Config Portb.1 = Output                                     

    Do                             

    Set portb.1                                           
    waitms 500                                           
    reset portb.1                                           
    waitms 500                                           

    Loop                                                 

    End


    ****************************

    Spróbuj tak, a potem spróbuj zmienic na czestotliwosc (w Mhz) taka jaka Ci pisze na procesorze. Np Atmega8 16PU daj $Crystal = 16000000
  • Poziom 38  
    Zostaw program w spokoju- jest dobry.
    To jakiś błąd w podłączeniu.
    Po zaprogramowaniu wyjmij wtyczkę od programatora.
    Jak nie pomoże- zmierz napięcia na procesorze, diodzie i oporniku.
    Nie wiem czy ten programator podaje +5V z USB na układ czy nie.
  • Poziom 10  
    No więc nadal kicha. Zasilanie złożyłem dziś od nowa i bardziej "stabilnie" się nie da w warunkach biurkowych. Porządny zasilacz 12V/1A od routera wifi. Te 12V idzie na kondensatory 470uF i 100nF potem na stabilizator 7805 potem na kondensatory 100nF i 100uF i dalej na układ. Daj to twarde jak skała 5,05V. Ale objawy są takie same - tylko lekkie świecenie diody (napięcie na diodzie i rezystorze to 1,76V). nie wiem już co o tym myśleć. jutro zrobię testy na wszystkich czterech atmegach8 jakie mam ale przestaję już cokolwiek rozumieć - przecież to taki prościutki układ - może wina leży w fusach (bo rozumiem że eprom nie ma z tym nic wspólnego?). dobra ale dociekania odłóżmy do jutro bo muszę uciekać do pracy.

    p.s. tak ten programator podaj na układ 5V ale albo używam napięcia zasilania z programatora albo zamiennie z zasilacza zewnętrznego.
  • Poziom 38  
    Ponieważ te płytki są robione w Chinach- to nie ufaj im tak za bardzo.
    We własne podłączenia kabelków też nie wierz w 100%.
    Dasz sobie uciąć głowę albo choćby "klejnoty rodowe" ze LED idzie naprawdę do masy?
    A może coś tam nie kontaktuje?
    Weź miernik, przykręć albo wetknij "-" miernika do złącza ARK i zmierz wszystkie napięcia w układzie.
    Zaprogramuj, wyłącz wtyczkę od programatora, włącz zasilacz i zacznij mierzyć.
  • Poziom 35  
    mic11 napisał:
    No więc nadal kicha. Zasilanie złożyłem dziś od nowa i bardziej "stabilnie" się nie da........

    Czy ten kod podany wczesniej to kopiowales z Bascom, czy jest przepisany?
    Objawy, ktore podajesz to wyglada mi na uzycie:

    Waitus 500
    zamiast
    Waitms 500
    Przy relatywnie wysokiej czestotliwosci "mrugania" dioda wydaje sie swiecic ciagle lecz przydimmed, a i napiecia na wyjsciu (diodzie) z uwagi na bezwladnosc miernika wskaze stale lecz obnizone napiecie. Tylko oscyloskop albo probnik moze pokazac ci rzeczywisty przebieg na wyjsciu.
    Dla praktyki zmieniaj te czasy, daj dluzsze, zastosuj timer, wykorzystaj zewnetrzny input, nawet bez debounce (aby przekonac sie jaki to klopot sprawia nawet 'najlepszy' przycisk).
    Nalezy dolozyc takze szczegolnej uwagi aby dekarowana czestotliwosc taktowania processora ($crystal = xxxxxxxx) byla zgodna z faktyczna. W tym konkretnym przykladzie, ewentualny blad powiedzmy zamiast 1 MHz ustawiony na 8 MHz nie bylby az tak mocno drastyczny ale wyraznie dalby sie zauwazyc.

    'Walke' z fuse bitami pozostawilbym na pozniej do czasu opanowania podstawowych, prostych procesow.

    e marcus
  • Poziom 10  
    ok, dioda miga! typowe błędy i brak wiedzy amatora:
    1. cały czas przekonany byłem że wyjście w opcji config to 0 a wejście to 1 - co oczywiście jest nieprawdą, bo wyjście to 1 a wejście to 0
    2. drugi błąd w rozumowaniu to aż wstyd się przyznać: po zmianach jakich dokonywałem w programie naciskałem ikonę save i byłem przekonany że oprócz zapisu do pliku .bas dokonuje się również kompilacja do pliku .hex - co oczywiście jest nieprawdą - po zapisaniu pliku .bas trzeba "ręcznie" przeprowadzić kompilację naciskając F7.
    w każdym bądź razie dzięki za zainteresowanie i podpowiedzi. temat do zamknięcia.
  • Poziom 15  
    Problem rozwiązany :) Jako kolejne ćwiczenie proponuje zrobić żeby dioda płynnie się wygaszała i zapalała - PWM.