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

nowa atmega8 nie daje znaku życia, jest komunikacja

mentor_13 22 Lis 2010 21:29 1499 4
  • #1 8777304
    mentor_13
    Poziom 11  
    witam
    zaznaczę, że zaczynam z uC na co dzień bawię się PLC
    zmontowałem sobie układ na płytce stykowej
    wgrałem prosty program z kursu który znalazłem w necie

    /* przykład 2.1 "leds.c" */
    /* 8 diod LED przłączonych do portu D */
    /* ATmega 1MHz */

    #define F_CPU 1000000L
    #include <avr/io.h>
    #include <util/delay.h>

    int main(void)
    {
    /* Wszystkie linie portu D będą wyjściami */
    DDRD = 0xFF; /* 0xFF binarnie 1111 1111 */

    /* Początek nieskończonej pętli */
    while(1)
    {
    PORTD = 0xaa; /* 0xaa binarnie 1010 1010 */
    /* opóźnienie 0.33 sek. */
    _delay_ms(330);
    PORTD = 0x55; /* 0x55 binarnie 0101 0101 */
    /* opóźnienie 0.33 sek. */
    _delay_ms(330);
    }
    }

    program się zapisał

    [mentor@localhost avr_programy]$ avrdude -p atmega8 -c stk200 -U flash:w:myProject1.hex

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude: Device signature = 0x1e9307
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
    To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "myProject1.hex"
    avrdude: input file myProject1.hex auto detected as Intel Hex
    avrdude: writing flash (106 bytes):

    Writing | ################################################## | 100% 0.08s

    avrdude: 106 bytes of flash written
    avrdude: verifying flash memory against myProject1.hex:
    avrdude: load data flash data from input file myProject1.hex:
    avrdude: input file myProject1.hex auto detected as Intel Hex
    avrdude: input file myProject1.hex contains 106 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 0.09s

    avrdude: verifying ...
    avrdude: 106 bytes of flash verified

    avrdude: safemode: Fuses OK

    avrdude done. Thank you.


    niestety nic nie mruga
    na żadnym wyjściu nie ma stanu wysokiego
    znalazłem jakiś informacje na temat fuse bitów
    nawet w ramach desperacji wgrałem te ustawienia

    dla ustawienia atmega8 do pracy na wewn. 1MHz :
    avrdude -p atmega8 -c STK200 -U hfuse:w:0xD9:m -U lfuse:w:0xe1:m

    jeśli ktoś jest w stanie coś podpowiedzieć będę bardzo wdzięczny
    układ kupowałem wysyłkowo
    chciałbym go uruchomić bo z przesyłką nie jest taki tani, niestety do sklepu elektronicznego nie mam dostępu
    z góry dzięki za pomoc

    ps. działam na linuksie
    niestety na wirtualnej maszynie nie mam dostępu do portu lpt więc nie mogę odczytać fuse bitów
    pewnie można je rozpisać z tych słów hfuse:w:0xD9:m -U lfuse:w:0xe1:m
  • #2 8777361
    klops_mops
    Poziom 17  
    mentor_13 napisał:
    ps. działam na linuksie
    niestety na wirtualnej maszynie nie mam dostępu do portu lpt więc nie mogę odczytać fuse bitów
    pewnie można je rozpisać z tych słów hfuse:w:0xD9:m -U lfuse:w:0xe1:m


    to jak wgrałeś te ustawienia fusów? Poza tym wgrałeś to co było ustawione fabrycznie - na przyszłość polecam Ci http://www.engbedded.com/fusecalc .

    Atmega Ci żyje - spokojnie. Co do programu się nie wypowiem, bo nie poznałem tajników programowania w C ;( NIESTETY ;(

    PS zainteresuj się programatorem USBasp - banalny do wykonania, działa pod Linux'em.
  • #3 8777376
    mentor_13
    Poziom 11  
    z konsoli

    avrdude -p atmega8 -c STK200 -U hfuse:w:0xD9:m -U lfuse:w:0xe1:m

    strona którą podałeś generuje dla ustawień domyślnych takie same parametry jak wgrałem

    -U lfuse:w:0xe1:m -U hfuse:w:0xd9:m

    czyli fuse bity mam można powiedzieć fabryczne więc w czym problem

    układ zmontowany ze strony z kursu
    http://hobby.abxyz.bplaced.net/index.php?pid=4&aid=2

    dodam tylko, że pierwszy wsad jaki wgrałem był do atmegi 128 *domyślne ustawienia AVRStudio
  • #5 8777447
    mentor_13
    Poziom 11  
    @xury
    w pierwszym poście wkleiłem wynik z konsoli
    jest tam wyraźnie że wgrał się program i został zweryfikowany
    czyli mam konunikację
    chodzi o to że wyjścia nie reagują na wgrany program
    próbowałem kilku programów z w/w kursu
    i cały czas wyjścia układu zimne

    na potwierdzenie komunikacji z prockiem
    wklejam wydruk z konsoli zczytywania zawartości procka

    [mentor@localhost avr_programy]$ avrdude -p atmega8 -c stk200 -U flash:r:myProject7.hex:r

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude: Device signature = 0x1e9307
    avrdude: reading flash memory:

    Reading | ################################################## | 100% 6.36s

    avrdude: writing output file "myProject7.hex"

    avrdude: safemode: Fuses OK

    avrdude done. Thank you.


    plik zczytany znacznie różni się wielkością od wgrywanego
    zczytany 106B
    wgrywany 316B
    niestety mam za małe doświadczenie żeby stwierdzić czy to błąd


    ręce opadają
    idę spać
    mam nadzieję że jutro coś się ruszy


    no i ruszyło
    wyłączyłem komputer i układ ożył
    wniosek z tego taki że mój programator coś nie halo po dołączeniu z portu/wtyczki program odpala
    czy tak to normalnie działa tzn. żeby coś podtestować trzeba odłączać programator?
    ps mam najzyklejszy programator lpt 72HC244 standartu STK200
REKLAMA