Arduino Polska Forum

Pełna wersja: Sterowniki Arduino i programowanie ATtiny85
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Koledzy proszę o pomoc bo tracę kolejny dzień i pomysły mi się skończyły.

Chciałbym zaprogramować ATtiny85 przez Arduino UNO używając go jako programatora.
Gdy to robię otrzymuję komunikat
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff
Podczas ładowania szkicu wystąpił błąd
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff

Wcześniej na tym komputerze programowałem w ten sam sposób ATtiny13, które wciąż mogę na nim bez problemowo programować, natomiast problem występuje tylko przy ATtiny85
Wgrywałem już różne sterowniki może gdzieś jakiś został i się jakoś gryzie - nie wiem.
Przeinstalowałem Arduino, usunąłem z menagera programów sterowniki, które wcześniej doinstalowałem czytając rady na różnych forach jednak nic to nie dało.
Co ciekawe na innym komputerze mogę to zrobić bez problemu.
Czy ktoś z Was może mi doradzić gdzie szukać problemu

Z góry dziękuję za pomoc.
Witam. Niedawno o tym pisałem, ale wątek wyparował. Sprawdzałeś może programem AVR Lab++ czy poprawnie wykrywa procki? Nowe procki przylatują z fabryki z wewnętrznym oscylatorem ustawionym na 1MHz, dlatego lepiej wybrać program, który to widzi/umożliwia obniżenie prędkości komunikacji. Ponadto zainwestuj dychę w programator USBASP, mi arduino wykrywa i programuje takie fabryczne procki attiny85.
Inna sprawa: na jednym komputerze miałem też problem z programowaniem przez USBASP, ale tylko z Arduino, zainstalowałem Arduino na drugim, nowsze sterowniki do USBASP i działa jak ta lala. Na starszym podmieniłem na inną wersję AVRDUDE i też już teraz działa. Pewnie różnic w sprzęcie i sterownikach miałem więcej, bo system ma już parę lat, ale że wiele różnych programów poza arduino (mają swoje AVRDUDE) w trybie USBASP działały. Także doszedłem do wniosku że to o te drivery/versję AVRDUDE w Arduino chodziło.
Jeżeli chodzi o programator USBASP to już w ramach desperacji taki zakupiłem, niestety arduino nie widzi go, natomiast w menadżerze urządzeń windowsa jest widoczny.
Gdzieś na forum wyczytałem by podmienić plik avrdude.exe na jakiś nowszy niestety dalej bez efektu.
Ściągnij program AVR LAB++, MKAVR Kalkulator (ten się łączy z siecią nie wiem co tam zbiera, można zablokować firewalllem, pozatym w demo można tylko zapisać Atmega8A, ale odczytać można wszystkie) lub inne i zobacz czy w ogóle widzi procka przez USBASP, można też używając samego AVRDUDE z okna poleceń, te wymienione to nakładki na AVRDUDE. Uruchamiasz wiersz poleceń wpisując cmd w wyszukiwarkę lub  lepiej w totalcmd będąc w katalogu AVRDUDE, jak nie jesteś w katalogu avrdude to do niego wchodzisz (polecenia cd katalog, cd.. cofa w górę, dysk C wybierasz C: i enter), jak już jesteś w katalogu to  wpisujesz polecenie "avrdude -p attiny85 -c usbasp -P usb" i zobacz czy prawidłowo odczytał sygnaturę, możesz też zamienić procesor na ATMega32, to i tak nic nie robi - no odczytuje tylko, komunikat powinien się zmienić:
Kod:
C:\AVRDUDE6>avrdude -p ATMega32 -c usbasp -P usb

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e930b (probably t85)
avrdude: Expected signature for ATmega32 is 1E 95 02
        Double check chip, or use -F to override this check.

avrdude done.  Thank you.


C:\AVRDUDE6>avrdude -p ATMega32 -c usbasp -P usb

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e930b (probably t85)
avrdude: Expected signature for ATmega32 is 1E 95 02
        Double check chip, or use -F to override this check.

avrdude done.  Thank you.

C:\AVRDUDE6>avrdude -p attiny85 -c usbasp -P usb

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x1e930b (probably t85)

avrdude: safemode: Fuses OK (E:FF, H:DF, L:F1)

