• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Probem z USBasp
#1
Witam!

Przekopałem już chyba pół internetu, aż zdecydowałem się dodać post na forum. Mam ogromną nadzieję że razem jakoś damy radę Smile. Ale od początku...
Zaprojektowałem sobie prosty sterownik- trzy tranzystory NPN sterowane z pinów PWM, DipSwitch adresowy, Atmega328, dekoder SN7517 i LM7805. Program napisałem w Arduino IDE. Całe urządzenie śmiga aż miło. Ale jest jedno ale- potrzebuję 100 takich urządzeń, a wgrywanie projektu do każdego po kolei za pomocą arduino (wypalając bootloadery i przekładając scalaki) delikatnie mówiąc mija się z celem. Więc projektując płytkę zadbałem o wyprowadzenia pod programator. Zdecydowałem się na wyprowadzenie gniazdem kanda 10p żeby elegancko wpinać  się tylko taśmą z programatora. I tutaj pojawił się problem. Zamówiłem sobie 4 prototypy, polutowałem je, podłączyłem do zasilania, zmierzyłem sobie napięcia na scalakach- wszystko wydaje się być ok. Następnie podpinam programator i za nic w świecie nie mogę wgrać programu. Arduino IDE zwraca mi błąd "Podczas wygrywania programu wystąpił błąd." Później wgrałem sobie skech do arduino (po USB), przełożyłem scalaki i wszystko śmiga więc układ jest poprawnie wykonany, a problem jest z programatorem. Żeby wyeliminować kwestię sterowników, wziąłem innego laptopa, postawiłem świeżego windowsa 7, wgrałem najnowsze arduino IDE, zaimplementowałem mu paczkę MiniCore, i przeniosłem się na płytkę stykową z gołym procesorem. Podłączyłem procesorowi minimum które potrzebuje- rezystor podciągający reset pod +5V, kwarc 16MHz, 2 kondensatory po 22pF, o pinach 20 i 22 również pamiętałem. Piny MISO, MOSI, SCK, podłączałem kabelkami pod programator przez przejściówkę 10p - 6p, która ma naniesione opisy dla poszczególnych pinów, więc połączenia raczej są wykonane poprawnie. Jeśli chodzi o konfigurację zakładki 'Narzędzia' w arduino IDE, to chyba też wszystko jest jak powinno być- płytka 'ATmega328', bootloader 'nie', taktowanie zegara na 16MHz external, próg BOD na 2,7V, LTO nie ruszałem (default), programator USBasp. Dodam jeszcze że mikrokontorler którego używałem był "świeży" dopiero co kupiony w elektronicznym. 

Efekty są następujące:
Po próbie wgrania programu (szkic -> wgraj używając programatora) IDE zwróciło błąd, i kazało przed rozpoczęciem wgrywania wybrać port COM (a przecież USBasp nie występuje pod portem COM), później chciałem zobaczyć czy scalak w ogóle działa i wgrać w niego bootloader przez Arduino (Arduino as ISP). Scalak bootloader przyjął bez problemu. Teraz z kolei po podłączeniu programatora ASP, IDE zwraca błąd "Could not find USB device".

Skończyły mi się już pomysły...
Z góry dziękuję za chęci pomocy!

Pozdrawiam.

EDIT:
Programator którego używam jest nowy, kupiony w botlandzie. Układ zasilam z programatora, jeśli chodzi o konfigurację zworki SLOW to kombinowałem i z nią i bez niej.
https://botland.com.pl/programatory/1079...zarny.html
 
Odpowiedź
#2
Witam
Po pierwsze na komputerze, który używasz do programowania, musisz mieć wgrane DOBRE sterowniki do USBASP. Na forum była walka jednego użytkownika z tym, są trzy rodzaje do wyboru, odszukaj sobie w wyszukiwarce na tym forum. Dla ułatwienia (przeczytaj całość, bo wyjaśnia również inne "punkty"):
https://forum.arduinopolska.pl/watek-ard...ght=USBASP
https://forum.arduinopolska.pl/watek-ste...e-attiny85
Jak masz dobre to bez problemu wgrywasz do np. UNO soft przez programator.
Na drugim komputerze najwyraźniej nie masz driverów.
Po drugie programator powinien mieć firmware umożliwiający zmianę częstotliwości w locie, nie masz to baw się zworką, puki procek jest na 1MHz ustawiasz SLOWSCK, jak już jest na 8+Mhz to ustawiasz na normalny tryb pracy. Zmianę firmware w USBASP też tu rozkładałem na atomy z forumowiczem. To że jest kupiony wczoraj w Botland nie ma znaczenia, Chińczycy dalej tłuką to samo od 10lat. Zresztą nawet na swoim programatorze masz zworkę SLOW, właśnie do tego. Po wgraniu aktualnego softu staje się bezużyteczna. Zworka Serwis służy właśnie do wgrania nowego firmware. Można wgrać starym USBASP, łączysz "dupkami", zworka, wgranie, zamiana zworek, wgranie, zworka i masz dwa nowe. Można też wgrać wykorzystując "Arduino as ISP".
Po trzecie nowy procek z fabryki jest ustawiony na 1MHz, pierwsze co należy zrobić, a najłatwiej w zewnętrznym programie (polecam AVR LAB++ ) to wyłączyć fuse CKDIV8. Można wgrać bootloader w Arduino, ale jako programator należy wybrać "USBASP SLOW" no i pamiętać o zworkach jeśli soft jest stary.
Po czwarte wgranie bootloadera składa się z dwóch części. Jedno to sam program do wgrywania, druga, bardziej istotna część to konfiguracja procesora, ustawienie wszystkich fusebitów, źródło taktowania, itp.
Po piąte jak w układzie wykorzystujesz piny Arduino 11,12,13 to mogą zakłócać komunikację. Nawet jak już uporasz się z poprzednimi tematami to i tak może się okazać, że do programowania będziesz potrzebował osobnej podstawki. Np. https://www.aliexpress.com/item/ATmega8-...4c4dQmscV4 , gniazdo w Arduino możesz zajeździć po kilkudziesięciu prockach.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
Z opisu wnioskuję, że masz uC w obudowie DIP. 100szt, pewnie będzie więcej takich akcji. Kup (zrób) programator równoległy. Być może przy 100szt można kpic układy juz zaprogramowane choć ta opcja dotyczy bardziej układów SMD.

100szt to raczej komercja, używasz w programie WDG, BOD?
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości