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



Teraz jest 3 gru 2024, o 18:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 31 paź 2022, o 13:41 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Witam,
potrzebuję zabudować generator przebiegu prostokątnego 44kHz zmodulowany przebiegiem o częstotliwości 125Hz (czyli co 4ms załączać sygnał 44kHz na 4ms).
Z racji, że układ chcę zasilać bezpośrednio z baterii 2xAA bez dodatkowych przetwornic zasilania, zrezygnowałem z budowy takiego układu na np. multiwibratorze 4047...
W notach katalogowych np. ATtiny45(V), ATtiny44(V) - czytam, że są wersje oznaczone dodatkowo "V" które pracują od napięcia zasilania 1.8V i mogą być taktowane 0-4MHz, ale dalej często występuje podział napięcia zasilania na VCC = 1.8V - 2.4V, VCC = 2.4V - 5.5V ( ATtiny25V/45V/85V: 0 – 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V), czy trzeba w jakiś sposób ustawiać w mikrokontrolerze wybrany zakres napięce zasilania? czy po prostu jeśli taktuję w zakresie 0-4MHz napięce zasilania może być dowolne od 1.8V dO 5.5V? (Uparłem się na wersję V ponieważ ATtiny bez tego oznaczenia ma zakres napiecia zasilania od 2.7V - co jest chyba trochę za mało do pracy na bateriach 2xAA? )
Kolejne pytanie to czy dobrym pomysłem jest zrealizowanie takiego przebiegu sygnału za pomocą dwóch timerów i usypianie cora w tryb Idle? tak aby jeden timer generował przerwania co 4ms i załączał drugi Timer generujący PWM50% o częstotliwości 44kHz? a może wybrać jakiś inny tryb generowania takiego przebiegu? Z tego co czytam ATtiny posiada tylko 8MHz wewnętrzny oscylatora albo 128kHz, czy warto w takim przypadku zastosować zewnętrzny generator 1MHz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2022, o 14:54 
Offline
Moderator
Avatar użytkownika

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

...kuba... napisał(a):
czy trzeba w jakiś sposób ustawiać w mikrokontrolerze wybrany zakres napięce zasilania?

absolutnie nie trzeba - tak jak piszesz - po prostu przy danym zakresie napięć - stosuj odpowiednie taktowanie

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

i oczywiście że możesz zasilać np podczas programowania +5V a później sobie podłączać bakterie ;)

------------------------ [ Dodano po: 3 minutach ]

...kuba... napisał(a):
czy dobrym pomysłem jest zrealizowanie takiego przebiegu sygnału za pomocą dwóch timerów i usypianie cora w tryb Idle? tak aby jeden timer generował przerwania co 4ms i załączał drugi Timer generujący PWM50% o częstotliwości 44kHz?

czy dobrym to nie wiem , zależy od potrzeb - zrób sobie prototypa ale spokojnie można to uzyskać tak jak piszesz ... im więcej ILDE tym mniejszy pobór prądu będzie

------------------------ [ Dodano po: 4 minutach ]

...kuba... napisał(a):
tak aby jeden timer generował przerwania co 4ms i załączał drugi Timer generujący PWM50% o częstotliwości 44kHz?

Akurat ta seria procków ma dwa timery więc spokojnie powinno to być do realizacji

------------------------ [ Dodano po: 7 minutach ]

...kuba... napisał(a):
Z tego co czytam ATtiny posiada tylko 8MHz wewnętrzny oscylatora albo 128kHz, czy warto w takim przypadku zastosować zewnętrzny generator 1MHz?


Panie kochany toż KAŻDY procek AVR domyślnie jest taktowany 1MHz wewn. oscylatorem - owszem ma wewn 8MHz ale nie słyszałeś o fusebicie CKDIV8 ? ;) Otwórz sobie procka attiny45 w MkAvrCalculator i sprawdź co on ma w zakładce Fusy Uproszczone zamiast wymyślać co on ma ;)

Oczywiście jeśli się programowo wyrobisz przy fabrycznym 1MHz z wewn oscylatora to znowu będzie oszczędność jak chodzi o pobór prądu

więc testuj, testuj, testuj ;)

