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



Teraz jest 28 mar 2024, o 23:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 3 paź 2018, o 17:50 
Offline
Użytkownik

Dołączył(a): 02 maja 2013
Posty: 111
Pomógł: 0

Cześć wszystkim

Piszę z jednym problemem. Mianowicie sprawa dotyczy bootloadera w moim mikrokontrolerze (Atmega64). Mikrokontroler ten ma dwa UARTy i założenie jest takie, żeby UART0 był wykorzystywany do bootloadera, a UART1 do komunikacji z innym mikrokontrolerem. Program, który chcę wrzucić do procka to prosty program który co sekundę ma wysyłać przez UART1 literkę "a". Do obsługi transmisji RS232 wykorzystuję bibliotekę MK_UART lub nowo testowaną MK_MULTI_UART. I teraz po kolei:

1. Konfiguracja mikrokontrolera
Podłączam procek do kompa, odpalam MKAVRCalculator, ustawiam fuse bity w sposób pokazany na zdjęciach poniżej:

ObrazekObrazekObrazek

Mikrokontroler jest taktowany zewnętrznym kwarcem 11.0592MHz.


2. Wgranie BLSa
Do wgrania BLSa wykorzystuję MkBootloader. Ustawiam go w sposób pokazany na zdjęciach:

Obrazek

Kompiluję, wszystko przechodzi poprawnie. MkAVRCalculator wgrywa program do procka. Po wgraniu odpinam programator, podłączam do układu przejściówkę RS232. Klikam w MkBootloaderze "Info" i moim oczom ukazuje się:

Obrazek

Wszystko super pięknie śmiga, dioda na przejściówce (Rx lub Tx) radośnie miga, na terminalu lecą pytajniki - jest dobrze.


3. Przygotowanie programu do wgrania
Tak jak wspomniałem na początku, program który chcę wgrać mikrokontrolera nie jest niczym szczególnym. Wygląda on dokładnie tak:

Obrazek

Testy przeprowadzam na nowej bibliotece (jednakże identyczny efekt uzyskiwałem przy użyciu wcześniejszej biblioteki MK_UART). Sama biblioteka jest dobrze skonfigurowana.


4. Wgranie programu
Wracam do MkBootloadera, wybieram skompilowany wcześniej z Eclipsa plik .hex, klikam "Upload hex" i uzyskuję:

Obrazek

Po wszystkim klikając "Info" BLS nadal normalnie się zgłasza, wszystko jest ok, dioda na przejściówce miga, w terminalu lecą pytajniki.


5. Finalny test

Odpinam przejściówkę od UART0, podłączam ją pod UART1 iii...
...nie dzieje się nic. Kompletna cegła. Na UARCie nic się nie pojawia, generalna stagnacja. BLS się nadal zgłasza, pytajniki przez UART0 lecą, ale na UART1 nie pojawiają się pożądane literki "a". W celu weryfikacji wgrywam ten sam program do procesora, tym razem normalnie przez programator. Od tego momentu wszystko działa. Na terminalu pojawiają się literki "a", zgodnie z oczekiwaniami. Mając wgrany program przy użycia programatora, ponownie przepiąłem przejściówkę RS232 z UART1 do UART0. Odpalam MkBootloadera, klikam "info" i:

Obrazek

...BLS wybył...


Tak w skrócie wygląda mój problem. Jest to moje pierwsze poważne starcie z mechanizmem Bootloadera. I teraz moje pytanie brzmi - czy ma ktoś może pomysł, dlaczego to nie działa? Czy może być to kwestia tego, że obydwa UARTy w jakis sposób się "gryzą" lub coś tego typu? Będę ogromnie wdzięczny za każdą, nawet najdrobniejszą wskazówkę co do rozwiązania tego problemu

Pozdrawiam gorąco



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2018, o 18:31 
Offline
Moderator
Avatar użytkownika

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

MKBLS obsługuje TYLKO UART0, żeby działał na UART1 trzeba go sobie samemu przerobić

_________________
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: 3 paź 2018, o 18:56 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Na moje oko to błąd leży w z konfigurowaniu BLS masz adres dla m32 a on ma 32kb pamięci flash a m64 ma 64kb flash ustaw parametr BLS adres na FE00



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2018, o 19:52 
Offline
Użytkownik

Dołączył(a): 02 maja 2013
Posty: 111
Pomógł: 0

tonygryps napisał(a):
Na moje oko to błąd leży w z konfigurowaniu BLS masz adres dla m32 a on ma 32kb pamięci flash a m64 ma 64kb flash ustaw parametr BLS adres na FE00


