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

Tiny2313/Usb AVR Isp błąd programowania

Gieneq 20 May 2010 18:30 3300 16
  • #1
    Gieneq
    Level 10  
    Po wielu próbach zmontowania własnego programatora kupiłem gotowy programator wymieniony w tytule, pod port USB. Po podłączeniu samoistnie zainstalowały się sterowniki, świecą się 2 diody sygnalizujące podłączenie i podawanie napięcia z usb na uC. Napisałem prosty program, który dawał efekt migania diody led oraz dla pewności ustawiłem 2 wyjścia portu B na 1. Bascom szybko skompilował na .hex, wgrałem gotowy program przez avrdude do uC lecz po zakończeniu procesu wyskoczyło okienko o treści:

    avrdude.exe: stk500v2_command(): command failed

    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude.exe done. Thank you.


    spojrzałem na programator zaświeciła się dioda (wgrywanie softu) więc uznałem, że jest to tylko przebieg procesu i na końcu wszystko się powiodło.

    Chciałem przetestować program. Podłączam napięcie, dioda led i nic. Zero reakcji. Nie jestem pewien dla czego nie działa.



    Możliwe, że uC jest uszkodzony bo testowałem na nim programatory stk 200 i połączenie rezystorami, program na symulatorze działał (chyba niemożliwe jest popełnienie w nim błędu).
    Nie mam innego procka, więc nie mam jak porównać.

    Soft:
    Code:

    $regfile = "attiny2313.dat"
    $crystal = 1000000

    Config Portb = Output
            Portb = &B11000000
    Config Portd = Input
            Portd = &B0000000

    Do

    If Pind.0 = 1 Then
    Toggle Portb.0
    End If
    Wait 2

    Loop
    End

    Będę wdzięczny za pomoc, bo koniec roku za pasem [35 dni] :D a tu trzeba oceny podciągnąć.

    Kod proszę umieścić w odpowiednich znacznikach!
    Robak
  • #2
    sstaniszewski
    Level 15  
    Masz procek ustawiony na wewnętrzny oscylator 1mhz załóż zworkę slow sck w programatorze ,jeżeli to programator Usb asp.
  • Helpful post
    #3
    mirekk36
    Level 42  
    Wypróbuj program MkAvrCalculator i zobacz czy widzi procka, czy go dobrze programuje itd. Akurat tego procka obsługuje ten program w pełni za free. Także jest obsługa tego programatora.

    Aha sprawdź czy jest inny tryb pracy programatora niż domyślny HID bo z nim bywają w tych programatorach problemy. Powinien być tryb z virtualnym portem COM. Wtdy w programie MkAvrCalculator wybierzesz ten programator i port i sprawdzisz.

    Jeśli będą komunikaty o błędach to będzie znaczyć, że byćmoże coś źle podłączasz.

    I nie patrz na "dziwne" diody, które coś tam pokazują - tylko na komunikaty. Jeśli masz, że failed - to znaczy że nic się nie zaprogramowało.
  • #4
    Gieneq
    Level 10  
    Hmm... to cudo jest nieco ograniczone i nie ma zwory na bodajże firmware.
    http://www.allegro.pl/item1040469943_programator_usb_avr_isp_stk500_stk500v2_tasma_idc.html
    http://www.microsense.pl/allegro/USB_AVR_ISP_II/manuals/USB_AVR_ISP_II_manual.pdf

    Co do trybów to jest opcja przełączania miedzy HID i COM. Opis jumperów w powyższym linku. Programik zaraz sprawdzę.

    Jak dodać znaczniki do kodu?

    Edit:
    Doba zainstalowałem sterowniki w trybie COM, ustawiłem na port com2, ściągnąłem ten programik. W cześci programator wybrałem stk500v2 (zapewne na takim pracuje przy wirtualnym com'ie), COM2, 0.5 - 1.0, procek wiadomo.
    Nic poza tym nie ustawiałem i wyskoczył "błąd AVRDUDE" :/
    Połączenia wyprowadzeń sprawdziłem i są dobre...
    A może problem tkwi w zapleczu programów. Jak pierwszy raz uruchomiłem avrdude wyskoczył błąd, wedle którego plik o rozszerzeniu chyba .llb nie może być znaleziony. Po zainstalowaniu avr studio problemy zniknęły.

    A i takie pytanie dla pewności czy nie trzeba aby zasilać dodatkowo uC? Wystarczy zasilanie z programatora (J1-on)??
  • #5
    mirekk36
    Level 42  
    Gieneq ---> no ciężko byłoby chyba zaprogramować jakikolwiek procesor jeśli nie byłby zasilany to chyba oczywiste.

    W tym programatorze masz zapewne możliwość zasilania układu cocelowego z prockiem napięciem +5V z USB więc co za problem ???

    Ale jeśli w żaden sposób nie zasiliłeś procka to nie dziw się, że nie można go zaprogramować.
  • #6
    Gieneq
    Level 10  
    Argh! dalej nie wiem co jest nie tak. Sprawdzałem połączenia setki razy, dałem zasilanie z usb, z zasilacza, sprawdziłem miernikiem 4.7V na procku i dalej to samo.
    Dla AVRdude-gui (dla COM i HID):
    Code:

    avrdude.exe: stk500v2_command(): command failed
    avrdude.exe: initialization failed, rc=-1
                 Double check connections and try again, or use -F to override
                 this check.


    avrdude.exe done.  Thank you.


    A dla McAvrCalculator (stk500-com-1.5MHz):
    Code:
    avrdude.exe: stk500v2_set_sck_period(): p = 1.0 us too small, using 1.1 us
    

    avrdude.exe: stk500v2_command(): command failed
    avrdude.exe: stk500v2_command(): command failed
    avrdude.exe: stk500v2_program_enable(): cannot get connection status
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions
    avrdude.exe: Device signature = 0x000000
    avrdude.exe: Yikes!  Invalid device signature.
    avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

    avrdude.exe done.  Thank you.


    Połączenia:
    Tiny2313/Usb AVR Isp błąd programowania

    Sprawdzałem w obu ustawieniach i dalej to samo.
    Zauważyłem że programator nieco się grzeje ale połączenia są raczej dobre.

    Czy uC może być spalony bądź uszkodzony w inny sposób?
    Czy możliwe jest że do programowania wymagany jest dodatkowy oscylator?
  • #7
    Henio83
    Level 12  
    Jeśli chodzi o sterowanie tego programatora (AVRDoper) z poziomu AVRDude w trybie COM to należy wydawać komendy typu
    "C:\WinAVR-20100110\bin\avrdude.exe" -c stk500v2 -P com1 -p m16 -U flash:w:"C:\WinAVR-20090313\projects\EvB AT16-32\ds1820_demo.hex":i -U flash:v:"C:\WinAVR-20090313\projects\EvB AT16-32\ds1820_demo.hex":i -U signature:r:signature.dat:r -e

    gdzie *.hex to odpowiednie pliki, m16 to np. ATmega16, ustawić należy odpowiedni port com

    A w ogóle najprościej to z jakiejś nakładki sterować np. AVRDude-gui 1.05 (też łatwo dla trybu pracy HID) a jak się chce wiedzieć jakimi komendami sterować AVRDude w trybie HID to najpierw zaprogramować z nakładki a później sobie skopiować :)

    Jak w AVRStudio chodzi a chce ktoś programować z AVRDude to dobrze przestawić fusebity na zegar wewnętrzny RC 8MHz (bo na zdjęciu widać, że nic oprócz ATmega8 i kabelków nie ma :) )
  • #8
    trol.six
    Level 31  
    Gieneq wrote:
    Będę wdzięczny za pomoc, bo koniec roku za pasem [35 dni] :D a tu trzeba oceny podciągnąć.

    W takiej sytuacji to ja bym kupił coś od dawna sprawdzonego i normalnego jak STK200 na LPT (prosty układ na 74HC244). Albo zrób sobie siprog do PonyProga pod port RS. Tylko że ten nie działa pod linuksem ani z AvrDude, ani z linuksowym ponyprogiem. Tzn u mnie nie działa, to tak przy okazji pisze. ;) Z tym że siprog nie bardzo nadaje się jeśli programujemy atmege z ustawionym dużym zegarem.

    A z tym problemem to ja bym pisał do sprzedawcy. Generalnie nie kupuje na aukcjach od ludzi którzy nie wiedzą co sprzedają. Bo nie ma potem żadnej pomocy. Kiedyś też chciałem kupić programator, to po kilku pytaniach o prace urządzania, i zero reakcji na pytania, zrobiłem sobie sam.

    Gieneq wrote:
    avrdude.exe: stk500v2_command(): command failed
    avrdude.exe: stk500v2_command(): command failed
    avrdude.exe: stk500v2_program_enable(): cannot get connection status
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions
    avrdude.exe: Device signature = 0x000000[/code]

    Widzę że się nic nie zmieniło w avrdude. Ciekawe skąd ta linijka:
    Code:
    avrdude.exe: AVR device initialized and ready to accept instructions


    Kiedy poprzednia linijka wyraźnie brzmi:
    Code:
    avrdude.exe: initialization failed, rc=-1


    Niestety ale avrduda przyłapałem ostatnio na tym że niby zgłasza że AVR device jest initialized, kiedy to nie jest initialized, jak testowałem inicjacje ze zwartym resetem. A tu widać to jak na dłoni. Może to powodować błędne zaprogramowanie procesora. Choć chyba bardzo pomaga sprawdzenie sygnatury.
  • #9
    Gieneq
    Level 10  
    Niestety ale nie mogę mieć programatorów na lpt. Port mam dostawiany i nie działa jak powinien. Zamierzam zaopatrzyć się w najbliższym czasie w notebook a tam tym bardziej będzie problem z portem lpt.
  • #10
    mirekk36
    Level 42  
    Gieneq --> zajrzyj, że pan na stronkę:

    http://www.fischl.de/usbasp/

    masz tam prosty schemat programatora USBASP. Ja osobiście ale też tysiące ludzi działają na nim bez problemów na różnych kompach z użyciem avrdude i nigdy nie miałem żadnych problemów

    stopień skomplikowania jest przecież niewielki

    tylko daj diody zenera (moim zdaniem) 3,3V zamiast 3,6V jak na schemacie. Szczególnie gdy będziesz miał notebooka

    jeszcze raz podam z kolei link do moich programatorków USBASP, których zrobiłem już z 5-6 szt i każdy ruszył od pierwszego kopa

    https://www.elektroda.pl/rtvforum/topic1333300.html
  • #11
    Gieneq
    Level 10  
    Faktycznie coś jest nie tak z tym programatorem. Zrobiłem dla pewności podstawkę z lutowanymi połączeniami przez gol-piy i dalej nie działa. Wedle sprzedawcy dedykowany program to AVRStudio ale kiedy próbuje ustawić dany programator to nawet go niewidzi.
    W trybie COM otwieram tool>connect... (stk500 or avrisp, auto) connect i wyskakuje szereg błędów >.< Ale aż dziwi mnie skoro wielu allegrowiczów kupyawało programatory tej serii i nikt nie narzeka.


    Ewentualnie jak sprawdzić czy procesor na pewno działa ??
  • #12
    trol.six
    Level 31  
    mirekk36 wrote:
    masz tam prosty schemat programatora USBASP

    Kolega nie złoży bo nie ma czym zaprogramować procka ;) W tym jest cały problem.
    I ma kupić kolejny, po czym się okaże że problem jest z portami albo z systemem a nie z programatorem. Skoro to laptop to może jakieś ustawienia w BIOSIE?

    A RS masz?

    Hm... też wydaje mi się że raczej mało prawdopodobne by sprzęt nie działał jeśli działać ma. Problem tylko jest taki, że ktoś kto tego nie robił może nie wiedzieć czemu to nie działa. A takich ludzi jest zdecydowana większość. A tutaj jest kilka problemów.

    Jeśli program ma test czy programator jest widziany, to najpierw trzeba się nad tym skupić by go widział. W aukcji pisze że programator może być widziany jako COM, więc teoretycznie w systemie powinien być widziany. W końcu jest dokumentacja do programatora, są jakieś zwory i są jakieś sterowniki. No chyba coś tam pisze.
  • #13
    Gieneq
    Level 10  
    Może nie sprecyzowałem. Używam trybu COM i po zainstalowaniu sterowników programator jest widziany przez system i w menadżerze wszystko się zgadza.

    https://obrazki.elektroda.pl/3_1275579033.jpg

    Na początku pracy z AVRStudio należy połączyć program z programatorem i tu się robi problem bo program nie znajduje programatora, a dokładnie:

    https://obrazki.elektroda.pl/55_1275579032.jpg

    Ewentualnie ja nie rozumiem komunikatów ...
  • #14
    trol.six
    Level 31  
    No, a ustawiłeś port tak jak pisze w pdf-ie?

    Jeśli chodzi o komunikaty, to ja ich też nie rozumiem za bardzo. Więc ja bym dał anuluj ;)
  • #15
    Gieneq
    Level 10  
    Prędkość transmisji 115200 b/s i w moim przypadku Port COM2. AVRStudio automatycznie znajduje port. Czyli wszystko jak jest napisane...
    Zrobił się ciekawy problem, bo wszystko jest dobrze a i tak nie działa :D
    Dodam, że instalowałem programator na portach usb z płyty głównej. Zdarza się że na dostawianych czy też przednich portach coś może nie działać.

    Quote:
    Skoro to laptop to może jakieś ustawienia w BIOSIE?


    To nie laptop tylko PC. Chyba pisałem wyżej system XP Home. A cóż można zmienić w biosie? Kiedyś bawiłem się z blokowaniem autoodpalania płyty windowsa przy formacie.
  • #16
    Henio83
    Level 12  
    Jeśli to programator taki jak AVRDoper (STK500v2) to obsługa USB jest tam zrealizowana programowo (wirtualna emulacja COM), nie ma więc możliwości z poziomu AVRStudio bezpośredniej aktualizacji firmware, więc w momencie podłączenia programatora w AVRStudio, przy próbie aktualizacji firmware trzeba dać ANULUJ. Wtedy nie będzie żadnych błędów. No i należy ustawić odpowiednią częstotliwość ISP w zależności od częstotliwości taktowania mikrokontrolera.

    Polecam skontaktować się z producentem, on najlepiej powinien chyba wiedzieć. Po co się męczyć jak jeden mail może rozwiązać sprawę?

    Ale z drugiej strony, jak sobie nie potrafimy dać rady z programatorem to nie wróży to łatwej drogi w świecie elektroniki...ale wszyscy się kiedyś uczyli:)
  • #17
    Gieneq
    Level 10  
    Bardzo dziękuje wszystkim za pomoc ale problem nie leżał w systemie, ani w procesorze, ani programatorze. Złącze KANDA okazało się wadliwe i większość wyprowadzeń była złączona z masą. Zlutowałem zastępczy łącznik i bez problemów wgrałem soft. :D Wcześniej nie zauważyłem tego, bo ciągłość obwodów była zachowana lecz zdziwiło mnie gdy po połączeniu sygnału ISP z napięciem zaświeciła się dioda sygnalizująca napięcie.