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

[AVR][AVRDUDE][USBASP] - wolne działanie programatora usbasp

Shiller 22 Lip 2010 03:43 4759 12
REKLAMA
  • #1 8317473
    Shiller
    Poziom 11  
    Witam,
    Jakiś czas temu przestał mi działać programator zakupiony na allegro. Złożyłem więc znany programator usbasp ze strony http://www.fischl.de/usbasp/. Wszystko działa, jest tylko problem z szybkością. Program o rozmiarze 6638 bajtów wgrywa się 31.22s, odczytuje w 28.31s. Czy szybkość działania nie powinna być większa? Mój poprzedni programator ( też na usb, cena ok 30 zł) działał znacznie szybciej. Szukałem w opcjach avrdude, nie znalazłem żadnej odpowiedzialnej za regulację szybkości pracy. Z góry dziękuję za pomoc.
  • REKLAMA
  • #2 8317501
    Konto nie istnieje
    Konto nie istnieje  
  • #3 8317695
    mirekk36
    Poziom 42  
    _marek napisał:
    Może wyjęcie zworki JP3 - slow sck pomoże


    Nawet nie ma co pomagać, ta zworka jest po to żeby zaprogramować procki, które domyślnie ustawione są na 1MHz i nie zawsze bez tej zworki chcą się programować. Wtedy dopiero się ją zakłada.

    No chyba, że ktoś cały czas pracuje na procku ustawionym na 1MHz (wewn. oscylator) to wtedy ma ZONKA.

    Pomóc może jeszcze opcja w programie mkAvrCalculator , która pomimo zdjętej zworki SLOWSCK pozwala programowo dla USBASP dobrać prędkośc. Dzięki temu może być nieco szybciej nawet na prockach taktowanych 1MHz.
    (ale żeby to sprawdzić musiałbyś mieć ATmega8 albo ATtiny2313, ATmega162 lub ATmega128) z tymi prockami program działa w pełni za FREE.
  • REKLAMA
  • #4 8318616
    Shiller
    Poziom 11  
    Dzięki za odpowiedzi. Nie mam pod ręką żadnego z wymienionych procesorów, tylko mega32, mega88 i tinny26. Wczoraj w chwili zakładania tego wątku nie zwróciłem na to uwagi, ale dzisiaj zauważyłem, że tak naprawdę programator chyba nie programuje układu. Poniżej zamieszczam wynik próby zaprogramowania atmegi32. Sygnaturę odczytuje prawidłowo i nic poza tym.
    
    F:\Tec\avrdude>avrdude -p m32 -c usbasp -U flash:w:trzmiel.hex
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.02s
    
    avrdude: Device signature = 0x1e9502
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
    
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: error: programm enable: target doesn't answer. 1
    avrdude: reading input file "trzmiel.hex"
    avrdude: input file trzmiel.hex auto detected as Intel Hex
    avrdude: writing flash (6638 bytes):
    
    Writing | ################################################## | 100% 31.22s
    
    
    
    avrdude: 6638 bytes of flash written
    avrdude: verifying flash memory against trzmiel.hex:
    avrdude: load data flash data from input file trzmiel.hex:
    avrdude: input file trzmiel.hex auto detected as Intel Hex
    avrdude: input file trzmiel.hex contains 6638 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 28.33s
    
    
    
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
             0x0c != 0xff
    avrdude: verification error; content mismatch
    
    avrdude: safemode: Verify error - unable to read lfuse properly. Programmer may
    not be reliable.
    avrdude: safemode: Verify error - unable to read lfuse properly. Programmer may
    not be reliable.
    avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
     exited programming mode
    
    avrdude done.  Thank you.
    
    
    F:\Tec\avrdude> 

    Samo odczytanie sygnatury przebiega poprawnie:


    F:\Tec\avrdude>avrdude -p m32 -c usbasp
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.02s
    
    avrdude: Device signature = 0x1e9502
    
    avrdude: safemode: Fuses OK
    
    avrdude done.  Thank you.

    Co do zwory JP3 - slow sck - cały czas jest zdjęta.
  • REKLAMA
  • #5 8318712
    mirekk36
    Poziom 42  
    A procka taktujesz jaką częstotliwością ?????

    bo jeśli domyślnie 1MHz to weźże załóż zworkę SLOWSCK - przestaw taktowanie np na 8MHz z wewn oscylatora, potem zdejmij zworkę i wtedy może zacząć ci normalnie pracować.

    Pisałem przecież wyżej że jeśli masz domyślnie 1MHz wewn oscylator to bez zworki większość procków ani drgnie przez USBASP.
  • #6 8318765
    Shiller
    Poziom 11  
    Procek jest taktowany częstotliwością 8MHz, był już wielokrotnie programowany przez inne programatory. Siedzi też cały czas w tym samym układzie, w którym był programowany.
  • #7 8318806
    mirekk36
    Poziom 42  
    Aaa no to teraz wyraziłeś się jasno. Ale też wynika z tego tylko jedno - jest jakaś kiszka i nie do końca wiadomo z czym. Może jeszcze sprawdź czy masz najnowszą wersję firware wgraną do USBASP. Ale też sprawdź jaką masz wersję AVRDUDE bo z tym też nieraz ludzie mają problemy.

    W razie czego możesz zassać mkAvrCalculator ale choćby tylko po to żeby zainstalować z niego poprawną na 10000% wersję AVRDUDE bo ma taką opcję ten program i na pewno zawsze dobrze działa.
  • #8 8320477
    Shiller
    Poziom 11  
    Pobrałem wersję demo MkAvrCalculator, usunąłem avrdude, które miałem, zainstalowałem avrdude poprzez program MkAvrCalculator i niestety nic nie pomogło. Dodam jeszcze, że opcja "Sprawdź podłączony AVR" w programie MkAvrCalculator w zakładce Programator AVR poprawnie odczytuje sygnaturę. Firmware załadowałem najnowszy, pobrany ze strony.

    Znalazłem w szafie procesor ATmega8. Po podłączeniu do programatora i skorzystaniu z programu MkAvrCalculator takie same objawy, odczytuje sygnaturę i nic poza tym.
    Kolejne spostrzeżenia:
    po założeniu zwory JP3 - slow sck, programator zaczął przechodzić przez proces programowania kończąc go informacją o poprawności programowania. Zaprogramowanie trwa dość szybko. Za to odczytanie pamięci Flash trwa długo i plik odczytany jest inny od tego wgrywanego do procesora. Między obydwoma plikami da się zauważyć wiele fragmentów wspólnych, całe ciągi znaków się powtarzają.
    Zmiana fusów przebiega bez problemu.
  • #9 8325442
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #10 8325672
    Shiller
    Poziom 11  
    I tak, i tak, ale nie miało to wpływu na zachowanie się programatora. Np. ATmega32 miała swoje zasilanie a ATmega8, o której pisałem była zasilana z programatora.
  • #11 8325696
    Konto nie istnieje
    Konto nie istnieje  
  • #12 8325762
    Shiller
    Poziom 11  
    Tak, w czasie gdy programowany układ był zasilany z zewnątrz zworka była zdjęta.
REKLAMA