Strona 1 z 2

Prośba o wykonanie testu enkodera.

: wtorek 31 sty 2017, 13:49
autor: Antystatyczny
Cześć.

Mam pewną zagwozdkę i proszę, by ktoś z cyfrowym oscyloskopem sprawdził, która z poniższych wersji lepiej nadaje się do stosowania przy enkoderze inkrementalnym. Jedna z wersji jest propozycją Mirka Kardasia, druga wprost z dokumentacji enkodera.

A tutaj wrzucam schemaciki obu wersji:

lpf.png


Gdyby komuś się chciało sklecić pojedynczy kanał obu wersji tych filtrów i sprawdzić na oscyloskopie...

Dlaczego chcę sprawdzić, który lepszy? Ano tylko dlatego, bo wersja B ma o dwa elementy mniej i zawsze trochę łatwiej jest rozmieścić elementy na płytce.

Pozdrawiam.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 14:59
autor: tasza
Ja przepraszam, że nieco offtopic, ale czy jesteś pewien, ze chcesz walczyć z drganiami filtrem RC?
Debouncing można zrealizować czysto programowo (jeden kanał wyzwala sprzętowe przerwanie /to, że może polecieć seria wynikająca z drgań - nie przeszkadza/, stan logiczny na drugim kanale jest badany po czasie jaki przyjmiemy, że drgania niby ustały, a czas ten mierzymy od przerwania właśnie, do ustalenia doświadczalnie i jako łatwo poprawialny const w programie) i to wszystko.
Ja się już kiedyś przewiozłam strasznie na takim wyklikanym enkoderze z wylutu, takie harce na oscyloskopie styki robiły że o matko... no chyba że robisz coś na zwykłych cyfrowych kostkach...bardzo to pilne jest?

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 15:05
autor: Antystatyczny
Nie jest pilne, choć jest to element, którym właśnie się zajmuję. Generalnie program w miarę kulturalnie reaguje na pracę enkodera, ale czasami widać, że się pomyli. Obecnie nie mam żadnego filtra w układzie - po prostu gołe druty idą do MCU. Program sprawdza położenie enkodera z częstotliwością 200Hz i nie korzysta z przerwania INT. Częstotliwość zmian położenia enkodera nie powinna przekraczać kilkunastu Hz, bo wykorzystywany jest jedynie do ręcznego ustawiania godzin, minut itp. w budziku.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 16:52
autor: tasza
Antystatyczny pisze:Nie jest pilne, choć jest to element, którym właśnie się zajmuję.

no czyli jest pilne....grepuję swoje szpargały, miałam przykład jak z tym walczyć, ale jak potrzebne to akurat nie widzę....słuchaj, a może wystaw mi kod źródłowy, ale całość, może uda się coś wydumać, chce spróbować, na priv albo na e-mail, jak wolisz

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 17:07
autor: Antystatyczny
Ok, za chwilę się tym zajmę.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 17:39
autor: Antystatyczny
Projekt w eclipse:
Budzik.zip

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:00
autor: tasza
zgrałam sobie, fajnie to napisane, no, długi wieczór się szykuje

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:02
autor: Antystatyczny
Folderem switch nie zaprzątaj sobie głowy. Takie tam bazgroły, które dziś zacząłem pisać. Ani to skończone, ani działające, a tym bardziej zoptymalizowane.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:28
autor: squeez
Może wieczorem uda mi się to skręcić na stykówce, ale wersja B wygląda na bardziej "wyrównaną" kondensatory są zarówno ładowane jak i rozładowane przez taką samą rezystancję 10k czyli zbocza będą do siebie podobne, w wersji A jest nieco inaczej zbocze narastające jest bardziej nachylone a opadające znacznie bardziej strome.

Pytanie na jakim zboczu ci bardziej zależy? stromym czy łagodnym, oraz czy w ogóle badasz zbocza czy tylko poziomy.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:29
autor: Antystatyczny
Podobno strome zbocze jest milej widziane przez MCU, ale to by się musieli wypowiedzieć mądrzejsi ode mnie.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:31
autor: squeez
Jak pisałeś swojego posta ja edytowałem dopisując czy badasz zbocza czy poziomy, wyliczyć stałą czasową też można wówczas będziesz jakiś pogląd o zboczach.

