Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atmega328p-au - brak komunikacji z arduino IDE

25 Lis 2014 14:27 2109 12
  • Poziom 5  
    Witam,

    niestety po długiej i ciężkiej walce przyszła pora by poprosić Was o pomoc ;/.

    Mianowicie, złożyłem układ USBasploader z schematu znanego projektu "bieduino". Jednakże tamtejszy układ jest złożony na procesorze Atmega8 z bootloaderem pod ten procesor, natomiast jedyna różnica w moim projekcie to procesor. Zastosowałem większą z atmeg serii osiem - Atmegę 328p-au pod którą został wgrany bootloader dla danego typu procesora programatorem USBasp.

    I w tym momencie zaczyna się problem po podłączeniu płytki przewodem usb już bez programatora z odpowiednio wpiętą zworą (jak na schemacie) komputer wykrywa nowe urządzenie, ale niestety jako nieznane i nie można nawet do niego zainstalować sterowników. Arduino IDE również nie widzi układu i przez co nie możemy grywać programy przez Arduino IDE.
  • Poziom 10  
    programator zbudowaleś ok. ale jaką plytke podlaczasz to juz nie podales:P
  • Poziom 5  
    Nie rozumiem pytania jaką płytkę? To co podłączam to procesor atmega328p nie jest to żadne arduino. Wgrywam na niego bootloader arduino dla atmegi 328p tak mi się przynajmniej wydaje bo tak był podpisany bootloader który zassałem z internetu. Zmodyfikowałem dodatkowo plik boards.txt i dopisałem tam według schematu następujące linie:

    Code:
    #################################################################
    
     
    majsterkowo_atmega328p8.name=ATmega328P @ 8 MHz
     
    majsterkowo_atmega328p8.upload.maximum_size=30720
    majsterkowo_atmega328p8.upload.using=arduino:arduinoisp
     
    majsterkowo_atmega328p8.bootloader.low_fuses=0xE2
    majsterkowo_atmega328p8.bootloader.high_fuses=0xDA
    majsterkowo_atmega328p8.bootloader.extended_fuses=0x05
     
    majsterkowo_atmega328p8.bootloader.path=atmega
    majsterkowo_atmega328p8.bootloader.file=ATmegaBOOT_328.hex
    majsterkowo_atmega328p8.bootloader.unlock_bits=0x3F
    majsterkowo_atmega328p8.bootloader.lock_bits=0x0F
     
    majsterkowo_atmega328p8.build.mcu=atmega328p
    majsterkowo_atmega328p8.build.f_cpu=8000000L
    majsterkowo_atmega328p8.build.core=arduino
    majsterkowo_atmega328p8.build.variant=standard
     
    #################################################################


    Dodam, że bootloader wgrywa się niby prawidłowo, jednak komunikacji po USB brak. Gdy wgrywam przez USBasp hex wynikowy z arduinoide coś tam niby działa ale nie na tych pinach które powinny przykładowo deklarując jeden pin w programie by się uruchomił uruchamia się inny ;/ wygląda jakby deklarowane były inne wartości rejestru no ale...
  • Poziom 10  
    no to pisz ze to na plytce stykowej:D nie mam pojecia, a rezonator kwarcowy moze ma cos do tego? z tego co mi sie wydaje to zawsze do atmegi 328 jest 16 mhz a tu w kodzie jest 8 mhz. moge sie mylic sam jestem poczatkujacy:D ale jak nikt sie nie chce wypowiedziec to moze wspolnymi silami mozna jakos dojsc do tego metoda prob i bledow:)

    Dodano po 10 [minuty]:

    juz wiem o co ci chodzi. musisz najpierw zbudowac programator na port lpt i przez ten programator zaprogramowac programator usbasp:D i wtedy dopiero podlacz do usb i stery:D

    Dodano po 5 [minuty]:

    wróć. podlacz do usb i podepnij programator lpt w wejscie icsp( oczywiscie zasilanie wymagane z kabla programatora lpt) czyli ze musi byc zasilane z usb i lpt:) daj znac jak poszlo. budowa kabla lpt:) : https://www.elektroda.pl/rtvforum/topic2422965.html
  • Poziom 35  
    dsf1 napisał:
    Witam,

    I w tym momencie zaczyna się problem po podłączeniu płytki przewodem usb już bez programatora z odpowiednio wpiętą zworą (jak na schemacie) komputer wykrywa nowe urządzenie, ale niestety jako nieznane i nie można nawet do niego zainstalować sterowników. Arduino IDE również nie widzi układu i przez co nie możemy grywać programy przez Arduino IDE.


    A czy przy próbie komunikacji naciskasz "Reset" btn ?

    e marcus
  • Poziom 5  
    Nie kolego nie jest to płytka stykowa :p chodź tak też można by było nazwać w sumie bo nie jest to przecież komercyjny układ tylko własny wymysł ;]. Co do kwarcu faktycznie jest tam 8Mhz aczkolwiek próby odbywały się na różne sposoby z 8Mhz, 16Mhz jak i własnym wbudowanym w procesorze rezonatorem tzw. wewnętrznym. Z tym resetem próbowałem również praktycznie we wszystkie strony ;/ wciskałem, nie wciskałem, przełączałem zworę do bootloader jak i czasami nie w momentach gdy już głupiałem o co chodzi i dalej niestety kompletnie zero odzewu ze strony układu.

    Drążąc dalej programator lpt, rozumiem, że chodzi o programowanie równoległe tak? Otóż "internety" twierdzą (by nie być gołosłownym projekt typu "BIEDUINO" jak i parę innych mniej znanych i może mniej powiedzmy kompetentnych stron uważa że nie trzeba programować równolegle), że podobno wystarczy wgrać bootloader który z procesora ma emulować w systemie programator USBasp, co za tym idzie teoretycznie powinno się dać wykonać w pełni działający układ bez używania czy tez choćby pomyślenia o lpt.

    Sam już zgłupiałem przez ilość przebrniętych stron w wujku, konsultacji z osobami znającymi się niby na danym zagadnieniu itp. co za tym idzie możliwe że po prostu gdzieś popełniam jakiś wręcz "żałosny" błąd przez nie zrozumienie lub zwyczajne nakierowanie w złym kierunku. Dlatego dziękuję za odzew i chłodne postronne spojrzenie na sprawę ;]
  • Poziom 10  
    wiele projektow jest porzucanych przez to ze nie potrafimy znalesc banalnego rozwiazania :D
    programator lpt potrzebny ci jest tylko do zaprogramowania programatora usbasp by ten komunikowal sie przez usb:D ale idac dalej jezeli mowisz ze bootloader jest wgrany prawidlowo to czy masz sterowniki v-usb? do tego projektu sa niezbedne:)

    Dodano po 3 [minuty]:

    tak to jest programowanie rownolegle:) nie wydaje mi sie aby dalo sie wgrac przez usb do usbasp wprost bootloader:P jednak moge sie mylic
  • Moderator Mikrokontrolery Projektowanie
    LPT - nie wiem o jakim przypadku piszecie ale jeśli tak:

    atmega328p-au - brak komunikacji z arduino IDE
    to jest to programowanie przez ISP, czyli szeregowe.
  • Poziom 10  
    kolega mnie poprawil:P zgadza sie szeregowe:P zbuduj takie cudo i tym wgraj bootloadera:P inaczej musialbys dysponowac drugim programatorem usbasp ktory ma wgrany bootloader i tak zaprogramowac:)
  • Poziom 5  
    Wybaczcie, ale albo ja Was nie rozumiem albo źle wyjaśniam ;]

    Posiadam taki programator: USBasp za jego pomocą wgrywam szeregowo bootloader do atmegi328p i dopiero ten bootloader nie z programatora, a z atmegi powinien imitować programator usbasp przy podłączeniu procka jak na schemacie z pierwszego postu poprzez złącze usb-b na usb komputera.
  • Poziom 10  
    moze prosciej bo polowy nie rozumiem co chcesz osiagnac:D dobra jest usbasp programator zbudowany przez ciebie, bootloader w nim jest i chcesz zaprogramowac atmege 328 szeregowo. tylko ta atmega gdzie sie znajduje? na plytce stykowej? jakiejs innej plytce? zdjecie by wiele wyjasnilo:)

    Dodano po 1 [minuty]:

    i co to wogole ma imitowac?:D
  • Poziom 35  
    jaszczu171992 napisał:
    moze prosciej bo polowy nie rozumiem co chcesz osiagnac:D dobra jest usbasp programator zbudowany przez ciebie, bootloader w nim jest i chcesz zaprogramowac atmege 328 szeregowo. tylko ta atmega gdzie sie znajduje? na plytce stykowej? jakiejs innej plytce? zdjecie by wiele wyjasnilo:)

    Dodano po 1 [minuty]:

    i co to wogole ma imitowac?:D


    Ludzie!
    Czy wy nie możecie zrozumiec własnego, pisanego języka, że dla zrozumienia konieczny jest obrazek?
    Przecież zamieścił link go obrazka programatora kommercjalnego, (nie samoróbki) i wyrażnie też pisał że nie ma problemu z programowaniem processora tym programatorem. Nawet poprawnie wpisał tam bootloader. Jego problem jest brak spodziewanej funkcjonalności nowej płytki zawierającej ATmega 328.
    Czy to coś wyjaśnia?
    Cytat:


    i co to wogole ma imitowac?:D

    Nowe urządzenie ma spełniac rolę pseudo-Arduino; to znaczy komunikowac się z PC poprzez port USB tak jak regularne Arduino, lecz zamiast posiadac dodatkowy hardware pełniącego rolę adapteru Usb do serial (starsze versje atduino FT232, w nowszych jest Mega 16U), chce tu zastosowac do tej roli bootloader bezpośrednio na chipie, wykorzystując do tego koncept programatora USBASP (V-USB). Porównaj diagram jednego i drugiego. Różnica jest w treści i funkcji butloadera.

    Na ile mi wiadomo to taktowanie processora do tej funkcji nie powinno byc niższe niż 12 MHz. Jest pewna elastycznośc w doborze processorów lecz ograniczona tylko do serii 28-pinowych:
    ATmega8
    ATmega48
    ATmega48P
    ATmega48PA
    ATmega88
    ATmega88P
    ATmega88PA
    ATmega168
    ATmega168P
    ATmega168PA
    ATmega328P
    Dodatkowym ograniczeniem jest warunek że nie mogą to byc z końcówką "L" lub "V" z uwagi na ograniczenie częstotliwości taktowania.
    Ponadto dla kazdego z nich opraowano (ktoś ?) inny bootloader i to w zalezności od taktowania: 12MHz, 15 MHz, 16 MHz, 20 MHz . Dla kazdej kombinacji inny bootloder (!).
    Naturalnie, jeżeli potrzebujemy korzystac z bootloadera to wymagana jest odpowiednia zmiana fusebitów; konieczna jest też pewna sekwencja w uruchomieniu tej płytki podczas programowania wsadu programu, która jest nieco odmienna od standardowego Arduino.
    Wydaje mi się że przydatne byłoby zadglądnąc do tematu w necie "USnoBie".
    Temat bardzo obszerny i dośc dokładnie opisany....


    e marcus
  • Poziom 10  
    no o to mi chodziło:p tylko coś było mówione ze sam wykonał, pomyślałem ze sam zrobił ten programator z projektu bieduino;p no i mówiłem ze potrzebne sa sterowniki v-usb częściowo miałem rację z moim tokiem myślenia;p spokojnie bez nerw:d