_________________
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: 31 paź 2022, o 17:18 
Offline
Użytkownik

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

Popatrz na filmik Mirka o lampce namiotowej - znajdziesz tam trochę przydatnych wskazówek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2022, o 20:01 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

mirekk36 napisał(a):
po prostu przy danym zakresie napięć - stosuj odpowiednie taktowanie
Dziękuję za szybką i konkretną odpowiedź.

mirekk36 napisał(a):
Panie kochany toż KAŻDY procek AVR domyślnie jest taktowany 1MHz wewn. oscylatorem - owszem ma wewn 8MHz ale nie słyszałeś o fusebicie CKDIV8 ?
"Odrobiłem pracę domową" i faktycznie nawet w nocie katalogowej ATtiny.. jest sekcjia:
Default Clock Source
"The device is shipped with CKSEL = “0010”, SUT = “10”, and CKDIV8 programmed. The default clock source setting is therefore the Internal RC Oscillator running at 8 MHz with longest start-up time and an initial system clock prescaling of 8, resulting in 1.0 MHz system clock. This default setting ensures that all users can make their desired clock source setting using an In-System or High-voltage Programmer."

mirekk36 napisał(a):
Akurat ta seria procków ma dwa timery więc spokojnie powinno to być do realizacji
Właśnie stąd wziąłem je pod uwagę (ATtiny44V jest dostepny "od ręki" i ma Timer0-8Bit oraz Timer1-16Bit), ale nie jestem do końca przekonany, bo dla taktowania 1MHz zamiast 22.7272..ms (44kHz) wychodzi mi 23ms (43.47kHz) albo 22ms (45.4545...kHz), nie wiem jak inaczej można to rozwiązać oprócz podniesienia taktowania? uC nic wiecej by nie robił wiec chciałbym zejść z taktowaniem jak najniżej.

micky napisał(a):
Popatrz na filmik Mirka o lampce namiotowej
Dzięki za podpowiedź, poszukam tam pomocnych wskazówek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2022, o 20:56 
Offline
Moderator
Avatar użytkownika

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

...kuba... napisał(a):
nie wiem jak inaczej można to rozwiązać oprócz podniesienia taktowania?

Ty lepiej weź pod uwagę, że w ogóle tolerancja wewn oscylatora w tych prockach avr to aż 5% a na dodatek dość mocno zależna od temperatury - więc może ci się to rozjeżdżać i tak i tak - jeśli ty chcesz mieć AŻ TAKĄ mega dokładną częstotliwość 44.000000000 kHz

Proponuję zastanów się, czy w ogóle aż taka dokładność jest ci rzeczywiście potrzebna? do czego to ma służyć ? Przetestuj sobie na byle płytce testowej czy to twoje ustrojstwo nie będzie działało np z częstotliwością np 41 kHz albo 46 kHz - bo coś czuję przez skórę (zgaduję) że będzie ale jak nie powiesz co to ma być to można sobie tylko gdybać

i jeśli twój odbiornik będzie tolerował takie różnice to spokojnie możesz śmigać na F_CPU = 1 MHz ;) nawet jeśli wyjdą ci częstotliwości takie jakie pisałeś i nawet jeśli temperatura będzie się zmieniać.

A jeśli twój odbiornik toleruje "brzytwę" = 44.00000 kHz to panie będziesz musiał przede wszystkim zacząć od kwarca zewnętrznego z takim prockiem

_________________
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: 1 lis 2022, o 00:57 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

