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



Teraz jest 28 mar 2024, o 14:49


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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 759
Pomógł: 37

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 759
Pomógł: 37

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 1146
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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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