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



Teraz jest 25 lut 2025, o 22:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ] 
Autor Wiadomość
PostNapisane: 18 paź 2013, o 10:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Witam,

Mam problem z programowym resetem procesora z wykorzystaniem bootloadera i programu MK Bootloader. Konkretnie chodzi mi o możliwość resetu poprzez użycie komendy AT+RST. Przeczytałem artykuł na stronie: http://www.atnel.pl/mkbootloader.html. Jest tam mowa o wykorzystaniu do tego celu watchdoga. Jest również fragment kodu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Problem w tym, że trzeba jeszcze dopisać nasłuchiwanie na nadejście komendy resetu AT+RST. W artykule tym jest odesłanie do rozdziału dotyczącego UART i ASCII. Posiadam zieloną książkę o próbowałem to odnaleźć. I owszem po części udało mi się zlokalizować fragmenty kodu dotyczące tej kwestii. Jest to jednak zrobione na zasadzie zdarzeń i Callbacków. Nie jestem na tyle biegły w C (raczej początkujący) żeby wyłuskać potrzebny fragment i przenieść to do mojego programu. Dlatego mam kilka pytań:
1. Czy można prosić o pomoc w napisaniu kodu nasłuchiwania w połączeniu z powyżej przedstawionym kodem resetu za pomocą watchdoga?
2. Czy kod ten ma być umieszczony we wsadzie, którym chcę zaprogramować mikrokontroler? Jeżeli tak to w którym miejscu.
3. Czy może raczej w kodzie samego bootloadera?
4. Czy można do tego celu wykorzystać bibliotekę Pana Mirka na UART z niebieskiej książki? Ta z zielonej jest chyba inna czy może bardziej rozbudowana.

Chciałem zaznaczyć, że posługiwanie się bootloaderem, jego umiejscowieniem w procesorze, obsługę programu Mk Bootloader wraz z wykorzystaniem również modułów BTM 222 mam opanowane. Z tym, że z opcją resetu ręcznie mikro switchem przy procesorze. Chciałbym jednak reset realizować właśnie programowo.

Z góry dziękuję za pomoc.

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2013, o 10:57 
Offline
Moderator
Avatar użytkownika

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

Zdecydowanie ale to zdecydowanie polecam podejście właśnie z zielonej książki ....

kolega się boi callbacków jak wielkiego JEŻA a tymczasem to dzięki nim dopiero obsługa staje się BANALNIE prosta ... szkoda, że często czytelnicy zamiast poświęcić czas na zapoznanie się z callbackami to tracą go MILION RAZY WIĘCEJ na dłubanie że tak powiem innych dziwnych metod, które później raz działają a raz nie .... gdy tymczasem - jeśli podliczyć cały ten stracony czas to człowiek by się prędzej nauczył callbacków i z powodzeniem jej wykorzystywał.

Tym bardziej, że są do tego tzn do tych callbacków jeszcze fajne odcinkowe poradniki także video na moim blogu, że są przykłady kolegi Antystatycznego, który również z pozycji mega totalnie początkującego się za nie zabierał - podobnie inni użytkownicy - a dzisiaj na forum mamy wątki pod tytułem

I love callbacks

;) .....

pewnie że biblioteka do UART w Grenbooku jest bardziej rozbudowana i to jest bodajże jeden z NAJWAŻNIEJSZYCH rozdziałów na temat obsługi UART'a. Dzięki podstawom na jego temat z niebieskiej książki oraz dzięki temu co w zielonej - ludzie mogą obsługiwać UART'a w tak wygodny sposób że aż strach ;) np taki pseudo kod:


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


nawet można nie korzystać z obsługi komend AT ....

-----------------------------

A jak to zrobić na podstawie tylko Bluebooka ? .... no droga będzie i tak dla kolegi chociaż piszesz że nie znasz tylko zdarzeń i callbacków - to będzie pewnie wyboista i długa - bo pierwsze co to trzeba zrobić obsługę stringów

ale pewnie - można się męczyć - po co czytać ten rozdział z GreenBooka ? prawda ? a tam jest KUPA WAŻNYCH informacji i nawet nie chodzi o callbacki - chodzi o zwykłą kontunuację UART'a

ale nie , lepiej traktować to jak JEŻA i tam nawet nie zaglądać bo straszy ?

eeeeh ;) .... proponuję się jednak przemóc i przeczytać chociaż JEDEN RAZ ten rozdział ostatni ok ?

a potem porozmawiamy dalej


Autor postu otrzymał pochwałę

_________________
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: 18 paź 2013, o 11:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Dziękuję. To tak właśnie zrobię. W sumie racja, że wcześniej czy później trzeba będzie się za to zabrać :) . Jeżeli po przeczytaniu nadal będę miał problemy to pozwolę sobie wrócić do tego wątku ;)

Pozdrawiam

------------------------ [ Dodano po: 6 minutach ]

A jeszcze zapytam. Gdzie we wsadzie powinienem umieścić ten fragment kodu dotyczący watchdoga. Czy zaraz w funkcji main, czy w już w pętli głównej while? Chodzi oczywiście cały czas o programowy reset z MK Bootloader.

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 paź 2013, o 11:41 
Offline
Moderator
Avatar użytkownika

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

step_m napisał(a):
Jeżeli po przeczytaniu nadal będę miał problemy to pozwolę sobie wrócić do tego wątku


no o to, to właśnie panie kochanieńki chodzi ;)

step_m napisał(a):
Gdzie we wsadzie powinienem umieścić ten fragment kodu dotyczący watchdoga. Czy zaraz w funkcji main, czy w już w pętli głównej while? Chodzi oczywiście cały czas o programowy reset z MK Bootloader.


widzisz (że użyję określenia jak z brazylijskiego filmu) - to nie jest tak jak myślisz :lol:

tego się nie umieszcza gdzieś RAZ i już .... przecież to musi być wciąż sprawdzane a zatem trzeba napisać sobie program w sposób NIEBLOKUJĄCY - tu polecam zacząć od przestudiowania końcowych rozdziałów Bluebooka a szczególnie rozdziału:

"Wstęp do systemów czasu rzeczywistego"

Musisz zrozumieć co to znaczy pisać funkcje i programy w sposób nieblokujący czyli bez Delayów ...

od tego trzeba zacząć - to nie trudne - zacznij to ćwiczyć - a jak tylko będą rodzić się pytania to śmiało pytaj ;)

_________________
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: 27 paź 2013, o 16:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Chodzi mi głównie o reset programowy zaraz po wgraniu wsadu do procesora za pomocą bootloadera. Żebym nie musiał wciskać przycisku reset przy procku. Nie koniecznie najważniejsze jest resetowanie aktualnie pracującego i wgranego wsadu.
Czy zatem takie podejście z watchdogiem i nasłuchiwaniem komendy AT+RST? zadziała jeżeli chodzi o programowy reset zaraz po wgraniu nowego wsadu z wykorzystaniem bootloadera i programu MK_Bootloader?

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2013, o 17:00 
Offline
Moderator
Avatar użytkownika

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

step_m napisał(a):
Czy zatem takie podejście z watchdogiem i nasłuchiwaniem komendy AT+RST? zadziała jeżeli chodzi o programowy reset zaraz po wgraniu nowego wsadu z wykorzystaniem bootloadera i programu MK_Bootloader?


Niestety mocno nie rozumiesz co to znaczy programowy RESET :(

Programowy reset to znaczy że aplikacja cały czas nasłuchuje na porcie UART czy nie nadleci AT+RST? .... przez cały czas swojego działania - to nie jest trudne ... ale trzeba najpierw dobrze opanować chociaż podstawową obsługę UART'a żeby to zrobić

_________________
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: 27 paź 2013, o 17:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

W takim razie nie wiem czy dobrze rozumiem ale reset taki można wykorzystywać tylko dla wgranego już i pracującego wsadu. Tak wywnioskowałem z Pana postu.
Ja wiem, że trzeba opanować obsługę UARTa, sposób jego działania i nie kwestionuje tego. Zresztą wynika to z moich poprzednich postów. Ale ogólnie zależy mi na resecie zdalnym, którego wykonanie jest konieczne zaraz po wgraniu kolejnego nowego wsadu do procesora. Tak aby nie trzeba było wciskać mikroswitcha przy procku na płytce.

Coś podobnego trzeba było robić do niedawna z użyciem programatora FT232R. Wtedy konieczne było wciśnięcie programowego przycisku w programie MK_Menager aby wsad ruszył. Teraz ta konieczność jest wyeliminowana poprzez modyfikację avrdude.

Zapytam w takim razie tak: czy można taki reset wykonać zdalnie ale z użyciem bootloadera i programu MK_Bootloader?

------------------------ [ Dodano po: 6 minutach ]

To znaczy inaczej. Już mi się pomieszało :D . Chodzi o zdalny reset, który trzeba zrobić aby MK_Bootloader rozpoczął proces wgrywania wsadu. Bo normalnie trzeba wcisnąć switch przy procku aby to zrealizować.
Przepraszam za poplątanie z pomieszaniem. Potrzebny mi chyba RESET :D :D :D

------------------------ [ Dodano po: 10 minutach ]

W programie MK_Bootloader jest komunikat "Naciśnij RESET przy procesorze". I to o ten reset mi chodzi. Czy można go wywołać zdalnie aby nie trzeba było wciskać tego przycisku

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2013, o 18:02 
Offline
Moderator
Avatar użytkownika

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

No to sam widzisz ;) bo poplątałeś ...

Czyli chodzi ci o reset SPZRĘTOWY tak ? ;) ale nie ten z klawisza RESET przy procku tylko za pomocą jakiegoś sygnału z FT232 tak ?

No to masz w MkBootloader do wyboru dwa sygnały: nie widzisz ? RTS i DTR

ustaw sobie któryś z nich - np na RTS i od tej linii scalaka FT232 poprowadź kondensator 100nF do pinu RESET procka. To wtedy MkBooTloader ładnie zresetuje procka tym sygnałem

------------------------ [ Dodano po: kilkunastu sekundach ]

a jeśli chodzi o RESET taki jak miałeś w ATB Manager - to przecież teraz go masz w MkAvrCalculatorze ;) nie widzisz go ? pod zielonym klawiszem WYKONAJ w zakładce programator ?

_________________
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: 27 paź 2013, o 18:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

A jeżeli będę chciał wykorzystać BTM222 do zaprogramowania bootloaderem?

------------------------ [ Dodano po: 4 minutach ]

Tak, Teraz dostrzegłem ten resret w MKCalculator :)

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2013, o 18:24 
Offline
Moderator
Avatar użytkownika

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

step_m napisał(a):
A jeżeli będę chciał wykorzystać BTM222 do zaprogramowania bootloaderem?


To ZAPOMNIJ NA ŚMIERĆ ;) bez programowego resetu tu się nie obędziesz. Gdyby w BTM działał sygnał CTS to by dało radę i sam bym się cieszył ale nie dzała i QUNIEC....

Dlatego ja dopracowałem procedurę programowego resetu i działa to równie dobrze ... choć wiadomo czasem przydałby się też sprzętowy.

------------------------ [ Dodano po: kilkunastu sekundach ]

step_m napisał(a):
Tak, Teraz dostrzegłem ten resret w MKCalculator


A wiesz od ilu wersji wstecz on już jest w MkAvrCalculator - hoo hooo ;) trzeba bardziej śledzić rozwój tego programiku ;)

_________________
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: 27 paź 2013, o 18:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Pamiętam poradnik, w którym Pan mówił, że inne linie w btm są ale nie działają. Niemniej jednak nawet ostatnio spotkałem gdzieś w sklepach te moduły, gdzie usilnie w opisie mowa jest, że pozostałe linie działają i są wyprowadzone do użytku. Nie wiem dlaczego wciska się ludziom taką ciemnotę :)

_________________
Mój Serwer AVR - http://msavr.besaba.com



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

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

Łe no pewnie że do dzisiaj można kupić te moduły z wyprowadzonymi tymi sygnałami RTS i CTS ... a do tego RESET. I co ciekawe w opisie jest że po to wyprowadzili RESET żeby można było moduł zresetować gdy się zawiesi. A co jeszcze ciekawsze - te moduły z od tego sprzedawcy - ZAWIESZAJĄ się rzeczywiście ;) MASAKRA chociaż też są przecież na tych samych BTM-222 co nasze ;)

podczas gdy nasze nie mają wyprowadzonego RESET'a i NIGDY się nie zawieszają :lol: ... no ale za to są tańsze te z wyprowadzonym resetem

_________________
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: 27 paź 2013, o 18:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Śledzę, z tym że nie potrzebowałem używać tego resetu, zwłaszcza, że wcześniej programowałem przez usbasp. Dopiero od niedawna wykorzystuję ft232. Opiszę poniżej kroki które wykonuję przy programowaniu z użyciem bootloadera i MK_Bootloader ale z użyciem btm222 (bezprzewodowo). BTM podłączony jest do linii RX i TX procesora. W kompie mam fabrycznego bluetoota z określonym nr COM.

1. Wgrywam bootloader z odpowiednimi ustawieniami rodzaju procesora, taktowania i prędkości boudrate. Wykorzystuje atmega 16, 16Mhz i boudrate 19200 (domyślny dla BTM). Tą samą prędkość mam ustawioną dla COM od bluetooth w kompie.

Tutaj jest wszystko ok. Nie mam problemu z kompilacją bootloadera, ustawieniem fusebitów i wgraniem go do sekcjii bootl. procka. Bootloadera wgrywam np za pomocą usbasp.

2. Odpalam MK_Bootloader, zaznaczam opcję Bluetooth, wybieram odpowiedni COM i prędkość.
3. Wciskam "Info" i zgłasza mi się ładnie bootloader.
4. Wybieram wsad do wgrania (nie ważne jaki) i wciskam "Wstrzyknij wsad"
5. Zauważyłem że zaraz po wgraniu bootloadera i pierwszym wstrzykiwaniu wsadu nie trzeba wciskać reset przy procesorze aby zainicjalizować proces wgrywania wsadu. Przy każdym następnym razem nie da się rozpocząć wstrzykiwania bez wciśnięcia przycisku RESET przy procesorze. Dopiero po wciśnięciu MK zaczyna ładować wsad.

I tutaj chcę ten manewr zrealizować zdalnie z użyciem BTM. Próbuję wykonać prostego robota typu line follower. Dlatego bardzo wygodne by było wgranie wsadu bezprzewodowo w przypadku kiedy stoi on gdzieś dalej od kompa. Zwłaszcza w fazie testów kiedy dopracowuje się wsad i trzeba wiele razy coś zmieniać. Sygnały sprzętowe dostępne w MK_Bootloader odpadają.

Czy RESET programowy z użyciem AT+RST? coś tutaj pomoże? Czy (jeżeli w BTM222 nie działają inne sygnały) jestem skazany na rozpoczęcie wstrzykiwania wsadu tylko poprzez podejście do urządzenia i wciśnięcie resetu przy procku?

------------------------ [ Dodano po: 3 minutach ]

Wiem. Kupiłem dwa ATNELowskie moduły BTM222 i jestem zadowolony. Działają bardzo dobrze

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2013, o 19:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2013
Posty: 101
Lokalizacja: Wrocław
Pomógł: 4

step_m napisał(a):
Zauważyłem że zaraz po wgraniu bootloadera i pierwszym wstrzykiwaniu wsadu nie trzeba wciskać reset przy procesorze aby zainicjalizować proces wgrywania wsadu. Przy każdym następnym razem nie da się rozpocząć wstrzykiwania bez wciśnięcia przycisku RESET przy procesorze. Dopiero po wciśnięciu MK zaczyna ładować wsad.

Po wgraniu bootloadera, procesor po starcie od razu skoczy do niego. Jeśli później coś było wgrane, to po resecie bootloader czeka chyba 1 sekundę i jeśli nie będzie miał połączenia z komputerem, to przekazuje sterowanie do właściwego programu.
Tak mi się wydaje :roll: .

_________________
ATB 1.04, Bluebook wyd.II, Greenbook wyd.II



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2013, o 19:52 
Offline
Moderator
Avatar użytkownika

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

step_m napisał(a):
Czy RESET programowy z użyciem AT+RST? coś tutaj pomoże?


