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



Teraz jest 28 mar 2024, o 23:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
 Tytuł: Utrata wsadu .
PostNapisane: 15 maja 2018, o 18:04 
Offline
Użytkownik

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

Witajcie mam taką dość sporą zagadkę otóż w pewnym urządzeniu opartym o atmegę 32 "znikł" wsad odzywał się tylko boot loader a program w atmedze nie. Dziwniejsze jest tym bardziej że boot loader działał poprawnie i dało się z jego pomocą zaprogramować atmegę która działa prawidłowo czy ktoś miał coś takiego kiedyś i może przypuszcza co się mogło stać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2018, o 20:25 
Offline
Użytkownik

Dołączył(a): 19 paź 2014
Posty: 357
Lokalizacja: stolyca pyrlandii :)
Pomógł: 18

Taka tylko czysta dywagacja - nie zmieniałeś może FuseBitów ??
Może jakoś omyłkowo są ustawione na pracę bez "booloadera", i to on jest traktowany jako wsad ??
A właściwy wsad jest dalej, tylko ze względu na źle ustawione "bezpieczniki" nie ma do niego dostępu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2018, o 21:37 
Offline
Moderator
Avatar użytkownika

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

karolen napisał(a):
Taka tylko czysta dywagacja - nie zmieniałeś może FuseBitów ??

nie tylko dywagacja ....

1. czy ustawiony jest BOD ? jeśli tak ? to na jaką wartość i przy jakim napięciu zasilania?

2. Jak jest zorganizowane zasilanie w układzie ? - może jakiś fragment schematu w zakresie samego zasilania?

_________________
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: 16 maja 2018, o 17:06 
Offline
Użytkownik

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

Urządzenie pracowało około 2 miesięcy bez jakiej kolwiek ingerencji osób trzecich a także ja nic przy nim nie majstrowałem
co do BOD jest nie aktywne i myślę że to nie problem z zasilaniem kondensatory 100nf dałem blisko nóżek zasilających i do tego tantalowe 22uf z resztą wrzucę schemat .
Tak jak kolega piszę działał tylko botloader wysyłając cały czas znak zapytania procek nie wieszał się i nie resetował. Urządzenie działało w cyklu rano załączane wraz z dwoma takimi samymi urządzeniami zasilanymi z tej samej linii 230v (oczywiście każde posiada swój zasilacz 24 v i przez przetwornice 5v dla atmegi32 ) a wieczorem wyłączane.
naprawa tego była banalna (dzięki botloaderowi ) bo wystarczyło podejść z laptopem i przez bluetooth zaprogramować ponownie(bez zmian w fusbitach) dodam że po tym znowu działa poprawnie tylko nurtuje mnie pytanie co się stało. 2 pozostałe urządzenia pracują bez zarzutu

[img][img]https://obrazkiforum.atnel.pl/thumb/12014/0c9eefe7c2b9571c800b627d9987f6e4.jpg[/img][/img]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2018, o 22:29 
Offline
Moderator
Avatar użytkownika

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

tonygryps napisał(a):
co do BOD jest nie aktywne i myślę że to nie problem

skoro tak myślisz ... no to trudno ... bo jest to JEDNO Z NAJWAŻNIEJSZYCH ustawień dla zapisów do EEPROM i do FLASH ... nie wszyscy początkujący sobie z tego zdają sprawę - no a niektórzy ... twierdzą, że to nie problem to ok .... ja tego "tak sobie nie piszę" ... ale co tam ... "wiadomo, że to nie problem"

_________________
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: 16 maja 2018, o 23:01 
Offline
Użytkownik

Dołączył(a): 05 lip 2015
Posty: 28
Pomógł: 1

Możesz rozwinąć temat? Zaciekawiła mnie Twoja enigmatyczna wypowiedź.

Jak kontrolowany, lub nie, reset procesora może wpłynąć na zawartość flash?
No bo nagły i niespodziewany rest może uszkodzić zawartość EEPROM jeśli akurat coś się zapisuje. To jest dla mnie jasne.
Jeśli BOD jest nieaktywny, a napięcie spadnie poniżej jakiegoś poziomu, ale będzie wciąż na tyle wysokie, żeby procesor działał, ale niestabilnie, to mogą się zapisać głupoty. Nikt nie będzie wiedział, że wartości zapisane są nieprawdziwe. To też jest oczywiste.
Ale jak może to wykasować zawartość FLASH, i to do tego bez uszkodzenia tego kawałka gdzie akurat jest bootloader?

