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



Teraz jest 21 sie 2026, o 05:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 19 maja 2015, o 18:03 
Offline
Użytkownik

Dołączył(a): 19 lut 2015
Posty: 29
Pomógł: 0

Witam,

Zastanawiam się jak dokładnie można zmierzyć czas na u-procku. Chodzi mi o to, aby na dwa piny podawany był sygnał. W momencie kiedy na jednym z nim pojawi się pik przekraczający pewien ustalony poziom następuje START pomiaru czasu, a gdy ten sam pik pojawi się chwilę później na drugim pinie następuje STOP pomiaru i wyświetlenie wyniku.
Problem polega na tym, że różnica między STARTEM a STOPEM może wynosić kilka- kilkanaście mikrosekund.
Czy taki pomiar jest możliwy?
Czy powinienem do tego wykorzystać przerwania PCINT i któryś z Timerów? Jeśli nie to jak mógłbym swój pomysł zrealizować?
Jeśli mój pomysł z przerwaniami i timerem nie podoła oczekiwanej dokładności to co mógłbym do tego celu wykorzystać, jakiś inny układ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2015, o 21:14 
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

Przerwania odpadają (przynajmniej w sensie w jaki można by je wykorzystać w klasyczny sposób, ponieważ uruchomienie funkcji obsługi przerwania trwa kilka taktów). Należy wykorzystać funkcję Input Capture Timera 1. Niestety jest tylko jedno wejście ICP, ale przykładowo możesz te dwa sygnały podawać poprzez 2 diody. Inne wyjście to użycie komparatora wbudowanego w mikrokontroler, którego wyjście może być źródłem sygnału dla jednostki Input Capture albo dodkowy przerzutnik RS. Aby wyniki były dokładne powinieneś użyć zewnętrzny kwarc o możliwie dużej wartości. Timer z preskalerem 1 przy kwarcu 20 MHz pozwoli mierzyć impulsy z dokładnością 1/20 us.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2015, o 21:31 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Witam
tak krótkie sygnały z różnicą paru mikrosekund nie bardzo da się wykorzystać komparator wbudowany mikrokontrolera odpowiedz z tego co dobrze pamiętam jest rzędu 450ns do chyba 800ns to trochę dużo jeszcze jakieś cykle na program i trochę może być mało , jak komparator to zewnętrzny ultra szybli lub szybki to już czasy rzędu kilku kilkunastu ns. TO już coś.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 07:22 
Offline
Użytkownik

Dołączył(a): 15 cze 2013
Posty: 599
Lokalizacja: Lubin
Zbananowany użytkownik

Pomógł: 35

Kiedyś takie coś rozbiło się na układach cmos.
Generator np 10Mhz czyli rozdzielczość mierzonego czasu 100nS, licznik a sterowanie przez bramke AND miedzy generatorem a licznikiem. wynik z licznkiow przez decodery BCD na wyswietlacz 7 segmentowy.
:D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2015, o 14:00 
Offline
Użytkownik

Dołączył(a): 15 cze 2013
Posty: 599
Lokalizacja: Lubin
Zbananowany użytkownik

Pomógł: 35

Jeszcze podpowiem ze mikrokontroler posiada licznik/liczniki i może on pracować z prawie połową częstotliwością pracy procesora.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 20:01 
Offline
Użytkownik

Dołączył(a): 19 lut 2015
Posty: 29
Pomógł: 0

Nie uzyskałem jeszcze odpowiedzi na pytanie zadane w poście wyżej, jednak zauważyłem pewien problem w podłączeniu (jak?) dwóch sygnałów do pinu ICP1. Co w przypadku kiedy po rozpoczęciu pomiaru zboczem narastającym sygnału pierwszego (START), zbocze narastające drugiego sygnału (STOP) nastąpi w czasie kiedy nadal sygnał pierwszy będzie miał stan wysoki? Czy STOP zostanie niezauważony a pomiar wykonany niepoprawnie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2015, o 21:44 
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

Jeśli chodzi o diody to anodami do źródła sygnału i katodami do ICP1. Podciąganie do plusa tutaj się nie nadaje. Należy podciągnąć zewnętrznym 10k rezystorem do GND. Skoro sygnały mogą być nałożone to szeregowo diodami można dać kondensatory 100 nF. Sprawdziłbym to oscyloskopem czy działa poprawnie. Taki układ będzie reagował na 2 zbocza narastające.

Inny sposób to podanie sygnałów poprzez tranzystory npn, a wtedy podciąganie do plusa będzie dobre. Kolektory należy podłączyć do IP1, emitery do GND, a bazy poprzez rezystory 10k i kondensatory 100nF do źródła sygnału.

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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO