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

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

mic11 22 Lut 2010 18:13 9691 17
REKLAMA
  • #1 7734634
    mic11
    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:
    
    $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:

    
    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...
  • REKLAMA
  • #2 7734815
    alien_audio
    Poziom 21  
    Witam.
    Sprawdź miernikiem napięcie na procesorze.
    A jak podłączyłeś pin od reset ?. Może tu jest problem.
  • #3 7734856
    janbernat
    Poziom 38  
    1.jaką wartość ma opornik?
    2. Jak mniejszą niż 1kom to przepnij prawą nóżkę diody do + zasilania.
  • #4 7734975
    mic11
    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?
  • #5 7735210
    janbernat
    Poziom 38  
    Prawą- to znaczy to co widzę na obrazku- trochę z prawej i trochę w górze.
    + diody do +zasilania.
  • #6 7735254
    sp3ots
    Poziom 38  
    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.
  • REKLAMA
  • #7 7735443
    mic11
    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
  • #8 7735637
    sp3ots
    Poziom 38  
    Zastanawiam się nad fuse bitami które ustawiłeś.
    Tem program powinien działać na fusach fabrycznych:
    High - 0xD9
    Low - 0xA1
  • #9 7735719
    janbernat
    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?
  • #10 7735942
    mic11
    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.
  • REKLAMA
  • #11 7735996
    janbernat
    Poziom 38  
    Ale czy zmierzyłeś miernikiem co się dzieje po uruchomieniu programu?
    Zasilacze do telefonów są niedobre.
  • #12 7737754
    TheNooFly
    Poziom 11  
    $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
  • REKLAMA
  • #13 7740289
    janbernat
    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.
  • #14 7740866
    mic11
    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.
  • #15 7745562
    janbernat
    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ć.
  • #16 7746881
    Konto nie istnieje
    Poziom 1  
  • #17 7772630
    mic11
    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.


  • #18 7776759
    00gtw00
    Poziom 15  
    Problem rozwiązany :) Jako kolejne ćwiczenie proponuje zrobić żeby dioda płynnie się wygaszała i zapalała - PWM.
REKLAMA