No ale zobacz i znowu wracamy do punktu wyjścia ? :(

no toż od kilku postów ci tłumaczę, że WŁAŚNIE PO TO JEST PROGRAMOWY RESET .... Sorki ale już nie za bardzo wiem dalej jak mam ci to powiedzieć :(

step_m napisał(a):
Czy (jeżeli w BTM222 nie działają inne sygnały) jestem skazany na rozpoczęcie wstrzykiwania wsadu tylko poprzez podejście do urządzenia i wciśnięcie resetu przy procku?


Oczywiście że TAK - jesteś skazany na ręczne resetowanie procka jeśli nie przygotujesz programowej wersji resetu .... eeeeh

Cytuj:
5. Zauważyłem że zaraz po wgraniu bootloadera i pierwszym wstrzykiwaniu wsadu nie trzeba wciskać reset przy procesorze aby zainicjalizować proces wgrywania wsadu. Przy każdym następnym razem nie da się rozpocząć wstrzykiwania bez wciśnięcia przycisku RESET przy procesorze. Dopiero po wciśnięciu MK zaczyna ładować wsad.


ale co w tym dziwnego ? bezpośrednio po wgraniu wsadu bootloadera nie ma kodu wsadu ... więc program staruje od zerowej komórki pamięci flash gdzie jest wartość 0xff czyli rozkaz asemblera NOP (nie rób nic), przechodzi do kolejnej a tam też 0xff czyli NOP, do kolejnej znowu NOP i tak aż dojdzie do początku bootloadera. Bootloader czeka sekundę czy dwie (zależy ile ustawisz) i resetuje procka a ten znowu zaczyna od zera ... i sytuacja się powtarza więc nie dziwne że po wgraniu BLS'a zawsze od razu da radę odczytać info

a po wstrzyknięciu wsadu nie ma już rozkazów NOP tylko zaczyna działać normalnie twój wsad .... który nie obsługuje PROGRAMOWEGO RESETU .... Więc jak byś chciał żeby zgłosił się bootloader w kompie po kliknięciu klawisza INFO ?

trzeba ręcznie zresetować procka, wtedy on startuje od BLS'a czeka dwie sekundy czy sekundę - Jeśli zobaczy zapytanie INFO to odeśle informacje a jeśli nie to wystartuje znowu twój wsad

------------------------ [ Dodano po: 2 minutach ]

Po to jest właśnie zdalny reset żeby sobie siedzieć przy kompie i zdalnie bez wstawania i resetowania ręcznego wgrać nowy wsad. Twój robocik to akurat PIKUŚ - a wyobraź sobie sytuację że zaprogramowany procek w którym chcesz podmienić wsad siedzi w jakiejś trudno dostępnej maszynie? dookoła pełno kabli - ciężko się do niej dobrać. Albo siedzi w jakimś gnieździe elektrycznym bo steruje oświetleniem ...

i co żeby przeprogramować procka to musiałbym wszystko zozkręcać ? rozłupać ? po co ???

po co skoro mam ATB-BTM-222 oraz Bootloader z programowym resetem. Czochra mnie więc dostawanie się do czeluści takich urządzeń - siedzę wygodnie przy biurku, popijam kawę i zapuszczam podmianę wsadu

_________________
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: 27 paź 2013, o 20:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

No to już wszystko jasne. Dziękuję i sorki, że może faktycznie kilka razy wracaliśmy do punktu wyjścia. Chciałem jednak dobrze to zrozumieć. W takim razie będę próbował to zaimplementować w oparciu o przykład z greenbooka z rozdziału o UART z ASCII oraz w oparciu o poradnik "AVR-EEPROM Struktury - poradnik do książek". W poradniku tym dokładnie również Pan wytłumaczył jak zrealizować nasłuchiwanie komend AT.

Dziękuję i pozdrawiam

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2013, o 15:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 kwi 2013
Posty: 105
Lokalizacja: Warszawa
Pomógł: 0

Dzięki kolego GwynBleidD. Teraz już raczej wszystko jasne. Pozostaje kwestia w zasadzie zrozumienia obsługi nasłuchiwania bo jest ona już opisana w greenbooku i przekazana w poradniku Pana Mirka, o którym wspomniałem w poprzednim poście. Ale Twoje wytłumaczenie działania bootloadera było również bardzo obrazowe i trafiające do początkujących, takich jak ja.

Pozdrawiam,

_________________
Mój Serwer AVR - http://msavr.besaba.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2015, o 13:10 
Offline
Nowy

Dołączył(a): 01 paź 2015
Posty: 1
Pomógł: 0

Pozwolę sobie odświeżyć wątek.

Mam problem z soft-warowym resetem urządzenia podczas programowania. Używam zaszytego przy nasłuchu UARTA kodu Mirka, czyli:

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


Jak widać procek resetuje się po otrzymaniu wartości 0xD na UART, czyli po prostu ENTER-a, znaku CR. Wszystko działa dobrze przy użyciu Realterma, procek resetuje się po wysłaniu znaku CR. Przy użyciu mKBoot Loader-a i zaznaczeniu opcji software RESET -> use string [puste]+CR podczas wgrywania HEXa z wsadem procek też się resetuje, co widzę po diodzie sygnalizującej reset, ale wsad się nie wgrywa, a mKBoot Loader oczekuje na możliwość wgrania wsadu. Po timeoucie wyskakuje informacja:

Connecting - port: COM3
Połączenie z portem nawiązane
Próba połączenia z procesorem
Naciśnij RESET przy procesorze...
Brak odpowiedzi procesora - Time OUT !!!

Co może być przyczyną braku reakcji mKBoot Loader-a na reset procka? Używam przejściówki USB->RS232. Ustawienia BLS to:

MC - ATMega8
F - 4 000 000
Baud - 9600
BLS Address - 0x1E00
Wait time after restart (sec) - 2

Dziękuję za pomoc. Niestety sprawa dla mnie jest b. pilna :-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2015, o 12:13 
Offline
Użytkownik

Dołączył(a): 24 kwi 2012
Posty: 76
Lokalizacja: Ostrów Wielkopolski
Pomógł: 6

Witam!
Jestem kolejnym "szczęśliwcem" który ma problem z bootladerem.
Generuję BLS-a wgrywam go do procesora i jest OK...tzn po wciśnięciu klawisza info pojawia się

Obrazek

Następnie wgrywam wsad i znowu komunikat mkBootLOADERA mówi że jest ok

Obrazek

ale procek nie zaczyna wykonywania wgranego wsadu tylko dalej nasłuchuje tak jakby wsad nie został wcale wgrany...co podglądam na terminalu

Obrazek

Gdzie tkwi babol którego pewnie popełniłem?? Gdyby ktoś zechciał mnie naprowadzić..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2015, o 12:16 
Offline
Moderator
Avatar użytkownika

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

Masz zły HEX, co widać zresztą na zrzucie ekranu, sam początek - to pewnie jakieś kocie wartości może fusebitów ? albo co ?

Musi być czysty WSAD HEX do pamięci FLASH bez żadnych kocich dodatków ;)

_________________
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 paź 2015, o 12:21 
Offline
Użytkownik

Dołączył(a): 24 kwi 2012
Posty: 76
Lokalizacja: Ostrów Wielkopolski
Pomógł: 6

No ale jak ten hex wgrywam przy pomocy mkAVRCalca to procek podejmuje pracę.
Program w Asemblerze skompilowany w AVR Stuido4



Ostatnio edytowano 8 paź 2015, o 12:40 przez woycek, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2015, o 15:00 
Offline
Użytkownik

Dołączył(a): 24 kwi 2012
Posty: 76
Lokalizacja: Ostrów Wielkopolski
Pomógł: 6

mirekk36 napisał(a):
Masz zły HEX, co widać zresztą na zrzucie ekranu, sam początek - to pewnie jakieś kocie wartości może fusebitów ? albo co ?

Musi być czysty WSAD HEX do pamięci FLASH bez żadnych kocich dodatków ;)


No po prostu kocham jak Mirek definiuje coś jako "kocie" :D ,ale dzięki temu szybciutko zrobiłem zmianę w moim programie..

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


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


No i HEX przestał być "koci" :lol: i procek dziarsko wystartował. Teraz pozostało mi resetowanie procka komendą AT+RST i "jestem w domu".
Dzięki Mirku



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2015, o 15:51 
Offline
Moderator
Avatar użytkownika

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

woycek napisał(a):
No i HEX przestał być "koci" i procek dziarsko wystartował.

No i o to chodzi :lol:

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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