ATNEL tech-forum https://forum.atnel.pl/ |
|
MkBootloader - mała uwaga https://forum.atnel.pl/topic23719.html |
Strona 1 z 1 |
Autor: | Darek53 [ 11 kwi 2021, o 23:04 ] |
Tytuł: | MkBootloader - mała uwaga |
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. |
Autor: | mirekk36 [ 12 kwi 2021, o 09:42 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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ć |
Autor: | Darek53 [ 12 kwi 2021, o 11:03 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | mirekk36 [ 12 kwi 2021, o 11:41 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | Darek53 [ 12 kwi 2021, o 12:21 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | grzeniu 73 [ 12 kwi 2021, o 17:41 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | raczyk [ 12 kwi 2021, o 17:52 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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ę. |
Autor: | Darek53 [ 12 kwi 2021, o 17:54 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
No zgadza się , tak będzie trzeba zrobić. Mogę jeszcze zdalnie wyłączyć nadawanie do UART i też to rozwiąże problem |
Autor: | mirekk36 [ 12 kwi 2021, o 19:23 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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 |
Autor: | auers [ 12 kwi 2021, o 20:00 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | grzeniu 73 [ 12 kwi 2021, o 21:50 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | Jagermeister [ 13 kwi 2021, o 08:11 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | mirekk36 [ 13 kwi 2021, o 11:05 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
ok - przyjąłem wszystkie uwagi - popracuję nad tym, tym bardziej że już wiem jak sobie to testować |
Autor: | Darek53 [ 13 kwi 2021, o 12:44 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | mirekk36 [ 13 kwi 2021, o 13:07 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
jasne - pseudo naukowcy - będą działać nad poprawkami |
Autor: | Marhef [ 13 kwi 2021, o 15:53 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
Znowu zagonisz klony do pracy? |
Autor: | mirekk36 [ 14 kwi 2021, o 08:53 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
Marhef napisał(a): Znowu zagonisz klony do pracy? eeeeh właśnie już mi się pokończyły klony |
Autor: | Darek53 [ 8 maja 2021, o 19:24 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
Przy okazji zapytam o to czy MkBootloader podczas wgrywania wsadu do procka weryfikuje poprawność wgrania ? |
Autor: | mirekk36 [ 8 maja 2021, o 21:05 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
nie weryfikuje bo nie ma takiej potrzeby |
Autor: | Darek53 [ 9 maja 2021, o 10:10 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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ę. |
Autor: | mirekk36 [ 9 maja 2021, o 10:13 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. |
Autor: | Darek53 [ 9 maja 2021, o 10:30 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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 ? |
Autor: | akenes [ 9 maja 2021, o 10:37 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
A to nie jest przypadkiem problem złego doboru baudrate do kwarcu? |
Autor: | mirekk36 [ 9 maja 2021, o 10:52 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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ć |
Autor: | Darek53 [ 9 maja 2021, o 11:08 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
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. [/url] |
Autor: | mirekk36 [ 9 maja 2021, o 11:47 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
coś ten zrzut ekranu źle wkleiłeś |
Autor: | Darek53 [ 9 maja 2021, o 12:08 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
o przepraszam |
Autor: | mirekk36 [ 9 maja 2021, o 17:00 ] |
Tytuł: | Re: MkBootloader - mała uwaga |
No to jeśli masz kwarc tak jak pisałeś to powinno być ok |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |