Witam,
mam poważny problem. Chciałbym sygnał taki jak dałem na rysunku zmienić na taki jak niżej, czyli najnormalniejszy cyfrowy. Sygnał pierwotny to sinusoidalny sygnał o stałej częstotliwości (nie wiem jaka, ale chyba to nie jest ważne). Jest to sygnał cyfrowy(modulowany cyfrowo), logiczna jedynka to sekunda w której pierwsze 200ms jest ciche, zero logiczne to sekunda w której pierwsze 100ms jest ciche. Bity odpowiadają równo sekundzie i podawane są tak jak napisałem. Potrzebuję ten sygnał w postaci cyfrowej aby podłączyc go do 8051. Może robiliście już coś takiego, albo macie jakieś pomysły? Bo ja nie mam pojęcia jak to zrobić. Wystarczy coś prostego, może jakiś komparator czy coś, byle aby procek rozpoznawał czy to stan wysoki czy niski. Jeśli już zechciałby ktoś pomóc, bardzo bym prosił, o nawet krótki, ale raczej dokładny opis działania układu
Pozdrawiam
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięsygnał analogowy>sygnał cyfrowy
Moderatorzy:Jacek Bogusz, Moderatorzy
- Załączniki
-
- sygnal.GIF
- (8.26KiB)Pobrany 230 razy
1. prostujesz i lekko wygładzasz sygnał (z pomocą oscyloskopu)
2. wzmacniasz go tak, aby różnica pomiędzy niższą a wyższą amplitudą była poza stanem zabronionym w bramkach TTL (użyj przeżutnika schmitta albo komparatora napięcia ze sprzężeniem zwrotnym na jakimkolwiek wzmacniaczu operacyjnym, a lepiej LM339 - otwarty kolektor)
3. podłącz tak uformowany sygnał do wejścia przerywającego procesora (ujemne zbocze aktywne)
4. w funkcji obsługi przerwania uruchom timer o czasie dokładnie pomiędzy 100 a 200ms (czyli 150ms)
5. gdy timer zgłosi event - zatrzymaj go, wczytaj stan wejścia, zaneguj go i zapisz do swojego bufora RX
just note: nadajnik musi zacząć transmisję od stanu wysokiego (pilot) jeśli chcesz natychmiast wysyłać bity danych. Czas nadawania pilota powinien być zdecydowanie dłuższy od czasu trwania pełnego bitu, aby była możliwość wykrycia początku transmisji.
To tylko jeden sposób z wielu
2. wzmacniasz go tak, aby różnica pomiędzy niższą a wyższą amplitudą była poza stanem zabronionym w bramkach TTL (użyj przeżutnika schmitta albo komparatora napięcia ze sprzężeniem zwrotnym na jakimkolwiek wzmacniaczu operacyjnym, a lepiej LM339 - otwarty kolektor)
3. podłącz tak uformowany sygnał do wejścia przerywającego procesora (ujemne zbocze aktywne)
4. w funkcji obsługi przerwania uruchom timer o czasie dokładnie pomiędzy 100 a 200ms (czyli 150ms)
5. gdy timer zgłosi event - zatrzymaj go, wczytaj stan wejścia, zaneguj go i zapisz do swojego bufora RX
just note: nadajnik musi zacząć transmisję od stanu wysokiego (pilot) jeśli chcesz natychmiast wysyłać bity danych. Czas nadawania pilota powinien być zdecydowanie dłuższy od czasu trwania pełnego bitu, aby była możliwość wykrycia początku transmisji.
To tylko jeden sposób z wielu
Oscyloskop jak rozumiem przydałby się aby nie wygładzić "za bardzo", tzn aby czas rozładowywania sie kondensatora nie wchodził na stany niskie(sygnału pierwotnego po komparatorze), aby tylko być pewnym. Do sapero: od 3 punktu nie rozumiem . Ale z komparatorem tak zrobie, da mi wyraźny sygnał prostokątny. Teraz to program na procesorze będzie zliczał mi odstępy, nie pomyślałem. Program będzie czekał, aż na komparatorze(podłączonym do jednego z portów procesora) pojawi sie konkretny stan i od tego czasu będzie odliczał te 150ms(w tym czasie może oczywiście robić wiele operacji, ale chodzi o ten okres) po 150ms znów sprawdzi stan portu i go odczyta. Teraz odlicza 1000ms i znów sprawdza stan portu itd. Dzięki.
P.S.
Wiecie gdzie można kupić AT89Cx051 tanio(do 4pln - 5pln za sztukę) w internecie. Tylko nie TME bo mam przykre doświadczenia z kosztami.
P.S.
Wiecie gdzie można kupić AT89Cx051 tanio(do 4pln - 5pln za sztukę) w internecie. Tylko nie TME bo mam przykre doświadczenia z kosztami.
Sprawdzałeś ofertę seguro ? www.seguro.plWiecie gdzie można kupić AT89Cx051 tanio(do 4pln - 5pln za sztukę) w internecie. Tylko nie TME bo mam przykre doświadczenia z kosztami.
Re: sygnał analogowy>sygnał cyfrowy
A właśnie ze jest. Z opisu wynika, że "bity" sa przesyłane co 1 sekundę. Jeżeli znasz czestotliwość sinusoidy na przykład 1kHz, to odfiltrowujesz przebieg aktywnym filtrem dolnoprzepustowym o fg=np 200...500Hz i juz nie masz sinusa. Jeżeli po filtrowaniu masz przebieg trochę podobny do TTL L=0...07V, H>2,5V to możesz go podłączyc do uC, jeżeli nie to trzeba go wzmocnic/stłumic i ew odseparować transoptoremWitam,
mam poważny problem. Chciałbym sygnał taki jak dałem na rysunku zmienić na taki jak niżej, czyli najnormalniejszy cyfrowy. Sygnał pierwotny to sinusoidalny sygnał o stałej częstotliwości (nie wiem jaka, ale chyba to nie jest ważne).
Jest to sygnał cyfrowy(modulowany cyfrowo), logiczna jedynka to sekunda w której pierwsze 200ms jest ciche, zero logiczne to sekunda w której pierwsze 100ms jest ciche. Bity odpowiadają równo sekundzie i podawane są tak jak napisałem. Potrzebuję ten sygnał w postaci cyfrowej aby podłączyc go do 8051. Może robiliście już coś takiego, albo macie jakieś pomysły? Bo ja nie mam pojęcia jak to zrobić. Wystarczy coś prostego, może jakiś komparator czy coś, byle aby procek rozpoznawał czy to stan wysoki czy niski.
Na tym etapie cokolwiek zrobisz sprzetowo bedzie zbyt skomplikownae - nawet jeden opornik to za duzo . Sygnał w takiej postaci identyfikujesz wyłacznie programowo- bardzo prosto zresztą poprzez pomiar czasu "ciszy"
Jeśli już zechciałby ktoś pomóc, bardzo bym prosił, o nawet krótki, ale raczej dokładny opis działania układu
Pozdrawiam
Oczywiście, nie mam nic do samego sklepu. Chodzi o to, że zrobiłem zamówienie na małą kwotę, nie było na stanie wszytkiego, więc przysłali w dwóch turach. Tylko, że i za jedną i za druga musiałem widocznie płacić, ponieważ cena urosła do wysokiej, poza tym dostałem niektóre produkty których nie zamawiałem. Ja mam takie doświadczenie, możliwe, że to jedyny przypadek. To moje doświadczenie - nie robie złej reklamy witrynie!!!
Ale przy składaniu zamówienia w TME masz cały czas kontrolę nad tym co zamawiasz... jeżeli nie ma towaru w magazynie (a widzisz stany magazynowe) to liczysz się z tym że dostaniesz go później.Oczywiście, nie mam nic do samego sklepu. Chodzi o to, że zrobiłem zamówienie na małą kwotę, nie było na stanie wszytkiego, więc przysłali w dwóch turach.
A na końcu jeszcze akceptujesz zamówienie co do ilości towaru... faktycznie lecą trochę w kulki bo piszą że nie pobierają ponownej opłaty za wysyłkę ( około 13 zł) ale doliczają opłatę manipulacyjną do drugiej paczki (13 zł)
Kto jest online
Użytkownicy przeglądający to forum: Google [Bot] i 92 gości