Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ATMEL ATTiny2313 i programator USBasp - problem

Kubbaz 05 Mar 2008 15:31 6411 13
  • #1
    Kubbaz
    Level 26  
    Witam,

    posiadam sprawny programator USBasp (używany na okrągło pod ATMega8 i wyżej), chcę nim zaprogramować uC ATTiny2313 i niestety avrdude zwraca mi błąd - brak komunikacji z urządzeniem (uC):
    Code:

    D:\AVR projekty\...\program>avrdude -p t2313 -c usbasp -e -U flash:w:key.hex
    found 2 busses

    avrdude: error: programm enable: target doesn't answer. 1
    avrdude: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.


    avrdude done.  Thank you.




    > Process Exit Code: 1
    > Time Taken: 00:01


    Pod uC mam podłączony kwarc zegarkowy oraz kondensatory 2 x 22pF, ale ponieważ uC jest fabrycznie nowy, więc to nie ma żadnego znaczenia, bo i tak uC bryka na wewnętrznym RC 1MHz.
    uC jest zasilany z programatora USBasp -> 5V (USB); kiedy programuje inne uC, też używam zasilania z programatora i zawsze wystarczało, aby zaprogramować uC.
    Zatem jedyną możliwością jest złe podłączenie linii programujących do uC... ja podłączyłem je tak:

    pin uC: linia programowa z USBasp:
    1 !RESET
    10 GND
    17 MOSI
    18 MISO
    19 SCK
    20 VCC

    i mimo, że w dokumentacji ze strony ATMEL.com przy pinie 19 nie jest napisane SCK tylko UCSK, intuicyjnie właśnie pod ten pin podłączyłem linię SCK - czy aby poprawnie?

    Pzdr,
    Kuba.
  • #2
    don diego
    Level 32  
    Podłączenia są poprawne więc błąd musi być gdzie indziej.
  • #3
    Kubbaz
    Level 26  
    Raz jeszcze sprawdziłem poprawność połączeń pomiędzy programatorem i pinami uC - jest OK, sprawdziłem napięcia (względem masy-GND) na uC:

    VCC - 4.94V
    SCK - 0.96V
    MISO - 0.93V
    MOSI - 0.93V
    !RESET - 4.32V

    a może powinienem dać zewnętrzne pull-up'y na te linie programowe?

    Czy ktoś ma pomysł jak to ugryźć??
    Ewentualnie jeśli ktoś ma uC ATTiny2313 podłączony pod jakikolwiek programator ISP, to czy mógłby zmierzyć statycznie napięcia na pinach programowych lub też zerknąć czy są podpięte dodatkowe zewnętrzne pull-up'y?

    PS> Wszelkie pomiary na uC przeprowadzam przykładając sondę miernika bezpośrednio do wyprowadzeń nóżek uC z obudowy - jak najbliżej się da.
  • #4
    eddie.t.h
    Level 12  
    Hejka!

    A takie głupie pytanko... zworkę SlowCLK założyłeś?
  • #6
    mardoq
    Level 14  
    Ja jak robiłem płytkę do testowania softu pod t2313 to źle przylutowałem mikroswitcha (obrócony o 90^ i cały czas układ był w stanie resetu) i sie dziwiłem czemu układ sie dawał zaprogramować a układ nie działał.
    Po miesiącu spojrzałem na układ jeszcze raz i zorientowałem sie
  • #7
    Kubbaz
    Level 26  
    Chciałbym zmniejszyć częstotliwość taktowania ATTiny2313 z wewnętrznego RC 1MHz na zewnętrzny kwarc zegarkowy 32.768kHz (co daje ok. 30 razy wolniej). Jak ustawić Fuse Bits - ponieważ w dokumentacji ATMELa nie jest to napisane, jak skonfigurować Fuse Bits na Low-Frequency Crystal 32.768kHz?
  • #8
    MarasK
    Level 18  
    Jak to nie jest napisane?
    strona 24 od atmega8
    Code:
    Clock Sources The device has the following clock source options, selectable by Flash Fuse Bits as
    
    shown below. The clock from the selected source is input to the AVR clock generator,
    and routed to the appropriate modules.
    Note: 1. For all fuses “1” means unprogrammed while “0” means programmed.


    Code:
    Low-frequency Crystal
    
    Oscillator
    To use a 32.768 kHz watch crystal as the clock source for the device, the Low-frequency
    Crystal Oscillator must be selected by setting the CKSEL Fuses to “1001”. The
    crystal should be connected as shown in Figure 11. By programming the CKOPT Fuse,
    the user can enable internal capacitors on XTAL1 and XTAL2, thereby removing the
    need for external capacitors. The internal capacitors have a nominal value of 36 pF.
    When this Oscillator is selected, start-up times are determined by the SUT Fuses as
    shown in Table 6.
    Note: 1. These options should only be used if frequency stability at start-up is not important for
    the application.


    Myślę, że w ATTiny będzie podobnie jeśli nie identycznie.
  • #10
    crazy_phisic
    VIP Meritorious for electroda.pl
    Tiny2313 nie ma oddzielnego bloku odpowiedzialnego za Low-frequency Crystal Oscillator. Pozostaje skorzystać z opcji zewnętrznego kwarcu (dla takiej częstotliwości kondensatory nie są wymagane) lub praca w takt wewnętrznego sygnału zegarowego napędzającego układ Watchdog (128kHz). Szczegóły jak zwykle w dokumentacji.
  • #11
    Kubbaz
    Level 26  
    Po jakimś czasie poprawnego działania avrdude zwrócił mi błąd:
    Code:
    > "D:\AVR projekty\...\program\zaprogramuj.bat" 
    

    D:\AVR projekty\...\program>REM Plik  procedury programowania

    D:\AVR projekty\...\program>avrdude -p t2313 -c usbasp -e -U flash:w:key.hex
    found 2 busses

    avrdude: error: programm enable: target doesn't answer. 0
    avrdude: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.


    avrdude done.  Thank you.


    > Process Exit Code: 1
    > Time Taken: 00:01


    Gdy to inny uC (ATMega8 na innej PCB) programuje się ok:
    Code:

    > "D:\AVR projekty\...\program\zaprogramuj.bat"

    D:\AVR projekty\...\program>REM Plik  procedury programowania ATMega8

    D:\AVR projekty\...\program>avrdude -p m8 -c usbasp -e -U flash:w:key.hex
    found 2 busses

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.03s

    avrdude: Device signature = 0x1e9307
    avrdude: erasing chip
    avrdude: reading input file "key.hex"
    avrdude: input file key.hex auto detected as Intel Hex
    avrdude: writing flash (256 bytes):

    Writing | ################################################## | 100% 1.24s

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

    Reading | ################################################## | 100% 1.13s

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

    avrdude done.  Thank you.


    > Process Exit Code: 0
    > Time Taken: 00:03


    ATTiny2313 pracuje na wewnętrznym RC -> nie zmieniałem w żaden sposób Fuse Bits. Do tego po każdorazowym wyświetleniu powyższego komunikatu dla ATTiny zapala się ziolona LED na programatorze i system nie widzi programatora, trzeba go odłączyć od PC i włączyć ponownie do USB.
    Co może być tego przyczyną? Czyżby uC padł?
  • #12
    Ravender
    Level 20  
    Hm... Ogólnie nie udało mi się zaprogramowac 2313 przez AvrDude. Mialem duze problemy ze znalezieniem odpowiednich czasów. Teraz programuję przez PonyProg i jest pięknie.

    Jednak i przez PonyProg czasami byly problemy. Jak sie okazalo wystarczylo podpiąć zewnętrzne zasilanie do procka. Jednak ja programowalem przez LPT no ale moze tutaj tkwi problem.
  • #13
    Kubbaz
    Level 26  
    Hmm... nie wiem do końca jak o jest z PonyProg'iem - czy posiada własny interface, czy korzysta z avrdude+nakładka GUI. Poza tym tak jak wspominasz PonyProg jest kompatybilny z AVR-ISP programatorami STK200 i STK300 (i inne/wyższe klony tego programatora), natomiast już USBasp nie.

    Apropos czasów... nawiązując do wypowiedzi użytkownika eddie.t.h - z rozpędu przełączając złącze ISP (2x5pin) z PCB uC-a ATTiny2313 do PCB uC-a ATMega8, nie wyjąłem zworki z programatora USBasp - opcji Slow Clock - i programator działał pod ATMega8 z zewnętrznym kwarcem 8MHz... to jak to jest z tą opcją Slow Clock - programuje na wyższych częstotliwościach taktowania i ze zworką i bez niej?
  • #14
    Mariojas
    Level 17  
    Witam
    Ja mam troche inny problem, dość dziwny. Mam dokładnie tak samo podpiety procesor jak autor tematu, ale ja mam inny błąd. Mianowicie:

    Device signature = 0x3f0000
    Expected signature for ATtiny2313 is 1E 91 0A

    EDIT:
    Zauważyłem że przy kolejnych próbach zwraca inną sygnaturę. Czy wymagane są rezystory na liniach między programatorem a procesorem?

    EDIT2:
    Ale ze mnie gapa... Nie przylutowałem do płytki nóżki 19. Nie zauważyłem braku lutu :)