A czy strome zbocze jest mniej widoczne to nie wiem ja bym bardziej podejrzewał że większy problem może być przy łagodnym zboczu. Wejścia mają zazwyczaj przerzutnik Shmita i zawsze jest jakieś "okienko" i chyba lepiej je przejść szybciej, żeby przerzutnik szybciej zareagował ale może tylko tak mi się wydaje :)

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:33
autor: Antystatyczny
Zdecydowanie badam poziomy, ponieważ nie wykorzystuję przerwań wyzwalanych zboczami. Próbkuję stany pinów 200 razy na sekundę.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:43
autor: squeez
Można przyjąć że przerzutnik Shmita zareaguje przy stałej czasowej równej 2, czyli 86% naładowania kondensatora 10n*10k*2 = 200u sek. tyle można przyjąć czas trwania po jakim stan będzie odczytany jako pewne 0 lub 1.
Ty badasz stan co 0,005 sekundy. W sumie mógłbyś chyba zwiększyć rezystory do 25k wówczas miałbyś na ustalenie jakieś 500u sek.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:46
autor: Antystatyczny
Nie jestem pewien, czy ATmega ma wejścia Schmitta. Rozumiem, o co chodzi, ale trudno mi powiedzieć, czy na łagodnym zboczu detekcja stanu przebiegnie prawidłowo.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 18:54
autor: squeez
jestem przekonany na 99% ze ma shmitta na wejsciu.

EDIT

widać, że jest:
schmitt.png

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 19:04
autor: Antystatyczny
Faktycznie, jest.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 19:41
autor: matty24
Nie mam enkodera ale testowane na buttonach:

Wersja A ma bardziej nachylone zbocze narastające a strome opadające (ok. 3us):
DS1Z_QuickPrint94.png
DS1Z_QuickPrint93.png
DS1Z_QuickPrint92.png
DS1Z_QuickPrint91.png


Natomiast przebiegi wersji A:
DS1Z_QuickPrint98.png
DS1Z_QuickPrint97.png
DS1Z_QuickPrint96.png
DS1Z_QuickPrint95.png


Wersja B ma bardziej nachylone zbocza, szczególnie narastające (ok 400us)
DS1Z_QuickPrint86.png
DS1Z_QuickPrint85.png
DS1Z_QuickPrint84.png
DS1Z_QuickPrint83.png
DS1Z_QuickPrint82.png
DS1Z_QuickPrint81.png


Przebiegi wersji B:
DS1Z_QuickPrint104.png
DS1Z_QuickPrint103.png
DS1Z_QuickPrint102.png
DS1Z_QuickPrint101.png

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 19:48
autor: matty24
Tutaj jeszcze przebiegi z modułu enkodera z wbudowanymi 10k pull-up do VCC oraz dołożonym filtrem z obrazka B.
DS1Z_QuickPrint114.png
DS1Z_QuickPrint113.png
DS1Z_QuickPrint112.png
DS1Z_QuickPrint111.png
DS1Z_QuickPrint110.png
DS1Z_QuickPrint109.png
DS1Z_QuickPrint108.png

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 19:51
autor: Antystatyczny
O takie coś mi chodziło. Serdecznie dziękuję, Matty! :) A teraz wnioski. Wersja A zapewnia lepsze zbocza (bardziej strome), a przede wszystkim zbocze opadające. Obie dość dobrze usuwają śmieci spomiędzy stanów ustalonych. Poruszony został również wątek programowej eliminacji zakłóceń, więc zaczekam jeszcze na wyniki badań, które przeprowadzi Tasza.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 21:12
autor: tasza
:shock: ale fajne screeny