Napisałeś "jest to JEDNO Z NAJWAŻNIEJSZYCH ustawień dla zapisów do EEPROM i do FLASH" - czy jest taka możliwość, że pracujący program nadpisuje swoją własną treść we FLASH?

Zakładam, że autor wątku wie co pisze, i nie wystąpił przypadek pod tytułem: "program wywalił się na plecy nawet bez mignięcia diodką, po odczytał nieprawidłową wartość z EEPROM w jednej z pierwszych linijek kodu wykonywanego po resecie".
Skoro napisał, że zniknął wsad z FLASH, to zapewne nie bez przyczyny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2018, o 06:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

ezgman napisał(a):
Ale jak może to wykasować zawartość FLASH, i to do tego bez uszkodzenia tego kawałka gdzie akurat jest bootloader?
Kolego, zapominasz że bootloader to w pewnym sensie programator, i jeśli uC będzie pracował niestabilnie może się zdarzyć że ów bootloader się uruchomi i przez tę niestabilność mylnie stwierdzi że otrzymał rozkaz inicjujący proces programowania, i to właśnie bootloader mógł wyczyścić flash przygotowując go pod wgranie nowego wsadu.
A że flash nie został skasowany cały, tylko z pominięciem sekcji bootloadera to wskazuje na to, że przyczyną "ulotnienia się wsadu" jest najprawdopodobniej właśnie działanie bootloadera który przecież sam siebie nie może wykasować.
Moduł BOD nie tylko jest do zabezpieczenia operacji na EEPROM-ie ale również aby wyeliminować "dziwne" zachowanie układu przy zanikającym zasilaniu kiedy to pojawiają się stany nieustalone i tak na prawdę nikt nie jest w stanie przewidzieć jak zachowa się program w uC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2018, o 07:31 
Offline
Użytkownik

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

Cytuj:
skoro tak myślisz ... no to trudno ... bo jest to JEDNO Z NAJWAŻNIEJSZYCH ustawień dla zapisów do EEPROM i do FLASH ... nie wszyscy początkujący sobie z tego zdają sprawę - no a niektórzy ... twierdzą, że to nie problem to ok .... ja tego "tak sobie nie piszę" ... ale co tam ... "wiadomo, że to nie problem"

Napisałem że BOD nie jest ustawiony a to dlatego że nie korzystam z zapisu do EEPROM ani do FLASH.
Program ma na stałe zaszyte parametry pracy w wsadzie, poza tym jak pisałem urządzenie działa cały dzień poprawnie bez żadnego resetu po czym wieczorem jest wyłączane a rano z powrotem włączane i następuje klapa "brak wsadu" działa tylko bootloader.


Cytuj:
Kolego, zapominasz że bootloader to w pewnym sensie programator, i jeśli uC będzie pracował niestabilnie może się zdarzyć że ów bootloader się uruchomi i przez tę niestabilność mylnie stwierdzi że otrzymał rozkaz inicjujący proces programowania, i to właśnie bootloader mógł wyczyścić flash przygotowując go pod wgranie nowego wsadu. A że flash nie został skasowany cały, tylko z pominięciem sekcji bootloadera to wskazuje właśnie na to że przyczyną "ulotnienia się wsadu" jest najprawdopodobniej właśnie działanie bootloadera który przecież sam siebie nie może wykasować.


Kolego możesz rozwinąć tą myśl, bo przyznam że bardzo mnie zaciekawiłeś. Sprawdzę co piszesz i wgram nowy bootloader .


Co prawda oscyloskopem nie sprawdzałem zasilania ale miernikiem tak i wyglądało wszystko w porządku poza tym po zaprogramowaniu urządzenie działa bez żadnych resetów i nieprawidłowości (wiem bo odtwarza dźwięk i jest monitorowane przez uart ) do czasu wyłączenia wieczorem i załączenia rano.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2018, o 07:39 
Offline
Moderator
Avatar użytkownika

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

