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

[atmega8] sterowanie pwm silnikiem dc i zawieszanie sie programatora

25 Gru 2011 16:53 2500 7
  • Poziom 25  
    Witam wszystkich serdecznie. Wiem, że święta, że trzeba odpoczywać itd. ale może akurat ktoś nie będzie miał nic innego do roboty i zerknie na mój układ :P

    Mam taki oto sobie układzik:
    Link

    Co prawda jest tam jeszcze kilka drobiazgów ale robiłem różne podstępy i mam silne przeczucie, że nie mają one znaczenia.
    A mianowicie: W bascomie steruję przez pwm dwoma silnikami DC. Jeden pobiera ok 0,7A, drugi ok 2,5A. (jak trzeba to wrzucę jeszcze kod, ale to na prawdę kilka linijek zgodnie z książką Marcina Wiązani, z resztą sterowanie działa). Programator Usbasp jest podłączony do układu przez ISP i przez USB do kompa. Po kilku sekundach pracy ponowne zaprogramowanie układu jest niemożliwe. Okienko avrdude pokazuje sie i znika od razu jakby programator był odłączony od kompa. Układ programowany działa, bo podłączyłem jeszcze Pr10k do ADC i zmieniam wypełnienie PWM. Natomiast programator nie programuje już układu. W menedżerze urządzeń programator jest widoczny, ale nie działa. Wystarczy wtyczkę USB odłączyć i od razu podłączyć ponownie i znów raz albo dwa razy można układ zaprogramować, ale za chwilę znów to samo.
    Jak jest na układzie (a wcześniej nie było) podłączyłem do silnika diodę, kondenstor i jeszcze diodę za stabilizatorem, ale nic sie nie zmieniło. Zmiana na inną atmegę w programatorze nie pomaga, a sam programator w innym układzie działa bez zarzutu. Z resztą w tym układzie też działa do czasu aż uruchomię PWM za pomocą Pr10k.
    Układ zasilam z zasilacza impulsowego, ale ze stabilizowanego jest to samo. Po przełączeniu zasilania atmegi w układzie na usb też nic nie zmienia.
    Myślałem, żeby na linie sck mosi i miso wsadzić zenerki, ale akurat takich co trzeba nie mam. Zasilanie z programatora jest odłączone, masa oczywiście jest i musi być podłączona.... i nie wiem co jeszcze
    Panowie jakieś sugestie? Brakuje mi pomysłów.
    Pewnie jakiś głupi podstawowy błąd popełniłem i go nie widzę.
  • Poziom 36  
    noel200 napisał:
    Witam wszystkich serdecznie.

    Mam taki oto sobie układzi.
    A mianowicie: W bascomie steruję przez pwm dwoma silnikami DC. Jeden pobiera ok ...............


    Normalnie, dwa kanały wyjścia PWM (OC1A, OC1B) z ATM8 masz odpowiednio na pinach:15 i 16.
    Pin 17 jest MOSI - potrzebny, w miarę bez zakłóceń do programowania ISP. U ciebie jest on podłączony przez Res. (tylko) 68 Ohm do gate Mosfet silnika S2. Jak więc masz na nim PWM (?), a co i jak jest podłączone do programatora (MOSI)?
    Jeżeli drugi kanał PWM (wymagający być może innej częstotliwości(?)) masz na Timer2, to na czas programowania spróbuj odłączyć (zworką) obwód Pin17 do R5.

    e marcus
  • Poziom 25  
    Faktycznie, pomyliłem sie na rysunku, używam do pwm silników nóżki 15 i 16.
    17 jest też podłączona na bramkę kolejnego mosfeta przez rezystor i on włącza mi świece żarową. Tam już nie mam pwm. Ale ze specyfikacji wynika, że na 17 też można użyc pwm, wiec to chyba nie powinno być problemem.
    Co ciekawe nie zawsze tak jest. zdarza się czasami, że pół minuty później programator jeszcze działa (ale rzadko).
    Jak przełączę zamiast jednego z silników świecę żarową i ją steruje pwm (prąd ok 8A) to programator cały czas działa ok. W tym czasie silnik jest przepięty na 17 i kręci sie na max. obroty. Wychodzi, że to jakieś zakłócenia, przepięcia...
    Nie mam niestety oscyloskopu, pooglądałbym co sie dzieje na nóżkach miso, mosi i sck.
    Docelowo chcę zastosować pomiędzy mosfetem i prockiem cny17. Myślisz, że to załatwi sprawę?
  • Poziom 36  
    noel200 napisał:
    Faktycznie, pomyliłem sie na rysunku, używam do pwm silników nóżki 15 i 16.

    Docelowo chcę zastosować pomiędzy mosfetem i prockiem cny17. Myślisz, że to załatwi sprawę?

    Praktycznie zamiast rezystora i bramki Mosfet, będziesz miał rezystor i LED zwarty do GND. Effect osłabienia sygnału MOSI będzie zależał od wartości rezystora w tym obwodzie.
    Myślę że 'wprawienie' zworki pomiędzy pin 17 a R5 i zdejmowanej na czas programowania rozwiązałoby problem. Jak często bedziesz dokonywał programowania/przeprogramowywania processora ?

    e marcus
  • Poziom 25  
    Nie no programowanie to tylko teraz zanim układ nie powstanie, a to zdarza sie i 20 razy dziennie. Pomiędzy cny a atmegą musi być rezystor bo upali port procka. Mi wyszło ok 400ohm, żeby optoizolator działał w miarę dobrze.
    A w obecnej sytuacji zworka sprawy nie załatwi, bo co z tego, że zworką odłączę mosfeta od procka, jak procek w programatorze już wisi. Chyba, żeby zworką łączyć miso, a drugą mosi układu programowanego z programatorem tylko na czas programowania, a później odłączać, żeby to co się dzieje na tych nóżkach nie zawieszało programatora.
    A szukałem kiedyś programatora z optoizolowanymi połączeniami do programowanego układu, ale nie znalazłem. Istnieje coś takiego? A w ogóle to by się udało, bo komunikacja jest chyba w obie strony...

    Dodano po 24 [minuty]:

    Teraz sprawdziłem na symulacji to pomiędzy atmegą a cny wystarczyłby rezystor 3k. Cny właściwie otwiera sie do końca i pobiera 1,3mA. Programator wiec powinien działać.
    A cny zapewnia jednokierunkową komunikację, więc nic nie powinno wrócić z mosfeta teoretycznie powinno działać... Normalnie aż nie wytrzymam i chyba jeszcze dziś to sprawdzę :P
  • Poziom 25  
    No i nie wytrzymałem...
    Podłączenie na szybko pomiędzy mosfetami i prockiem cny17-3 przyniosło efekt taki, że przy zasilaniu z zasilacza i stabilizator 7805 avrdude po programowaniu pytał czy nie przestawić jakiś fusebitów i bez względu czy sie zgadzałem, czy nie program nie działał. Ale tylko po przełączeniu zasilania na te z USB procek programował się bez problemów i po tym po przełączeniu zasilania z powrotem na zasilacz program działał jak należy. Aż do pewnego razu. Zdechł na dobre. Nie mam następnego do testów. Muszę zamówić. Ale teraz układ składam na płytce stykowej od razu z cny i całą masą kondensatorów. Może następnej atmegi nie upalę.
    Pozdrawiam
  • Poziom 25  
    Znam już ten artykuł. Czytałem go i sie do niego zastosowałem. Buz 11 podłączony pod jedną z linii które wykorzystuje programator, ma na bramce dość wysoką impedancję, bo prąd pobierany przez bramkę jest liczony w uA. Nie wiem jak z pojemnością. Może tu jest problem. Ale dlaczego po przełączeniu zasilania na usb problem nie występował...
    Chyba układ będę robił na atmedze16. Tam porty do programatora zostawię puste.