Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki
Teraz jest 22 lis 2019, o 09:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 9 lis 2019, o 21:18 
Offline
Nowy

Dołączył(a): 09 lis 2019
Posty: 4
Pomógł: 0

Cześć!

W moim rozwiązaniu program do MCU jest wgrywany za pomocą bluetooth i aplikacji mobilnej na telefon (wgrywam program bezpośrednio z telefonu z Androidem).

Ze względu na oszczędzanie energii w moim urządzeniu moduł jest załączany i odłączany od zasilania. Przy próbie wgrania nowego programu, MCU jest resetowany przez Watchdoga i wchodzi w sekcje bootlodera. W obecnym rozwiązaniu mam napisany bootloader, w którym dopisałem prostą instrukcję ustawiania jedynki na PORTB.0, dzięki czemu po wejściu do bootlodera moduł jest włączony (Pin PB0 steruję tranzystor od zasilania modułu).

Nie jest to optymalne rozwiązanie ponieważ wymaga wgranie wpierw bootlodera a potem programu głównego. Idealnym rozwiązaniem jest tutaj opcja MERGE w MKbootloaderze, którą dzisiaj odkryłem ;) Problem w tym, że nie mogę dopisać do bootlodera dosłownie dwóch linijek DDRB |=(1<<PB0); PORTB |=(1<<PBO);

Czy jest możliwość dopisania tych dwóch linijek do bootlodera samodzielnie? W opcje jest wysterowanie diody LED... ale ona mruga, więc nie mogę wykorzystać jej do załączania zasilania

Czy mogę się zwrócić do Mirka z prośbą o wygenerowanie tego jednego pliku hex bootlodera do którego później bym sobie dodawał plik hex z moim programem?

Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2019, o 21:26 
Offline
Moderator
Avatar użytkownika

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

Być może uda się wdrożyć taką funkcjonalność

_________________
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 lis 2019, o 21:55 
Offline
Nowy

Dołączył(a): 09 lis 2019
Posty: 4
Pomógł: 0

A czy sam kod bootlodera jest dostępny czy jest to tajemnica firmy?

Posiadam plik hex z moim bootloderem i plik hex z programem głównym. Czy jest możliwość zrobienia opcji "merge" samemu? Niestety nie "rozgryzłem" jeszcze jak ta opcja działa i co tak naprawdę ta funkcja robi z tymi dwoma plikami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2019, o 11:23 
Offline
Nowy

Dołączył(a): 09 lis 2019
Posty: 4
Pomógł: 0

Czy jest szansa na jednorazowe wygenerowanie pliku hex bootloadera według poniższych założeń:

MCU: AtMega328PB
F_CPU=3686400
Baud: 115200

Po wejściu do bootloadera:
1. Watchdog jest wyłączony
2. Pin PB.0 ustawiony jest jako 1
3. Po ustawieniu PB.0 jaki 1 bootloader czeka 7 sekund (w tym czasie aplikacja ponownie łączy się z modułem BT)
4. Po tym czasie bootloader czeka na dane "nowego programu"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2019, o 10:39 
Offline
Nowy

Dołączył(a): 09 lis 2019
Posty: 4
Pomógł: 0

Temat nieaktualny. rozwiązałem problem.

Wgrałem swój bootloader do MCU. Następnie wgrałem program główny, a na końcu zgrałem do osobnego pliku całą pamięć MCU.

Dzięki temu uzyskałem plik hex zarówno z bootloaderem jak i programem głównym ;)



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: 5 ] 

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