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

matryca LED - delikatne podświetlanie diod przy przemiataniu

ksarim 04 Sty 2010 09:47 5240 23
  • #1 04 Sty 2010 09:47
    ksarim
    Poziom 14  

    Witam

    Zbudowałem sobie matrycę LED. Sterowanie matrycą odbywa się przy wykorzystaniu tranzystorów polowych oraz rejestrów przesuwnych. Uproszczony schemat układu:

    matryca LED - delikatne podświetlanie diod przy przemiataniu

    Sterowanie odbywa się na zasadzie przemiatania czyli ładuję dane do rejestrów przesuwnych, zatrzaskuje, zapalam odpowiedni wiersz itd.

    Problem w tym, że przy przemiataniu delikatnie świecą również diody, które nie powinny się świecić a znajdują się w jednej kolumnie z innymi zapalanymi diodami.
    Na początku myślałem, że to problem związany ze sterowanie, że za szybko zapalam wiersze. Niestety sprawdziłem to oscyloskopie i wszystkie sygnały wyglądały tak jak powinny. Zwiększyłem również programowo czas pomiędzy gaszeniem jednego wiersza a zapalaniem kolejnego niestety nic to nie dało.

    Podłączyłem oscyloskop na dwa wiersze i uzyskałem takie przebiegi:

    matryca LED - delikatne podświetlanie diod przy przemiataniu

    Na tych przebiegach widać, że pojawia się napięcie ze znakiem ujemnym. Nie bardzo wiem dlaczego tak się dzieje a tym bardziej dlaczego diody delikatnie świecą. Jeżeli ktoś ma pomysł na rozwiązanie tego problemu to proszę o sugestie.

    0 23
  • #2 04 Sty 2010 10:31
    Dar.El
    Poziom 40  

    Jak nie chce Ci się dokładnie opisać problemu i dać bardziej kompletnego schematu to niby jak mam pomóc? Nie wiem nawet czy umiesz się posługiwać oscyloskopem. Wg uproszczonego schematu powinny świecić się wszystkie diody w kolumnie na raz.

    0
  • #3 04 Sty 2010 11:11
    ksarim
    Poziom 14  

    matryca LED - delikatne podświetlanie diod przy przemiataniu

    Schemat jest uproszczony po to żeby był jak najbardziej zrozumiały i czytelny. Postaram się więc dokładniej opisać układ.
    W pierwszej kolejności dane ładowane są do rejestrów przesuwnych które wysterowują kolumny matrycy. Kiedy wszystkie rejestry zostaną zapełnione danymi następuje ich zatrzaśnięcie i zapalenie odpowiedniego wiersza. Zapalanie wierszy odbywa się poprzez sterowanie bramką tranzystora polowego podłączoną do uC. Potem następuje załadowanie kolejnych danych i zapalenie kolejnego wiersza. Proces ten jest ciągle powtarzany dla wszystkich wierszy.

    Nie wiem jak mogę dokładniej opisać problem. Schemat jest czytelny, opis działania układu jest w miarę prosty ale przecież tutaj żadnej filozofii nie ma.

    0
  • #4 04 Sty 2010 11:39
    prezeswal
    VIP Zasłużony dla elektroda

    ksarim napisał:

    Na tych przebiegach widać, że pojawia się napięcie ze znakiem ujemnym.


    Wygląda na to, że przebiegi obserwujesz przy "zmiennoprądowym" sprzężeniu wejścia oscyloskopu (AC zamiast - DC).

    Na schemacie są tranzystory P-MOS z diodą rewersyjną. Są one włączone "odwrotnie" (trzeba zamienić źródło z drenem), przy narysowanym połączeniu przewodzi dioda rewersyjna - niezależnie od wysterowania bramki.
    Pozdrawiam.

    0
  • #5 04 Sty 2010 12:29
    ksarim
    Poziom 14  

    Miałeś rację, miałem ustawione AC zamiast DC ale sondy były ustawione dobrze x1. Zamieszczam jeszcze raz przebiegi na oscyloskopie:
    matryca LED - delikatne podświetlanie diod przy przemiataniu

    Cytat:
    Na schemacie są tranzystory P-MOS z diodą rewersyjną. Są one włączone "odwrotnie" (trzeba zamienić źródło z drenem), przy narysowanym połączeniu przewodzi dioda rewersyjna - niezależnie od wysterowania bramki.

    Przepraszam źle narysowałem schemat :( W rzeczywistym układzie jest poprawnie zrobione:
    matryca LED - delikatne podświetlanie diod przy przemiataniu

    Na załączonych przebiegach widać, że na wierszach występuje napięcie ze znakiem ujemnym ale skąd ono się bierze i dlaczego diody lekką świecą?

    0
  • #6 04 Sty 2010 14:18
    zipp
    Poziom 13  

    Duża rezystancja sondy pomiarowej plus pojemności pasożytnicze w układzie powodują takie przebiegi w oscyloskopie - gdy klucz jest wyłączony. Daj opornik parę kΩ w punkcie pomiarowym do masy a przebieg się uspokoi. Drugi kanał oscyloskopu podłącz do kolumny matrycy. Dopiero wtedy popatrz, czy przebiegi masz właściwe.

    0
  • #7 04 Sty 2010 18:34
    Dar.El
    Poziom 40  

    Musisz trochę pozmieniać program.
    1. Po wyłączeniu wiersza odczekaj 5µs. To opóźnienie trzeba wydłużyć, gdy diody są podświetlane.
    2. Wprowadź kolumny i wpisz je na wyjścia.
    3. Włącz wiersz.
    Jeżeli wydłużanie czasu z pierwszego punktu nic nie pomaga, to masz błąd w schemacie.

    0
  • #8 04 Sty 2010 19:09
    ksarim
    Poziom 14  

    Robiłem takie testy zaraz na początku. Zwiększałem czasy pomiędzy gaszeniem jednego i zapalaniem kolejnego wiersza. Podświetlanie nadal występowało.

    Łatwo powiedzieć błąd w schemacie tylko jaki?

    0
  • #9 04 Sty 2010 20:10
    zipp
    Poziom 13  

    Próbowałeś fizycznie odłączyć niewysterowane wiersze? Może wygaszone diody są podświetlane przez inne świecące. W dziadowskich wyświetlaczach jest to dość widoczne.
    Nawet nie pytam o poprawność skonfigurowania portów wyjściowych procesora w celu szybkiego przeładowania pojemności bramki mosfeta, ani o odpowiednim samym mosfecie, umożliwiającym pracę przy 5V - bo to podstawa.
    Jaki procesor i tranzystory zastosowałeś?

    1
  • #10 04 Sty 2010 20:33
    PPK
    Poziom 26  

    Nie do końca kojarzę schemat ale może obciąż Źródła FET-ów do masy, jakąś rezystancją ?

    Moderowany przez prezeswal:

    Proszę nie pisać bzdur :!: - obciążanie 5V rezystorem do masy ma coś zmienić :?:
    Za łamanie p.12 regulaminu też można otrzymać ostrzeżenie.

    0
  • #11 04 Sty 2010 20:34
    ksarim
    Poziom 14  

    Podświetlanie przez inne diody LED odpada, już to sprawdzałem.

    Całością steruje Atmega32. Tranzystory IRF7314 zapalają wiersze.

    Cytat:
    Nie do końca kojarzę schemat ale może obciąż Źródła FET-ów do masy, jakąś rezystancją ?

    A czy kolega PPK może to jakoś uzasadnić bo nie bardzo wiem co to ma zmienić?

    0
  • #12 04 Sty 2010 20:38
    kulmar
    Poziom 25  

    ksarim napisał:
    Robiłem takie testy zaraz na początku. Zwiększałem czasy pomiędzy gaszeniem jednego i zapalaniem kolejnego wiersza. Podświetlanie nadal występowało.

    Łatwo powiedzieć błąd w schemacie tylko jaki?


    Prześledź dokładnie przebiegi na oscyloskopie. Tak "na moje oko" widać, że albo załączasz linie zanim prześlesz nowe dane do rejestrów, albo (co bardziej prawdopodobne) nie wyłączasz "starej" linii przed zmianą stanu w rejestrach. Zwróć uwagę, że zbocza narastające napięcia na liniach zaczynają się mniej więcej równo ze szpilkami przeładowania rejestrów. Ale przy podstawie 1ms/działkę trudno mieć pewność. I wiele zależy od sposobu wyzwalania oscyloskopu, bo można się oszukać.

    Pozdrawiam

    Mariusz

    0
  • #13 05 Sty 2010 08:10
    ksarim
    Poziom 14  

    Żeby rozwiać wątpliwości zmieszczę dwa zrzuty z oscyloskopu:
    matryca LED - delikatne podświetlanie diod przy przemiataniu

    matryca LED - delikatne podświetlanie diod przy przemiataniu

    Na pierwszym zrzucie widać, że po wygaszeniu i przed zapalaniem kolejnego wiersza istnieje przerwa w czasie, w której wygaszone są wszystkie wiersze.

    Na kolejnym zrzucie widać impuls, który zatrzaskuje dane w rejestrach a występuje jeszcze przed zapaleniem wiersza. Jeżeli ktoś ma wątpliwości czy przypadkiem impuls ten nie zatrzaskuje danych jeszcze przed wygaszeniem poprzedniego wiersza to proszę rzucić okiem na obydwa zrzuty i na podstawy czasu.

    Podsumowując. Proces zapalania matrycy odbywa się w następujących krokach. Wygaszenie wiersza. Zatrzaśnięcie danych. Zapalenie kolejnego wiersza. Tak odbywa się to w programie na uC i wszystko widoczne jest na oscyloskopie.

    Niestety problem dalej nie jest rozwiązany.

    0
  • #14 05 Sty 2010 08:51
    Dar.El
    Poziom 40  

    Teraz dorzuć ten nieistotny fragment schematu sterowania bramkami mosfetów.

    0
  • #15 05 Sty 2010 08:59
    zipp
    Poziom 13  

    Daj na 13-tą nogę procesora sygnał z generatora o częstotliwości przynajmniej 2000 razy mniejszej niż kwarc i dokładnie zobaczysz, czy przy przełączaniu wierszy te wygaszone diody ci migają, czy stale słabo świecą. Trochę to potrwa przy takim zegarze, ale będziesz wiedział co nawala. Jeżeli wszystko będzie w porządku, to znaczy że jest problem z szybkim sterowaniem mosfetów.

    0
  • #16 05 Sty 2010 09:13
    ksarim
    Poziom 14  

    Dar.El napisał:
    Teraz dorzuć ten nieistotny fragment schematu sterowania bramkami mosfetów.

    Bramki tranzystorów są sterowane bezpośrednio z pinów Atmegi32.

    zipp napisał:
    Daj na 13-tą nogę procesora sygnał z generatora o częstotliwości przynajmniej 2000 razy mniejszej niż kwarc i dokładnie zobaczysz, czy przy przełączaniu wierszy te wygaszone diody ci migają, czy stale słabo świecą.

    Niestety nie posiadam generatora.

    0
  • #17 05 Sty 2010 09:40
    zipp
    Poziom 13  

    ksarim napisał:
    Niestety nie posiadam generatora.


    5 minut roboty. Masz chyba jakiś NE555, dowolne bramki NOR, NAND lub Schmitta, albo 2 byle jakie tranzystory.

    Proszę przestrzegać p.4 regulaminu, usunąłem treść naruszającą ten punkt.
    /prezeswal/.

    0
  • #18 05 Sty 2010 17:23
    prezeswal
    VIP Zasłużony dla elektroda

    Ujemne "przepięcia" na drenach MOSFET-ów można "wygasić" diodami (katoda na dren, anoda - do masy), najlepiej - Schottky'ego (nie wiem, jakiej długości są przewody -> jaka jest indukcyjność obciążenia).
    Ale czy zlikwiduje to "podświetlanie" - trzeba sprawdzić :D
    Pozdrawiam.

    0
  • #19 06 Sty 2010 09:25
    kulmar
    Poziom 25  

    Możesz zrobić następujący test:

    Zapal tylko w jednej (najlepiej środkowej linii) co drugą diodę. I obserwuj podświetlenie diod w pozostałych liniach. Z tego będzie mozna wyciągnąć jakieś wnioski.

    Pozdrawiam

    Mariusz

    0
  • #20 06 Sty 2010 10:40
    ksarim
    Poziom 14  

    Obserwowałem dzisiaj przebiegi napięcia na jednym wierszu. Kiedy na danym wierszu nie jest zapalana żadna dioda przebieg napięcia na wierszu wygląda następująco:
    matryca LED - delikatne podświetlanie diod przy przemiataniu
    Jeżeli to dobrze interpretuje to wygląda to tak jakby tranzystor MOSFET rozładowywał się po zasileniu wiersza.
    Jeżeli teraz na wierszu powyżej obserwowanego wiersza zapalona jest dioda to efekt podświetlania jest bardzo dobrze widoczny.
    Pomyślałem, że może jak uda mi się zniwelować efekt rozładowywania tranzystora MOSFET to może i zniknie podświetlanie. Podłączyłem między drenem i masą rezystor i podświetlanie zniknęło :) Przebiegi wyglądają teraz tak:
    matryca LED - delikatne podświetlanie diod przy przemiataniu
    Czy moja interpretacja jest poprawna i czy może ktoś to dokładniej wytłumaczyć?

    0
  • #21 06 Sty 2010 10:59
    lechoo
    Poziom 39  

    Pojemność wyjściowa tych tranzystorów wynosi 0,5nF, przez co zgromadzony w niej ładunek jest wystarczający do pojawienia się efektu poświaty na sąsiednich wierszach matrycy. Dodanie rezystorów ściągających ten ładunek do masy układu jest jak najbardziej poprawnym rozwiązaniem i nie wiem czemu wcześniej moderator prezeswal taką sugestię potraktował jako poradę szkodliwą!

    0
  • Pomocny post
    #22 06 Sty 2010 11:11
    zipp
    Poziom 13  

    Dolicz do tego jeszcze pojemność 40 diod na wiersz wyjdzie następne 0,5nF.
    Też pisałem wcześniej, żeby w punkcie pomiarowym dać opornik do masy.

    0
  • #23 06 Sty 2010 11:13
    prezeswal
    VIP Zasłużony dla elektroda

    lechoo napisał:
    Pojemność wyjściowa tych tranzystorów wynosi 0,5nF, przez co zgromadzony w niej ładunek jest wystarczający do pojawienia się efektu poświaty na sąsiednich wierszach matrycy. Dodanie rezystorów ściągających ten ładunek do masy układu jest jak najbardziej poprawnym rozwiązaniem i nie wiem czemu wcześniej moderator prezeswal taką sugestię potraktował jako poradę szkodliwą!


    No bo "szkodliwe" jest mylenie drenu ze źródłem :!:
    Pozdrawiam.

    0
  • #24 06 Sty 2010 11:31
    ksarim
    Poziom 14  

    zipp dobrze sugerował ale pomylił źródło z drenem.

    Dzięki wszystkim za wskazówki.

    Temat zamykam.

    0