Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

PROJEKTY

multiTID – wielofunkcyjny,
samochodowy komputer
pokładowy (1)
Kilkakrotnie podejmowałem wyzwanie zaprojektowania komputera pokładowego i to zarówno takiego, który
korzysta z oryginalnego, wbudowanego w deskę rozdzielczą wyświetlacza pokładowego, jak i własnego LCD,
OLED czy TFT. Korzystając z doświadczenia, które zdobyłem projektując wspomniane urządzenia, postanowi-
łem zbudować komputer pokładowy będący syntezą wcześniej zastosowanych rozwiązań, lecz wyróżniający się
największą i niespotykaną w innych rozwiązaniach funkcjonalnością. Miał to być komputer, który „tchnie” nowe
życie w starsze pojazdy. MultiTID, czyli urządzenie, o którym mowa, ma możliwość współpracy z oryginalnymi ra-
dioodbiornikami montowanymi w pojazdach spod znaku Opla, a więc daje możliwość zastąpienia wbudowanego
(dość archaicznego), trójfunkcyjnego wyświetlacz pokładowego nazywanego skrótem TID (Triple Info Display)
przez niezwykle efektowny, duży i szerokoekranowy kolorowy wyświetlacz TFT o przekątnej 4.2”. Co więcej, ma
możliwość pomiaru spalania i rejestracji przeróżnych statystyk w pojazdach wyposażonych w instalację zasila-
nia gazem LPG i to niezależnie dla obu rodzajów paliwa.
Rekomendacje: prezentowany komputer pokładowy może zostać zamontowany w pojeździe dowolnej marki.
W pojeździe innej marki po prostu nie będzie korzystał z funkcjonalności wyświetlania danych za pomocą wy-
świetlacza radioodbiornika.

Oto lista funkcji, w które jest wyposa- • „Obsługa” dwóch rodzajów paliwa • Łatwość instalacji uzyskana poprzez
żony komputer pokładowy multiTID:: (Pb/LPG), zastosowanie oryginalnego złącza
• Pełna funkcjonalność typo- • Czytelny, intuicyjny, graficzny in- połączeniowego wyświetlacza TID
wego, samochodowego kompu- terfejs użytkownika wzorowany (oraz złącz dodatkowych dla funk-
tera pokładowego. na najnowszych rozwiązaniach cji spalania).
• Możliwość emulacji wyświetlacza TID z segmentu Premium. Ponadto, postawiłem dość wysokie
montowanego w pojazdach marki Opel • Możliwość regulacji jasności pod- wymagania dotyczące funkcjonalności
(8- i 10-znakowego), a więc możliwość świetlenia wyświetlacza graficznego komputera pokładowego, którego zde-
obsługi komunikatów wysyłanych zgodnie z ustawieniem jasności pod- cydowałem się wyposażyć w następu-
przez oryginalne radioodbiorniki. świetlenia zegarów pojazdu. jące funkcje:

20 ELEKTRONIKA PRAKTYCZNA 12/2016


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

• Pokazywanie temperatury na ze- emulacji jest jedną z głównych zalet DODATKOWE MATERIAŁY NA FTP:
wnątrz pojazdu (z zastosowaniem i zarazem unikalnych cech urządzenia ftp://ep.com.pl
czujnika montowanego w pojazdach multiTID, bo umożliwia współpracę ste- user: 66532, pass: 8nnjjeaa
marki Opel) oraz ostrzeżenia o śli- rownika z oryginalnymi radioodbior- W  ofercie AVT*
skiej nawierzchni (dla temperatury nikami dedykowanymi do pojazdów AVT-5562
zewnętrznej niższej, niż 5°C). spod znaku Opla. Co więcej, sterow- Podstawowe informacje:
• Pokazywanie chwilowej prędkości nik nasz obsługuje wszystkie rodzaje yyNapięcie zasilania: 8…15 V DC.
yyMaksymalny prąd obciążenia (z napięcia
pojazdu (w km/godz.). radioodbiorników montowanych przez +12 V): 10 mA.
• Pokazywanie średniej prędkości tego producenta, które to wyposażono yyPrąd podtrzymania zegara RTC (z napięcia
BATT): 1 mA.
pojazdu na przejechanym odcinku w magistralę sterującą z sygnałami SDA/ yyMaksymalny prąd podświetlenia (z napię-
drogi (w km/godz.), SCL/MRQ i może emulować wyświe- cia ILL+): 75 mA.
yyDokładność pomiaru temperatury: 1°C.
• Pokazywanie maksymalnej pręd- tlacze TID z 8-znakową i 10-znakową yyZakres pomiarowy temperatury zewnętrz-
kości pojazdu na przejechanym od- organizacją pola tekstowego, a więc nej: –30…35°C.
cinku drogi (w km/godz.), wyświetlacze pokładowe montowane yyZakres pomiarowy prędkości pojazdu:
0…255 km/godz.
• Pokazywanie chwilowego zuży- w takich modelach jak Astra F, Corsa B, yyZakres pomiarowy chwilowego zużycia
cia paliwa (w l/godz. dla prędkości Combo, Astra G, Corsa C, Meriva, Mo- paliwa: 0…99,9 l/100 km.
yyZakres pomiarowy średniego zużycia pali-
≤5 km/godz. oraz l/100 km dla po- vano, Omega B, Vectra B, Tigra. Wyjąt- wa: 0…25,5 l/100 km.
zostałych prędkości) dla obu rodza- kiem są nowsze pojazdy wyposażone yyZakres pomiarowy paliwa dostępnego
jów paliwa. w wyświetlacz pokładowy obsługujący w baku: 0…99,9 l.
yyZakres pomiarowy przejechanej odległości:
• Pokazywanie średniego zużycia pa- magistralę CAN. Ta cecha naszego ste- 0…9999 km.
liwa (w l/100  km) dla obu rodza- rownika czyni go wyjątkowo atrakcyj- yyZakres pomiarowy dystansu do przejecha-
nia na dostępnym paliwie: 0…999 km.
jów paliwa. nym, z punktu widzenia użytkownika yyZakresy regulacji parametrów
• Pokazywanie paliwa pozostającego pojazdu tej marki i co warto podkre- konfiguracyjnych:
ƒƒ Stałe wtryskiwaczy: 1…999 ml/min.
w baku pojazdu(w l, jak i graficznie ślić, nie znajduje odpowiednika ani ƒƒ Stała przetwornika drogi: 1…99
– bargraf) dla obu rodzajów paliwa. w konstrukcjach amatorskich, ani też impulsów/obrót.
• Pokazywanie przewidywanego za- na rynku komercyjnym. ƒƒ Obwód opony: 50…255 cm.
ƒƒ Liczba cylindrów: 2…8.
sięgu pojazdu na paliwie pozostają- Zanim przejdziemy do szczegółów ƒƒ Pojemności baków: 25…99 l.
cym w baku pojazdu (w km) dla obu implementacyjnych warto przyjrzeć yyPrzesunięcie belek informacyjnych:
0÷9 pikseli.
rodzajów paliwa. się rozwiązaniu zastosowanemu przez
Projekty pokrewne na FTP:
• Pokazywanie przejechanego dy- Opla, gdyż jest to przykład dobrze wy- (wymienione artykuły są w całości dostępne na FTP)
stansu od ostatniego kasowania konanej pracy inżynierskiej i dogłęb- AVT-5545 Komputer samochodowy Mee
(w km). nie przemyślanej konstrukcji. Zgodnie MK II (2.0) (EP 7-8-9/2016)
AVT-5495 Uniwersalny komputer
• Pokazywanie aktualnego czasu z tym, o czym wspominano wcześniej, samochodowy Mee
i daty (z zastosowaniem mechani- firma Opel od wielu lat stosuje w swo- (EP 3/2015)
AVT-3095 Komputer samochodowy
zmu podtrzymania zasilania). ich pojazdach zewnętrzne, zintegro-
(EdW 4-5/2014)
• Pokazywanie statystyk spalania wane z deską rozdzielczą, podświetlane AVT-5405 TripCo – komputer
na każde przejechane 10 km/1 km wyświetlacze LCD, których funkcje za- samochodowy (EP 7/2013)
AVT-5395 TIDex – komputer dla
(dla ostatnio przejechanych 150 leżne są od modelu auta, jego wyposaże- samochodów z silnikiem
i 15 km) dla obu rodzajów paliwa. nia, roku produkcji jak i modelu samego Diesla (EP 5/2013)
AVT-5397 Komputer pokładowy
• Automatyczna detekcja bieżącego ro- wyświetlacza. Ogólnie rzecz ujmując z funkcją tempomatu
dzaju paliwa. można wyróżnić kilka typów wyświe- (EP 5/2013)
Jak widać, cel jest dość ambitny, jed- tlaczy, których poglądowe porównanie AVT-1664 Transceiver CAN (EP 2/2012)
AVT-5280 Urządzenie diagnostyczne
nak doświadczenia zdobyte przy kon- przedstawiono w tabeli 1. do sieci CAN (EP 3/2011)
struowaniu poprzednich urządzeń Poza wymienionymi, podstawowymi AVT-5271 VAGlogger – Przyrząd
diagnostyczny dla
upraszczają znacząco proces jego im- różnicami, w zależności od roku pro- samochodów z grupy VW
plementacji. Zanim jednak przejdziemy dukcji i wyposażenia pojazdu, stoso- – Audi (EP 1/2011)
AVT-5160 Climatic – sterownik
do opisu samego urządzenia warto przy- wano wyświetlacze o różnej organizacji klimatyzacji samochodowej
bliżyć nieco temat pokładowego wy- i rozdzielczości. Starsze miały organi- (EP 12/2008)
świetlacza TID, gdyż możliwość jego zację 1×8 znaków (tylko wielkie litery AVT-286 „Komputerek” pokładowy
do samochodu (EP 5-6/1996)
* Uwaga:
Tabela 1. Porównanie funkcjonalności wyświetlaczy pokładowych stosowanych przez
Zestawy AVT mogą występować w następujących wersjach:
AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów

firmę Opel
dodatkowych.
AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie
wyraźnie zaznaczono), bez elementów dodatkowych.
AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie
Nazwa Funkcje Typ magistrali sterującej wersji A i wersji UK) bez elementów dodatkowych.
AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymienio-
ny w załączniku pdf
DID Data, godzina, obsługa radioodbiornika AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane
w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie,
TID Funkcje DID + temperatura zewnętrzna Zmodyfikowana I2C zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały
wymienione w załączniku pdf
AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli
MID Funkcje TID + obsługa komputera pokładowego występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link
umieszczony w opisie kitu)
Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma
NAVI Funkcje MID + obsługa nawigacji satelitarnej CAN załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą
wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

ELEKTRONIKA PRAKTYCZNA 12/2016 21


PROJEKTY

Astra G/Corsa
Astra G/Corsa
C C
Astra F/Corsa
Astra F/Corsa B B Tabela 2. Opis wyprowadzeń dwóch złącz wyświetlacza TID stosowanych w najbardziej
popularnych modelach Opla
6 6 1 1
1 1 6 6 Astra G/Corsa C
12 12 7 7 7 7 12 12 Nr pinu Funkcja/Opis
1 Zasilanie: 12V po przekręceniu kluczyka stacyjki

Rysunek 1. Rozmieszczenie wyprowadzeń 2 AA – 12V po włączeniu radioodbiornika


