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



Teraz jest 5 lut 2025, o 12:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 14 sty 2015, o 21:20 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Mam pytanie. Projektuję pewien układzik na ATTiny13. Po wykonaniu pewnych czynności a w zasadzie po zaniku stanu wysokiego na jednym z pinów i odliczeniu odpowiedniego czasu procesor będzie miał przejść w tryb IDDLE lub POWER DOWN. Program będę pisał w bascomie.

Jak wiadomo ze wspomnianych trybów uśpienia procek można wybudzić na kilka sposobów. Między innymi przerwaniami zewnętrznymi lub wewnętrznymi, a także sprzętowym resetem, ale jak wspomniałem wszystkie piny mam zajęte poza pinem RESET i tu dochodzimy do sedna sprawy.
Mogę wykonać reset zewnętrzny tylko pytanie jak najprościej to wykonać ?

Warunek jest taki. Jak procesor przejdzie w tryb uśpienia to reset procesora ma nastąpić tylko po zaniku napięcia na jednym z pinów i ponownym jego pojawieniu się.

Czyli na jakimś pinie panuje wymuszony przyjściowy stan wysoki, procesor przechodzi w stan uśpienia ale na danym pinie wciąż jest zewnętrzny stan wysoki. Po jakimś czasie na tymże pinie stan wysoki zmienia się na niski czyli napięcie wejściowe znika.

Procek jest cały czas zasilany w stanie uśpienia po czym na danym pinie pojawia się stan wysoki wymuszając zewnętrzny reset procesora.

Mam nadzieję że dobrze to zobrazowałem....

Wiem że wystarczy zrobić prosty filtr RC sterowany poprzez tranzystor NPN. tylko jaka wartość elementów ? Nie chcę dobierać na "sztukę", może ktoś ma sprawdzony układ. Wiadomo że wystarczy użyć wzoru T=R*C tylko czy elementy na schemacie będą wystarczające ? Z obliczeń wynika mi że tak bo według noty katalogowej wystarczy 2,5us. Chyba że się mylę...

Wyglądało by to jak na załączonym obrazku.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 22:14 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Ponieważ reset może nastąpić po kilkudziesięciu godzinach a nawet kilku dniach, w skrajnych przypadkach nawet po kilkudziesięciu dniach. Watchdog nie działa (z tego co wiem) na tak długim odcinku czasu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 22:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Budzisz uC co tyle na ile pozwala WDT, zwiększasz jakiś licznik i dalej go usypiasz. Jak ten twój licznik osiągnie liczbę odpowiadającą np 68h to wykonujesz docelowe zadanie.

Ewentualnie można zrobić tak że tym pinem co chcesz zrobić reset to po prostu zasilisz swoją tinny13 (oczywiście poprzez jakiś tranzystor) i ona wykona co ma wykonać i pójdzie spać. Następnie ściągniesz sygnał z pinu i cały układ wyłączy się.

Kolejne rozwiązanie to pin sterujący dajesz bezpośrednio do resetu i gdy jest stan niski na nim to tinny13 trzymana jest w stanie resetu (nie wiem jak z poborem prądu). Następnie wystawiasz stan wysoki, tinny13 wstaje, robi coś i idzie spać.

_________________
eDiyCraft.blogspot.com



Ostatnio edytowano 14 sty 2015, o 22:35 przez savian86, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 22:31 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

No tak tylko wartość zwiększanej zmiennej należało by zapisywać gdzieś i to raczej w pamięci nieulotnej czyli EPROM bo tak to zginie a jak wiadomo EPROM ma ograniczoną ilość cykli zapisu. Przy takiej eksploatacji tejże pamięci skończy się ona bardzo szybko.
Do tego ja muszę wybudzać procesor na żądanie a nie wówczas gdy się sam wybudzi. To ja muszę go obudzić o dowolnej porze dnia i nocy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 22:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

matrix napisał(a):
No tak tylko wartość zwiększanej zmiennej należało by zapisywać gdzieś i to raczej w pamięci nieulotnej czyli EPROM bo tak to zginie a jak wiadomo EPROM ma ograniczoną ilość cykli zapisu. Przy takiej eksploatacji tejże pamięci skończy się ona bardzo szybko.
Do tego ja muszę wybudzać procesor na żądanie a nie wówczas gdy się sam wybudzi. To ja muszę go obudzić o dowolnej porze dnia i nocy.


Tinny 13 może watchdogiem zgłaszać przerwanie zamiast resetu, wtedy nic ci nie zniknie.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 22:37 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8605
Pomógł: 337

zainteresuj się może http://datasheets.maximintegrated.com/en/ds/DS1233.pdf
??

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 19:45 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

savian86 napisał(a):
Tinny 13 może watchdogiem zgłaszać przerwanie zamiast resetu, wtedy nic ci nie zniknie.

Jeszcze tak watchdoga nie wykorzystywałem.

Cytuj:

Znaczy że mógłbym wykorzystać ten układzik w taki sposób jak poniżej ?

Obrazek

Podanie napięcia na układ DS1233 wywoła reset procka ? Czy wówczas muszę stosować standardowy rezystor 10k w obwodzie resetu procesora ? Z noty katalogowej DS1233 wynika że nie.

Nie patrzcie na niewłaściwy opis wyprowadzeń. Żeby było na szybko to wziąłem 78L05

EDIT 15.01.2015:
Na swojej płycie testowej EVBAVR stestowałem prosty układ według mojego pomysłu. Działa z wartością kondensatora 22nF i działa według moich założeń.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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