mirekk36 napisał(a):
Przetestuj sobie na byle płytce testowej czy to twoje ustrojstwo nie będzie działało np z częstotliwością np 41 kHz albo 46 kHz - bo coś czuję przez skórę (zgaduję) że będzie ale jak nie powiesz co to ma być to można sobie tylko gdybać
Urządzenie będzie w niewielkiej obudowie używane latem z dużym prawdopodobieństwem, ze będzie wyeksponowane na słońce. Ma to sterować diodą nadawczą IR wysyłającą sygnał świetlny do scalonego odbiornika podczerwieni, niestety nie znam parametrów tego odbiornik. Ma jedynie oznaczenie DJ 81m4 albo B1m4 na które internet milczy.. ;/ Podane częstotliwości zmierzyłem podpinając się oscyloskopem (w temperaturze pokojowej) pod zbudowany już przez kogoś nadajnik również na uC 8pin SMD z rozkładu nóżek wychodzi jakby PIC ale nie udało mi się nawiązać z nim połączenia programatorem ;/.
Myślałem jeszcze o tym, że jak braknie trochę do uzyskania 44kHz na 1MHz to "doregulować" to zmieniając współczynnik kalibracji OSCCAL tak, żeby wyszedł zakładany przebieg ;)) Ale faktycznie temperatura pracy znacznie może się zmieniać i ciężko ją przewidzieć, wiec..:
Wpadło mi teraz do głowy żeby przeprowadzić test: powiedzmy zaczynając od 36kHz zwiększając częstotliwość sprawdzić kiedy odbiornik zacznie reagować i przy ilu kHz przestanie... 8-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lis 2022, o 08:47 
Offline
Moderator
Avatar użytkownika

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

...kuba... napisał(a):
Wpadło mi teraz do głowy żeby przeprowadzić test: powiedzmy zaczynając od 36kHz zwiększając częstotliwość sprawdzić kiedy odbiornik zacznie reagować i przy ilu kHz przestanie.

ale o tym ci pisałem, i jeśli chodzi o odbiorniki podczerwieni to znając życie mogę cię zapewnić na 1000% że co do tej nośnej to zadziała ci od ok 30 kHz do 56 Khz ;)

pokaż zdjęcie twojego odbiornika podczerwieni - jeśli to jakiś w tym rodzaju

Obrazek

to możesz być pewien na 2000% tego co napisałem wyżej ;)

_________________
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: 1 lis 2022, o 23:04 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Tak to coś tego typu układzik:
ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2022, o 07:00 
Offline
Moderator
Avatar użytkownika

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

...kuba... napisał(a):
Tak to coś tego typu układzik:

no to jedne z najbardziej typowych układów ;) .... więc co ty się w ogóle zastanawiasz? Tak jak pisałem widać, że te twoje 44 kHz to nośna dla podczerwieni, a 125 Hz to impulsy po 8 ms ...

więc tak jak mówię - twoja nośna może mieć OLBRZYMIE rozbieżności a ten odbiornik i tak to wyłapie. Przecież weź że byle procka, zestaw uruchomieniowy, stykówkę i odpal sobie ;) i sprawdź sam - zdziwisz się może - ale widać, że być może nie miałeś w ręku mojego Greenbooka ale i Bluebooku o tym piszę ;) Tak się składa, że komunikacja w podczerwieni to mój konik. Ileż to osób szuka identycznego odbiornika albo na konkretną częstotliwość - a później jak się dowiadują, jaką one mają tolerancję olbrzymią dla nośnej to zdziwienie na maxa ;)

proszę pierwszy lepszy z tme

Obrazek

Oczywiście zawsze później ludzie się pytają mnie - no dobra to po co robią te odbiorniki na różne częstotliwości i czym się różnią? Różnią się tylko tym, że jeśli np masz odbiornik na 40 kHz a zamienisz go na 36 kHz to zmniejszy się ciut ciut zasięg pilota podczerwieni. Ale o ile w praktyce ? No np jeśli działał na oryginalnym odbiorniku z odległości powiedzmy 15 m to po zamianie odbiornika na 36 kHz może działać na 12 m ;)

A zrobienie nadawania dla testu takiego sygnału to wcale bez timerów można zrobić - wręcz używanie do tego timerów to nieporozumienie - skoro to taki sygnał - mówię o tym 125 kHz . Tą modulację to można nawet na delayach zrobić dla testu tak na szybko - tylko nośną generować na timerze.

I mówię dla testu zrób sobie nośną np 38 kHz i będziesz kolejną zdziwioną osobą że twój układ będzie działał w pełni poprawnie ;)

Wtedy też już będziesz wiedział , że możesz wykorzystać wszystko do obniżenia poboru prądu w tym taktowanie 1MHz .... aha i to nawet z wewn oscylatora. Uwierz mi ani słaba tolerancja 5% wewn oscylatora w AVRach ani zmiany temperaturowe które zmienią ci nośną ale też sygnał modulujący - nie spowodują ci zakłócenia pracy urządzenia. Bo zarówno nośna jak i ta częstotliwość nośna mają też dużą tolerancję. Nie ma tu nawet w ogóle o czym dyskutować za długo ;)

