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



Teraz jest 14 gru 2018, o 12:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 9 gru 2018, o 00:03 
Offline
Nowy

Dołączył(a): 26 mar 2018
Posty: 24
Pomógł: 3

Niektóre AVR posiadają funkcję programowego wyłączania na czas głębokiego uśpienia systemu BOD włączonego fuse bitami. Chodzi o jak największe ograniczenie prądu pobieranego przez µC zasilanego z baterii, co przekłada się na wydłużenie czasu pracy urządzenia. Mikrokontroler w głębokim uśpieniu pobiera, wg datasheeta, przy 3.5V i w temperaturze pokojowej 0.2µA. Podystem BOD w tych samych warunkach pobiera 18µA. Różnica jest znacząca, jest więc o co walczyć.
W tym wątku topic21677.html pojawiło się zdanie, że wyłączanie BOD działa nie tak jak powinno czy może w ogóle nie działa. Postanowiłem to sprawdzić.
Na breadobard trafił egzemplarz Attiny13a kupiony na początku 2015r. w TME. Złożyłem prosty układ z jednym buttonem i LED.
Obrazek
Program miał wyłączyć wszystkie peryferia µC, za wyjątkiem pinów dla switcha i LED a następnie wprowadzić µC w tryb Power Down. Dla sprawdzenia, że wszystko działa jest button, który miał wybudzać µC, po wybudzeniu ma się zapalić dioda na 1 sekundę. Do sprawdzenia miał być prąd pobierany w fazie Power Down przy dwóch przypadkach: bez włączonego BOD, oraz z włączonym BOD wyłączanym programowo na czas uśpienia.
Oto program:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Funkcja (a właściwie wstawka assemblerowa) sleep_bod_disable() wyłącza BOD przy zachowaniu wymaganej procedury. Przy teście z włączonym BOD oczywiście zostaje odkomentowana.

Przebieg 1, z wyłączonym BOD.
Ustawienia fuse bitów:
Obrazek

Pobór prądu w Power Down dla 5V i 3.3V

ObrazekObrazek

Przebieg 2, z włączonym BOD
Ustawienia fuse bitów:
Obrazek

Pobór prądu w Power Down dla 5V i 3.3V

ObrazekObrazek

Jak widać dla napięcia zasilania 5V prąd jest identyczny jak poprzednio, a więc programowe wyłączanie BOD jak najbardziej działa.
Dla napięcia 3.3 prąd jest dosyć spory. Co się stało? Jako, że próg BOD został ustawiony na 4.3V, przypuszczam więc, że system BOD nie dopuszcza nawet do uśpienia µC tylko utrzymuje go w stanie permanentnego resetu. Wg datasheet pobór prądu w stanie reset, nie licząc prądu płynącego przez reset pullup, to 0.4mA. Do tego dodać trzeba niewyłączone peryferia, więc pasuje do teorii.

Tak więc programowe wyłączanie BOD, uważam że działa zgodnie z datasheetem. Natomiast, jako, że przy ustawieniu we właściwościach projektu procesora na attiny13 (bez A na końcu) wstawka sleep_bod_disable() generuje błąd "implicit declaration of function" przyjmuje, że ficzer jest dostępny w nowszych egzemplarzach µC.
Przy okazji wypływa sprawa, że jako iż procesory z literką A i bez tej literki nie są w rzeczywistości identyczne, pomijanie tej różnicy przy ustawieniach projektu nie jest tak do końca bezpieczne.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2018, o 00:19 
Offline
Moderator
Avatar użytkownika

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

ciekawie przeprowadzony eksperyment

_________________
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 gru 2018, o 13:17 
Offline
Użytkownik
Avatar użytkownika

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

Faktycznie ciekawe doświadczenie i wnioski. Kiedyś właśnie walczyłem z opcją softowego wyłączania BODa i niejako poległem, być może właśnie przez fakt, który kolega wydedukował.
Przy prockach attiny13 jest to może bardziej proste (w przetoczonym na górze poście napisałem o prockach attiny13 jednakże jak teraz sobie poszperałem, to testy przeprowadzałem na attiny45 i 85 bo tiny13 okazał się "za mały" do projektu który tworzyłem)
A przy prockach attiny45/85 problem jest taki, że nie ma wersji z literką A na końcu. Nota mówi że softwarowe wyłączenie BODa jest możliwe od określonej rewizji wydania, niestety sposób odszyfrowywania danej rewizji z posiadanego egzemplarza jest mglisty, i według tego co zrozumiałem posiadane przeze mnie egzemplarze powinny taką możliwość posiadać. Niestety wówczas nie udało mi się uśpić procka z wyłączonym programowo BODem. Być może właśnie dla tego że napięcie było zbyt niskie, a być może jednak miałem starszą rewizję. Tutaj post który kiedyś nasmarowałem - dziwne, bo wydawało mi się że było to kawał czasu temu a tymczasem to zaledwie kilka miesięcy :lol:



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] 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