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

[ATMEGA] Jak uruchomić programator ATMEGA stk500v2 na Windows 8 z AVRStudio i AVRDude?

pawelvod 18 Sty 2013 13:05 3744 21
  • #1 11805726
    pawelvod
    Poziom 18  
    Jak w zapytaniu. Czy da się zmusić do pracy ten programator w windows8?
    Zależy mi głównie na AVRStudio i AVRDude lub co kolwiek innego co ma wtyczkę do eclipsa...
  • #2 11805893
    piotrva
    VIP Zasłużony dla elektroda
    Temat wałkowany także w kontekście USBASP, bo problem się sprowadza do tego samego.
    Przykładowe rozwiązania:
    http://forum.and-tech.pl/viewtopic.php?p=2085#2085
    https://www.elektroda.pl/rtvforum/topic2465735.html#11798762
    A swoją drogą, Windows 8 był już na Twoim komputerze, czy sam instalowałeś?
  • #3 11806745
    pawelvod
    Poziom 18  
    Czytałem to. Wyłączyłem konieczność podpisanych sterowników. Zainstalowałem i nic... Zainstalowało mi się to jako libusb-32win drivers ->avr-doper i nie działa. Nie ma tak jak w windowsie xp możliwości przyporządkowania tego do portu com i ustalenia szybkości...
    Zmieniłem komputer więc windows 8 mam preinstalowany. Mam nadzieję że nie będe musiał zmieniać programatora...
  • #5 11807376
    pawelvod
    Poziom 18  
    W trybie HID (ze zworką) avrdure działa. Nie mogę jednak zmusić eclipsa i AVR Studio 6 do współpracy w tym trybie. Po odpięciu zworki (COM) wszystko zdycha j.w.
  • #6 11807625
    piotrva
    VIP Zasłużony dla elektroda
    I metoda z wyłączaniem sterowników nie działa? Na pewno wszystko robisz według wskazówek?
  • #8 11809358
    pawelvod
    Poziom 18  
    Ruszyło po odinstalowaniu tych sterowników z góry i zainstalowaniu innych. Teraz mam inny problem:).
    Eclipse coś nie widzi programtora. Wywala taki komunikat:
    Launching C:\Programowanie\WinAvr\bin\avrdude -pm16 -cstk500pp -PCOM4 -b115200 -Uflash:w:testavr.hex:a
    Output:
    Cytat:

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

    avrdude: stk500v2_command(): command failed
    avrdude: stk500hv_disable(): failed to leave programming mode
    avrdude finished
  • Pomocny post
    #9 11811060
    dkrzys
    Poziom 2  
    Witam,
    miałem podobny problem z arduino (identyczne komunikaty z avrdude).
    W moim przypadku okazało się, że prędkość transmisji trzeba ustawić na 57600.
  • #10 11811755
    pawelvod
    Poziom 18  
    DZIAŁA:):)
    Jest tylkokilka kolejnych problemów. Po naduszeniu przycisku AVR całość czeka jakieś 15-20sek. zanim zacznie programować. Potem programowanie przebiega w normalnym tempie. Upierdliwe to strasznie zwłaszcza gdy się usuwa jakieś bugi i każde przeprogramowanie układu to +20sek. na oczekiwanie. Inny problem to delay_ms które nie działa jak powinno. Robię blink diodami z częśtotliwością 1hz (_delay_ms(1000)) a napiernicza to koło 100hz na oko. W target hardware oczywiście ustawione 16Mhz W winavr ten sam program działa ok. Następny problem to: gdy wchodzę w project->properties->avrdure [ATMEGA] Jak uruchomić programator ATMEGA stk500v2 na Windows 8 z AVRStudio i AVRDude? to pojawia mi się taki ekran. Dopiero przy którejś próbie wejścia mogę zmienić ustaiwenia.

    Teraz patrzę że taka zwloka w starcie to problem całego AVRDURE. Tylko atmel studio zaczyna programowanie z kopyta.
  • #12 11811809
    pawelvod
    Poziom 18  
    No wiem tylko jak już próbuję skonfigurować środowisko to ciągnę w jednym wątku. Pewnie to jakieś ustawienie optymalizacji kodu na szybkie wykonywanie (kompilator analizuje i przyspiesza kod). Pamiętam że zmieniałem to kiedyś w make, ale jak to zrobić tutaj nie wiem...

    Tak się jeszcze zastanawiam czy ustawienia portu w sterownikach mogą mieć jakieś znaczenie. Zmieniłem częśtotliwośc na 57600 i ustawiłem bufory odczytu i zapisu na minimum bo byly na max. W notepadzie i winavr działa teraz szybko. W eclipse dalej 20 sek. od kliknięcia zaczyna programować Teraz zauważyłem że pierwszą wiadomością na konsoli (na którą tyle czeka) zanim zacznie programować jest :
    Cytat:
    avrdude: stk500_getsync(): not in sync: resp=0x00
  • #13 11811978
    piotrva
    VIP Zasłużony dla elektroda
    A próbowałeś jak przez AVRStudio idzie programowanie? Bo eclipse idzie przez AVRDude?
  • #14 11812034
    dkrzys
    Poziom 2  
    Wypróbuj inne parametry do avrdude.

    Cytat:
    avrdude: stk500_getsync(): not in sync: resp=0x00


    Jak widzisz on próbuje on najpierw połączyć się protokołem stk500 (nie udanie)
    dopiero potem próbuje stk500v2.

    Spróbuj innych ustawień parametru '-c' (programmer), podaj np.
    stk500v1 (to u mnie działa), lub stk500v2

    Dodano po 40 [minuty]:

    Cytat:
    Robię blink diodami z częśtotliwością 1hz (_delay_ms(1000)) a napiernicza to koło 100hz na oko.


    OT: Trochę przesadziłeś... ludzkie oko przestaje widzieć mruganie już przy 20Hz. (dlatego w transmisji obrazu stosowano 24 klatki na sek - trochę powyżej granicy żeby obraz był postrzegany jako płynny).

    Jeśli _delay_ms nie odczekuje tyle ile trzeba to znaczy tylko że podana do kompilacji wartość F_CPU jest inna niż faktyczne taktowanie procesora.

    Przykładowo przy taktowaniu kwarcem 16MHz F_CPU opcja do kompilatora będzie:
    -DF_CPU=16000000UL
  • #15 11813152
    pawelvod
    Poziom 18  
    :) Mam tam 3 diody i buzzer na całym porcie. Diody świecą słabiej niż ta kontrolna zasilania a buzzer pierdzi zamiast piszczeć:) Można też poruszać płytką z diodami i wtedy widać mruganie przy większych częstotliwościach. Widać też jak przenosisz wzrok z diody na inny obiekt szybko... Mrygają i to sporo za szybko:)
    Zmieniłem programator na taki STKV2 i pomogło... Nie czeka tylko zaczyna od razu programować. Jest tylko jeden problem. Robi to dokładnie co drugi raz.
    Po dobrym zaprogramowaniu następne (niezależnie od tego ile czekam) wywala taki błąd:
    Cytat:
    Launching C:\Programowanie\WinAvr\bin\avrdude -pm16 -cstk500v2 -Pcom4 -b57600 -u -Uflash:w:testavr.hex:a
    Output:
    avrdude: stk500_2_ReceiveMessage(): timeout
    avrdude execution aborted

    Co do kompilatora nie ma w ogóle info o częstotliwości procesora i pewnie tu problem. Nie bardzo wiem gdzie to dodać. Jedyne miejsce gdzie widzę wybór częstotliwości to AVR->Target Hardware.
    #define F_CPU 160000000UL
    nie daje efektu. Dziwne jest jeszcze to że (chyba też co drugi raz) wywala mi tą informację z obrazka z postu powyżej...
  • #16 11813234
    piotrva
    VIP Zasłużony dla elektroda
    Jakie środowisko? ATmelStudio5/6?
    Jeśli tak to musisz wejść w opcje kompilatora i zdefiniować globalnie stałą F_CPU. Kilka razy już o tym na forum zdaje się pisałem, nawet gdzieś screeny były.
    Bo takiej definicji plik z delay może nie widzieć...
  • #17 11813304
    pawelvod
    Poziom 18  
    Środowisko eclipse Build id: 20120920-0800... Już sobie z tym delay poradziłem. Teraz zostaje problem tego że programator programuje układ co drugi raz... Nawet jak nie czekam na komunikat że brak odpowiedzi z programatora i naduszę cancel to wchodzę w programowanie i jest ok. Przy następnej próbie brak odpowiedzi i tak w kółko. Sprawdziłem jeszcze... Jak pomiędzy programowaniami wyjmę i włożę programator do usb to programuje za każdym razem.
  • #18 11813556
    dkrzys
    Poziom 2  
    Próbuj sam avrdude - z jakimi parametrami będzie chodził dobrze za każdym razem.
    U mnie avrdude jest uruchamiane tak:
    avrdude -pm328p -cstk500v1 -P\\.\COM8 -b57600 -D -U "flash:w:C:\path\myhex.hex:i"

    Ja programuje arduino z m328, ale zwróć uwagę na opcję -D i "...:i" przy hex-ie, może o to chodzi
  • #19 11813641
    piotrva
    VIP Zasłużony dla elektroda
    Spróbuj jak zaprogramuje Ci spod avr studio - na niektórych pc avrdude muli strasznie...
  • #20 11816175
    pawelvod
    Poziom 18  
    Ok. To teraz najlepsze. Poeksperymentowałem i:
    notepad z winavr nie ma problemu z szybkim programowaniem. Za każdym razem procesor zaprogramowany bez problemu. Więc odpaliłem komendę z notepada z wiersza poelceń na pliku z eclipse i ...lipa. Okazuje się po kilku próbach że to plik hex generowany przez eclipsa sprawia że kolejne po nim programowanie trwa dłużej. Podmieniałem nazwy itd. Plik z eclipsa przy tym samym kodzie:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    jest kilkadziesiąt bajtów dłuższy i sprawia że programator po jego wgraniu (pierszy raz szybko) następne programowanie zaczyna od 20 sek. przerwy. Rozumie ktoś o co w tym wztskim może chodzić?
    Zmieniłem komputer i chciałem z duchem czasu przejść na eclipsa ze wszystkimi projektami... wygląda na to że jednak zostanę przy NP:)??
    Jakby ktoś spróbował pomóc to kod z kompilacji

    ECLIPSE:
    make all 
    Building file: ../main.c
    Invoking: AVR Compiler
    avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
    Finished building: ../main.c
     
    Building target: testavr.elf
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,testavr.map -mmcu=atmega16 -o "testavr.elf"  ./main.o   
    Finished building target: testavr.elf
     
    Invoking: AVR Create Extended Listing
    avr-objdump -h -S testavr.elf  >"testavr.lss"
    Finished building: testavr.lss
     
    Create Flash image (ihex format)
    avr-objcopy -R .eeprom -O ihex testavr.elf  "testavr.hex"
    Finished building: testavr.hex
     
    Create eeprom image (ihex format)
    avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex testavr.elf  "testavr.eep"
    Finished building: testavr.eep
     
    Invoking: Print Size
    avr-size --format=avr --mcu=atmega16 testavr.elf
    AVR Memory Usage
    ----------------
    Device: atmega16
    
    Program:     154 bytes (0.9% Full)
    (.text + .data + .bootloader)
    
    Data:          0 bytes (0.0% Full)
    (.data + .bss + .noinit)
    
    
    Finished building: sizedummy
     
    
    17:04:58 Build Finished (took 516ms)
    

    winavr:
    
    -------- begin --------
    avr-gcc (WinAVR 20100110) 4.3.3
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    Compiling C: main.c
    avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o 
    
    Linking: main.elf
    avr-gcc -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref     -lm
    
    Creating load file for Flash: main.hex
    avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature main.elf main.hex
    
    Creating load file for EEPROM: main.eep
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
    	--change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0
    
    Creating Extended Listing: main.lss
    avr-objdump -h -S -z main.elf > main.lss
    
    Creating Symbol Table: main.sym
    avr-nm -n main.elf > main.sym
    
    Size after:
    AVR Memory Usage
    ----------------
    Device: atmega16
    
    Program:     144 bytes (0.9% Full)
    (.text + .data + .bootloader)
    
    Data:          0 bytes (0.0% Full)
    (.data + .bss + .noinit)
    
    
    
    -------- end --------
    
    
    > Process Exit Code: 0
    > Time Taken: 00:00
    
  • #21 11816375
    McMonster
    Poziom 32  
    Pokaż jeszcze ustawienia projektu w Eclipse i wyjście z samego programowania.
  • #22 11816934
    pawelvod
    Poziom 18  
    AVRDure z Eclipse wypluwa to:
    
    
    Launching C:\Programowanie\WinAvr\bin\avrdude -pm16 -cstk500v2 -Pcom5 -Uflash:w:testavr.hex:a 
    Output:
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.16s
    
    avrdude: Device signature = 0x1e9403
    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: reading input file "testavr.hex"
    avrdude: input file testavr.hex auto detected as Intel Hex
    avrdude: writing flash (154 bytes):
    
    Writing | ################################################## | 100% 0.39s
    
    avrdude: 154 bytes of flash written
    avrdude: verifying flash memory against testavr.hex:
    avrdude: load data flash data from input file testavr.hex:
    avrdude: input file testavr.hex auto detected as Intel Hex
    avrdude: input file testavr.hex contains 154 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.30s
    
    avrdude: verifying ...
    avrdude: 154 bytes of flash verified
    
    avrdude done.  Thank you.
    
    avrdude finished

    Tak jak wcześniej. Co drugi raz jest przekraczany czas połączenia. Jak wyciągnę z usb programator i włożę działa za każdym razem.
    Działający za każdym razem winavr
    avrdude -p atmega16 -P com5     -c stk500v2    -U flash:w:main.hex 
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.14s
    
    avrdude: Device signature = 0x1e9403
    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: reading input file "main.hex"
    avrdude: input file main.hex auto detected as Intel Hex
    avrdude: writing flash (144 bytes):
    
    Writing | ################################################## | 100% 0.38s
    
    avrdude: 144 bytes of flash written
    avrdude: verifying flash memory against main.hex:
    avrdude: load data flash data from input file main.hex:
    avrdude: input file main.hex auto detected as Intel Hex
    avrdude: input file main.hex contains 144 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.30s
    
    avrdude: verifying ...
    avrdude: 144 bytes of flash verified
    
    avrdude done.  Thank you.
    
    
    > Process Exit Code: 0
    > Time Taken: 00:03
    

    I jak pisałem wcześniej. To czy szybko czy się zwiesi zależy od pliku (tzn co go generowało). Oba sposoby wywołane z wiersza poelceń działają szybko jak pracują na pliku z wianr. Jak podam plik z eclips oba działają w ten dziwny sposób. Pierwszy raz szybko a potem wolno chyba że wyjmę programator z usb i włożę.
REKLAMA