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

Atmega8 - fusebity same się zmieniają podczas wgrywania programu

Ścibioor 29 29 Gru 2013 17:37 1512 8
  • #1 29 Gru 2013 17:37
    Ścibioor 29
    Poziom 17  

    Witam.

    Mam problem z fusebitami. Przykładowo: wgrywam najprostszy program do mrugania diodą LED, i zmieniam częstotliwość taktowania na wewnętrzne 8MHz. Wszystko działa tak, jak należy. Dokonuję zmiany w programie (wydłużenie czasu zapalenia diody itp) po czym wgrywam nowy program do mikrokontrolera. I tu pojawia się problem, gdyż układ nie działa poprawnie i sprawdzając fusebity widzę, że mam ustawione wewnętrznie 1MHz. Program sam mi je przestawił? Jest to uporczywe ciągłe to zmienianie, a ostatnio zablokowałem procesor (po podpięciu zewnetrznego kwarca procesor ożył i zobaczyłem że fusebity są ustawione na zewnętrzne źródło)
    Wie ktoś może w czym tkwi problem? Podczas pisania programu w ustawieniach projektu wybieram rodzaj procesora i ustawiam zawsze częstotliwość na 8MHz.

    Używam USBASP, wgrywam program i zmieniam fusebity w bascomie, a program piszę w avr studio.

    Pozdrawiam

    0 8
  • #2 05 Sty 2014 01:15
    rexina
    Poziom 17  

    A jakiego programu do wgrywania wsadu używasz?
    Spróbuj najpierw wgrać same fusebity - np. programem Avrdude, następnie plik .hex.

    0
  • #3 05 Sty 2014 09:23
    PiotrPitucha
    Poziom 33  

    Witam
    Jakie masz rozszerzenie pliku z AVRStudio?
    Ten program potrafi generować pliki wraz z fusami.
    Jeśli masz HEX to takie zjawisko nie może mieć miejsca.
    Piotr

    0
  • #5 05 Sty 2014 13:13
    Ścibioor 29
    Poziom 17  

    Witam, oto schemat:
    Atmega8 - fusebity same się zmieniają podczas wgrywania programu

    Ale nie wiem co on ma do rzeczy.
    Tak jak pisałem program piszę w AVR Studio (przestawiam się obecnie na Eclipse) i tam generuję plik .HEX i wgrywam go programem BASCOM. I po ponownym odczytaniu fusebitów widzę, że są przestawione i dlatego układ nie działa dobrze (111111 zamiast chyba 10100 dla wewnętrznego 8MHz). Po zmianie fusebitów na to 8MHz wszystko działa idealnie.

    A avrdude mi nie działa (pod Eclipse pokazuje mi że "ten mikrokontroler (atmega8) nie jest wspierany przez AVRDude a darmowe MKAVRKalkulator i pokazuje mi błąd "vrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc")

    0
  • #7 05 Sty 2014 13:59
    piotrva
    Moderator na urlopie...

    1. Eclipse odradzam - już lepiej Atmel Studio.
    2. BASCOM ma czasem opcję ustawiania fusebitów automatycznie z wgrywaniem pliku HEX.
    3. Na schemacie nie widzę złącza programatora
    4. Czy na pewno masz USBasp, a nie np. stk500 czy coś takiego?
    5. AVRDude powinno wykrywać programator, skoro działa, więc może jakieś problemy z programatorem?

    0
  • #8 05 Sty 2014 15:09
    Ścibioor 29
    Poziom 17  

    szczywronek napisał:
    Ten "load" na schemacie jest podłączony pod "sieciowe" 230V?


    Kurcze, powinienem był usunąć to bo tego aktualnie nie ma, tam mam diodę LED do celów testowych bo ma to być termostat a ten "load" miał symbolizować element wykonawczy podłączony do sieci.

    piotrva napisał:
    1. Eclipse odradzam - już lepiej Atmel Studio.
    2. BASCOM ma czasem opcję ustawiania fusebitów automatycznie z wgrywaniem pliku HEX.
    3. Na schemacie nie widzę złącza programatora
    4. Czy na pewno masz USBasp, a nie np. stk500 czy coś takiego?
    5. AVRDude powinno wykrywać programator, skoro działa, więc może jakieś problemy z programatorem?


    2. Nic nie zmieniałem w ustawieniach. Gdzie mogę to sprawdzić?
    3. Nie narysowałem po prostu (mój błąd)
    4. Tak, mam USBasp (sam robiłem) działa bez problemu
    5. Jakie problemy z programatorem? Pod Bascomem działa i programuje dobrze, przez komputer też jest zawsze wykrywany, więc nie wiem.

    0
  • #9 05 Sty 2014 16:01
    rexina
    Poziom 17  

    To spróbuj zainstalować samo avrdude, odpalić z konsoli i spróbować zaprogramować. Jeśli jest to USBasp to na pewno będzie działać.

    0