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

Multipleks i regulacja jasności 30 wyświetlaczy 7seg

FastProject 06 Lis 2013 20:02 1935 7
  • #1 12922804
    FastProject
    Poziom 28  
    Witam,
    mam zamiar zbudować stacje pomiarową (temperatura wilgotność, ciśnienie itp) z 30 wyświetlaczami LED 7 segmentowymi http://www.artronic.com.pl/o_produkcie.php?id=877?

    Schemat sterowania z rejestrami załączam w pdf. Generalnie są to wyświetlacze 2-kolorowe gdzie ma być możliwość sterowania każdym z wyświetlaczy i ich kolorami z osobna i tak mam:
    - 8 rejestrów 8bit do sterowania anodami wyświetlaczy (łącznie 60 anod)
    - 8 rejestrów do sterowania katodami (wyświetlacze łączone w grupy 3x8 i 1x6 wyświetlaczy) takie sterowanie katodami polega na multipleksie tak jakby 4 cyfr co skutkuje większymi jasnościami.

    I teraz chciałbym także regulować jasność tych wyświetlaczy, wszystkich jednocześnie. No i mam zagwozdkę jak najlepiej to wykonać. Najchętniej zrobiłbym to programowo, ale zastanawiam się, czy przy takim sterowaniu będzie to możliwe na Atmega32 lub podobnym AVR.

    Opcją jest np LM317 sterowany z uP i OpAmp albo jakaś przewodniczka z wejściem DIM sterowana z PWM uP.

    Proszę o porady i sugestie.
  • #2 12922853
    michalko12
    Specjalista - Mikrokontrolery
    Wykorzystaj wejścia OE w tych rejestrach, albo podaj PWM na nie, albo za ich pomocą steruj czasem świecenia.
  • #3 12922900
    FastProject
    Poziom 28  
    Ok, mogę na OE podać PWM, ale czy nie będzie to migało czy pływało?
  • #4 12923034
    Konto nie istnieje
    Poziom 1  
  • #5 12923299
    FastProject
    Poziom 28  
    Marek_Skalski napisał:
    Nie będzie, o ile częstotliwość będzie rozsądna, np. może być synchroniczna z odświeżaniem rejestrów wyświetlaczy.

    A jak taką programowa synchronizację zrealizować?
    Marek_Skalski napisał:

    Optymalny częstotliwość to ~300Hz, czyli jakieś 3,333ms na cykl.
    4 cyfry, czyli 0,833ms na cyfrę.
    64 bity + zatrzaśnięcie danych dla anody to <11us na bit. Atmega32 może to sterować przez SPI, ale z braku DMA będzie prawie cały czas siedziała w przerwaniu obsługi wyświetlaczy.

    To nie problem bo większość danych będzie przychodzić albo z zegara RTC albo z przerwań z szyny RS485.
    Marek_Skalski napisał:

    Sterowanie jasnością możesz zrobić przez sprzętowy PWM na częstotliwości np. 1200Hz, co dla 64 stopni jasności daje ~76kHz dla zegara licznika. Ten sam licznik może generować obsługę przerwania do aktualizacji rejestrów. Dzięki temu każdy cykl PWM będzie synchroniczny z włączeniem wyświetlacza i nic nie będzie pływało.

    Skąd jest to 1200Hz?

    A jak by tak pójść za radą kolegi michalko12 i na wejścia OE rejestrów po prostu podawać PWM około 32khz (bez synchronizacji). Wyszło by z tego 32 kroki jasności? Póki co nie wiem jak by zrobić w programie ewentualną synchronizację. Można prosić o jakiś pseudo kod, algorytm multipleksu z synchronizacja pwm?
  • #6 12923397
    Konto nie istnieje
    Poziom 1  
  • #7 12923482
    BlueDraco
    Specjalista - Mikrokontrolery
    Coś tu się nie zgadza. Przy multipleksowaniu na 4 i dwukolorowych wyświetlaczach potrzebujesz czterech linii sterowania anodami i 128 linii sterowania katod, czyli do anod rejestru nie trzeba wcale, a do katod - trzeba dłuższego.

    No i zrób to na jakiś Cortexie - będzie o połowę taniej i mniej kłopotu z szybkim ładowaniem rejestru katod, a jasnością będziesz mógł sterować przez sprzętowy PWM na anodach.
  • #8 12923989
    FastProject
    Poziom 28  
    BlueDraco napisał:
    Coś tu się nie zgadza. Przy multipleksowaniu na 4 i dwukolorowych wyświetlaczach potrzebujesz czterech linii sterowania anodami i 128 linii sterowania katod, czyli do anod rejestru nie trzeba wcale, a do katod - trzeba dłuższego.

    No i zrób to na jakiś Cortexie - będzie o połowę taniej i mniej kłopotu z szybkim ładowaniem rejestru katod, a jasnością będziesz mógł sterować przez sprzętowy PWM na anodach.

    No chyba nie bardzo bo wtedy nie będę miał możliwości i indywidualnej zmiany kolorów wyświetlaczy.

    Co do cortex to zrobiłbym ale nigdy nie pracowałem z tymi prockami podobnie jak z jakimkolwiek arm.

    Dodano po 14 [minuty]:

    Marek_Skalski napisał:
    . Albo szybszy uC i więcej w programie (tutaj wystarczy xmega, arma nie trzeba pakować ;) ) i/lub dedykowany driver do wyświetlaczy (16-bitowy), który załatwia odświeżanie i zwalnia z konieczności ciągłego przesyłania danych.


    A jakie drivery by sie tu np nadały? Rozwaze zmianę multpleksu ale procem musi zostac avr.
REKLAMA