Elektroda.pl
Elektroda.pl
X
SterControl
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atmega32 i drv8824 - sterowanie step/dir

zezz 04 Kwi 2014 17:59 1029 2
  • #1 04 Kwi 2014 17:59
    zezz
    Poziom 2  

    Witam wszystkich,

    Jestem dość mocno zielony w temacie, choć generalnie zagadnienia związane z elektrotechniką (od strony fizycznej ) nie są mi do końcaobce.

    Od paru dni walczę z mikrokontrolerem atmega328p oraz sterownikiem drv8824.
    Mam problem ze sterowaniem silnikiem krokowym. Przebrnąłem przez internet do końca i z powrotem ale problem prawdopodobnie jest tak banalny, że nigdzie nie znalazłem informacji jak go rozwiązać. Udało mi się podłączyć atmega i wgrać na niego kilka działających programów (różne wersje mrugających ledów), także w tym temacie jestem "obcykany" :) Problem pojawia się przy próbie podłączenia sterownika i silnika (silnik bipolarny - 4 przewody) Podłączyłem sterownik z silnikiem wg. schematu (załącznik), styki enable,reset, sleep, dir na +5v, a styk step do kontrolera który generował impulsy wcześniej wykorzystywane do "mrugania" diodami (+5v, 0v w odstępach co 100ms) No i tu pojawił się problem bo nic się nie dzieje. Silnik stoi w miejscu, nie wydaje dźwięków, gdy pokręcimy nim ręcznie zaczyna stawiać coraz większy opór, ale nic poza tym. Podejrzewam, że sygnał "step" powinien wyglądać nieco inaczej(próbowałem jeszcze sterować "płynnym" sygnałem PWM - efekt podobny) Scalak w kontrolerze po parunastu sekundach nagrzewa się dość znacznie.

    Czy jest ktoś w stanie w miarę bezboleśnie i bez nadmiernej ironii wytłumaczyć mi jak się za to zabrać? :) Będę dozgonnie wdzięczny.

    0 2
  • SterControl
  • #2 04 Kwi 2014 19:38
    Marek_Skalski
    Moderator Projektowanie

    Sygnały !RESET, !ENABLE, !SLEEP, !FAULT mają kreską na górze, czyli są zanegowane.
    Na wejście !RESET należy podać stan wysoki, aby układ pracował. Jeżeli wisi w powietrzu to jest tam stan niski dzięki wbudowanemu rezystorowi (pull-down).
    Na wejście !SLEEP, należy podać stan wysoki, aby układ pracował. Jeżeli wisi w powietrzu to jest tam stan niski dzięki wbudowanemu rezystorowi (pull-down).
    Połączenie obu wejść ze sobą nie jest dobrym pomysłem, ponieważ układ jest w stanie ciągłego resetu. Lepiej podłączyć oba piny do VDD, jeżeli nie potrzebujesz nimi sterować, albo do wyjść uC, gdy chcesz mieć kontrolę nad pracą układu.
    Na !ENABLE należy podać stan niski, aby układ pracował. Jeżeli wisi w powietrzu, to pewnie jest tam stan niski dzięki wbudowanemu rezystorowi (pull-down).
    Należy też prawidłowo wybrać tryb pracy określając stany na wejściach M2..M0. Wbudowane rezystory ustalają domyślnie tryb pełnych kroków.
    Mam też obawy co do podłączenia !FAULT (też zanegowany), ponieważ to jest wyjście informujące o błędach w pracy sterownika. Nie podłączyłbym tego na sztywno do zasilania, ale raczej do jednego z pinów ustawionych jako wejście. Błąd jest zgłaszany stanem niskim.
    Nie wiem skąd masz ten schemat, ale lepiej korzystaj z dokumentacji układu: http://www.ti.com/lit/ds/symlink/drv8824.pdf
    A co do ciepła... jak nie działa, to grzać się nie powinien.

    0
  • SterControl
  • #3 06 Kwi 2014 13:34
    zezz
    Poziom 2  

    Na wejścia !Sleep, !Reset podawałem sygnał +5v, na !Enable stan niski... reszta w przeróżnych konfiguracjach (m0-m2) a i !Fault podłączyłem na wejście uC i nic... Chyba sam układ jest uszkodzony. Na początku przez pomyłkę zamiast +5v na stan wysoki dałem +12 :/ Zamówie jeszcze jeden i dam znać.

    0