avrdude done.  Thank you.

Powyżej zapis z dwóch USBASP, pierwszy jest jak widać ze starym firmware, przełączenie SCK odbywało się zworką. To samo zrób z tym AVRDUDE z katalogu arduino, będziesz wiedział, czy to problem tamtej wersji czy może robisz coś źle przy wyborze? Czasami dostaję też komunikat, że niewłaściwa sygnatura USBASP, tak po wielu godzinach zabawy jakby się wyłączał (ten starszy), wystarczy go podłączyć ponownie. Jak każdy pokazuje, że nic nie ma to albo konkretny procek jest uszkodzony, albo nie przestawiasz na SLOWSCK (a masz stary firmware - sprawdź podłączając do ISP działającego Arduino programator), albo sterowniki USBASP są niewłaściwe/niezgodne z wersją AVRDUDE. Można też uziemić procka przestawiając go na zewnętrzny kwarc, wtedy do płytki stykowej i do pinów XTAL podłącz jakiś kwarc 8-20 MHz i przywróć domyślne ustawienia AVRLAB. Zablokowanie pinu RST lub wyłączenie ISP to już kaplica dla przeciętnego użytkownika, odłóż za półkę, jak pasja się rozwinie zrobisz sobie/kupisz programator wysokonapięciowy i go odblokujesz.
Zrobiłem kilka prób i walczę dalej. Okazuje się że problem ten dotyczy tylko gdy chcę użyć Arduino jako programatora ISP, lub podłączam programator USBASP. Gdy programuję  samo Arduino z komputera wszystko działa.
Szkic kompiluję poprawnie, zmieniam w ustawieniach płytkę na ATtiny85, sprawdzam port USB i przestawiam na Arduino as ISP. połączenia też raczej dobre sprawdzam wielokrotnie. Może to jakieś ustawienia w bibliotekach ?
Może masz jeszcze jakieś pomysły?
proszę o pomoc bo zaraz coś lub kogoś pogryzę Undecided
P.s
Przed chwilą odkryłem, że na podłączony ATtiny mogę wgrać bootloader natomiast problem zaczyna się przy wgrywaniu nawet tak prostego szkicu jak miganie LED.
A jak próby z AVR LAB++? Wgrywanie bootloadera do attiny85 to tak na prawdę tylko ustawienie fuzbitów zgodnie z deklarowanym ustawieniem attiny.
(26-03-2018, 19:06)kaczakat napisał(a): [ -> ]A jak próby z  AVR LAB++? Wgrywanie bootloadera do attiny85 to tak na prawdę tylko ustawienie fuzbitów zgodnie z deklarowanym ustawieniem attiny.