tonygryps napisał(a):
Napisałem że BOD nie jest ustawiony a to dlatego że nie korzystam z zapisu do EEPROM ani do FLASH.

Jezus Maria .... ale ok poczytaj dalej

ezgman napisał(a):
Ale jak może to wykasować zawartość FLASH, i to do tego bez uszkodzenia tego kawałka gdzie akurat jest bootloader?

Gdy napięcie spada i procek zaczyna pracować niestabilnie - może jak sam słusznie zauważyłeś:

ezgman napisał(a):
Jeśli BOD jest nieaktywny, a napięcie spadnie poniżej jakiegoś poziomu, ale będzie wciąż na tyle wysokie, żeby procesor działał, ale niestabilnie, , to....


ezgman napisał(a):
... mogą się zapisać głupoty


... to teraz troszeczkę rozszerzamy wyobraźnię ... i ... co to oznacza, że może zapisać głupoty? Jak to głupoty ? Przecież zapis do EEPROM ma przygotowane zabezpieczenia w AVR ... nie wiesz o tym ? zajrzyj do rejestru EECR procka i zobacz jak wygląda procedura zapisu do EEPROM ...

Pomijając już fakt, że ZARÓWNO zapis do EEPROM'a jak i do FLASH'a wymagają odpowiedniego napięcia aby zapis mógł być wykonany prawidłowo - i to już może być JEDEN ale WAŻNY powód dlaczego może dojść do KASZANY bez prawidłowo ustawionego BOD'a to jest jeszcze drugi powód

... przy zbyt niskim napięciu - gdy nie ma ustawionego BOD'a a procek można powiedzieć zamiera - to może zacząć tak jak i człowiek "BREDZIĆ" ;) czyli zacząć wykonywać instrukcje spod LOSOWO wybranych adresów pamięci FLASH !!! i tu zaczyna się prawdziwa BONANZA! ... aż dziw bierze, że ty ale też wiele osób nie bierze tego pod uwagę ...

a co to oznacza, że może zacząć wykonywać instrukcje z losowo wybranych komórek FLASH albo wręcz przeskakiwać po kilka oczek ???

... no może pominąć zabezpieczenia stawiane przez rejestr EECR (EEPROM Control Register)

.... ok ... pewnie nadal się zastanawiasz - no bo zastanawiasz - a co to ma wspólnego ze zniknięciem wsadu ?

ezgman napisał(a):
Ale jak może to wykasować zawartość FLASH, i to do tego bez uszkodzenia tego kawałka gdzie akurat jest bootloader?


.... żeby odpowiedzieć na to pytanie to najpierw pokażę ci w jaką pułapkę wpadasz tak samo jak wielu początkujących ... bo piszesz:

ezgman napisał(a):
No bo nagły i niespodziewany rest może uszkodzić zawartość EEPROM jeśli akurat coś się zapisuje. To jest dla mnie jasne.

jakiż to "rest" może uszkodzić zawartość EEPROM? dla mnie to nie jest jasne ...

ezgman napisał(a):
Jeśli BOD jest nieaktywny, a napięcie spadnie poniżej jakiegoś poziomu,


No widzisz tu leży klucz w niezrozumieniu - tak mi się wydaje, choć może się mylę .... "gdy napięcie spadnie..." ....

A CO JEŚLI NIE ZDĄŻY DOJŚĆ DO WŁAŚCIWEGO POZIOMU przy starcie i się utrzyma zbyt długo ? .... QURCZĘ toż przy włączaniu zasilania już mogą się ZACZYNAĆ MEGA CYRKI bez BOD'a !

Mówi wam to coś Panowie? zaczyna coś świtać ?

już nawet nie ważne czy przy włączaniu zasilania czy przy wyłączaniu - w trakcie gdy napięcie jest zbyt niskie np ok 1,6V - 1,7V ( tak nawiasem mówiąc, robiliście kiedykolwiek jakieś własne ćwiczenia jak zachowuje się wtedy procek? Pisaliście własne programy tak aby przetestować te sytuacje tzw momentu zgonu procka? bo ja tak ;) Niektóre egzemplarze procków AVR te z serii Pico Power potrafiły działać przez dłuższy czas NAWET QURCZĘ przy napięciu 1,5V czego nota PDF nie podaje i słusznie ;) bo to zbyt skrajne warunki. Nota podaje, że bezpiecznym najniższym napięciem oczywiście dla pewnych modeli procków jest 1,8V ale nie niżej ..... tymczasem "chłopaki" czyli procki - potrafią jeszcze nieźle "grać w kulki" sobie jak im się zabierze 0,1V albo i 0,2V ....

