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



Teraz jest 11 gru 2024, o 23:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 30 maja 2019, o 16:17 
Offline
Nowy

Dołączył(a): 02 gru 2013
Posty: 4
Pomógł: 0

Witajcie.

Z programu mkBootloader korzystam od pół roku - jak na razie bez żadnych problemów na kilku różnych kontrolerach.
Niestety teraz napotkałem na problem którego nie mogę rozwiązać.

Próbuję uruchomić bootloader na mikrokontrolerze ATMgega328p (są to płytki arduino mini pro z tym właśnie mikrokontrolerem).
Bootloader generuję z mkBootloadera z następującymi ustawieniami:
Microcontroller: ATmega328p
Frequency Hz: 16 000 000
Baudrate: 9600
BLS adress: 0x7E00
Wait time after restart: 1


Wgrywam programem mkAVR Calculator, z następującymi fusebitami:
L:FF H:DE E:FD LockBajt: 3F

Po wgraniu bootloadera w programie mkBootloader działa normalnie funkcja "INFO" podaje informacje o bootloaderze.
Przy próbie wgrania poprzez UploadHEX - pojawia się pasek postępu, otrzymuję informacje:

"Odczyt danych z BootLoader'a
Procesor: ATmega328p
Taktowanie: 16 000 000 Hz
BootLoader: 1
FLASH
PageSize: 128, FreeMEM: 32 256kb (0x7E00)
programowanie w toku:..
Procesor zaprogramowany pomyślnie."


Niestety wgrany program nie startuje, mikrokontroler zachowuje się tak jak po świeżo wrzuconym bootloaderze, czyli: reaguje na przycisk "INFO" - nie potrzebuje resetu, gdy podglądam w terminalu to mikrokontroler wciąż wysyła znaki zachęty przy baudrate 9600.

Program który wgrywam jest skompilowany w BASCOMie - próbowałem z kilkoma różnymi programami, nawet najprostszymi typu miganie diodką - efekt zawsze ten sam.
Program z BASCOMa wgrany bezpośrednio przez ISP (mkAVR Calculator) działa zgodnie z założeniami - więc to chyba nie problem z samym HEXem który wgrywam.

Efekt występuje na 3szt. identycznych płytek z ATmega328p - wszystkie 3szt. zachowują się identycznie.
Testowałem też 2 różne przejściówki USB-UART - efekt identyczny.
Próbowałem generować bootloader z różnymi prędościami transmisji (9600, 19200, 38400) - efekt ten sam.
Płytka zasilana z 8V, ma LDO na pokładzie które daje stabilne 5V do zasilania ATmegi, przejściówki USB-UART również w standardzie 5V.
Kwarc 16MHz - raczej pracuje poprawnie, szybki test: testowy program napisany w BASCOMie i wgrany tradycyjnie przez ISP bez problemu wysyła stringi które mogę odebrać w terminalu (testowane z baudrate 9600, 19200 i 57600 - wszystko ok).

Co ciekawe mikrokontroler z dokładnie tym samą przejściówką USB-UART i tymi samymi HEXami, pracuje poprawnie z innym bootloaderem z internetu.

Bardzo proszę o pomoc, pierwszy raz spotykam taki problem i już kompletnie nie wiem co jeszcze mogę sprawdzić...
Z góry bardzo dziękuję za rady i pomoc.

Pozdrawiam, Michał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2019, o 17:08 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2587
Pomógł: 128

A jaka zajetość pokazuje MkBootloader po kompilacji Twojego kodu? Mieści się w obszarze, który wybrałeś fusebitami?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2019, o 19:32 
Offline
Moderator
Avatar użytkownika

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

zubik napisał(a):
Pisał że mruga ledem więc powinno się zmieścić.

gdzie pisał że mruga diodą ?

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

motykami napisał(a):
Niestety wgrany program nie startuje, mikrokontroler zachowuje się tak jak po świeżo wrzuconym bootloaderze, czyli: reaguje na przycisk "INFO" - nie potrzebuje resetu, gdy podglądam w terminalu to mikrokontroler wciąż wysyła znaki zachęty przy baudrate 9600.

to pierwsze co zrób to odczytaj zawartość FLASH i zobacz co zawiera od adresu 0x0000 czyli od początku - czy widać tam wsad wgrany czy nie - no to podstawa żeby sprawdzić.

Ale sprawdź to na krótkim prostym programie do mrugania diodą LED i zostaw na razie dłuższe wsady.

_________________
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: 30 maja 2019, o 20:00 
Offline
Nowy

Dołączył(a): 02 gru 2013
Posty: 4
Pomógł: 0

mirekk36 napisał(a):
zubik napisał(a):
Pisał że mruga ledem więc powinno się zmieścić.

gdzie pisał że mruga diodą ?
.


O tutaj:
motykami napisał(a):
Program który wgrywam jest skompilowany w BASCOMie - próbowałem z kilkoma różnymi programami, nawet najprostszymi typu miganie diodką - efekt zawsze ten sam.
.


Problem rozwiązany ;) - a okazał się nim problematyczny konwerter USB-UART, a właściwie 2 konwertery na chipie CH341 (oba identyczne) które nie wiedzieć czemu sprawiają problem przy wgrywaniu programu przez mkBootloader. Generalnie te konwertery są sprawne - tzn. widzę echo w terminalu dy zewrę TX z RX, gdy wgram do ATmegi program z obsługą UARTu to również przejściówka działa poprawnie.
Spróbowałem wgrać program mkBootloaderem z wykorzystaniem przejściówki na FT232 wbudowanej w płytkę ewaluacyjną - i zadziałało.
Co ciekawe efekt jest w 100% powtarzalny, niby sprawny konwerter na CH341 - program się nie wgrywa (efekt jak opisałem powyżej), konwerter FT232 - działa za każdym razem.

No nic, mam nauczkę żeby używać sprawdzonego FT232 a nie chińskich CH341.
Wybaczcie za zawracanie głowy - problem leżał po stronie HW, mkBootloader nie był winny - choć ciekawym jest że inny bootloader działał również i na CH341 :(
Dziękuję za Wasze porady i sugestie.

Mam natomiast inne pytanie - na które wpadłem przy walce z tym problemem.
Czy mkBootloader robi jakąkolwiek weryfikację tego co wgrywa?
Czemu pomimo nie powdzenia we wgrywaniu programu dostawałem informację "Procesor zaprogramowany pomyślnie." ?
Trochę to niepokojące, czy choćby proste błędy w transmisji nie spowodują zmian we wgrywanym programie - które mogą objawiać się w zupełnie losowych momentach?

Pozdrawiam, Michał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2019, o 20:14 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
No nic, mam nauczkę żeby używać sprawdzonego FT232 a nie chińskich CH341.

bardzo dobry wniosek - aż język boli od powtarzania, że nie ma co oszczędzać i wpatrywać się w chińszczyznę "bo taniej"

motykami napisał(a):
Czy mkBootloader robi jakąkolwiek weryfikację tego co wgrywa?

Jakby występowały takie problemy to można byłoby tak się bawić - ale jakoś po 11 latach od powstania programu nikt na takie rzeczy nie narzeka ... więc po co ?

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

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