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



Teraz jest 1 sty 2025, o 20:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 15 lut 2013, o 23:20 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

Witam

Otóż zabrałem, się teraz za budowę pewnego układu gdzie energooszczędność jest najwyższym priorytetem. I teraz tak, w założeniach projektu użytkownik za pomocą zworki będzie mógł ustalić jeden z kilku trybów pracy. Nie jest to switch więc zworka zostanie tam na stałe.

Co ważne: Sprawdzenie warunków (gdzie jest zwora) odbędzie się tylko raz na początku programu (przed while(1) ) , więc potem najlepiej było by wystawić na tych pinach zero żeby pin gdzie jest zwora nie pobierała prądu.

I teraz tak, mógłbym po prostu podciągnąć piny procka do Vcc i z drugiej strony goldpiny podłączyć do GND. Ale wtedy prąd będzie non stop płynął. Mały bo mały (~1mA), ale jak dla tego projektu jest on ciągle za duży.

A więc wpadłem na pomysł żeby po sprawdzeniu warunku wystawić na wszystkich pinach (gdzie są zwory) zero.
I było by to dobre rozwiązanie, gdyby nie to, że z moich obserwacji wynika że nie zawsze na pinie jest 0V. Więc jak widać to napięcie delikatnie pływa, a połączenie takiego pinu do GND będzie niezbyt dobrym pomysłem.

I tutaj dochodzimy do sedna tego postu, ponieważ wymyśliłem pewne rozwiązanie, ale nie wiem czy jest ono poprawne.

Najpierw schemat (rysowany w paincie za co serdecznie przepraszam, ale na obecnym komputerze nie mam jeszcze Eagle)

Obrazek

A więc, na początku programu pin A podciągnięty do Vcc, a na resztę (B...E) wystawione zero. Po sprawdzeniu gdzie jest zwora (sprawdzenie warunków if(napiecie_na_pinie)), wszędzie wystawiam zera (A...E). Piny te nie będą już potrzebne. rezystor R1=10k jest po to, żeby w momencie pojawienia się na którymś pinie napięcia o którym pisałem wcześniej, prąd był jak najmniejszy. Mam nadzieję że jasno opisałem swój koncept.

Jak uważacie, czy jest to dobry pomysł? uC to ATtiny48 zasilany napięciem 3V

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2013, o 23:54 
Offline
Moderator
Avatar użytkownika

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

Bardzo dobry koncept - to jest taki jakby jeden wiersz wyrwany z klawiatury matrycowej ;)

Ale w razie czego możesz też pomyśleć nad klawiaturą analogową w takim przypadku przy tylu klawiszach też się sprawdzi świetnie a użyjesz TYLKO JEDNEGO pinu procka ;)

_________________
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 lut 2013, o 08:10 
Offline
Moderator
Avatar użytkownika

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

No tak wziąłem pod uwagę samo podłączenie. To się da oprogramować ale Gwyn dobrze podpowiada co do algorytmu działania programu że tak jak opisałeś możesz mieć kłopot.

_________________
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 lut 2013, o 19:30 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

GwynBleidD napisał(a):
Jak wystawisz swoje "zero" (wnioskuję, że to stan niski) na pinach B-E i podciągniesz do VCC pin A to ciekaw jestem jak sprawdzisz gdzie jest zwora, hm? ;> powinno to być raczej odwrotnie: na pin A stan niski, a na B-E podciągnięcie do VCC (nie mylić ze stanem wysokim). W ten sposób patrzysz na którym Ci się VCC do zera zbiło.


Oczywiście, walnęły mi się kierunki co do czego :) Dzięki za tę sugestię. W takim razie zrezygnuje z tego dodatkowego pinu i na sztywno podłącze końce goldpinów do GND.

GwynBleidD napisał(a):
ustaw po prostu wszędzie wysoką impedancję i basta :) Możesz też nie marnować 1 pinu na GND i podłączyć po prostu jeden koniec każdej ze zwor na sztywno do GND. Gdy przestawisz piny w stan wysokiej impedancji (czyt. ściągniesz podciągnięcie do VCC) to prąd już żaden nie popłynie, bo niby skąd i gdzie ;)


Rozumiem, że po wszystkim ustawiam wszystkie piny ze zwor na wejścia, i w rejestrach ustawiam im zero? Bo szczerze powiedziawszy nigdy celowo nie ustawiałem stanu HiZ.

Co do klawiatury analogowej, to zwora jest właśnie z powodu wyszczególnionych założeń projektu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 21:48 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

OK, jeszcze jedno pytanie. Na chwile obecną pracuje na zegarze 1MHz, czy da się jakoś programowo (podobnosz się da ;) )zmniejszyć ten zegar do np. 100kHz? Chodzi mi głównie o o zmniejszenie poboru prądu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 22:19 
Offline
Moderator
Avatar użytkownika

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

a jaki to procek ? nie napisałeś

bo jeśli ma fusebit CKDIV8 to możesz go włączyć i już będziesz miał 1MHz/8 ;)

ale te mają też często nawet 128kHz

_________________
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 lut 2013, o 22:28 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

szczegóły masz w specyfikacji mikrokontrolera na stronie 34-35.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 22:29 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

uC to ATtiny48 zasilany napięciem ~3V

W datasheet jest napisane "Internal 128 kHz Oscillator" gdy CKSL= 11. Więc da się, ale z tego co widzę to mógłbym wrzucić zewnętrzny oscylator 100kHz?

EDIT:
Dobra, wszystko jasne (te Datasheet-y faktycznie mają wszystko :])

Mogę podpiąć zewn. oscylator ale nie jako "kwarc", tylko jako zewnętrzny wyspecjalizowany układ. Nie bede tak kombinował i pozostanę przy 128kHz.

Dziękuję wszystkim za pomoc



Ostatnio edytowano 16 lut 2013, o 22:37 przez kiclaw, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2013, o 22:32 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

A pomyślałeś o programowaniu.
Preskaler to fajna sprawa, bo możesz zmieniać taktowanie podczas pracy. Ta wartość 1MHz = 8MHz/8 jest ładowana podczas resetu, a potem możesz sobie częstotliwość zmniejszać i zwiększać programowo. Szkoda, że nie można tak przełączać się na zewnętrzny kwarc jak to jest już możliwe w nowszych procesorach.

_________________
Dragonus Cracovus: Biomagia



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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