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.

[ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

ety 28 Kwi 2014 18:02 5004 10
  • #1 28 Kwi 2014 18:02
    ety
    Poziom 14  

    Zakupiłem programator USBasp oraz mikrokontroler ATMEGA88PA. Zainstalowałem również najnowszą wersję AtmelStudio. Problem jest następujący.

    Podłączam uC do programatora wg poniższego schematu (z wykorzystaniem pojedynczych kabelków i płytki stykowej).

    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

    Połączyłem jak wyżej. Teraz chciałbym po prostu sprawdzić czy mikrokontroler działa, czy połączenie jest poprawne. Czy muszę go zasilić dodatkowo 5V, czy w tej chwili zasilany jest przez programator?

    Pozwolę sobie zacytować:

    Cytat:

    No więc jak to jest z tymi minimalnymi wymaganiami?

    Niestety nie ma jednej możliwej odpowiedzi, ponieważ każda rodzina mikrokontrolerów, bądź nawet pojedynczy z nich może mieć swoją specyfikę - czytaj dokumentację!

    Ale są pewne zasady, które "w ciemno" możesz stosować:

    GND - podłączaj wszystkie piny do masy, nawet jeśli sąsiadują ze sobą.
    Vcc - podłączaj wszystkie piny do zasilania, nawet jeśli sąsiadują ze sobą.
    AVcc - podłączaj do zasilania Vcc przez filtr dolnoprzepustowy (sugerowany filtr LC)
    AGND - podłączaj do masy
    RESET - podłączaj do zasilania Vcc przez rezystor z przedziału 4,7k-10k

    Takie podejście zapewni Ci prawidłowe działanie praktycznie każdego mikrokontrolera.

    Magiczna literka A przed Vcc i GND, czyli AVcc i AGND oznacza, że te piny dotyczą zasilania części analogowej mikrokontrolera.

    http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html


    Wtedy podłączam Vcc i GND do szyn zasilania na płytce stykowej, a szyny do zasilacza laboratoryjnego, albo bateria+stabilizator. Czy w przypadku podłączania programatora również muszę podłączać RESET przez rezystor i dopiero do programatora? To samo z AVcc - tu muszę wziąć filtr LC (nie posiadam), a może wystarczy dławik 10uH?

    0 10
  • #2 28 Kwi 2014 18:22
    Alana
    Poziom 37  

    Zasilanie:
    Wiekszosc moich projektow w trakcie testow byla zasilana tylko i wylacznie z USBaspa, uklad polaczen taki jak u Ciebie.
    W USBasp-ach jest zworka wlaczajaca zasilanie z portu USB, szczegoly w instrukcji twojej sztuki.
    Reset - u mnie wisi w powietrzu i dziala, wedlug sztuki powinien byc rezystor podciagajacy do Vcc.
    Zasilanie czesci analogowej - moim zdaniem montowanie dlawika ma sens tylko jezeli robisz precyzyjne pomiary za pomoca przetwornika A/C, do zabawy i nauki zbedne.
    Zamiast dlawika mozesz sprobowac dac rezystor okolo 100 om, razem z kondensatorem bezposrednio przy AVcc da juz jakas filtracje. I jak juz sie bawic to dodatkowo dolozyc kondensator 100n pomiedzy Vref a mase.

    0
  • #3 28 Kwi 2014 18:40
    ety
    Poziom 14  

    Jedyna zworka na programatorze służy do wyboru pomiędzy napięciem 5V a 3.3V, innej nie widzę.

    Jeśli chodzi o aktualne połączenie, to coś jest nie tak, bo w avrdude nie wykrywa uC, poniżej screen:

    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

    Programator konkretnie ten: LINK

    0
  • #5 28 Kwi 2014 18:57
    ety
    Poziom 14  

    Pomiędzy Vcc a GND jest ok. 5.14V, więc chyba tyle ile powinno być. Po zmianie ustawienia zworki na 3.3V jest ok. 3.28V. Będę musiał później jeszcze raz podłączyć, może gdzieś się pomyliłem.

    0
  • #6 28 Kwi 2014 19:03
    LordBlick
    VIP Zasłużony dla elektroda

    Nie ma potrzeby łączyć AREF i Vcc, odpowiedni wybór źródła referencyjnego (w tym wewnętrznego) jest w odpowiednich rejestrach.

    0
  • #7 28 Kwi 2014 19:37
    Tomq
    Poziom 38  

    Piszesz, że masz Atmel studio. Wejdź w Device Programing i sprawdź czy Twój programator jest wykrywany i jaką ma ustawioną prędkość.
    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie




    Warning na Twoim screenie pokazuje, że "cannot set sck period".

    0
  • #8 28 Kwi 2014 19:51
    2422304
    Użytkownik usunął konto  
  • Pomocny post
    #10 28 Kwi 2014 23:07
    emarcus
    Poziom 35  

    ety napisał:
    Jedyna zworka na programatorze służy do wyboru pomiędzy napięciem 5V a 3.3V, innej nie widzę.

    Bo inne nie zostały zamontowane w miejscach oznaczonych JP2 i (JP3).
    Nowszy firmware supportuje auto SCK zgodnie z avrdude.conf; albo opcja -B.
    Jeżeli używasz avrdude z okna "<cmd" , to możesz spróbować zmniejszyć prędkość SCK przez stosowanie opcji -B np:

    avrdude -B 25 -c usbasp -p m88
    wartość 25 jest tu przykładowa; możesz dać więcej - czym wyższa -tym wolniejszy SCK.
    Jeżeli juz nawiążesz kommunikację z AVR to najpierw odczytaj fuse bity i zmień CKDIV8 (bit 7 w Fuse Low Byte). Być może wtedy nie będzie problemu.
    Fusebity odczytasz wchodząć w 'terminal mode'
    avrdude -B 25 -c usbasp -p m88 -t
    pause

    avrdude> d lfuse
    - aby odczytać low fuse
    albo analogicznie dla high fuse;
    avrdude> d hfuse
    po skończonej sesji w 'terminal mode' wpisz:
    exit

    Programatory ze starszym USB firmware zawsze zwracają warning aby update firmware; aby to zrobić musisz spowolnić SCK zworką, którą musiałbyś wmontować w miejscu przewidzianym na płytce. Nie wszyscy producenci jednakowo je oznaczaja, więc musiałbyś je zidentyfikować ze schematem (prawdopodobnie byłoby to JP2).

    e marcus

    1
  • #11 29 Kwi 2014 20:21
    ety
    Poziom 14  

    Tomq napisał:
    Piszesz, że masz Atmel studio. Wejdź w Device Programing i sprawdź czy Twój programator jest wykrywany i jaką ma ustawioną prędkość.
    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie




    Warning na Twoim screenie pokazuje, że "cannot set sck period".


    Programator nie jest wykrywany (a powinien być? to jest usbasp).

    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

    A może trzeba użyć Tools-Add target? Tylko, że tam mam do wyboru jedynie STK500.

    emarcus zaraz sprawdzę.

    Sprawdziłem też połączenia i otrzymuję (avrdude "połączyłem" z atmel studio):

    Code:
    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    
    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.01s

    avrdude.exe: Device signature = 0x1e930f
    avrdude.exe: Expected signature for ATmega88 is 1E 93 0A
                 Double check chip, or use -F to override this check.

    avrdude.exe done.  Thank you.


    Jest ostrzeżenie, ale jakby wykrywało go.

    Dodano po 13 [minuty]:

    Możliwe, że jest ok, choć ostrzeżenie jest dalej. W avrdude jest w sumie to samo, również bez opcji -B.

    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

    Dodano po 14 [minuty]:





    Chyba się okazało, że avrdude rozumie "m88" jako ATMEGA88, natomiast ja w tej chwili bawię się ATMEGA88PA. Zamiast tego wpisałem "m88p"... Efekt poniżej.

    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

    Dodano po 56 [sekundy]:

    Co wy na to?

    Dodano po 1 [minuty]:

    Teraz w Atmelu (połączonym z avrdude) otrzymuje:

    Code:

    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: AVR device initialized and ready to accept instructions

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

    avrdude.exe: Device signature = 0x1e930f
    avrdude.exe: erasing chip
    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: reading input file "”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”"
    avrdude.exe: error opening ”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”: Invalid argument
    avrdude.exe: input file ”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex” auto detected as invalid format
    avrdude.exe: can't open input file ”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”: Invalid argument
    avrdude.exe: read from file '”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”' failed

    avrdude.exe: safemode: Fuses OK (E:01, H:DF, L:62)

    avrdude.exe done.  Thank you.


    Dodano po 39 [minuty]:

    emarcus napisał:

    Fusebity odczytasz wchodząć w 'terminal mode'
    avrdude -B 25 -c usbasp -p m88 -t
    pause

    avrdude> d lfuse
    - aby odczytać low fuse
    albo analogicznie dla high fuse;
    avrdude> d hfuse
    po skończonej sesji w 'terminal mode' wpisz:
    exit


    U mnie wygląda to następująco:

    [ATMEGA88PA][USBASP] - Podstawowy schemat podłączenia. Zasilanie a programowanie

    Dodano po 15 [minuty]:

    Jeśli chodzi o problem z:

    Code:


    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: AVR device initialized and ready to accept instructions

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

    avrdude.exe: Device signature = 0x1e930f
    avrdude.exe: erasing chip
    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: reading input file "”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”"
    avrdude.exe: error opening ”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”: Invalid argument
    avrdude.exe: input file ”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex” auto detected as invalid format
    avrdude.exe: can't open input file ”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”: Invalid argument
    avrdude.exe: read from file '”C:\Users\6570b\Documents\Atmel Studio\6.1\GccApplication3\GccApplication3\Release\.hex”' failed

    avrdude.exe: safemode: Fuses OK (E:01, H:DF, L:62)

    avrdude.exe done.  Thank you.


    Pomogło usunięcie cudzysłowów w Tools-External Tools-Pole "Arguments".

    0