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 16 lip 2025, o 12:59


    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 550
    Pomógł: 28

    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: 550
    Pomógł: 28

    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27416
    Lokalizacja: Szczecin
    Pomógł: 1043

    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ł: Brak zidentyfikowanych użytkowników i 3 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