dwóch złącz wyświetlacza TID stosowanych 3 Zasilanie: 12V z akumulatora
w najbardziej popularnych modelach Opla 4 Regulacja jasności podświetlenia wyświetlacza (sygnał PWM)
5 NTC – wyprowadzenie do podłączenia czujnika temperatury zewnętrznej
i cyfry, wyświetlacz alfanumeryczny), 6 Masa
które były dostępne dla radioodbior- 7 NTC – wyprowadzenie do podłączenia czujnika temperatury zewnętrznej
nika plus dodatkowe piktogramy obra- 8 Wyprowadzenie testowe – do sprzętu diagnostycznego
zujące tryb pracy radia. Nowsze pracują 9 WEG – sygnał prędkości pojazdu (korekta wskazań termometru)
w organizacji 1×10 znaków (plus pik- 10 SCL - sygnał sterujący magistrali – Serial Clock
togramy, pełne ASCII, wyświetlacz 11 SDA - sygnał sterujący magistrali – Serial Data
mozaikowy 5×7 pikseli) w dolnym 12 MRQ - sygnał sterujący magistrali – Master Request
wierszu, zaś górny wiersz zarezerwo- Astra F/Corsa B/Tigra
wano dla wbudowanego systemu mi- Nr pinu Funkcja/Opis
kroprocesorowego (zegar, termometr). 1 Zasilanie: 12V z akumulatora
Dodatkowo, przewidziano możliwość 2 NTC – wyprowadzenie do podłączenia czujnika temperatury zewnętrznej
synchronizacji wbudowanego weń ze- 3 Masa
gara czasu rzeczywistego sygnałem 4 NTC – wyprowadzenie do podłączenia czujnika temperatury zewnętrznej
RDS radioodbiornika. Niestety, od roku 5 Zasilanie: 12V po przekręceniu kluczyka stacyjki
2005/2006 firma Opel zdecydowała się 6 Oświetlenie
(wzorem innych producentów w branży 7 Regulacja jasności podświetlenia wyświetlacza (sygnał PWM)
motoryzacyjnej) na zastosowanie ma-
8 AA – 12V po włączeniu radioodbiornika
gistrali CAN we wszystkich nowych
9 SCL - sygnał sterujący magistrali – Serial Clock
pojazdach osobowych, co pociągnęło
10 MRQ - sygnał sterujący magistrali – Master Request
potrzebę implementacji tego interfejsu
11 SDA - sygnał sterujący magistrali – Serial Data
także w wyświetlaczu LCD. Niemniej
12 WEG – sygnał prędkości pojazdu (korekta wskazań termometru)
jednak, w zdecydowanej większości po-
pularnych modeli pojazdów tej marki
znajdziemy wyświetlacze, które z po- Jest ona bardzo zbliżona funkcjonalno- sterujących pokazano na rysunku  2,
wodzeniem mogą być zastąpione przez ścią do dobrze znanej magistrali I2C, lecz a którego celem jest sprawdzenie ciągło-
opisywane urządzenie. Oczywiście, poszerzona o dodatkowy sygnał steru- ści wszystkich linii danych jak i wyklu-
w zależności od typu pojazdu i rodzaju jący – MRQ (Master Request). Na tę ma- czenie potencjalnych zwarć.
zastosowanego wyświetlacza, stoso- gistralę składają się 4 linie oznaczonych: Tuż po włączeniu zasilania radiood-
wano różne złącza. Na rysunku 1 za- AA, MRQ, SDA i SCL, przy czym wy- biornika, któremu to towarzyszy zmiana
mieszczono rozkład wyprowadzeń łącznie trzy ostatnie realizują rzeczy- poziomu napięcia występującego na li-
dwóch złącz wyświetlacza TID stoso- wistą transmisję danych, zaś linia AA nii AA z 0 V na 12 V, następuje po czasie
wanych w najbardziej popularnych mo- sygnalizuje zdarzenie załączenia/wyłą- T1 (100…500 ms) ściągnięcie wszyst-
delach Opla, tj. Astra F/G i Corsa B/C. czenia radioodbiornika przygotowując kich linii danych (MRQ, SDA i SCL)
W tabeli 2 umieszczono opis wypro- tym samym wbudowany wyświetlacz do masy na czas T2 (500…1000 ms), na-
wadzeń tych złącz. Paleta stosowanych do odbierania danych. Po wyłączeniu stępnie zwolnienie ich (także na czas
złącz jest znacznie szersza, w związku radioodbiornika napięcie na tej linii T2) oraz naprzemienne ściągnięcie
z czym zainteresowanych czytelni- wynosi 0 V, zaś po jego załączeniu 12 V. do masy kolejnych linii SDA, SCL
ków odsyłam na bardzo ciekawą stronę Linia MRQ jest używana przez układ i na końcu MRQ. Taka sekwencja zda-
poświęconą tematyce car-audio, znaj- master (radioodbiornik) do sprawdzenia rzeń pozwala, co napisano wcześniej,
dującą się pod adresem https://goo.gl/ obecności układu slave (wyświetlacza na zbadanie stanu wszystkich linii
NaAfwS. TID) na magistrali danych oraz do roz- sterujących i zakończenie transmisji
Wyświetlacz jest systemem mikropro- różnienia rodzaju przesyłanych danych, w przypadku wykrycia potencjalnych
cesorowym wyposażonym w funkcje o czym później. Zanim jednak radiood- problemów. Jeśli powyższa procedura
dodatkowe (oprócz możliwości wyświe- biornik rozpocznie jakąkolwiek transmi- zakończy się powodzeniem (brak zwarć
tlania danych z magistrali), takie jak: sję danych sprawdza, tuż po włączeniu i nieciągłości linii danych), master prze-
wbudowany kalendarz, zegar czy też jego zasilania, stan wszystkich linii chodzi do właściwej transmisji danych,
termometr. Kolejnym ciekawym zagad- transmisyjnych wykonując tzw. Power dla której to przebiegi sygnałów sterują-
nieniem jest rodzaj magistrali sterującej. On Test, dla którego przebiegi sygnałów cych pokazano na rysunku 3.

22 ELEKTRONIKA PRAKTYCZNA 12/2016


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