_________________
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: 8 gru 2022, o 13:02 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

mirekk36 napisał(a):
twoja nośna może mieć OLBRZYMIE rozbieżności a ten odbiornik i tak to wyłapie. Przecież weź że byle procka, zestaw uruchomieniowy, stykówkę i odpal sobie
mirekk36 napisał(a):
I mówię dla testu zrób sobie nośną np 38 kHz i będziesz kolejną zdziwioną osobą że twój układ będzie działał w pełni poprawnie
Tak zrobiłem i dla sygnału w zakresie 38 kHz - 54 kHz reakcja odbiornika praktycznie była cały czas taka sama (testowy nadajnik w stosunkowo dalekiej odległości z przysłoniętą diodą IR w celu osłabienia mocy sygnału świetlnego).

Mam jeszcze pytanie ponieważ w podanym układzie zasilanym z baterii 2xAA uC steruje diodami poprzez rezystor 1kOhm na bazę tranzystora SMD z oznaczeniem na obudowie "Y1" wyczytałem, że może być to tranzystor SS8050, czy tutaj też do sterowanie diodą IR zastosować tranzystor 8050? czy może coś z serii 2nxxx ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2022, o 13:57 
Offline
Moderator
Avatar użytkownika

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

a co za różnica jaki tranzystor małej mocy - byle był taki typ jak jest obecnie - czy to PNP czy NPN

_________________
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 2022, o 15:38 
Offline
Użytkownik

Dołączył(a): 08 cze 2012
Posty: 28
Pomógł: 0

Własnie nie wiedziałem czy będzie jakaś różnica biorąc pod uwagę, że napięcie zasilania będzie w zakresie 2-3V...

Co do sposobu wygenerowania założonego przebiegu (44kHz + 125Hz) robię tak:
Testowo dla ATmega328P (docelowo chcę ATtiny25V lub ATtiny24V):
1. 44kHz generuję Timerem w trybie CTC z włączonym Output Compare dla Pin wyjściowego w trybie Toggle - ponieważ nie potrzebuję zmieniać wypełnienia PWM tylko mam stałe 50%.
- czyli Ustawiam Timer1 22kHz w tryb CTC (Mode 4) oraz "Toggle OC1A/OC1B on Compare Match." tak aby wygenerować sygnał prostokątny 44kHz.
2. 125Hz generuję innym Timerem w trybie CTC z włączoną obsługą przerwania i w przerwaniu na zmianę włączam i wyłączam pin OC1A zmieniając wartość COM1B0 z jeden na zero
- czyli Ustawiam Timer2 125Hz w tryb CTC (Mode 2) oraz włączam wewnętrzne przerwanie Timera2 "OCIE2A" aby w obsłudze przerwania sterować włączaniem sygnału z Timer1 na OC1A.
3. włączam tryb IDLE dla głównego CORE - myślałem o POWER_DOWN ale dla ATtiny w tym trybie sllep chyba wszystkie Timery są uspane ;/

zastanawiam się, czy można to zrobić za pomocą jednego Timera obsługując wewnętrzne przerwanie tak aby wygenerować odpowiednią liczbę impulsów 44kHz a potem zmienić ustawienia Timera tak aby przez czas odpowiedni dla częstotliwości 125Hz nic nie generował po czym ponownie wygenerował kilka impulsów 44kHz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 gru 2022, o 20:29 
Offline
Moderator
Avatar użytkownika

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

...kuba... napisał(a):
zastanawiam się, czy można to zrobić za pomocą jednego Timera obsługując wewnętrzne przerwanie tak aby wygenerować odpowiednią liczbę impulsów 44kHz a potem zmienić ustawienia Timera tak aby przez czas odpowiedni dla częstotliwości 125Hz nic nie generował po czym ponownie wygenerował kilka impulsów 44kHz.

Trzeba potestować a nie teoretyzować ;) ... ale założenia opisane wcześniej mas dobre - teraz czas na próby

_________________
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 1 gość


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