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.

Obrazek[/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 :)

Obrazek

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/