logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kodowanie enkodera absolutnego 25bit - problem z odczytem kodu Gray'a

prokopcio 28 Lut 2008 13:50 1233 2
REKLAMA
  • #1 4854867
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    Witam...
    Wg dokumentacji powinien to być kod Gray'a 25bit gdzie 13 bitów to aktualna pozycja (kątowa) a 12 bitów to ilość obrotów (względem zerowej pozycji).

    https://www.elektroda.pl/rtvforum/download.php?id=286031 (0 pkt.)

    A ja odczytuję sobie "ciurkiem" 25 bitów które nie przypominają mi kodu Gray'a tzn. jedyna wspólna cecha to to, że zmienia się wartość tylko jednego bitu... problem polega na tym, że odebrane bity to od początku 12 ( pozycja ? ) bitów potem "0" a następnie znów 12 TYCH SAMYCH BITÓW co na początku.... wg dokumentacji ma być 13 bitów na obrót a następne 12 bitów to ilość obrotów.

    te 12 bitów po wyzerowaniu i bardzo powolnym obracaniu (w jedną stronę) zmieniają się tak:

    000000000000
    000000000001
    000000000000
    000000000001
    000000000000
    000000000010
    000000000011
    000000000010
    000000000011
    000000000010
    000000000000
    000000000001
    000000000000
    000000000100
    000000000101
    000000000100
    000000000110
    000000000111
    000000000110
    000000000111
    000000000110
    000000000100
    000000000101
    000000000100
    000000000101
    000000000100
    000000000110
    000000000111
    000000000110
    000000000111
    000000000110
    000000000100
    000000000101
    000000000100
    000000000000
    000000000001
    000000000000
    000000000010
    000000000011
    000000000010
    000000000011
    000000000010
    000000000000
    000000001000
    000000001001
    000000001000
    000000001010
    000000001011
    ...
    ...
    ...

    w przeciwną stronę jest identycznie (od zera)


    bit na 7 pozycji (od lewej strony) pojawia się dokładnie co 1 obrót (w połowie obrotu jest zerowany) a na pozycji 6 co 4 obroty itd... każda kolejna pozycja (starsza) jest zmieniana 4 razy rzadziej niż poprzednia.

    czy ktoś mi powie o co tutaj chodzi ? jak mam odczytać pozycję (absolutną) skoro dane się powtarzają ??? już zgupłem całkowice... w jaki sposób odczytuje się pozostałe 13 bitów ? może tam są sensowniejsze dane.

    [Tytuł poprawiłem. Regulamin, punkt 10.9. Mariusz Ch.]
  • REKLAMA
  • #2 4854935
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 629
    Musisz mieć dedykowany interfejs wpółpracujący z tym enkoderem wg specyfikacji podanej na stronie 3 dokumentu w PDF do którego linkę tu zamieściłeś.
    Nie ma takiej możliwości, abyś, kręcąc ręcznie (zbyt mała precyzja) wałkiem, nie pogubił stanów wyjściowych na przestrzeni jednego obrotu... :D
  • #3 4855200
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    akurat wypisuję wartości poprawne i n"iepogubione" - jest to jedynie mały procent jednego obrotu - cały obrót jest dwa bity dalej... zresztą nawet jeśli bym pominął jakiekolwiek dane to wg. mnie nie powinienem mieć w różnych położeniach identycznych danych a mam :( ale jeśli przekręcę oś enkodera powiedzmy o 2,5obrotu i cofnę idealnie do tego samego miejsca to dane są równieź identyczne. To nie jest kręcenie w palcach ale tutaj nie chcę się rozpisywać, bo nie o to chodzi... Oczywiście odczytuję dane bit po bice (25) wg specyfikacji interfejsu SSI który jest właśnie wykorzystany w tym enkoderze.

    a dokładnie:

    na wejściu różnicowym CLK+/- podczas "spoczynku" utrzymuję stan wysoki a transmisję inicjuje się wprowadzejąc tą linię w stan niski i taktując - z każdym zboczem narastającym ekkoder wystawia poszczególne bity na wyjście różnicowe DATA+/-. tak odczytuję 25 bitów. okres taktowania ustawiłem na 6us (po 3us na stan wysoki i niski lini CLK) a dane odczytuję po upływie 2us po zboczu narastającym sygnału CLK...

    dane odczytuję co ok 10ms i wyświetlam odebrane bity na wyświetlaczu lcd. program jest dobry w 100%.

    po prostu nie wiem jak ugryźć te dane.
REKLAMA