Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 15 lip 2025, o 04:17


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
    Autor Wiadomość
    PostNapisane: 3 maja 2016, o 18:36 
    Offline
    Użytkownik

    Dołączył(a): 09 sty 2015
    Posty: 26
    Pomógł: 0

    Witam
    Jestem w posiadaniu arduino leonardo. Podłączyłem go do komputera przez USB - wszystko ok. Wgrałem przykładowy projekt Blink - działa. Napisałem sobie prosty program właśnie na gaszenie diody tylko że w czystym C, wgrałem i nic. Nagle Arduino zniknęło jako podłączony sprzęt. W menedżerze urządzeń go nie widać. Co zrobić?

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Dodam, że po dwukrotnym wciśnięciu przycisku reset na chwilę pojawia się port com bootloadera.



    Ostatnio edytowano 4 maja 2016, o 08:08 przez kubajed, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 maja 2016, o 22:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Arduino Leonardo ma na pokładzie procesor ATmega32u4, który wyposażony jest w obsługę USB. Jeżeli wgrałeś tylko goły program do migania diodą, to nie ma obsługi USB.
    W procesorze pozostał bootloader, który zgłasza się po odpowiednim zresetowaniu układu. Służy on do wgrywania programu.
    Cytuj:
    Co zrobić?
    Zależy co chcesz robić. Jak chcesz pisać w C, to nic nie musisz (jak chcesz mieć port szeregowy po USB, to musisz dołączyć do swojego kodu także obsługę tego). Jak w arduino i potrzebujesz go mieć widocznego w systemie, to ponownie załadować odpowiednie oprogramowanie z aplikacji Arduino.

    --
    Pozdrawiam,
    Robert

    ------------------------ [ Dodano po: 1 minucie ]

    Popraw wstawiony kod zgodnie z opisem topic7402.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 08:07 
    Offline
    Użytkownik

    Dołączył(a): 09 sty 2015
    Posty: 26
    Pomógł: 0

    Dziękuje za odpowiedź.
    W jaki sposób mam wgrać "odpowiednie oprogramowanie z aplikacji Arduino"? I co to właściwie jest?
    Czyli tak, jeżeli pisze w czystym c to muszę dodać obsługę USB, jeżeli w Arduino to nie muszę?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 15:11 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    ech...

    W przypadku arduino uzywasz do wgrania programu rezydentnego - bootloadera , który sobie zalega
    w pamięci flash i umożliwia zmianę oprogramowania poprzez USB , uzywa tego środowisko arduino

    wgrywając programatorem masz dostęp do całej pamięci flash ale niestety zazwyczaj usuwa bootloader

    oczywiście mozna sobie z tym poradzić i uzywać bootloadera zarówno pisząc w c jak i w Arduino

    kubajed napisał(a):
    W jaki sposób mam wgrać "odpowiednie oprogramowanie z aplikacji Arduino"? I co to właściwie jest?


    wybierasz swoją płytkę podpinasz programator i wybierasz wypal bootloader , od tej pory masz bootloader w pamięci
    mikrokontrolera i możesz go uzywać do wgrywania oprogramowania, botloader zgłasza sie po resecie przed właściwym oprogramowaniem oczekując na transmisję , gdy jej niema przechodzi do wykonywania programu

    ------------------------ [ Dodano po: 1 minucie ]

    jest jeszcze program FLIP z ATMELA który pozwala zaprogramować mikrokonmtroler przez USB uzywając wgranego przez producenta bootloadera DFU

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 15:22 
    Offline
    Użytkownik

    Dołączył(a): 09 sty 2015
    Posty: 26
    Pomógł: 0

    No dobrze. To proszę mi wyjaśnić, dlaczego arduino się teraz nie zgłasza mimo, że program wgrywałem używając arduino IDE, kabla USB, a nie programatora.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 15:37 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    SunRiver napisał(a):
    botloader zgłasza sie po resecie przed właściwym oprogramowaniem oczekując na transmisję


    ------------------------ [ Dodano po: kilkunastu sekundach ]

    jeśli się nie zgłasza to znaczy że uległ uszkodzeniu / nadpisaniu i go nie ma :)
    ew .... żle wybrany port COM , brak sterownika ...../

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 15:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Sun, tutaj chyba jest trochę inaczej. Z tego co ja zrozumiałem, to cały czas bootloader istnieje (bo jak twierdzi pojawia się na chwilę port COM po resecie). Kolega wgrał bootloaderem program napisany w C i nie ma widocznego portu COM (po USB) w czasie działania programu bo go nie oprogramował (i tak ma być). Ale także jak ponownie wrócił do Arduino to już nie pojawił mu się po USB port COM (a wcześniej miał). Jego pytanie jest co musi zaznaczyć / dołączyć w Arduino by program dołączył mu od razu obsługę USB z klasą CDC.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 16:07 
    Offline
    Użytkownik

    Dołączył(a): 09 sty 2015
    Posty: 26
    Pomógł: 0

    Dokładnie. Z tym, że już nie wracałem do arduino. Podczas wgrywania C została przerwana łączność. Od tego czasu widoczny jest tylko port bootloadera. Program w uC się wykonuje (ale wcześniejszy). Dlaczego trzeba dołączać jakieś programy obsługi USB? Za każdym razem tak trzeba będzie to dodawać?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 16:12 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    rskup napisał(a):
    Z tego co ja zrozumiałem, to cały czas bootloader istnieje (


    oczywiście że istnieje bootloader , cały czas po resecie jest dostęp do bootloadera DFU , do którego jest dostęp z programu FLIP

    natomiast arduino nie używa DFU a używa swojego bootloadera i tu jest kłopot ... kłopot z leonardo

    kolega niech podłączy Leonardo do USB , pokaże co ma w Managerze urządzeń , zmieni kabelek / port USB
    i pokaże co się dzieje na kompie

    tu masz w załączniku oryginalny bootloader LEONARDO z Arduino

    a tu masz hmm.. poradnik jak naprawić ??

    http://kw.rubra.pl/brak-portu-leonardo/ ... -odpowiada

    ------------------------ [ Dodano po: 1 minucie ]

    ABY GO WGRAĆ MUSISZ UŻYĆ PROGRAMATORA

    Może program FLIP poradzi sobie poprzez DFU z wgraniem i bedzie ci działać ARDUINO


    Oczywiście jak chcesz używać USB musisz je oprogramować inaczej jest to tylko to co jest nie służące niczemu :)
    w przypadku LEONARDO pod arduino , usb pracuje jako port COM ....


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 16:21 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Z tego co wiem, to Twoje Arduino nie ma wbudowanego konwertera USB-RS232. A port USB podpięty jest bezpośrednio do procesora ATmega32U4. Dlatego jak masz goły procesor, to nie masz obsługi USB, więc na komputerze nie będziesz miał portu szeregowego.

    Dodatkowo ATmegi mają podzieloną pamięć na 2 części - podstawowa pamięć programu oraz bootloader (nie musi być wykorzystywany i obecny). Bootloader to taki program służący do ładowania nowego programu do pierwszej części pamięci flash. Standardowo jest on odpalany przy starcie procesora (resecie).

    Standardowo płytki Arduino wyposażone są w Bootloader. Jeżeli będziesz korzystał z programowania tym bootloaderem to go nie uszkodzisz i nie usuniesz. Ale jak zrobisz czyszczenie pamięci przez programowanie po ISP, to kasujesz bootloadrea.
    U Ciebie bootloader jest, bo zgłasza się w PC po resecie płytki. Ale po skończeniu wykonywania, a jak nic nie wysyłasz z PC to kończy on po chwili działanie i sterowanie przekazywane jest do Twojego programu w pamięci głównej.

    W swoim układzie w bootloaderze masz wbudowaną obsługę USB, więc widzisz swoją płytkę na PC (jako COM bootloadera). Ale w swoim programie tego nie umieściłeś, więc nie masz możliwości komunikacji między płytką a PC.

    Gdybyś miał prostszą płytkę z zewnętrznym konwerterem USB - RS232 na układzie FT232R (a w klonach CH340), to cały czas być miał dostępny port COM, niezależnie od tego czy masz załadowany program czy nie.

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 16:58 
    Offline
    Użytkownik

    Dołączył(a): 09 sty 2015
    Posty: 26
    Pomógł: 0

    Czyli niezależnie czy wgrywam kod w C czy w Arduino (przez bootloader) to tracę możliwość ponownego wgrania nowego programu tak? To jest bez sensu... - Arduino byłoby wtedy jednorazowe dla większości społeczeństwa.

    W menedżerze nic nie mam - oprócz chwilowo bootloadera.

    Udało się ożywić płytkę!. Przypadkowymi kliknięciami resetu i wgrywania pustego programu.
    Proszę powiedzcie czy mogę wgrać tak bezpośrednio z arduino ino program w C?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 17:34 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    tak jak pisałem ... taki jest problem z leonardo niestety
    tak możesz tak wgrać tylko musisz przed samym końcem kompilacji wcisnąć reset na leonardo
    czasem trzeba kilka razy próbować bo nie zdążysz lub nie trafisz

    wielu ma ten problem z leonardo wiec się nie przejmuj :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 17:53 
    Offline
    Użytkownik

    Dołączył(a): 09 sty 2015
    Posty: 26
    Pomógł: 0

    Dziękuję za pomoc.
    Mam jeszcze jedno pytanie, a nie chcę zakładać kolejnego wątku. Czy to wystarczy do wykonania zewnętrznego programatora Arduino jak i "gołych" AVRów?
    http://allegro.pl/adapter-przejsciowka- ... 52026.html
    http://allegro.pl/programator-isp-usbas ... 54223.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 18:16 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Przejściówka ci się przyda , co do tych USBasp się nie wypowiadam ,
    czasem działą czasem nie działa ... zależy które oko chińczyk miał bardziej skośne

    oczywiście pewny i stabilny jest https://www.sklep.atnel.pl/pl/p/Program ... culator/39
    po za tym dostajesz też suport i świetny program do grzebania w avr ...
    ale wybór należy do ciebie :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 maja 2016, o 21:02 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    Cytuj:
    Czyli niezależnie czy wgrywam kod w C czy w Arduino (przez bootloader) to tracę możliwość ponownego wgrania nowego programu tak? To jest bez sensu... - Arduino byłoby wtedy jednorazowe dla większości społeczeństwa.
    Nie, nie tracisz. Tylko masz dostęp do bootloadera tylko po resecie.

    Aby wystartował bootloader to należy odpowiednio resetować procesor. Dla nowych bootloaderów Arduino dla procesorów ATmega32U4 sekwencja resetu opisana jest np. w dokumencie: https://cdn.sparkfun.com/datasheets/Dev ... U4Note.pdf

    --
    Pozdrawiam,
    Robert



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 cze 2016, o 07:39 
    Offline
    Nowy

    Dołączył(a): 02 kwi 2013
    Posty: 4
    Pomógł: 0

    Pracuje na Arduino UNO od bardzo długiego czasu. Jeśli procek siedzi w płytce to nie ma żadnego problemu z programowaniem. Kabel USB, Arduino IDE i ogień. Do momentu gdy postanowałem przenieść projekt na płytkę stykową i programować kostkę z Arduino IDE, nie interesowało mnie co dzieje się podczas wgrywania programu. Okazało się, że oprócz zasilania, masy, interfejsu USART(RX,TX), potrzebny jest także sygnał RESET. Arduino IDE wymusza w odpowiednim momencie podczas programowania żądany stan RESET przez co umożliwia programowanie. Leonardo, który nie ma przejściówki USB-RS232, a jest programowany w ten sam sposób co UNO, także musi mieć zapewniony sygnał resetu. Można to robić, jak większość osób, na chybił trafił, klikając reset i modląc się żeby procek się zaprogramował. Wydaje mi się, że sensownym rozwiązaniem jest użycie innej płytki (np UNO) do zaprogramowania procka i wymuszenia odpowiednich sygnałów. U mnie w UNO takie rozwiązanie sie sprawdza. Myślicie, że dałoby rade w Leonardo?

    _________________
    Panele HMI
    Falowniki



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO