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

Enkoder HEDS-9140 i Atmega16

sottek 30 Wrz 2009 15:07 2478 10
REKLAMA
  • #1 7074958
    sottek
    Poziom 10  
    Witam.
    Mam problem z enkoderem jak w temacie. Nie wiem jak podłączyć go do Atmegi16. Czy moge go wpiąć bezpośrednio na port Atmegi czy może mam stosować jakiś konwerter sygnałów? Według noty można osiągnąć sygnały na poziomie TTL ale czy Atmega to rozumie (VL=0,4V Vh=2.4V).
    Druga sprawa czy można ten enkoder zasilić ze źródła zasilania Atmegi, czy powinnien mieć niezależne źródło zasilania?
    Za podpowiedzi z góry dzięki.
  • REKLAMA
  • #2 7077987
    wojtekkk09
    Poziom 15  
    Witam,
    z dokumentacji wynika, że Atmega16 zasilana 5V nie koniecznie odczyta 2.4V jako stan wysoki.
    Proponuję w takim razie zasilać Atmegę napięciem 3.3V, wtedy sygnały z enkodera będą czytelne (enkoder zasilać napięciem 5V). I w linie danych dać zabezpieczenie w postaci rezystorów. Myślę, że będzie działać.

    Jeżeli jednak chciałbyś zasilać oba układy 5V, to zawsze pozostaje próba doświadczalna.

    Pozdrawiam
    Wojt
  • #3 7079056
    tmf
    VIP Zasłużony dla elektroda
    Na rysunku 1 na stronie 6 masz narysowane pull upy, ktore sa wymagane do poprawnego dzialania. One zapewnia, ze nawet jesli proc tez bedzie zasilany z 5V prawidlowo rozpozna "1". W pdf jest napisane, ze minimalny poziom "1" to 2,4V ale to dla b. duzego obciazenia - port ATMegi wnosi obciazenie mniejsze niz standardowe TTL wiec napiecie ci nigdy do takiego poziomu nie powinno spasc. IMHO mozesz smialo to laczyc bezposrednio i zasilic z 5V.
  • REKLAMA
  • #4 7079755
    sottek
    Poziom 10  
    Wspaniale.
    Jeszcze dwie sprawy. Pierwsza - czy pull-up z Atmegi wystarczy??
    Druga - podłączyłem ten enkoder przez kartę pomiarową do kompa, żeby sobie przebiegi pooglądać i sprawdzić jak to w rzeczywistości działa. Wnioski są takie, że bez pull-up przy kręceniu pojawiają się impulsy, ale nie osiągają nawet wspomnianych 2.4V. Przy wpięciu pull-up między 5V a wyjście przebieg jest martwy (faktem jest że wpiąłem 2.2kOhma) ale nie powinno to zmieniać, aż tak diametralnie układu. Czyżby z tym enkoderem było coś nie tak??
    P.S. Podpięcie pod port INT0 w Atmedze nie powoduje żadnego przerwania, a to co zobaczyłem na oscyloskopie psuje mi całą koncepcję działania tego ustrojstwa. Tym bardziej, że stary enkoder PZO jaki posiadam działa bez zarzutu.

    Może Ktoś miał z tym do czynienie i potrafi mi pomóc.
    Z góry dziękuję za pomoc.
  • REKLAMA
  • #5 7080302
    janbernat
    Poziom 38  
    Problem- jakie wejścia na karcie pomiarowej.
    Oporniki podciągające w Atmedze mają 30-50k.
    Niestety w nocie nie ma schematu wewnętrznego.
    I znaki prądów są chyba zamienione.
    Spróbuj pin przerwania ustawić jako wejście z podciąganiem.
    Wtedy powinno działać.
  • #6 7081268
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #7 7083306
    janbernat
    Poziom 38  
    Chociaż opisz co zobaczyłeś na oscyloskopie jeśli nie możesz wkleić zdjęcia.
    Jak dałeś rezystory podciągające to miałeś 5V na wyjściu?
    Jeśli jest sprawny to powinien działać z ATmega.
  • #8 7803963
    sottek
    Poziom 10  
    Witam.
    Odświeżam temat, bo powróciłem do projektu. Jednocześnie wszystkim bardzo dziękuję za odpowiedzi. Jak się okazało enkoder pracuje bez zarzutu. Jednak jest kilka, ale:
    1. Wymagane są pull-up.
    2. Wymagane są (w moim przypadku) rezystory podciągające; wpięte między kanały A,B i I a VCC.
    3. W programie obsługi należy zastosować jakiś programowy "debouncing", bo inaczej można spotkać się z podwójnym zliczaniem impulsów.

    Odnośnie rady emarcusa:
    Zastosowanie dodatkowego dekodera jest nie potrzebne, a nawet nie widzę sensu jego stosowania (?). Wszystko działa na przerwaniach z pełnym wykrywaniem kierunków, a nawet ze zwiększoną rozdzielczością, co można uzyskać przez to, iż przebiegi z kanałów A i B są przesunięte względem siebie o 90 stopni.

    Do janbernat:
    Z tą kartą pomiarową było chyba coś nie tak (już nie jestem w jej posiadaniu) albo ja popełniłem jakiś błąd. Obecnie na wyjściu enkodera pojawia się przebieg prostokątny 0-->5V, więc działa prawidłowo. Jedyny problem jaki napotkałem: patrz pkt. 3.


    Pozdrawiam
    Sottek
  • #9 8003713
    Kacpi
    Poziom 2  
    Witam,
    Mam pytanie odnośnie programu obsługującego zliczanie impulsów. Posiadam enkoder HEDS-5500, który wg noty katalogowej nie różni się znacząco od ww. Ponieważ dopiero zaczynam programowanie Avr'ów , czy mógłbyś zamieścić listing Twojego działającego programu. Byłbym wdzięczny :). A i jeszcze jedno - czy rezystory podciągające, które zastosowałeś są takiej wartości jak w nocie - 2.7k ?
  • #10 8003916
    sottek
    Poziom 10  
    Witam.
    Elektrycznie jest wszystko rozwiązane jak w nocie katalogowej, czyli rezystory są 2,7k.
    Co do listingu musze tego poszukać, ale z tego co pamiętam nie wykorzystywałem w nim pinu I, był mi niepotrzebny. Ponieważ nie wiem kiedy będę mógł zamieścić listing, polecam poszukać zasadę działania enkoderów. Co do programu najlepiej zrealizować to na przerwaniach. Wykrywasz zbocze (powiedzmy narastające) i sprawdzasz stan na drugim kanale. W zależności czy jest wysoki czy niski masz ruch w jedną bądź drugą stronę.
    Docelowo ( i ściśle teoretycznie) można by zwiększyć rozdzielczość 4 krotnie takiego enkodera stosując przerwania na zbocze narastające i opadające. Oczywiście tu pojawia się problem dobrego softu, który zapobiegnie zliczaniu "przypadkowych" impulsów.
    Pozdrawiam
  • #11 8010109
    Kacpi
    Poziom 2  
    Dzięki bardzo za szybką odpowiedź. To co napisałeś w zupełności mi wystarczy-myślę, że już sobie poradzę. Pozdrawiam.
REKLAMA