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

ATmega16 - SCT2026: Niezałączana dioda LED i problemy z sygnałem zegarowym

FastProject 03 Paź 2016 10:38 1011 6
  • #1 15969359
    FastProject
    Poziom 28  
    Witam,
    konstruuje urządzenie z 6 wyświetlaczami LED i 16 diodami LED RGB. Wszystko sterowane z 4 rejestrów przesuwnych stało-prądowych SCT2026.

    Schemat na dole w załączniku PDF.

    Problem polega na tym, że:
    1. Mimo włączenia wszystkich LED niezałączana jest dioda numer 16, a zamiast niej załączana jest kropka drugiego wyświetlacza,na schemacie DP2
    2. Kiedy dotknę ścieżki zegara CLK to układ przestaje poprawnie odświeżać segmenty i LEDy.

    Program odświeżam w przerwaniu do 5ms. Poniżej program BASCOM:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Konfiguracja SPI przy kwarcu 16MHz:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Zmiana Clockrate nie pomaga.

    Gdy wyłączę wyświetlanie diody LED16, czyli Buffer(2) = 254, to kropka DP2 nie załącza się.

    W czym może leżeć problem. Nie starałem się za bardzo z projektem płytki, a tak ona wygląda:
    ATmega16 - SCT2026: Niezałączana dioda LED i problemy z sygnałem zegarowym
  • #2 15969431
    BlueDraco
    Specjalista - Mikrokontrolery
    Problem 1. wynika zapewne z błędnej konfiguracji SPI albo ze złej zależności czasowej pomiędzy SCK/MOSI i SS, jest to więc błąd programowy. Problem 2. to prawdopodobnie wynik zimnego lutu, zbyt wąskich ścieżek wysokoprądowych (masa, wspólna anoda) lub złego odsprzęgnięcia - brak/za mało/za małych kondensatorów.
  • #3 15969461
    FastProject
    Poziom 28  
    AD1. Sygnał SS nie jest tu używany i nie mam dołączone do SS żadnej ścieżki. Tą samą konfigurację stosowałem w innych urządzeniach i było ok (z tym że na rejestrach 8-bit SCT2168).
    AD2. Wspólna anoda, 5V prowadzone jest ścieżką o średnicy 30mil, pozostałe ścieżki sygnałowe 20mil. Prąd przy włączeniu większości segmentów wyświetlaczy i LED wynosi około 450mA. Zasilam z zasilacza laboratoryjnego. Przy każdym SCT jest 100nF, 10uF a zasilanie jak w dokumentacji przez rezystor 10Ω.

    Sprawdzałem zasilanie oscyloskopem i są tam malutkie skoki napięcia w momencie przerzucania LA i anod LED RGB, ale nie są to duże piki, schodki rzędu kilkunastu mV może 20mV.
    Niestety sygnału zegarowego nie mogę zbadać oscyloskopem bo po dotknięciu sondą zachowuje się ona jak po dotknięciu palcem i jest zakłócany.

    Spróbuje zegar podprowadzić do układu środkowego na PCB (sterującego LED RGB) doprowadzić bezpośrednio, bo teraz idzie on przez całą płytkę.
  • #4 15969509
    Konto nie istnieje
    Konto nie istnieje  
  • #5 15969522
    FastProject
    Poziom 28  
    SS jest jako wyjście oczywiście :)
    Najpierw mam konfigurację Config SPI, a później ustawianie MISO na wyjście, ale dopiero po tym mam bascomowe SPINIT, więc może faktycznie coś tu jest na rzeczy. Sprawdzę to po 16:00 i dam znać.
    SCK też jest jako wejście ale dodam tak jak MISO dodatkową konfigurację na wyjście po SPIINIT.

    Dodano po 4 [godziny] 41 [minuty]:

    Niestety przekonfigurowanie pinów SCK i MISO po inicjacji SPI , jak i zmiana pinu LA na inny port (PORTB.0) nie przyniosła poprawy w działaniu.
  • Pomocny post
    #6 15970345
    Konto nie istnieje
    Konto nie istnieje  
  • #7 15970430
    FastProject
    Poziom 28  
    niveasoft napisał:
    Według noty do tego SCT2026 sygnał na SDI jest samplowany kiedy CLK idzie w górę więc przy Polarity LOW powinieneś chyba użyć Phase = 0 :D


    I mamy rozwiązanie! To jest faktycznie to.

    Zgubiła mnie rutyna i kopiowanie procedur z innych swoich programów, bez sprawdzania schematu!

    Poprawna konfiguracja dla tego schematu to:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    I działa....




    Dziękuje serdecznie koledze niveasoft, jak i innym za uwagi które mogą przydać się w przyszłości.
REKLAMA