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 29 maja 2025, o 13:26


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 28 ] 
    Autor Wiadomość
    PostNapisane: 11 kwi 2021, o 23:04 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    Dzień dobry.
    Mam małą uwagę do ładowania wsadów MkBootloaderem.
    Program bardzo ładnie programuje mi AVRy.
    Obecnie robię w Bascomie pewien projekt w którym Atmega 1284P wysyła non stop dane do terminala PuTTY.
    Zrobiłem programową detekcję komendy reset wysyłanej z MkBootloadera (reakcja na AT+RST)
    I to działa bez zarzutu do momentu kiedy procesor nie wysyła nic do terminala.
    Kiedy wysyłanie jest aktywne to w momencie wciśnięcia przycisku UPLOAD HEX/BIN procesor resetuje się
    ale bardzo często (nie zawsze) MKBootloader zgłasza błąd, to samo przy wykrywaniu typu procesora (przycisk BLS INFO)
    Podejrzewam że w momencie wciśnięcia UPLOAD HEX/BIN MkBootloader jest "bombardowany" danymi z procesora.
    Używam przejściówki USB/RS232 z chipem FT232 i może pewne dane odebrane z procesora siedzą jeszcze w buforze odbiorczym przejściówki.
    Tak jak pisałem wyżej gdy AVR nie nadaje do terminala proces ładowania wsadu startuje praktycznie za każdym razem.
    Typ chipa jest wykrywany za każdym razem.
    I tu moja sugestia, może zdobić w MkBootloaderze funkcję która opóźnia reakcję na dane wysyłane przez bootloader.
    Przykładowo wciskam UPLOAD HEX/BIN i MkBooloader wysyła komendę reset po czym czeka np 1 sek i zaczyna nasłuchiwać bootloadera.
    Można by zrobić ustawiany czas tego opóźnienia.
    Nie wiem czy rozumuję w dobrym kierunku.

    Pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 09:42 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    To że się procek resetuje to niestety nie może być żadną winą MkBootloadera - coś u ciebie poszło nie tak i musisz poszukać przyczyny.

    Zaś sam MkBootloader na PC działa właśnie DOKŁADNIE tak jak piszesz ;) czyli jak ma sprawdzić - to dopiero wysyła komendę AT+RST i wtedy odbiera - a nie, że cały czas .... coś nie tak może albo zaobserwowałeś albo opisałeś niestety. Gdyby MkBootloader miał cały czas nasłuchiwać to byłby kompletny nonsens niestety - od pierwszej wersji tego programu, nigdy tak nie było żeby on cały czas nasłuchiwał.

    Tzn nie mówię że nie ma żadnego problemu - ale musiałbyś może spróbować jeszcze raz to u siebie poobserwować i opisać

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 11:03 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    Nie no MkBootloader nie powoduje samoistnych resetów mojego procka.
    Procek sobie działa i mierzy sobie temperaturę.
    Dane wysyła nonstop do UARTu czyli do pinu TX, tym samym UARTem wgrywam wsad do flasha.
    I teraz jeżeli zachodzi sytuacja że mój procek nadaje do TX dokładnie w momencie wciśnięcia
    przycisku UPLOAD HEX/BIN to np 7 na 10 prób kończy się tylko programowym resetem mojego układu
    (poprawny odbiór komendy AT+RST)
    Natomiast gdy zablokuję wysyłanie danych do pinu TX UARTa to wgrywanie działa 10/10.
    I stąd moja sugestia że zaraz po wciśnięciu przycisku UPLOAD HEX/BIN do MkBootloadera docierają jeszcze dane
    wysłane w mojego procka które MkBootloader źle interpretuje zgłaszając błąd i kończy pracę.
    (może te dane siedzą jeszcze w buforze przejściówki FT232)

    Pomyślałem że mogło by to działać tak:

    init delay w BLS Generator ustawiony na 2 sek
    I teraz przycisk UPLOAD HEX/BIN --> komenda AT-RST --> 1 sek ignorowania tego co nadchodzi z UART
    i dopiero oczekiwanie na zgłoszenie się bootloadera.

    Spróbuję dać po pracy screena co dokładnie zgłasza MkBootloader.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 11:41 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    A ok, teraz rozumiem ideę problemu, rzeczywiście tak może być ... ale masz na to proste rozwiązanie:


    1. MkBootloader może sprzętowo resetować procka przed wysłaniem zapytania (masz ptaszki dla linii DTR i RTS)
    2. wyprowadź te linie z przejściówki USB/RS232 i szeregowo przez kondensator 100nF podłącz ale tylko jedną z tych linii do pinu RESET procka

    i będzie pełnia szczęścia bo procek zanim wyśle AT+RST? to najpierw zresetuje procka sprzętowo.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 12:21 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    Bardzo trafna uwaga, już tak robiłem jednak pojawiła się konieczność programowania procka zdalnie.
    Robiłem już próby i bez problemu programowałem układ przez internet korzystając z modułów UART-LAN.
    I tu niestety mam do dyspozycji tylko sygnały TX i RX.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 17:41 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 771
    Pomógł: 40

    Tez tak mam gdy sie intensywnie używa uart. Jednak klikniecie raz czy dwa razy zanim się zresetuje to chyba nie jest az taki wielki problem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 17:52 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2015
    Posty: 164
    Lokalizacja: Koszalin
    Pomógł: 16

    A może by wykorzystać 2 UART i MKBootloader3.
    I niech Twoje dane wyrzuca na UART1 a UART2 do BLS.
    A Twój AVR to 1284P więc ma taką opcję.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 17:54 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    No zgadza się , tak będzie trzeba zrobić.
    Mogę jeszcze zdalnie wyłączyć nadawanie do UART i też to rozwiąże problem :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 19:23 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    ok ja spróbuję sobie za jakiś czas zasymulować taki problem i jeśli będzie tak samo występował jak u autora - to rzeczywiście może jeszcze coś pokombinuję w MkBootloaderze ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 20:00 
    Offline
    Użytkownik

    Dołączył(a): 11 sty 2015
    Posty: 166
    Pomógł: 24

    Jeżeli mogę coś dorzucić, to ja też miałem problem przy ładowaniu wsadu przez wirtualny COM po WiFi.
    Najpierw idą krzaki dopiero później właściwa komenda AT+RST, program w uP traktuje to jako jedna obcą komendę i nie resetuje procka.
    Co ciekawe w wersji MKBootloader2 ten problem nie występuje.
    Z tego co zauważyłem to MKBootloader2 powtarza wysyłanie tej komendy kilka razy, MKBootloader3 już tylko raz.
    U mnie MKBootloader2 pod tym względem lepiej się sprawdza.

    Ewentualnie dobrym rozwiązaniem byłoby wysłanie przed właściwą komendą znaków CRLF.
    Wyczyściło by to w uP ewentualny bufor ze śmieciami.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 kwi 2021, o 21:50 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 771
    Pomógł: 40

    mirekk36 napisał(a):
    ok ja spróbuję sobie za jakiś czas zasymulować taki problem i jeśli będzie tak samo występował jak u autora - to rzeczywiście może jeszcze coś pokombinuję w MkBootloaderze ;)

    To jak już będziesz kombinował to wykombinuj, żeby MkBootloader 3 wykrywał do jakiego portu jest podłączony Ftdi. Tak jest w poprzedniej wersji. Przy większej ilości urządzeń trzeba pamiętać na jakim porcie co jest. Często odpalam MK2, tylko po to żeby sprawdzić na jakim porcie mam podłączone.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 kwi 2021, o 08:11 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 15 lis 2015
    Posty: 23
    Lokalizacja: Lesznowola (południowe okolice Wa-wy)
    Pomógł: 1

    Też podobny problem zaobserwowałem u siebie dawno temu - używam "mkBoot LOADER ver.2.0.0 build 11" (pisownia tak jak w okienku programu).

    Poradziłem sobie programowo - w zdalnie programowanym urządzeniu z ATmega88 przez Bluetooth HC-05 dodałem kolejne polecenie AT - wyciszenie komunikacji "wychodzącej" UART. Nie należy mylić z wyłączeniem UART! Po otrzymaniu owej specjalnej komendy UART cały czas działa bez zmian, jedynie kontroler przestaje wysyłać wszelkie dane / komunikaty jakie poprzednio wysyłalem przez UART do terminala.

    Tym samym aby zdalnie zaprogramować moje urządzenia muszę wysłać dwa polecenia:
    - najpierw z poziomu terminala PuTTY (lub innej dowolnej aplikacji terminalowej lub własnej) komendę AT "wyciszającą" komunikację wychodzącą,
    - następnie - po zaznaczeniu odpowiedniej opcji "mkBoot LOADER" wysyła komendę AT+RST.

    Działa bez zarzutu od kilku lat w 3 domowych urządzeniach.

    Równie dobrze można by opisane wyżej "wyciszanie" komunikacji wychodzącej umieścić w procedurze obsługi komendy resetującej AT+RST. Ja wolałem mieć dwie osobne.

    Nie uważam, że to idealne i jedynie słuszne rozwiązanie (zresztą wspominane powyżej), ale może powyższy pomysł szerzej opisany kogoś zainspiruje lub komuś pomoże.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 kwi 2021, o 11:05 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    ok - przyjąłem wszystkie uwagi - popracuję nad tym, tym bardziej że już wiem jak sobie to testować

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 kwi 2021, o 12:44 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    Po wciśnięciu przycisku BLS INFO błąd jaki zwraca MkBootloader to: ERROR - Bad PageSize from BLS[]
    Po wyłączeniu nadawania do UART 10 na 10 poprawnych zgłoszeń typu procesora.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 kwi 2021, o 13:07 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    jasne - pseudo naukowcy - będą działać nad poprawkami ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 kwi 2021, o 15:53 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1171
    Lokalizacja: Kraków
    Pomógł: 93

    Znowu zagonisz klony do pracy?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 kwi 2021, o 08:53 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    Marhef napisał(a):
    Znowu zagonisz klony do pracy?

    eeeeh właśnie ;) już mi się pokończyły klony

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 maja 2021, o 19:24 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    Przy okazji zapytam o to czy MkBootloader podczas wgrywania wsadu do procka weryfikuje poprawność wgrania ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 maja 2021, o 21:05 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    nie weryfikuje bo nie ma takiej potrzeby ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 10:10 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    Pytam bo podejrzewam że czasem wsad wgrywa się z jakimś błędem.
    MkBootloader pokazuje 100% wgrania wsadu i niby wszystko jest OK ale
    program albo nie startuje i muszę wgrać go ponownie i wtedy działa.
    Albo program rusza i np ekran powitalny na LCD wyświetla jakiś krzak.

    W takim przypadku podłączyłem programator na ISP i dokonałem porównania wsadów.
    (funkcja weryfikacji wsadów w programie do obsługi prog na ISP)
    Podczas wadliwego działania programu takie porównanie zawsze pokazuje różnicę między
    wsadem wzorcowym a tym odczytanym z flasha procka.
    Kiedy wgranie MkBootloaderem przebiegnie poprawnie porównanie wsadów zawsze pokazuje 100%
    zgodności.
    Na stole to nie problem bo wgram sobie wsad jeszcze raz ale jeżeli będę chciał wgrywać zdalnie
    to już trochę komplikuje sprawę.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 10:13 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    Pewnie że czasem się może nie wgrać wsad ale to chyba jasna sytuacja i trzeba powtórzyć. Jeśli się wgra w 100% to jest OK.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 10:30 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    No właśnie wgrywa się na 100% i czasem program nie uruchomi się wcale lub startuje z błędami w napisach
    które wyświetla LCD.
    Ponowne wgranie rozwiązuje problem.
    Nie wiem jak działa ładowania flasha poprzez bootloader ale czy nie może się czasem przekłamać jakiś bajt ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 10:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 cze 2017
    Posty: 169
    Lokalizacja: Słupsk
    Pomógł: 2

    A to nie jest przypadkiem problem złego doboru baudrate do kwarcu?

    _________________
    Lampka Leuchtglas
    Motorek Witka



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 10:52 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    Cytuj:
    A to nie jest przypadkiem problem złego doboru baudrate do kwarcu?

    Też mi się tak wydaje, że tak może być - jeśli się dobierze na przykład:

    kwarc: 16 MHz
    baudrate: 115200

    przy takim układzie procent błędu to zdaje się jest = 3

    więc tego typu problemy mogą być na porządku dziennym.

    Darek53 napisał(a):
    No właśnie wgrywa się na 100% i czasem program nie uruchomi się wcale lub startuje z błędami w napisach
    które wyświetla LCD.

    to podaj konkretnie jaki masz kwarc, procek, fusebity i baudrate ok? Aha i jak masz w procku wyliczoną wartość do rejestru UBRR bo tu też można sobie napsuć

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 11:08 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    ATMega2560 na płytce arduino MEGA 2560 Pro
    Moduł USB-232 na tej płytce to UC340G z kwarcem 12
    kwarc zmieniłem z 16 na 14,7456 MHz
    baudrate 38400

    Akurat bawię się Bascomem i daję zrzut ustawień fusebitów.

    Obrazek[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 11:47 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    coś ten zrzut ekranu źle wkleiłeś

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 12:08 
    Offline
    Nowy

    Dołączył(a): 11 kwi 2021
    Posty: 10
    Pomógł: 0

    o przepraszam :)

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2021, o 17:00 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    No to jeśli masz kwarc tak jak pisałeś to powinno być ok

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    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: 28 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO