- świecące elementy segmentów składowych wykonane są w postaci cienkich włókien rozżarzanych przepływem prądu, jak w żarówce,
- wyświetlacze sterowane statycznie z zastosowaniem ekspanderów GPIO z I²C typu TPIC2810,
- trwałość żarników w warunkach znamionowych określana jest na 10000 godzin,
- płytka dopasowana do formatu Raspberry Pi.
W module zastosowano dostępne na aukcjach internetowych wyświetlacze typu IW-9. Pod tajemniczą nazwą numitron, kryje się w zasadzie zupełnie prosta technologia wykonania. IW-9 to wyświetlacz o konstrukcji segmentowej, z przecinkiem po prawej stronie cyfry, czyli jak w klasycznym siedmiosegmentowym wyświetlaczu LED. Świecące elementy segmentów składowych wykonane są w postaci cienkich włókien rozżarzanych przepływem prądu, jak w żarówce. Całość umieszczona jest w szklanym balonie, z którego odpompowane jest powietrze. Podczas świecenia segment pobiera prąd w około 20 mA, przy napięciu 3...4 V, co jest porównywalne z wczesnymi typami wyświetlaczy LED. Podobnie jak w przypadku żarówek, obniżenie napięcia powoduje zmniejszenie jasności, ale podnosi trwałość żarników, która w warunkach znamionowych określana jest na 10000 godzin.
Budowa i działanie
Schemat modułu został pokazany na rysunku 1. Zastosowane wyświetlacze IW-9 mają wysokość cyfry ok. 11 mm, co zapewnia odpowiednią widoczność oraz pozwala na uzyskanie kompaktowej konstrukcji.
Układ wyprowadzeń zaczerpnięty z noty katalogowej pokazano na rysunku 2. Cechy numitronu znacząco upraszczają konstrukcję modułu sterującego, nie jest potrzebne napięcie żarzenia oraz podniesione napięcie anod jak w przypadku wskaźników VFD lub wysokie napięcie jak w przypadku lamp Nixie. Do sterowania numitronem wystarczają klasyczne układy przeznaczone do sterowania wskaźnikami LED.
Pole odczytowe modułu składa się z czterech wyświetlaczy DISP1...DISP4 sterowanych statycznie, co upraszcza aplikację sterującą. Do sterowania segmentami zastosowano układy GPIO magistrali I²C o zwiększonej wydajności prądowej typu TPIC2810. Budowę wewnętrzną układu TPIC2810 pokazano na rysunku 3.
TPIC2810 ma cztery rejestry pod subadresami 0x11, 0x22, 0x44, służące do kontroli działania układu:
- 0x11 – odczyt danych z rejestru wejściowego (bufora),
- 0x11 – zapis danych do rejestru wejściowego (bufora), nie ustawia stanów wyjść,
- 0x22 – zapis powoduje przepisanie rejestru wejściowego (bufora) do rejestru wyjściowego ustawiającego stan wyjść,
- 0x44 – zapis bezpośredni do rejestru wyjściowego, z ustawieniem stanu wyjść.
Każdy wyświetlacz sterowany jest niezależnym układem TPIC, segmenty przypisane są w kolejności DP,A...G, zaczynając od najstarszego bitu D7. Układy zajmują cztery kolejne adresy na magistrali I²C, zwora ADR umożliwia ustawienie dwóch zakresów adresacji 0x60...0x63 przy zwarciu do masy i 0x64...0x67 przy zwarciu do V33. Układy TPIC mają sprzętowe wejście załączające wskaźniki – G. Wejścia G wszystkich układów są połączone i doprowadzone do zwory G, która umożliwia stałe sprzętowe globalne załączenie wyświetlaczy po zwarciu do masy lub sterowanie programowe sygnałem GE4 z pinu GPIO4.
Napięcia zasilania do wyświetlaczy dostarcza przetwornica obniżająca U5 typu LMR10515. Wartość napięcia wyjściowego ustalana jest rezystorem R5 i w modelu wynosi ok. 3,7 V. Napięcie można dobrać według wzoru Vo=0,6(1+R5/R4). Przetwornica zasilana jest napięciem 5 V z Raspberry, należy pamiętać, że pobór mocy może wynosić ok. 3...3,5 W, co należy uwzględnić przy doborze zasilacza.
Dodatkowym wyposażeniem modułu jest zegar czasu rzeczywistego U6 typu DS1338 wraz z baterią podtrzymującą CR1220, przydatny, gdy moduł będzie zastosowany jako zegar. Układ uzupełnia złącze I²C w standardzie Grove 3,3 V służące do podłączenia zewnętrznych czujników.
Montaż i uruchomienie
Układ zmontowany jest na dwustronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunku 4.
Sposób montażu jest klasyczny i nie wymaga opisu, należy zwrócić tylko uwagę, aby przy montażu lamp zachować co najmniej 10 mm wyprowadzeń, aby nie ukruszyć szklanego cokołu. Elementy C8, U6, XT, BAT montowane są tylko w opcji z zegarem RTC. Zmontowany układ pokazano na fotografii 1.
Podczas montażu należy ustalić sposób sterowania globalnego, lutując zworę G oraz adresację modułu ustawiając odpowiednio zworą ADR. Uruchomienie modułu sprowadza się do kontroli napięcia zasilającego wskaźniki, powinno wynosić ok. 3,7 V.
Przed napisaniem aplikacji wykorzystującej moduł warto sprawdzić jego działanie za pomocą narzędzi systemowych. Rejestry sterowania segmentami wyświetlaczy w modelu dostępne są pod adresami 0x60...0x63 (jednostki...tysiące), co można sprawdzić poleceniem:
którego wynik został pokazany na rysunku 5. Jeżeli wszystko działa poprawnie, układy TPIC widoczne będą pod adresami 0x60...0x63, a opcjonalny zegar RTC pod adresem 0x68.
Do sterowania globalnym załączeniem/wyłączeniem należy ustawić stan wyprowadzenia GPIO4, np. skryptami z listingu 1 i 2.
#!/bin/bash
cd /home/pi
BASE_GPIO_PATH=/sys/class/gpio
PIN1=4
if [ ! -e $BASE_GPIO_PATH/gpio$PIN1 ]; then
echo $PIN1 > $BASE_GPIO_PATH/export
fi
echo “out” > $BASE_GPIO_PATH/gpio$PIN1/direction
echo “0” > $BASE_GPIO_PATH/gpio$PIN1/value
echo “G włączony G=0”
#!/bin/bash
cd /home/pi
BASE_GPIO_PATH=/sys/class/gpio
PIN1=4
if [ ! -e $BASE_GPIO_PATH/gpio$PIN1 ]; then
echo $PIN1 > $BASE_GPIO_PATH/export
fi
echo “out” > $BASE_GPIO_PATH/gpio$PIN1/direction
echo “1” > $BASE_GPIO_PATH/gpio$PIN1/value
echo “G wyłączony G=1”
Po uruchomieniu drugiego skryptu poleceniem ./g_ON.sh i ustawieniu sygnału GE4 w stan niski (G=0) dla zaświecenia segmentów należy odpowiednie wyprowadzenia U1...U4 ustawić w stan wysoki poprzez zapis w rejestrze 0x44, wpisując polecenie np.
To zaświeci wszystkie segmenty wskaźnika DISP4. Skrypt testowy iw9.sh dla wszystkich wyświetlaczy pokazano na listingu 3.
#!/bin/bash
echo “Numitron TPIC2810 Driver ADR:0x60-0x63”
echo “All ON”
i2cset -y 1 0x60 0x44 0xFF
i2cset -y 1 0x61 0x44 0xFF
i2cset -y 1 0x62 0x44 0xFF
i2cset -y 1 0x63 0x44 0xFF
sleep 2
echo “All OFF”
i2cset -y 1 0x60 0x44 0x00
i2cset -y 1 0x61 0x44 0x00
i2cset -y 1 0x62 0x44 0x00
i2cset -y 1 0x63 0x44 0x00
sleep 2
echo exit
Po jego uruchomieniu zostaną na dwie sekundy zaświecone wszystkie segmenty DISP1...DSIP4. Efekt działania skryptu jest widoczny na fotografii tytułowej. Jeżeli wszystko działa, można przejść do wykorzystania modułu we własnej aplikacji.
Adam Tatuś, EP
- R1, R2: 4,7 kΩ
- R3, R5: 51 kΩ
- R4: 10 kΩ
- R6: 100 Ω
- C1, C2, C3, C4: 0,1 µF (SMD0603)
- C5, C6: 47 µF/10 V (SMD1206)
- C7: 10 µF (SMD0603)
- D2: STPS2L40U dioda Schotky’ego SMD
- U1, U2, U3, U4: TPIC2810D (SO16)
- U5: LMR10515YMFE (SOT-23-5)
- DISP1, DISP2, DISP3, DISP4: wyświetlacz IW-9 (numitron)
- GPIO: złącze IDC żeńskie 2×50 pinów
- I²C: złącze Grove kątowe
- L2: 2,2 µH dławik mocy HPI0530-2R2
- XT: rezonator kwarcowy 32,768 kHz
- C8: 0,1 µF (SMD0603)
- U6: DS1338U33 (MSOP8)
- BAT: bateria CR1220 + oprawka KEYS1056