Serwisy partnerskie:
Close icon
Serwisy partnerskie

MiniMeter - monitor magistrali i moduł do pomiarów (działanie, schematy, montaż)

AVT3245
kit
Współczesne układy elektroniczne bardzo często wykorzystują różne magistrale danych do szeregowego przesyłania informacji w postaci cyfrowej. Takie rozwiązanie pozwala na realizację skomplikowanych funkcji przy jednoczesnym uproszczeniu konstrukcji urządzenia. Stwarza to jednak nowe problemy, ponieważ często niewinnie wyglądający projekt okazuje się bardzo skomplikowany w realizacji, a ewentualne błędy są trudne do zdiagnozowania.
Article Image

W takich sytuacjach niezbędny okazuje się oscyloskop, ale nie prosty oscyloskop, tylko bogatsza wersja z możliwością dekodowania danych na popularnych magistralach. Taki oscyloskop jest jednak stosunkowo drogi i często znajduje się poza zasięgiem elektronika hobbysty.

Dobrą wiadomością dla hobbysty jest to, że w większości sytuacji nie potrzebujemy pełnej funkcjonalności, jaką oferuje nam taki oscyloskop. Wystarczyłby prosty podgląd czy na magistrali jest „wszystko w porządku”. Prezentowany w tym artykule projekt spełnia właśnie taką funkcję monitora magistrali (I2C, UART, SPI, 1-WIRE, USRT, IRCOM), a dodatkowo pozwala też na pomiar napięcia i prądu w wybranym punkcie układu, pomiar częstotliwości oraz ładunku elektrycznego.

Opis układu - monitor magistrali/moduł do pomiarów

Realizacja tego projektu w pokazanej na fotografiach postaci maleńkiego modułu była możliwa dzięki zastosowaniu nowoczesnego mikrokontrolera ATxmega32E5. Jest to najmniejszy członek rodziny xmega, dostępny w obudowie 32-pinowej. Mikrokontroler ten oprócz standardowej funkcjonalności ma też szereg zaawansowanych rozwiązań, takich jak: bezpośredni transfer danych DMA (Direct Memory Access), system zdarzeń (Event System) oraz niewielki moduł logiki programowalnej (Custom Logic Module).

Rys.1 Schemat ideowy Minimetera - monitor magistrali i moduł do pomiarów

Wykorzystanie tych podsystemów pozwala na sprzętową realizację najbardziej czasochłonnych operacji, co znacząco zwiększyło możliwości poprawnej interpretacji nawet stosunkowo szybkich magistrali (do 1MHz). Schemat ideowy całości można zobaczyć na rysunku 1.

Do prezentacji danych został wybrany bardzo popularny i tani wyświetlacz z telefonu Nokia 5110 (wyposażony w sterownik PCD8544). Sterowanie tym wyświetlaczem odbywa się poprzez jednokierunkową magistralę SPI wzbogaconą o jedną linię, decydującą o tym, czy wysłany bajt jest komendą, czy danymi do prezentacji. Jedna ramka danych składa się z 512 bajtów (8 bajtów komend i 504 bajty danych) jak na rysunku 2.

Rys.2 Jedna ramka danych

Zastosowany wyświetlacz jest monochromatyczny, ale zmieniając wartość poszczególnych pikseli na przeciwny przy każdym odświeżaniu, można uzyskać jeszcze wartość pośrednią pomiędzy aktywnym a nieaktywnym pikselem (rysunek 3). Podświetlanie wyświetlacza zrealizowanie jest za pomocą diod LED D6-D11. Układ AP7333 (LDO 3,3V) zapewnia stabilne zasilanie, które dodatkowo jest filtrowane przez koraliki ferrytowe FB1-FB3 i kondensatory C6-C9. Wejście stabilizatora jest zabezpieczone przed zbyt wysokim napięciem diodą Zenera D1 i bezpiecznikiem polimerowym F1.

Rys.3 Wartość pośrednia pomiędzy aktywnym a nieaktywnym pikselem

Minimeter - pomiar wartości analogowych

Pomiar wartości analogowych realizowany jest za pomocą przetwornika analogowo-cyfrowego wbudowanego w mikrokontroler. Napięcie referencyjne dla przetwornika (2,048V±0,1%) dostarcza układ MCP1501. Mierzone napięcie trafia do przetwornika AC-DC poprzez dzielniki napięcia utworzone z rezystorów: R7, R9 i R8, R10.

Takie rozwiązanie pozwala zwiększyć zakres pomiarowy do 7V (maksymalne dopuszczalne napięcie na wejściu xmegi to około 3,5V), jednocześnie stanowiąc zabezpieczenie w przypadku jego przekroczenia. Aby zapewnić odpowiedni poziom tłumienia sygnału współbieżnego (CMRR), rezystory tworzące te dzielniki muszą być bardzo dokładne (±0.1%).

Rys.4 Pomiar wartości analogowych

Rysunek 4 dokładniej ilustruje ten problem. Przy jednakowym napięciu na obu wejściach napięcie pomiarowe powinno wynosić 0V. Tak będzie na pewno, jeśli oba wejścia zewrzemy do masy (rysunek 4a), jednak dla niezerowych napięć wejściowych otrzymamy (w najgorszym przypadku) błąd będący iloczynem napięcia wspólnego i tolerancji zastosowanych rezystorów (rysunek 4b).

Błąd ten będzie oczywiście występował również, gdy napięcia na wejściach nie są sobie równe (będzie się zmieniał wraz z ich wartościami), dlatego tylko rezystory o tolerancji poniżej 1% pozwalają uzyskać akceptowalną w tym przypadku dokładność. Za dzielnikami wpięte są kondensatory C4 i C5, których zadaniem jest szybkie przeładowanie pojemności układu próbkującego (obniżają impedancję dzielników widzianą od strony przetwornika).

Niestety pojemność tych kondensatorów wraz z rezystancją zastępczą dzielników tworzy filtr dolnoprzepustowy o częstotliwości granicznej kilkunastu kiloherców, co akurat w tym zastosowaniu nie stanowi większego problemu (ale warto o tym pamiętać).

Minimeter - pomiar prądu

Pomiar prądu polega na odczycie napięcia na rezystorze R1 (100mΩ). Sygnał użyteczny jest na tyle mały, że konieczne okazało się zastosowanie dedykowanego precyzyjnego układu wzmacniającego INA181 (rysunek 5). Po podaniu dodatniego napięcia odniesienia na końcówkę REF układ ten pozwala na pomiar prądu w obu kierunkach.

Przetwornik AC-DC mierzy różnicę napięć na wyprowadzeniach REF i OUT, dlatego konkretna wartość i dokładność napięcia na końcówce REF nie jest krytyczna. W naszym przypadku napięcie to zapewnia zwykła dioda krzemowa D12 spolaryzowana w kierunku przewodzenia przez rezystor R14. Zakres mierzonego prądu to –0,25A÷1A.

Rys.5 Zastosowanie dedykowanego precyzyjnego układu wzmacniającego INA181

Wszystkie wejścia cyfrowe są zabezpieczone rezystorami szeregowymi i diodami Zenera, ograniczającymi napięcie do maksymalnego dopuszczalnego przez mikrokontroler. Takie rozwiązanie chroni też mikrokontroler przed przepięciami, jakie mogą pojawić się na wejściach podczas podłączania przewodów pomiarowych.

Oprogramowanie - monitor magistrali/modułu do pomiarów

Przygotowane oprogramowanie pozwala na monitorowanie magistrali: I2C, UART, SPI, 1-WIRE, USRT i IRCOM (UART w podczerwieni), pomiar napięcia, prądu, częstotliwości i ładunku elektrycznego. Przełączanie między poszczególnymi trybami odbywa się poprzez naciśnięcie i przytrzymanie (około 3s) kombinacji przycisków.

Przyciski do zmiany trybu - monitor magistrali/moduł do pomiarów:

  • 1. I2C (fotografia 1)
  • 2. Pomiar napięcia (fotografia 2)
  • 3. Pomiar prądu (fotografia 3)
  • 4. UART (fotografia 4)
  • 1+2. 1-WIRE (fotografia 5)
  • 2+3. SPI (fotografia 6)
  • 3+4. USRT (fotografia 7)
  • 1+4. IRCOM (fotografia 8)
  • 1+3. Pomiar częstotliwości (fotografia 9)
  • 2+4. Pomiar ładunku elektrycznego (fotografia 10)

Funkcje przypisane do kombinacji przycisków:

  • 1+3+4. Kalibracja ADC dla pomiaru napięcia
  • 1+2+4. Kalibracja ADC dla pomiaru prądu
  • 1+2+3. Ustawienia wyświetlacza (kontrast, podświetlanie)
  • 2+3+4. Ustawienie długości opóźnień i czasu wyświetlania powiadomień
  • 1+2+3+4. Informacja o wersji oprogramowania

Monitorowanie magistrali synchronicznych (I2C, SPI, USRT)

Monitorowanie magistrali synchronicznych (I2C, SPI, USRT) odbywa się na następującej zasadzie. W kluczowych momentach (aktywne zbocze sygnału zegarowego oraz początek i koniec transmisji) stan linii danych jest zapisywany w buforze. Mikrokontroler w wolnych chwilach przetwarza dane z bufora, rekonstruując bit po bicie odebrane dane, które następnie prezentowane są na wyświetlaczu. Maksymalna akceptowalna częstotliwość sygnału zegarowego SPI , USRT i I2C to 1MHz.

Monitorowanie magistrali asynchronicznych (UART, IRCOM)

Do dekodowania magistrali asynchronicznych (UART, IRCOM) wykorzystane są sprzętowe moduły wbudowane w mikrokontroler. Można monitorować dwie linie jednocześnie. W ten sposób możemy zobaczyć dane z linii TxD i RxD z zachowaniem kolejności, w jakiej wystąpiły. Dla łatwego rozróżnienia dane z linii RxD są wyświetlone ciemnymi znakami na jasnym tle, a dane z linii TxD odwrotnie. Ze względu na brak możliwości poprowadzenia ścieżki bezpośrednio do drugiego modułu USART w mikrokontrolerze, konieczne było przepuszczenie sygnału przez komparator analogowy, którego wyjście akurat było na właściwym pinie (rysunek 6).

Rys.6 Przepuszczenie sygnału przez komparator analogowy

Wersja UART wykorzystująca podczernień jest stosowana raczej rzadko, ale xmega ma sprzętowy moduł IRCOM, dlatego można było dodać tę funkcjonalność niewielkim kosztem. Różnicę w wyglądzie ramki danych UART i IRCOM można zobaczyć na rysunku 7.

W tym trybie można monitorować tylko jedną linię danych. Maksymalne ustawienie prędkości UART i IRCOM to 2Mbps.

W przypadku magistrali 1-WIRE przy każdym zboczu narastającym do bufora zapisywany jest czas trwania stanu niskiego na linii danych. Na tej podstawie odtwarzany jest przebieg wymiany informacji pomiędzy układami podpiętymi do magistrali. Aktualnie poprawnie interpretowane są dane nadawane w trybie standard (tryb overdrive nie jest obsługiwany).

Pomiar częstotliwości polega na zliczaniu liczby impulsów w określonym czasie, a dla częstotliwości poniżej 11kHz na zliczaniu cykli zegara w jednym okresie przebiegu mierzonego.

Rys.7 Różnica w wyglądzie ramki danych UART i IRCOM

Wyniki przedstawiane są zarówno w formie liczbowej, jak i graficznej (wykres w funkcji czasu). Dokładność pomiaru jest zależna od dokładności głównego oscylatora xmegi (±1%) i oscylatora RTC (±0,5%) oraz od zakresu pomiarowego (najgorzej będzie dla częstotliwości granicznej 11kHz). Ogólna dokładność nie powinna być gorsza niż ±2,5%.

Dysponują c zmierzoną wartością prądu oraz pomiarem czasu, zdecydowałem się na dodanie możliwości wyliczenia ładunku elektrycznego (całki prądu w czasie). Jednak ze względu na ograniczoną rozdzielczość pomiaru prądu (1mA) oraz akumulacje błędu przesunięcia zera ADC (offset), otrzymane wyniki należy traktować jedynie jako orientacyjne.

Wykresy przedstawiające wartości analogowe prezentują wartość uśrednioną od ostatniej aktualizacji (ciemniejszym odcieniem) oraz maksymalną (jaśniejszym odcieniem). Dzięki temu można łatwo zorientować się, kiedy zachodzi zjawisko aliasingu (fotografia 11).

Fot.11 Wykresy przedstawiające wartości analogowe

Montaż i uruchomienie monitora magistrali/modułu do pomiarów

Płytka drukowana (rysunek 8) została zaprojektowana z myślą o pracy na uniwersalnych płytkach stykowych (niewielkie wymiary, wyprowadzenia pomiarowe w rastrze 2,54mm). Elementy montowane powierzchniowo należy przylutować w pierwszej kolejności, rozpoczynając od mikrokontrolera (rozstaw wyprowadzeń to 0,8mm). Przy zachowaniu precyzji i dokładności montaż nie powinien sprawić większych trudności. Mniej doświadczonym czytelnikom zalecam poćwiczyć przed rozpoczęciem, ponieważ do wylutowania układów scalonych będzie konieczna stacja na gorące powietrze.

Rys.8 Płytka drukowana - MiniMeter (monitor magistrali i moduł do pomiarów)
MiniMeter - zdjęcie płytki

Do zaprogramowania mikrokontrolera potrzebny będzie programator z obsługą protokołu PDI (AVR-ISP mkII, AVR Dragon lub Atmel-ICE), odpowiednie wyprowadzenia są dostępne na złączu Z3. Korzystając z popularnego programu avrdude i programatora AVR-ISP mkII, należy użyć następującej komendy: avrdude -c avrisp2 -p x32e5 -U flash:w:MiniMeter-F1.hex. Dodatkowo warto jeszcze włączyć układ kontroli napięcia zasilającego (BOD) ustawiając odpowiednio FUSE5: avrdude -c avrisp2 -p x32e5 -U fuse5:w:0xeD:m.

Po prawidłowym zaprogramowaniu układ powinien od razu zacząć działać. Jeżeli na wyświetlaczu nic się nie pojawia, ale podświetlanie działa prawidłowo, może to oznaczać konieczność sprawdzenia elastycznego połączenia wyświetlacza z płytką (zebra connector). Pełną dokumentację tego projektu wraz z kodem źródłowym można znaleźć w Elportalu wśród materiałów dodatkowych do tego numeru EdW.

Możliwości zmian - moduł do monitorowania magistrali i pomiarów

Jako główne podświetlanie wyświetlacza wybrano cztery zielone diody LED. Zastosowanie diod o innym kolorze (również białych) jest możliwe, ale pociąga za sobą potrzebę doboru nowych wartości rezystorów R15–R18 (tak aby jasność diod była akceptowalna). Diody podświetlające wyświetlacz nie są w pełni zakryte przez jego obudowę, dlatego dla zwiększenia komfortu można zasłonić je odcinkiem samoprzylepnej folii aluminiowej (fotografia 12).

Fot.12 Drobne poprawki do Minimetera

Dla układu nie przewidziano żadnej obudowy, ale możliwe jest wykonanie płytki osłonowej według rysunku 9.

Rys.9 Rysunek do wykonania płytki osłonowej

Taką płytkę można zrobić np. z cienkiego laminatu bez miedzi lub tworzywa sztucznego. Przestrzeń pomiędzy płytką główną a osłonową można wypełnić silikonem lub klejem na gorąco (fotografia 13). Dodatkową zaletą kleju na gorąco jest to, że wystarczy trochę alkoholu izopropylowego i całość można bez problemu ponownie rozdzielić.

Opis
Wykaz elementów
SMD 3216 (1206):
 
R1
100mΩ ±1%
SMD 2012 (0805):
 
R2-R6, R12-R18
1kΩ
R7-R10
50kΩ ±0.1%
R11
10kΩ
R19, R20
100Ω
C1-C3
10μF
C4-C6
10nF
C7, C8
100nF
C9, C10
1μF
D6-D9
LED zielona
D10, D11
LED niebieska
F1 polyfuse
100mA
FB1-FB3
koralik ferrytowy
SMD SOD-323:
 
D10
1N4148
D2-D5
Zener 3.6V
SMD SOD-123:
 
D1
Zener 6.2V
SMD TQFP-32 7x7mm:
 
U1
ATxmega32E5
SMD SOT-23-6:
 
U2
MCP1501 (2.048V)
U4
INA181A1
SMD SOT-23-3:
 
U3
AP7333 (3.3V)
THT:
 
Z1, Z2
wtyk goldpin 1x5
SW1-SW4
mikroswitch 3x6mm
LCD1
Nokia 5110 LCD
Galeria
Do pobrania
Download icon MiniMeter - monitor magistrali i moduł do pomiarów (działanie, schematy, montaż)
Tematyka materiału: oscyloskop, PCD8544
AUTOR
Źródło
Elektronika dla Wszystkich czerwiec 2019
Udostępnij
UK Logo