O tym co się dzieje przy 1,4V nawet nie chce mi się myśleć - ale to już pewnie wykonanie kilku ostatnich szaleństw po liczniku rozkazów i KAPUT

no dobra wracamy do pytania teraz:

ezgman napisał(a):
Ale jak może to wykasować zawartość FLASH, i to do tego bez uszkodzenia tego kawałka gdzie akurat jest bootloader?

Więc ZASTANÓW się teraz co to jest BOOTLOADER ?

Bootloader to program do zapisywania danych w pamięci FLASH ! panie ... a wymogi procka ze strony zasilania są jeszcze bardziej wysokie niż w przypadku EEPROM'a!

Zatem przykładowo mamy napięcie 1,8V ... program startuje, gdy ma działać BLS to skacze do sekcji Bootloadera ... i nagle! ... TRAAACH napięcie lekko spada do 1,5V .... KAPITANA .... BOD'a nie ma na pokładzie ... no to hulaj dusza! hahahaha pijany procek szaleje i załóżmy, że przeskoczy te kilka instrukcji czy kilkanaście (licznik adresów rozkazów) ... które sprawdzały czy użytkownik przez np przez RS232 ma wgrywać dane ... a trafił akurat na sekcję .... !!!

TA-DAAAA-M ... mniam mniam - do wykasowania całej zawartości pamięci FLASH bo czasem tak się przygotowuje bootloadera, po czym dopiero się rozpoczyna zapis strona po stronie od nowa danych nadsyłanego wsadu

i co? mówi to panu coś ?

ezgman napisał(a):
i to do tego bez uszkodzenia tego kawałka gdzie akurat jest bootloader?

Tyle razy mówię - warto chociaż RAZ napisać sobie własny bootloader ... albo ...

albo POCZYTAĆ "YELLOWBOOKA" i najmniejszy w nim rozdział o zastosowaniu pamięci FLASH procka zamiast EEPROM'a - jest tam MNÓSTWO ciekawych informacji w tym zakresie i zapoznając się również z krótkim kodem źródłowym który opisuję do tego ćwiczenia - można się dużo dowiedzieć nowych rzeczy, nauczyć i zrozumieć zasady działania procka w tym zakresie

w ogromnym skrócie - gdy rozpoczyna się procedura Bootloadera w prockach ATMEGA z sekcjami BLS (bo w ATtiny jest troszkę inaczej) ... to Bootloader startuje w sekcji NRWW (No Read While Write) !!! zaś wsad może być umieszczony w sekcji RWW !!!

kto to ustala ? TY SAM - ustawiając odpowiednie Fusebity do działania Bootloadera ;) ... a więc TRACH ! opada kurtyna tajemnicy dlaczego to może się wykasować i wyzerować TYLKO I WYŁĄCZNIE ta część procka w której jest wsad a nie ta w której jest sam bootloader. Widać też prawdopodobnego sprawcę ZNIKNIĘCIA WSADU - to nie UFO to Bootloader pewnie zrobił kuku

no ale jeśli ktoś nie stosuje BOD'a ... to co tu poradzić ? ;) .... będzie wierzył pewnie w UFO tzn różne dziwne przypadki - ufając, że dodanie kondensatora 100nF na zasilaniu rozwiąże jego wszystkie problemy. A jeszcze gorzej miewają osoby, które w akcie desperacji dokładają ogromne pojemności przy procku bo i z takimi czasem wypowiedziami na forach można się spotkać - typu:

"odkąd dodałem przy procku kondensator elektrolityczny 4,700uF z mojego starego wzmacniacza akustycznego to problemy się skończyły"