Ustawiłem początek jako 7E00, gdyż taka wartość widnieje w MkAVRCalculatorze. Po przestawieniu jej na FE00, wygenerowaniu nowego BLSa i wgraniu go do mikrokontrolera, z początku w MkBootloaderze wszystko jest ok, mikrokontroler się zgłasza. Po "wstrzyknięciu" wsadu do procka program zaczyna działać (na UART1 pojawiają się co sekundę literki "a"), aczkolwiek sam BLS gdzieś ginie i nie ma już możliwości ponownego wgrania wsadu.

mirekk36 napisał(a):
MKBLS obsługuje TYLKO UART0, żeby działał na UART1 trzeba go sobie samemu przerobić


Z tego powodu do obsługi Bootloadera używam UART0, więc sam BLS powinien działać bez problemu, bez jakichkolwiek poprawek. Chyba, że ma Pan na myśli jakąś inną przeróbkę



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2018, o 20:31 
Offline
Użytkownik

Dołączył(a): 02 maja 2013
Posty: 111
Pomógł: 0

zubik napisał(a):
Bo go skasowałeś przez wgranie programu przez progtamator, musisz na nowo wygenerować BLS


Rzeczywiście, to ma sens. Czyli jak rozumiem, przy każdym wgraniu nowego programu tradycyjnie, programatorem, BLS musi być wgrywany od nowa?

Jeśli tak, to jeden problem zostaje rozwiązany, ale pozostałe niestety nadal się pojawiają i nie jest możliwym płynne korzystanie z Bootloadera



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2018, o 20:32 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Polecam ci poradnik Mirka o BLS
https://www.youtube.com/watch?v=1KcyLMuvcHQ



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2018, o 20:56 
Offline
Moderator
Avatar użytkownika

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

slawus1998 napisał(a):
niestety nadal się pojawiają i nie jest możliwym płynne korzystanie z Bootloadera

Jakby tak było to nikt, włącznie ze mną by z tego nie korzystał, popełaniasz babole jak widzisz - obejrzyj poradniki, poczytaj o MkBootloaderze na stronie atnela - toż tam masz WSZYSTKO też pięknie opisane

_________________
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: 4 paź 2018, o 12:19 
Offline
Użytkownik

Dołączył(a): 02 maja 2013
Posty: 111
Pomógł: 0

Witam
Poczyniłem pewne kroki mające na celu dojście do poprawnego działania całego mechanizmu u mnie (w miarę możliwości prosiłbym o jakieś sugestie, czy idę w dobrą stronę.

1. Generowanie BLS
Po dokładnym zapoznaniu się z informacjami na stronie atnel.pl zauważyłem, że mam błędny adres BLS_START. MkAVRCalculator podaje mi 0x7E00, po wymnożeniu tego przez dwa w kalkulatorze uzyskuję FC00 - taki też adres wpisałem przy generacji BLS z plików szablonowych. Po wgraniu nowego BLSa do mikrokontrolera, odpięciu programatora i przepięciu na przejściówkę RS232 podpiętą do UART0, wszystko działa, BLS się zgłasza itp. Możliwe jest wgranie wsadu.


2. Wgranie wsadu i sprawdzenie działania
Wsad wstrzyknięty, więc przepiąłem przejściówkę RS232 na UART1. Na ekranie zaczęły się pojawiać oczekiwane literki "a" - program działa.


3. Powrót do ponownego wgrywania wsadu.
Powróciłem z podłączeniem przejściówki do UART0. Odpalam MkBootloader, klikam "info", pojawia się komunikat o oczekiwaniu na reset procka i po chwili timeout. Ale jeśli w tym czasie ręcznie zresetuję procesor, to wszystko działa. Podobnie z wgraniem nowego wsadu - jeśli ręcznie go zresetuję w momencie gdy jest to wymagane, wsad się wgrywa. Jest zatem moim zdaniem progres.

I teraz tylko kolejne pytanie - jak rozumiem, muszę uruchomić soft reset. Powinienem zatem na ekranie MkBootloadera zaznaczyć w sekcji software RESET opcje "use string" (np ten domyślny AT+RST?), a w programie który leci jako wsad wrzucić ten fragment:

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

tak żeby wszystko działało tak jak powinno? Jeśli tak, to proszę o jakieś potwierdzenie żebym tylko wiedział, czy idę w dobrym kierunku.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2018, o 12:34 
Offline
Moderator
Avatar użytkownika

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

No ale to dokładnie trzeba zrobić - i właśnie to jest opisane na stronie atnel i pokazuję to wielokrotnie w poradnikach. Toż jakoś trzeba zresetować tego procka programowo - jeśli nie chcesz sięgać palcem do przycisku reset.

_________________
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: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 6 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