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

Atmega8, Bascom, Usbasp - dioda nie działa po zmianie fusebitów i programu

tomash_ppp 11 Maj 2015 14:06 1404 16
  • #1 14685781
    tomash_ppp
    Poziom 8  
    Witam
    Mam następujący problem. Na płytce stykowej mam Atmege8, zasilanie z zewnętrznego zasilacza, wszystkie kondensatory i rezystory podłączone tak jak jest zalecane. Programator Usbasp, Bascom wersja 2.0.7.3. Miałem 2 nowe Atmegi8. Próbowałem wgrać najprostszy możliwy program do migającej diody z przerwami 1s. Komunikacja z procesorem jest prawidłowa po wybraniu "identify". Wgrywam program, ok, dioda mruga. Tyle że troche za wolno. W fusebitach ustawiony jest wewnętrzny oscylator 1Mhz, a w programie mam napisane na 8Mhz. Zmieniam fusebit na wewnętrzny 8Mhz. Zapisuje. Ok, dioda mruga jak powinna z przerwami 1s. Zmieniam w programie na przerwy 500ms. Wgrywam program. Dioda świeci się ciągle, czyli coś nie gra. W programie mam najpierw set a potem reset pinu. Zamieniam, najpierw reset, potem set. Wgrywam, dioda gaśnie i nie świeci się. Robię kilka prostych zmian w programie i wgrywam, ale dioda ciągle jest zgaszona. Wygląda to jakby prawidłowo załadował sie program tylko za pierwszym razem. Z tym że za każdym razem jest komunikacja z procesorem i po wgraniu jest napisane ze ileś tam bajtów załadowane do pamięci flash. W końcu zmieniam na płytce stykowej procesor na tą drugą nową atmege8. Wgrywam program z mruganiem diody co 1s jak za pierwszym razem i jest to samo. Mruga tylko za wolno. Zmieniam fusebit na wewnętrzny oscylator 8Mhz i zapisuję. Dioda mruga jak powinna. Znowu zmianiam w programie na przerwy 500ms i wgrywam i znowu dioda się świeci ciągle. Robie kilka zmian w programie i wgrywam tak jak z pierwszym procesorem. Znowu wygląda jakby prawidłowo załadował się program tylko za pierwszym razem. W obu Atmegach udało sie wgrać program który działał tylko za pierwszym razem jak były puste a przy następnych załadowaniach programu procesor nie odpowiada. Nadmienie że rok temu robiłem projekt na uczelnie i postępowałem dokładnie tak samo i wszystko tak samo podłączałem i nie miałem takich problemów, a jedyna różnicą była chyba troche starsza wersja Bascoma.
    Proszę o pomoc, bo nie mam pojęcia w czym tkwi problem i z góry dziekuję.
  • #2 14685802
    Jaca
    Poziom 31  
    Podaj kod źródłowy. Coś mi się wydaje, że masz zapalenie i zgaszenie diody a potem waitms 500 :-)
  • #3 14685833
    tomash_ppp
    Poziom 8  
    Kod: text
    Zaloguj się, aby zobaczyć kod


    a po zmianie

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #4 14686103
    Jaca
    Poziom 31  
    A po powrocie do 1s działa poprawnie ? Czy w wersji z 500ms po 8 minutach i 20 sekundach zmienia się stan diody ?
  • #5 14686174
    tomash_ppp
    Poziom 8  
    Zarówno po wgraniu programu z 1s jak i 500ms nie pojawia się napięcie na tym pinie. Na innych pinach też sprawdzałem. Wygląda jakby procesor nie działał, ale wtedy by odpowiadał przy "identify" i program by sie ładował normalnie?
  • #6 14686253
    Jaca
    Poziom 31  
    Jaki stan ma końcówka RESET ? Podwiesiłeś ją przez opornik do VCC ? Programator masz cały czas wpięty w procek ?
  • #7 14686298
    tomash_ppp
    Poziom 8  
    Reset podpięty do Vcc przez opornik 10k. Jak wypne programator to nadal bez zmian.
  • #8 14686336
    Jaca
    Poziom 31  
    Przywrócenie fusebit'ów do stanu fabrycznego (1 MHz) też nie pomaga ? Zmień pin na inny lub ustaw cały PORTB jako Output i zamiast 1 bitu migaj wszystkimi: PORTB = 0, PORTB = 255.
  • #9 14686401
    tomash_ppp
    Poziom 8  
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Przywróciłem 1Mhz i zmieniłem kod i nadal nic.
  • #11 14686442
    tomash_ppp
    Poziom 8  
    Wgrałem kod i nic.
  • #12 14686502
    Jaca
    Poziom 31  
    Czy po programowaniu robisz weryfikację ? Jak zasilasz układ/programator ?

    ps. to musi być jakaś drobnostka w układzie bo wszystko zaczyna ocierać się o czary. :-)
  • #13 14686552
    tomash_ppp
    Poziom 8  
    No dobra, prosze sie nie śmiać... Po prostu nie kasowałem przed wgraniem nowego programu :) Ale nawet głupi problem to problem. No ale już po problemie.

    Pozdrawiam
  • #14 14686558
    dondu
    Moderator na urlopie...
    Ponieważ dopiero zaczynasz, od razu porzuć BASCOM i zacznij od języka C z tych powodów: http://mikrokontrolery.blogspot.com/2011/04/jaki-jezyk-wybrac.html
    Czytaj uważnie i rozważ każdy argument.

    Kurs C z kompilatorem online i przykładami: http://mikrokontrolery.blogspot.com/2011/02/kurs-jezyka-c-spis-tresci.html
    Kurs AVR: http://mikrokontrolery.blogspot.com/2011/03/drzaskowy-pamietnik-wstep.html

    i zaglądnij do spisu treści w/w strony.
  • #15 14686615
    Jaca
    Poziom 31  
    tomash_ppp napisał:
    No dobra, prosze sie nie śmiać... Po prostu nie kasowałem przed wgraniem nowego programu :) Ale nawet głupi problem to problem. No ale już po problemie.

    Pozdrawiam


    ... :D

    ps. Przejdź na C jak dondu radzi.
  • #16 14686671
    tomash_ppp
    Poziom 8  
    No wiem :) wszędzie to słyszę, chyba będę musiał.
  • #17 14686700
    dondu
    Moderator na urlopie...
    tomash_ppp napisał:
    No wiem :) wszędzie to słyszę, chyba będę musiał.

    Zrób to od razu, teraz, bez skrupułów, natychmiast, ... no już - odinstaluj BASCOM, .... jeszcze nie odinstalowałeś? :D :D :D

    ... bo inaczej z każdym dniem będzie ciężej podjąć tę decyzję.
REKLAMA