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

[Atmega32] [Atmega32][Bascom] Jak wyeliminować mignięcie PWM przy starcie?

morswin89 07 Kwi 2012 12:59 2875 29
  • #1 10767082
    morswin89
    Poziom 23  
    Witam

    Wykorzystuje 2 sprzętowe PWM w atmedze i podczas załączania następuje mignięcie pełną mocą wygaszenie i dopiero ustawienie pożądanej wartości PWM. Czy to zjawisko przy starcie można wyeliminować programowo czy tylko sprzętowo dodając np bramkę AND i po ustabilizowaniu stanów zezwolenie na przepuszczenie PWM?
  • #4 10767148
    dondu
    Moderator na urlopie...
    Pisząc o mignięciu, masz na myśli jakieś LEDy podłączone do inwerterów 4069D?
    Nie pokazałeś tej części - jak to jest podłączone?

    Drugie pytanie o program, choć ja w BASCOM nie pomogę, to może ktoś zerknie.
  • #5 10767161
    mirekk36
    Poziom 42  
    Można wyeliminować na 100% programowo .... może inaczej - coś program jest źle napisany. Ale też o ile dobrze Bascoma pamiętam (może się mylę to mnie popraw) czy przypadkiem nie ustawia on domyślnie po restarcie wszystkich pinów jako wyjścia ????

    Bo normalnie to po resecie procka wszystkie piny są wejściami w stanie wysokiej impedancji. Z drugiej strony to dlaczego (tak z ciekawości pytam) dałeś te bramki na wyjściach PWM - przecież tym sposobem nawet jeśli piny będą wejściami w stanie Hi-Z po resecie to na wyjściu bramek MUSI się pojawić jakiś ustalony stan logiczny no i już masz KLOPS :(

    A przy okazji to hmmm jeśli mogę zwrócić uwagę na schemat to źle podłączasz wyświetlacz LCD narażając go nawet na uszkodzenie :( .... zobacz tutaj o co chodzi i jak się go podłącza: Link
  • #7 10767174
    mirekk36
    Poziom 42  
    Jeśli w Bascomie tak jest jak mówiłem z ustawianiem stanów pinów po starcie - to na pewno można wymusić żeby tego nie było - i wtedy pierwsze linie twojego programu to powinny być tak napisane aby ustalić właściwy dla ciebie stan przy starcie.
  • #8 10767187
    morswin89
    Poziom 23  
    Piny z PWM ustawiam jako wyjścia ale faktycznie nie ustawiam na początku ich stanu, ustawie je teraz przy starcie w stanie niskim i zobaczymy czy to coś da. Dałem te bramki ponieważ nie chciał bezpośrednio obciążać procesora.
  • #9 10767223
    mirekk36
    Poziom 42  
    morswin89 napisał:
    Piny z PWM ustawiam jako wyjścia ale faktycznie nie ustawiam na początku ich stanu, ustawie je teraz przy starcie w stanie niskim i zobaczymy czy to coś da.


    Dokładnie - to może od razu pomóc.

    morswin89 napisał:
    Dałem te bramki ponieważ nie chciał bezpośrednio obciążać procesora.


    Ale to już zdecydowanie lepiej dać coś takiego jak ULN2803 albo w ostateczności wystarczyłyby dwa tranzystory .... Bo spójrz tak w ogóle jaką wydajność prądową mają wyjścia tych bramek - zdaje się że jeszcze mniejszą niż sam procek o ile na ich wyjściach podłączasz od razu diody LED.
  • #10 10767228
    Konto nie istnieje
    Konto nie istnieje  
  • #11 10767235
    mirekk36
    Poziom 42  
    marcin387 napisał:
    Kolego morswin89 dodaj do resetu kondensator elektrolityczny 1uF lub coś w tych granicach, powinno pomóc.


    Toż kolega zaszalał troszkę ;) .... jaki elektrolityczny do resetu - toż to jakaś niedorzeczność w przypadku AVR .... chyba albo może się koledze pomyliły AVRy z '51 ???? czy jak ?
  • #12 10767281
    janbernat
    Poziom 38  
    No a 64ms stanu HI-z po resecie?
    Może być krócej ale jak się fusebitów nie przestawia to tak jest.
    Potem można ustawiś jako wyjście ale przez ten czas bramki muszą przyjąć jakiś stan wyjściowy.
    Można dać na wejścia bramek po ok. 10k do masy żeby wymusić określony stan wyjściowy.
    W czasie pracy te oporniki będą bez znaczenia.
    Na to się zwykle nie zwraca uwagi- ale wyobraź sobie że masz na wyjściu przekaźnik i po resecie "na chwilę" załącza się silnik 10kW.
  • #13 10767325
    Konto nie istnieje
    Konto nie istnieje  
  • #14 10767607
    cyberdar
    Poziom 31  
    Witam

    Jak zauważono czas resetu ustawić np. na 4ms i na pierwszych bramkach dać rezystory podciągające do plusa zasilania. Czas ustalania na bramkach powinien być krótszy niż czas resetowania procesora i wszystko powinno działać jak należy.

    --
    pozdrawiam
  • #16 10767681
    janbernat
    Poziom 38  
    To daj rezystor do plusa- przecież nie wiemy jak są podłączone diody do bramek.
  • #18 10767852
    mirekk36
    Poziom 42  
    Ja ci proponuję zrobić prosty test:

    kompilacja uproszczonej wersji programu gdzie w ogóle na razie nie odpalasz PWM'a

    i zobacz czy masz to mignęcie

    potem odpal najprostszy program z pustą pętlą główną Do LOOP i ew tuż przed nią ustawiaj stan niski albo wysoki na tych pinach - zależy jak masz te diody podłączone

    a na końcu to wywal jeszcze te bramki i podłącz bezpośrednio jakieś zwykłe dwie diody LED przez rezystorki

    i obserwuj

    bo jednak w helpie bascoma piszą że po restarcie piny są wejściami w stanie trzecim, dlatego musisz jak najszybciej przy starcie w pierwszych liniach kodu ustawić interesujący cię stan

    a potem dopiero dodawaj odpalanie PWM

    no trzeba sobie umieć podzielić projekt na kawałki żeby go testować w dół .... do miejsca gdzie masz problem - wtedy szybko go znajdziesz - a potem powoli rozwijać w górę.
  • Pomocny post
    #21 10768011
    Mundi1970
    Poziom 24  
    morswin89 napisał:
    Czyli ustawiam stan niski zaraz po konfiguracji.

    Błąd, nie ustawiasz :).
    zamień:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    na:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #22 10768048
    morswin89
    Poziom 23  
    Jest port przekopiowałem zła wersje co nie zmienia faktu że to nie pomaga, nawet przeniesienie tak na sam początek zaraz po dyrektywach kompilatora

    Dodano po 12 [minuty]:

    Problem znaleziony wywalenie bramek NOT pomogło i nawet bez rezystora do masy nie ma już mignięcia. Dziękuje za pomoc i zainteresowanie. Pozdrawiam
  • Pomocny post
    #23 10768224
    mirekk36
    Poziom 42  
    morswin89 napisał:

    Problem znaleziony wywalenie bramek NOT pomogło i nawet bez rezystora do masy nie ma już mignięcia.


    Mówiłem o tym wcześniej - a to dlatego tak się dzieje, bo niezależnie jak szybko procek zdąży zainicjalizować port/pin to bramki zrobią to i tak szybciej ;) .... na układzie ze zwykłym tranzystorem nie miałbyś tego.
  • #27 10768350
    mirekk36
    Poziom 42  
    A no to może być całkiem inna sprawa - pokaż schemat z tym driverem albo napisz co to za driver - bo wtedy to może być źle z tymi tranzystorami. A z drugiej strony jeśli masz jakiś driver to w ogóle po co jakieś bramki i tranzystory ?????? ;) ..... przecież wejście drivera wcale a wcale nie obciąży ci procka ... więc te wszystkie tu kombinacje będą niepotrzebne.
REKLAMA