Po czasie T3 (1…2 ms) od ostatniego tego nie zrobi, master powinien zakoń- 8-bitowej z ustawionym bitem R/W).
zwolnienia linii MRQ będącego jed- czyć w tym miejscu bieżącą transmi- Właśnie w tym miejscu jest widoczna
nocześnie końcowym elementem pro- sję danych. Dalej, wyzerowaniu linii subtelna różnica pomiędzy standardo-
cedury Power On Test, układ Master SDA przez slave, master zwalnia linię wym interfejsem zgodnym ze standar-
ponownie zeruje linię MRQ, tym ra- MRQ (zostaje ona ustawiona), co po- dem I2C, a rozwiązaniem zastosowanym
zem jednak z zupełnie innego powodu. winno skutkować zwolnieniem linii przez inżynierów Opla. Skoro transmi-
Po pierwsze, sygnalizuje w ten sposób danych SDA przez slave po czasie T5 towany bajt adresu ma ustawiony naj-
zamiar transmisji danych, a po drugie, (100…200  ms). Na tym etapie rozpo- mniej znaczący bit będący jednocześnie
sprawdza obecność slave na magistrali czyna się właściwa transmisja danych bitem R/W (odczyt/zapis) w standardzie
danych oraz jego gotowość na odbie- zgodna ze specyfikacją standardu I2C, I2C powinno to oznaczać, że master (ra-
ranie pakietu danych, gdyż działanie z jednym, drobnym, acz istotnym wy- dioodbiornik) zgłasza chęć odczytania
takie podejmowane jest każdorazowo jątkiem, o którym mowa będzie w dal- danych ze slave (wyświetlacza TID)
na początku każdej transmisji z radio- szej części artykułu. i kolejne dane, które zostaną przesłane
odbiornika do wyświetlacza TID. Po wy- Wygląd kompletnej ramki danych po- będą danymi przesyłanymi ze slave
muszeniu poziomu niskiego na linii kazano na rysunku 4. Transmisja rozpo- do master, a jest zgoła inaczej, ponieważ
MRQ, slave musi w czasie T4 (100 ms…15 czyna się od wygenerowania sekwencji master kontynuuje w tym miejscu trans-
ms) zewrzeć linię SDA do masy sygnali- Start przez master’a, po czym jako pierw- misję danych do slave, tak jakby najstar-
zując w ten sposób swoją obecność, jak szy bajt transmitowany jest adres szy bit przesłanego wcześniej adresu był
i gotowość do odbierania danych. Jeśli slave o wartości 0x4D (0x9B w notacji wyzerowany. Z czego wynika ta drobna,
acz znacząca różnica? Odpowiedź jest
prosta. Z chęci maksymalnego zabezpie-
czenia się przed możliwością wystąpie-
nia zaburzeń transmisji i będących tego
następstwem, niepoprawnych danych,
o co, jak łatwo się domyślić, nietrudno
w tak niesprzyjającym środowisku, jak
instalacja samochodowa. Otóż, zgodnie
z pomysłem inżynierów Opla, każdy bajt
danych składa się z 7 bitów właściwych
danych oraz bitu kontroli parzystości
Rysunek 2. Przebiegi sygnałów sterujących magistrali danych w trakcie sekwencji Power umieszczonego na pozycji najmniej zna-
On Test
czącej. I niestety, dotyczy to wszystkich
bajtów danych, w tym adresu urządze-
nia, co powoduje, że dla adresu 0x4D
(w notacji 7-bitowej) otrzymujemy bit
kontroli parzystości o wartości „1”,
czyli ustawiony bit R/W. Różnica jest
drobna, lecz niesie za sobą poważne
konsekwencje implementacyjne. Otóż,
w przypadku takiej konstrukcji ramki
danych, do obsługi transmisji danych
nie możemy użyć wygodnego, sprzęto-
wego interfejsu TWI (odpowiednik I2C)
Rysunek 3. Przebiegi sygnałów sterujących magistrali danych po wykonaniu sekwencji
Power On Test REKLAMA

Rysunek 4. Kompletna ramka danych


PROJEKTY

mikrokontrolera ATmega644PA, którego


zastosowanie znacznie uprościłoby me-
chanizmy emulujące wyświetlacz TID.
Zwyczajnie, i co oczywiste, sprzęg TWI
nie przewiduje sytuacji, w której to ma-
ster wysyła żądanie odczytu do slave
(wysyła jego adres z ustawionym bitem
R/W), po czym najzwyczajniej w świe-
cie kontynuuje transmisję danych w kie-
runku do slave. Takiego scenariusza
transmisji w module TWI (i stosownych Rysunek 5. Wygląd ramki danych wyświetlacza TID w wypadku nieobsługiwanego adre-
su I2C
statusów jego stanu w rejestrze TWSR
mikrokontrolera) po prostu nie przewi-
dziano, gdyż jest on zgodny ze standar- Tabela 3. Znaczenie poszczególnych bitów trzech pierwszych bajtów danych wyświetla-
cza TID
dem I2C. Czy to stanowi jakiś problem?
Bajt 1 Bajt 2 Bajt 3
W zasadzie nie, lecz z pewnością skom-
(status radia) (status magnetofonu) (status CD)
plikuje mechanizm obsługi interfejsu
Bit 7 przecinek „CD-In” 0
Opla, gdyż do obsługi transmisji I2C bę-
Bit 6 „RDS” „Dolby C” Symbol „Track”
dziemy musieli zaprzęgnąć inne zasoby
Bit 5 „TP” „Dolby B” „RDM”
sprzętowe mikrokontrolera, w tym przy-
Bit 4 Symbol „Stereo” „Cr” „PGM”
padku przerwania zewnętrzne oraz za-
Bit 3 0 „CPS” „DISC”
implementować niezbędne procedury
Bit 2 „AS” 0 0
programowe, co na pewno przyczyni się
Nawias kwadratowy dla
do większego obciążenia rdzenia. Bit 1 0 0
„TP”
W tym miejscu należy wspomnieć
Bit 0 Bit parzystości Bit parzystości Bit parzystości
o jeszcze jednej funkcji linii MRQ, którą
można zaobserwować analizując prze-
biegi kompletnej ramki danych z rys. 4. obsługiwanych jest kilka znaków spe- Tabela 4. Kody ASCII znaków specjalnych
wyświetlanych przez oryginalny, 10-zna-
Otóż, linia danych MRQ jest wyzero- cjalnych o kodach poniżej wartości 32
kowy wyświetlacz TID
wana w trakcie przesyłania przez radio- (spacji). W tabeli 3 opisano znaczenie po-
Kod
odbiornik wszystkich bajtów danych szczególnych bitów trzech pierwszych Znak
ASCII
za wyjątkiem bajta adresu, co w prosty bajtów danych odpowiedzialnych za 1 Pomniejszona cyfra 1
sposób odróżnia ten bajt od pozostałych wyświetlanie specjalnych piktogramów 2 Pomniejszona cyfra 2
bajtów danych. Takie rozwiązanie sta- na ekranie wyświetlacza TID. W tabeli 4
3 Pomniejszona cyfra 3
nowi zapewne kolejny element poprawy umieszczono kody ASCII i opis znaków
4 Pomniejszona cyfra 4
integralności przesyłanej ramki danych specjalnych wyświetlanych przez ory-
5 Pomniejszona cyfra 5
przyczyniający się do zwiększenia mar- ginalny wyświetlacz TID a obsługiwane
6 Pomniejszona cyfra 6
ginesu bezpieczeństwa, bo identyfika- przez sterownik multiTID. Wcześniejszy
8 Pomniejszona, wielka litera A
cja bajta adresu mogłaby być wykonana opis dotyczy wyświetlaczy o organizacji
9 Pomniejszona, wielka litera F
przecież w prostszy sposób, choćby przez 10-znakowej. Dla starszych wyświetla-
10 Pomniejszona, wielka litera U
fakt, że jest to zawsze pierwszy, przesy- czy, o organizacji 8-znakowej, jest prze-
11 Pomniejszona, wielka litera M
łany bajt danych. Niemniej jednak, roz- syłanych wyłącznie 10 bajtów danych,
12 Pomniejszona, wielka litera L
wiązanie Opla z pewnością należy uznać z czego 2 pierwsze bajty odpowiadają
13 Pomniejszona, wielka litera P
za bardzo przemyślane. Transmisję wła- za wyświetlanie piktogramów pokazy-
ściwych danych, jak to zwykle ma miej- wanych na ekranie wyświetlacza TID 14 Symbol “nutki”

sce w standardzie I2C, kończy sygnał stop (tylko status radia i magnetofonu), zaś
wygenerowany przez master. kolejne 8 bajtów to kody znaków ASCII linii SDA) w dziewiątym takcie zegara
Jak do tej pory nie powiedziałem nic przeznaczonych do wyświetlenia w polu magistrali (SCL) i to niezależnie czy
na temat samych danych, które to ra- tekstowym wyświetlacza (tylko wielkie przesyłane dane dotyczą naszego urzą-
dioodbiornik wysyła do wyświetlacza litery i cyfry, bez znaków specjalnych). dzenia (przesłano wcześniej zgodny
pokładowego TID. Dane te to 13 bajtów, Inny jest też adres samego wyświetla- adres I2C), czy też nie, co również wy-
z których pierwsze trzy bajty odpowia- cza, który przyjmuje wtedy wartość myka się standardom wyznaczonym
dają za wyświetlanie piktogramów po- 0x4A. Już tylko dla porządku dodam, przez specyfikację interfejsu I2C. Sytu-
kazywanych na ekranie wyświetlacza że każdy bajt danych przesłany przez ację taką przedstawiono na rysunku 5,
TID, zaś kolejne 10 bajtów to kody zna- master do slave jest potwierdzany przez który to prezentuje przebiegi na magi-
ków ASCII przeznaczonych do wyświe- układ podrzędny (TID) poprzez wyge- strali danych zarejestrowane podczas
tlenia w polu tekstowym, przy czym nerowanie sygnału ACK (wyzerowanie współpracy radioodbiornika CAR300

24 ELEKTRONIKA PRAKTYCZNA 12/2016


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

Listing 1. Treść pliku nagłówkowego emulatora wyświetlacza TID


//Zmienne globalne modułu TIDemulator
extern volatile uint8_t TIDdataReady; //Flaga gotowości danych
extern volatile uint8_t TIDdata[14]; //Dane (element 0 to adres I2C)

//Prototypy funkcji
void initTIDemulator(uint8_t TID_type);
//Definicje portów TID’a
#define I2C_SDA_DDR DDRC
#define I2C_SDA_PIN PINC
#define I2C_SDA_NR PC1 //ISR: PCINT17
#define I2C_SCL_PIN PINB
#define I2C_SCL_NR PB2 //ISR: INT2
#define MRQ_PIN PIND
#define MRQ_NR PD3 //ISR: INT1
#define AA_PIN PIND
#define AA_NR PD2 //ISR: INT0
//Adres wyświetlacza TID
#define TID_TYPE_8DIGITS 0x4A
#define TID_TYPE_10DIGITS 0x4D
#define TID_TIMESTAMP 0x47
//Stany pracy interfejsu TID
#define RADIO_IS_OFF 0x00
#define WAITING_FOR_FIRST_MRQ 0x01
#define FIRST_MRQ_STARTED 0x02
#define WAITING_FOR_SECOND_MRQ 0x03
#define SECOND_MRQ_STARTED 0x04
#define WAITING_FOR_MRQ_BEFORE_TRANSMISSION 0x05
#define START_DETECTED 0x06
//Definicje czasów dla Preskalera Timera1 = 256 i fosc = 12.288MHz [w taktach timera]
#define TIME_TOLERANCE 14 //300us
#define T2_MIN (24 - TIME_TOLERANCE) //500us - TIME_TOLERANCE
#define T2_MAX (48 + TIME_TOLERANCE) //1000us + TIME_TOLERANCE
//Średnie wartości pozostałych czasów [us]
#define T4_MID 120 //120us
#define T5_MID 120 //120us
//Makra dla portów
#define SDA_SET I2C_SDA_DDR &= ~(1<<I2C_SDA_NR) //Ustawiamy, jako wejście podciągnięte przez zewnętrzny rezystor
#define SDA_RESET I2C_SDA_DDR |= (1<<I2C_SDA_NR) //Ustawiamy, jako wyjście z domyślnym stanem „0”
#define SDA_READ ((I2C_SDA_PIN & (1<<I2C_SDA_NR))>>I2C_SDA_NR) //Wartość: 0x00 lub 0x01
#define SDA_IS_RESET (!(I2C_SDA_PIN & (1<<I2C_SDA_NR)))
#define SDA_IS_SET (I2C_SDA_PIN & (1<<I2C_SDA_NR))
#define SCL_IS_RESET (!(I2C_SCL_PIN & (1<<I2C_SCL_NR)))
#define SCL_IS_SET (I2C_SCL_PIN & (1<<I2C_SCL_NR))
#define MRQ_IS_RESET (!(MRQ_PIN & (1<<MRQ_NR)))
#define MRQ_IS_SET (MRQ_PIN & (1<<MRQ_NR))
#define AA_IS_SET (AA_PIN & (1<<AA_NR))
//Makra dla przerwań
#define SDA_INTR_INIT_ON_BOTH_EDGES PCMSK2 = (1<<PCINT17) //Zmiana stanu na PCINT17 (sygnał SDA) generuje przerwanie
#define SDA_INTR_ENABLE PCICR |= (1<<PCIE2) //Zezwolenie na przerwanie PCINT2 (PCINT23..16)
#define SDA_INTR_DISABLE PCICR &= ~(1<<PCIE2) //Zablokowanie przerwania PCINT2 (PCINT23..16)
#define SDA_INTR_CLEAR_FLAG PCIFR |= (1<<PCIF2) //Skasowanie flagi przerwania PCINT2 (PCINT23..16)
#define SDA_INTR_NAME PCINT2_vect //Nazwa wektora przerwania PCINT2 (SDA)
#define SCL_INTR_INIT_ON_RISING_EDGE EICRA |= (1<<ISC21)|(1<<ISC20) //Rosnące zbocze sygnału na INT2 (sygnał SCL) generuje przerwanie
#define SCL_INTR_ENABLE EIMSK |= (1<<INT2) //Zezwolenie na przerwanie INT2
#define SCL_INTR_DISABLE EIMSK &= ~(1<<INT2) //Zablokowanie przerwania INT2
#define SCL_INTR_CLEAR_FLAG EIFR |= (1<<INTF2) //Skasowanie flagi przerwania INT2
#define SCL_INTR_NAME INT2_vect //Nazwa wektora przerwania INT2 (SCL)
#define MRQ_INTR_INIT_ON_BOTH_EDGES EICRA |= (1<<ISC10) //Dowolne zbocze sygnału na INT1 (sygnał MRQ) generuje przerwanie
#define MRQ_INTR_ENABLE EIMSK |= (1<<INT1) //Zezwolenie na przerwanie INT1
#define MRQ_INTR_DISABLE EIMSK &= ~(1<<INT1) //Zablokowanie przerwania INT1
#define MRQ_INTR_CLEAR_FLAG EIFR |= (1<<INTF1) //Skasowanie flagi przerwania INT1
#define MRQ_INTR_NAME INT1_vect //Nazwa wektora przerwania INT1 (MRQ)
#define AA_INTR_INIT_ON_BOTH_EDGES EICRA |= (1<<ISC00) //Dowolne zbocze sygnału na INT0 (sygnał AA) generuje przerwanie
#define AA_INTR_ENABLE EIMSK |= (1<<INT0) //Zezwolenie na przerwanie INT0
#define AA_INTR_DISABLE EIMSK &= ~(1<<INT0) //Zablokowanie przerwania INT0
#define AA_INTR_CLEAR_FLAG EIFR |= (1<<INTF0) //Skasowanie flagi przerwania INT0
#define AA_INTR_NAME INT0_vect //Nazwa wektora przerwania INT0 (AA)

z nowym, 10-znakowym wyświetlaczem iż radioodbiornik wysyła pakiety da- które trudno byłoby ją „obsłużyć” ko-
pokładowym TID. nych dla starego i nowego typu wy- rzystając ze sprzętowego sprzęgu TWI.
Uważny Czytelnik zastanowi się świetlaczy, co oczywiste, stosownie je Na koniec prawdziwa „wisienka na tor-
z pewnością, w jakim celu pokładowy modyfikując. W związku z tym, każdy cie”. Jak wiadomo, oryginalny wyświe-
wyświetlacz TID miałby potwierdzać przesyłany komunikat transmitowany tlacz TID wyposażono w zegar czasu
każdy bajt danych, które nie są do niego jest w dwóch „wersjach”, dla starego rzeczywistego, którego wskazania są wy-
adresowane, to znaczy nie zostały „okra- i nowego typu wyświetlacza, stąd różne świetlane w pierwszej linii ekranu (obok
szone” stosownym adresem układu pod- adresy i różna liczba towarzyszących im
rzędnego (w naszym przypadku 0x4D). danych na jednej i tej samej magistrali. REKLAMA

To kolejny przykład przemyślanej kon- Nie tłumaczy to oczywiście faktu po-


strukcji Opla. Otóż wiele fabrycznych twierdzania (sygnałem ACK) przez wy-
radioodbiorników może pracować tak świetlacz TID nie swojego adresu I2C, jak
w starszych, jak i nowszych mode- i danych nie dla niego przeznaczonych,
lach pojazdów tego producenta, które lecz myślę, że wynika to z potrzeby cią-
to mogą być wyposażone w różne ro- głego „informowania” (przy użyciu sy-
dzaje wyświetlaczy TID. Aby umożliwić gnału ACK) radioodbiornika o nasłuchu
współpracę radioodbiornika z nowymi magistrali I2C przez układ podrzędny.
i starszymi typami wyświetlaczy, które Jak widać, zastosowana przez Opla
to przecież charakteryzują się inną or- magistrala, na pozór bardzo podobna
ganizacją ekranu i odrębnym adresem do rozwiązania Philips’a (I2C), ma wiele
w przestrzeni I2C, wprowadzono zasadę, drobnych, acz znaczących różnic, przez
PROJEKTY

temperatury zewnętrznej). W związku czasu wyświetlacza TID zarejestrowa- zależności czasowych i zaangażowania
z tym producent modułu wyświetlacza nej 17/08/2016 o godzinie 17:49 przedsta- wielu peryferiów mikrokontrolera, ob-
przewidział możliwość synchroniza- wiono na rysunku 6. Jak poprzednio, bit sługa emulacji wyświetlacza TID (czyli
cji wskazań tego zegara sygnałem czasu najmniej znaczący jest bitem kontroli pa- obsługa radioodbiornika) została zrealizo-
nadawanym przez stacje radiowe, a za- rzystości, w związku z czym cały bajt na- wana z wykorzystaniem 4 zewnętrznych
wartym w treści wybranych komunika- leży przesunąć w prawo o jedno miejsce). przerwań systemowych. Taka mnogość
tów RDS. W jaki sposób wyświetlacz TID To tyle, jeśli chodzi o opis modułu wy- wykorzystywanych przerwań wynika
synchronizuje swój zegar RTC sygnałem świetlacza pokładowego. Przejdźmy za- z faktu obsługi aż 4 sygnałów sterują-
czasu radioodbiornika? Wprowadzono tem do szczegółów implementacyjnych. cych (AA, MRQ, SCL, SDA) przy braku
dodatkowy adres I2C wyświetlacza TID, Jako, że nasze urządzenie multiTID re- możliwości realizacji sprzętowej obsługi
dla którego przesyłane dane są interpreto- alizuje szereg dość skomplikowanych magistrali I2C. W tabeli 5 pokazano zesta-
wane przez ten moduł jako dane bieżącego funkcjonalności, które wymagają ścisłych wienie wykorzystywanych, zewnętrznych
czasu sygnału RDS. Adres ten to 0x47
Listing 2. Funkcja ISR odpowiedzialna za obsługę sygnału AA interfejsu danych wyświetlacza
(0x8F przy ustawionym bicie R/W), nato- TID
//Przerwanie odpowiedzialne za obsługę sygnału AA - wyzwalane po każdym zboczu sygnału
miast odpowiednia ramka danych składa na AA
ISR(AA_INTR_NAME)
się z 7 bajtów o następującej organizacji: {
X-M-G-D-X-X-X, gdzie: M to minuty, G if(AA_IS_SET) //Włączenie radioodbiornika
{
to godziny, D to dzień miesiąca. Bajty X Status = WAITING_FOR_FIRST_MRQ;
MRQ_INTR_INIT_ON_BOTH_EDGES; //Konfiguracja i włączenie przerwania dla MRQ
nie zostały przeze mnie jednoznacznie zi- MRQ_INTR_CLEAR_FLAG;
MRQ_INTR_ENABLE;
dentyfikowane, choć z całą pewnością ich }
else //Wyłączenie radioodbiornika
obecność nie jest przypadkowa. Jeśli bajty {
Status = RADIO_IS_OFF; //Startowy stan algorytmu
te przechowują bieżący miesiąc i rok, jak SDA_SET; //Zwolnienie SDA, gdyby było ściągane przez Slave’a
MRQ_INTR_DISABLE;
się zapewne domyślacie, czas oczekiwa- SDA_INTR_DISABLE;
SCL_INTR_DISABLE;
nia na potwierdzenie tej tezy byłby dość }
}
długi. Wygląd ramki danych znacznika