Dokładnie ten sam problem z AVRDUDE (w załączniku foto)
Żeby Ci pomóc to musiałbyś porobić zdjęcia jak co masz podłączone, bo coś ostro masz nie halo albo sobie jaja ze mnie robisz. Podłącz procek przez USBASP i wtedy odpal AVR LAB. Ma wyglądać jak na fotce. Schemat podłączenia pinów RST,MOSI,MISO,SCK i dwóch zasilania znajdziesz w grafikach google.
...
Dobra, ręce mi opadły jak zobaczyłem fotkę - na spokojnie. Bootloader w większości płytek arduino służy do komunikacji przez UART i do wgrania programu typowym przyciskiem STRZAŁKA W PRAWO. Przy okazji ustawia też procek w tryb wskazany przez użytkownika podczas wgrywania bootloadera (np. częstotliwość w płytkach PRO MINI bo mogą być 8 lub 16MHz, a fabryczny procek ma 1MHz). Nie można wgrać bootloadera przez UART, musi być inny programator, np. USBASP. Procki tiny w ogóle nie mają UART i w Arduino nie ma programu, który można by wgrać (nie ma standardowo w Arduino IDE), wgranie bootloadera do Attiny85 to tylko ta druga część wgrywania typowego bootloadera, tylko ustawia procek, jego fuse bity. Łatwo to poznać, bo jak kompilujesz program dla UNO/NANO/PRO to z 32kb flash zostaje 30kb. Niektóre bootloadery AVR mają 512b, niektóre do 2048b. Po skompilowaniu programu dla attiny85 mam dokładnie 8192b dostępne na program, tzn. nie ma nic zajętego przez jakiś bootloader. Można wywalić bootloader w każdym procku AVR i programować go przez USBASP mając cały flash dla siebie, ale wtedy używasz zamiast strzałki opcji w menu "Upload using programmer" lub skrót CTR+SHIFT+U. Dla niektórych jest to niestety tak oczywiste, że nawet nie piszą o tym w poradnikach dedykowanych dla attiny: http://uczymy.edu.pl/wp/blog/2016/03/19/...duino-uno/ (pierwszy z google). A ktoś podłączy sobie, wybierze programator i nic się nie dzieje. I dostaje takie komunikaty jak w Twoim pierwszym poście.
Używasz dzidy w prawo, nie?
Nie no na pewno jaj sobie nie robię, a chętnie nawet mógłbym Tobie zapłacić za pomoc bo naprawdę nie mam kogo zapytać.
Ok więc zacząłem od początku ponieważ wcześniej robiłem to na 2 komputerach,  robiąc desperackie próby programowania ATtiny przez płytkę Arduino Uno - którą teraz sobie odpuszczę, nawet kupiłem nowe procesory myśląc, że te uszkodziłem i może się sam zapędziłem w przysłowiowy kozi róg.
Podłączam więc podłączam USB ASP pod komputer z windows 7 64bit i bezpośrednio do niego na podstawce podłączam ATtiny85 (zrzut na zał. foto)
W AVR Lab pojawia się komunikat:
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update
- Czy to oznacza że, potrzebuję zrobić update firmwaru programatora bo inaczej ich nie zaprogramuję?
- Jak widzisz  Arduino nie widzi teraz portu programatora USBASP czy to może być związane z powyższym komunikatem ?
OK, ale zerknij na mój zrzut ekranu i Twój, dlaczego nie wybierasz programatora USBASP tylko ARDUINO. Jak wskazujesz arduino i jakiś port COM to AVR LAB próbuje gadać z procesorem przez UART a nie przez programator USBASP, a to jest niemożliwe bo w attiny85 go nie masz. Jeśli USBASP ma stary soft i nie można ustawiać programowo wolniejszej prędkości to albo wybierz zworką slowSCK albo wgraj nowy soft. Wgranie nowego softu jest proste, ale na początek połącz się AVR LAB z attiny/zwykłe arduino UNO/jakikolwiek procek MEGA przez USBASP z poziomu AVRLAB. Trzeba sprawdzić czy programator jest OK. W najnowszym poście nie ma fotki.
Edit. OK, byłem szybszy od światła. Odczytał Ci procek, to jest ta część reading ########## 100% . Pierwsze linijki kodu dotyczą starego wsadu do programatora, to nie jest istotne po prostu programuje wolniej. Możesz działać dalej. Możesz też przewinąć to okno i zobaczyć resztę co odpisał AVRDUDE.
I dalej. W arduino jest wszystko OK, nie widzi portu USBASP, ale on jest, co więcej nie programujesz przez port, a przez programator, odrobinę niżej jak widać jest wybrany <Programator: "USBASP">, teraz powolutku przesuwasz myszkę w lewo i wybierasz z menu SZKIC: Upload Using Programmer (Wgraj Używając Programatora). Jeśli Ci nie wgra to oznacza, że programator nie działa w IDE Arduino. Wtedy tu wrócimy, ale możemy wgrać spoza Arduino, właśnie AVRLAB. W Arduino, z tej samej zakładki SZKIC wybierasz Export Compiled Binary (Eksportuj skompilowany program), Arduino wtedy nie wgrywa, lecz zapisuje plik do wgrania w katalogu projektu, następnie wracasz do AVR LAB, który jak na Twoim dzisiejszym screenie widać jednak działa z USBASP, w nim przechodzisz na zakładkę flash, jeśli nie jest wybrany attiny85 to wcześniej kliknij jeszcze raz "Odczytaj AVR", w sekcji poniżej, "WGRYWANIE" klikasz w <...> przy HEX, wskazujesz plik wygenerowany w katalogu Twojego projektu Arduino o tej samej nazwie lecz z rozszerzeniem HEX i klikasz <Wgraj HEX>.
Stron: 1 2