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

[atmega64] programuje sie, dalej nie startuje

grucha-r 28 Kwi 2010 09:50 1692 6
REKLAMA
  • #1 8011859
    grucha-r
    Poziom 10  
    Witam :)

    Zaczynam zabawę z atmega, zbudowałem sobie płytkę z programatorem,
    sprawdziłem ją ,znalazłem jedno zwarcie i zlikwidowałem przed osadzeniem elementów.

    Po osadzeniu elementów (bez procka ) podłączyłem do prądu sprawdziłem napięcia oporności itd .. wygląda na prawidłowe.

    Zainstalowałem kontroler ( w podstawce :) ) podłączyłem do kompa i prądu .

    Program się kompiluje , ładuje weryfikuje i ... nie uruchamia, sprawdzałem miernikiem wyjścia 5 i 6 portu D ale tam jest zawsze 0 v :/

    Czy to normalne ze programuje się a nie działa ?

    Kwarc ja na schemacie 4 MHz, zresztą wszystko jak na schemacie.....

    "programator" ze strony : http://www.captain.at/electronics/atmel-programmer/

    
    
    #define F_CPU 4000000L
    #include <avr/io.h>
    #include <util/delay.h>
    
    int main(void)
    {
        DDRD  |= _BV(5)|_BV(6);
        PORTD |= _BV(5);
        PORTD &= ~_BV(6);
    
    while (1)
        {
        PORTD ^=_BV(5);
        PORTD ^=_BV(6);
        _delay_ms(1000);
        }
    
    
    }
    
    
    

    Przebieg kompilacji i ładowania:

    avr-gcc -g -mmcu=atmega64 -Wall -Wstrict-prototypes -Os -mcall-prologues -Os -c avrledtest.c
    avr-gcc -g -mmcu=atmega64 -Wall -Wstrict-prototypes -Os -mcall-prologues -o avrledtest.out -Wl,-Map,avrledtest.map avrledtest.o
    avr-objcopy -R .eeprom -O ihex avrledtest.out avrledtest.hex
    uisp -dlpt=/dev/parport0 --erase -dprog=dapa
    Atmel AVR similar to the ATmega64 is found.
    Erasing device ...
    Reinitializing device
    Atmel AVR similar to the ATmega64 is found.
    uisp -dlpt=/dev/parport0 -dpart=ATmega64 --upload if=avrledtest.hex -dprog=dapa -v=3 --hash=32 --verify
    Reset inactive time (t_reset) 1000 us
    AVR Direct Parallel Access succeeded after 0 retries.
    Override signature bytes, device ATmega64 assumed.
    Vendor Code: 0x1e
    Part Family: 0x96
    Part Number: 0x02
    Atmel AVR ATmega64 is found.
    Page Write Enabled, size=256
    FLASH Write Delay (t_wd_flash): 12500 us
    EEPROM Write Delay (t_wd_eeprom): 25000 us
    Uploading: flash
    ########
    (total 244 bytes transferred in 0.21 s (1175 bytes/s)
    Polling: count = 1, min/avg/max = 4.70/4.70/4.70 ms
    Verifying: flash
    ########
    (total 244 bytes transferred in 0.24 s (999 bytes/s)
  • REKLAMA
  • #2 8011912
    tadzik85
    Poziom 38  
    Konfigurujesz port D a w pętli wykorzystujesz port B !.
  • REKLAMA
  • #3 8011941
    grucha-r
    Poziom 10  
    faktycznie chodzi o port D a nie B ,z 20 prób robiłem z softem tam szukając błędu to jedna z pierwszych wersji, oczywiście jeśli steruje portem D to brak efektów .
    do portu D jest podłączona dioda.



    Dodatkowa podpowiedź , na pinie reset występuje napięcie 3,3 V jesli "programator" jest podłączone do pc oraz 5V jeśli jest odłączony PC.

    Dodano po 1 [godziny] 5 [minuty]:

    Może macie jakieś inne pomysły na sprawdzenie dlaczego nie staruje ?
    Może startuje a nie widzę ?


    lap:/usr/src/avr/test# uisp -dprog=dapa --rd_fuses
    Atmel AVR similar to the ATmega64 is found.

    Fuse Low Byte = 0x62
    Fuse High Byte = 0x99
    Fuse Extended Byte = 0xff
    Calibration Byte = 0x83 -- Read Only
    Lock Bits = 0xff
    BLB12 -> 1
    BLB11 -> 1
    BLB02 -> 1
    BLB01 -> 1
    LB2 -> 1
    LB1 -> 1
  • REKLAMA
  • Pomocny post
    #4 8013370
    OlekM
    Poziom 17  
    Zadam parę pytań, żeby ożywić dyskusję :-)

    1. Jakie jest napięcie przed stabilizatorem i skąd się bierze ?

    2. Nóżka AGND jest połączona z GND, a nóżka AVCC z VCC (brakuje tego połączenia na przekazanym schemacie - a jest ono istotne) ?

    3. Po wyjęciu procesora z podstawki i podaniu 5V na pin do którego dołączona jest dioda - powinna się ona zaświecić (to zweryfikuje połączenia i kwestię zwarć - poza tym rezystor 10k jest nieco "za duży", coś rzędu 1k da lepszą jasność). Świeci się?

    4. Fusy są ustawione na wewnętrzny rezonator RC o częstotliwości 2 MHz - nic w tym złego, ale nie zgadza się ze stałą w programie :-)

    5. Kondensatory przy rezonatorze są większe niż sugeruje dokumentacja - ale w tej chwili to niezbyt istotne
  • REKLAMA
  • #5 8014778
    grucha-r
    Poziom 10  
    OlekM napisał:
    Zadam parę pytań, żeby ożywić dyskusję :-)

    1. Jakie jest napięcie przed stabilizatorem i skąd się bierze ?

    2. Nóżka AGND jest połączona z GND, a nóżka AVCC z VCC (brakuje tego połączenia na przekazanym schemacie - a jest ono istotne) ?

    3. Po wyjęciu procesora z podstawki i podaniu 5V na pin do którego dołączona jest dioda - powinna się ona zaświecić (to zweryfikuje połączenia i kwestię zwarć - poza tym rezystor 10k jest nieco "za duży", coś rzędu 1k da lepszą jasność). Świeci się?

    4. Fusy są ustawione na wewnętrzny rezonator RC o częstotliwości 2 MHz - nic w tym złego, ale nie zgadza się ze stałą w programie :-)

    5. Kondensatory przy rezonatorze są większe niż sugeruje dokumentacja - ale w tej chwili to niezbyt istotne

    ad1 12-14 v zasilacz od switch/hub z opisem 7.5v
    ad2 agnd jest fizycznie niepodłączona (tester zwarć (nie omomierz) pokazuje zwarcie z gnd) vcc podłączone do avcc
    ad3 słabo ale świeci
    ad4 :) racja też się zorientowałem , ale jak sam wspomniałeś nie przeszkadza tak samo jak bezsensownie podłączony rezonator... :)

    A teraz Gwóźdź wieczoru ...

    avr-gcc -mmcu=atmega64 nie jest zgodna z ATmega644 :/ , kompilacja -mmcu=atmega168 uruchamia się .....

    Atmega64 i Atmega644 to chyba w ogóle nie są zgodne ...ale to już temat dla fachowców od atmega :)
  • #6 8029338
    GienekS
    Poziom 32  
    To napięcie na resecie coś mi się nie podoba. Może programator blokuje pracę procesora ?
  • #7 8032095
    grucha-r
    Poziom 10  
    Dzięki rozwiązane :) atmega64 != atmega644 dla avr-gcc :)
REKLAMA