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

Bascom Atmega8 - MAX7219 - wyświetlacze połączone kaskadowo

maximus22_kr 03 Kwi 2016 02:16 3426 12
REKLAMA
  • #1 15575967
    maximus22_kr
    Poziom 18  
    Witam
    Walczę od kilku godzin, żeby na dwóch MAX7219 z wyświetlaczami LED.
    Na razie efekt jest taki, że na pierwszym ( podpiętym jako pierwszy do atmegi )
    wyświetlany jest tylko czas. Drugi wyświetla na wszystkich wyświetlaczach "ósemki" wraz z kropkami.

    Konfiguracja
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Inicjuje tak:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    wyświetlam tak:

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 15576257
    Konto nie istnieje
    Konto nie istnieje  
  • #3 15578377
    maximus22_kr
    Poziom 18  
    Witam
    To mnie Kolega zaskoczył - jeśli chodzi ilość wysyłanych bajtów
    Wzorowałem się na tej stronie, co prawda w C, ale można zobaczyć, jak tam to jest zrobione, tzn.

    pierwszy MAX7219
    - konfiguracja przez dwa bajty ( rejestr + wartość )
    drugi MAX7219
    - konfiguracja przez cztery bajty ( rejestr + wartość + No-op + No-op )
    drugi MAX7219
    - konfiguracja przez sześć bajtów ( rejestr + wartość + No-op + No-op + No-op + No-op)
  • #4 15578420
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #5 15579163
    maximus22_kr
    Poziom 18  
    Witam
    Niestety nie ruszyły, MAX podpięty jako pierwszy wyświetla "12345678" przez 3 sekundy i gaśnie ( przez 3 sekundy co 3 sekundy ) , na drugim świecą same "ósemki" i kropki.

    Zmiana kolejności podłączenia MAX'ów nic nie daje. Próbowałem też na Attiny84 i Atmega32, też to samo.
  • #6 15579240
    Konto nie istnieje
    Konto nie istnieje  
  • #7 15579248
    maximus22_kr
    Poziom 18  
    trafiłem jeszcze na coś takiego
    Cytat:
    SPI odpada bo wysyla za kazdym razem LOAD. Tylko Shiftout.
    'To przyklad na dwa maxy polaczone w szereg. Wlasnie te _noop to cala filozofia !!
    'Reszte wiecie jak zrobic.

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    sprawdze czy działa

    Dodano po 2 [godziny] 24 [minuty]:

    Muszę poszukać innych modułów z MAX7219, może coś z ty mi nie tak.

    Próbowałem z użyciem Shiftout. Wypociłem coś takiego:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    I teraz obydwa wyświetlacze wyświetlają "ósemki" i kropki.

    Dodano po 24 [minuty]:

    Wgrałem program
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Pierwszy wyświetlacz wyświetla "12345678" drugi powinien "ABCDEFGH" a wyświetla same "ósemki" i kropki.
  • REKLAMA
  • #8 15580401
    Konto nie istnieje
    Konto nie istnieje  
  • #9 15581539
    maximus22_kr
    Poziom 18  
    Cytat:
    Ten mój pierwszy program na pewno działa, ale napisałem nowy na liniach sprzętowego SPI żeby obalić te tezy że na sprzętowym się nie da.


    ja tam nie twierdzę, że nie działa

    Cytat:
    Raczej bym się przyjrzał temu jak to połączyłeś.


    Akurat połączenia są OK, mierzyłem wejście CLK i Load na początku i na ostatnim module, jest w porządku

    Cytat:
    Pod koniec tygodnia będe miał takie cztery połączone szeregowo to sobie sprawdzę

    chyba poczekam na testy Kolegi.

    Natomiast zastanawia mnie długość połączenia, pomiędzy pierwszym MAX'em a Atemgą jest najdłuższe - ze 20 cm, pomiędzy modułami jest 10 cm, czy to aby nie utrudnia ?
  • REKLAMA
  • #10 15581586
    Konto nie istnieje
    Konto nie istnieje  
  • #11 15581599
    maximus22_kr
    Poziom 18  
    Niestety w pracy nie mam możliwości przerobić, mam płytkę z Atmega8 i dwa moduły i w wolnej chwili coś tam dłubie.

    Mam wrażenie, że inicjowanie modułu nie jest OK. Nawet ten program testowy lepiej się zachowuje przy jednym module.
  • #12 15583760
    maximus22_kr
    Poziom 18  
    Długość przewodów nie miała znaczenia.

    Natomiast takie inicjowanie:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Wartosci do wyświetlania

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Takie wysyłanie danych do MAX7219
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    powoduje, że wyświetlacz podpięty jako pierwszy cały świeci ( wszystkie cyfry " ósemki" oraz kropki ), czyli nie został zainicjowany a podpięty jako drugi coś wyświetla - od czasu do czasu to co powinien, a czasem coś doda od siebie.

    Dodano po 1 [godziny] 5 [minuty]:

    Przy takim "potworku"
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    obydwa moduły wyświetlają co trzeba ( jeden datę, a drugi czas ), ale tylko przez chwilę i albo się wygaszają, albo wyświetlają coś co dodają od siebie. Czyli robią co chcą, tzn. wyświetlacz podłączony jako pierwszy do Atmegi zachowuje się lepiej - trzyma wartości godziny. Ten podłączony jako drugi coś powyświetla i się wyłącza.
  • #13 15617012
    maximus22_kr
    Poziom 18  
    Witam
    Przy takim inicjowaniu:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    i takim wyświetlaniu:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    wyświetla co trzeba na każdym wyświetlaczu. Wyświetlacze są przypięte bez użycia kabli. Ustawienie wartości początkowych zmiennych i zwiększanie ich przy użyciu timer'a również działa OK.
    Problem pojawia się jak dołożę odczyt z PCF8563 - wyświetla tylko 45 25 05 7 ( pierwszy ) i 45 85 85 ( drugi ).

    Dodano po 2 [godziny] 25 [minuty]:

    Okazało się jednak, że to kwestia podłączenia zegara PCF8563.

    Jednak moje wcześniejsze stwierdzenie, że długość kabli nie ma znaczenia, jest fałszywe. Niestety podłączając kablem wprowadzam (chyba ?) jakieś dodatkowe opóźnienia/zakłócenia i nie działa jak trzeba.
    Może ktoś wie jak rozwiązać ten problem ? wprowadzić dodatkowe opóźnienie pomiędzy wysyłaniem danych do poszczególnych MAX'ów ?


    Podejrzewam, że takiego problemu nie ma w przypadku matryc LED wykonanych na niebieskiej płytce oferowanej przez chińczyków - tak na brzegach płytki są wyprowadzone sygnały i można je łatwo połączyć zworkami bez użycia kabli.
REKLAMA