Listing 3. Funkcja ISR odpowiedzialna za obsługę sygnału MRQ interfejsu danych wyświetlacza TID
//Przerwanie odpowiedzialne za obsługę sygnału MRQ - wyzwalane po każdym zboczu sygnału na MRQ
ISR(MRQ_INTR_NAME)
{
register uint16_t pulseLength;
static uint16_t lastTimer1;
switch(Status)
{
case WAITING_FOR_FIRST_MRQ:
if(SDA_IS_RESET && SCL_IS_RESET && MRQ_IS_RESET) Status = FIRST_MRQ_STARTED; lastTimer1 = TCNT1;
else Status = WAITING_FOR_FIRST_MRQ;
break;
case FIRST_MRQ_STARTED:
pulseLength = TCNT1 - lastTimer1;
if(SDA_IS_SET && SCL_IS_SET && MRQ_IS_SET && pulseLength>T2_MIN && pulseLength<T2_MAX) Status = WAITING_FOR_SECOND_MRQ;
else Status = WAITING_FOR_FIRST_MRQ;
break;
case WAITING_FOR_SECOND_MRQ:
if(SDA_IS_SET && SCL_IS_SET && MRQ_IS_RESET) Status = SECOND_MRQ_STARTED; lastTimer1 = TCNT1;
else Status = WAITING_FOR_FIRST_MRQ;
break;
case SECOND_MRQ_STARTED:
pulseLength = TCNT1 - lastTimer1;
if(SDA_IS_SET && SCL_IS_SET && MRQ_IS_SET && pulseLength>T2_MIN && pulseLength<T2_MAX) Status = WAITING_FOR_MRQ_BEFORE_TRANS-
MISSION;
else Status = WAITING_FOR_FIRST_MRQ;
break;
case WAITING_FOR_MRQ_BEFORE_TRANSMISSION:
if(SDA_IS_SET && SCL_IS_SET && MRQ_IS_RESET)
{
//Sekwencja Slave’a: ściągnięcie SDA do „0” po czasie T4
_delay_us(T4_MID); SDA_RESET;
//Czekamy, aż Master zwolni MRQ (MRQ = 1)
while(MRQ_IS_RESET);
//Sekwencja Slave’a: zwolnienie SDA po czasie T5
_delay_us(T5_MID); SDA_SET;
//Czekamy na sekwencję START
while(SDA_IS_SET);
//Czekamy, aż Master ściągnie SCL do „0”,
//czyli przygotuje się do wysłania bitu
while(SCL_IS_SET);
Status = START_DETECTED;
//Konfiguracja i włączenie przerwania SCL dla
//odbioru danych (poszczególnych bitów)
SCL_INTR_INIT_ON_RISING_EDGE;
SCL_INTR_CLEAR_FLAG;
SCL_INTR_ENABLE;
//Konfiguracja i włączenie przerwania SDA dla
//wykrycia późniejszej sekwencji STOP
SDA_INTR_INIT_ON_RISING_EDGE;
SDA_INTR_CLEAR_FLAG;
SDA_INTR_ENABLE;
//Wyczyszczenie flagi MRQ
MRQ_INTR_CLEAR_FLAG;
}
else Status = WAITING_FOR_FIRST_MRQ;
break;
}
}

26 ELEKTRONIKA PRAKTYCZNA 12/2016


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

Tabela 5. Lista zewnętrznych przerwań systemowych wraz z opisem ich konfiguracji przerwań systemowych, ich konfigurację
i funkcjonalności niezbędnych dla obsługi magistrali radioodbiornika Opla
oraz realizowaną funkcjonalność.
Nazwa
Sposób konfiguracji Funkcjonalność W tym momencie posiadamy już nie-
przerwania
zbędną wiedzę w zakresie sposobu
Wykorzystywane do obsługi sygnału AA
Wyzwalane przy każdym zboczu komunikacji radioodbiornika z orygi-
INT0 w zakresie detekcji włączenia/wyłącze-
sygnału na wejściu AA
nia radioodbiornika nalnym wyświetlaczem pokładowym
Wykorzystywane do obsługi sygnału MRQ TID, w związku z czym pora na szcze-
Wyzwalane przy każdym zboczu
INT1 w zakresie kontroli procesu odbioru góły implementacyjne mechanizmów
sygnału na wejściu MRQ
ramki danych
pozwalających na emulację tego rodzaju
Wyzwalane przy narastającym Wykorzystywane do obsługi sygnału SCL
INT2 wyświetlacza w zakresie interfejsu na-
zboczu sygnału na wejściu SCL w zakresie odczytu bitów danych
szego komputera pokładowego. Zanim
Wyzwalane zmianą stanu Wykorzystywane do obsługi sygnału SDA
PCINT2 jednak przedstawię ciała funkcji ze-
na wejściu SDA w zakresie wykrywania sekwencji Stop
wnętrznych przerwań systemowych
realizujących obsługę poszczególnych
sygnałów magistrali danych muszę
przedstawić plik nagłówkowy, który uła-
twia napisanie wspomnianych funkcji
a zarazem czyni je bardziej czytelnymi.
Treść pliku nagłówkowego, o którym
mowa pokazano na listingu 1. Napi-
sano go w sposób dość „uniwersalny”,
aby łatwo można było zmieniać wiele
Rysunek 6. Wygląd ramki danych znacznika czasu wyświetlacza TID z predefiniowanych nazw i stałych, bez
potrzeby edycji funkcji, które to korzy-
Listing 4. Funkcja ISR odpowiedzialna za obsługę sygnału SDA interfejsu danych wyświetlac-
za TID stają z jego zawartości. Pora na przed-
//Przerwanie odpowiedzialne za obsługę sygnału SDA - wyzwalane po każdej zmianie stanu
na SDA
stawienie funkcji obsługi zewnętrznych
ISR(SDA_INTR_NAME) przerwań systemowych, które łącznie,
{
if(SCL_IS_SET) odpowiedzialne są za obsługę interfejsu
{
if(SDA_IS_SET) //Odebrano sekwencję STOP danych firmy Opel. Te funkcje poka-
{
//Wyłączamy przerwania SDA i oczekujemy na nową sekwencję MRQ zano na listingach od 2 do 5. Do kom-
//(przed pakietem danych) pletu brakuje funkcji inicjalizacyjnej,
Status = WAITING_FOR_MRQ_BEFORE_TRANSMISSION;
SDA_INTR_DISABLE; która ustawia parametry emulowanego
//Zerujemy zmienną, bo sygnał STOP mógłby wystąpić przed końcem ramki
byteIndex = 0; wyświetlacza TID oraz aktywuje nie-
}
} zbędne, startowe funkcje ISR – poka-
}
zano ją na listingu 6.
Przejdźmy zatem do krótkiej analizy
Listing 5. Funkcja ISR odpowiedzialna za obsługę sygnału SCL interfejsu danych wyświetlac-
za TID przedstawionych mechanizmów progra-
//Przerwanie odpowiedzialne za obsługę sygnału SCL - wyzwalane przy rosnącym zboczu sygnału
na SCL mowych. Można zauważyć, że funkcja
ISR(SCL_INTR_NAME)
{
obsługująca sygnał MRQ sprawdza zależ-
register uint8_t Bytes = (TIDtype == TID_TYPE_8DIGITS)? 11:14; ności czasowe podczas sekwencji Power
static uint8_t bitIndex, readValue, TID[14];
readValue = (readValue<<1)|SDA_READ; On Test i dopiero po ich pozytywnej we-
if(++bitIndex == 8) //Odczytano 8 bitów bieżącego bajta danych
{ ryfikacji pozwala na dalszą analizę sy-
TIDisr[byteIndex++] = readValue; //Element nr 0 zawiera adres I2C TID’a
bitIndex = readValue = 0; gnałów sterujących wykonywaną przez
//Generujemy ACK po każdych, odebranych 8 bitach danych
while(SCL_IS_SET); //Czekamy, aż Master ustawi SCL = 0 funkcje ISR, odpowiednio dla SDA i SCL.
SDA_RESET; //sygnał ACK generowany przez Slave’a
while(SCL_IS_RESET); //Czekamy, aż Master ustawi SCL, tj. odbierze ACK Oczywiście, sam start procesu obsługi
while(SCL_IS_SET); //Czekamy, aż Master wyzeruje SCL, czyli przejdzie do następ-
nego bitu magistrali wyświetlacza TID jest moż-
SDA_SET; //Zwolnienie SDA przez Slave’a
SCL_INTR_CLEAR_FLAG; liwy wyłącznie po załączeniu radiood-
SDA_INTR_CLEAR_FLAG;
//Sprawdzamy, czy mamy komplet bajtów by oczekiwać na sekwencję
biornika, czemu towarzyszy wywołanie
//STOP (niezależnie od rodzaju TID’a) przerwania dla sygnału AA.
if((TID[0]>>1 == TID_TYPE_8DIGITS && byteIndex == 11)
||(TID[0]>>1 == TID_TYPE_10DIGITS && byteIndex == 14) Robert Wołgajew, EP
||(TID[0]>>1 == TID_TIMESTAMP && byteIndex == 8))
{
if((TID[0]>>1) == TIDtype) //Sprawdzamy, czy to obsługiwany TID Listing 6. Funkcja inicjalizacji modułu
{ emulatora wyświetlacza TID
for(uint8_t i=0; i<Bytes; ++i) TIDdata[i] = TID[i];
inline void initTIDemulator(uint8_t TID_
TIDdataReady = 1;
} type)
byteIndex = 0; {
//Wyłączamy przerwanie SCL i oczekujemy na sekwencję STOP AA_INTR_INIT_ON_BOTH_EDGES;
SCL_INTR_DISABLE; AA_INTR_CLEAR_FLAG;
} AA_INTR_ENABLE;
} TIDtype = TID_type;
} }

ELEKTRONIKA PRAKTYCZNA 12/2016 27


PROJEKTY

multiTID
– wielofunkcyjny, samochodowy komputer
pokładowy (2)
Po lekturze pierwszej części artykułu wiemy już wszystko w zakresie obsługi jest wywoływane zmianą poziomu na wypro-
wyświetlacza pokładowego oraz emulowania jego funkcjonalności, więc wadzeniu PB6 na skutek załączenia zaworu
pora na zaprezentowanie szczegółów budowy komputera samochodowe- na reduktorze instalacji LPG (czyli zmiany pa-
go multiTID. liwa zasilającego silnik na LPG, w tym „start”
wtryskiwaczy gazu). To rozwiązanie pozwala
Schemat ideowy komputera samochodo- czasowo-licznikowego Timer2. Skonfiguro- na efektywną realizację funkcji automatycz-
wego multiTID pokazano na rysunku  7. wano go do pracy w trybie CTC, w którym nej detekcji rodzaju paliwa i reakcję po stro-
Został on zbudowany z zastosowaniem generuje cykliczne przerwania (co 10 ms) nie programu obsługi.
mikrokontrolera Atmega644-PA, zegara wywołując obsługę klawiatury (przyciski Na listingu 8 pokazano wzory zaczerp-
czasu rzeczywistego z podtrzymaniem MENU/<, OK/>). Dzięki zastosowaniu tego nięte bezpośrednio z programu obsługi
zasilania MCP7940N-I/SN oraz wyświe- typu rozwiązania, program obsługi aplikacji aplikacji służące do obliczenia wszyst-
tlacza TFT pełniącego rolę graficznego in- urządzenia nie używa opóźnień, co zapew- kich parametrów rzeczywistych kompu-
terfejsu użytkownika. nia jego bezproblemową pracę oraz możli- tera pokładowego.
Mikrokontroler,  jak  to  zwykle bywa, wość detekcji czasu naciśnięcia przycisku Kilka słów komentarza wymaga mecha-
stanowi „serce”. Jest taktowany za pomocą (krótki/długi/przytrzymanie itd.), dzięki nizm akumulowania przejechanej drogi i zu-
rezonatora kwarcowego 12,288 MHz dla za- czemu udało się poprawić ergonomię. żytego paliwa. Komputer multiTID oblicza
pewnienia dużej dokładności pomiaru czasu Jak opisano w tab. 6, multiTID dokonuje i wyświetla średnie wartości zużycia pa-
oraz prędkości ładowania obrazków stano- w czasie każdej sekundy pomiaru sumarycz- liwa i prędkości, objętość paliwa pozostają-
wiących elementy graficznego interfejsu nej liczby impulsów doprowadzanych na wej- cego w baku pojazdu oraz pokonany dystans.
użytkownika. Oczywiście, lepiej byłoby za- ście T0 mikrokontrolera z przetwornika drogi Jak łatwo się domyślić, w celu wyznacze-
stosować maksymalną, dostępną częstotli- pojazdu oraz pomiaru sumarycznego czasu nia wspomnianych wartości jest niezbędna
wość taktowania mikrokontrolera tj. 20 MHz, wtrysków, których to sygnał jest doprowa- znajomość całkowitego zużycia paliwa i dy-
jednak przy napięciu zasilania 3,3  V jest dzony na wejście ICP1 licznika Timer1. W celu stansu od momentu wyzerowania liczników,
to wartość progowa, dla której deklarowana realizacji drugiej z funkcjonalności zaprojek- a co za tym idzie – niezbędny staje się me-
jest poprawna praca mikrokontrolera. towano dwa kompletne, bezpieczne układy chanizm akumulowania mierzonych warto-
W celu realizacji założonej funkcjonal- wejściowe formujące sygnały wtryskiwaczy ści, niezależnie dla każdego rodzaju paliwa.
ności urządzenia, w programie obsługi ni- paliwa (oddzielnie dla Pb i LPG) dla potrzeb
niejszego sterownika, wykorzystano dwa wejściowych obwodów mikrokontrolera. Wy- Ustawienia Fuse-bitów:
sprzętowe układy czasowo-licznikowe bór wtryskiwacza paliwa, z którego impulsy CKSEL3...0: 1111
znajdujące się „na pokładzie” mikrokon- podawane są na wejście ICP mikrokontrolera, SUT1...0: 11
trolera oraz jedno przerwanie zewnętrzne. jest realizowany poprzez scalony przełącznik CKDIV8: 1
Sposób konfiguracji wspomnianych pery- NC7SB3157 (U5), dla którego sygnałem steru- CKOUT: 1
feriów oraz realizowaną przez nie funkcjo- jącym jest poziom logiczny na wyjściu PD7 JTAGEN: 1
nalność pokazano w tabeli 6. W aplikacji mikrokontrolera. Jest on zmieniany w pro- EESAVE: 1
BODLEVEL2:0: 110
użyto także ostatniego dostępnego układu cedurze obsługi przerwania PCINT1, które

20 ELEKTRONIKA PRAKTYCZNA 1/2017


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

Wykaz elementów: Mikrokontroler Atmega644-PA ma nie- źródło napięcia odniesienia VBG (bandgap),
Rezystory: (SMD 0805) ulotną pamięć EEPROM, jednak zapewnia a napięcie z dzielnika NTC/R2 jest napięciem
R1, R3: 10 kV ona ograniczoną liczbę gwarantowanych cy- referencyjnym przetwornika A/C. W ten spo-
R2: 6,34 kV/1% klów zapisu. Dlatego posłużono się pamię- sób odwrócimy „normalny” sposób pomiaru
R4, R5, R7, R9, R11, R12, R14…R16, R18: 3 kV cią RAM dostępną w układzie zegara czasu napięcia przez przetwornik A/C. Nie mając
R6, R10, R13, R19: 1 kV
rzeczywistego MCP7940N, której zawartość de facto do dyspozycji żadnego z wejścio-
R8, R17: 8,2 kV
jest podtrzymywana nawet po wyłączeniu wych portów mikrokontrolera, do których
R20, R21: 10 V
zapłonu za pomocą baterii BAT. Dla wygody dołączono wejścia przetwornika A/C, mo-
Kondensatory: (SMD 0805)
wszystkie dane obliczeniowe uformowano żemy dokonywać pomiaru napięcia korzy-
C1, C2, C8, C9: 22 pF
w strukturę zaopatrzoną w sumę kontrolną stając głównie z faktu, iż przetwornik może
C4: 470 nF
C3, C5, C10, C13, C14: 100 nF CRC8. mierzyć napięcie VBG.
C6, C7, C11: 10 mF/16 V (SMD „A”) Kolejne słowo komentarza należy się ukła- Napięcie wyjściowe dzielnika NTC/
C12: 1 mF dowi odpowiedzialnemu za pomiar tempe- R2 będące zarazem napięciem referencyj-
Półprzewodniki: ratury zewnętrznej. Samochody marki Opel nym (odniesienia) przetwornika A/C wy-
U1, U3 – MCP1703-3302E/DB (obudowa mają rezystancyjny czujnik temperatury ze- raża się wzorem U_WY=U_REF=R_NTC/
SOT223) wnętrznej montowany w okolicach przed- (R_NTC+R_2)×3,3 V. Z kolei, wartość zmie-
U2 – MCP7940N-I/SN (obudowa SO08) niego zderzaka. Jest to termistor o ujemnym rzona przez przetwornik A/C wyraża się
U4 – ATMEGA644PA (obudowa TQFP44) współczynniku temperaturowym (NTC), wzorem ADC=(U_IN×1024)/U_REF, gdzie
U5 – NC7SB3157 (obudowa SC-70-6) którego zaciski dostępne są w złączu wy- U_IN=VBG=1,1 V. Za pomocą obu wzorów
U6, U7 – LTV817S-SMD (obudowa SO04) świetlacza TID. Skoro tak, to sposób pomiaru otrzymujemy wyrażenie pozwalające wy-
T1, T2 – BC817 (obudowa SOT23) temperatury nasuwa się sam. Dysponując znaczyć wartość mierzoną przez przetwor-
D1, D2 – 1N4148 (obudowa MINIMELF) przetwornikiem A/C wystarczy zastosować nik A/C – ADC=(1,1×1024×(R_NTC+R_2))/
Inne:
dzielnik rezystancyjny, którego jednym z ele- (3,3×R_NTC). Tego sposobu możemy użyć
TFT – wyświetlacz graficzny Multi-Inno
mentów jest termistor w pojeździe, a drugim prawie zawsze, gdy brakuje wejść, aby sko-
Technology MI0420CT-5 (kontroler FT1509,
dokładny rezystor o odpowiedniej rezystan- rzystać z wbudowanego przetwornika A/C.
taśma ZIF 45 pin)
cji. Dzielnik rezystancyjny, o którym mowa By obliczyć wartość temperatury zewnętrz-
L1 – dławik 10µH (obudowa SMD 0805)
zbudowano z termistora dostępnego na za- nej, program obsługi aplikacji korzysta z pre-
Q1 – rezonator kwarcowy 12,288 MHz niski
Q2 – rezonator kwarcowy, zegarkowy ciskach NTC/NTC wyświetlacza TID oraz definiowanej i zapisanej w pamięci Flash
32768 Hz rezystora R2. tablicy stałych odwzorowujących charakte-
MENU/<, OK/> – microswitch THT wyso- Wszystkie wejścia PORTA mikrokontro- rystykę zastosowanego termistora NTC. Już
kość 6 mm lera, do których w wewnętrznej strukturze zupełnie na koniec dodam, iż zdecydowaną
LPG – gniazdo IDC męskie typu P1303 układu są dołączone wejścia przetwornika większość pamięci programu aplikacji zajęły
(PIN3, raster 2,54mm) A/C użyto do sterowania pracą wyświe- wzorce obrazków wyświetlanych w ramach
PB – gniazdo IDC męskie typu P1302 tlacza TFT. Jak w takiej sytuacji zmierzyć graficznego interfejsu użytkownika (niektóre
(PIN2, raster 2,54mm) napięcie występujące na termistorze? Za- z nich, mimo kompresji, zajmują po 5 kB) oraz
TID_CON – gniazdo wyświetlacza Opel TID stosowano tu pewną „sztuczkę”. Napięciem wzorce czcionek.
lub gniazdo IDC do druku (PIN 2×6, raster wejściowym (mierzonym) przetwornika A/C Robert Wołgajew, EP
2,54mm) jest specjalne, wysokostabilne, wewnętrzne

Listing 8. Wzory używane do obliczania wyświetlanych parametrów na ekranie


//
//Obliczamy spalone w czasie ostatniej sekundy paliwo [ul] - jeśli tylko nie jesteśmy w trybie kalibracji
if(Config.Calibration[Fuel] == 0) spentFuelPer1s = ((1UL*Config.Cylinders*injectionTime*Config.CcPerMin[Fuel])/2880UL); else spentFuelPer1s =
0;
//Akumulujemy wartości zużytego paliwa [ul] oraz przejechanego dystansu [m] niezbędne do obliczenia wartości średnich
Accu. spentFuel [Fuel] += spentFuelPer1s;
Accu.Distance[Fuel] += ((1UL*WEGpulses*Config.Wheel) / (100UL*Config.PulsPerRot));
//Obliczamy również ilośc paliwa pozostającego w baku pojazdu [ul] pod warunkiem, że jeszcze jakieś pozostało
if(Accu.remainingFuel[Fuel] >= spentFuelPer1s) Accu.remainingFuel[Fuel] -= spentFuelPer1s;
//Dla potrzeb procedury kalibracji akumulujemy sumaryczny czas wtrysków, jesli tylko ta procedura jest aktywna
if(Config.Calibration[Fuel]) Accu.Injection[Fuel] += injectionTime;
//Obliczamy wartości chwilowe dostępne z pomiarów wykonywanych co 1 sekundę
Speed = ((36UL*WEGpulses*Config.Wheel) / (1000UL*Config.PulsPerRot)); //Prędkosc chwilowa [km/h]
if(Speed > Accu.Vmax) Accu.Vmax = Speed; //Zapamiętujemy wartość maksymalnej prędkości
//Zużycie chwilowe dla wszystkich wtrysków: w [l/h *10] gdy Speed<=5 i w [l/100km *10] gdy Speed>5
if(Speed<=5) Consum = ((5UL*Config.Cylinders*injectionTime*Config.CcPerMin[Fuel]) / 400000UL);
else Consum = ((5UL*Config.Cylinders*injectionTime*Config.CcPerMin[Fuel]*Config.PulsPerRot) / (144UL*WEGpulses*Config.Wheel));
if(Consum > 999) Consum = 999; //Zabezpieczenie przed przekroczeniem zakresu
//Na podstawie akumulat. wartości zużytego paliwa i przejech. dystansu obliczamy wartości średnie prędkości oraz zużycia paliwa
SpeedAvg = ((36UL*Accu.Distance[Fuel])/(10UL*Accu.Measurements[Fuel])); //[km/h]
if(Accu.Distance[Fuel]>999) ConsumAvg = (Accu.spentFuel[Fuel]/Accu.Distance[Fuel]); else ConsumAvg = 0; //l/100km *10
//Obliczamy dostępny zasięg pojazdu na pozostałym w baku paliwie [km] = pozostałe paliwo/średnie zużycie paliwa
if(Accu.spentFuel[Fuel]) availableDistance = (Accu.remainingFuel[Fuel]*Accu.Distance[Fuel])/(1000UL*Accu.spentFuel[Fuel]); else available-
Distance = 0;
if(availableDistance > 999) availableDistance = 999; //Zabezpieczenie przed przekroczeniem zakresu

/*
– InjectionTime – sumaryczny czas wtrysku zliczony w czasie 1s [ms*48]
– WEGpulses – liczba impulsów z przetwornika drogi zliczona w czasie 1 sekundy
– Fuel – bieżący rodzaj paliwa – zmienna ustawiana w procedurze przerwania PCINT1
– spentFuelPer1s – bieżące paliwo spalone w czasie ostatniej sekundy [ul]
– Accu.Measurements – akumulator liczby interwałów pomiarowych [s] – oddzielnie dla każdego paliwa
– Accu.spentFuel – akumulator ilości spalonego paliwa [ul] – oddzielnie dla każdego paliwa
– Accu.remainingFuel – akumulator ilości paliwa pozostającego w baku [ul] – oddzielnie dla każdego paliwa
– Accu.Distance – akumulator przejechanego dystansu [m] – oddzielnie dla każdego paliwa
– Consum – chwilowe zużycie paliwa [l*10/h], dla prędkości≤5 km/h lub [l*10/100km], dla prędkości>5 km/h
– ConsumAvg – średnie zużycie paliwa [l*10/100km]
– Speed – prędkość chwilowa [km/h]
– SpeedAvg – prędkośc średnia [km/h]
– availableDistance – orientacyjny, dostępny dystans na paliwie pozostającym w baku [km] – oddzielnie dla każdego paliwa
– Config.CcPerMin – stała wtryskiwacza [ml/min] – oddzielnie dla każdego paliwa
– Config.PulsPerRot – stała przetwornika drogi [imp/obr]
– Config.Cylinders – liczba wtryskiwaczy paliwa
– Config.Wheel – obwód opony [cm]
*/

ELEKTRONIKA PRAKTYCZNA 1/2017 21


PROJEKTY

+3.3V

R12
3k

TID_CON
7 1 KEYON
NTC+ KEYON
8 2
R13 DIAG AA
T1 9 3
WEG BATT BATT R19
BC817 10 4
1k SCL LIT
11 5
SDA NTC– 1k
12 6
MRQ GND

GND +3.3V
GND
R17
8k2

R14 R15 R16 R18


3k 3k 3k 3k

GND

VCC
U4

+3.3V 5 30
VCC (PCINT7/ADC7)PA7
17 31
VCC (PCINT6/ADC6)PA6
38 32
VCC (PCINT5/ADC5)PA5
33
R1 RES (PCINT4/ADC4)PA4
34
10k (PCINT3/ADC3)PA3
4 35
RESET (PCINT2/ADC2)PA2
C1 22pF Q1 36
(PCINT1/ADC1)PA1
7 37 SCK MISO MOSI
XTAL2 (PCINT0/ADC0)PA0
C2 22pF 8
XTAL1
3
GND 12.288MHz (PCINT15/SCK)PB7
29 2
L1 AREF (PCINT14/MISO)PB6
27 1
AVCC (PCINT13/MOSI)PB5
10uH 44
R2 (PCINT12/OC0B/SS)PB4
43
(PCINT11/OC0A/AIN1)PB3
6k34 42
(PCINT10/INT2/AIN0)PB2
41
(PCINT9/CLKO/T1)PB1
40 MENU/< OK/>
(PCINT8/XCK0/T0)PB0
C3 C4 C5 26 3 1 1 3
100nF 470nF 100nF (PCINT23/TOSC2)PC7
25 4 2 2 4
GND (PCINT22/TOSC1)PC6
24
(PCINT21/TDI)PC5
23
(PCINT20/TDO)PC4
22
(PCINT19/TMS)PC3
21
(PCINT18/TCK)PC2
20
(PCINT17/SDA)PC1
19 GND GND
(PCINT16/SCL)PC0
16
(PCINT31/OC2A)PD7
15
(PCINT30/OC2B/ICP)PD6
14
(PCINT29/OC1A)PD5
13
(PCINT28/OC1B)PD4
39 12
GND (PCINT27/INT1)PD3
28 11
GND (PCINT26/INT0)PD2
18 10
GND (PCINT25/TXD0)PD1
6 9
GND (PCINT24/RXD0)PD0

ATMEGA644PA
GND

U1 U3
MCP1703–3302EDB 2x22pF U2 MCP1703–3302EDB
1 3 C8 Q2 1 8 3 1
KEYON VI VO +3.3V X1 VCC VO VI BATT
GND TAB C9 R3 TAB GND
2 7
X2 MFP
32768Hz 10k
R4
2

6
SCL
+ C6 + C7 3k +
R5
4 5
GND SDA
10uF 10uF 3k C11 C12
10uF 1uF
MCP7940N–I/SN

C10
100nF

GND GND GND GND GND GND GND GND GND GND

Rysunek 7. Schemat ideowy komputera samochodowego multiTID

22 ELEKTRONIKA PRAKTYCZNA 1/2017


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

DODATKOWE MATERIAŁY NA FTP:


ftp://ep.com.pl
user: 33948, pass: 5gcckdmq
W  ofercie AVT*
R20
AVT-5562
KEYON Podstawowe informacje:
10
C14 yyNapięcie zasilania: 8…15 V DC.
R21 +3.3V yyMaksymalny prąd obciążenia (z napięcia
T2 100nF +12 V): 10 mA.
10
BC817 GND yyPrąd podtrzymania zegara RTC (z napięcia
BATT): 1 mA.
A2
K2

41
1
2

4
6
7
TFT yyMaksymalny prąd podświetlenia (z napię-
MI042CT–5 cia ILL+): 75 mA.

IOVCC
LEDA1
LEDK1
LEDA2
LEDK2

GND2
GND1

VCI
VCC
yyDokładność pomiaru temperatury: 1°C.
yyZakres pomiarowy temperatury zewnętrz-
nej: –30…35°C.
40 31 yyZakres pomiarowy prędkości pojazdu:
+3.3V IM0 VSYNC
39
IM1 HSYNC
32 0…255 km/godz.
38
IM2 DCLK
33 yyZakres pomiarowy chwilowego zużycia
34 paliwa: 0…99,9 l/100 km.
ENA
5
FMARK yyZakres pomiarowy średniego zużycia pali-
wa: 0…25,5 l/100 km.
yyZakres pomiarowy paliwa dostępnego
w baku: 0…99,9 l.
yyZakres pomiarowy przejechanej odległości:
DB17
DB16
DB15
DB14
DB13
DB12

DB10
DB11
SDO

DB9
DB8
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
RES

WR
SDI

RD

CS
RS

0…9999 km.
yyZakres pomiarowy dystansu do przejecha-
8

9
35
36

27
28
29
30

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
nia na dostępnym paliwie: 0…999 km.
yyZakresy regulacji parametrów
konfiguracyjnych:
ƒƒ Stałe wtryskiwaczy: 1…999 ml/min.
ƒƒ Stała przetwornika drogi: 1…99
GND
impulsów/obrót.
ƒƒ Obwód opony: 50…255 cm.
Pb LPG ƒƒ Liczba cylindrów: 2…8.
ƒƒ Pojemności baków: 25…99 l.
LPG–3

LPG–2

LPG–1

yyPrzesunięcie belek informacyjnych:


PB–2

PB–1

0÷9 pikseli.
Projekty pokrewne na FTP:
1N4148

1N4148

(wymienione artykuły są w całości dostępne na FTP)


AVT-5545 Komputer samochodowy Mee
MK II (2.0) (EP 7-8-9/2016)
AVT-5495 Uniwersalny komputer
D1

D2

samochodowy Mee
R6 R8 R10 (EP 3/2015)
1k 8k2 1k
AVT-3095 Komputer samochodowy
(EdW 4-5/2014)
AVT-5405 TripCo – komputer
+3.3V samochodowy (EP 7/2013)
AVT-5395 TIDex – komputer dla
2

R9
C13 3k
samochodów z silnikiem
GND Diesla (EP 5/2013)
100nF * Uwaga:
GND U6 U7 Zestawy AVT mogą występować w następujących wersjach:
5

6 LTV817S–SMD LTV817S–SMD AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów
3

dodatkowych.
1 AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie
wyraźnie zaznaczono), bez elementów dodatkowych.
4 AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie
3 wersji A i wersji UK) bez elementów dodatkowych.
AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymienio-
ny w załączniku pdf
AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane
w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie,
zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały
2

U5 3k 3k wymienione w załączniku pdf


NC7SB3157 R7 R11 AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli
występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link
umieszczony w opisie kitu)
Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma
załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą
+3.3V +3.3V wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
GND GND GND

Tabela 6. Konfiguracja peryferiów Atmega644-PA dla potrzeb pomiarów


Nazwa Sposób konfiguracji Funkcjonalność
Licznik impulsów zewnętrznych podawanych na wejście T0 – re- Liczy impulsy przetwornika drogi WEG zapewniając
Timer0
akcja na zbocze opadające. pomiar przejechanego dystansu.
Licznik taktowany wewnętrznym przebiegiem o częstotliwości
48 kHz (preskaler=256, 48 taktów na 1 ms). Wejście Input/Cap- Mierzy sumaryczny czas wtrysku w czasie 1 s. zapew-
Timer1
ture dołączone do układu formującego przebieg z wtryskiwacza niając pomiar zużytego paliwa.
paliwa.
Przerwanie Wyzwalane zboczem opadającym na wejściu INT0, do którego
Służy do odmierzania czas pomiaru równego 1 s.
INT0 doprowadzono wyjście częstotliwości wzorcowej zegara RTC.

ELEKTRONIKA PRAKTYCZNA 1/2017 23


PROJEKTY

Rysunek 8 Schemat montażowy komputera samochodowego multiTID

Fotografia 9 Wygląd obwodu drukowanego zmontowanego sterownika multiTID od strony elementów (bez wyświetlacza TFT)

REKLAMA

Elektronika Praktyczna na 

24 ELEKTRONIKA PRAKTYCZNA 1/2017


PROJEKTY

multiTID
– wielofunkcyjny, samochodowy komputer
pokładowy (3)
Omówiliśmy już sposób działania oraz budowę komputera multiTID. Teraz Połączenia
przyszedł czas na zamontowanie go w samochodzie, skonfigurowanie, Konstruując multiTID, kierowałem się za-
a wreszcie użytkowanie! łożeniem, że jego włączenie w miejsce ory-
ginalnego wyświetlacza pokładowego TID
powinno sprowadzać się do zwykłego wpięcia
Schemat montażowy komputera samocho- Ostatnimi podzespołami, które należy wlu- przewodów. Idąc tym tokiem myślenia, urzą-
dowego multiTID pokazano na rysunku 8, tować po stronie wyprowadzeń (BOTTOM), dzenie multiTID wyposażyłem w 12-pinowe
opublikowanym w poprzedniej części arty- są gniazda podłączeniowe: TID_CON (najlepiej złącze o rozmieszczeniu wyprowadzeń zgod-
kułu w EP 1/2017. Zaprojektowano zwarty, oryginalne, wylutowane z wyświetlacza TID), nym z oryginałem, co umożliwia wlutowa-
dwustronny obwód drukowany, złożony Pb, LPG. Na samym końcu przyłączamy taśmę nie w to miejsce elementu wymontowanego
w głównej mierze z elementów przeznaczo- wyświetlacza TFT do złącza ZIF, dbając o od- z oryginalnego, 10-znakowego wyświetlacza
nych do montażu powierzchniowego. Co bar- powiednie zablokowanie zatrzasków złącza, na- pokładowego (z Astry G, Corsy C itp.). Oczy-
dzo ważne w wypadku pracy w środowisku tomiast sam panel TFT przyklejamy do płytki wiście, w tym miejscu możemy również za-
o potencjalnie dużym poziomie zaburzeń, sterownika, korzystając z 4 dystansów o wyso- stosować listwę goldpin 2×6 pinów.
jakim bez wątpienia jest instalacja samocho- kości równej wysokości najwyższego elementu Rozmieszczenie wyprowadzeń, o którym
dowa, zadbano o odpowiednie prowadzenie montowanego po stronie TOP oraz dwustronnej wspomniałem wcześniej, dotyczy wersji wy-
masy i sygnałów krytycznych. taśmy klejącej. Na fotografii 9 pokazano wy- świetlacza TID o organizacji 10-znakowej,
Z uwagi na fakt, że moduł wyświetla- gląd zmontowanego komputera multiTID bez więc jeśli urządzenie multiTID ma być za-
cza TFT jest dołączony do płytki z użyciem wyświetlacza TFT. instalowane w pojeździe wyposażonym
gniazda ZIF o gęstym rastrze (45 wyprowa-
dzeń co 0,5  mm), montaż rozpoczynamy
od przylutowania tego gniazda. Należy przy
tym posłużyć się cyną z odpowiednią ilością
topnika oraz cienką plecionką, która umoż-
liwi usunięcie nadmiaru cyny. Jakość tak
wykonanego połączenia sprawdzamy pod
lupą oraz kontrolujemy zwarcia multime-
trem. Wspomniana kontrola będzie znacznie
łatwiejsza, jeśli zmontowana płytkę sterow-
nika przemyjemy alkoholem izopropylowym
w celu wypłukania nadmiaru kalafonii.
Następnie lutujemy mikrokontroler, pozostałe
elementy półprzewodnikowe SMD, elementy
bierne, a na samym końcu wszystkie elementy Fotografia 9. Wygląd obwodu drukowanego zmontowanego sterownika multiTID od stro-
przeznaczone do montażu przewlekanego. ny elementów (bez wyświetlacza TFT)

46 ELEKTRONIKA PRAKTYCZNA 2/2017


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

DODATKOWE MATERIAŁY NA FTP:


ftp://ep.com.pl
user: 97325, pass: 6yfwxr8q
W  ofercie AVT*
AVT-5562
Podstawowe informacje:
yyNapięcie zasilania: 8…15 V DC.
yyMaksymalny prąd obciążenia (z napięcia
+12 V): 10 mA.
yyPrąd podtrzymania zegara RTC (z napięcia
BATT): 1 mA.
yyMaksymalny prąd podświetlenia (z napię-
cia ILL+): 75 mA.
yyDokładność pomiaru temperatury: 1°C.
yyZakres pomiarowy temperatury zewnętrz-
nej: –30…35°C.
yyZakres pomiarowy prędkości pojazdu: Rysunek 10. Rodzaje złączy radioodbiornika z opisem wyprowadzeń
0…255 km/godz.
yyZakres pomiarowy chwilowego zużycia
paliwa: 0…99,9 l/100 km. Co ciekawe, w zależności od marki pojazdu, zabezpieczyć przed możliwością ewentual-
yyZakres pomiarowy średniego zużycia pali- piny o numerach 4 i 7 (oznaczone jako +12 V nego przetarcia izolacji i powstania zwarcia
wa: 0…25,5 l/100 km.
yyZakres pomiarowy paliwa dostępnego i BATT) mogą być zamienione miejscami, – dotyczy to zwłaszcza wszelkiego rodzaju
w baku: 0…99,9 l. dlatego ich rzeczywiste funkcje należy otworów przelotowych, przez które zostaną
yyZakres pomiarowy przejechanej odległości: ustalić eksperymentalnie. Napięcie na pi- one przeprowadzone. Aby zabezpieczyć wej-
0…9999 km.
nie +12 V powinno występować wyłącznie ściowy układ pomiarowy czasu wtrysku
yyZakres pomiarowy dystansu do przejecha-
nia na dostępnym paliwie: 0…999 km. po włączeniu zapłonu (przekręceniu klu- przed zaburzeniami (np. od będącej zwykle
yyZakresy regulacji parametrów czyka), a na pinie BATT na stałe. Napięcie w pobliżu listwy zapłonowej), najlepiej za-
konfiguracyjnych: na pinie ILL+ to zwyczajowo przebieg pro- stosować dwużyłowy przewód ekranowany
ƒƒ Stałe wtryskiwaczy: 1…999 ml/min.
stokątny o amplitudzie ok. +12 V i wypeł- o odpowiednim przekroju, a ekran tego prze-
ƒƒ Stała przetwornika drogi: 1…99
impulsów/obrót. nieniu zależnym od ustawienia pokrętła wodu po obu stronach połączyć z masą po-
ƒƒ Obwód opony: 50…255 cm. regulującego jasność podświetlenia zegarów jazdu. Możliwe jest także połączenie układu
ƒƒ Liczba cylindrów: 2…8. pojazdu. To napięcie jest używane do regu- formującego impulsy wtryskiwaczy paliwa
ƒƒ Pojemności baków: 25…99 l.
lacji jasności podświetlenia wyświetlacza bezpośrednio z wyjściem odpowiedniego ste-
yyPrzesunięcie belek informacyjnych:
0÷9 pikseli. urządzenia multiTID. Jeśli nie zależy nam rownika (ECU silnika i komputera instalacji
Projekty pokrewne na FTP: na takiej funkcjonalności, pin ILL+ należy LPG). Wtedy należy odpowiednio zmniej-
(wymienione artykuły są w całości dostępne na FTP) zewrzeć z pinem +12 V. szyć wartości rezystorów R6/R10 ustalają-
AVT-5545 Komputer samochodowy Mee Wszystkie połączenia, o których mowa po- cych prądy diod LED transoptorów LTV817.
MK II (2.0) (EP 7–8–9/2016) wyżej, zapewniają jednak realizację części
AVT-5495 Uniwersalny komputer
samochodowy Mee
funkcjonalności sterownika tj. wszystkich Obsługa
(EP 3/2015) funkcji niezwiązanych z pomiarem spala- Sterownik multiTID jest urządzeniem, które
AVT-3095 Komputer samochodowy nia. Aby umożliwić pomiar spalania, należy zwykle będzie obsługiwane podczas jazdy sa-
(EdW 4–5/2014) do urządzenia multiTID dostarczyć sygnał mochodem, więc podstawowym kryterium
AVT-5405 TripCo – komputer
z wtryskiwacza/wtryskiwaczy paliwa (dla przyjętym podczas tworzenia menu użytkow-
samochodowy (EP 7/2013)
* Uwaga: przypadku zasilania auta wyłącznie ben- nika były ergonomia, łatwość obsługi i czytel-
Zestawy AVT mogą występować w następujących wersjach:
AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów
dodatkowych.
zyną) oraz sygnał z zaworu reduktora in- ność interfejsu użytkownika. Zgodnie z tymi
AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie
wyraźnie zaznaczono), bez elementów dodatkowych. stalacji LPG (dla przypadku zasilania auta założeniami, na płytce sterownika przewi-
AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie
wersji A i wersji UK) bez elementów dodatkowych.
AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymienio-
zarówno benzyną, jak i gazem LPG). dziano jedynie 2 elementy sterujące umownie
ny w załączniku pdf
AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane oznaczone „MENU/<” i „OK/>”.
Połączenie multiTID z modułem
w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie,
zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały Przycisk „MENU/<” służy do zmiany ak-
wtryskiwacza paliwa
wymienione w załączniku pdf
AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli
występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link tualnie wyświetlanego ekranu menu, a przy-
umieszczony w opisie kitu)
Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma
załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą
Połączenia układu w tym zakresie należy cisk „OK/>” do wykasowania liczników
wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
wykonać nader starannie, zachowując dużą
ostrożność, by nie doprowadzić do zwar- REKLAMA
w starszą wersję wyświetlacza (np. Astra F, cia przewodów zasilających wtryskiwacz,
Corsa B) lub pojeździe o innym rodzaju złą- co mogłoby skutkować uszkodzeniem wyj-
cza (np. Omega, Vectra  B), konieczne jest ściowych obwodów sterujących elektro-
odpowiednie dopasowanie sygnałów ste- nicznego układu sterującego pracą silnika
rujących oryginalnego złącza wyświetla- ECU. Każdy wtryskiwacz ma 2 wyprowa-
cza pojazdu do sygnałów sterujących złącza dzenia. Pierwsze z nich to stałe napięcie
sterownika multiTID. W aucie innym niż +12 V, które zostaje podane po przekręce-
Opel, stosowne sygnały, które zgrupo- niu kluczyka stacyjki i które należy dopro-
wane są standardowo w złączu wyświetla- wadzić do złącza „+” stosownego gniazda
cza TID, „pobieramy” tym razem ze złącza urządzenia multiTID (Pb i LPG, przy zasila-
ISO radioodbiornika. niu gazem LPG). Drugie to sygnał sterujący
Wygląd typowych złączy ISO radioodbior- z modułu ECU (komutowana masa), który
nika wraz z zaznaczeniem interesujących z kolei należy doprowadzić do wejścia „–”.
nas wyprowadzeń pokazano na rysunku 10. Przewody połączeniowe należy starannie

ELEKTRONIKA PRAKTYCZNA 2/2017 47


PROJEKTY

Rysunek 11. Diagram obrazujący system Menu i sposób obsługi sterownika multiTID

