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

Problem z wypaleniem bootloadera arduino na atmega8 programatorem rs232

anslimak 20 Sep 2015 12:49 1452 6
  • #1
    anslimak
    Level 8  
    Witam. Mam zamiar wypalić bootloader arduino na atmega8 za pomocą programatora na rs232 takiego jak w linku ponizej ale nie wiem jaki programator wybrać w arduino ide oraz gdzie w atmedze podłączyć wyjście clk z programatora.

    https://obrazki.elektroda.pl/54_1167697868.jpg
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • Helpful post
    #2
    satanistik
    Level 27  
    Polecam poszukać pod hasłem atmega8 pinout w google lub pobrać pdf-a do procka.
    Na opisie wyprowadzeń są oznaczone sygnały programatora.
  • #3
    anslimak
    Level 8  
    A czy może ktoś wie jaki programator wybrać w arduino ide?
  • Helpful post
    #4
    emarcus
    Level 38  
    anslimak wrote:
    A czy może ktoś wie jaki programator wybrać w arduino ide?

    Zacznij od analizy "dlaczego potrzebujesz bootloader?".
    Jeżeli docelowo będziesz używał tego programatora w środowisku Arduino, to wpisywanie bootloadera do processora nie ma uzasadnionej potrzeby. Bootloader będzie tylko zajmował miejsce w pamięci flash processora.
    Bootloader umożliwia komunikację processora z PC poprzez port UART, ale do tego dodatkowo potrzebujesz; jezeli komunikacja z PC jest przez ComPort to potrzebujesz dopasowac poziomy napięc (Rs232 lub zastępczy układ tranzystorowy), albo jezeli używasz port USB to wymagany byłby specjalny adapter zbudowany na układzie FTDI lub zastęczy, albo też drugi microprocessor emulujący tą funkcję. Fabryczne versje lub clony Arduino maja taki adapter (w różnych versjach) wbudowany na płytce i podczas komunikacji korzystają z portu UART processora. Twój programator jest dostosowany do komunikacji z processorem przez port ICSP ( MISO, MOSI, SCK RST).
    Ponadto, aby był wykorzystany bootloader, wymagane jest odpowiednie ustawienie fusebitów.


    W odpowiedzi na pytanie: - pewnie tak jak niżej
    Problem z wypaleniem bootloadera arduino na atmega8 programatorem rs232

    e marcus
  • #5
    anslimak
    Level 8  
    Dziękuję użytkownikowi emarcus za udzielenie wyczerpującej odpowiedzi. Nie wiedziałem, że programowanie AVR jest możliwe bez bootloadera. A na przykład gdybym chciał wgrać bootloader z obsługą USB to za pomocą takiego programatora było by to możliwe.
  • Helpful post
    #6
    emarcus
    Level 38  
    anslimak wrote:
    A na przykład gdybym chciał wgrać bootloader z obsługą USB to za pomocą takiego programatora było by to możliwe.


    Każdym programatorem (jeżeli jest sprawny i poprawnie skonfigurowany soft do jego obsługi na przykład AvrDUDE) możesz ‘wgrac’ odpowiedni bootloader.
    Bootloader to też program dla processora jak każdy inny. Różnica polega na innym umiejscowieniu jego w pamięci flash. Normalny (roboczy, twój) program jest wpisywany na poczatku pamięci flash od addresu zerowego, natomiast bootloder jest wpisywany na końcu. Aby ten program był wykonywany jako pierwszy potrzebujesz to ustawic w fuse bitach, następnie jeżeli nie występuje potrzeba jego użycia, (po pewnym okresie odczekania) bootloader kieruje pracę processora do adresu zerowego, tam gdzie zwykle powinien znajdowac się twój program główny. Jeżeli wpiszesz do processora bootloader i nie zmienisz bitu BOOTRST, który fabrycznie jest (1), to nigdy nie zajdzie możliwośc jego użycia. Jeżeli jednak zmienisz ten fusebit i masz wgrany bootloader, a programujesz processor w standardzie ICSP to już przy pierwszym programowaniu cała zawartośc pamięci flash jest kasowana lącznie z twoim bootloaderem. Wgrany nawet poprawnie tą metodą program nigdy nie bedzie pracował bo reset/startup vektor jest ustawiony dla bootloadera, który już nie istnieje i pod tym addressem nic nie ma.

    Jeszcze jedna z wielu znaczących uwag:
    - program bootloadera zwykle jest tworzony pod określony processor i częstotliwośc jego pracy (dla arduino jest to 16mHz). Jeżeli twój processor pracuje z inną F - taktowania, to jest mierna szansa jego pracy z bootloaderem.

    Zaczym więc zaczniesz experymentowac z bootloaderem musisz możliwie dobrze orientowac się w tym temacie.

    emarcus
  • #7
    anslimak
    Level 8  
    Dziękuję za pomoc, temat uważam za zamknięty.