:lol: powaga - nie zmyśliłem tej wypowiedzi ... może nie jota w jotę zacytowałem ale było tak kiedyś na elektrodzie - i przekonanie gościa, że to bardzo złe rozwiązanie spełzło na niczym - jeszcze mi i paru ludziom którzy starali się wyjaśnić - oberwało się ;)

ezgman napisał(a):
Skoro napisał, że zniknął wsad z FLASH, to zapewne nie bez przyczyny.


W całym tym przydługawym moim tekście pokazuję ci możliwe przyczyny ... tylko trzeba chcieć zrozumieć

ale jak mi nie wierzysz to przynajmniej czytaj notę PDF ;)


proszę bardzo:
Obrazek

a tu proszę hmmmm rozwiązanie:
Obrazek

niestety w praktyce nie jest z tym "can easily be avoided" tak różowo ... bo na drugim miejscu są sprawy związane właśnie z fizyką czyli projektem zasilania i odnośnie schematu ale co WAŻNIEJSZE od strony PCB. Nie chcę tu nikogo oceniać - ale napisanie sobie od tak jakby strzelić palcami .... "dodałem kondensator 100nF" to znaczy, że jest dobrze - może równie dobrze oznaczać, że popełnionych zostało sto innych błędów w projekcie zasilania - i nie odnoszę tego od razu do autora wątku - żeby zaraz nie było, że zarzucam mu brak umiejętności projektowania płytek PCB .... ale ja sam jakbym zadawał takie pytanie o ZNIKNIĘCIE wsadu - kompletnie nie rozumiejąc jak mogło się to stać - to bym zwracał uwagę na wszystko i co najmniej pokazałbym fragment i schematu związanego z zasilaniem w projekcie a szczególnie fragment PCB z filtracją samego procka ...

Mam tylko nadzieję, że autor nie zrobił tego projektu np na kawałku płytki andruino jakiegoś mini, przyczepionego na jakichś kabelkach do innej płytki jak pająk z doczepionym gdzieś z boku kondkiem 100nF ... bo i takich projektów pełno w sieci widać - i ludzie się później dziwią - dlaczego mi się to ciągle wiesza? resetuje i cuda się dzieją ;) ... dobra to tyle o poranku :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  
PostNapisane: 17 maja 2018, o 09:02 
Offline
Użytkownik

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

Muszę przyznać że wywód Pana Mirka otworzył mi oczy na sprawy związane z BOD zawsze myślałem że ów fusbit należy stosować w przypadku korzystania z zapisu do EEPROM atu jednak nie jest to tak jednoznaczne w przypadku korzystania z mechanizmu bootloadera też warto go ustawić.

Co do projektu nie jest to żaden "ulep" jest na płytce drukowanej dwustronnej i kondensatory są dane jak najbliżej procka .

Aż głupio się przyznać czytałem ten rozdział w YELLOWBOOKU .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2018, o 09:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

BOD-a powinno się stosować zawsze, a nie tylko przy zapisie do EEPROM czy korzystania z bootloadera. Jedyny wyjątek to kwestie oszczędzania energii bo niestety załczenie BODa powoduje nieco zwiększenie prądożerności.
Jeśli nie używa się EEPROMU i/lub bootloadera to niestabilne warunki pracy może i nie doprowadzą do utraty danych z pamięci ale za to mogą doprowadzić do dziwnego zachowania układu a nawet do zawieszenia się programu w nim działającego.

Wysłane przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2018, o 10:03 
Offline
Użytkownik

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

Nasuwa mi się jeszcze jedno pytanie jak to jest realizowane w procesorach takich jak stm, psok (chodzi mi o ten moment startu i później wyłączenia kiedy napięcie jest zbyt niskie do normalnej pracy)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2018, o 10:50 
Offline
Moderator
Avatar użytkownika

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

w każdych nowych prockach jest zaimplementowany mechanizm BOD'a choć może czasem się nieco inaczej nazywać i to jest chleb powszedni ... tak jak napisał wyżej xentis

xentis napisał(a):
BOD-a powinno się stosować zawsze, a nie tylko przy zapisie do EEPROM czy korzystania z bootloadera.


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

nie wyobrażam sobie wręcz oddania klientowi gotowego projektu bez przemyślanego ustawienia BOD'a i to nie ważne na jakim procku

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

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