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

ATmega16 - SCT2026 Słaby sygnał zegarowy

FastProject 03 Paź 2016 10:38 696 6
  • #1 03 Paź 2016 10:38
    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: vbnet
    Zaloguj się, aby zobaczyć kod


    Konfiguracja SPI przy kwarcu 16MHz:
    Kod: vbnet
    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 Słaby sygnał zegarowy

    0 6
  • Elmark
  • #2 03 Paź 2016 11:09
    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.

    0
  • Elmark
  • #3 03 Paź 2016 11:20
    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ę.

    0
  • #4 03 Paź 2016 11:52
    373522
    Użytkownik usunął konto  
  • #5 03 Paź 2016 16:39
    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.

    0
  • Pomocny post
    #6 03 Paź 2016 18:12
    373522
    Użytkownik usunął konto  
  • #7 03 Paź 2016 18:51
    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: vbnet
    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.

    0