dystansu, średnich wartości obliczenio- paliwa i zwiększyć jego ilość o zatankowaną belce informacyjnej, które wyświetlane
wych lub wyzerowania statystyk spalania. wartość (zmiana o pełne litry). Mechanizm są zawsze, niezależnie od aktywnego ekranu
Zastosowanie tylko dwóch przycisków po- pomiarowy sterownika multiTID będzie na- menu). Znaczenie poszczególnych danych
zwala również na dołączenie do urządzenia stępnie odejmował od wartości dostępnego jest następujące:
multiTID oryginalnej „manetki” komputera paliwa zużywane paliwo, co umożliwia re- 1. Bieżąca godzina.
pokładowego, która poprawia ergonomię alizację wspomnianej funkcjonalności. 2. Bieżąca data.
użytkowania urządzenia. Nie są to jednak Słowo komentarza należy się także sa- 3. Chwilowe zużycie paliwa (w l/godz.
wszystkie funkcje wspomnianych elemen- memu interfejsowi graficznemu. Konstruując dla prędkości poniżej 5  km/godz., dla
tów, gdyż ich funkcjonalność zależna jest sterownik multiTID, chciałem, aby formą pozostałych prędkości w l/100  km)
od aktualnego trybu pracy układu multiTID. prezentacji danych oraz możliwościami do- wraz z oznaczeniem aktualnie używa-
Na rysunku 11 pokazano diagram obrazu- równywał rozwiązaniom znanym ze współ- nego paliwa.
jący system menu oraz sposób obsługi urzą- czesnej motoryzacji, zwłaszcza w tzw. 4. Dostępna ilość aktualnie używanego
dzenia. Na tym rysunku symbole przycisków segmencie Premium. Podstawowym zada- paliwa (w tym, graficzna prezentacja
wypełnione kolorem czarnym oznaczają dłu- niem było w takim razie zaprojektowanie w formie bargrafu, który zmienia kolor
gie naciśnięcie wybranego przycisku. Warto czytelnego i ładnego interfejsu użytkownika na czerwony w przypadku, jeśli w zbior-
zauważyć, że funkcja wyświetlania ilości z wykorzystaniem efektownych, kolorowych niku jest poniżej 10% paliwa).
dostępnego paliwa w zbiorniku nie korzy- elementów graficznych. Nie było to zadanie 5. Prognozowany dystans na dostęp-
sta z sygnału informującego o rzeczywistym łatwe i opracowanie interfejsu graficznego nym, bieżącym rodzaju paliwa (liczony
poziomie paliwa, gdyż jej implementacja, zajęło mi najwięcej czasu, włączając w to wy- w oparciu o średnie zużycie paliwa).
skalowanie i samo włączenie sterownika konanie wielu drobnych ikon. Zdecydowa- 6. Temperatura na zewnątrz pojazdu.
do instalacji pojazdu byłoby dość kłopotliwe. łem się na kolorystykę zbliżoną do sepii, gdyż 7. Ikonka „śnieżynki” informująca o śli-
Mechanizm jej działania jest w tym wypadku taka wydała mi się najbardziej stonowana skiej nawierzchni (dla temperatury po-
bardzo prosty i zakłada każdorazowe uzu- i elegancka, a przy okazji pasująca do kolo- niżej 4°C).
pełnianie bieżącego odczytu o ilość zatan- rów podświetlenia stosowanych przez Opla. 8. Ikonka informująca o aktywnym trybie
kowanego paliwa, co jest możliwe poprzez Na rysunku 12 pokazano wygląd „Menu kalibracji stałej wtryskiwacza.
wejście w tryb edycji paliwa dostępnego zużycia paliwa” wraz z opisem wszyst- 9. Informacje tekstowe przesyłane przez
w zbiorniku. A więc po każdym tankowaniu kich wyświetlanych danych (w tym da- radioodbiornik Opla plus ikonki repre-
pojazdu należy wejść w edycję dostępnego nych znajdujących się na górnej i dolnej zentujące status radia/magnetofonu/CD.

48 ELEKTRONIKA PRAKTYCZNA 2/2017


multiTID – wielofunkcyjny, samochodowy komputer pokładowy

10. Średnie zużycie paliwa w l/100 km. w kierunku środka ekranu o zadaną liczbę całego interfejsu użytkownika z kolorów se-
Na rysunku 13 pokazano wygląd „Menu pikseli obrazu (0...9). Funkcja ta może być pii na niebieski i odwrotnie. Wygląd przykła-
prędkości” z opisem wyświetlanych da- użyteczna w przypadku, gdy pionowy wy- dowego Menu zużycia paliwa w kolorystyce
nych. Znaczenie poszczególnych danych miar okna przeznaczonego na montaż ory- niebieskiej pokazano na fotografii 16.
jest następujące: ginalnego wyświetlacza TID jest mniejszy Wybrana opcja Menu jest podświetlana
1. Chwilowa prędkość pojazdu w km/godz. niż wysokość ekranu, co powodowałoby w kolorze białym, a wejściu w jej edycję
2. Maksymalna, zarejestrowana prędkość przesłanianie „belek” informacyjnych i za- towarzyszy negacja tła wybranej wartości
pojazdu w km/godz. wartych tam informacji. Z kolei opcja „In- (tło staje się białe, zaś wybrane wartości
3. Przejechany dystans w km (od ostatniego terface type” pozwala na zmianę kolorystyki czarne). Wyjściu z trybu konfiguracyjnego
kasowania tego licznika) dla aktualnie uży-
wanego paliwa.
4. Średnia prędkość pojazdu w km/godz.
Na rysunku 14 pokazano wygląd „Menu sta-
tystyk” wraz z opisem wszystkich wyświetla-
nych danych.
Znaczenie poszczególnych danych
jest następujące:
1. Słupki reprezentujące średnie zużycie
paliwa, dla bieżącego rodzaju paliwa,
na każde przejechane 10 km lub 1 km (w za-
leżności od wybranej opcji). Możliwość
wyświetlenia kolejnego „słupka” zależy,
co oczywiste, od aktualnie przejechanego
dystansu oraz wybranej skali wykresu.
Wykres pokazuje zawsze statystyki dla
ostatnio przejechanych 150 km lub 15 km
i jest aktualizowany co jednostkę skali dy-
stansu (przesuwa się w lewo po przejecha-
niu 150 km lub 15 km). Rysunek 12. Wygląd „Menu zużycia paliwa”
2. Linia reprezentująca średnie zuży-
cie paliwa dla bieżącego rodzaju paliwa
w l/100 km (wraz z wartością).
3. Skala dla wykresu średniego zużycia pa-
liwa dla bieżącego rodzaju paliwa (zmie-
niana z poziomu menu).
4. Średnia prędkość pojazdu w km/godz.
(od ostatniego kasowania tego licznika).
5. Przejechany dystans w km dla bieżącego
rodzaju paliwa (od ostatniego kasowania
tego licznika).
6. Czas jazdy (od ostatniego kasowania
tego licznika).
Na rysunku  15 pokazano wygląd „Menu
konfiguracyjnego”. Znaczenie poszczególnych
opcji Menu konfiguracyjnego jest następujące:
• Tire perimeter: obwód koła w [cm]. Rysunek 13. Wygląd „Menu prędkości”
• Pulses/rotation: stała przetwornika drogi.
• Pb injector flow: stała wtryskiwacza ben-
zyny [cm3].
• LPG injector flow: stała wtryskiwacza gazu
LPG [cm3].
• Cylinders: liczba cylindrów.
• Pb tank capacity: pojemność zbiornika pa-
liwa [l].
• LPG tank capacity: pojemność zbiornika
gazu LPG [l].
• Time: aktualny czas (format 24-godzinny).
• Date: aktualna data.
• Info bar offset: przesunięcie górnej i dolnej
„belki informacyjnej” w kierunku środka
ekranu [piksel].
• Interface type: kolorystyka interfejsu użyt-
kownika [Sepia/Blue].
Opcja „Info bar offset” służy do przesu-
nięcia górnej i dolnej „belki informacyjnej” Rysunek 14. Wygląd „Menu statystyk”

ELEKTRONIKA PRAKTYCZNA 2/2017 49


PROJEKTY

towarzyszy zapisanie edytowanych wartości


w nieulotnej pamięci EEPROM mikrokontro-
lera i/lub aktualizacja czasu i daty wbudo-
wanego zegara RTC.

Setup i tryb kalibracji stałej


wtryskiwacza
Urządzenie multiTID wyposażono w spe-
cjalny, konfiguracyjny tryb pracy, dzięki któ-
remu możemy określić pewne, niezbędne
parametry regulacyjne nieodzowne z punktu
widzenia funkcjonalności komputera pokła-
dowego. Tryb ten uruchamiamy poprzez jed-
noczesne naciśnięcie przycisków „MENU/<”
i „OK/>”. Za jego pomocą możemy określić Rysunek 15. Wygląd „Menu konfiguracyjnego”
wielkość następujących stałych niezbędnych
w procesie obliczania zużycia paliwa, pręd-
kości jazdy oraz drogi:
• Stała wtryskiwacza dla każdego z rodza-
jów paliwa (w [ml/min]): jest to wielkość
charakterystyczna dla każdego wtryski-
wacza elektronicznego wtrysku paliwa
informująca nas o ilości paliwa, jakie
może on wprowadzić do komory spala-
nia w jednostce czasu (przy założeniu
100% czasu otwarcia zaworu i stałym,
charakterystycznym dla każdego wtry-
skiwacza ciśnieniu zasilającym).
• Stała przetwornika drogi (impulsatora,
w [imp/obr]): jest to wielkość charak-
terystyczna dla każdego impulsatora Fotografia 16. Wygląd przykładowego „Menu zużycia paliwa” w kolorystyce niebieskiej
informująca nas o liczbie impulsów przy- urządzenia multiTID
padających na 1 obrót koła (osi).
• Obwód opony (w [cm]). mechanizm, za którego pomocą sterownik zaświecenia się lampki sygnalizującej
• Liczba cylindrów (a więc i liczba multiTID jest w stanie samodzielnie wy- tzw. rezerwę paliwa.
wtryskiwaczy zamontowanych w sil- znaczyć poszukiwaną stałą na podstawie • Zakończyć procedurę kalibracji.
niku pojazdu). informacji o zużytym paliwie i pomiarze su- Po wykonaniu tych czynności układ mul-
• Pojemność zbiornika paliwa dla każdego marycznego czasu wtrysków. Do tego celu tiTID obliczy i zapisze, w nieulotnej pamięci
z rodzajów (w [l]). przewidziano specjalny tryb kalibracyjny, EEPROM mikrokontrolera, wartość stałej
Ponadto tryb konfiguracyjny pozwala nam który może być uruchomiony poprzez jed- wtryskiwacza, po czym przejdzie do nor-
na ustawienie bieżącej daty i godziny wbudo- noczesne naciśnięcie przycisków „MENU/<” malnego trybu pracy. Oczywiście stałą taką
wanego zegara RTC. Wspomniane powyżej i „OK/>”, co zostanie zasygnalizowane wy- wyznaczamy dla każdego z rodzajów pa-
stałe można znaleźć w Internecie na forach świetleniem ikony na dolnej belce informa- liwa oddzielnie, co oznacza, że w czasie
o tematyce motoryzacyjnej lub elektronicz- cyjnej graficznego interfejsu użytkownika. aktywnego procesu kalibracji nie wolno
nej, lecz wydaje się, że lepszym sposobem Ponowne wykonanie wspomnianych czyn- zmieniać rodzaju paliwa. Gdyby obliczona
jest ich wyznaczenie empiryczne. Dla przy- ności powoduje obliczenie żądanej stałej przez sterownik wartość stałej wtryskiwa-
kładu, obwód opony, a w zasadzie drogę, jaką wtryskiwacza a następnie opuszczenie pro- cza powodowała zaniżanie lub zawyżanie
pokona pojazd w czasie jednego, pełnego ob- cesu kalibracji. Co oczywiste, do czasu za- rzeczywistego spalania paliwa, w każdej
rotu koła, możemy wyznaczyć dość łatwo. kończenia procesu kalibracji nie są dostępne chwili możemy dokonać odpowiedniej ko-
W tym celu zaznaczamy (np. kredą) najniżej następujące wartości obliczeniowe: chwi- rekty poprzez wejście w menu konfiguracji
położone miejsce styku opony z powierzch- lowe i średnie zużycie paliwa, ilość paliwa urządzenia i zwiększenie (przy zaniżaniu
nią drogi, następnie standardowo obciążony dostępnego w baku pojazdu (jest to sygnali- spalania) lub zmniejszenie (przy zawyża-
pojazd przetaczamy, aby koło wykonało je- zowane wyświetleniem symboli „–” w odpo- niu spalania) wspomnianej wartości. Należy
den, pełny obrót, po czym mierzymy poko- wiednich polach wspomnianych wartości) zaznaczyć, że tak jak w przypadku orygi-
nany odcinek drogi. Co oczywiste, wszystkie oraz menu statystyk spalania. Aby przepro- nalnych rozwiązań typu „komputer pokła-
wprowadzone wartości zostaną zachowane wadzenie procesu kalibracji miało w ogóle dowy”, obliczane wartości zużycia paliwa
w nieulotnej pamięci EEPROM urządzenia. sens, należy zastosować następujący algo- są obarczone pewnym błędem wynikającym
Niestety, jak pokazała praktyka, pew- rytm postępowania: choćby z założenia stałego ciśnienia zasila-
nych trudności może czasami nastręczać • Zużyć całe, dostępne paliwo, aż do za- jącego wtryskiwacz czy też z zaokrągleń ob-
znalezienie parametrów stosowanych w na- świecenia się lampki sygnalizującej tzw. liczeniowych. Testy praktyczne pokazały,
szym pojeździe wtryskiwaczy, ponieważ rezerwę paliwa. że maksymalny błąd pomiarowy jest na po-
są one często wykonywane na zamówienie • Zatankować 20 l paliwa. ziomie 0,5 l na całą pojemność baku pojazdu,
producenta pojazdu i na próżno szukać ich • Uruchomić procedurę kalibracji. czyli ok. 1%.
oznaczeń na stronach producentów podze- • Zużyć całe, dostępne paliwo (zatanko- Robert Wołgajew, EP
społów. Na szczęście przewidziano pewien wane wcześniej 20 l), aż do ponownego

50 ELEKTRONIKA PRAKTYCZNA 2/2017

You might also like