yyyy, no z tym czekaniem to ja nieśmiało proponuję model asynchroniczny, może w międzyczasie RTC się zajmiesz albo no nie wiem...
czymś innym niż encoder? bo ja się dopiero ogarnęłam :( i mam tak:
IMG_5074.JPG

mój encoder (ten z fotki) to http://www.tme.eu/pl/Document/8a385285d ... -ECW1J.pdf
żelazo to and-tech EVB 5.1, zapięte w/g komentarzy w kodzie, a kod bez zmian, jedyne co to że kwarc 16MHz
makefila sobie napisałam do tej zabawki - załącznik, trzeba usunąć .txt a plik ma być w podfolderze /src archiwum , co załączono wyżej.
make clean - czystka, make all - buduje projekt, (sudo) make install - programuje kostkę
hmm, po odpaleniu jest jakoś dziwnie
powolutku, ostrożnie kręcąc ośką - licznik na ekranie pracuje spoko, zwiększa, zmniejsza wartość zgodnie z kierunkiem.
`szarpnięcie`, takie ostrzejsze zakręcenie - albo gubi wartości, albo przeskakuje o kilka albo wręcz błędnie (odwrotnie) interpretuje kierunek obrotów i robi to zupełnie niedeterministycznie
zastanawiam się ile w tym zasługi nieco większego kwarca (16 vs 11) i jakości encodera (co z tego, że drogi, jak parę lat przeleżał w pudle w garażu)

no nic, zaczynam męczyć ten temat, bo zagadka ciekawa

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 21:19
autor: Antystatyczny
Enkodery mają cudowne predyspozycje do samoistnego psucia się, bo śniedzieją w środku. Być może wzrost częstotliwości pracy zegara również ma swoje negatywne skutki, o ile pozostawiłaś ustawienie timera sprzętowego bez zmian. Zamień, proszę, linię 46 pliku main.c na następującą:

Kod: Zaznacz cały

TCCR0 = (F_CPU/1024/200) - 1;


To zapewni automatyczne dopasowanie pracy timera niezależnie od częstotliwości zegara taktującego. (oczywiście w granicach rozsądku, bo obliczenie zakłada, że włączony jest preskaler 1024)

Aha, jeszcze jedno. Zerkam w dokumentację Twojego enkodera i czy dobrze widzę, że możliwe opcje to ćwierćkrokowy lub pełnokrokowy? Jeśli masz pełnokrokowy, spróbuj w pliku encoder.h ustawić parametr ENCODER_FULL_STEP na wartość 1.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 21:34
autor: tasza
Antystatyczny pisze:Enkodery mają cudowne predyspozycje do samoistnego psucia się, bo śniedzieją w środku

wypadałoby dodać - nieużywane, niebiegane encodery, bo ja popełniłam parę zabawek ze ``scrollerami``, głównie wylutki ze złomu z Wolumenu i jakoś do dziś działają, ale są bez przerwy używane i to w trudnych warunkach czasem - timerki kuchenne, wilgoć, para etc
Ok, kod zmienię ale to potem, jak tylko moi pójdą spać, to najpierw poszukam kwarca 11.059, typowy pod '51 przecież, ja całe pudełko ich miałam..gdzieś :? chce mieć punkt startu identyczny jak u ciebie
jak coś się wykluje nowego to będę pisać tu, albo na f.

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 21:40
autor: Antystatyczny
Zerknij jeszcze na mój poprzedni post, bo go edytowałem, a w tym czasie napisałaś swój.

tasza pisze:wypadałoby dodać - nieużywane, niebiegane encodery


Tak, dokładnie to miałem na myśli. Pomyślałem o tym, ale nie przelałem na "papier" :)

Re: Prośba o wykonanie testu.

: wtorek 31 sty 2017, 22:43
autor: dambo
Z ciekawości sprawdzę potem jak radzą sobie STMki ze sprzętową obsługą enkoderów. Dla magnetycznych z obrotami silników w robociku działało idealnie, ciekawe jak dla mechanicznych.

Re: Prośba o wykonanie testu.

: środa 01 lut 2017, 08:27
autor: tasza
w sumie to już sama nie wiem czy kolejny offtopic czy ostrzeżenie dla innych - encoder, ale zaniedbany, wyleżany w pudełku i mający kontakt z odrobiną wilgoci przez spory czas (vide co pisał Antystatyczny - zaśniedziałe styki)

bo tak wygląda w miarę na żywo, na analogodiscoveroskopie, możliwe że trigger nieumiejętnie ustawiłam, nie zmienia to faktu że .... to jest jakaś masakra normalnie
:arrow: https://youtu.be/h4mzjrOxHjc
no i jeszcze jedna sprawa sytuacyjna - nie mam odpowiedniej gałki, więc ośkę kręciłam palcami, aby płytka stykowa nie latała po stole - czasem dociskając to do blatu - to ostatnie sekundy filmy - kształt przebiegu zupełnie inny, styki robią co chcą....

@Antystatyczny - no serio szacunek, że twój program w ogóle z tym moim enco. ruszył, bo przypadek zaiste trudny mi się trafił.

Sorki, ale temat parkuje do czasu zdobycia nowego (sklepowego) encodera, jak na Górzystej w Ostr. nie będzie, to Wol. i Warszawa, ale w weekend dopiero....