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

[ATmega168] Podłączenie programatora Atmel AVRISP mkII

rosenior 19 Cze 2011 00:50 3239 6
  • #1 9627967
    rosenior
    Poziom 10  
    Witam serdecznie.
    Mam trochę doświadczenia z programowaniem mikrokontrolerów, ale do tej pory tylko Arduino, konkretnie Arduino Pro Mini. Postanowiłem uniezależnić się od Arduino i zamówić kilkadziesiąt sztuk swojego projektu na PCB. Mam przygotowany schemat, teraz trzeba tylko zaprojektować płytkę.
    Ponieważ do tej pory korzystałem z Arduino i bootloadera Arduino, który umożliwiał łatwe zaprogramowanie przez zwykły kabel USB, nie mam żadnego doświadczenia w programowaniu "czystej" ATmegi168. Oczywiście swój program mam już gotowy, w pliku hex. Postanowiłem, że będę korzystać z oficjalnego programatora Atmela AVRISP mkII. I teraz moje pytanie - czy podłączenie go tak jak na poniższym schemacie będzie działać? Oto schemat: [ATmega168] Podłączenie programatora Atmel AVRISP mkII
    Chodzi mi konkretnie o to, czy podłączenie do pinów MISO, MOSI, SCK oraz RESET jest bezpośrednie czy trzeba tam coś jeszcze umieścić? Czytam instrukcję tego programatora Atmela i piszą tam, że
    Cytat:
    Rezystory podciągające na liniach MISO/MOSI/SCK nie powinny być mniejsze niż 820ohm
    Ja nie mam na tych liniach żadnego rezystora, czy to znaczy, że powinienem na każdej z tych linii dodać po jednym rezystorze ok. 1k i podłączyć je do VCC?

    Oprócz tego piszą, że
    Cytat:
    Aby programator mógł wejść w tryb programowania, konieczne jest sprowadzenie linii RESET w tryb niski
    Co to znaczy (stan niski)?

    No i ostatni interesujący mnie fragment instrukcji mówi, że
    Cytat:
    kondensator odsprzęgający nie powinien być większy niż 10uF
    Tyczy się to również linii RESET, na której nie mam żadnego kondensatora. Czy to znaczy, że mam tam dołożyć kondensator? Co to znaczy odsprzęgający?

    I jeszcze przy okazji pytanie dodatkowe - czy wiecie jaki jest rozstaw styków w tym programatorze Atmela?

    Wybaczcie niefachowe słownictwo, jeśli takie wystąpiło, elektronik ze mnie marny (co pewnie zauważyliście), zawsze tylko programowałem...

    Cytaty pochodzą z polskiej wersji instrukcji Atmela AVRISP mkII z JM elektronik.

    Pozdrawiam i z góry dzięki za pomoc,
    Daniel
  • Pomocny post
    #2 9628228
    tmf
    VIP Zasłużony dla elektroda
    Wygląda, że masz podłączone to dobrze. Co do rezystorów i kondensatorów na tych liniach - typowo ich nie ma i nie powinno ich być. Instrukcja mówi tylko, że jeśli z jakiś powodów (niezależnych od programowania) one są to nie powinny przekraczać podanych wartości granicznych. Także nic nie dodawaj. Stan niski znaczy, że napięcie jest zbliżone do ok. 0 V, w przeciwieństwie do stanu wysokiego, który znaczy, że napięcie jest zbliżone do Vcc. A k. odsprzęgający - to kondensator filtrujący zasilanie.
    Rozstaw styków masz standardowy 2,54mm, czyli zwykła listwa kołkowa jako gniazdo się nadaje, lub po przejściówce 1,27mm, czyli znowu listwa kołkowa tylko ta "węższa".

    Dodano po 1 [minuty]:

    BTW, zapewne będziesz to chciał połączyć z PC - pomyśl nad dodaniem chipu np. FTDI232R, który ci zrealizuje wygodny interfejs USB do PC, dodatkowo jego pozostałe piny można podłączyć pod ISP procesora, dzięki czemu można go programować bezpośrednio z programu, z pominięciem PC, no i możesz CPU taktować z wyjścia FTDI.
  • #3 9628894
    rosenior
    Poziom 10  
    Dzięki, bardzo mi pomogłeś. I dzięki za radę, muszę się nad tym zastanowić.

    Jeszcze jedno małe pytanie i będzie wszystko - na moim schemacie na linii RESET znajduje się rezystor 10k do VCC (lewy górny róg schematu). Czy takie połączenie jest konieczne czy mogę je pominąć? Prawdę mówiąc, nie wiem po co on tam jest - był na schemacie Arduino, więc go zostawiłem, ale zastanawiam się czy jest potrzebny, albo czy nawet nie będzie mi uniemożliwiał programowania. Więc pytanie - zostawić tak jak jest, czy w ogóle to pominąć i pin RESET zostawić wolny?
  • Pomocny post
    #4 9628944
    mirekk36
    Poziom 42  
    Ten rezystor jest i bywa bardzo potrzebny. On zabezpiecza przed przypadkowym resetowaniem. Zawsze warto go dać - właśnie 10K do VCC. A jeśli chodzi o programowanie - to skąd przyszedł ci pomysł, że on może przeszkadzać? to nie ma żadnego związku - spójrz zresztą w noty ATmela odnośnie zalecanego układu RESET. Rezystor zawsze tam jest.
  • Pomocny post
    #5 9628990
    tmf
    VIP Zasłużony dla elektroda
    Zalecanego, jak zalecanego, piszą, że nic nie jest potrzebne, ale jak ktoś się uprze to może zrobić tak jak pokazali w nocie. Ja się tam o sens tego rezystora za bardzo spierać nie będę, bo to koszt żaden, natomiast warto pamiętać, że rezystor podciągający ok. 20k na RESET już jest wbudowany. Więc zewnętrzny dałbym w środowisku o większych zakłóceniach, np. samochód, sterowanie przekaźnikami itd. W swoich układach zwykle zostawiam na płytce pady pod taki rezystor (SMD 0806), ale z lenistwa go nie przylutowywuje :) Za to mi się robi wygodny testpoint do linii Reset.
  • #6 9629011
    rosenior
    Poziom 10  
    Bardzo Wam obu dziękuję :) Czyli zostawiam wszystko tak jak jest na schemacie w takim razie.
  • #7 9630205
    janbernat
    Poziom 38  
    W zasadzie jeśli zależy nam na odporności na zakłócenia to do resetu nic nie powinno być podpięte.
    Nawet malutka ścieżka pracuje jako antena odbiorcza.
    Reset można zrobić wtedy pęsetą.
    Ale często mamy ISP- to wtedy i opornik i kondensator i dioda ew. żeby zmniejszyć prawdopodobieństwo zatrzaskiwania.
REKLAMA