Page 1

cena: 16,00 zł (w tym 8% VAT) PRICE: 8 EUR Nakład 27000 egz.

2013-06-28 08:03:20

001.indd 1


002.indd 2

2013-06-28 08:03:40


Zasilanie Moc końcówek

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

Profesjonalny zestaw lutująco-rozlutowujący dużej mocy

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

JAKOŚĆ I PRECYZJA firmy

220~240 VAC/50Hz 210ESD 100W DIA 100W HAP 80 W TWZ 100 W

Zakres temperatury Groty (standard)

210ESD 150~480 oC DIA 300~450 oC 210ESD - 44-415404 DIA - 44-915412 TWZ - 46-060102

z³ 1000 t +va

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

LF-8000

Profesjonalny zestaw lutująco-rozlutowujący Zasilanie Moc końcówek

Zakres temperatury Groty (standard)

220~240 VAC/50Hz SIA 100KT 100 W DIA 80 W HAP 80 W TWZ 2 x 50 W SIA 250~500 oC DIA 300~450 oC SIA - XY 704 DIA 44-915412 TWZ 46-060102

z³ 1150 t +va

LF-853D

Profesjonalna stacja lutująco- rozlutowywująca Zasilanie Moc końcówek

Zakres temperatury

220~240 VAC/50Hz 210ESD 100W DIA 100W SMD wylutow. 600 W 210ESD 150~480 oC SMD wyl. 100~480 oC DIA 300~450 oC

LF-3500

LF-2000

Profesjonalna stacja lutownicza

Profesjonalna stacja lutownicza

Stacja lutownicza LF-3500 Zasilanie Moc końcówki Zakres temperatur Grot (standard)

220-280V AC 50Hz 150 W 100º- 480º C 44-413590

Stacja lutownicza LF-2000 Zasilanie 220-280V AC 50Hz Moc końcówki 100 W Temperatura Grot (std)

³ 450 z +vat

z³ 1300 t +va

200º- 450º C 44-415404

³ 220 z +vat

LF-1680

8066D2-7C Profesjonalna lampa warsztatowa

Profesjonalna stacja lutownicza Stacja Zasilanie

22W, 5 dioptri

³ 300 z +vat

LF-1680 220-280V AC 50Hz

Typ końcówki

SIA 108 ESD

Moc końcówki

80 W

80 W

200º- 480º C 44-510601

200º- 450º C 46-060102

Zakres temperatur Grot (standard)

TWZ 80

LF-389D

Profesjonalna stacja lutownicza

90 z³ +vat

Zakres temperatur

³ 120 z +vat

150°C ÷ 480°C

Moc grzałki

60W

Zasilanie stacji

230V / 50Hz

Grot (standard)

44-510601

®

02-784 Warszawa, ul. Janowskiego 15 tel./fax (22) 641-15-47, 644-42-50

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

LF-8800

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl

http://www.ndn.com.pl e-mail: ndn@ndn.com.pl 003.indd 3

2013-06-28 08:03:51


OD WYDAWCY

XX lat EP

Prenumerata naprawdę warto

w roku jubileuszowym EP za darmo W 2013 roku Elektronika Praktyczna świętuje swoje dwudzieste urodziny. Najwyraźniejsze akcenty tego jubileuszu chcemy skupić w październikowym wydaniu EP. Przygotowujemy też na jesień dwa wydania specjalne EP podsumowujące 20-letni dorobek projektowy naszego pisma. Będą to na pewno bestsellery – unikalne zbiory największych hitów projektowych dwudziestolecia. To będzie wkrótce. A już teraz mamy wyjątkowy jubileuszowy podarunek dla Czytelników EP. Chcemy ofiarować egzemplarze kolejnych tegorocznych wydań EP tym Czytelnikom, którzy w najbliższym czasie wykupią przyszłoroczną prenumeratę EP. Jeśli do 31 lipca b.r. zamówisz przyszłoroczną prenumeratę EP (najwygodniej na www.avt.pl), to w bezpłatnej

prenumeracie dostaniesz cztery tegoroczne numery EP – wrześniowy, październikowy, listopadowy i grudniowy. Jeśli będziesz trochę zwlekał i w sierpniu (do 31 sierpnia) zamówisz przyszłoroczną prenumeratę EP, to dostaniesz

w prenumeracie bezpłatnej trzy tegoroczne numery EP – październikowy, listopadowy i grudniowy. Jako prenumerator będziesz korzystał z wielu przywilejów, m.in. uzyskasz

rabat 40%

na zakup wspomnianych wcześniej, unikalnych wydań specjalnych EP. Taka okazja szybko się nie powtórzy, może za kolejnych 20 lat. A EP czytać trzeba koniecznie. Jak wynika z naszych badań ankietowych tylko systematyczne czytanie EP pozwala być na bieżąco z nowinkami technicznymi oraz zapewnia ustawiczny proces dokształcania konstruktora elektronika. Wydawca 4

004_wstepniak.indd 4

Miesięcznik „Elektronika Praktyczna” (12 numerów w roku) jest wydawany przez AVT-Korporacja Sp. z o.o. we współpracy z wieloma redakcjami zagranicznymi. Wydawca: AVT-Korporacja Sp. z o.o. 03-197 Warszawa, ul. Leszczynowa 11 tel.: 22 257 84 99, faks: 22 257 84 00 Adres redakcji: 03-197 Warszawa, ul. Leszczynowa 11 tel.: 22 257 84 49, 22 257 84 60 tel.: 22 257 84 65, 22 257 84 48 faks: 22 257 84 67 e-mail: redakcja@ep.com.pl www.ep.com.pl Redaktor Naczelny: Wiesław Marciniak Redaktor Programowy, Przewodniczący Rady Programowej: Piotr Zbysiński Zastępca Redaktora Naczelnego, Redaktor Prowadzący: Jacek Bogusz, tel. 22 257 84 49 Redaktor Działu Projektów: Damian Sosnowski, tel. 22 257 84 58 Redaktor Działu Podzespołów i Sprzętu: Jerzy Pasierbiński Szef Pracowni Konstrukcyjnej: Grzegorz Becker, tel. 22 257 84 58 Menadżer magazynu Katarzyna Wiśniewska, tel. 22 257 84 65, 500 060 817 e-mail: k.wisniewska@ep.com.pl Marketing i Reklama: Bożena Krzykawska, tel. 22 257 84 42 Katarzyna Gugała, tel. 22 257 84 64 Grzegorz Krzykawski, tel. 22 257 84 60 Andrzej Tumański, tel. 22 257 84 63 Maja Gilewska, tel. 22 257 84 71 Sekretarz Redakcji: Grzegorz Krzykawski, tel. 22 257 84 60 DTP i okładka: Dariusz Welik Redaktor strony internetowej www.ep.com.pl Mateusz Woźniak Stali Współpracownicy: Arkadiusz Antoniak, Rafał Baranowski, Lucjan Bryndza, Marcin Chruściel, Jarosław Doliński, Andrzej Gawryluk, Krzysztof Górski, Tomasz Gumny, Tomasz Jabłoński, Michał Kurzela, Szymon Panecki, Krzysztof Paprocki, Krzysztof Pławsiuk, Sławomir Skrzyński, Jerzy Szczesiul, Ryszard Szymaniak, Adam Tatuś, Marcin Wiązania, Tomasz Włostowski, Robert Wołgajew Uwaga! Kontakt z wymienionymi osobami jest możliwy via e-mail, według schematu: imię.nazwisko@ep.com.pl Prenumerata w Wydawnictwie AVT www.avt.pl/prenumerata lub tel: 22257 84 22 e-mail: prenumerata@avt.pl www.sklep.avt.pl, tel: (22) 257 84 66 Prenumerata w RUCH S.A. www.prenumerata.ruch.com.pl lub tel: 801 800 803, 22 717 59 59 e-mail:prenumerata@ruch.com.pl Wydawnictwo AVT-Korporacja Sp. z o.o. należy do Izby Wydawców Prasy

Copyright AVT-Korporacja Sp. z o.o. 03-197 Warszawa, ul. Leszczynowa 11 Projekty publikowane w „Elektronice Praktycznej” mogą być wykorzystywane wyłącznie do własnych potrzeb. Korzystanie z tych projektów do innych celów, zwłaszcza do działalności zarobkowej, wymaga zgody redakcji „Elektroniki Praktycznej”. Przedruk oraz umieszczanie na stronach internetowych całości lub fragmentów publikacji zamieszczanych w „Elektronice Praktycznej” jest dozwolone wyłącznie po uzyskaniu zgody redakcji. Redakcja nie odpowiada za treść reklam i ogłoszeń zamieszczanych w „Elektronice Praktycznej”.

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:04:02


005.indd 5

2013-06-28 08:04:13


Nr 7 (247) Lipiec 2013

TripCo – samochodowy komputer pokładowy Tematyka układów poprawiających komfort użytkowania

Projekty TripCo. Komputer samochodowy ................................................................................................... 20 DSP dla każdego (1). Zestaw z STK_ADAU1701 .............................................................................. 31

samochodu cieszy się ogromnym

Dwudrożna zwrotnica aktywna ...................................................................................................... 34

zainteresowaniem. W EP komputer

Moduły rozszerzeń dla Raspberry Pi (2). Płytka do komunikacji szeregowej RaspberryPI_COM ...... 42

pokładowy, który steruje pracą klimatyzacji, pokazuje temperaturę wewnątrz pojazdu, automatycznie włącza światła, pokazuje prędkość i zużycie paliwa itd.

pocketRadio. Radioodbiornik kieszonkowy z RDS (2) ..................................................................... 39

Miniprojekty Wzmacniacz o mocy 20 W z układem LM1875 .............................................................................. 45 Wzmacniacz słuchawkowy z układem TPA6111 ............................................................................. 46 Zabezpieczenie akumulatora ołowiowego ..................................................................................... 47 Miniaturowy moduł przekaźników z RS485 ................................................................................... 48

Projekt Czytelnika Amplituner do kina domowego AMPL-008 (2) ............................................................................... 50

CRSV_2Way Dwudrożna zwrotnica aktywna Zwrotnica aktywna, może być podstawowym elementem aktywnego, dwudrożnego zestawu głośnikowego.

Wybór konstruktora TEMAT NUMERU Przegląd systemów operacyjnych dla systemów wbudowanych..................................................... 57

Notatnik konstruktora MPLAB X IDE. Nowe środowisko projektowe od Microchipa .......................................................... 66 Vamgraf – cudze chwalicie, swego nie znacie… ............................................................................. 70 Projektowanie płytek obwodów drukowanych zgodnie z wymaganiami EMC i ESD ...................... 74

Podzespoły

STK_ADAU1701 – DSP dla

Komponenty pasywne dla motoryzacji ........................................................................................... 78

każdego

Test

Analog Devices ma w ofercie

Odtwarzacz Philips DVP9000S ........................................................................................................ 85

kilkanaście procesorów

Prezentacje

sygnałowych, wśród których

Mikrokomputery firmy VIA Technology. APC8950-ROCK i APC8750 ............................................... 63

jest bardzo interesująca rodzina

Kursy

SigmaDSP. Wybraliśmy z niej

32 bity jak najprościej (1). Pierwsze kroki z modułem STM32F0DISCOVERY ................................... 81

ADAU1701 jako „serce” układu

Podstawy programowania w LabView (4).

prototypowego DSP.

C2000 Piccolo LanuchPad (5). Łatwa obsługa interfejsu I2C............................................................ 96

RaspbPI_COM – moduł komunikacji szeregowej Kontynuujemy publikację opisów modułów dla RaspberryPi.

Operacje na zmiennych znakowych, pliki tekstowe, zasady tworzenia wykresów .......................... 89

Automatyka i Mechatronika Praktyczna Pierwsze kroki z S7-1200. Współpraca z programatorem PG/PC i pierwszy program ................... 109 TEMAT NUMERU 112 Systemy operacyjne w automatyce przemysłowej ........................................................................ TEMAT NUMERU Wielowątkowość a wielordzeniowość .......................................................................................... 115

Od wydawcy .................................................................................................................................... 4 Niezbędnik elektronika ..................................................................................................................... 8

Opisujemy moduł, który umożliwia

Nie przeocz. Podzespoły ................................................................................................................. 10

nawiązanie komunikacji szeregowej

Sprzężenie zwrotne. Forum ............................................................................................................ 18

Nie przeocz. Koktajl niusów ........................................................................................................... 16

z PI poprzez I2C, UART, moduły

Info .............................................................................................................................................. 104

komunikacji radiowej Xbee,

Księgarnia wysyłkowa .................................................................................................................. 121

Bluetooth, interfejs USB itd.

Oferta........................................................................................................................................... 122

Kramik i rynek .............................................................................................................................. 117

Prenumerata ................................................................................................................................ 123 Zapowiedź następnego numeru ................................................................................................... 124

6

006_spis_tresci.indd 6

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:04:31


NO W OŚ Ć

DESIGNSPARK PCB

EWOLUCJI

CIĄG DALSZY DESIGNSPARK PCB v5 Bezpłatne narzędzie do projektowania PCB:

www.designspark.com/pcb 007.indd 7

DOSTĘPNE TYLKO W

2013-06-28 08:04:43


DZIAŁ ZAWARTOŚĆ DODATKOWEJ PŁYTY DVD

niezbędnik

elektronika 1. Altera Quartus II Web Edition v 13.0.0.156

Najnowsza wersja pakietu projektowego Quartus II firmy Altera, pozwalająca na realizację projektów w produkowanych przez tę firmę układach CPLD i FPGA. Web Edition to wersja bezpłatna, o stosunkowo niewielkich - w typowych projektach - ograniczeniach w stosunku do pełnej wersji komercyjnej.

tliwości, kodeków i wzmacniaczy audio pracujących w klasie D) z oferty firmy Cirrus Logic.

nowoczesne układy z rodziny Kinetis, wyposażone w rdzenie Cortex-M.

4. Cirrus Logic Seismic Eval GUI v2.8

Pakiet programistyczny do przygotowywania aplikacji graficznych dla procesora EVE firmy FTDI (znanej dotychczas z produkcji interfejsów USB/UART).

Pakiet oprogramowania narzędziowego zintegrowanego z GUI dla zestawu ewaluacyjnego z sensorami i system obróbki danych z systemu rejestracji sygnałów sejsmicznych.

5. Cypress PSoC Designer v5.4

2. Atmel Studio 6.1 b2562 Kolejna kompilacja pakietu Atmel Studio 6.1, w której wprowadzono wiele drobnych udoskonaleń, w tym zwiększono liczbę projektów przykładowych, zmodyfikowano (ujednolicając dla wszystkich architektur) także biblioteki.

Najnowsza wersja pakietu programistycznego PSoC Designer firmy Cypress Semiconductor, który służy do przygotowywania projektów dla wybranych rodzin mikrokontrolerów PSoC firmy Cypress.

3. Cirrus Logic FlexGUI v.8.0.0

6. Freescale CodeWarrior 10.4 SE

Pakiet narzędziowy do konfiguracji i testowania cyfrowych układów audio (przetworników A/C, C/A, regulatorów poziomu sygnału, konwerterów częstoEP 6/2013 1. ARM Development Studio 5.14 Nowa wersja pakietu DS5 firmy ARM w wersjach dla Windows oraz Linuksa. 2. ARM-MDK 4.71a Najnowsza, prawdopodobnie ostatnia z prefiksem w numerze wersji „4”, wersja niezwykle popularnego środowiska firmy ARM (Keil) dla programistów mikrokontrolerów. 3. Freescale Kinetis OSJTAG Drivers 1.10 Pakiet plików tworzących upgrade pakietu RMK-MDK. 4. Texas Instruments CCS v5.3.0.00090 Najnowsza wersja pakietu narzędziowego Code Composer Studio firmy Texas Instruments. 5. Symulator Texas Instruments Tina TI Kompletny symulator bazujący na silniku Spice, w wersji przeznaczonej dla układów analogowych firmy Texas Instruments. 6. TIVA C CMISIS libraries Zestaw bibliotek CMSIS dla mikrokontrolerów z rodziny Tiva C firmy Texas Instruments. 7. TIVA C Utility Dodatkowe pakiety bibliotek w wersji dla mikrokontrolerów Tiva C firmy Texas Instruments, wspomagających m.in. obliczenia DSP oraz matematyczne. 8. TIVAware for C series v1.0 + TIVAware for C series libraries Pakiet oprogramowania (w tym przykładowe projekty) TivaWare dla mikrokontrolerów Tiva C

8

008_niezbednik.indd 8

firmy Texas Instruments. 9. Xilinx Vivado 2013.1 Nowa wersja pakietu Vivado firmy Xilinx. EP5/2013 1. 5Spice v2.03 Najnowsza wersja popularnego analizatora i symulatora układów analogowych, bazującego na silniku Spice. 2. Analog Devices ADIsimRF v1.7 ADIsimRF to pakiet narzędziowy pozwalający przeprowadzać podstawowe obliczenia radiowych torów transmisyjnych. 3. ARM-MDK 4.70 Najnowsza, ostatnia - przed zapowiadaną wersją 5.x - wersja popularnego pakietu programistycznego firmy Keil/ARM. 4. Cedar Logic Simulator Prosty w obsłudze symulator układów logicznych. 5. DipTrace v2.3.1 Najnowsza, ewaluacyjna wersja profesjonalnego pakietu EDA. 6. LTSpice IV Symulator układów analogowych firmy Linear Technology. 7. Logicly v1.4.0 Ewaluacyjna wersja symulatora układów cyfrowych, który charakteryzuje się bogatymi bibliotekami symulowanych elementów. 8. National Instruments ADI Component Evaluator v12.0.1 Bezpłatna wersja pakietu symulacyjnego Multisim. 9. National Instruments Mutisim Ultiboard

v12.0.1 Edukacyjna wersja programu Ultiboard. 10. STMicroelectronics SPC5 Studio Najnowsza wersja bezpłatnego środowiska projektowego SPC5 Studio. 11. STMicroelectronics ST-Link v.2.5.0 Najnowsza wersja programu obsługującego programator pamięci Flash ST-Link oraz ST-Link/V2 (a także zgodnego z nimi ZL30PRG). 12. STMicroelectronics ST Toolset v29 Najnowsza wersja bezpłatnego, zintegrowanego środowiska programistycznego dla mikrokontrolerów ST7 i STM8. 13. STMicroelectronics STMStudio v3.1.1 Najnowsza wersja bezpłatnego analizatora kodu wykonywanego przez mikrokontrolery STM32 oraz STM8. 14. TI ControlSuite v3.1.3 Najnowsza wersja pakietu zawierającego m.in. zestaw bibliotek z driverami do bloków peryferyjnych mikrokontrolerów rodzin bazujących na rdzeniu C2000: Piccolo, Delfino oraz Concerto. 15. VeeCAD Strip Board Editor v2.29.0.0 Niezwykle pomysłowy edytor płytek drukowanych, bazujący na płytkach uniwersalnych. EP 4/2013 1. 5Spice v2.03 Najnowsza wersja popularnego analizatora i symulatora układów analogowych.

Najnowsza wersja bezpłatnego środowiska programistycznego CodeWarrior firmy Freescale, obsługującego większość rodzin mikrokontrolerów firmy Freescale, w tym

2. Analog Devices ADIsimRF v1.7 ADIsimRF jest pakietem narzędziowym do wykonywania podstawowych obliczeń radiowych torów transmisyjnych, składających się z maksymalnie 15 stopni. 3. ARM-MDK 4.70 Najnowsza, ostatnia - przed zapowiadaną wersją 5.x - wersja popularnego pakietu programistycznego firmy Keil/ARM. 4. Cedar Logic Simulator Prosty w obsłudze symulator układów logicznych. 5. DipTrace v2.3.1 Najnowsza, ewaluacyjna wersja profesjonalnego pakietu EDA. 6. LTSpice IV Nowa (marzec 2013) wersja symulatora układów analogowych. 7. Logicly v1.4.0 Wersja ewaluacyjna symulatora układów cyfrowych. 8. National Instruments ADI Component Evaluator v12.0.1 Bezpłatna wersja pakietu symulacyjnego Multisim wyposażonego w biblioteki modeli Spice zawierające wyłącznie elementy z oferty Analog Devices. 9. National Instruments Mutisim Ultiboard v12.0.1 Edukacyjna wersja programu Ultiboard, który jest narzędziem komplementarnym do Modelsima - służy do projektowania płytek drukowanych. 10. STMicroelectronics SPC5 Studio

Najnowsza wersja bezpłatnego środowiska projektowego SPC5 Studio. 11. STMicroelectronics ST-Link v.2.5.0 Najnowsza wersja programu obsługującego programatory pamięci Flash ST-Link oraz ST-Link/V2 (a także zgodnego z nimi ZL30PRG). 12. STMicroelectronics ST Toolset v29 Najnowsza wersja bezpłatnego, zintegrowanego środowiska programistycznego dla mikrokontrolerów ST7. 13. STMicroelectronics STMStudio v3.1.1 Najnowsza wersja bezpłatnego analizatora kodu wykonywanego przez mikrokontrolery STM32 oraz STM8. 14. TI ControlSuite v3.1.3 Najnowsza wersja pakietu zawierającego m.in. zestaw bibliotek z driverami do bloków peryferyjnych mikrokontrolerów rodzin bazujących na rdzeniu C2000: Piccolo, Delfino oraz Concerto. 15. VeeCAD Strip Board Editor v2.29.0.0 Niezwykle pomysłowy edytor płytek drukowanych, bazujący na płytkach uniwersalnych. EP 4/2013 1. Atmel Studio 6.1-2440 Najnowsza wersja środowiska programistycznego firmy Atmel. 2. AXsem AX8052 IDE Środowisko projektowe z kompilatorem SDCC dla mikrokontrolerów 8052 firmy Axsem.

3. AXsem Microlab Pakiet oprogramowania narzędziowego służącego do konfiguracji mikrokontrolerów zintegrowanych z transceiverami RF-ISM firmy Axsem. 4. AXsem ParamCalc Pakiet oprogramowania konfigurującego tor radiowy w mikrokontrolerach AX8052 dla założonych parametrów transmisji. 5. AXsem Radiolab Program narzędziowy wspomagający oprogramowanie jednoukładowego transceivera radiowego AX5043 firmy Axsem. 6. Cypress PSoC Creator 2.2 Najnowsza wersja pakietu programistycznego dla użytkowników mikrokontrolerów PSoC firmy Cypress. 7. Cypress PSoC Designer 5.3 Środowisko projektowe dla konstruktorów-programistów korzystających w swoich projektach z mikrokontrolerów PSoC. 8. Cypress PSoC Programer 3.17 Najnowsza wersja programu obsługującego programatory ISP mikrokontrolerów PSoC firmy Cypress. 9. Eagle 6.4.0 Najnowsza wersja Eagle w wersjach dla Linuksa, Windows oraz Mac. 10. Fritzing 0.7.12b Program wspomagający realizację prototypów prostych urządzeń elektronicznych. 11. FTDI VisualTFT Pakiet konfiguracyjny

7. FTDI VisualTFT v3.60

8. NXP Flash Magic v7.47 Najnowsza wersja programu Flash Magic, który jest samodzielnym programatorem mikrokontrolerów LPC1xxx/2xxx firmy NXP. Program obsługuje bootloadery wbudowane w mikrokontrolery, programuje pamięć Flash poprzez interfejs szeregowy COM.

9. SiliconLabs Precision32 IDE Najnowsza wersja kompletnego środowiska programistycznego, bazującego na IDE Eclipse i kompilatorze GCC, przystosowanego do realizacji projektów dla mikrokontrolerów Precision 32 (Cortex-M) firmy Silicon Labs.

dla nowych układów z oferty FTDI - EVE. 12. Infineon DAvE 3.1.6 Nowa wersja środowiska programistycznego firmy Infineon dla mikrokontrolerów XMC4000 i XMC1000. 13. Klipper 5.4.0 for Altium Designer Najnowsza wersja programu umożliwiającego import grafik do edytora PCB w pakiecie Altium Designer.

20. XMOS Time Composer 12.2.0 Środowisko programistyczne dla programistów piszących aplikacje dla wielordzeniowych mikrokontrolerów o małym poborze mocy, wyposażonych w rdzenie xCORE. 21. XMOS xSOFTip Explorer Pakiet bibliotek programowych z funkcjami konfigurującymi dla xCORE.

14. Microchip MPlabX 1.70 Lutowa wersja doskonale znanego pakietu MPlabX z ewaulacyjnymi wersjami kompilatorów dla mikrokontrolerów PIC.

EP3/2013 1. Altera Quartus II 12.1 Web Edition (wersja bezpłatna) Najnowsza wersja pakietu projektowego dla układów FPGA i CPLD firmy Altera.

15. NXP emwin libraries Zestaw nowych bibliotek oraz aktualizacje do środowiska emwin.

2. Drivery do ARM-MDK dla interfejsu OSJTAG Pakiet najnowszych (1.10) driverów dla pakietu ARM.

16. NXP Product Selector 2013 Off-line’owy, interaktywny selektor wyrobów firmy NXP. 17. MicroXplorer PCC Nowa wersja graficznego konfiguratora mikrokontrolerów STM32 zintegrowana z kalkulatorem Power Consuption Calculator. 18. Texas Instruments Grace Graficzny pakiet do konfigurowania mikrokontrolerów MSP430 firmy Texas Instruments. 19. Tibbo TIDE 2.50.26 Ostatnia opublikowana wersja środowiska narzędziowego z prekompilatorem do przygotowywania projektów na programowalne moduły sieciowe EM firmy Tibbo.

3. Atmel Studio 6 SP2 Najnowsza wersja zintegrowanego pakietu programistycznego dla konstruktorów korzystających z mikrokontrolerów firmy Atmel. 4. Actel/Microsemi Libero SoC 10.1 Najnowsza wersja zintegrowanego środowiska projektowego dla inżynierów realizujących projekty w układach FPGA. 5. Actel/Microsemi Libero SoC 11 beta Testowa wersja (beta) pakietu Libero, który jest zintegrowanym środowiskiem projektowym dla inżynierów realizujących projekty w układach FPGA. 6. ON Semiconductor CAN calculator Prosty w obsłudze

kalkulator magistrali CAN. 7. ON Semiconductor CompCalc 3.0 Program narzędziowy wspomagający projektowanie zasilaczy i przetwornic DC/DC. 8. ON Semiconductor Efficiency Calculator Program narzędziowy do szacowania strat mocy w tranzystorach MOSFET. 9. STMicroelectronics SPC5 Studio Zintegrowane środowisko programistyczne dla konstruktorów realizujących projekty na mikrokontrolery SPC56 z rdzeniami z serii PowerPC. 10. Texas Instruments CodeComposer 5.3.0 RC1 Najnowsza wersja zintegrowanego środowiska programistycznego Code Composer firmy Texas Instruments. EP2/2013 1. Arduino 1.0.3 Najnowsza wersja (1.0.3, grudzień 2012) kompletnego środowiska programistycznego Arduino. 2. Code Warrior 10.3 SE Specjalna, bezpłatna wersja środowiska programistycznego dla mikrokontrolerów produkowanych przez firmę Freescale. 3. LadderWork for ARM System umożliwiający przygotowywanie programów dla mikrokontrolerów LPC1769 w języku drabinkowym. 4. Lattice Diamond Win64 Najnowsza wersja pakietu Diamond firmy

Lattice (2.0.0.155). 5. Lattice Mico 2.0.1 Najnowsza wersja plików źródłowych oraz skompilowanego środowiska programistycznego dla „miękkich” rdzeni 32-bitowego procesora Mico. 6. SiLabs Precision 32 DevEnv Bezpłatne środowisko programistyczne dla 32-bitowych mikrokontrolerów z serii Precision 32 firmy SiliconLabs. 7. SiLabs QuickSense Studio Ostatnia z 2012 roku wersja pakietu testowo-analitycznego firmy SiliconLabs, wspomagającego uruchamianie klawiatur i nastawników bezstykowych. EP1/2013 1. Altium Designer Viewer Najnowsza dostępna wersja (9.3.0.19153) przeglądarki projektów przygotowywanych za pomocą Altium Designera (zgodna z AD10). 2. Digilent plug-in for Xilinx tools Wtyczki programowe umożliwiające obsługę programatorów układów CPLD i FPGA, produkowanych przez firmę Digilent. 3. Digilent Waveform Oprogramowanie zarządzające pracą oscyloskopu Analog Discovery i zestawu Electronics Explorer, służące do akwizycji i obróbki danych. 4. Eagle 6.3.0 Najnowsza rewizja znanego pakietu do projektowania PCB, w wersjach dla systemów Windows, Linuks oraz MacOS.

ELEKTRONIKAPRAKTYCZNA PRAKTYCZNA10/2012 7/2013 ELEKTRONIKA

2013-06-28 08:04:54


009.indd 9

2013-06-28 08:05:06


NIE PRZEOCZ PRZEOCZ Podzespoły NIE

nowe

podzespoły Z kilkuset nowości wybraliśmy te, których nie wolno przeoczyć. Bieżące nowości można śledzić na www.elektronikaB2B.pl

Szybkie, małostratne diody krzemowe Na konferencji Applied Power Electronics 2013 firma Infineon zaprezentowała dwie nowe rodziny szybkich, diod krzemowych Rapid 1 i Rapid 2 o  napięciu przebicia 650  V i  bardzo korzystnym współczynniku ceny do parametrów. Są to diody o  małych stratach, łagodnej charakterystyce regeneracyjnej i małej emisji elektromagnetycznej. Stanowią ogniwo pośrednie między diodami standardowymi o  niskiej częstotliwości pracy i szybkimi diodami SiC. Diody z rodziny Rapid 1 charakteryzują się niskim i stabilnym w funkcji temperatury napięciem przewodzenia wynoszącym 1,35  V. Zostały one zoptymalizowane do zastosowania w  układach zasilania z  korekcją PFC używanych w urządzeniach AGD oraz w falownikach systemów fotowoltaicznych pracujących z  częstotliwością taktowania od 18 do 40  kHz. Diody Rapid 2 charakteryzuje mały ładunek i  krótki czas regeneracji (Qrr, trr). Są one przewidziane do pracy z  częstotliwością przełączania z zakresu od 40 do 100 kHz. Ich zakres zastosowań obejmuje układy zasilania serwerów i systemów telekomunikacyjnych. www.infineon.com/rapiddiodes

Precyzyjny wzmacniacz różnicowy o składowej sumacyjnej do ±275 V INA149 to precyzyjny wzmacniacz przeznaczony do pomiaru małej składowej różnicowej występującej na tle dużej składowej sumacyjnej do ±275  V. Współczynnik CMRR tego układu wynosi aż 100 dB, co skutecznie zapobiega przenoszeniu składowej sumacyjnej na wyjście. INA149 gwarantuje zachowanie 90-decybelowego współczynnika CMRR w  zakresie temperatury otoczenia od -40 do +125°C. Przykładem REKLAMA

aplikacji może być monitorowanie prądu wyjściowego zasilaczy wysokonapięciowych i układów napędowych oraz monitorowanie napięcia akumulatora w  systemach fotowoltaicznych i  pojazdach o napędzie elektrycznym. Układ pracuje w  zakresie napięcia zasilania od ±2 do ±18  V, pobierając maksymalnie 900  mA prądu w  stanie spoczynkowym. Zawiera zabezpieczenie nadnapięciowe wejścia do ±500 V. Pozostałe parametry: - pasmo: 500 kHz; - slew-rate: 2,2 V/ms; - napięcie offsetu: maks. 1,1 mV; - dryft temperaturowy napięcia offsetu: 15 mV/°C; - błąd wzmocnienia: maks. 0,02%; - dryft temperaturowy błędu wzmocnienia: 10 ppm/°C. http://www.ti.com/product/ina149?DCMP=hpa_amp_ ina149&HQS=ina149s-pr#samples

Nowe, nieulotne pamięci FRAM 1 Mb i 2 Mb Firma Fujitsu Semiconductor oferuje dwie nowe nieulotne pamięci FRAM o  gwarantowanej niezawodności 1013 cykli odczytu/zapisu, co najmniej 10-krotnie większej od wcześniejszych wersji. MB85RS1MT i  MB85RS2MT są pamięciami o  pojemności, odpowiednio: 1  Mb (131072×8) i  2  Mb (262144×8), przeznaczonymi do zastosowań w  inteligentnych miernikach, maszynach przemysłowych i aparaturze medycznej. W porównaniu z  pamięciami EEPROM o  identycznej pojemności pobierają mniejszy nawet o  92% prąd podczas zapisu. Zapewniają 10-letni czas utrzymywania danych w matrycy. Pracują w temperaturze otoczenia od

10

010-019_newsy.indd 10

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:22


tion it: s ma for ase vi n i ore g, ple m For rderin o ate and ebg

-40 do +85°C Obie komunikują się za pomocą SPI. Są produkowane w 8-wyprowadzeniowych obudowach SOP i DIP. http://www.fujitsu.com/global/services/microelectronics/ product/memory/fram/standalone/1m-2m-spi.html

Committed to excellence

w

m/

.co

k oni utr

Podzespoły

w.r

ww

Trójwyjściowe, impulsowe, 3-megahertzowe regulatory Nowe trójwyjściowe impulsowe regulatory napięcia MIC23450 i MIC23451 firmy Micrel pracują z częstotliwością taktowania 3 MHz, umożliwiającą stosowanie miniaturowych elementów zewnętrznych. Charakteryzują się zakresem napięcia wejściowego od 2,7 do 5,5  V i  wydajnością prądową wynoszącą odpowiednio 2 A  i  1 A  na wyjście. Umożliwiają programowanie napięcia wyjściowego z zakresu od 1,0 do 3,3 V za pomocą zewnętrznych rezystorów. Zapewniają mały pobór prądu w stanie spoczynkowym (na poziomie 23  mA/kanał) oraz dużą sprawność sięgającą 81% przy prądzie wyjściowym 1 mA i ponad 93% przy pełnym obciążeniu. Trzy linie wejściowe Enable i trzy linie sygnalizacyjne Power Good umożliwiają realizację układów zasilania z sekwencyjnym załączaniem napięć. Ceny hurtowe MIC23450 i  MIC23451 wynoszą, odpowiednio: 1,28 i  1,32 USD przy zamówieniu 1000 sztuk. Układy te są produkowane w obudowach MLF zawierających odpowiednio 32 i 26 wyprowadzeń. Pracują przy dopuszczalnej temperaturze złącza od -40 do +125°C. Więcej na www.micrel.com

Wysoka jakość Światowy zasięg

Najmniejszy na świecie układ FPGA

ELEKTRONIKA PRAKTYCZNA 7/2013

010-019_newsy.indd 11

Rutronik i Yageo Rutronik oferuje ceramiczne anteny paskowe GPS/Glonass dla motoryzacji. Zostały one wypróbowane w wielu aplikacjach i dowiodły, że nie ma niczego lepszego do odbioru sygnału GPS Parametry i zalety:

REKLAMA

Lattice Semiconductor oferuje miniaturowy układ FPGA w 25-wyprowadzeniowej obudowie ucBGA o  powierzchni 2,5  mm×2,5  mm. iCE40 LP384 to najmniejszy jak dotąd układ wchodzący w  skład rodziny iCE40, wyposażony w  384 jednostki logiczne Look-Up Table (LUT), do 63 linii I/O i maksymalnie 8 par wejść różnicowych, w zależności od wariantu obudowy. Jest produkowany w technologii 40 nm. Pracuje z napięciem zasilania 1,2 V. Oprócz małych wymiarów cechuje się też małym poborem mocy wynoszącym 25 <m>W w stanie statycznym. Może znaleźć zastosowanie w przenośnym sprzęcie medycznym i audio, cyfrowych kamerach fotograficznych, e-bookach itp. Obok miniaturowej obudowy 25-wyprowadzeniowej, iCE40 LP384 jest też dostępny w  obudowach QFN-32 (5,0 mm×5,0 mm), ucBGA-49 (3,0 mm×3,0 mm) i ucBGA-81 (4,0 mm×4,0 mm). Do układów rodziny iCE40 firma Lattice oferuje oprogramowanie projektowe iCEcube2 z narzędziami do syntezy logicznej i symulacji. http://www.latticesemi.com/products/cpld/ice40series/index.cfm

ƒ ƒ ƒ ƒ ƒ

Odbiór sygnałów z satelitów GPS i Glonass Podwyższona precyzja lokalizacji Duży zysk energetyczny Możliwość lutowania wyprowadzeń Częstotliwości: 1575/1602 MHz

Aplikacje: ƒ Systemy nawigacyjne ƒ Telematyka ƒ Zarządzanie flotą

Doradztwo | Komponenty | Logistyka | Wsparcie 11 Tel. +48 32 461 2000 www.rutronik.com 2013-06-28 08:05:23


NIE PRZEOCZ

Tanie 32-bitowe mikrokontrolery o poborze prądu 110 mA/MHz Renesas Electronics dostarcza pierwsze wersje próbne nowej serii tanich, 32-bitowych mikrokontrolerów RX100 o  małym poborze mocy, zaprojektowanych na rynek systemów embedded. Są to układy z  rdzeniem RX wykonywane w procesie technologicznym 130 nm, wyposażone w pamięć Flash o pojemności od 8 do 128 kB, taktowane zegarem do 32 MHz i zapewniające moc obliczeniową 1,56 DMIPS/MHz. Pobierają bardzo mały prąd ze źródła zasilającego, wynoszący 110 mA/MHz w stanie aktywnym i 350 nA w trybie standby, odpowiadający mikrokontrolerom 8-bitowym. Mogą być stosowane wszędzie tam, gdzie kluczową cechą jest jak najmniejszy pobór mocy. Przykładem mogą tu być czujniki i akcesoria medyczne. Rozpoczęcie produkcji masowej mikrokontrolerów RX100 zaplanowano na ostatni kwartał 2013 r. W ofercie Renesas znajdują się też mikrokontrolery RX klasy high-performance wprowadzonej wcześniej na rynek serii RX600. Są one produkowane w technologii 40 nm, zawierają do 8 MB pamięci Flash i pracują z częstotliwością taktowania do 120 MHz. Obie serie są wzajemnie kompatybilne pod względem programowym i sprzętowym. Więcej na www.renesas.eu

wnętrznej struktury półprzewodnikowej i pól na płytce drukowanej realizowanymi za pomocą struktur solder ball o małej indukcyjności i dużej skuteczności odprowadzania ciepła. Kinetis KL02 bazuje na jednostce obliczeniowej ARM Cortex-M0+ taktowanej zegarem 48 MHz. Zawiera m.in. 32 kB pamięci Flash i 4 kB pamięci RAM, 12-bitowy przetwornik A/C, komparator analogowy z 6-bitowym przetwornikiem C/A, porty UART, SPI, 2 x I²C oraz zestaw timerów. Pracuje w zakresie napięcia zasilania 1,71...3,6 V i w zakresie temperatur otoczenia od -40 do +85°C. Sugerowana cena hurtowa Kinetis KL02 (ozn. MKL02Z32CAF4R) wynosi 0,75 USD przy zamówieniach 100 tys. sztuk. Platforma deweloperska FRDM-KL02 Freescale Freedom dla tego układu ma być dostępna w lipcu b.r. http://www.freescale.com/webapp/sps/site/prod_summary. jsp?code=KL02

Optyczny czujnik zbliżeniowy dla smartfonów VL6180 to pierwszy optyczny czujnik zbliżeniowy nowej rodziny układów FlightSense, wykorzystujących zasadę pomiaru odległości od obiektu poprzez pomiar czasu przejścia światła między czujnikiem i najbliższym obiektem w zasięgu. Stosowana w poprzednich typach czujników zasada pomiaru intensywności światła odbitego wiązała się z błędami pomiaru wynikającymi z różnych kolorów i struktur powierzchni obiektów. REKLAMA

Najmniejszy mikrokontroler z rdzeniem ARM Kinetis KL02 to miniaturowy mikrokontroler ARM opracowany przez firmę Freescale, bijący dotychczasowy rekord pod względem powierzchni obudowy o  25%. Jest oferowany w  obudowie CSP o  wymiarach 2,0  mm×1,9  mm×0,4 mm z  połączeniami weREKLAMA

12

010-019_newsy.indd 12

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:23


PodzespoÅ&#x201A;y

ELEKTRONIKA PRAKTYCZNA 7/2013

010-019_newsy.indd 13

13

2013-06-28 08:05:24


NIE PRZEOCZ

VL6180 został zaprojektowany do aplikacji w smartfonach, gdzie dzięki zwiększonej precyzji pomiaru pozwala zmniejszyć współczynnik przypadkowo rozłączanych rozmów. Zawiera emiter podczerwieni generujący serię impulsów, szybki detektor i  elektroniczny układ pomiarowy precyzyjnie mierzący różnicę czasu między impulsem generowanym i odbitym. VL6180 łączy w sobie funkcje wspomnianego czujnika odległości z czujnikiem oświetlenia zewnętrznego i emiterem podczerwieni. Jest produkowany w  12-wyprowadzeniowej obudowie QFN. Czujnik światła charakteryzuje się zakresem pomiarowym od 0,0046 do 95 klx. Zawiera 16-bitowe wyjście wykalibrowane w  luksach i  umożliwia zaprogramowanie jednej z  8 dostępnych wartości wzmocnienia. Pozostałe parametry: - zasięg pomiaru: 0...100 mm; - długość fali emitera IR: 850 nm; - interfejs: I²C 400 kHz; - zasilanie: 2,5...3,0 V; - pobór prądu: 250 mA  w  stanie aktywnym i  <1 mA  w  trybie standby; - wymiary: 4,8 mm×2,8 mm×1,0 mm; - zakres temperatury pracy: -20...+70°C. http://www.st.com/web/catalog/mmc/FM132/SC626/PF258302

REKLAMA

Miniaturowy 14-bitowy przetwornik A/C SAR/4,5 Mbps Oferta przetworników A/C firmy Linear Technology powiększyła się o  miniaturowy, 14-bitowy przetwornik A/C z  sukcesywną aproksymacją LTC2314-14 jest oferowany w obudowie TSOT-23-8 o powierzchni 8 mm². Charakteryzuje się on maksymalną szybkością

14

010-019_newsy.indd 14

próbkowania 4,5 Mbps i nie wykazuje gubienia kodów. Zawiera źródło napięcia referencyjnego 2,048V/4,096 V o typowym współczynniku temperaturowym 7  ppm/°C (maks. 20 ppm/°C). Pracuje z  napięciem zasilania 3 lub 5  V, pobierając odpowiednio 18 i  31 mW mocy w  stanie aktywnym. Komunikacja z  mikrokontrolerem odbywa się poprzez interfejs SPI, przy czym stopień wyjściowy jest zasilany z  odrębnego źródła 1,8...5 V, co pozwala na zastosowania w  systemach wielonapięciowych. Ze względu na mały pobór mocy i miniaturową obudowę LTC2314-14 jest polecany do zastosowań w urządzeniach bateryjnych. W ofercie Linear Technology jest dostępny podobny przetwornik o  oznaczeniu LTC2315-12, kompatybilny z  LTC2314-14 pod względem rozkładu wyprowadzeń i programowym. Charakteryzuje się on 12-bitową rozdzielczością i maksymalną szybkością próbkowania 5 MSps. Pozostałe parametry LTC2314-14/LTC2315-12: - SNR: 77,5/73 dB; - INL: ±3,75/±1,25 LSB; - DNL: ±0,99/±0,99 LSB; - zakres temperatury pracy: -40...+125°C. Ceny hurtowe LTC2314-14 i LTC2315-12 wynoszą, odpowiednio: 9,52 i  5,17 USD przy zamówieniach 1000 sztuk. Producent oferuje płytkę demonstracyjną dla przetworników LTC2314 (ozn. DC1563A). http://www.linear.com/product/LTC2314-14

Dwuwyjściowy sprzęgacz optyczny 1 A do układów napędowych ACPL-339J to zaawansowany dwuwyjściowy sprzęgacz optyczny o  wydajności prądowej 1 A przeznaczony do sterowania tranzystorów buforowych n-MOS/p-MOS. Zawiera wewnętrzny aktywny układ czasowy zapobiegający równoczesnemu wprowadzeniu w stan przewodzenia obu tranzystorów wyjściowych. Został zaprojektowany w sposób umożliwiający współpracę z  tranzystorami MOSFET o  różnych dopuszczalnych prądach drenu. Pozwala to na stosowanie pojedynczej platformy sprzętowej dla różnych projektów i  wymianę jedynie tranzystorów buforowych MOSFET oraz tranzystorów przełączających MOSFET/ IGBT w zależności od przewidywanej mocy wyjściowej. ACPL-339J znajduje zastosowanie głównie w  systemach napędowych i konwersji mocy. Poza opisanymi wyżej funkcjami, zawiera układ przeciwdziałający nasyceniu zewnętrznego tranzystora IGBT, zabezpieczenie podnapięciowe, układ „miękkiego wyłączania” tranzystora IGBT i  izolowane wyjście sygnalizacyjne Fault z  otwartym kolektorem. Charakteryzuje się napięciem izolacji VIORM równym 1414 VP-P zgodnie z  IEC/ EN/DIN EN 60747-5-5. Cena hurtowa układu wynosi 4,25 USD przy zamówieniach 10 tys. sztuk. http://www.avagotech.com/pages/en/optocouplers_plastic/ plastic_integrated_gate_drive_optocoupler/acpl-339j-000e/

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:25


NIE Podzespoły PRZEOCZ

koktajl

niusów

Microsoft i Foxconn podpisały umowę patentową Microsoft poinformował w  kwietniu, że zawarł ważną na cały świat umowę patentową z Hon Hai Precision, znanym na rynku pod nazwą Foxconn - globalnym liderem produkcji EMS. Według Microsoftu umowa obejmuje szeroki wachlarz patentów Microsoftu na urządzenia z systemami operacyjnymi Android i Chrome OS, w tym smartfony, tablety i  telewizory. Wcześniej Microsoft zapowiedział

pozwy przeciwko dostawcom OEM telefonów, w związku z domniemanym naruszaniem jego ogromnego zbioru własności intelektualnej na oprogramowanie. Opłaty licencyjne od telefonów bazujących na Androidzie już zgodziły się płacić firmy takie jak HTC, Acer, LG Electronics i Samsung. Motorola Mobility, obecnie oddział Google’a, wybrała inną drogę i zamiast ponosić opłaty aktualnie procesuje się o patenty z Microsoftem. Założyciel firmy analitycznej Tirias Research Jim McGregor powiedział, że Microsoft zaczyna osiągać sukces, zmuszając firmy produkujące elektronikę użytkową na kontrakt do podpisywania umów licencyjnych w  obawie przed procesami sądowymi. „Niestety producenci kontraktowi i firmy ODM znaleźli się w ogniu krzyżowym. Po prostu muszą mieć takie zabezpieczenie prawne, aby uniknąć pozwów”, powiedział McGregor. W  fabrykach Foxconna, wytwarzającego dla Apple’a  iPhone’y i  iPady, powstaje ponad 40% światowej elektroniki użytkowej.

Murata i Beta Layout oferują usługi produkcji płytek PCB z darmowym układem RFID Murata i europejski dostawca modułów RFID, Beta Layout, ogłosili w kwietniu usługę testowej produkcji płytek prototypowych z montażem własnego komponentu RFID. Beta Layout zapewnia wbudowanie

REKLAMA

ELEKTRONIKA PRAKTYCZNA 7/2013

010-019_newsy.indd 15

15

2013-06-28 08:05:25


NIE PRZEOCZ

w płytkę PCB układu RFID UHF opartego na rozwiązaniu Magicstrap Muraty w  ramach standardowych zamówień na produkcję prototypową w ilości do 50 sztuk płytek bez dodatkowej dopłaty. Umożliwia to producentom elektroniki walkę z podróbkami poprzez możliwość identyfikacji płytki. Dzięki RFID płytkę można śledzić na każdym etapie łańcucha dostaw, co wspomaga różne działania podejmowane dla ochrony marki oraz przeciw rozprowadzaniu podzespołów podrobionych. Produkcja prototypowa i montaż modułu RFID jest dostępna od kwietnia br. przez sześć miesięcy.

Plessey Semiconductor rozpoczął produkcję testową LED na krzemie Zgodnie z zapowiedzią Plessey Semiconductor rozpoczął produkcję diod elektroluminescencyjnych na azotku galu na podłożach krzemowych. Firma poinformowała w  kwietniu br., że jest pierwszym światowym producentem LED na 150-milimetrowych płytkach z  wykorzystaniem technologii azotku galu na krzemie (GaN-on-silicon). Produkcję w tej technologii Plessey rozpoczął od diod o jasności 2 lumenów przeznaczonych do lampek kontrolnych i podświetlania, ale jeszcze w tym roku firma planuje zaoferować oświetleniowe żarówki diodowe. Pierwsze oferowane LED-y mają wymiary 3,5×2,5 mm i  są produkowane w  angielskiej fabryce firmy w  Plymouth. Według Plessey’a  szybki czas fabrycznego wykonania LED-ów daje znaczną przewagę kosztową nad rozwiązaniami opartymi na szafirze i węgliku krzemu, ale zapewnia podobną jakość. Początkowo do nakładania azotku galu na płytki krzemowe wykorzystywano tylko jeden reaktor MOCVD i powstawało około 500 płytek miesięcznie, Plessey chce jednak zwiększyć liczbę reaktorów MOCVD do dziesięciu. Technologia GaN-on-silicon powstała na Uniwersytecie Cambridge, gdzie specjalnie w  celu jej komercjalizacji założono firmę CamGaN, przejętą przez Plessey’a w lutym 2012 r. Plessey pracuje obecnie nad możliwością produkcji diod w tej technologii na płytkach 200-milimetrowych. Firma dysponuje w  Plymouth także 200-milimetrową linią produkcyjną i, według jej przedstawicieli, reaktory dają się przeskalować na płytki o wymiarze 200 mm.

Kiepskie wyniki skłaniają Fujitsu i Panasonica do rozmów o fuzji oddziałów produkcyjnych Dostawcy półprzewodników Fujitsu i Panasonic są bliscy finalizacji fuzji swoich oddziałów produkcyjnych układów, które przechodzą

16

010-019_newsy.indd 16

kłopoty finansowe, poinformował japoński nadawca radiowo-telewizyjny NHK. Obie firmy mają uruchomić wspólny projekt produkcyjny do marca 2014 r. Przedsięwzięcie może uzyskać wsparcie jednego z banków współfinansowanych przez rząd Japonii, Innovation Network Corp. of Japan (INCJ), który w  roku ubiegłym wsparł finansowo Renesasa. Obie firmy rozmawiają także z Bankiem Rozwoju Japonii na temat potencjalnej inwestycji o  wartości setek mln dol. Przedstawiciele Fujitsu zaprzeczyli jednak, że do fuzji miałoby dojść w najbliższym czasie. Według nich jak dotąd nie zapadły w tej sprawie żadne decyzje. Negocjacje Fujitsu i Panasonica oraz Renesasa odnośnie możliwej fuzji oddziałów półprzewodnikowych systemów LSI rozpoczęły się ponad rok temu. W  planach zakładano rozdzielenie projektowych i  produkcyjnych części trzech firm oraz wyodrębnienie filii produkcyjnych układów SoC i układów systemowych (system LSI chip), aby następnie utworzyć z nich produkcyjną spółkę joint-venture. Według doniesień prasowych za przekazanie części swoich fabryk Renesas mógł otrzymać od INCJ 1,9 mld dol. Renesas wciąż zmaga się z restrukturyzacją – w jesieni 2012 r. firma zmuszona była do redukcji 8 tysięcy miejsc pracy, a na początku br. planowała zwolnienia kolejnych 3 tysięcy osób właśnie w  drodze sprzedaży części firmy. Około 150 mln dol. za łącznie 6-procentowy udział w Renesasie miało przeznaczyć jego kilku głównych klientów, w tym Toyota, Nissan i Panasonic. W ostatnim czasie również Fujitsu zdecydowało się zwolnić 2 tysiące pracowników. Z informacji podanych przez NHK wynika, że Fujitsu i Panasonic są także zainteresowane korzystaniem z usług produkcyjnych TSMC – czołowego na świecie dostawcy usług foundry.

BGK finansuje firmy z innowacjami technologicznymi W  ramach Funduszu Kredytu Technologicznego, zarządzanego przez Bank Gospodarstwa Krajowego, podpisano już umowy o  wartości ponad 1 mld złotych. Pieniądze trafiły do firm wdrażających innowacyjne technologie. Premia technologiczna, czyli dofinansowanie inwestycji finansowanych kredytem technologicznym, jest przyznawana w latach 2009-2013, a będzie wypłacana do końca 2015 roku. Dla przedsiębiorców oznacza to spłatę części kapitału kredytu zaciągniętego w  jednym z  20. banków komercyjnych współpracujących z BGK. Bank zarządza Funduszem Kredytu Technologicznego na zlecenie Ministerstwa Gospodarki. FKT dysponuje jeszcze kwotą 409 mln euro na lata 2007-2013 i, zgodnie z szacunkami BGK, wszystkie środki przeznaczone na realizację programu zostaną wykorzystane. Jak dotąd BGK dofinansował 475 inwestycji technologicznych kwotą prawie 1,2 mld zł. Do zakontraktowania pozostało jeszcze ok. 600 mln zł. Ubiegłoroczny konkurs był ostatnim w aktualnej perspektywie finansowej UE. Zakończenie rozpatrywania wniosków przewidziano na przełom maja i czerwca br.

Energa wymieniła w Kaliszu liczniki elektryczne na inteligentne Energa Operator zakończyła instalację liczników zdalnego odczytu na terenie Kalisza. Wymiana liczników objęła wszystkie tamtejsze gospodarstwa domowe, co oznaczało montaż blisko 50 tys. urządzeń. Owe blisko 50 tys. inteligentnych liczników zamontowane w Kaliszu to prawie połowa z ponad 100 tys. takich urządzeń wymienionych na terenie działania Energi Operatora. „Wprowadzenie inteligentnego opomiarowania jest najważniejszym projektem modernizacyjnym dla naszej spółki, a  także największym i najbardziej zaawansowanym tego typu przedsięwzięciem ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:26


Koktajl Podzespoły niusów Radmor i Centrum Techniki Morskiej beneficjentami offsetu za modernizację okrętów Marynarki Wojennej

w Polsce. Instalacja blisko 50 tysięcy nowych liczników wiązała się m.in. z modernizacją stacji energetycznych w mieście. Łącznie zmodernizowaliśmy blisko 300 stacji średniego i  wysokiego napięcia”, powiedział prezes Energi Operatora Rafał Czyżewski. Firma podała, że obecnie nowe liczniki kaliskie wykorzystywane są do zdalnego odczytu zużycia energii i fakturowania, ale ciągle jeszcze w znanych mieszkańcom cyklach dwumiesięcznych. W „niedalekiej przyszłości” rozliczenia mają być oparte o bieżące zużycie energii i bardziej dopasowane do oczekiwań klientów. Energa kończy obecnie prace nad udostępnieniem klientom w Internecie portalu do obserwacji ich zużycia energii. Wówczas mieszkańcy Kalisza będą mogli prześledzić, ile energii zużywają w  ciągu dnia, dzięki temu korzystać z  niej bardziej świadomie, ograniczać wysokość rachunków, a  ponadto będą mogli m.in. porównać swoje zużycie energii ze średnim dla wybranej przez nich grupy taryfowej.

Umowa offsetowa z Thales Nederland na modernizację trzech okrętów polskiej Marynarki Wojennej została zrealizowana – skorzystały z  niej m.in. Radwar i  Centrum Techniki Morskiej. Firma dostarczyła uzbrojenie i  sprzęt wojskowy do polskich okrętów klasy Orkan. Umowę offsetową podpisano pod koniec 2001 r. Wartość offsetu wyniosła według ministra Bogdana 80 mln zł, więcej niż zapisano w umowie. Thales w ramach wykonania umowy przekazał gdyńskiemu Radmorowi technologię nowoczesnych radiostacji, a  Centrum Techniki Morskiej - również z Gdyni - zostało wyszkolone, by rozwijać oprogramowanie operacyjne Thalesa do wykorzystania w militarnych systemach taktycznych. Z  umowy skorzystały też Stocznia Marynarki Wojennej oraz spółki WB Electronics, Enamor i Storsack Polska. Zdaniem prezes Centrum Techniki Morskiej Andrzeja Kiliana, inwestycje takie to nie tylko przekazana wiedza i  umiejętności, ale też dostęp do rynków zbytu. Pozwala to na sprzedaż produkowanego w  Polsce oprogramowania, m.in. do systemów kierowania ogniem, rakiet ziemia powietrze, do sonarów, wyrzutni pocisków i torped, systemów rozpoznania statków dla klientów na całym świecie, m.in. do Grecji, Turcji, Chile, Kolumbii, Indonezji i  Omanu. Z  kolei Radmor od początku programu offsetowego wyprodukował 2,5 tys. radiostacji nowej generacji i w najbliższych latach zamierza podwoić tę liczbę.

REKLAMA

ELEKTRONIKA PRAKTYCZNA 7/2013

010-019_newsy.indd 17

17

2013-06-28 08:05:26


NIE PRZEOCZ

 forum w Internecie 

forum.ep.com.pl Uwaga: pełne kody źródłowe, rysunki i zdjęcia są dostępne na stronie internetowej forum.ep.com.pl

Ciepło wytwarzane przez komputer # Witam. Muszę zrobić projekt chłodzenia komputera za pomocą cieczy. Jak obliczyć ciepło Q wydzielane przez podzespoły komputera, co za tym idzie, ciepło wytwarzane przez cały komputer? bartosx # Trochę nielogiczne pytanie... W komputerze, tak jak w innej maszynie wszystkie elementy wydzielają ciepło (tego ciepła może być więcej albo mniej, dlatego też chłodzi się tylko te układy bądź podzespoły, które są narażone na uszkodzenie termiczne). Co do ciepła wydzielanego przez cały komputer, to osobiście wykonałbym pomiar mocy czynnej (owa wartość jest ściśle związana z wydzielanym ciepłem). Oczywiście należy też pamiętać o tym, iż moc pobierana przez komputer nie jest jednoznacznie ustalona, co z kolei oznacza iż jest zależna od innych czynników procesowych... Zatem ciepło wydzielane przez cały komputer poniekąd winno się liczyć z maksymalnego obciążenia procesów systemowych + wszystkie dodatkowe urządzenia w stanie aktywnym. (Do takiej sytuacji dochodzi rzadko, aczkolwiek jeśli mowa o systemie chłodzenia, to winien on posiadać zdolność odprowadzenia ciepła w takiej okoliczności). rafal.220 # A jeżeli chodzi o same podzespoły? Czyli jak obliczyć ilość wydzielanego ciepła przez np. Kartę graficzną? Projekt nie będzie miał zastosowania w praktyce więc chodzi tu o czysto teoretyczne wyliczenia ( nie muszą być idealnie dokładne). bartosx # Weź termometr (najlepiej na podczerwień) i po prostu zmierz temperaturę. ECC88 # rafal.220 napisał(a):Co do ciepła wydzielanego przez cały komputer, to osobiście wykonał bym pomiar mocy czynnej... Ciekawe jak Ty chcesz to zrobić, biorąc pod uwagę, że komputery są zasilane prądem stałym. Zasilacz to tylko konwerter zasilania i równie dobrze można go w takiej formie wyeliminować z rozważań jako część KOMPUTERA - vide laptop zasilany z akumulatora. Co do termometru, to raczej zmierzy temperaturę a nie ciepło. Pytanie, do czego ma tyć ten projekt? Bo widzę 3 wyjścia (od najłatwiejszego): 1) Przyjąć do obliczeń maksymalną moc zasilacza, wówczas będziesz miał co najwyżej zmienny zapas (zależnie od chwilowego obciążenia), ale tej mocy układ przekroczyć nie może. 2) Liczyć dla każdego podzespołu osobno... w sieci są kalkulatory mocy pobieranych przez typowe podzespoły. Są również podawane tzw powszechnie podawane TDP dla procesorów, mostków oraz gpu... przeglądnij sobie opisy/specyfikacje/porównania. 3) Obliczać precyzyjnie... i tu właściwie nie mam prostej recepty, bo jest to proces na tyle złożony, że nie chce mi się nawet rozważać wszystkich zmiennych. pajaczek # pajaczek napisał(a):rafal.220 napisał(a): Co do ciepła wydzielanego przez cały komputer, to osobiście wykonał bym pomiar mocy czynnej... Ciekawe jak Ty chcesz to zrobić, biorąc pod uwagę że komputery są zasilane prądem stałym (Zasilacz to tylko konwerter zasilania i równie dobrze można go w takiej formie wyeliminować z rozważań jako część KOMPUTERA - vide laptop zasilany z akumulatora). (…) A czy spadki napięcia w prądzie stałym nie są związane z pobieraną mocą, która to z kolei odpowiada za wydzielane ciepło? Poleciłem pomiar mocy czynnej z tego względu że taki komputer pobiera też z sieci moc bierną, a sugerowanie się samą mocą pozorną wprowadzi określony błąd w obliczeniach. bartosx napisał(a):A jeżeli chodzi o same podzespoły? Czyli jak obliczyć ilość wydzielanego ciepła przez np. Kartę graficzną? To zadanie jest trudne do rozwiązania, ponieważ nie wiemy jaką energię zużywają pozostałe podzespoły. (być może pomocną okaże się DTR samej karty, w której winien być zawarty bilans energetyczny w różnych trybach pracy takiej karty. Jeśli nie posiadamy żadnych informacji na temat urządzenia, to zawsze możemy zarejestrować widmo z precyzyjnej kamery termowizyjnej, i na jego podstawie obliczyć ilość wydzielanego ciepła w określonym trybie pracy takiej karty. rafal.220 # rafal.220 napisał(a): (…) A czy spadki napięcia w prądzie stałym nie są związane z pobieraną mocą, która to z kolei odpowiada za wydzielane ciepło ?? Poleciłem pomiar mocy czynnej z tego względu że taki komputer pobiera też z sieci moc bierną, a sugerowanie się samą mocą pozorną wprowadzi określony błąd w obliczeniach. No to Ci tłumaczę, że równie dobrze można ten komputer podpiąć do zasilania akumulatorowego czy jakiegoś innego źródła prądu stałego, nie będzie żadnej mocy czynnej/biernej/ pozornej... będzie moc pobierana ze źródła. Czy to oznacza że nie wydzieli się ciepło? Moc pozorna pobierana przez komputer jest związana ze sposobem transformacji zasilania przez zasilacz, i tylko on wpływa na ten współczynnik... Ciepło jest jak najbardziej powiązane z pobieraną mocą... A spadki napięcia na czym? Myślisz o sprawności przetwornic zasilających? No dobrze... może byłbym skłonny przyznać że ze względu na dyskretny charakter pracy maszyn cyfrowych pojawiają się jakieś fluktuacje, ale czy wystarczy to by określać moc czynną? A tym bardziej ją zmierzyć (czy dokładniej rozróżnić moc czynną i pozorną jeżeli już tak rozbijamy). Czym chcesz to zmierzyć, bo wchodzimy w zakresy MHz czy wręcz GHz? A pomysł z termometrem dobry... o ile będziemy również rejestrować temperaturę otoczenia, bo ona również wpłynie na zarejestrowane wyniki temperatury podzespołów. pajaczek # pajaczek napisał(a):A spadki napięcia na czym? Myślisz o sprawności przetwornic zasilających? Przetwornice to są groszowe sprawy. Pisząc o sprawności mam na myśli tzw. martwe czasy

18

010-019_newsy.indd 18

tranzystorów... Przecież taki tranzystor w czasie zmiany stanu logicznego wydzieli określone ciepło będące wynikiem przejścia z 0  1 bądź z 1  0. Teraz pomnóż to sobie przez ilość tranzystorów, do tego rozważ częstotliwość ich pracy oraz prąd potrzymania stanu logicznego, jeśli mowa o strukturze TTL bądź wartość energii potrzebnej do nasycenia jeśli mowa o CMOS. pajaczek napisał(a):Moc pozorna pobierana przez komputer jest związana ze sposobem transformacji zasilania przez zasilacz, i tylko on wpływa na ten współczynnik... Co prawda, w zasilaniu prądem stałym trudno jest mówić o mocy pozornej, aczkolwiek są jeszcze tzw. chwilowe wypadkowe, których watomierz nie zmierzy. (owe wartości można pominąć ze względu na niewielką wartość). rafal.220 # rafal.220 napisał(a): Pisząc o sprawności mam na myśli tzw. martwe czasy tranzystorów... Przecież taki tranzystor w czasie zmiany stanu logicznego wydzieli określone ciepło będące wynikiem przejścia z 0  1 bądź z 1  0 Tak. Tylko to nie ma nic wspólnego z mocą czynną (czy bierną), moc ta jak wiemy związana jest z kątem przesunięcia napięcie/prąd na indukcji/pojemności... tranzystor w tym zakresie nie jest wszak elementem indukcyjnym... zmienia się rezystancja (kanału bądź złącza PN - ale na razie nie wchodźmy w szczegółowe teorie) – no chyba że będziesz liczyć pojemności bramki (przy milionach bramek sumaryczna pojemność może już robić wrażenie). rafal.220 napisał(a):oraz prąd potrzymania stanu logicznego jeśli mowa o strukturze TTL bądź wartość energii potrzebnej do nasycenia jeśli mowa o CMOS. No tak... Statycznie, tym bardziej nie ma mowy o mocy pozornej, pojemności bramki się nie przeładowują, reszta to rezystancja, gdzie tu przesunięcie? rafal.220 napisał(a):Co prawda w zasilaniu prądem stałym trudno jest mówić o mocy pozornej, aczkolwiek są jeszcze tzw. chwilowe wypadkowe których watomierz nie zmierzy. (owe wartości można pominąć ze względu na niewielką wartość). Załóżmy, że są... Ponawiam więc pytanie, czym w takim razie chcesz to zmierzyć? Wszak namawiałeś do pomiaru. Ale po co chcesz mierzyć wartości chwilowe (sugerujmy się tym co wskaże watomierz)? rafał.220 # rafal.220 napisał(a):Autor pragnął aby obliczyć moc pobieraną przez cały komputer... (nie pisał o laptopach) Tak dokładnie to pisał o cieple a nie o mocy, ale ok... nie będę się czepiał .To da się przeliczyć, jeśli poznamy czas pracy. Ale laptop to też komputer, czyż nie? Tyle że czasem pracujący bez zasilacza sieciowego... a że nie było wspomniane, jaki to komputer, to dlaczego zakładasz że wyłącznie działający z zasilaczem sieciowym (wykluczasz z tego laptopy)? Dalej... W pierwszym poście mamy, że: bartosx napisał(a):projekt chłodzenia komputera za pomocą cieczy. Jak obliczyć ciepło Q wydzielane przez podzespoły komputera Poza tym, chłodzenie cieczą zasilacza... Niby można, ale raczej się tego nie praktykuje. rafal.220 napisał(a):Chyba jest oczywiste, że pod uwagę bierzemy też i zasilacz. (skoro cały komputer, to cały) Ok... to ja biorę pod uwagę tablet... to też cały komputer... działa „z akumulatora”. Palmtop... j/w. Raspberry Pi. rafal.220 napisał(a):Czy ja gdziekolwiek pisałem o jakimś przesunięciu w prądzie stałym? (kolory tekstu wskazują na pewne spójności określonych zależności) Jawnie... nie, ale pisałeś o mocy czynnej i biernej... to przytocz mi tutaj proszę wzory na moc czynna i na moc bierną... Ps. Już samo określenie WATOMIERZA sugeruje moc czynną... w końcu tylko tą mierzymy w watach. Na samym początku sugerowałeś różnicę pomiędzy mocą czynną i pozorną, to ja się pytam czym chcesz zmierzyć różnicę tych mocy przy charakterze obciążenia jakim jest przeciętny komputer (czy tutaj niech będzie, zasilacz komputerowy, nawet załóżmy że pozbawiony układów PFC)? pajaczek # pajaczek napisał(a):Tak dokładnie to pisał o cieple a nie o mocy, ale ok... nie będę się czepiał To da się przeliczyć (jeśli poznamy czas pracy). Ale laptop to też komputer, czyż nie? Tyle że czasem pracujący bez zasilacza sieciowego... a że nie było wspomniane jaki to komputer, to dlaczego zakładasz że wyłącznie działający z zasilaczem sieciowym (wykluczasz z tego laptopy)? Ale co za różnica? Urządzenie, tak czy inaczej, pobierze określoną moc, bez względu na to z czego jest zasilane, a skoro mowa o całym komputerze, to należy też wliczyć straty mocy w samym zasilaczu, bo w końcu z samych akumulatorów to długo nie pociągnie... pajaczek napisał(a):Ok... to ja biorę pod uwagę tablet... to też cały komputer... działa „z akumulatora”. Palmtop... j/w. Raspberry Pi No i jak długo będzie Ci działać? Prędzej czy później i tak podłączysz go do sieci, a wtedy wliczysz straty na samej przetwornicy + określony czas na naładowanie akumulatora + energię do zasilenia urządzenia... Pewnych rzeczy nie przeskoczysz.. pajaczek napisał(a):Jawnie... nie, ale pisałeś o mocy czynnej i biernej... to przytocz mi tutaj proszę wzory na moc czynna i na moc bierną... PS. Już samo określenie WATOMIERZA sugeruje moc czynną... w końcu tylko tą mierzymy w watach. Na samym początku sugerowałeś różnicę pomiędzy mocą czynną i pozorną, to ja się pytam czym chcesz zmierzyć różnicę tych mocy przy charakterze obciążenia jakim jest przeciętny komputer (czy tutaj niech będzie, zasilacz komputerowy, nawet załóżmy że pozbawiony układów PFC)? Te wzory w prądzie stałym nie mają sensu, aczkolwiek moc pobieraną przez urządzenie podaje się w watach, z tym że w prądzie zmiennym dochodzi Ci jeszcze współczynnik kąta w. rafal.220

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:27


SPRZĘŻENIEPodzespoły ZWROTNE # rafal.220 napisał(a):Te wzory w prądzie stałym nie mają sensu, aczkolwiek moc pobieraną przez urządzenie podaje się w watach, z tym że w prądzie zmiennym dochodzi Ci jeszcze współczynnik kąta w No to skoro nie mają sensu, to pytam jeszcze raz, po co tak usilnie forsujesz podział na moce czynną/bierną/pozorną? Bo od samego początku tego zrozumieć nie mogę. rafal.220 napisał(a):w końcu z samych akumulatorów to długo nie pociągnie... 10-15 godzin wystarczy?? Wytrzymasz tyle ciągłej pracy przy kompie? rafal.220 napisał(a):Ale co za różnica?? Urządzenie tak czy inaczej pobierze określoną moc, bez względu na to z czego jest zasilane, a skoro mowa o całym komputerze, to należy też wliczyć straty mocy w samym zasilaczu Ty ciągle chyba nie rozumiesz, że pytającemu chodzi o układ CHŁODZENIA komputera, ma gdzieś straty mocy jako takie, współczynnik PFC i inne podobne „bzdury”. Podchodzisz do tego jak elektryk energetyk, a tu chodzi o zwykłe chłodzenie... interesuje nas ta część komputera, która się grzeje i tylko pod kątem odprowadzenia z niej ciepła, a właściwie obliczenia/oszacowania ile tego ciepła trzeba odprowadzić. Btw. A jak tak już komplikować i brnąć w Twoją logikę z zasilaczem... to trzeba jeszcze wliczyć straty mocy na przewodach energetycznych, stacjach transformatorowych... na elektrowni kończąc. W końcu bez tych składników komputer nie będzie działał „długo”. Wiem... Tutaj już jestem trochę złośliwy, ale jasno to podkreślam. A jak mi skontrujesz, że zasilacz jest częścią komputera a elektrownia nie... to od razu przypominam, że laptop to też rodzaj komputera... jego akumulator mogę wymieniać na naładowane gdzie indziej... nie muszę koniecznie podłączać zasilania do tego konkretnego urządzenia... Mogę podłączyć pod instalację w samochodzie i stamtąd zasilać. Ps. Jeśli w pytaniu chodziło by o obliczenie/oszacowanie energii zużywanej przez komputer, czy kosztów pracy komputera to pierwszy przyznał bym Ci rację że wliczamy w to koszty niezbędne do zasilenia, a więc ew. koszty pracy zasilacza sieciowego. W przypadku chłodzenia zasilacz jest niejako poza tym a dodatkowo niepotrzebnie komplikuje sprawę - gra nie warta świeczki. Chociaż... Gdyby rozważać np. farmę – datacenter... no, ale wówczas nie mówilibyśmy o komputerze a o całości jako takiej... i raczej nie było by określenia „chłodzenie wodne” w pytaniu, mimo że takie obiekty chłodzi się pośrednio cieczami. pajaczek

# rafal.220 napisał(a):proszę pamiętać też o tym że w komputerach stacjonarnych bardzo często układ chłodzenia zasilacza wspomaga przewiew całej skrzynki Widzialeś komputer, którego zasilacz opływa ciecz chłodząca resztę? Bo w pytaniu było też wyraźnie, co już podkreślałem, że chodzi o chłodzenie cieczą. Ale ok... Poddaję się... nie będę pisał 10 raz tego samego bo widać, że nie dociera, że nie każdy komputer jest zasilany z sieci prądu przemiennego, że mogę wymienić akumulator, że mogę zasilić ze źródła prądu stałego. Już pomijając fakt, że nigdzie w pytaniu nie ma tego sformułowania „całego komputera”, oraz że dla celów obliczenia wydzielanego ciepła Twoje rozważania o mocach biernych nie bardzo mają sens... że zasilacze miewają korekcję PFC. Ok. faktycznie dość bo dyskutujemy o niczym, jak autor zechce kontynuować temat i rozwinie się jakoś sensownie to powyższe rozważania prawdopodobnie znikną. pajaczek # pajaczek napisał(a):Już pomijając fakt że nigdzie w pytaniu nie ma tego sformułowania „całego komputera” bartosx napisał(a):Witam. Muszę zrobić projekt chłodzenia komputera za pomocą cieczy. Jak obliczyć ciepło Q wydzielane przez podzespoły komputera co za tym idzie ciepło wytwarzane przez cały komputer? Tak jak pisałem wcześniej. (w tym przypadku offtop jest zbędny ze względu na nieściśle sformułowane pytanie w pierwszym poście autora). rafal.220

ELEKTRONIKA PRAKTYCZNA 7/2013

010-019_newsy.indd 19

REKLAMA

# pajaczek napisał(a):No to skoro nie mają sensu, to pytam jeszcze raz, po co tak usilnie forsujesz podział na moce czynną/bierną/pozorną? Bo od samego początku tego zrozumieć nie mogę. A po to, że miał być cały komputer, a zasilacz też jest jego częścią, i nie ważne czy laptop, czy stacjonarny... Skoro wykonujemy pomiar od samego początku, to bierzemy pod uwagę też i zasilacz który zazwyczaj jest zasilany z sieci. (gdyby sprawność zasilacza wynosiła 100% a jego charakter był czynny, to bym go pominął) pajaczek napisał(a):10-15 godzin wystarczy?? Wytrzymasz tyle ciągłej pracy przy kompie? A co będzie po tych 15 godzinach? Sam się naładuje, czy może podłączysz go do zasilacza, który oczywiście ma określoną sprawność? pajaczek napisał(a):Ty ciągle chyba nie rozumiesz że pytającemu chodzi o układ CHŁODZENIA komputera dokładnie to rozumiem, a moja odpowiedź była związana z tym zapytaniem. bartosx napisał(a):Jak obliczyć ciepło Q wydzielane przez podzespoły komputera co za tym idzie ciepło wytwarzane przez cały komputer? Zasilacz też jest jego częścią. pajaczek napisał(a): Podchodzisz do tego jak elektryk energetyk, a tu chodzi o zwykłe chłodzenie... interesuje nas ta część komputera która się grzeje i tylko pod kątem odprowadzenia z niej ciepła, Na to stwierdzenie też udzieliłem swojej sugestii (wystarczy czytać ze zrozumieniem posty) rafal.220 napisał(a):To zadanie jest trudne do rozwiązania ponieważ nie wiemy jaką energię zużywają pozostałe podzespoły. (być może pomocną okaże się DTR samej karty, w której winien być zawarty bilans energetyczny w różnych trybach pracy takiej karty. Jeśli nie posiadamy żadnych informacji na temat urządzenia, to zawsze możemy zarejestrować widmo z precyzyjnej kamery termowizyjnej, i na jego podstawie obliczyć ilość wydzielanego ciepła w określonym trybie pracy takiej karty. Skoro pytanie nie jest do końca dobrze sformowane i nie określa jednoznacznie czy to ma być laptop czy stacjonarny to moje odpowiedzi też są ogólnikowe. (proszę pamiętać też o tym że w komputerach stacjonarnych bardzo często układ chłodzenia zasilacza wspomaga przewiew całej skrzynki ) Podstawą jest dobrze sformowane pytanie. (gdyby kolega uważnie czytał posty, to by zauważył, iż autor dalej pisał tak: bartosx napisał(a):A jeżeli chodzi o same podzespoły? Czyli jak obliczyć ilość wydzielanego ciepła przez np. Kartę graficzną? Na co moja odpowiedź przedstawiała się następująco: rafal.220 napisał(a):To zadanie jest trudne do rozwiązania ponieważ nie wiemy jaką energię zużywają pozostałe podzespoły. (być może pomocną okaże się DTR samej karty, w której winien być zawarty bilans energetyczny w różnych trybach pracy takiej karty. Jeśli nie posiadamy żadnych informacji na temat urządzenia, to zawsze możemy zarejestrować widmo z precyzyjnej kamery termowizyjnej, i na jego podstawie obliczyć ilość wydzielanego ciepła w określonym trybie pracy takiej karty. I po co ten cały of-top? rafal.220

19

2013-06-28 08:05:27


PROJEKTY

Komputer samochodowy Pomimo coraz bogatszego „uzbrojenia” aut w elektronikę, tematyka związana z  różnymi układami poprawiającymi komfort użytkowania samochodu cieszy się ogromnym zainteresowaniem. W  artykule opisano uniwersalny komputer samochodowy, który steruje pracą klimatyzacji, pokazuje temperaturę wewnątrz pojazdu, automatycznie włącza światła, wyświetla prędkość, zużycie paliwa itd. Rekomendacje: taki komputer przyda się w  niejednym, starszym samochodzie, a  lektura artykułu może być cenną wskazówką, w  jaki sposób otrzymać niezbędne informacje z  instalacji samochodowej. Tematyka motoryzacyjna jest tematem wielu ciekawych opracowań publikowanych na łamach naszego miesięcznika, ponieważ ta gałąź techniki tworzy ogromną płaszczyznę dla innowacyjnych rozwiązań, dla których granicą jest jedynie pomysłowość – nie wolno też zapominać o  homologacji samochodu. Dość ciekawym przykładem tej grupy produktów są układy automatyki wspomagające codzienne użytkowanie pojazdu lub poprawiające komfort, jak np. autonomiczne moduły komputerów pokładowych realizujące typowe funkcje urządzeń fabrycznych. To ciekawe zagadnienie nie umknęło także mojej uwadze, czego przykładem może być kilka projektów ogólnie pojętej automatyki znajdującej zastosowanie w motoryzacji. Ostatnim z tego typu rozwiązań mojego autorstwa był prezentowany na łamach Elektroniki Praktycznej nr 5/2103 sterownik TIDex będący w  pełni funkcjonalnym urządzeniem typu komputer pokładowy, a przeznaczonym do pojazdów marki Opel wyposażonych w wyświetlacz systemu audio tzw. TID (Triple Info Display). Urządzenie z  założenia mogło współpracować wyłącznie z  montowanymi we wspomnianych pojazdach wyświetlaczami systemu audio, co ogranicza zastosowanie prezentowanego sterownika tylko w zakresie jednej marki pojazdów. Idąc naprzeciw oczekiwaniom Czy-

20

020-030_tripco.indd 20

AVT 5405

telników oraz – nie ukrywam – zaspokajając własną ciekawość, postanowiłem zbudować urządzenie o zbliżonej funkcjonalności, lecz wyposażone w autonomiczny, efektowny interfejs użytkownika. Jak poprzednio, sterownik TripCo realizuje następujące funkcje: • Steruje pracą układu klimatyzacji manualnej utrzymując zadaną temperaturę wewnątrz pojazdu poprzez automatyczny dobór prędkości pracy wentylatora dmuchawy i/lub włączanie/wyłączanie sprężarki układu klimatyzacji. • Pokazuje temperaturę wewnątrz pojazdu. • Zapewnia funkcję automatycznego włącznika świateł mijania po osiągnięciu przez pojazd prędkości > 5 km/godz. • Pokazuje chwilową prędkość pojazdu (w km/godz.). • Pokazuje średnią prędkość pojazdu na zadanym odcinku drogi (w km/godz.). • Pokazuje maksymalną prędkość pojazdu na zadanym odcinku drogi (w km/godz.). • Pokazuje chwilowe zużycie paliwa (w l/ godz. dla prędkości  5 km/godz. oraz w l/100 km dla pozostałych prędkości). • Pokazuje średnie zużycie paliwa (w l/100 km). • Pokazuje całkowite zużycie paliwa (w l). • Pokazuje koszt zużytego paliwa. • Pokazuje przejechany dystans od ostatniego kasowania (w km). • Pokazuje liczbę uruchomień zapłonu. Algorytm działania urządzenia w zakresie dostępnej funkcjonalności w zasadzie nie uległ zmianom, nie będzie tutaj omawiany, natomiast dociekliwych Czytelników zachęcam do lektury artykułu na temat układu TIDex. Tym razem uwagę swoją skupiłem

W ofercie AVT* AVT-5405 A Podstawowe informacje: • Napięcie zasilania: 12…15 V DC. • Średni prąd obciążenia (przekaźniki wyłączone/ załączone): 20 mA/100 mA. • Zakres regulacji temperatury: 10…30°C. • Skok regulacji: 1°C. • Histereza regulacji: +1,5°C dla trybu schładzania, -1,5°C dla trybu ogrzewania. • Dokładność pomiaru temperatury: 0,5°C. • Zakres pomiarowy temperatury: 0…99,5°C. • Zakres pomiarowy prędkości: 0…255 km/godz. • Zakres pomiarowy chwilowego zużycia paliwa: 0…99,9 l/100 km. • Zakres pomiarowy średniego zużycia paliwa: 0…25,5 l/100 km. • Zakres pomiarowy zużytego paliwa: 0…999,9 l. • Zakres pomiarowy przejechanego dystansu: 0…9999 km. • Zakresy regulacji parametrów konfiguracyjnych: stała wtryskiwacza: 1…999 ml/min, stała przetwornika drogi: 1…99 imp./obr., obwód opony: 1…255 cm. Dodatkowe informacje: Wideo obrazujące obsługę urządzenia: http://www. youtube.com/watch?v=V9lTNW922lw&feature=youtu.be Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD) AVT-5395 Komputer samochodowy TIDex (EP 5/2013) AVT-5397 Komputer pokładowy z funkcją tempomatu (EP 5/2013) AVT-1664 Transceiver CAN (EP 2/2012) AVT-5280 Urządzenie diagnostyczne do sieci CAN (EP 3/2011) AVT-5271 VAGlogger – Przyrząd diagnostyczny dla samochodów z grupy VW – Audi (EP 1/2011) AVT-5260 Obrotomierz cyfrowy (EP 10/2010) --Obrotomierz cyfrowo-analogowy (EdW 6/2010) AVT-2799 Mikroprocesorowy obrotomierz stroboskopowy (EdW 9/2006) AVT-434 Komputer samochodowy (EP 9-10/2005) * Uwaga: 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. 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 wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:46


Komputer samochodowy na dobraniu optymalnego z punktu widzenia ergonomii obsługi, sposobu interakcji urządzenia z  użytkownikiem, na co składał się rodzaj zastosowanego wyświetlacza jak i  sposób obsługi sterownika. Proces ten

okazał się niezbyt zajmującym wyzwaniem, gdyż moje wcześniejsze doświadczenia z panelami OLED marki Winstar szybko wyłoniły przysłowiowego zwycięzcę. Jak łatwo się domyślić i tym razem postawiłem na graficzny

wyświetlacz OLED pracujący w 16 poziomach szarości. Wybór ten podyktowany był następującymi cechami użytkowymi: • optymalna wielkość przekątnej ekranu 2.7”,

Rysunek 1. Schemat ideowy układu TripCo ELEKTRONIKA PRAKTYCZNA 7/2013

020-030_tripco.indd 21

21

2013-06-28 08:05:47


PROJEKTY Tabela 1. Konfiguracja i funkcjonalność timerów mikrokontrolera ATmega164A Nazwa Timer0 Timer1 Timer2

Konfiguracja Licznik impulsów zewnętrznych podawanych na wejście T0 – zlicza przy zboczu opadającym. Taktowany wewnętrznym sygnałem zegarowym, preskaler=64 (65.536 impulsów na 1 ms). Wejście Input Capture podłączone do układu formującego przebieg z  wtryskiwacza paliwa. Taktowany wewnętrznym sygnałem zegarowym, preskaler=1024. Tryb Normalny. Przerwanie co 62.5  ms.

• wystarczająca rozdzielczość 128×64px, • możliwość wyświetlania 16 poziomów szarości (a zasadzie ustalania poziomów intensywności koloru wyświetlacza), co poprawia estetykę pokazywanych piktogramów, • doskonały i nieosiągalny dla paneli LCD kontrast (ponad 2000:1), • duża jasność (ok. 80 cd/m²), • doskonała czerń (matryca OLED sama jest źródłem światła), • bardzo szeroki kąt widzenia w każdej płaszczyźnie wynoszący ponad 160 stopni, • dostępność kilku wersji kolorystycznych panela (zielony, żółty, czerwony, niebieski, biały), • znacznie poprawiony czas życia matrycy (ponad 100 tys. godzin), • szeroki zakres temperatury pracy (-40… +85 ºC), • łatwość implementacji (zastosowany sterownik SSD1325 posiada akcelerację funkcji graficznych), • niewygórowana cena. Jak widać, powyższe cechy użytkowe idealnie pozycjonują wspomniany wyświetlacz do zastosowań w  branży motoryzacyjnej i  nie tylko. Jest to wszak technologia optymalna wszędzie tam, gdzie jest wymagany obraz o doskonałej czytelności przy zachowaniu obniżonego poboru energii. Przejdźmy, zatem do schematu sterownika, który pokazano na rysunku  1. Jak widać, jest nieskomplikowany układ mikroprocesorowy zbudowany z  wykorzystaniem popularnego mikrokontrolera firmy Atmel typu ATmega164A, scalonego termometru DS18S20, drivera mocy ULN2003 sterującego przekaźnikami wykonawczymi dużej mocy oraz kilku innych elementów dyskretnych. Ponadto, na płytce układu zabudowa-

Funkcjonalność Liczy impulsy przetwornika drogi WEG Mierzy sumaryczny czas wtrysku w czasie 1 sekundy Odmierza czas pomiaru równy 1  s.

no kompletny zasilacz układu sterownika wyposażony w scalony stabilizator napięcia 3,3  V, szeregowo-równoległy filtr EMI firmy Murata oraz komplet wygodnych złącz pozwalających na bezproblemowe połączenie z  instalacją elektryczną pojazdu. Należy zwrócić uwagę na fakt, że przekaźniki sterujące załączaniem układu klimatyzacji manualnej oraz wyłącznika świateł mają dwa komplety styków, a  wynika to z  faktu, że wyłączniki odpowiadających im obwodów, które to styki „bocznikują”, wyposażone są także w  więcej niż jeden styk wykonawczy i  aby poprawnie załączyć wybrany układ, należy dobrać przekaźnik o  takim samym układzie styków. Serce sterownika stanowi mikrokontroler. Realizuje on całą, założoną funkcjonalność urządzenia posiłkując się w  tym celu szeregiem wewnętrznych modułów peryferyjnych. W  odróżnieniu jednak od prezentowanego wcześniej sterownika TIDex, w  tym wypadku zastosowano mikrokontroler o  2-krotnie większej pamięci Flash, co zostało podyktowane koniecznością przechowywania w  niej wzorców zastosowanych czcionek oraz wyświetlanych piktogramów w formacie bitmap. Mikrokontroler jest taktowany za pomocą zewnętrznego rezonatora kwarcowego o  częstotliwości 4,194  MHz, co zapewnia dużą dokładność pomiarów czasu, wykonywanych w  programie obsługi urządzenia. Niska częstotliwość zegarowa (w  porównaniu do poprzedniego rozwiązania) wynika z konieczności zapewnienia poprawnej pracy mikrokontrolera przy bardzo napięciu zasilania rzędu 1,8 V, co zostanie wyjaśnione w dalszej części artykułu. W  programie obsługi sterownika wykorzystano wszystkie wbudowane timery, a  ich konfigurację oraz realizowaną funkcjonalność opisano w tabeli 1.

Rysunek 2. Wykres zależności napięcia podtrzymania w funkcji czasu w momencie wyłączenia zapłonu W  celu pomiaru czasu trwania wtrysków, zbudowano kompletny i  bezpieczny układ wejściowy (przy użyciu popularnego optoizolatora PC817) formujący sygnał wtryskiwacza dla potrzeb wejściowych obwodów mikrokontrolera. Sygnał ten jest podawany na wejście przechwytujące układu czasowo – licznikowego Timer1, dzięki czemu w  dość prosty sposób zrealizowano pomiar czasu trwania wtrysku (akumulowany jest sumaryczny czas trwania wtrysku w okresie 1  sekundy). W  ramce umieszczono wzory służące do obliczenia ważniejszych danych dla ustawień Timerów, jak w tabeli 1. W  sterowniku TripCo zastosowano specjalny układ podtrzymania napięcia zasilania mikrokontrolera, gwarantujący poprawność funkcjonowania akumulatorów obliczeniowych pomimo wyłączania zasilania urządzenia. Dane „zebrane” w specjalną strukturę zaopatrzoną w  sumę kontrolną CRC8 zapisywane są każdorazowo przy wyłączaniu zapłonu. W celu detekcji momentu wyłączania zapłonu zastosowano wbudowany w mikrokontroler przetwornik A/C pracujący w trybie Free Running i mierzący napię-

Wzory służące do obliczania ważniejszych danych: Accu.Petrol += ((1UL*INJECTORS*InjectionTime*Config.CcPerMin)/ 3932UL); //Akumulator zużytego paliwa [ul] Accu.Distance += ((1UL*WEGpulses*Config.Wheel) / (100UL*Config.PulsPerRot)); //Akumulator dystansu [m] Consum = ((3UL*INJECTORS*InjectionTime*Config.CcPerMin) / 327680UL); //Chwilowe zużycie paliwa [l/h *10], gdy prędkość  5 km/h Consum = ((100UL*Consum) / Speed); //Jeśli prędkość>5 km/h to zużycie chwilowe podajemy w l/100km *10 ConsumAvg = (Accu.Petrol/Accu.Distance); //Średnie zużycie paliwa [l/100km *10] Speed = ((36UL*WEGpulses*Config.Wheel) / (1000UL*Config.PulsPerRot)); //Chwilowa prędkość [km/h] SpeedAvg = ((36UL*Accu.Distance)/(10UL*Accu.Measurements)); //Średnia prędkość [km/h] gdzie: - INJECTORS – liczba wtryskiwaczy - InjectionTime – sumaryczny czas wtrysku [ms/40] - Config.CcPerMin – stała wtryskiwacza [ml/min] - Config.PulsPerRot – stała przetwornika drogi [imp/obr] - Accu.Petrol – akumulator zużycia paliwa [μl] - Accu.Distance – akumulator przejechanego dystansu [m] - WEGpulses – liczba impulsów z  przetwornika drogi zliczona w  czasie 1 sekundy - Config.Wheel – obwód opony [cm] - Accu.Measurements – liczba pomiarów (co 1 sekundę)

22

020-030_tripco.indd 22

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:47


Komputer samochodowy cie Vbak, czyli napięcie zasilające wyłącznie mikrokontroler. Po zaniku zasilania dioda D2 umożliwia separację zasilania mikrokontrolera od reszty urządzenia, a kondensatory C8…C9 zapewniają odpowiedni czas podtrzymania zasilania. Co ciekawe, na pierwszy „rzut oka” nie wydaje się by nasz sterownik w  jakikolwiek sposób używał przetwornika A/C, ponieważ żaden z  kanałów wejściowych nie jest przez niego w tym celu używany. Jest jednak inaczej. Przetwornik A/C mierzy specjalne, wewnętrzne napięcie odniesienia VBG=1,1  V dzięki wbudowanemu multiplekserowi analogowemu. Napięciem odniesienia jest napięcie zasilające mikrokontroler, czyli napięcie dostarczane na wyprowadzenie AVCC (czyli nasze Vbak). Jego spadek podczas wyłączania zapłonu, powoduje wzrost wartości wyniku przetwarzania według wzoru jak niżej (korzystamy z  8-bitowej rozdzielczości przetwornika) VADC=(VBG*256)/Vbak. Procedura obsługi przerwania przetwornika ADC sprawdza każdorazowo czy nie został przekroczony zdefiniowany wcześniej próg obliczeniowy a  jeśli ma to miejsce to inicjuje proces zapisywania danych krytycznych do wbudowanej pamięci EEPROM, po czym czeka, aż napięcie zasilania spadnie do poziomu resetowania mikrokontrolera, które to dokonywane jest przez uruchomiony wcześniej układ BOD (typowo przy wartości 1.8  V). Wspomniany próg zadziałania ustawiono na wartość 2.8 V, co oznacza, iż czas opadania napięcia zasilającego od wartości 2.8  V do wartości 1.8  V (resetowania mikrokontrolera) jest czasem, w  którym musi on przeprowadzić zapis wszystkich danych krytycznych – w naszym przypadku 20 bajtów danych. Jak pokazały testy praktyczne, zastosowanie wspomnianego wcześniej rozwiązania sprzętowego (dioda D2 i kondensatory C8…C9) i mechanizmów programowych zapewnia 100% skuteczność zapisu danych z  bardzo dużym marginesem czasowym. Wykres zależności napięcia podtrzymania w funkcji czasu w momencie wyłączenia zapłonu pokazano na rysunku 2. Jak widać, czas dostępny na zapis danych wynosi około 196ms co dla wymaganej maksymalnej wartości rzędu 66  ms (20  bajtów po 3.3  ms na zapis jednego bajta) daje spory margines bezpieczeństwa. Co oczywiste, potencjalne uszkodzenie w bloku sprzętowym odpowiedzialnym za podtrzymanie napięcia zasilającego skutkować będzie błędnymi zapisami pamięci EEPROM, gdyż dołączana (do struktury danych) suma kontrolna nie będzie zgodna z obliczoną. W takim przypadku układ TripCo poinformuje użytkownika wyświetlając okno informacyjne z  komunikatem „save error” tuż po włączeniu zasilania (dokładnie w czasie sprawdzania integralności danych zachowanych w  pamięci EEPROM. Listing konfiguracji ELEKTRONIKA PRAKTYCZNA 7/2013

020-030_tripco.indd 23

Listing 1. Konfiguracja oraz procedury obsługi przerwania przetwornika A/C

#define VBG 11 //Voltage BandGap, 11=1.1V itd #define CRITICAL_VOLTAGE 28 //28=2.8V itd //Obliczony próg dla zapisu do EEPROMa (dla rozdz. 8bitów) #define TRESHOLD (VBG*256/CRITICAL_VOLTAGE)

/* Vref=AVCC, Vin=VBG (wewn.źródło 1.1V), justowanie wyniku pomiaru do lewej (ADHC zawiera 8-bitowy wynik pomiaru) Uruchomienie przetwornika ADC w trybie Free Running i zezwolenie na przerwanie po każdej konwersji (preskaler=128) */ ADMUX = (1<<REFS0)|(1<<MUX4)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<ADLAR); ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); ISR(ADC_vect) { register uint8_t Voltage = ADCH; if(Voltage>TRESHOLD) { OLEDoff(); //Wyłączenie software’owe panelu OLED //Zapis krytycznych danych do pamięci EEPROM – 66ms eeprom_write_block(&Accu, &AccuEE, sizeof(Accu)); _delay_ms(40); //Wyłączenie zasilania panela OLED (tranzystor sterujący T1) PORTB |= (1<<PB6); //Czekamy na restart mikrokontrolera przez układ BOD _delay_ms(2000); } }

przetwornika ADC oraz procedury obsługi jego przerwania pokazano na listingu 1. Kończąc artykuł poświęcony rozwiązaniom konstrukcyjnym oraz programowym zastosowanym w układzie TripCo chciałbym na chwilę zatrzymać się nad zagadnieniem obsługi panela OLED w  zakresie wyświetlania grafik oraz własnych czcionek. Co prawda, budowę i  sposób obsługi wyświetlaczy tego typu (w języku Bascom) opisałem w Elektronice Praktycznej 01/2011 i 02/2011, jednak od tego czasu firma Winstar zmodyfikowała produkowane wyświetlacze OLED, co wymusiło zmiany w  procedurze inicjalizacji. Ponadto, przedstawione niżej rozwiązania zoptymalizowano pod kątem języka C i nowych narzędzi do generowania obiektów graficznych, przez co zdecydowanie zwiększono możliwości w  zakresie tworzenia graficznych interfejsów użytkownika. Nie wchodząc w  takim razie w  szczegóły budowy i funkcjonowania wyświetlacza, gdyż jak wspomniałem obszerną wiedzę w  tym zakresie można znaleźć w moich poprzednich artykułach, przypomnę kilka podstawowych informacji na temat sposobu obsługi i inicjalizacji takiego rodzaju mediów. Sterowanie pracą wyświetlaczy tego typu polega na wysyłaniu komend sterujących, za pomocą których ustawiamy wstępne parametry konfiguracyjne oraz na zapisie lub odczycie danych do/z pamięci wideo. Zapis powoduje natychmiastowe wyświetlenie pikseli o danych atrybutach. Interpretacja rodzaju danych, które mają być odebrane przez chipset SSD1325, jest zdeterminowana stanem wyprowadzenia RS. Jest to typowe rozwiązanie w sterowaniu wyświetlaczami wszelkiego typu. Poziom niski na tym wyprowadzeniu decyduje o tym, iż przesyłana wartość zostanie potraktowana jako komenda sterująca lub też argument przesłanej wcześniej komendy sterującej, natomiast poziom wysoki spowoduje, iż dana zostanie zinterpretowana jako dana pamięci

Listing 2. Listing funkcji zapisu komendy sterującej (lub argumentu tej komendy) static void WriteCmnd(uint8_t Command) { RESET_RS; RESET_WR; RESET_CS; DATA_PORT = Command; SET_CS; SET_WR; SET_RS; }

Listing 3. Listing funkcji zapisu danej pamięci obrazu GDDRAM

static void WriteGDDram(uint8_t Data) { RESET_WR; RESET_CS; DATA_PORT = Data; SET_CS; SET_WR; }

wideo GDDRAM. W związku z  powyższą organizacją procedur sterujących można wyróżnić dwa rodzaje sekwencji operacji zapisu do układu SSD1325 (operacje odczytu przebiegają analogicznie, lecz nie będą tematem naszych rozważań): • sekwencja zapisu komendy sterującej (zapisu danych do rejestrów konfiguracyjnych), • sekwencja zapisu danych do pamięci obrazu GDDRAM. Wspomnianym sekwencjom sterującym odpowiadają funkcje, które pokazano na listingu  1 oraz listingu  2. Posiłkując się tymi dwoma „elementarnymi” funkcjami umożliwiającymi komunikację ze sterownikiem panelu, możemy przejść do funkcji służącej do inicjalizacji sterownika SSD1325 po włączeniu zasilania wyświetlacza, którą to zamieszczono na listingu  4, zaś odpowiednie definicje na listingu 5. W tym momencie, potrafimy już zainicjować interesujący nas panel OLED w związku, z czym przejdziemy do opisu funkcji odpowiedzialnych za wyświetlenie przygotowanej wcześniej grafiki jak i czcionek ekranowych, których w urządzeniu TripCo zastosowano aż 3 rodzaje. Ste-

23

2013-06-28 08:05:47


PROJEKTY rownik SSD1325 ma dość nietypową organizację pamięci ekranu, w której każdy bajt tej pamięci przechowuje dane dla 2 kolejnych pikseli obrazu (stąd jest możliwe wyświetlenie 16 poziomów jasności każdego piksela), do wygenerowania odpowiednich tablic wykorzystano program OLEDesigner v. 1.2, której autorem jest Marcin Popławski. Wygląd okna najnowszej wersji programu OLED Designer przedstawiono na rysunku  3. Za pomocą tego prostego, ale jakże użytecznego narzędzia, jesteśmy w  stanie zaprojektować dowolny element przyszłego interfejsu użytkownika. Co więcej, bieżąca wersja programu obsługuje następujące formaty danych: • OPF (od Oled Picture File) czyli plik binarny o  odpowiedniej strukturze przeznaczony do zastosowań w kompilatorze Bascom, • BMP o dowolnej palecie barw, gdyż program automatycznie przekształci taki obrazek do trybu monochromatycznego (oraz „przytnie” do formatu 128×64, jeśli rozmiar obrazka będzie nieodpowiedni), • C z tablicą wzorca obrazka zapisaną przy użyciu kompresji mRLE (zmodyfikowany algorytm RLE), • C z tablicą wzorca obrazka zapisaną przy użyciu typowej kompresji RLE. Otrzymany w ten sposób obraz możemy edytować i  zapisywać lub odczytywać korzystając z  dowolnego z  dostępnych formatów danych. Edytor jest intuicyjny i  łatwy w  obsłudze. Po wyborze z  rozwijanej listy odpowiedniego koloru i  wciśnięciu lewego przycisku myszy, nanosimy wybrany kolor na obraz. W  celu łatwiejszej identyfikacji kolory w palecie są ponumerowane. Pod prawym przyciskiem myszy kryje się gumka, za pomocą której usuwamy niepotrzebny kolor. Tworzone przez program Pliki OPF jak i  C mają następująca strukturę: • pierwszy bajt określa szerokość obrazka, • drugi bajt określa wysokość obrazka, • pozostałe bajty to dane kolejnych pikseli obrazu poddane prostemu algorytmowi kompresji, przy czym zgodnie z  organizacją pamięci sterownika SSD1325, każdy wspomniany bajt przechowuje

Rysunek 3. Wygląd programu OLEDesigner (v.1.2)

24

020-030_tripco.indd 24

informację o dwóch, kolejnych punktach obrazu. Jak pokazały testy praktyczne, najlepszy stopień kompresji obrazków przechowywanych w  ten sposób daje zmodyfikowany al-

gorytm RLE (nazwany tutaj mRLE), którego sposób działania opisano w tabeli 2. Pomimo swojej prostoty zapewnia on całkiem spory stopień kompresji, co przekłada się na zmniejszenie zajętości pamię-

Listing 4. Listing funkcji inicjalizacji sterownika SSD1325 i włączenia panelu OLED

void InitOLED(void) { //Port danych OLEDa jako wyjscia ze stanem „0” DATA_DDR = 0xFF; //Porty sterujące OLEDa jako wyjscia ze stanem „0” CONTROL_DDR |= (1<<WR_PIN) | (1<<RD_PIN) | (1<<CS_PIN) | (1<<RS_PIN) | (1<<RST_PIN); //Port sterujący zasilaniem OLEDa jako wyjscie ze stanem „1” czyli zasilanie WYŁĄCZONE VCC_PORT |= (1<<VCC_PIN); VCC_DDR |= (1<<VCC_PIN); RESET_RST; //Zerowanie sprzętowe sterownika SSD1325 _delay_ms(1); SET_RST; //Konfiguracja wszystkich parametrów sprzętowych sterownika SSD1325 WriteCmnd(SET_COLUMN_ADDR); //0...63 (Pojedynczy adres przechowuje dane 2 pixeli obrazu) WriteCmnd(0x00); WriteCmnd(0x3f); WriteCmnd(SET_ROW_ADDR); //0...63 WriteCmnd(0x00); WriteCmnd(0x3f); WriteCmnd(SET_CONTRAST_CTRL); WriteCmnd(0x7f); //Contrast Current: Maximum=127, ewentualnie 0x40 WriteCmnd(SET_CURRENT_RANGE | FULL_CURRENT); WriteCmnd(SET_DISP_OFFSET); WriteCmnd(0x4c); //Vertical Scroll=76 WriteCmnd(SET_DISP_START_LINE); WriteCmnd(0x00); WriteCmnd(SET_REMAP); WriteCmnd(0x52); //Enable Nibble Re-map, Enable COM Re-map, Enable COM Split Odd Even WriteCmnd(SET_MASTER_CONFIG); WriteCmnd(0x02); //External Vcc power supply WriteCmnd(SET_DISP_MODE_NORMAL); WriteCmnd(SET_MULTIPLEX_RATIO); WriteCmnd(0x3f); //Mux=64 WriteCmnd(SET_PHASE_LENGTH); WriteCmnd(0x55); //Phase 1 & Phase 2 period = 5 DCLKs WriteCmnd(SET_ROW_PERIOD); WriteCmnd(0x51); //R=81 DCLKs WriteCmnd(SET_DISP_CLOCK); WriteCmnd(0x91); //Fosc=800kHz, Div=2, Fdlck=400kHz WriteCmnd(SET_VCOMH_VOLTAGE); WriteCmnd(0x1C); //0.8*VREF WriteCmnd(SET_PRECHARGE_VOLTAGE); WriteCmnd(0x10); //0.67*VREF WriteCmnd(SET_GRAY_SCALE_TABLE); WriteCmnd(0x00); WriteCmnd(0x11); WriteCmnd(0x21); WriteCmnd(0x32); WriteCmnd(0x43); WriteCmnd(0x54); WriteCmnd(0x65); WriteCmnd(0x76); ClsOLED(); //Wyczyszczenie pamięci ekranu OLEDon(); //Załączenie panela OLED }

Listing 5. Definicje rozkazów sterujących sterownika SSD1325

#define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define

SET_COLUMN_ADDR 0x15 SET_ROW_ADDR 0x75 SET_CONTRAST_CTRL 0x81 SET_CURRENT_RANGE 0x84 FULL_CURRENT 0x02 HALF_CURRENT 0x01 QUARTER_CURRENT 0x00 SET_REMAP 0xA0 SET_DISP_START_LINE 0xA1 SET_DISP_OFFSET 0xA2 SET_DISP_MODE_NORMAL 0xA4 SET_DISP_MODE_INVERSE 0xA7 SET_MULTIPLEX_RATIO 0xA8 SET_MASTER_CONFIG 0xAD SET_PRECHARGE_COMP_ENABLE 0xB0 SET_PHASE_LENGTH 0xB1 SET_ROW_PERIOD 0xB2 SET_DISP_CLOCK 0xB3 SET_PRECHARGE_COMP_LEVEL 0xB4 SET_GRAY_SCALE_TABLE 0xB8 SET_PRECHARGE_VOLTAGE 0xBC SET_VCOMH_VOLTAGE 0xBE SET_SEGMENT_LOW_VOLTAGE 0xBF GRAPHIC_ACCEL_OPTION 0x23 ENABLE_FILLING 0x01 DRAW_RECTANGLE 0x24 SET_DISPLAY_ON 0xAF SET_DISPLAY_OFF 0xAE

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:47


Komputer samochodowy Na koniec tej tematyki chciałbym pokrótce omówić zagadnienie generowania i wyświetlania czcionek. Do utworzenia stosownych tablic i  struktur zawierających używane w  programie obsługi czcionki za-

Tabela 2. Sposób działania algorytmu kompresującego dane obrazków Liczba powtórzeń 1 2 3 4 5 . . . 257

Dane przed kompresją 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA . . . 257 x 0xAA

Dane po kompresji 0xAA 0xAA 0xAA 0xAA 0xAA . . . 0xAA

0xAA 0xAA 0xAA 0xAA

0x00 0x01 0x02 0x03

0xAA 0xFF

Listing 6. Funkcja odpowiedzialna za odczytanie, dekompresję i wyświetlenie obrazka

//Bajty Picture[0] i Picture[1] opisują szerokość i wysokość obrazka, pozostale bajty stanowią treść obrazu: 1 bajt na 2 pixele void DrawPicture(uint8_t X1, uint8_t Y1, const uint8_t *Picture) { register uint8_t byteA, byteB; uint16_t bytesToSend, repeats, i=2; //Obliczamy liczbę bajtów jakie należy wysłać do sterownika modułu OLED bytesToSend = (pgm_read_byte(&Picture[0])>>1)*pgm_read_byte(&Picture[1]); //Ustawiamy aktywne okno pamięci obrazu sterownika SSD1325 by uprościć zapis danych SetActiveWindow(X1, Y1, X1+pgm_read_byte(&Picture[0])-1, Y1+pgm_read_ byte(&Picture[1])-1); do { if(bytesToSend == 1) //Dla ostatniego bajta danych { WriteGDDram(pgm_read_byte(&Picture[i])); bytesToSend--; } else { byteA = pgm_read_byte(&Picture[i]); //Odczytujemy bajt “i” byteB = pgm_read_byte(&Picture[i+1]); //Odczytujemy bajt “i+1” if( byteA != byteB) //Sprawdzamy czy kolejne bajty są różne { WriteGDDram(byteA); bytesToSend--; i++; } else /* Jeśli kolejne bajty sa takie same to ustalamy liczbę powtórzeń danego bajta (+2 powtórzenia obligatoryjne) wynikające ze sposobu zapisu kompresji typu mRLE (zmodyfikowane RLE) */ { repeats = pgm_read_byte(&Picture[i+2])+2; while(repeats--) {WriteGDDram(byteA); bytesToSend--;} //Wysyłamy liczbę powtórzeń bajta i +=3; //Przesuwamy indeks o 3 miejsca } } } while(bytesToSend); SetActiveWindow(0, 0, 127, 63); }

Rysunek 4. Wygląd głównego okna programu PixelFactory ELEKTRONIKA PRAKTYCZNA 7/2013

020-030_tripco.indd 25

stosowano doskonały program firmy Atnel (www.atnel.pl) o nazwie PixelFactory, którego autorem jest Mirosław Kardaś. Wygląd głównego okna programu pokazano na rysunku 4. Oprócz innych funkcji, ten program umożliwia utworzenie wzorców czcionek na podstawie wybranych przez użytkownika fontów dostępnych w systemie Windows, wybór wielkości i zakresu dostępnych znaków. Wynikiem działania programu są dwa pliki: plik C zawierający tablice wzorców wygenerowanych znaków i 2 struktury opisujące ich parametry fizyczne oraz plik H zawierający deklaracje używanych tablic, struktur i typów danych. Nie będę w tym miejscu rozpisywał się na temat obsługi programu PixelFactory, gdyż jest ona intuicyjna, a stosowne artykuły znaleźć można w Internecie, lecz skupię się na implementacji odpowiednich procedur dla wyświetlaczy OLED zaznaczając przt tym, iż w naszym programie obsługi zmodyfikujemy nieco sposób dostępu do wzorców znaków, ponieważ nie jest nam potrzebna tak duża elastyczność użytkowa, zaimplementowana przez autora programu. Wykaz elementów Rezystory: (1/8 W) R1, R2: 3,3 kV R3, R6…R8: 1 kV R4: 820 kV R5: 2,2 kV Kondensatory: C1, C2: 10 mF/16 V (elektrolityczny) C3, C4: 22 pF (ceramiczny) C5…C7, C10, C11: 100 nF (ceramiczny) C8, C9: 470 mF/10 V (elektrolityczny) C12…C15: 4,7 mF/10 V (elektrolityczny) Półprzewodniki: U1: NCP1117DT33G U2: ATmega164A (TQFP44) U3: DS18S20 U4: ULN2003A (SO16) D1: 1N4007 D2: BAT85 D3: 1N4148 T1: BC557A T2: BC548A OK1: PC817 Inne: OLED: wyświetlacz OLED Winstar WEX012864LLPP3N00000 (kolor dobrany przez użytkownika) L1: dławik 100 mH L2: dławik 10 mH Q1: rezonator kwarcowy 4.194 MHz FT: filtr EMI Murata typu DSS306-55F223 REL1…REL3: przekaźnik HFKW-012-1ZW REL4, REL5: przekaźnik JRC-27F/012 RADIO: gniazdo męskie kątowe 90˚ 4pin (NSL25-4W) AC, LIGHTS: gniazdo męskie kątowe 90˚ 3pin (NSL25-3W) INJ: gniazdo męskie kątowe 90˚ 2pin (NSL25-2W) FUN: złącze śrubowe typu AK500/4 MODE, PLUS, MINUS: microswitch z długą ośką ZIF: złącze typu ZIF do montażu powierzchniowego (raster 0.5mm, 30-pin, górny kontakt)

Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

ci Flash mikrokontrolera, przechowującej wzorce obrazków i czcionek. Na listingu  6 przedstawiono funkcję odpowiedzialną za odczytanie, dekompresję i  wyświetlenie tak zapisanego obrazka.

25

2013-06-28 08:05:48


PROJEKTY Ustawienia ważniejszych fuse-bitów: CKSEL3...0: 1101 SUT1...0: 11 BODLEVEL2...0: 110 CKOUT: 1 JTAGEN: 1 CKDIV8: 1 OCDEN: 1 EESAVE: 0

Najważniejszą strukturą z punktu widzenia programu obsługi urządzenia jest ta, która niesie informację na temat cech fizycznych zestawu znaków jak i  samego znaku. Budowę struktury pokazano na listingu  7. Tablica wzorców poszczególnych znaków, do której wskaźnik umieszczony zostanie we wspomnianej strukturze, jest typową tablicą uint8_t Tablica[] PROGMEM zawierającą wygenerowane przez program PixelFactory wzorce znaków. Nie korzystamy zarazem z trzeciej struktury, którą tworzy oprogramowanie, a  która to zawiera informację o  kodach znaków (i stosownym offsecie) umieszczonych w tablicy wzorców, gdyż w programie obsługi urządzenia korzysta się z ciągłego przedziału dostępnych znaków standardu ASCII w  odpowiednio ograniczonym zakresie (np. same cyfry lub małe litery). Dla wygody przewidziano dodatkową funkcję SetFont, której zadaniem jest odczytanie z  pamięci Flash parametrów bieżącej czcionki do zmiennej umieszczonej w pamięci RAM, co

Listing 7. Struktura opisująca zestaw znaków

typedef struct //Deklaracja struktury przechowującej parametry bieżącej czcionki { uint8_t Width; //Rzeczywista szerokość znaku (px) uint8_t Height; //Rzeczywista wysokość znaku (px) uint8_t Interspace; //Odstęp pomiędzy znakami (px) uint8_t BytesPerChar; //Liczba bajtów danych tablicy wzorców przypadających na definicję 1 znaku uint8_t FirstCharCode; //Kod ASCII pierwszego znaku w tablicy wzorców const uint8_t *Bitmap; //Wskaźnik to tablicy zawierającej wzorce poszczególnych znaków } fontDescription;

Listing 8. Funkcja SetFont

void SetFont(const fontDescription *Font) { CurrentFont.Width = pgm_read_byte(&Font->Width); CurrentFont.Height = pgm_read_byte(&Font->Height); CurrentFont.Interspace = pgm_read_byte(&Font->Interspace); CurrentFont.BytesPerChar = pgm_read_byte(&Font->BytesPerChar); CurrentFont.FirstCharCode = pgm_read_byte(&Font->FirstCharCode); CurrentFont.Bitmap = (uint8_t*)pgm_read_word(&Font->Bitmap); }

upraszcza nieco konstrukcję właściwej funkcji odpowiedzialnej za wyświetlanie tekstu. Konstrukcję wspomnianej funkcji jak i docelowej funkcji odpowiedzialnej za wyświetlanie napisów (z uwzględnieniem specyfiki sterownika SSD1325) zamieszczono na listingu 8 i listingu 9.

Montaż Schemat montażowy komputerka TripComp pokazano na rysunku 5. Zmontowano go na płytce dwustronnej przeważnie używając elementów przeznaczonych do

montażu przewlekanego. Co bardzo ważne w przypadku środowisk o  sporej liczbie zaburzeń, którym bez wątpienia jest instalacja samochodowa, zadbano o odpowiednie prowadzenie masy oraz ścieżek sygnałów krytycznych. Montaż rozpoczynamy od wlutowania elementów SMD, czyli w naszym przypadku mikrokontrolera oraz złącza ZIF. Montaż tego typu peryferiów możemy wykonać na co najmniej dwa sposoby w  zależności od sprzętu lutowniczego jakim dysponujemy. Sposób pierwszy to użycie specjalnej

Listing 9. Funkcja odpowiedzialna za wyświetlanie napisów na wyświetlaczu OLED

/* Funkcja narzędziowa, która testuje kolejne pary bitów bajta, argumentu wywołania by utworzyć bajt wynikowy zawierający dane 2 pixeli w 16 o dcieniach. Liczbę testowanych par bitów zawiera argument bitsNr, który musi byc parzysty, np. dla bitsNr=6 testowane są pary: 7-6, 5-4, 3-2 */ void sendBitsPairs(uint8_t Byte, uint8_t bitsNr, uint8_t Color, uint8_t Background) { register uint8_t displayData, bitIndex, boundary = (bitsNr == 8) ? 255: 7 - bitsNr; for( bitIndex=7; bitIndex != boundary ; bitIndex-=2 ) { if(Byte & (1<<bitIndex)) displayData = Color <<4; else displayData = Background <<4; if(Byte & (1<<(bitIndex-1))) displayData |= Color; else displayData |= Background; WriteGDDram(displayData ); } } //Właściwa funkcja do obsługi czcionek void DrawText(uint8_t X1, uint8_t Y1, char *Text, uint8_t Color, uint8_t Background) { register char Character; register uint8_t widthIndex, heightIndex, widthByteNr, readByte; uint16_t offset; while ((Character = *Text++)) //Sprawdzamy kody ASCII kolejnych znaków napisu wejściowego, dla SPACJI tylko wymazujemy { if(Character == ‘ ‘) DrawRectangle(X1, Y1, X1+CurrentFont.Width-1, Y1+CurrentFont.Height-1, ((Background<<4) | Background)); else { SetActiveWindow(X1, Y1, X1+CurrentFont.Width-1, Y1+CurrentFont.Height-1); //Obliczamy offset położenia wzroca w tablicy wzorców znaków offset = (Character-CurrentFont.FirstCharCode)*CurrentFont.BytesPerChar; for(heightIndex = 0; heightIndex < CurrentFont.Height; heightIndex++) { for(widthIndex = 0, widthByteNr = 0; widthIndex < CurrentFont.Width; widthIndex += 8, widthByteNr++) { //Odczytujemy kolejny bajt definicji znaku umieszczony w tablicy Bitmap pod odpowiednim adresem readByte = pgm_read_byte(&CurrentFont.Bitmap[offset++]); /* W zależności od tego czy do czynienia mamy z bajtem, który jest całkowicie wykorzystany, jeśli chodzi o definicję wzorca, czy też tylko część jego bitów opisuje wzorzec (dla czcionek o szerokości niebędącej wielokrotnością liczby 8) testujemy odpowiednie grupy bitów wysyłając dane do panelu OLED */ if( ((widthByteNr+1)*8) <= CurrentFont.Width ) sendBitsPairs( readByte, 8, Color, Background); else sendBitsPairs( readByte, CurrentFont.Width - (widthByteNr *8), Color, Background); } } } //Przesuwamy współrzędną X1 o szerokość znaku plus zdefiniowany odstęp X1+=(CurrentFont.Width+CurrentFont.Interspace); } SetActiveWindow(0, 0, 127, 63); }

26

020-030_tripco.indd 26

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:48


Komputer samochodowy

Rysunek 5. Schemat montażowy sterownika TripCo

Rysunek 6. Rodzaje złącz radioodbiornika wraz z opisem wyprowadzeń w celu wypłukania nadmiaru kalafonii stacji lutowniczej typu Hot Air oraz odpolutowniczej. Tuż przed przykręceniem wywiednich, przeznaczonych do tego celu, świetlacza do obwodu drukowanego natopników. Sposób drugi (stosowany przeze szego układu (należy użyć odpowiedniej mnie) to montaż przy użyciu typowej stadługości dystansów), należy go podłączyć cji lutowniczej, dobrej cyny z odpowiednią korzystając ze złącza ZIF umieszczonego ilością topnika oraz plecionki rozlutownipo stronie elementów. czej, która umożliwia usunięcie nadmiaru cyny spomiędzy wyprowadzeń układów. Należy przy tym uważać by nie uszkodzić Dołączenie sterownika termicznie elementów. Następnie lutujemy Dołączenie sterownika do instalacji sarezystory, kondensatory, przekaźniki, złąmochodowej powinno zostać wykonane cza, przyciski, a  na końcu pozostałe półprzez doświadczonego elektryka bądź elekprzewodniki. Należy zwrócić szczególną tronika samochodowego, najlepiej przy odłąuwagę na konieczność pocynowania gruczonym akumulatorze. Urządzenie należy bą warstwą cyny ścieżek przewodzących zamontować w  suchym miejscu, z  dala od duże prądy, tj. ścieżek styków wykonawwszelkiego rodzaju elektroniki, której dziaczych przekaźników REL1…REL3. Z uwagi łanie mogłoby zakłócać funkcjonowanie stena zagęszczenie wyprowadzeń złącza ZIF rownika (typu sterownik silnika ECU, moduł i  mikrokontrolera przed pierwszym podłączeniem układu należy jeszcze raz sprawdzić jakość wykonanych połączeń, aby nie dopuścić do ewentualnych zwarć. Wspomniana kontrola będzie znacznie łatwiejsza, jeśli zmontowana płytkę sterownika przemyjemy alkoho- Rysunek 7. Sposób podłączenia układu TripCo do gniazda lem izopropylowym radioodbiornika ELEKTRONIKA PRAKTYCZNA 7/2013

020-030_tripco.indd 27

kontroli nadwozia BCM czy alarm), zaopatrując w odpowiednią ekranowaną obudowę chroniącą przez zwarciem, zawilgoceniem, uszkodzeniem mechanicznym i  zakłóceniami EMI. W  celu wykorzystania wszystkich dostępnych funkcji urządzenia, sterownik należy podłączyć do następujących „modułów” samochodu: • Złącze radioodbiornika: to podstawowe podłączenie umożliwiające zasilenie układu, po włączeniu stacyjki, oraz doprowadzenie sygnału prędkości pojazdu (WEG). • Panel sterowania nawiewem i klimatyzacją: to podłączenie umożliwia automatyczne sterowanie układem klimatyzacji manualnej oraz wentylatorem nawiewu (bardzo ważny jest w  tym przypadku przekrój przewodów połączeniowych z  uwagi na duże prądy – min. 1,5 mm2). • Panel sterowania wyłącznikiem świateł: to połączenie umożliwia automatyczne włączanie świateł mijania. • Wtryskiwacz paliwa: to podłączenie umożliwia realizację funkcji komputera pokładowego. Ponadto, układ TripCo wyposażono w  zintegrowany, dokładny termometr scalony, który powinien być przyłączony do płytki urządzenia za pomocą 3-żyłowego odcinka przewodu. Należy eksperymentalnie dobrać miejsce zamocowania czujnika, aby odwzorować średnią temperaturę panującą wewnątrz pojazdu i  uniknąć niepotrzebnych zadziałań automatyki. Unikać należy montażu czujnika w  pobliżu nawiewów, drzwi, okien itp. Najlepszym miejscem wydaje się być tylna część tunelu środkowego bądź kieszeń-schowek pod radioodbiornikiem. Zgodnie z tym, co napisano wcześniej, poniższy sterownik realizuje swoje funkcje przy użyciu przekaźników dużej mocy, których styki wykonawcze podłączone są do styków odpowiadających im wyłączników zamontowanych oryginalnie w pojeździe. Dodatkowo, należy zwrócić uwagę na fakt, iż przekaźniki sterujące załączaniem układu klimatyzacji manualnej oraz wyłącznika świateł mają dwa komplety styków, co wynika wyłącznie z faktu, iż wyłączniki odpowiadających im układów (których to styki „bocznikują”) wyposażone są także w  więcej niż jeden styk wykonawczy i  aby „poprawnie” załączyć wybrany układ należy dobrać przekaźnik o  takim samym układzie styków. Wygląd typowych złącz radioodbiornika wraz z  zaznaczeniem interesujących nas wyprowadzeń pokazano na rysunku 6. Na rysunkach 7…9 pokazano sposób dołączenia sterownika do poszczególnych modułów pojazdu (na przykładzie samochodu Opel Meriva, rok modelowy 2004).

27

2013-06-28 08:05:49


PROJEKTY Sposób dołączenia sterownika do wtryskiwacza paliwa To połączenie należy wykonać nader starannie zachowując dużą ostrożność, by nie doprowadzić do zwarcia przewodów zasilających wtryskiwacz, co mogłoby skutkować uszkodzeniem wyjściowych obwodów sterujących elektronicznego układu sterującego pracą silnika ECU. Każdy wtryskiwacz ma 2 wyprowadzenia: pierwsze z nich to sygnał +12  V, który zostaje podany po przekręceniu kluczyka stacyjki i który należy dołączyć do wejścia „plus” sterownika. Drugie to sygnał sterujący z  modułu ECU (komutowana masa), który należy dołączyć do wejścia ECU sterownika. Wspomniane przewody trzeba starannie zabezpieczyć przed możliwością ewentualnego przetarcia izolacji i powstania zwarcia – dotyczy to zwłaszcza otworów przelotowych, przez które zostaną one przeprowadzone. Aby maksymalnie zabezpieczyć wejściowy układ pomiarowy czasu wtrysku przed zaburzeniami (np. występującymi zwykle w  pobliżu listwy zapłonowej), najlepiej zastosować dwużyłowy przewód ekranowany o  odpowiednim przekroju, a  ekran tego przewodu dołączyć na obu końcach do masy pojazdu. Możliwe jest także podłączenie układu formującego impulsy wtryskiwaczy paliwa bezpośrednio do odpowiedniego wyjścia sterownika silnika ECU, na którym to występuje przebieg sterujący pracą wtryskiwaczy. W takim przypadku należy odpowiednio zmniejszyć wartość rezystora R7 ustalającego prąd diody LED transoptora PC817. Na rysunku  10 przedstawiono rysunek montażowy układu TripCo wraz z  opisem wyprowadzeń poszczególnych złącz.

Obsługa Jako, że urządzenie TripCo jest medium, które może być obsługiwane podczas jazdy samochodem, ergonomia i prostota obsługi tegoż sterownika jak i  czytelność interfejsu użytkownika była podstawowym kryterium

przy konstruowaniu stosownych procedur sterujących. Zgodnie z tymi podstawowymi założeniami, na płytce sterownika przewidziano jedynie 3 elementy sterujące (microswitche) umownie oznaczone PLUS, MINUS i  MODE). Jak łatwo się domyślić, przyciski PLUS i  MINUS służą do regulacji aktualnie wyświetlanych parametrów pracy, zaś przycisk MODE służy do zmiany aktualnie wyświetlanego ekranu Menu. Dodatkowo, dla większości trybów pracy, długotrwałe przytrzymanie przycisków PLUS i  MINUS zwiększa szybkość regulacji wybranego parametru urządzenia. Oprócz wspomnianej powyżej funkcjonalności, przyciski MINUS i  MODE posiadają dodatkowe funkcje: długie przyciśnięcie przycisku MODE powoduje zapisanie bieżącego trybu pracy urządzenia w nieulotnej pamięci układu by tryb ten stał się aktywnym trybem pracy po ponownym włączeniu zapłonu zaś długie przyciśnięcie przycisku MINUS powoduje wykasowanie liczników dystansu i  średnich wartości obliczeniowych. Rysunek wszystkich dostępnych trybów pracy sterownika pokazano na rysunku  11, zaś na rysunku  12 pokazano diagram obrazujący system Menu jak również sposób obsługi urządzenia (symbole przycisków wypełnione kolorem czarnym oznaczają długie naciśnięcie wybranego przycisku).

Rysunek 8. Sposób podłączenia układu TripCo do modułu wyłącznika świateł pracy uruchamiamy poprzez naciśnięcie i przytrzymanie przycisku MODE podczas włączania urządzenia (zapłonu), co zostanie zasygnalizowane przez sterownik wyświetleniem okna informacyjnego z napisem „setup, wait”. W  tym trybie pracy urządzenia możemy określić wielkość następujących stałych niezbędnych w  procesie obliczania zużycia paliwa, prędkości jazdy, drogi oraz kosztów: • Stała wtryskiwacza (w  [ml/min]): jest to wielkość charakterystyczna dla każdego wtryskiwacza elektronicznego wtrysku paliwa informująca nas o  ilości paliwa, jakie może on wprowadzić do komory spalania w jednostce czasu

Setup i tryb kalibracji stałej wtrysku Urządzenie TripCo wyposażono w  specjalny, konfiguracyjny tryb pracy, dzięki któremu możemy określić pewne, niezbędne parametry regulacyjne nieodzowne z punktu widzenia funkcjonalności komputera pokładowego. Ten tryb

Rysunek 9. Sposób podłączenia układu TripCo do modułu przełącznika biegów wentylatora dmuchawy i wyłącznika układu klimatyzacji A/C

Rysunek 10. Rysunek montażowy układu TripCo wraz z opisem wyprowadzeń poszczególnych złącz

28

020-030_tripco.indd 28

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:49


Komputer samochodowy

Rysunek 11. Dostępne tryby pracy sterownika TripCo wraz z opisem wyświetlanych wartości

(przy założeniu 100% czasu otwarcia zaworu i stałym, charakterystycznym dla każdego wtryskiwacza ciśnieniu zasilającym). • Stała przetwornika drogi (impulsatora, w  [imp/obr]): jest to wielkość charakterystyczna dla każdego impulsatora informująca nas o  liczbie impulsów przypadających na 1 obrót koła (osi); dla przykładu w  większości nowych modeli marki Opel jest to wartość 29 imp/obr. • Obwód opony (w [cm]). • Koszt 1l paliwa (w [zł]). Wspomniane stałe można znaleźć w  Internecie posiłkując się wszelkiego rodzaju forami o  tematyce elektronicznej. Obwód opony, a w zasadzie drogę, jaką pokona pojazd w czasie jednego, pełnego obrotu koła należy wyznaczyć empirycznie. W  tym celu zaznaczamy (np. kredą) najniżej położone miejsce styku opony z  powierzchnią drogi, następnie standardowo obciążony pojazd przetaczamy tak by koło wykonało jeden, pełen obrót, po czym mierzymy pokonany odcinek drogi. Ostatnią pozycją Menu trybu konfiguracyjnego jest możliwość wprowadzenia własnego napisu użytkownika, który to możemy później wywołać jako jeden z  trybów pracy urządzenia. Wszystkie wprowadzone wartości zostaną zachowane w  nieulotnej pamięci EEPROM urządzenia, po czym sterownik przejdzie do normalnego trybu pracy. Niestety, jak pokazała praktyka, pewnych trudności może czasami nastręczać znalezienie parametrów stosowanych w naszym pojeździe wtryskiwaczy, ponieważ te elementy są często wykonywane na zamówienie producenta pojazdu i na próżno szukać ich oznaczeń na stronach producentów

REKLAMA

Najwiêkszy wybór profesjonalnej chemii dla elektroniki i przemys³u lakiery do zabezpieczania PCB, kleje i pasty termoprzewodz¹ce, œrodki do mycia p³ytek drukowanych i szablonów, maskuj¹ce zalewy lateksowe, smary do kontaktów, masy silikonowe do elektroniki, silikonowe pokrycia cienkowarstwowe, silikonowe uszczelniacze, ¿ywice poliuretanowe i epoksydowe do zalewania uk³adów elektronicznych, preparaty czyszcz¹ce, preparaty smaruj¹ce, preparaty zabezpieczaj¹ce, pow³oki przewodz¹ce, pasty i kleje do monta¿u SMT

ul.Zwoleñska 43/43a ELEKTRONIKA PRAKTYCZNA 7/2013

020-030_tripco.indd 29

04-761 Warszawa

www.semicon.com.pl tel. 22 615-73-71 29

2013-06-28 08:05:49


PROJEKTY stosownych podzespołów. Na szczęście przewidziano pewien mechanizm, za pomocą którego sterownik TripCo jest w stanie samodzielnie wyznaczyć poszukiwaną stałą na podstawie informacji o  zużytym paliwie i  pomiarze sumarycznego czasu wtrysków. Do tego celu przewidziano specjalny tryb kalibracyjny, który może zostać uruchomiony poprzez naciśnięcie i  przytrzymanie przycisku MINUS podczas włączania urządzenia, co zasygnalizowane zostanie przez sterownik wyświetleniem okna informacyjnego z  napisem „calibr. on”. Ponowne wykonanie wspomnianych czynności (podczas ponownego włączania urządzenia z  uruchomionym wcześniej trybem kalibracyjnym) powoduje obliczenie żądanej stałej wtryskiwacza a  następnie opuszczenie procesu kalibracji sygnalizowane wyświetleniem okna informacyjnego z napisem „calibr.off ”. Co oczywiste, do czasu zakończenia procesu kalibracji nie są dostępne następujące wartości obliczeniowe: chwilowe, średnie i całkowite zużycie paliwa (jest to sygnalizowane wyświetleniem napisu „—” w  odpowiednich polach wspomnianych wartości). Aby przeprowadzenie procesu kalibracji miało w ogóle sens należy zastosować następujący algorytm postępowania: • Zużyć całe, dostępne paliwo, aż do zaświecenia się lampki sygnalizującej tzw. rezerwę paliwa. • Zatankować 20 litrów paliwa. • Uruchomić procedurę kalibracji. • Zużyć całe, dostępne paliwo (zatankowane wcześniej 20 litrów), aż do ponownego zaświecenia się lampki sygnalizującej tzw. rezerwę paliwa. • Zakończyć procedurę kalibracji. Po wykonaniu tych czynności układ TripCo obliczy, wyświetli i zapisze w nieulotnej pamięci wartość stałej wtryskiwacza, po czym przejdzie do normalnego trybu pracy. Gdyby obliczona przez sterownik wartość stałej wtryskiwacza powodowała zaniżanie lub zawyżanie rzeczywistego spalania paliwa, w  każdej chwili możemy dokonać odpowiedniej jej korekty poprzez wejście w  system Setup i  zwiększenie (w  przypadku zaniżania spalania) lub zmniejszenie (w przypadku zawyżania

Rysunek 12. Diagram obrazujący system Menu i sposób obsługi sterownika TripCo spalania) wspomnianej wartości. Należy zaznaczyć, iż tak jak w  przypadku oryginalnych rozwiązań typu „komputer pokładowy”, obliczane wartości zużycia paliwa są obarczone pewnym acz niewielkim błędem wynikającym choćby z  założenia

stałego ciśnienia zasilającego wtryskiwacz czy też z zaokrągleń obliczeniowych. Dodatkową pozycją Menu jest możliwość ustawienia kontrastu wyświetlacza OLED (w 128 krokach).

Robert Wołgajew, EP

REKLAMA

30

020-030_tripco.indd 30

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:05:49


STK_ADAU1701 – DSP dla każdego PROJEKTY

DSP dla każdego (1) Zestaw z STK_ADAU1701 Firma Analog Devices ma w ofercie kilkanaście procesorów sygnałowych, a  wśród nich znajduje się bardzo interesująca rodzina SigmaDSP. Charakterystyczną cechą i  jednocześnie największą zaletą układów z  tej grupy jest darmowe oprogramowanie narzędziowe SigmaStudio. Jest to środowisko graficzne, w  którym „rysujemy” schemat z  gotowych, parametryzowanych bloków funkcjonalnych. Zwalnia to z  konieczności opanowywania asemblera DSP i  zagłębiania się w  tony dokumentacji. Dzięki niewielkiemu nakładowi sił potrzebnych na opanowanie oprogramowania SigmaDSP możliwa jest realizacja nawet złożonych projektów w  bardzo krótkim czasie, co do tej pory nie było możliwe, a  procesory DSP były przeznaczone tylko dla specjalistów. Rekomendacje: projekt ma spore walory użytkowe i  edukacyjne, przyda się nie tylko do zestawu audio, ale również w  laboratorium uczelnianym. Niestety, firma Analog Devices nie wpisuje się w  trend wyznaczony przez firmy np.: TI, NXP, STM. Są to wytwórcy zestawów uruchomieniowych za kilka dolarów. Sam programator USB od Analoga kosztuje prawie 100$, a ceny zestawów startowych również są wysokie. Na szczęście ograniczenie można obejść, rezygnując nieco z  wygody pracy z  programatorem USB, przy wykorzystaniu dowolnego programatora pamięci EEPROM I2C. Z  rodziny SigmaDSP jako serce układu prototypowego wybrałem ADAU1701. Jest on dostępny w cenie kilku dolarów za sztukę, ma obudowę TQFP48, którą da się łatwo przylutować nawet w warunkach domowych. Przy tym układ ADAU1701 jest nie tylko procesorem DSP, ale całym, zintegrowanym systemem cyfrowej obróbki sygnału audio. Schemat blokowy ADAU1701 ELEKTRONIKA PRAKTYCZNA 7/2013

031-033_mini-dsp.indd 31

AVT 5403

zamieszczono na rysunku 1. Najważniejsze funkcje i  parametry ADAU1701 są następujące: • zgodność z  graficznym oprogramowaniem SigmaStudio, • 50 MIPS wydajności, 28/56-bitowe DSP, • wbudowany oscylator i  konfigurowalny blok PLL, • obsługa częstotliwości próbkowania do 192 kHz, • dwa przetworniki A/C (SNR 100 dB), • cztery przetworniki C/A (SNR 104 dB), • interfejs zgodny z I2S dla bezpośredniej cyfrowej obróbki sygnału z  pominięciem A/C-C/A, • wejścia programowalne GPIO, w  tym cztery analogowe GPIO-ADC, dla realizacji interfejsów użytkownika w trybie pracy samodzielnej, • obsługa zewnętrznej pamięci programu i konfiguracji I2C (24LC256), • możliwa praca samodzielna, bez procesora sterującego, • zasilanie 3,3  V, wbudowany stabilizator dla rdzenia 1,8 V. Opisywany zestaw uruchomieniowy składa się z  dwóch płytek: płytki z procesorem ADAU1701_MB, której schemat pokazano na rysunku 2 oraz płytki zasilacza i przyłączy ADAU1701_CNB, która będzie opisana w drugiej części artykułu. Głównym elementem zestawu jest układu scalony ADAU1701 (U1). Moduł jest zasilany napięciem zewnętrznym 5  V, którego obecność sygnalizuje świecenie się diody LD. Wewnętrzne zasilanie 3,3  V zapewnia stabilizator U4. Napięcie 3,3 V jest rozdzielone na zasilanie części analogowej V3A i cyfrowej V3D za pomocą filtru złożonego z dławików L1 i L2. Zespoły konden-

W ofercie AVT* AVT-5403 A Podstawowe informacje: • Płytka uniwersalna z układem firmy Analog Devices ADAU1701. • Umożliwia łatwe zapoznanie się z podstawowymi funkcjami DSP. • Programowanie za pomocą SigmaStudio. • Zasilanie +5 V/120 mA. Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD) AVT-5385 Przetwornik D/A z układem TDA1541 (EP 3/2013) AVT-5359 1-bitowy przetwornik A/D wysokiej klasy (EP 9/2012) AVT-5346 Wielobitowy przetwornik cyfrowo-analogowy audio z PCM1704 (EP 6-7/2012) AVT-5335 DAC TDA1543 (EP 3/2012) AVT-5188 Kompaktowy przetwornik C/A dla Audiofilów (EP 6/2009) * Uwaga: 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. 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 wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

satorów ceramicznych i tantalowych (np. C7, CE5) odsprzęgają zasilanie poszczególnych bloków funkcjonalnych ADAU1701. Układ U1 ma wbudowany stabilizator napięcia dla rdzenia DSP (1,8 V). Konieczną wydajność prądową zapewnia Q1. Kondensatory CE4, C6, C8 odsprzęgają zasilanie rdzenia DSP. Układ U3 typu MCP100T-3 zapewnia sygnał zerowania układu U1 po włączeniu zasilania. Układ U1 jest skonfigurowany do pracy samodzielnej, bez zewnętrznego kontrolera sterującego (SELFBOOT mode). Do przechowywania danych w  trybie samodzielnym służy pamięć 24FC256 (U2) z interfejsem I2C. Rezystory R5…R7 podciągają sy-

31

2013-06-28 08:06:50


PROJEKTY

Rysunek 1. Schemat blokowy ADAU1701 (za notą AD) gnały sterujące. Sygnały interfejsu I2C wyprowadzone są na złącze programowania I2C. Zwora PGM umożliwia wprowadzenie wyjść I2C układu U1 w stan wysokiej impedancji, umożliwiając programowanie U2

w systemie za pomocą zewnętrznego programatora np. USBi. W  trakcie programowania zwora PGM musi być zwarta. Podczas pracy samodzielnej, szczególnie, gdy U1 współpracuje z  GPIO, których

stan musi zostać zapamiętany nawet po wyłączeniu zasilania lub wymagają zapamiętania parametry z obróbki sygnału, układ U1 ma możliwość zapisu tych danych do pamięci EEPROM. Do wyzwolenia procedury zapisu służy narastające zbocze sygnału WB (WriteBack) generowane przez układ zewnętrznej detekcji zaniku zasilania. Po wykryciu sygnału WB, układ U1 wystawia zeruje wyjście WP i  zapisuje pamięć danymi koniecznymi do ponownego prawidłowego uruchomienia programu DSP. Cykl WB jest jednorazowy i kończy pracę procesora, niezależnie od ilości wyzwoleń WB. Przez ten czas, oczywiście, musi być zapewnione poprawne zasilanie 3,3 V, aby nie zadziałał układ zerowania i nie uszkodził danych zapisywanych do pamięci. Wystarczy w  tym celu odpowiednio dobrać pojemności w obwodach zasilających, tak aby przez ok. 1 ms od zbocza WB, nie wystąpił sygnał RESET. Należy zapewnić także, aby narastające zbocze WB nie pojawiło się podczas załączenia zasilania już po zakończeniu cyklu RESET, gdyż wygeneruje procedurę zapisu i zakończy pracę procesora.

Rysunek 2. Schemat ideowy modułu ADAU1701_MB

32

031-033_mini-dsp.indd 32

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:06:50


Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

STK_ADAU1701 – DSP dla każdego Układ U1 domyślnie pracuje przy fs=48 kHz. Jest taktowany oscylatorem kwarcowym 12,288  MHz, (256×48  kHz). Kondensatory C10 i  C11 oraz rezystor R10 zapewniają prawidłową pracę oscylatora. W  niewielkim zakresie możliwe są sprzętowe zmiany częstotliwości oscylatora np. dla fs=44,1 kHz (×256) kwarc musi mieć częstotliwość 11,2896 MHz. W  wypadku pracy z  zewnętrznym sygnałem cyfrowym I2S, oscylator zostaje Wykaz elementów Rezystory: R1*: 18,2 kV (SMD 0805, 1%) R2*, R3*: 8,06 kV (SMD 0805, 1%) R4, R12: 1 kV (SMD 0805) R5…R7: 2,2 kV (SMD 0805) R8, R9, R11, R13: 470 V (SMD 0805) R10: 100 V (SMD 0805) Kondensatory: C1…C9: 0,1 mF SMD 0805) C10, C11: 22 pF (SMD 0805) C12: 56 nF (SMD 0805) C13: 3,3 nF (SMD 0805) C14, C15: 10 mF (SMD 0805) CE1…CE5, CE7: 10 mF (tantalowy „A”) Półprzewodniki: U1: ADAU1701 (VQFP48) U2: 24LC256 (SO-8) U3: MCP100T3 (SOT-23) U4: LM1117-3.3 (SOT-223) LD: dioda LED SMD (wielkość 0805) Q1: BC807-40 (SOT-23) Inne: I2C: listwa męska SIL3×2,54 mm J1, J2: listwa męska SIL14×2,54 mm L1, L2: 0,1 mH/100 mA (dławik SMD) M0, M1, OSC: zwora na płytce drukowanej PGM: listwa SIL2×2,54 + zwora XT1: 12,288 MHZ (HC49S) * opis w tekście

Tabela 1. Wybór mnożnika fs fs M0 M1 64 GND GND 256* GND V3D 384 V3D GND 512 V3D V3D (* domyślne ustawienia dla 48kHz)

Tabela 2. Dobór elementów A/C Uwe rms R1 R2,R3 Rwe 0.9V* 18k 7k 9k 1.0V 18k 8k 10k 2.0V 18k 18k 20k *0,9 Vrms A/C odpowiada pełnemu zakresowi napięć C/A

Rysunek 3. Proponowany przez AD filtr pasywny (za notą AD)

Rysunek 4. Proponowany przez AD filtr aktywny (za notą AD) ELEKTRONIKA PRAKTYCZNA 7/2013

031-033_mini-dsp.indd 33

wyłączony zworą OSC (punkt lutowniczy OSC), a do wejścia MCLKI musi zostać doprowadzony sygnał MCLK z  odbiornika I2S. Zwory M0/M1 umożliwiają wybór mnożnika fs dla wewnętrznego układu PLL zgodnie z  tabelą  1. Mnożnik 256×fs jest ustawiony domyślnie. Rezystor R11 oraz kondensatory C12 i C13 są elementami filtru generatora PLL. Dla poprawnej pracy PLL elementy musza mieć tolerancję nie większa niż 10%. Sygnały GPIO MP0…MP11 umożliwiają sterowanie lub sygnalizację pracy DSP. Linie GPIO są zgodne z 3,3 V, każda z nich może być skonfigurowana w  SigmaStudio jako wejście, wyjście lub pełnić funkcję specjalną np. doprowadzenia interfejsu I2S. Wejścia MP2, MP3, MP8, MP9 są przeznaczone do współpracy z sygnałami analogowymi poprzez ADC z  GPIO. Oprogramowanie SigmaStudio umożliwia obsługę wejść GPIO do odczytu klawiszy, enkoderów, potencjometrów lub wyjść do sterowania LED itp. W zależności od wybranego układu manipulacyjnego, konieczne jest dopasowanie interfejsu sprzętowego. Dokładnie omówione zostanie to w  drugiej części artykułu. Wszystkie piny GPIO doprowadzone są do złącz płytki ADAU1701. DSP zawiera dwukanałowy przetwornik A/C. Sygnał wejściowy jest doprowadzony poprzez rezystory R2 i R3 do wejść ADC0, i  ADC1. Rezystor R1 ustala zakres napięć wejściowych A/C. Zależność zakresu napięcia wejściowego i rezystancji wejściowej umieszczono w tabeli 2. Wartość rezystancji zależy od fs. Dobór R1…R3, musi uwzględniać odpowiednie wysterowanie przetwornika A/C, aby wykorzystać pełen zakres dynamiczny, ale nie dopuścić do jego przesterowania. Dokładne informacje na temat doboru zamieszczone są w karcie katalogowej ADAU1701. Wejścia A/C wymagają separacji galwanicznej poprzez kondensatory o  pojemności 22…100  mF, zależnie od Rwe i  oczekiwanej, dolnej częstotliwości pasma przenoszenia. Należy pamiętać o tym, jeżeli płytka będzie używana we własnej aplikacji – bez odpowiedniego modułu bazowego. Jeżeli aplikacja wymaga, można zastosować na wejściu wtórnik zwiększający Rwe oraz filtr dolnoprzepustowy ograniczający wpływ sygnałów ponadakustycznych na przetwarzany sygnał. Można go zbudować w  oparciu o  precyzyjne wzmacniacze operacyjne np. zalecane przez producenta AD860x. Jako R1…R3 jest konieczne użycie rezystorów precyzyjnych o  tolerancji nie gorszej niż 1%, ponieważ mają one bezpośredni wpływ na wynik konwersji. Jeżeli nie używamy A/C, wejścia mogą pozostać niepodłączone. Ostatnim elementem struktury ADAU1701 są wbudowane cztery prze-

tworniki C/A o  zakresie napięcia wyjściowego 0,9 Vrms. Pracują one w konfiguracji odwracającej. Jeżeli DSP musi zachować fazę sygnału, to po przetworzeniu jest konieczne programowe jej odwrócenie w  SigmaStudio lub zastosowanie filtru/ bufora odwracającego. Wyjścia z  C/A  wymagają odfiltrowania niepożądanych harmonicznych powstałych po konwersji C/A. Płytka ADAU1701_MB nie ma wbudowanego filtru. Należy go zastosować w zależności od potrzeb. Producent proponuje tani filtr pasywny lub układ aktywny oparty o  wzmacniacze operacyjne o  znacznie lepszych parametrach tłumienia. W płytce bazowej modelu zastosowano tańszy filtr pasywny. Przykładowe konfiguracje filtrów przedstawiono na rysunku  3 i  rysunku  4 (za notą AD). Ze względu na występowanie składowej stałej na wyjściu przetwornika C/A, podobnie jak dla A/C, jest konieczne jego odseparowanie za pomocą kondensatora sprzęgającego.

Montaż Moduł ADAU1701_MB jest zmontowany na niewielkiej, dwustronnej płytce drukowanej. Wszystkie sygnały GPIO, A/C oraz C/A wyprowadzone są na złącza szpilkowe J1 i  J2 umożliwiające wykorzystanie modułu jako gotowego „klocka DSP” we własnych projektach, niezależnie od proponowanej płytki bazowej. Schemat montażowy płytki pokazano na rysunku 5. Sposób montażu jest typowy i nie wymaga opisu, należy tylko sprawdzić jego poprawność. W modelu złącza J1 i J2 wlutowano od spodu umożliwiając wykorzystanie modułu nawet z płytką stykową lub prototypową. Złącze I2C jest wlutowane od góry ułatwiając podłączenie programatora. Przed uruchomieniem należy dobrać zgodnie z  opisem rezystancje R1…R3 oraz skonfigurować układ oscylatora zworami M0, M1, OSC. Moduł wymaga zasilania +5 V/120 mA. Uruchomienie modułu, współpraca z  SigmaStudio oraz przykładowy projekt zostanie omówiony w  następnej części artykułu – zapraszam do lektury.

Adam Tatuś, EP

Rysunek 5. Rozmieszczenie elementów

33

2013-06-28 08:06:50


PROJEKTY

Dwudrożna zwrotnica aktywna Przedstawiona zwrotnica aktywna jest podstawowym elementem aktywnego dwudrożnego zestawu głośnikowego i niewielkim nakładem umożliwia rozpoczęcie eksperymentów z  „profesjonalnym” podejściem do przetwarzania dźwięku. Rekomendacje: zwrotnica przyda się osobom, które samodzielnie wykonują zestawy głośnikowe. W  podstawowej wersji częstotliwość podziału jest ustalona, ale po dodaniu kilku elementów podział może być zmieniany płynnie w dwóch zakresach 100 Hz…1 kHz lub 1 kHz…10 kHz. Nachylenia charakterystyk filtrów wynoszą 12 dB/oktawę, co spełnia wymagania większości aplikacji, w  których może być zastosowana zwrotnica. Z  niewiadomych przyczyn, na rynku konsumenckich zestawów głośnikowych o  dobrej jakości, w  przeciwieństwie do nagłośnienia profesjonalnego, znalezienie dwudrożnej zwrotnicy aktywnej niemal graniczy z  cudem. W  sprzęcie profesjonalnym wielokanałowy aktywny tor stosuje się nie tylko w dużych systemach estradowych, lecz także do niewielkich monitorów studyjnych, w  których już dawno „odkryto” zalety filtracji aktywnej i  oddzielnego wzmacniania pasm składowych. Sytuacja jest o tyle dziwna, że także grono DIY zwykle otwarte na każde poprawiające osiągi rozwiązania podchodzi to tematu zwrotnic aktywnych jak przysłowiowy „pies do jeża” tworząc w dalszym ciągu typowe zespoły głośnikowe z podziałem biernym. O  ile taki bieg rzeczy był zrozumiały kilka lat temu wstecz, gdy dobry wzmacniacz sporo kosztował w porównaniu z ceną kilku elementów biernych, to dzisiaj

sytuacja jest diametralnie inna, a cewka taśmowa lub kondensator foliowy o dobrej jakości mogą kosztować tyle, co dobry układ scalony do wzmacniacza mocy. Opracowanie zwrotnicy pasywnej, nawet popartej wstępnymi symulacjami komputerowymi (korzystanie ze standardowych wzorów książkowych przeważnie prowadzi do katastrofy), w wypadku prostej konstrukcji dwudrożnej wymaga poniesienia sporych kosztów elementów biernych przeznaczonych na „dostrajanie” zwrotnicy. Nieliniowość głośników, zmienna impedancja, różnice efektywności, wzajemny wpływ elementów poszczególnych torów bardzo często zmuszają do wielu kompromisów mających wpływ na uzyskany efekt końcowy. Rozbudowane układy filtrów pasywnych są zmorą większości wzmacniaczy mocy, szczególnie lampowych, niespecjalnie radzących sobie z  dużymi skokami obciążenia, które w  najlepszym przypadku prowadzą do zmiany brzmienia kolumny w zależności od zasilającego ją wzmacniacza, a w skrajnych wypadkach do przesterowania, zadziałania zabezpieczeń nadprądowych końcówki lub wręcz uszkodzenia wzmacniacza. W  handlu można spotkać wiele zestawów głośnikowych, w których złożone filtry

AVT 5404

W ofercie AVT* AVT-5404 A AVT-5404 B Podstawowe informacje: • Zwrotnica aktywna, dwudrożna. • Możliwość zmiany częstotliwości podziału. • Możliwość zmiany nachylenia charakterystyki. • Napięcie zasilające ±12 V/100 mA. Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD) AVT-1687 Filtr do subwoofera (EP 8/2012) AVT-1296 Wzmacniacz do aktywnej kolumny (EP 1/2001) AVT-2449 Filtr do subwoofera (EdW 9/2000) AVT-293 Wzmacniacz do kolumny aktywnej (EP 8/1996) * Uwaga: 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. 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 wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

pasywne są przyczyna spadku impedancji nawet poniżej połowy wartości znamionowej, co z technicznego punktu widzenia jest sprawą kuriozalną, ale w kategoriach marketingu widocznie nie. W zależności od wzajemnej konfiguracji wzmacniaczy i  głośników możemy wskazać

Rysunek 1. Możliwe konfiguracje systemów dwudrożnych

34

034-038_zwrotnica.indd 34

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:08:04


Dwudrożna zwrotnica aktywna a)

b)

Rysunek 2. Topologie filtrów aktywnych, a.Sallen&Key, b. Variable–State 12 dB/oktawę a)

b)

Rysunek 3. Odpowiedzi zwrotnicy LR2 f=1 kHz, Q=0,5; 12 dB/oktawę trzy typowe sposoby połączenia systemów dwudrożnych. Pokazano je na rysunku 1. Na rysunku  1a pokazano najczęściej spotykany schemat dwudrożnego, pasywnego zestawu głośnikowego zasilanego jest z jednego wzmacniacza. Przykładowy zespół dwudrożny ma filtry drugiego rzędu o  naELEKTRONIKA PRAKTYCZNA 7/2013

034-038_zwrotnica.indd 35

chyleniu 12 dB/oktawę oraz tłumik R1/R2 wyrównujący różnice skuteczności głośników wysokotonowych. Zaletą takiej zwrotnicy jest nieskomplikowana budowa, a wadą ograniczony wybór głośników (np.: praktyczny problem zgrania skutecznego głośnika nisko-średniotonowego z  przeciętnej efektyw-

ności głośnikiem wysokotonowym – trudno pogodzić się ze stratami mocy przy tłumieniu skuteczności głośnika) oraz wpływ filtru dolnoprzepustowego na górnoprzepustowy (możliwe rezonanse pasożytnicze w paśmie akustycznym), szczególnie przy sterowaniu wzmacniaczem o  podwyższonej rezystancji wyjściowej. Często spotyka się zespoły dwudrożne z  tzw. biwiringiem, czyli całkowicie rozdzielonym okablowaniem sekcji niskoi  wysokotonowej. Można wywnioskować, że ktoś zauważył wzajemny wpływ sekcji i doprowadza sygnał osobnymi przewodami, niestety w  większości rzeczywistych domowych zastosowań działanie biwiringu jest „homeopatyczne” i poprawia nastrój głównie producentom kabli. Chyba, że mamy bardzo długie przewody o  zbyt małym przekroju. Przystosowanie fabrycznej kolumny do biwiringu (niestety nie ma dobrego, polskiego określenia) ma jednak duża zaletę – bardzo łatwo przejść do konfiguracji z biampingiem, czyli rozdzielonymi wzmacniaczami sekcji. Na rysunku  1b przedstawiono rzadziej spotykany układ biampingu. Zwrotnica w  dalszym ciągu składa się z  elementów biernych, jednak zasilanie sekcji z  osobnych wzmacniaczy całkowicie eliminuje elektryczny wpływ poszczególnych filtrów, co jest największa zaletą układu. W rozwiązaniach DIY pojawia się nawet możliwość zastosowania głośników o znaczących różnicach efektywności, a  w  przypadku fabrycznych zestawów głośnikowych – brak ingerencji w budowę układu. Wadą jest konieczność zastosowania drugiego wzmacniacza mocy oraz (w  dalszym ciągu) wbudowana zwrotnica pasywna. W  zależności od częstotliwości podziału oraz skuteczności głośników jest możliwe zastosowanie w  torze wysokotonowym wzmacniacza o  mniejszej mocy, co nieco obniża koszt rozwiązania. Na rysunku 1c pokazano układ ze zwrotnica aktywną. Wyeliminowane są elementy zwrotnicy pasywnej, głośniki są dołączone bezpośrednio do wyjść wzmacniaczy pasmowych, nie ma niekorzystnego wpływu elementów RC na parametry przetworników i  jest zapewnione największe możliwe tłumienie, gdyż do rezystancji wyjściowej

35

2013-06-28 08:08:05


Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

PROJEKTY dodają się jedynie parametry przewodów połączeniowych. Poszczególne pasma nie wpływają na siebie elektrycznie. Otwierają się możliwości współpracy głośników o dużych różnicach efektywności, wykluczone przy zastosowaniu zwrotnicy pasywnej. Wadą jest koszt dwóch wzmacniaczy i  elementów zwrotnicy aktywnej, ale tak jak wcześniej pisałem, jest on porównywalny do kosztu dobrej zwrotnicy biernej. Użycie zwrotnicy aktywnej umożliwia realizację filtrów o  praktycznie dowolnych częstotliwościach przepustowych czy odcięcia, w tym płynnego strojenia „w locie” nachyleń charakterystyk filtrów, wyboru odpowiedzi impulsowej poprzez zmianę wartości kilku elementów biernych w celu dopasowania do własnych preferencji. Praktyczna realizacja dwudrożnej zwrotnicy aktywnej wymaga oczywiście dwóch filtrów: dolno- i górnoprzepustowego. Otwarty pozostaje jednak wybór topologii samego układu filtru. W  układach audio (np.: filtry antyaliasingowe) najczęściej spotykane są filtry oparte o układ Sallen&Key (rysunek 2a), charakteryzujący się względnie nieskomplikowaną budową. Do wad z  punktu widzenia naszych zastosowań należą: problem ze współbieżnym przestrajaniem sekcji filtrów (konieczna zmiana 4 elementów w zwrotnicy monofonicznej) oraz zależność dobroci filtru od stosunku rezystorów R1/R2, a  te z  kolei wpływają bezpośrednio na częstotliwość podziału. Jeżeli uprościmy założenia i chcemy zachować stałą dobroć filtru, to zmieniając częstotliwość odcięcia musimy zmieniać poWykaz elementów Rezystory: R1, R11…R14: 47 kV (SMD 1206, 1%) R2…R8, R6A: 10 kV (SMD 1206, 1%) R9, R10: 1,6 kV (SMD 1206, 1% dobierany wg. tabeli 1) RV1: 10 kV/B (pot. R=5 mm, stojący, do druku) Kondensatory: C1, C4, C5: 2,2 mF (foliowy R-5 mm) C2, C3: 10 nF (foliowy R-5 mm) C6…C11: 0,1 mF (SMD 1206) CE1...CE6: 10 mF/25 V (elektrolityczny R=2,5 mm) Półprzewodniki: U1…U3: LM4562 (DIP-8) Inne: IN: gniazdo RCA do druku J1: złącze IDC2×3/2,54 mm L1…L6: 10 mH (dławik 50 mA, SMD 1206) HPOUT: ARK2/200 (5 mm) IN1: ARK2/200 (5 mm) J2: ARK3/200 (5 mm) LPOUT: ARK2/200 (5 mm) Wersja przestrajana RV: 20 kV/C (pot. wykładniczy, podwójny) CV: 90 nF (złożyć 1% 90 nF, np.z 68 nF+22 nF, foliowy) SW: MTS203 (przełącznik dwusekcyjny, zwierny) J: wtyk IDC6

36

034-038_zwrotnica.indd 36

jemności, co w praktyce uniemożliwia płynne przestrajanie. Kłopotliwa jest też konieczność zapewnienia jak najmniejszej tolerancji parametrów komponentów, co w praktyce oznacza dobranie „woreczka” identycznych elementów dla układu stereofonicznego. Układ filtru SK doskonale sprawdza

Rysunek 4. Schemat bufora wejściowego

Rysunek 5. Schemat bloku filtra VS się w wypadku stałej częstotliwości i ustalonej dobroci. Można go z powodzeniem stosować, gdy mamy komplet informacji o aktywnym zespole dwudrożnym. Na czas eksperymentów jest zdecydowanie łatwiej zastosować topologię filtru Variable-State (zmiennych stanu) pokazaną na rysunku  2b szczególnie, gdy zunifikujemy Rysunek 6. Schemat układu regulacji niektóre wartości rezystancji upraszczające częstotliwości podziału realizację praktyczną. Filtr składa się z  sumatora i  dwóch integratorów, których stałe czasowe określają częstotliwość podziału. Przyjmując R3  R4  R1 otrzymujeNajwiększa zaletą filtru jest „jednoczesne” my k LFOUT  k LFOUT  1 otrzymywanie przebiegów o  jednakowych W  praktycznej realizacji dla przestraamplitudach dla obu filtrowanych pasm, jania płynnego filtru jest wykorzystany poniezależność wzmocnienia, dobroci i częstodwójny potencjometr wykładniczy (C) oraz tliwości, łatwość przestrajania, stała różnica zespół przełączanych kondensatorów C do faz pomiędzy wyjściami w  całym zakresie skokowej zmiany zakresów (np. ×10). Część użytecznym. Wadą – jeden wzmacniacz operezystora R2 może być zastąpiona potencjoracyjny więcej niż w  SK, jednak współcześnie ta wada jest pomijalna. W  przypadku VS wykorzystujemy możliwość jednoczesnego przestrajania filtrów za pomocą tylko dwóch elementów R lub C, bez zmiany wzmocnienia i dobroci. Częstotliwość 1 podziału filtru wynosi: f  R  R2 2Q R C 5 Dobroć: Wzmocnienia sekcji: R 3R5 R k LFOUT   4 , k HFOUT   3 R1 R1 , Rysunek 7. Schemat bufora wyjściowego

Rysunek 8. Odsprzęganie wzmacniaczy operacyjnych ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:08:05


Dwudrożna zwrotnica aktywna niowego i może służyć jako punkt wyjściowy do opracowania filtrów innych rzędów. Szczególną uwagę zwrócono na odpowiedzi impulsowe, liniowość sumowania ciśnienia akustycznego współpracujących przetworników oraz współbieżność fazową dla kilku rzędów filtrów aktywnych (LR1, LR2, LR4 i rzadko stosowanego LR8).

Zasada działania

Rysunek 9. Schemat montażowy zwrotnicy metrem dla płynnej zmiany dobroci filtru, a część R1 będzie służyła do regulacji wzmocnienia. O ile temat częstotliwości podziału jest zrozumiały i jej wybór jest narzucony poprzez charakterystyki zastosowanych przetworników, a tyle wybór dobroci filtru wymaga eksperymentów. Bardzo przydatne jest tu opracowanie pionierów zestawów aktywnych „Active Crossover Networks for Non-coincident Drivers” J. Audio Eng. Soc., vol. 24, pp. 2-8 (Jan-Feb 1976), w którym S.Linkwitz z R.Rileyem wykładają teorię odpowiedniego doboru parametrów filtrów i opisują prototyp zwrotnicy LR-4 (Linkwitz-Riley, 4-rząd, 24 dB/oktawę), która do dzisiaj jest standardem wśród analogowego, profesjonalnego sprzętu nagłośnie-

Przedstawiona w artykule zwrotnica jest oparta o układ filtra drugiego rzędu i strojenie LR2 Najważniejszym założeniem strojenia LR2 jest ustalenie dobroci filtru drugiego rzędu na Q=0,5. Teoretyczny przebieg amplitudy sygnału i fazy pokazano na rysunku 3 (za opracowaniem Dennis A. Bohn, Linkwitz-Riley CROSSOVERS: A  PRIMER firmy RANE, http://www.rane.com/note160.html) Takie strojenie powoduje przecięcie charakterystyk amplitudowych filtrów dolno- i  górnoprzepustowych w  punkcie -6  dB, co odpowiada wypadkowemu, liniowemu sumowaniu się sygnałów wyjściowych filtrów bez zbędnego podbijania i  tłumienia sygnału w  otoczeniu punktu podziału oraz stałą różnicę przesunięć fazowych pomiędzy filtrami wynosząca 180˚. Ułatwia to aplikację, gdyż dla praktycznej realizacji wystarczy włączenie jednego z przetworników w przeciwnej fazie, bez ingerencji w układy wzmacniaczy. Oczywiście liniowe sumowanie odpowiedzi filtrów składowych nie zwalnia konstruktora zestawu od wyrównania centrów akustycznych głośników konstrukcyjnie lub elektrycznie. Praktyczna realizacja zwrotnicy jest nieco bardziej złożona niż sam filtr przedstawiony na rys. 2a. Filtr VS jest poprzedzony buforem wejściowym o regulowanym wzmocnieniu (rysunek 4). Układ umożliwia regulowanie czułości toru oraz zapewnia małą rezystancję wyjściowa konieczną do prawidłowego sterowania blokiem filtra VS, sygnał wejściowy można doprowadzić przez złącze RCA – IN lub poprzez złącze ARK–IN1, w zależności od sposobu montażu płytki. Bufor jest wykonany w konfiguracji odwracającej, gdyż tylko wtedy jest możliwe nie tylko wzmacnianie, ale także tłumienie sygnału (k=0,5…2 V/V).

KONKURS

Farnell element14, wiodący dystrybutor komponentów elektronicznych, wspólnie z redakcją Elektroniki Praktycznej ogłaszają konkurs, w  którym nagrodą główną są 3 stacje lutownicze typu 21-10115 EU firmy Tenma. Aby wziąć udział w  konkursie należy w  terminie do 31 lipca 2013 wysłać e-mail na adres konkurs@ep.com.pl zawierający w tytule „konkurs stacja Tenma”, natomiast w  treści odpowiedzi na następujące pytania: 1. W  jaki sposób można złożyć zamówienie w  Farnell element14? Podaj co najmniej trzy możliwości. 2. Jak długo trwa dostawa zamówień złożonych w Farnell element14 i ile kosztuje dostawa zamówień złożonych on-line? 3. Co to jest „element14”? ELEKTRONIKA PRAKTYCZNA 7/2013

034-038_zwrotnica.indd 37

37

2013-06-28 08:08:05


PROJEKTY Tabela 1. Wartości elementów dla typowych częstotliwości podziału C = 100 nF

C = 10 nF

f [Hz]

R [V]

f [Hz]

R [V]

100

15924

1000

15924

125

12739

1250

12739

150

10616

1500

10616

200

7962

2000

7962

250

6369

2500

6369

300

5308

3000

5308

315

5055

3150

5055

350

4550

3500

4550

400

3981

4000

3981

450

3539

4500

3539

500

3185

5000

3185

600

2654

6000

2654

630

2528

6300

2528

700

2275

7000

2275

750

2123

7500

2123

800

1990

8000

1990

850

1873

8500

1873

900

1769

9000

1769

950

1676

9500

1676

1000

1592

10000

1592

Schemat bloku filtra VS pokazano na rysunku 5. W  porównaniu do schematu ideowego z  rys.  2b, filtr jest uzupełniony o  złącze J1 umożliwiające dołączenie elementów regulujących częstotliwość podziału zgodnie z rysunkiem 6. Jeżeli zwrotnica ma pracować z  częstotliwością ustaloną (według podanego wcześniej wzoru) za pomocą rezystorów R9 i R10, kondensatorów C2 i  C3, na złącze J1 pomiędzy pinami 3-5 i  4-6 należy założyć zworki. W  wypadku regulacji płynnej należy zmontować dodatkowy układ z  rys.  6. Dla wartości elementów podanych na schematach zamieszczonych na rys.  5 i  rys.  6 jest możliwe płynne przestrajanie w  zakresach od około 1 kHz…10 kHz i po załączeniu SW-11 (dwusekcyjny, zwierny) od około 100  Hz…1  kHz. Możliwe jest także dostosowanie dobroci Q do własnych potrzeb, poprzez zmianę rezystora R6A. Rezystancja 10  kV odpowiada dobroci Q=0,5, zgodnej ze strojeniem LR2. Jej zwiększenie do 11 kV podwyższa dobroć do Q=0,7 i przybliżeniu charakterystyki do odpowiedzi Butterwortha z  podbiciem +3  dB w  punkcie

podziału. Dokładną wartość można ustalić po pomiarach przebiegu wypadkowego ciśnienia akustycznego wytwarzanego przez zestaw głośnikowy w punkcie podziału. Układ zwrotnicy ma bufor wyjściowy, którego schemat przedstawia rysunek  7. Zapewnia on niską impedancję wyjściową zwrotnicy ułatwiającą współpracę z  końcówkami mocy. Wyjście HPOUT służy do dołączenia wzmacniacza toru wysokotonowego, LPOUT – niskotonowego. Przy dołączeniu do wyjść długich przewodów do wzmacniaczy mocy, jest konieczne włączenie szeregowo z  sygnałem rezystorów 100…680  V zapobiegających niepoprawnej pracy wzmacniaczy U3 przy silnym obciążeniu pojemnościowym. Zalecam jednak wbudowanie zwrotnicy bezpośrednio do wzmacniaczy mocy, analogicznie jak dla paneli subwooferów. Zwrotnica jest uzupełniona o  elementy odsprzęgające zasilanie wzmacniaczy operacyjnych (rysunek 8).

Montaż i uruchomienie Układ zwrotnicy zmontowano na dwustronnej płytce drukowanej. Rozmieszczenie elementów przedstawia rysunek  9. Montaż jest typowy i  nie wymaga opisu. W  zwrotnicy należy stosować niskoszumne, podwójne wzmacniacze operacyjne, bezwzględnie stabilne przy zamkniętej pętli, o wysokim SR i dużej wydajności prądowej min. 10 mA. W prototypie są to układy LM4562. Układ powinien być zasilany symetrycznym napięciem stałym, najlepiej z przedziału ±12 V/15 V (min. 100 mA), aby zapewnić odpowiedni zapas na przesterowanie. Zasilacz

można wykonać np. w oparciu o stabilizatory LM7815/7915 lub LM317/337. Uruchomienie sprowadza się do kontroli poprawności napięć zasilania, warto jednak podłączyć wejście zwrotnicy do generatora akustycznego, a wyjścia filtrów do wejść dwukanałowego oscyloskopu lub dwukanałowego woltomierza m.cz. Zwrotnica modelowa ma podział ok. 930 Hz. Po doprowadzeniu do wejścia zwrotnicy przebiegu sinusoidalnego o  regulowanej częstotliwości i  amplitudzie, możemy ocenić poprawność i zakres regulacji wzmocnienia. Jeżeli mamy miernik częstotliwości lub oscyloskop wykonujący transformatę Fouriera, możemy określić dokładnie częstotliwość podziału zwrotnicy. W tym celu przestrajamy generator i  w  momencie, gdy przebiegi LPOUT i  HPOUT mają jednakową amplitudę, ale przeciwne fazy, odczytujemy częstotliwość generatora. Przestrajając generator od 20 Hz do 20 kHz możemy ocenić stałość przesunięcia fazowego pomiędzy kanałami zwrotnicy. Przykładową charakterystykę przejściową modelu zamieszczono na rysunku 11. Wyraźnie widoczny jest spadek wzmocnienia o  -6  dB w  punkcie podziału oraz przybliżone nachylenie -12  dB/oktawę odpowiadające 40  dB/dekadę (niedokładność wynika z  pomiaru napięć oscyloskopem, niewielkiej liczby punktów pomiarowych oraz interpolacji). Dla ułatwienia stosowania filtru w  tabeli 1 zebrano wyznaczone wartości rezystancji R i pojemności C dla typowych częstotliwości podziału.

Adam Tatuś, EP

Rysunek 11. Charakterystyka przenoszenia zwrotnicy modelowej

REKLAMA

38

034-038_zwrotnica.indd 38

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:08:06


Radioodbiornik kieszonkowy z RDS PROJEKTY

Radioodbiornik kieszonkowy z RDS (2) W  praktyce elektronika nadchodzi taki moment, gdyy z  nostalgią wraca się do korzeni wspominając początki swojej pasji. Nie inaczej było w  moim wypadku. Początki mojej przygody z  elektroniką sięgają już prawie ćwierćć wieku wstecz. Z  rozrzewnieniem wspominam swoje pierwsze konstrukcje, które mimo prostotyy dawały wiele satysfakcji. Jak k chyba każdy w  tym czasie, swoją przygodę rozpoczynałem od skonstruowania nieskomplikowanego radyjka, złożonego zaledwie z  kilku elementów. Mimo prostoty konstrukcji, układ tego rodzaju nie był wcale łatwy do uruchomienia, a  to za sprawą wielu elementów indukcyjnych, które znacząco wpływały na efekt końcowy. Postanowiłem niejako zawrócić czas i  ponownie skonstruować radioodbiornik amatorski, ale z  uwzględnieniem nowych umiejętności i  25 lat rozwoju elektroniki. Rekomendacje: estetyczny, funkcjonalny radioodbiornik kieszonkowy, który może być kapitalnym prezentem, bazą dla własnej konstrukcji lub użytkowany jak pełnowartościowy radioodbiornik przenośny. Budowa radioodbiornika Schemat ideowy pocketRadia pokazano na rysunku 9. Zbudowano je z  użyciem popularnego mikrokontrolera ATmega164A taktowanego wewnętrznym, wysokostabilnym oscylatorem o  częstotliwości 8 MHz, ELEKTRONIKA PRAKTYCZNA 7/2013

039-041_pocketradio(2).indd 39

którego zadaniem jest obsługa układu Si4703 za pomocą interfejsu TWI oraz obsługa i dekodowanie wiadomości RDS z  wykorzystaniem przerwania zewnętrznego INT0. Mikrokontroler realizuje także obsługę interfejsu użytkownika złożonego z  siedmiu klawiszy funkcyjnych i  wyświetlacza graficznego OLED o rozdzielczości 128x64 piksele. Jedynym problemem, biorąc pod uwagę wymóg zasilania urządzenia pocketRadio z  dwóch baterii typu AA, była konieczność zasilania panelu modułu OLED napięciem stałym o wartości 12 V. W tym celu zastosowano nowoczesną przetwornicę TPS61085 firmy Texas Instruments. Charakteryzuje się ona doskonałymi parametrami, z  których najważniejszym są: sprawność dochodząca do 93%, szeroki zakres napięcia wejściowego (2,3…6  V), opcja miękkiego startu, szereg wbudowanych zabezpieczeń oraz duża częstotliwość przełączania (1,2 MHz), dzięki czemu można stosować elementy bierne o  mniejszych wymiarach. Układ TPS61085 wyposażono w  wejście EN (Enable), za pomocą którego możemy wyłączyć przetwornicę i ograniczyć pobór prądu ze źródła napięcia zasilającego. W  aplikacji urządzenia pocketRadio zastosowano wzmacniacz słuchawkowy o małej mocy –TPA6111. Jego sygnał wyjściowy doprowadzono do gniazda słuchawkowego Jack 3,5 mm. Układ wybrano ze względu na

AVT 5401

W ofercie AVT* AVT-5401 A Podstawowe informacje: • Napięcie zasilania: 2,3…3,3 V DC (2 baterie AA). • Maksymalny prąd obciążenia (wyświetlacz załączony/przyciemniony/wyłączony): 55 mA/30 mA/17 mA. • Zakres częstotliwości radioodbiornika FM: 87,5÷108 MHz. • Typ obsługiwanych wiadomości RDS: PS (Program Service), RT (Radio Text), CT (Clock & Time). • Maksymalna moc wyjściowa audio: 150 mW. • Impedancja obciążenia: 16 V. Link do video prezentującego możliwości urządzenia: http://youtu.be/e5SZwS1ZJ1U. Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD) AVT-5317 Lampowo-tranzystorowy odbiornik UKF (EP 11/2011) AVT-5242 Radioodbiornik internetowy (EP 7/2010) AVT-5016 Amplituner FM z RDS (EP 6-7/2001) AVT-2469 Odbiornik UKF FM (EdW 1/2001) AVT-2330 Miniaturowy odbiornik FM stereo (EdW 2/1999) * Uwaga: 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. 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 wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

możliwość pracy przy niskim napięciu zasilającym oraz dobre parametry elektryczne. Ekran przewodu słuchawkowego pełni jednocześnie rolę anteny radiowej dla układu radioodbiornika FM Si4703. Sygnał ante-

39

2013-06-28 08:08:23


PROJEKTY nowy jest doprowadzany do wejścia antenowego układu Si4703 FMIP poprzez kondensator C23. Stąd konieczność zastosowania koralików ferrytowych na wyjściach audio wzmacniacza słuchawkowego. Oczywiście można zastosować antenę zewnętrzną lub na płytce drukowanej, lecz zależy nam na mobilności a co za tym idzie, niewielkich wymiarach urządzenia. Optymalna długość przewodu słuchawkowego stanowiącego wynosi 1,1…1,45 m. Dodatkowo, odbiornik wyposażono w mechanizm pomiaru napięcia zasilającego z użyciem przetwornika A/C mikrokontrolera. Schemat układu pocketRadio nie „zdradza” w jakikolwiek sposób faktu użycia wbudowanego przetwornika A/C, gdyż żaden z kanałów wejściowych nie jest wykorzystywany w  tym celu. Przetwornik A/C mierzy specjalne, wewnętrzne napięcie odniesienia VBG=1,1 V. Napięciem odniesienia jest z kolei napięcie zasilające mikrokontroler, czyli napięcie kompletu baterii zasilających. Spadek tego napięcia powoduje wzrost wartości wyniku przetwarzania zgodnie z  wyrażeniem (korzystamy z  8-bitowej rozdzielczości przetwornika): VADC = (1.1 *256)/ Vbatt. Dzięki temu w  prosty sposób uzyskano funkcjonalność pomiaru napięcia zasilającego.

wania wszystkich układów scalonych oraz gniazda ZIF. Następnie lutujemy diody, rezystory, kondensatory, pozostałe elementy bierne, złącze zasilające, gniazdo słuchawkowe a na końcu microswitche. Z  uwagi na zagęszczenie wyprowadzeń złącza ZIF jak i  układów scalonych przed pierwszym podłączeniem układu należy jeszcze raz sprawdzić jakość wykonanych połączeń by nie dopuścić do ewentualnych zwarć. Wspomniana kontrola będzie znacznie łatwiejsza, jeśli zmontowana płytkę sterownika przemyjemy alkoholem izopropylowym w  celu wypłukania nadmiaru kalafonii lutowniczej. Tuż przed przykręceniem wyświetlacza do obwodu drukowanego naszego układu (należy użyć odpowiedniej długości słupków dystansowych), należy go podłączyć korzystając ze złącza ZIF umieszczonego po stronie

elementów. Poprawnie zmontowany układ powinien działać od razu po włączeniu zasilania. Ewentualnego sprawdzenia może wymagać wartość napięcia wyjściowego

Montaż Schemat montażowy pocketRadia pokazano na rysunku 10. Z uwagi na zastosowanie niewielkich elementów SMD w  „kłopotliwych” obudowach, montaż najlepiej przeprowadzić z  użyciem stacji lutowniczej typu Hot Air, topników lutowniczych oraz mając spore doświadczenie w  jego zakresie. Dotyczy to zwłaszcza układu scalonego radioodbiornika Si4703, którego niewielka obudowa o  wymiarach 3 mm×3 mm ma 20 wyprowadzeń umieszczonych pod spodem i  na obrysie obudowy. Montaż zaczynamy od przyluto-

40

039-041_pocketradio(2).indd 40

Rysunek 9. Schemat ideowy pocketRadia ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:08:24


Radioodbiornik kieszonkowy z RDS przetwornicy, która powinna wynosić 12 V (±0,5 V).

Obsługa Radioodbiornik pocketRadio jest z założenia przenośnym i  przez to może być obsługiwany w nieoptymalnych warunkach rzeczywistych. Dlatego ergonomia i prostota obsługi oraz przejrzystość interfejsu użytkownika były podstawowym kryterium przy opracowywaniu procedur sterujących. Na płytce zamontowano 7 przycisków sterujących dających bezpośredni dostęp do realizowanej przez nie funkcjonalności. Przyciski oznaczone BAND1…BAND4 służą do wywołania uprzednio zapamiętanej stacji radiowej lub też do zapamiętania bieżącej częstotliwości w  wybranym banku danych nieulotnej pamięci mikrokontrolera (po długim wciśnięciu). Przycisk MODE służy do zmiany funkcjonalności przycisków Up i Down, które służą do zmiany poziomu głośności sygnału audio, kontrastu wyświetlacza OLED lub do przestrajania odbiornika radiowego. Kompletny diagram obrazujący funkcjonalność menu oraz sposób obsługi urządzenia pokazano na rysunku 11. Symbole przycisków wypełnione kolorem czarnym oznaczają długie naciśnięcie wybranego przycisku. Na rysunku 12 pokazano wygląd interfejsu użytkownika układu pocketRadio. Dodatkowo, pocketRadio wyposażono w  mechanizm redukcji poboru mocy, którego działanie polega na automatycznym przyciemnianiu wyświetlacza OLED po czasie około 15 sekund bezczynności (braku działań po stronie użytkownika) i  całkowitym wyłączaniu panelu po kolejnych 15 sekundach. Aktywacja panelu OLED następuję z  chwilą przyciśnięcia dowolnego z elementów sterujących. Informacje tekstowe przesyłane dzięki systemowi RDS w postaci grupy typu Radio Text prezentowane są w  formie automatycznie przewijanego tekstu w dolnej części ekranu.

Robert Wołgajew, EP

Rysunek 10. Schemat montażowy pocketRadio

Rysunek 11. Diagram obrazujący system Menu i sposób obsługi układu pocketRadio

Rysunek 12. Wygląd interfejsu użytkownika układu pocketRadio

REKLAMA

ELEKTRONIKA PRAKTYCZNA 7/2013

039-041_pocketradio(2).indd 41

41

2013-06-28 08:08:24


PROJEKTY

Moduły rozszerzeń dla Raspberry Pi (2)

AVT 5 5202

Płytka do komunikacji szeregowej RaspberryPI_COM Komputerek Raspberry Pi staje się coraz popularny, zakres jego aplikacji rośnie w tempie niemal geometrycznym. Oprócz typowych funkcji multimedialnych coraz częściej budowane są różne aplikacje sterujące między innymi do zastosowania w  automatyce domowej. Dla ułatwienia ich wykonywania opracowano szereg modułów rozszerzeń. Również my mamy propozycję dla użytkowników Raspberry Pi. Rekomendacje: płytki rozszerzają możliwości aplikacji Raspberry Pi, ułatwiają jego zastosowanie w  układach sterujących. Raspberry Pi wyposażone jest w  dwa interfejsy do komunikacji szeregowej dostępne poprzez złącze GPIO. Są to typowy, asynchroniczny, szeregowy UART oraz I2C. Przedstawiony moduł umożliwia nawiązanie komunikacji szeregowej z  Raspberry Pi za pomocą: I2C, interfejsu zgodnego z RS232, modułu komunikacji radiowej Xbee, Bluetooth, interfejsu USB opartego o  FT230X oraz poprzez konwerter poziomów 3,3/5  V. Dzięki zworkom konfiguracyjnym, możliwe jest wykorzystanie płytki do programowania modułów Xbee/Bluetooth bez dodatkowych konwerterów USB/COM. Płytka do komunikacji szeregowej wymaga Raspberry  Pi Rev2, o  rozmieszczeniu sygnałów GPIO-P1 zgodnym z  zamieszczonym w  tabeli  1. Używane są interfejsy: RS, I2C oraz zasilanie +5 V. Schemat płytki do komunikacji szeregowej pokazano na rysunku 1. Składa się ona z następujących bloków funkcjonalnych: • Interfejs USB z układem FT230XS (U1), który jest konwerterem portu szeregowego na USB. Konwerter FT230XS pochodzi z nowej rodziny układów FTDI, która w  porównaniu z  popularnym FT232RL ma ograniczoną liczbę sygnałów portu szeregowego – do sygnałów transmisji RXD/TXD i  potwierdzeń sprzętowych CTS/RTS. Umożliwia to umieszczenie układu w  mniejszej i  tańszej obudowie. Dioda D1 sygnalizuje transmisję przez FT230XS • Interfejs RS232 oparty o układ MAX3232 (U3), czyli typowy translator poziomów napięcia 3,3 V <-> 12 V. • Interfejs Xbee, Bluetooth – układ zawiera złącza pod moduły komunikacji radiowej Xbee, Bluetooth firmy Digi

42

042-044_raspberrypi_com.indd 42

(oraz kompatybilne z Digi). Przycisk RES umożliwia zerowanie modułu, dioda LD2 sygnalizuje komunikację radiową. • Konwerter poziomów 5  V/3,3  V oparty o  układ dwukierunkowego konwertera poziomów TXS0102. Umożliwia podłączenie RaspberryPI do układów, których interfejs komunikacyjny zgodny jest z 5 V, np. Arduino. Sygnały zgodne z  5  V   doprowadzone są do złącza S5V EH4 o wyprowadzeniach zgodnych z Arduino Bricks. • Złącze S3V umożliwia bezpośrednie wyprowadzenie sygnałów komunikacji szeregowej do układów zgodnych z  3,3  V, np. Launchpad MSP430 lub inne Rasapberry Pi. Sygnały zgodne z 3 V doprowadzone są do złącza SIP4 o wyprowadzeniach zgodnych z Arduino Bricks. • Interfejs I2C na złącze I2C wyprowadzone są bezpośrednio sygnały interfejsu I2C Raspberry Pi. Sygnały te są w  stan-

W ofercie AVT* AVT5402/1 A AVT5402/2 A AVT5402/3 A AVT5402/1 B AVT5402/2 B AVT5402/3 B Podstawowe informacje: • Moduł rozszerzeń dla Raspberry Pi. • Zasilanie 3,3 V DC. • RaspbPI_COM: interfejsy I2C, RS232, USB, możliwość dołączenia modułów Xbee i Bluetooth. Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • pierwsza część artykułu • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym * Uwaga: 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. 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 wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

dardzie 3,3 V, wyprowadzenia złącza są zgodne z  Arduino Bricks i  umożliwiają dołączenie opisywanych w EP modułów rozszerzeń I2C. Układy scalone U5 i  U6 buforują diody LED, sygnalizujące transmisję RX/TX Raspberry Pi. Stabilizator U4 stabilizuje napięcie +3,3  V do zasilania układów płytki komunikacji szeregowej, dioda LD3 sygnalizuje obecność zasilania. Rezystory R5 i R6 zabezpieczają Raspberry Pi przed ewentualnymi zwarciami wyprowadzeń RX/TX. Sygnały każdego z  interfejsów komunikacyjnych doprowadzone są do odpowiadającej zwory konfiguracyjnej (FT230, Xbee, VLC, S232 oraz PI). Umożliwia to przeplot

Tabela 1. Przyporządkowanie pinów GPIO1 – P1 Pin

Funkcja

Pin

P1-01

3.3V

5V

P1-02

P1-03

GPIO2

5V

P1-04

P1-05

GPIO3

GND

P1-06

P1-07

GPIO4

GPIO14

P1-08

P1-09

GND

GPIO15

P1-10

P1-11

GPIO17

GPIO18

P1-12

P1-13

GPIO27

GND

P1-14

P1-15

GPIO22

GPIO23

P1-16

P1-17

3.3V

GPIO24

P1-18

P1-19

GPIO10

GND

P1-20

P1-21

GPIO9

GPIO25

P1-22

P1-23

GPIO11

GPIO08

P1-24

P1-25

GND

GPIO07

P1-26 ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:08:47


Płytka do komunikacji szeregowej RaspberryPI_COM połączeń sygnałów TX  TX, RX  RX lub TX  RX, RX  TX w zależności od potrzeb lub odłączenie sygnałów nieużywanego konwertera. Jednocześnie mogą być założone zwory PI (pomiędzy 1-2, 3-4 oraz jednego z wybranych interfejsów pomiędzy 1-3, 2-4). Jeżeli chcemy wykorzystać płytkę np. do konfiguracji Xbee, wyciągamy zwory PI, odłączając interfejs szeregowy, a montu-

jemy zwory pomiędzy Xbee a odpowiadającym nam interfejsem np. USB/S232 itp. pamiętając o  zachowaniu prawidłowego podłączenia sygnałów RX/TX. Dzięki zworkom nie jest potrzebne przeplot przewodów EH4/ SIP4 podczas łączenia modułów zewnętrznych. Układ zmontowany jest na niewielkiej dwustronnej płytce drukowanej, rozmiesz-

czenie elementów pokazano na rysunku 2. Montaż nie wymaga opisu. Podobnie jak w  przypadku Arduino, jest możliwe układanie modułów rozszerzeń w  stosy – tzw. „kanapkowanie”. Wymaga to jednak zakupu żeńskiego złącza IDC26, co niestety nie jest łatwe. Można je zastąpić łatwiej dostępnymi złączami przelotowymi 2×SIP10+IDC6 z  Rev3 Arduino. Jeżeli nie jest wymagane

Rysunek 1. Schemat płytki wejść analogowych ELEKTRONIKA PRAKTYCZNA 7/2013

042-044_raspberrypi_com.indd 43

43

2013-06-28 08:08:47


Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

PROJEKTY

Rysunek 4. SSH okienko logowania

Rysunek 2. Rozmieszczenie elementów modułu wejść analogowych.

Fotografia 3. Raspberry Pi z płytką komunikacji szeregowej. „kanapkowanie”, jako GPIO lutujemy żeńskie złącze IDC26. Stabilność mocowania płytki zapewnia kołek M3×8 pomiędzy Raspberry, a  COM. Płytkę Raspberry Pi z  zamontowanym modułem rozszerzeń pokazano na fotografii 3. Układ zmontowany ze sprawnych elementów nie wymaga uruchamiania. Jedyne co należy zrobić, to za pomocą programu FTDI FT_prog ustawić sygnalizację transmisji RX+TX na wyprowadzeniu C3 układu FT230XS.

44

042-044_raspberrypi_com.indd 44

Na koniec Po dołączeniu do Raspberry Pi i włączeniu zasilania moduł jest od razu gotowy do pracy. Oprócz własnych zastosowań przy wykorzystaniu interfejsów komunikacyjnych, najważniejszą funkcją modułu jest możliwość obsługi Rasberry Pi poprzez serwer SSH, bez konieczności podłączania komputerka do monitora, klawiatury itp. Opcja ta jest domyślnie aktywna, o ile nie było instalowane oprogramowanie korzystające z portu szeregowego, np. Webiopi. Wystarczy do

Wykaz elementów Rezystory: R1, R2: 27 V R3, R7…R9: 1 kV R4: 470 V R5, R6: 100 V Kondensatory: C1, C2: 47 pF (SMD 0805) C3…C13: 0,1 mF (SMD 0805) C5, C14, C15: 10 mF (SMD 0805) CE1: 22 mF/6 V (SMB, tantalowy) Półprzewodniki: LD1…5: dioda LED SMD U1: FT230XS (MSOP16_065) U2: TXS0102DCUR (MSOP8_050) U3: MAX3232 (SO16) U4: LM1117-3.3 (SOT-223) U5, U6: 74V1G08 (SOT-23-5) Inne: FT230: złącze żeńskie IDC20 + zwory GPIO: złącze żeńskie IDC26 I2C1: złącze SIP4 JRA: złącze MC3, kątowe L1: 1 mH (dławik SMD 0805) RES: mikroprzełacznik 6×3 mm S3V: złącze SIP4 S5V: złącze EH4, kątowe USB: złącze MiniUSB do druku tego dowolny terminal znakowy (systemowy terminal lub Putty) skonfigurowany do transmisji 115 kbps, N, 8, 1. Okienko logowania SSH pokazano na rysunku 4. W przypadku Xbee lub Bluetoth, należy pamiętać o  wcześniejszym odpowiednim skonfigurowaniu parametrów transmisji, ponieważ domyślnie moduły skonfigurowane są na 9600 bps, N, 8, 1 i oczywiście nie będzie możliwe nawiązanie komunikacji. Adam Tatuś, EP

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:08:47


MINIPROJEKTY

Wzmacniacz o mocy 20 W z układem LM1875

Zalecane napięcie zasilania wzmacniacza wynosi 2×17 V AC. Może on współpracować z głośnikami o impedancji 4 V lub 8 V osiągając moc wyjściową 20 W. Co ważne, w danych katalogowych podano, że przy tej mocy zniekształcenia wynoszą zaledwie 0,015% (fwe=1  kHz). Pasmo przenoszenia (dane katalogowe) przy spadku -3  dB rozciąga się od 20 Hz do 70 kHz. Układ ma wbudowane zabezpieczenia przeciwzwarciowe i termiczne. Schemat aplikacyjny układu LM1875 z  układem zasilacza pokazano na rysunku  1. Układ scalony Rysunek 1. Schemat ideowy wzmacniacza LM1875 jest wyposażony w  we- z układem LM1875 wnętrzne zabezpieczenia termiczne i  przeciwzwarciowe. Sygnał wejściowy dostarczany do wzmacniacza jest podawany przez kondensator C4. Zapobiega on przedostawaniu się na wejście końcówki mocy składowej stałej. Rezystor R2 ustala rezystancję wejściową wzmacniacza, natomiast rezystory R3 i  R4 ustalają wzmocnienie układu. Zasilacz to zwykły prostownik dwupołówkowy. Dwa zmienne, symetryczne napięcia wtórne transformatora o  przeciwnych fazach Rysunek 2. Schemat montażowy wzmacniacza uzyskane z dwóch szeregowo połą- z układem LM1875 czonych uzwojeń są podawane na złącza AC i GND zasilacza. Trafiają one na mopowinien sprawić kłopotów. Należy pamiętać stek Graetz’a zbudowany z diod D1…D4, w któo przykręceniu układu LM1875 do radiatora po rym są prostowane dwupołówkowo i wygładzauprzednim odizolowaniu go podkładką silikone przez kondensatory elektrolityczne C5, C6 nową. Ważnym elementem jest również transdla dodatniej linii zasilania i C7, C8 dla ujemnej. formator o  odpowiednio dobranej wydajności Na wyjściu zasilacza otrzymujemy napięcie doprądowej. Próba zasilania ze źródła o mniejszej datnie i ujemne względem masy układu, które wydajności nie tylko nie pozwoli na uzyskanie doprowadzone zostało do układu LM1875. pełnej mocy wyjściowej wzmacniacza, ale spoSchemat montażowy wzmacniacza pokazano na rysunku  2. Montaż jest typowy i  nie

ELEKTRONIKA PRAKTYCZNA 7/2013

045-049_mini.indd 45

AVT 1746

W ofercie AVT* AVT-1746 A AVT-1746 B AVT-1746 C Wykaz elementów: R1: 1 MV R2: 22 kV R3: 1 kV R4: 20 kV R5: 1 V/1 W C1, C2: 100 nF C3: 220 nF C4: 2,2 mF C5...C8: 4700 mF/35 V C9: 22 mF D1…D4: 1N5822 U1: LM1875T ARK2: 2 szt. ARK3: 1 szt. Radiator Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w  Wykazie elementów kolorem czerwonym

Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

Układ wzmacniacza małej częstotliwości osiągającego moc wyjściową około 25 W. Ma wbudowany zasilacz i  konstrukcję modułową, więc można go zastosować we własnoręcznie wykonanym sprzęcie nagłaśniającym lub zamontować w  urządzeniu fabrycznym np. w  miejsce uszkodzonej końcówki mocy.

* Uwaga: 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. 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 wersji A  i  wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http:// sklep.avt.pl

REKLAMA

woduje zakłócenie jego pracy.

EB

45

2013-06-28 08:09:13


MINIPROJEKTY

Wzmacniacz słuchawkowy z układem TPA6111

Rysunek 1. Schemat ideowy wzmacniacza z TPA6111 Prezentowy wzmacniacz charakteryzuje się bardzo dobrymi parametrami, a zastosowany w nim układ TPA6111 to specjalizowany wzmacniacz słuchawkowy wysokiej klasy firmy Texas Instruments. Schemat elektryczny wzmacniacza pokazano na rysunku  1. Dla zapewnienia prawidłowej pracy układu wystarczy tylko kilka elementów. Charakteryzuje się on bardzo małym poborem prądu i może poprawnie pracować w zakresie napięcia zasilania od 3,3 do 5  V DC. Moc oddawana do obciążenia wynosi 90 mW (przy napięciu 5 V i  słuchawkach o  oporności 32  V). Sygnał wejściowy pochodzący ze złącza IN trafia do potencjometru regulacji głośności POT1 i  dalej – za pośrednictwem kondensatorów C1 i C2 – do układu U1. Sygnał wyjściowy jest podawany poprzez kondensatory separujące C8 i  C9 na złącze wyjściowe mini jack, do którego bezpośrednio dołączamy słuchawki.

46

045-049_mini.indd 46

AVT 1747

W ofercie AVT* AVT 1747 A AVT-1747 Wykaz elementów: R1: 1 kV R2, R3: 20 kV R4, R5: 100 kV C1…C3: 1 mF C4: 220 mF/6,3 V C5: 100 nF C8, C9: 470 mF U1: TPA6111 LED1: LED 3 mm POT1: 50 kV/B stereofoniczny OUT: gniazdo jack stereo 3 mm Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w  Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w  całości dostępne na CD)

Rysunek 2. Schemat montażowy wzmacniacza z TPA6111 Schemat montażowy wzmacniacza pokazano na rysunku  2. Montaż układu jest typowy i  nie powinien przysparzać problemów, a  układ zmontowany ze sprawnych elementów powinien od razu pracować prawidłowo. Układ TPA6111 jest wzmacniaczem specjalnie zaprojektowanym do zasilania bateryjnego. Napięcie zasilania należy doprowadzić do złącza śrubowego, a  o  jego obecności informuje dioda LED1. EB

Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

Coraz lepsze parametry przetworników słuchawek oraz to, że są one bardzo blisko uszu powodują, że sygnał ze wzmacniacza musi być bardzo dobrej jakości, wolny od szumów i przydźwięków oraz jakichkolwiek innych zniekształceń.

AVT-5170 Wzmacniacz słuchawkowy z interfejsem USB (EP 1/2009) AVT-2850 Audiofilski wzmacniacz słuchawkowy z  prądowym sprzężeniem zwrotnym (EdW 12/2007) AVT-2744 Lampowy wzmacniacz słuchawkowy (EdW 1/2005) AVT-1383 Niskonapięciowy wzmacniacz słuchawkowy (EP 10/2003) AVT-2464 Wzmacniacz słuchawkowy klasy A (EdW 12/2000) AVT-1227 Stereofoniczny wzmacniacz słuchawkowy (EP 4/1999) * Uwaga: 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. 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 wersji A  i  wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:14


MINIPROJEKTY

Zabezpieczenie akumulatora ołowiowego Powszechnie stosowane akumulatory kwasowe, pomimo ich niewątpliwych zalet, charakteryzują się jedną wadą: nadmierne rozładowanie ma negatywny wpływ na ich żywotność. Prezentowany układ pozwala na zapobieganie temu zjawisku poprzez odłączenie obciążenia, gdy napięcie na zaciskach ogniwa spadnie poniżej ustalonego poziomu. Urządzenie jest przeznaczone do akumulatorów o napięciu znamionowym 12  V i  24  V.

Rysunek 2. Schemat montażowy zabezpieczenia akumulatora porównywane to pierwsze, pochodzi z miniaturowego stabilizatora typu 78L05 w obudowie TO92. Układ US2 pracuje w typowej konfiguracji komparatora z  pętlą histerezy. Szerokość tej pętli wyznacza wypadkowa rezystancja rezystora R4 i potencjometru P2. Wyjście układu LM311 jest typu otwarty kolektor, więc do poprawnego działania wymaga włączenia rezystora między wyjściem a  dodatnim biegunem napięcia zasilania. Funkcję tę pełnią połączone szeregowo rezystory R5 i R6. Za załączanie obciążenia jest odpowiedzialny tranzystor MOSFET (T1). Zastosowano IRF4905 z kanałem P, w obudowie TO220. Charakteryzuje się on niewielką rezystancją kanału w stanie otwarcia, wynoszącą ok. 20 mV. Dzięki temu może przełączać prąd sięgający 10 A bez

Rysunek 1. Schemat ideowy zabezpieczenia akumulatora Schemat ideowy zabezpieczenia akumulatora pokazano na rysunku 1. Jeśli napięcie wejściowe przekracza ustaloną wartość, wtedy obciążenie jest załączane; natomiast jeżeli spadnie poniżej innej wartości, wówczas obciążenie jest odłączane. Gdy napięcie mieści się wewnątrz wyznaczonych „widełek”, utrzymywany jest bieżący stan wyjścia. Potencjometr P1 z rezystorami R1 i R2 stanowią dzielnik napięcia wejściowego dla komparatora. Napięcie odniesienia, z  którym jest ELEKTRONIKA PRAKTYCZNA 7/2013

045-049_mini.indd 47

konieczności stosowania radiatora. Umożliwia to upakowanie modułu w niewielką obudowę (np. popularną Z-47 z  tworzywa sztucznego) lub we wnętrzu zasilanego urządzenia. Dioda D2 zabezpiecza bramkę tranzystora T1 przed przekroczeniem maksymalnego napięcia UGS, który to parametr wynosi ±20 V. Zadaniem rezystora R5 jest ochrona diody przed przepływem przez nią nadmiernego prądu. Mimo, iż bramka jest zasilana napięciem blisko o połowę niższym od tego, które dostarcza akumulator (skutek zastosowania dzielnika R5-R6), nie ma problemu z  poprawnym otworzeniem kanału: zmierzona wartość RDS(on) wyniosła 33 mV przy prądzie obciążenia 3 A i napięciu zasilającym 12  V. Aby impulsy napięcia powstające przy rozłączaniu obciążeń indukcyjnych nie uszkodziły tranzystora, zastosowano diodę D3.

AVT 1748

W ofercie AVT* AVT-1748 A AVT-1748 B Wykaz elementów: R1, R2, R5, R6: 1 kV (SMD 1206) R3: 10 kV (SMD 1206) R4: 47 kV (SMD 1206) P1: 20 kV helitrim P2: 500 kV montażowy, leżący C1: 100 nF/100 V poliestrowy C2: 100 mF/35 V elektrolityczny D1: 1N4148 D2: dioda Zenera 15 V D3: 1N5819 T1: IRF4905 US1: 78L05 US2: LM311D (SO-8) Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w  Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w  całości dostępne na CD)

AVT-3039 Wskaźnik ładowania/rozładowania akumulatora (EdW 10/2012) AVT-1533 Zabezpieczenie akumulatora żelowego (EP 8/2009) AVT-1521 Sygnalizator rozładowania akumulatora do modeli RC (EP 5/2009) AVT-772 Zabezpieczenie akumulatora z MOSFET-em (EdW 5/2009) AVT-2848 Miernik akumulatorów NiCd NiMH (EdW 11/2007) AVT-733 Monitor i  konserwator akumulatora (EdW 1/2005) AVT-2715 Ładowarka akumulatorów ołowiowych 10-200 Ah (EdW 3/2004) * Uwaga: 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. 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 wersji A  i  wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony 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 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 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ą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl

47

2013-06-28 08:09:15


MINIPROJEKTY Układ zmontowano na jednostronnej płytce drukowanej o wymiarach 26  mm×39  mm, której schemat montażowy pokazano na rysunku 2. Montaż radzę rozpocząć od przylutowania elementów SMD: układu scalonego US2 oraz rezystorów. Druga w  kolejności powinna zostać wlutowana zworka z cienkiego drutu, a następnie pozostałe elementy. Tranzystor T1 można zamontować pozostawiając długie wyprowadzenia; umożliwi to jego „położenie” nad płytką, a w efekcie – zmniejszenie gabarytów układu. Jeżeli istnieje prawdopodobieństwo, że przez kanał tranzystora będą płynąć większe (tj. powyżej kilku amperów) prądy, wtedy dobrze jest pogrubić szerokie ścieżki na płytce, prowadzące do drenu i  źródła. Można to uczynić, na przykład, nalutowując na nie miedziany drut.

Prawidłowe wyregulowanie układu zajmie tylko kilka minut, czynność tę upraszcza użycie regulowanego zasilacza oraz dołączenie obciążenia (np. żarówki czy diody LED z włączonym szeregowo rezystorem). Ślizgacz potencjometru P2 należy wstępnie ustawić w połowie jego suwaka, po czym układ zasilić napięciem takim, jakie jest w  połowie przedziału wyznaczonego histerezą. Kolejnym krokiem jest ustawienie potencjometru P1 tak, aby na jego ślizgaczu (środkowe wyprowadzenie) było napięcie równe napięciu odniesienia, czyli w tym wypadku 5 V. Przykład: załączenie ma nastąpić powyżej 12,5 V, a odłączenie poniżej 10,8 V – daje to środek pętli w okolicach 11,7 V. Po dokonaniu takich przygotowań, można doregulować P2 (szerokość pętli histere-

zy) i w  razie konieczności P1 (jej środek), pamiętając o tym, że większa rezystancja P2 zawęża przedział. Czyli regulując napięcie zasilania, trzeba tak ustawić P2, by moment załączenia i wyłączenia wypadał tam, gdzie dostało to zaplanowane. Szerokość tej pętli można regulować w  przedziale od 0,6  V do 7 V przy napięciu środkowym 12 V oraz od 2  V do ok. 9  V przy napięciu środkowym 24  V. Po kilkakrotnym sprawdzeniu, że suwaki obydwu potencjometrów znalazły się w  prawidłowych położeniach, można je zabezpieczyć przed samoczynnym przekręceniem, np. kroplą lakieru.

Michał Kurzela, EP

Miniaturowy moduł przekaźników z RS485 Pojedynczy moduł pozwala na niezależne sterowanie dwoma miniaturowymi przekaźnikami, których styki zwierne wyprowadzone są na złącza śrubowe CON3 i  CON4. Za pomocą prostych poleceń, można włączyć, wyłączyć lub odczytać aktualny stan danego wyjścia.

Rysunek 1. Schemat ideowy modułu przekaźników z RS485

48

045-049_mini.indd 48

AVT 1745

Do jednej magistrali można dołączyć do 31 takich modułów i urządzenie sterujące np. konwerter USB<=>RS485 tworząc w  ten sposób rozległą sieć sterującą aż 62 urządzeniami. Każde wyjście jest identyfikowane za pomocą dwucyfrowego adresu (00...99). Do połączenia modułów jest potrzebna 4-przewodowa skrętka (2 pary przewodów). Na złączach CON1 i  CON2 znajdują się linie zasilania oraz sygnały magistrali RS485. Całość zaprojektowano w taki sposób, aby moduł zamontować przelotowo w  miejscu przecięcia skrętki. Miniaturowa konstrukcja swobodnie mieści się w  puszce elektroinstalacyjnej. Pracą układu steruje mikrokontroler ATtiny24, który zapewnia odpowiednią liczbę linii I/O  i  jest dostępny w  małej obudowie SO14. Interfejs UART został zrealizowany programowo i pracuje z parametrami: 9600, n, 8, 1. Schemat ideowy modułu pokazano na rysunku  1, natomiast montażowy na rysunku  2. Rolę wyjść pełnią przekaźniki o obciążalności styków do 3 A, (do 230 V AC lub 30 V DC). Moduł powinien być zasilany z  napięcia 7...15  V DC, maksymalny pobór prądu wynosi ok. 60 mA. ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:15


Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym

MINIPROJEKTY W ofercie AVT* AVT-1745 A AVT-1745 B AVT-1745 C AVT-1745 UK Wykaz elementów: R1, R2: 10 kV (SMD 0805) R3, R5: 2,2 kV (SMD 0805) R4: 1 V (SMD 0805) C1…C3: 100 nF (SMD 0805) C4, C5: 10 mF (SMD 0805) C6, C7: 18 pF (SMD 0805) D1, D3, D4: LL4148 D2: LED F3 przewlekana T1, T2: BC847 X1: 4 MHz (SMD) US1: 78M05 (SMD) US2: ATtiny24(lub 44) US3: MAX485 (SMD) K1, K2: HF49F-5V CON1…4: DG 3.5/2 PROG, RST: goldpin 1×7+zworka Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w  Wykazie elementów kolorem czerwonym

Moduł dołączony do magistrali czeka na odebranie właściwej komendy. Jego aktywność jest sygnalizowana krótkim mignięciem diody LED. Komenda musi zaczynać się ciągiem znaków „R x x”, gdzie „xx” to adres modułu w zakresie 00...99. Jako kolejny podawany jest następujący parametr: „= 1”<CR> – powoduje załączenie wyjścia, „= 0”<CR> – powoduje wyłączenie wyjścia, „= ?”<CR> – zwraca odpowiedź układu zawierającą aktualny stan wyjścia. Przykładowa komenda „R23=1”<CR> w postaci wartości szesnastkowych ma postać:

0x52 0x32 0x33 0x3D 0x31 0x0D. Odebranie komendy z adresem odpowiadającym adresowi modułu powoduje odpowiednią reakcję układu, a  dla trzeciego przypadku powoduje wysłanie informacji o stanie wyjścia w postaci np R23=1<CR>, czyli wyjście załączone. Układ wymaga wstępnej konfiguracji – potrzebny będzie terminal z  interfejsem RS485 np. konwerter AVTMOD14 dołączony do komputera PC i programu Bray Terminal+. Założenie jumpera w pozycji 1 (rysunek 3) uruchamia automatyczne wysyłanie stanu wyjścia. Funkcja ta może być włączona tylko w jednym module w  całej magistrali i  tylko wtedy, gdy nie ma urządzenia nadrzędnego. Powoduje wysyłanie na magistralę co ok. 4 s ramki stanu wyjścia. Może być przydatna do identyfi-

Rysunek 2. Schemat montażowy modułu przekaźników z RS485

kowania modułów, ponieważ ramka zawiera adres modułu. Założenie jumpera w pozycji 2 (rys. 3) a następnie włączenie zasilania modułu powoduje przywrócenie domyślnego adresu o wartości „00”. Założenie jumpera w pozycji 3 (rys. 3) i włączenie zasilania modułu powoduje wejście w tryb zmiany adresu. Moduł wysyła wartość aktualnego adresu a  następnie czeka na wprowadzenie nowej wartości. Po zatwierdzeniu znakiem „Enter” nowa wartość zostaje zapamiętana i  układ jest gotowy do pracy. Należy pamiętać, że drugie wyjście modułu automatycznie dostaje adres zwiększony o je-

Rysunek 3. Zworka konfiguracyjna den, dlatego modułom należy nadawać adresy zwiększane o 2. AS

REKLAMA

Altium Designer 2013 jeszcze lepszy

„Kiedyś musieliśmy poprawiać projekt kilka razy, zanim udało się uzyskać finalną wersję elektroniki i dopasować mechanikę do niej – teraz wszystko odbywa się w jednym cyklu i pasuje idealnie.” - Scott Gemmell, Szef Działu Projektowego w Leica Geosystems Agriculture, Użytkownik Altium

EVATRONIX S.A. ul. Przybyły 2, 43-300 Bielsko-Biała, tel. 33 499 59 12 eda@evatronix.com.pl; www.evatronix.com.pl/eda

ELEKTRONIKA PRAKTYCZNA 7/2013

045-049_mini.indd 49

49

2013-06-28 08:09:16


PROJEKT CZYTELNIKA Dział „Projekty Czytelników” zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż sprawdzamy poprawność konstrukcji. Prosimy o nadsyłanie własnych projektów z  modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie, że artykuł jest własnym opracowaniem autora i  nie był dotychczas nigdzie publikowany. Honorarium za publikację w  tym dziale wynosi 250,– zł (brutto) za 1 stronę w  EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrótów.

Projekt

209

Amplituner do kina domowego AMPL-008 (2) W maju 2007 r. na łamach EP opublikowano artykuł Tomasza Jabłońskiego pt. „Dekoder Dolby Digital/DTS”. Jego lektura przekonała mnie, że nawet elektronik amator może zbudować urządzenie audio o  funkcjonalności wykraczającej typowe urządzenia stereofoniczne. Początkowo chciałem zbudować własny amplituner umożliwiający odbiór programów radiowych w  paśmie FM, odtwarzanie muzyki z  plików MP3, mający kilka wejść analogowych oraz dwukanałową końcówkę mocy, ale zainspirowany wspomnianym artykułem zacząłem szukać u  różnych dostawców układów scalonych możliwości zdobycia scalonego dekodera Dolby Digital/DTS typu STA310, produkowanego przez firmę ST. Jego próbki udało się otrzymać od jednego z  dystrybutorów podzespołów. Dekoder Dolby Digital STA310 Jednym z  najważniejszych elementów mojego amplitunera jest cyfrowy dekoder dźwięku STA310 wytwarzany przez STMicroeletronics. Układ ten umieszczono w kwadratowej obudowie TQFP80 o wymiarach około 14 mm×14 mm. Pełni on rolę dekodera dźwięku zakodowanego cyfrowo. Ma w swej strukturze procesor DSP pozwalający włączyć dodatkową obróbkę zdekodowanego dźwięku – tak zwany Post Processing. Do wyboru są następujące procedury: • Dekoder „Dolby Pro Logic”. • Procesor dźwięku dookólnego „Circle Surround”. • Procesor dźwięku przestrzennego „Sound Retrieval System” (SRS). • Procesor VMAX – poszerzenie bazy stereo. Pracą dekodera STA310 można sterować albo przez interfejs równoległy, albo szeregowy I2C. Zdecydowałem się na użycie I2C

50

050-056_czytelnik.indd 50

(nóżka 43 SELI2C=1). Za pomocą wyprowadzenia MAINI2ADR (53) można określić adres slave interfejsu I2C. Gdy jest ono ustawione, to adres ma wartość 1011 100x, gdy wyzerowane, to adres zależy od poziomów logicznych na A0…A6. Dekoder ma około 200 rejestrów wewnętrznych. Niektóre służą tylko do odczytu, większość ma możliwość zapisu i odczytu. Cześć rejestrów przyjmuje domyślne wartości po restarcie, więc sterowanie dekoderem należy rozpocząć od sekwencji startowej, pokazanej na listingu 1. Funkcja STA_write(adres, dane) zapisuje w  rejestrze dekodera o  adresie adres liczbę dane, a  funkcja STA_read(adres) odczytuje rejestr o  adresie adres i  zwraca jego zawartość 8-bitową. Dekoder STA310 wymaga zwykle zachowania sekwencji programujących. Niektóre komendy można wykonać „w  locie” – na przykład włączanie i wyłączanie funkcji Post Processingu.

Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 52617, pass: 30lct328 • pierwsza część artykułu

STA310 ma dwa cyfrowe interfejsy wejściowe sygnału audio: I2S_IN1 i I2S_IN2. Wejście I2S_IN1 jest dodatkowo wyposażone w odbiornik SPDIF (nazywany STA120). Dla tego wejścia (I2S_IN1) można wykorzystać albo wejście liniowe (Line SIN, LRCLKIN, DSTRB), albo SPDIF (format IEC-61937). Wejście SPDIF ma większe możliwości, ponieważ można włączyć automatyczne rozpoznawanie formatu przesyłanych danych (PCM, AC3, DTS, MPEG). Układ STA310 ma wbudowany również nadajnik SPDIF (format IEC-61937, wyjście I958OUT). Drugie wejście I2S_IN2 jest przewidziane do wykorzystania w systemie karaoke. W chwili pisania tego tekstu nie było jeszcze przeze mnie oprogramowane. Pierwsze wejście I2S_IN1 (Line SIN, LRCLKIN, DSTRB) wykorzystuje do odtwarzania dźwięku albo z  przetwornika ADC (w  układzie WM8770) albo z  wyjścia I2S procesora. Do wejścia SPDIF doprowadziłem przez multiplekser cztery wejścia cyfrowe SPDIF, jedno COAXIAL i trzy optyczne. Dokumentacja techniczna samego układu scalonego zawarta w  pliku PDF nie zawiera wystarczająco dużo informacji potrzebnych programiście do sterowania dekoderem. Wiele dodatkowych informacji znalazłem (dzięki pomocy pana Tomasza Jabłońskiego) w dokumentacji STA310an.V13_A.pdf. Dekoder STA310 ma dwie pętle synchronizacji fazowej PLL. Wejściowym sygnałem zegara dla obydwu pętli jest zewnętrzne CLK (31). Doprowadziłem do niego sygnał ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:33


Amplituner do kina domowego AMPL-008 Listing 1. Inicjowanie dekodera STA310 void STA_softreset(void) { uint8_t data; STA_write(16, 1); // 1 -> SOFTRESET STA_write(43, 8); // 8 -> BREAKPOINT STA_write(58, 0); // 0 -> CLOCKCMD do data = STA_read(0xFF); //INT_RAM–czekaj na gotowość pamięci RAM while (data != 1); STA_write(181, 1); // 1 -> ENA_ALL_FRACPLL }

zegarowy o częstotliwości 27 MHz. Pierwsza pętla PLL1 służy do generowania zegara systemowego SYS_CLK wykorzystywanego przez jednostkę DSP oraz peryferia cyfrowe. Programowo można ustawić źródło zegara SYS_CLK na jedno z 4: wyjście zegara z pętli PLL1, wyjście zegara z pętli PLL1 podzielone przez 2, wejście zewnętrznego zegara CLK, wejście zewnętrznego zegara CLK podzielone przez 2. Druga pętla PLL2 służy do generowania sygnału zegarowego PCMCLK dla bloków audio. Programowo można ustawić źródło zegara PCMCLK na jedno z  trzech: wyjście zegara z  pętli PLL2, wyjście zegara zregenerowanego przez odbiornik SPDIF, wejście zewnętrznego zegara PCMCLK. Wyprowadzenie 69 (PCMCLK) jest w pierwszych dwóch przypadkach wyjściem, a w trzecim wejściem. Detektor fazy (blok PFD) może pracować dla sygnałów o  częstotliwości wejściowych z zakresu: 4…14 MHz. Generator VCO może generować sygnał o  częstotliwości z  zakresu 100…200  MHz. Po zerowaniu częstotliwość wyjściowa Oclk=47,25 MHz (Dla Clkin = 27MHz). Wykonane przeze mnie eksperymenty pozwalają na przypuszczenie, że nie powinna ona przekraczać 70 MHz. Programowanie dekodera STA310 należy zacząć od zaprogramowania pętli PLL, ale po wykonaniu sekwencji startowej. W zależności od źródła danych audio, jako źródło sygnału zegarowego PCMCLK wykorzystuję zewnętrzny sygnał PCMCLK, gdy dane pochodzą z  procesora lub przetwornika A/C lub pętlę

Tabela 1. Zawartość rejestrów STREAMSEL i DECODESEL STRE- DECOAMSEL DESEL (0x4C) (0x4D)

3

3

3

0

5

0

5

6

3

9

Opis

Uwagi

Nieskompresowany PCM dźwięk próbkowany 16bit z rozdzielczością Mono/ 16 bitów (1 lub 2 Stereo kanały). Strumień Dolby Dolby Digital AC3 z  wejścia Digital I2S (1 do 6 kanaAC3 łów) Strumień Dolby Dolby Digital AC 3 z  wejDigital ścia SPDIF (1 do 6 AC3 kanałów) Strumień DTS z  wejDTS ścia SPDIF (2 do 6 kanałów) Strumień MP3 (1 lub MP3 2 kanały)

ELEKTRONIKA PRAKTYCZNA 7/2013

050-056_czytelnik.indd 51

pie dotwarzanego strumienia i włączonych funkcjach Post Processingu np.: DTS/5.1/DIGT, AC3/CIR/VMAX, PCM/2.0/SRS itp. Jak poprzednio wspomniałem procesor DSP dekodera STA310 pozwala włączyć różne funkcje przetwarzające dekodowany dźwięk. Dokumentacja „STS310.pdf” nie zawiera wszystkich informacji o dostępnych funkcjach Past Processingu dla wersji oprogramowania 2.0. Dlatego chciałbym przedstawić skrócony opis najważniejszych rejestrów. Pierwszy z  tych rejestrów to rejestr PDEC1 (0x62). Pozwala on włączyć przetwarzanie Dolby Pro Logic, DOUBLE STEREO, SRS i VMAX.

PLL2, gdy dane pochodzą z odbiornika SPDIF. Kolejną czynnością jest wybór odpowiedniego wejścia danych i ich formatu (SIN_SETUP, CAN_SETUP). Następnie ustawiam format danych wyjściowych 0x62 PDEC1 (POST PROCESSING) (PCMCONF, PCMDIVI7 6 5 4 DER). Aby uruchomić VMAX SRS DEM DCF pracę interfejsu wyjścio0000wego I2S, trzeba wyzeroDISABLE DISABLE DISABLE DISABLE wać i ustawić bit MUTE. 1111Po tej sekwencji należy ENABLE ENABLE Deemph. DC Filter VMAX SRS Filter ac- active jeszcze włączyć wyjście tive VCR poprzez zapis odpowiedniej wartości (zwykle 0x11) do rejestru VCR_MIX (0xAE). Zwykle uruchamiam również automatyczne rozpoznawanie formatu danych pojawiających się na wejściu SPDIF. Odblokowuję również wybrane przerwania. Ostateczne uruchomienie dekodera (rozpoczęcie dekodowania danych audio) następuje poprzez wpisanie „1” do rejestru PLAY. Od tego momentu na wyjściach PCM0, PCM1 i ewentualnie PCM2 i  PCM3 pojawiają się dane audio lub szumy. Podczas dekodowania danych z  wejścia SPDIF mogą pojawiać się przerwa0x64 nia w przypadku wykrycia nowego 7 formatu danych, zmiany częstotliSRS wości próbkowania przesyłanych 4->2 0 danych, utracie synchronizacji itp. DISABLE Przy włączonej automatyce roz1 poznawania formatu przychodząENABLE cych danych jest możliwe poprzez SRS 4->2 odczyt rejestrów STREAMSEL (Rs) (0x4C) i  DECODESEL (0x4D) ustalenie formatu przychodzących danych audio – PCM, MPEG, AC3 lub DTS. Dodatkowo, odczyt rejestru AC3_STATUS1 (0x77) pozwala ustalić liczbę przesyłanych kanałów audio. W tabeli 1 wyszczególniłem najczęściej występujące przypadki zawartości rejestrów STREAMSEL i DECODESEL. Przed odtwarzaniem plików nieskompresowanych PCM (*.WAV) należy wpisać do powyższych rejestrów odpowiednio wartości 3 i  3. W  przypadku gdy, źródłem danych audio jest interfejs SPDIF zawartość tych rejestrów jest ustawiana przez procesor DSP przy włączonej funkcji AUTODETEC. W  tym przypadku należy na podstawie zawartości tych rejestrów ustawić odpowiednio sposób odtwarzania – włączyć lub wyłączyć wybrane funkcje Post Processingu takie jak Circlesurround, VMAX, SRS. W  moim ampli tunerze wyświetlam na wyświetlaczu informacje o ty-

3 2 1 DOUBLE - MPEG1/2 STEREO DYNAMIC 00DISABLE DISABLE 11ENABLE ENABLE

0 PROLOGIC 0DISABLE 1ENABLE

Drugi rejestr PDEC2 (0xB1) pozwala włączyć przetwarzanie Circlesurround. Funkcja to pozwala uzyskać z 2 kanałów wejściowych 5 kanałów wyjściowych (Surround). 0xB1 PDEC2 (POST PROCESSING) 7 6 5 4 3 2 1 0 - - - - CIRCLESURROUND 0 - DISABLE 1 - ENABLE Dodatkowe parametry przetwarzania można ustawić w rejestrze PL_AB (0x64): PL_AB (WS, SRS, VMAX, True Surround) 6 5 4 3 2 1 SRS - SRS - True PL_WS 4->2 3D Surround 0 0 0 0 DISABLE DISABLE DISABLE DISABLE 1 1 1 1 ENABLE ENABLE ENABLE ENABLE SRS SRS True Wide 4->2 3D Surround Sur(Ls) round (on PL output)

0 PL_AB 0 DISABLE 1 ENABLE Autobalance (Between Lt and Rt)

Dla PL_AB = 0x04 uruchamiamy przetwarzanie True Surround redukujące 5 kaREKLAMA

51

2013-06-28 08:09:33


PROJEKT CZYTELNIKA nałów wejściowych na 2 wyjściowe, a dla PL_AB = 0x14 uruchamiamy funkcję SRS 3D w 2 kanałach (STEREO 3D). Parametry przetwarzania Circlesurround można ustawić w rejestrach CIRCLE_MODE (0xB2) i  CIRCLE_DELAY (0xB3).

Możliwe konfiguracje dla procesorów dźwięku SRS i VMAX:

KonfiguraUwagi cja (nazwy oryginalne) SRS 0x64 0x04 Truesurround 5 kanałów na 2 SRS 0x64 0x14 SRS 3D 2 kanały 0xB2 CIRCLE_MODE na 2 7 6 5 4 3 2 1 0 SRS 0x64 0x40 SRS prologic 4 kanały - - Mix Wide Filtering Phantom Mode with Mono na 2 Mode[0] Surround on Ls 0 – Music mode, 1 – Cimena mode. SRS 0x64 0x80 SRS prologic 4 kanały Phantom[1] with Mono na 2 0 – Center mode, 1 – Phantom mode. Surround Filtering[2] on Rs VMAX 0x64 0x04 Virtual 5 kana0 – No filtering on center channel, 1 – theater łów na 2 High pass filter is applied on center channel. VMAX 0x64 0x08 VMAX 4 kanały Wide[3] prologic na 2 with Mono 0 – Normal mode, 1 – Wide mode. Surround Mix[4] on Ls 0 – 4.2.4 mode, 1 – 5.2.5 mode. VMAX 0x64 0x14 VMAX stereo 2 kanały enhanced na 2 Opóźnienie dla tylnych kanałów: Włączenie dekodera „Prologic” lub „Circle Surroud” pozwala uzyskać cyfrowo 6 0xB2 CIRCLE_DELAY 7 6 5 4 3 2 1 0 kanałów z dźwięku 2 kanałowego. Dekoder Delay „Prologic” powinien być włączony podczas odtwarzania filmu ze ścieżką dźwiękowej Delay = 6 x delay / FS (max.[s] = 1440/ zakodowaną w  tym standardzie. Dekoder FS[Hz]) „Circle Surround” jest bardziej uniwersalWyjście VCR można skonfigurować w reny – może pracować w trybie „Cimena” lub jestrze VCR_MIX (0xAE). Wyjście to można „Music”. Dla tego dekodera gdy odtwarzany skierować dodatkowo na wyjście SPDIF. jest dźwięk filmu należy ustawić tryb „Cimena”, a  gdy odtwarza0xAE VCR_MIX 7 6 5 4 3 2 1 0 my muzykę należy wybrać tryb - - - STEREO PRL COPY 3D VCR 0 0 0 0 – STANDARD „Music” (Moim zdaniem w  trybie „Cinema” odtwarzany dźwięk jest DISABLE DISABLE NO COPY SOUND 1 1 1 1 – 3D  SOUND „przytłumiony”). ENABLE ENABLE COPY L/R Włączenie procesora „SRS” 2/0 DOLBY lub „VMAX” pozwala uzyskać w 2 DOWN- PRO LOG. kanałach dźwięk „3D”. Dla cyfroMIX DOWNMIX wych źródeł 2 kanałowych dźwięk „3D” może się pojawić w  przedPodstawowe konfiguracje wyjścia VCR: nich kanałach głównych. Jeśli źródło dźwięNazwa konfiguracji Rejestr Wartość Uwagi SRS 3D na wyjściu 0xAE 0x01 SRS post ku zawiera 6 kanałów, to dźwięk „3D” można VCR 0x62 0x40 processing uzyskać tylko na wyjściu VCR. Aby w takim 0x64 0x14 True Surprzypadku (źródło 6-cio kanałowe) uzyskać round 3D VMAX na wyjściu 0xAE 0x01 VMAX dźwięk „3D” w  głównych przednich kanaVCR 0x62 0x80 post prołach należy włączyć DOWNMIX do systemu 0x64 0x14 cessing 2.0 w rejestrze 0x6F. True SurDekoder STA310 może dekodować także round 3D Kopia kanałów L/R 0xAE 0x02 pliki MP3, ale wymagałoby to użycia szeregowyjściu VCR wego interfejsu obsługującego również linię Prologic downmix 0xAE 0x08 REQ# - wyjście sygnału gotowości dekodera. na wyjściu VCR Ponieważ interfejs I2S procesora LPC2387 STEREO 2.0 down- 0xAE 0x10 mix na wyjściu VCR nie przewiduje takiej opcji, do dekodowania plików MP3 użyłem dePodstawowe konfiguracje postprocessingu: kodera STA015. Układ Nazwa konfiguracji Rejestr Wartość Uwagi Dekoder Prologic 0x62 0x01 2 kanały na 5 STA015 można kupić, Circle Surround 0xB1 0x01 2 kanały na 5 Procesor SRS 0x62 0x40 5 kanałów na 2 lub 2 kanały na 2 a  układ STA310 można Procesor VMAX 0x62 0x80 5 kanałów na 2 lub 2 kanały na 2 jedynie „zdobyć”. Jak Prologic + SRS 0x62 0x41 2 kanały na 5 -> 5 kanałów na 2 wspomniałem na wstęPrologic + SRS 0x62 0x81 2 kanały na 5 -> 5 kanałów na 2 pie mojego artykułu Circle Surround 0x62 0x40 2 kanały na 5 -> 5 kanałów na 2 możliwa jest praca mo+ SRS 0xB1 0x01 Circle Surround + 0x62 0x80 2 kanały na 5 -> 5 kanałów na 2 jego ampli tunera bez VMAX 0xB1 0x01 zamontowania układu

52

050-056_czytelnik.indd 52

Procesor Rejestr Wardźwięku tość

STA310. Wtedy układ STA015 zapewnia odtwarzanie plików MP3. Rejestr OCFG (0x66) pozwala ustawić konfigurację wyjść PCM. Ogólnie można powiedzieć, że rejestr ten pozwala przekierować niskie częstotliwości albo do subwoofera albo do głośników przednich.

Konfiguracja wyjść PCM W konfiguracji 1 basy z 5 głośników (L, C, R, Ls, Rs) są filtrowane i  dodawane do wyjścia subwoofera. Konfiguracja 2 nadaje się szczególnie, gdy głośniki kanału lewego i  prawego są dużej mocy i  mogą odtworzyć skutecznie basy z głośników C, Ls, Rs i Sub. W konfiguracji 3 basy z 5 głośników (L, C, R, Ls, Rs) są dodatkowo dodawane do sygnału subwoofera. Szczegóły dotyczące poszczególnych konfiguracji (jest ich 6) można znaleźć w dokumentacji „STA310.pdf”. 0x66 7 LFE_BYP

6 5 4 3 BOOST - - -

OCFG 2

1 0 OCFG[2:0]

Poszczególne konfiguracje wyjść zależą dodatkowo do bitów LFE_BYP i BOOST. Ustawienie bitu LFE_BYP włącza kanał subwoofera i  wpływa na konfiguracje 2, 3 i  4. Ustawienie bitu BOOST zwiększa poziom głośności w kanałach L i R o +12 dB w konfiguracji 2 albo o +4 lub +8 dB w konfiguracji 3. Cyfrowa konfiguracja głośników wprowadza zwykle dodatkowe tłumienie sygnałów o kilka decybeli. Dlatego na mojej płytce ampli tunera zbudowałem układ analogowy pozwalający za pomocą zworek ustawić odpowiednią konfigurację sygnałów. Mój analogowy układ przypomina cyfrową konfigurację numer 2. Rolę filtrów górnoprzepustowych pełnią kondensatory C101, C102 i  C103. Zworki Z28, Z29 i Z30 pozwalają dodać niskie częstotliwości z wybranych kanałów (C, Ls, Rs) do kanału subwoofera.

Układ Downmix Układ ten pozwala użyć mniej niż 6 głośników do odtwarzania dźwięku 6-kanałowego. Głównymi elementami tego układu są wzmacniacze operacyjne U42A, U42B, U42C i U42D (OPA4132) oraz klucze analogowe znajdujące się w  układzie scalonym U19 (ADG451CRL lub MAX391CSE). Jeśli nie używamy głośnika centralnego, to programowo można włączyć pierwszy klucz analogowy w  układzie U19 (‘0’ na linii NO_C#). Spowoduje to dodanie kanału centralnego do kanału lewego i prawego. Rezystory R257 i  R281 oraz R261 i  R283 ustalają tłumienie sygnału kanału centralnego na poziomie około -3dB. Podobnie w wypadku braku subwoofera można poprzez włączenie drugiego klucza analogowego w  układzie scalonym U19 (‘0’ na linii NO_SUB#) dodać jego sygnał do przednich głośników. Podobnie jest z kanałami Ls i Rs. Włączenie trzeciego kluELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:34


Amplituner do kina domowego AMPL-008 Tabela 2. Konfiguracje głośników Konfiguracja głośników Symbol głośnika

4

5

C LS LS RS RS C LS RS LF LF LF RF RF RF 5.0* 5.0* 4.0* 2x25W 3x25W 2x50W Moc 1x50W 2x100W 2x100W 2x100W Symbol * oznacza możliwość podłączenia aktywnego subwoofera.

LF RF C SUB 3.1 2x50W 2x100W

A B C D X Y LX LY Tryb

1

2

LF RF LS RS C SUB 5.1 4x25W 2x100W

cza w układzie scalonym U19 (‘0’ na linii NO_LS#) spowoduje dodanie poprzez rezystor R265 sygnału kanału Ls do przedniego lewego kanału. Jeśli założona jest zworka Z27, to niewielka część sygnału Ls zostanie dodana (poprzez rezystor R301) w  przeciw fazie do przedniego prawego kanału (uzyskamy efekt „3D”). Dla kanału Rs sposób miksowania jest identyczny (czwarty klucz, rezystor R266, zworka Z26 oraz rezystor R302).

Wzmacniacz mocy klasy D O układach scalonych zastosowanych w  końcówkach mocy wspomniałem na wstępie mojego artykułu. Układy scalone TPA3120D2 przewidziałem do pracy albo w  konfiguracji SE (Single Ended) albo BTL (Bridge Tied Load), natomiast układ scalony TAS5611 prace w  konfiguracji BTL (Bridge Tied Load). Ze względu na to, że są to wzmacniacze „cyfrowe” pracujące w  klasie D na ich wyjściach pojawiają się przebiegi PWM o wypełnieniu zmieniającym się w zależności od chwilowej wartości odtwarzanego sygnału analogowego. Częstotliwość tych przebiegów dla układów TPA3120D2 wynosi nieco ponad 200  kHz, a  dla układu TAS611 około 400  kHz. Na wyjściach obydwu tych układów konieczne jest zastosowanie filtrów LC (Dławiki LWA1, LWB1, LWA2, LWB2, LDA1, LDB1< LDC1, LDD1). Dławiki dla układów TPA3120D2 powinny mieć indukcyjność około 22  uH, a  dławiki dla układu TAS611 około 10  uH (w  prototypie wszystkie dławiki mają indukcyjność równą 10 uH). Przewidziałem 8 różnych konfiguracji podłączenia głośników. Aktualna konfiguracja głośników zależy od ustawienia zworek Z35, Z36, Z37, Z38, Z39, Z47 i Z48. Wzmacniacze operacyjne U47A, U47B i U47C wytwarzają sygnały sterujące wzmacniaczami TPA31202D, a  wzmacniacze U28A i  U28B dostosowują odpowiednio fazy sygnałów sterujących różnicowe wejścia wzmacniacza TAS5611. Wszystkie konfiguracje głoELEKTRONIKA PRAKTYCZNA 7/2013

050-056_czytelnik.indd 53

3

6

7

8

LF RF LS RS 4.0*

LF RF 2.0*

LF RF 2.0*

4x25W

2x50W

2x100W

śników można znaleźć umieszczono w tabeli 2. Głośniki oznaczone A, B, C, D włączone są między masę a  pojedyncze wyjścia z  układu TPA3120D2. Głośniki oznaczone X, Y włączone są między dwa wyjścia z  układu TPA31202D. Oczywiście. dołączenie głośnika X (Y) wyklucza jednoczesne dołączenie głośników A i B (C i D). Głośniki oznaczone LX i  LY włączone są w  układzie BTL do wyjść układu TAS5611. Pierwsze 5 konfiguracji wymaga wlutowania wszystkich końcówek mocy. Konfiguracje 6 i 7 wymagają wlutowania tylko 2 układów TPA3120D2. Konfiguracja 8 wymaga wlutowania tylko układu TAS5611. W miejsce układów scalonych TPA31202D można wlutować również układy typu TPA3123D2. W miejsce układu TAS5611 można wlutować również układy TAS5611A, TAS5613 oraz TAS5615. Konfiguracja 1 wymaga użycia 4 głośników satelitarnych o  mocy 25W/4  V oraz jednego głośnika centralnego o  mocy 100 W/4  V (lub 50 W/8  V) i  subwoofera, również o mocy 100 W/4 V (lub 50 W/8 V). W  konfiguracji 2 należy użyć 2 głośników przednich o mocy 100 W/4 V (lub 50 W/8 V), głośnika centralnego o mocy 50 W/8 V oraz dwóch głośników satelitarnych o  mocy 25 W/4 V. Konfiguracja 3 wymaga użycia 2 głośników o dużej mocy oraz 2 głośników satelitarnych 25 W/4 V. Te pierwsze trzy konfiguracje zapewniają tryb pracy 5.1, ale w konfiguracjach 2 i 3 potrzemy jest dodatkowo subwoofer aktywny. Konfiguracja 4 wymaga użycia 4 „dużych” głośników (np. 50 W/8 V) i pracuje w trybie 4.0 (PHANTOM). W  konfiguracji 5 potrzebne są 3 „duże” głośniki (np. 50 W/8 V) i jeden pasywny subfoower (np. 100 W/4  V). W  tej konfiguracji głośniki pracują w  trybie 3.1 (LF, C, RF, Sub). Konfiguracja 6 pozwala uzyskać tryb 4.0 (PHANTOM) z 4 „małymi” głośnikami o  mocy 25 W/4  V. Konfiguracje 7 i 8 pracują w trybie 2.0 (STEREO). Wymagają użycia 2 „dużych” głośników o mocach

Typ wyjścia SE/4Omy SE/4Omy SE/4Omy SE/4Omy BTL/8Omów BTL/8Omów BTL/4Omy BTL/4Omy

50 W/8 V (dla konfiguracji 7 lub 8) albo 100 W/4 V (konfiguracja 8). W zależności od wybranej (zworkami) konfiguracji należy odpowiednio ustawić programowo DOWNMIX.

Wzmacniacz słuchawkowy Wzmacniacz słuchawkowy zbudowano w oparciu o układ scalony typu TPA6120A2. Charakteryzuje się on bardzo małymi zniekształceniami nieliniowymi. W  moim urządzeniu układ ten (U81) jest zasilany pojedynczym napięciem równym +12V. Wyjście każdego kanału jest wyprowadzone przez szeregowy rezystor 10  V. Stopnie wzmacniacza w układzie TPA6120A2 zostały objęte ujemnym i  dodatnim sprzężeniem zwrotnym. Rezystory R43 i R2 (lub R44 i R3) pracują w pętli ujemnego sprzężenia zwrotnego. Rezystory R49 i  R234 (lub R50 i  235) tworzą dodatnie sprzężenie zwrotne. Dodatnie sprzężenie zwrotne powoduje wzrost impedancji wyjściowej wzmacniaczy do około 30  V. Jest to korzystne, ponieważ głośność w słuchawkach o różnej impedancji się wyrównuje.

Mikrokontroler LPC2387 Do sterowania amplitunerem wybrałem 32-bitowy mikrokontroler LPC2387. Jest to jeden z nielicznych wyposażonych w  interREKLAMA

53

2013-06-28 08:09:34


PROJEKT CZYTELNIKA fejs AUDIO I2S. Kolejną zaletą tej rodziny procesorów jest wgrany fabrycznie bootloader wykorzystujący interfejs szeregowy UART. Mikrokontroler ma dużą pamięć RAM (64 kB+2×16 kB+2 kB), dużą pamięć Flash (512 kB), interfejsy I2C, SPI/SSP i UART. Ze względu na konieczność użycia interfejsów I2S częstotliwość zegara systemowego musi byś wielokrotnością częstotliwości próbkowania dźwięku 44,1 kHz lub 48  kHz. Dla częstotliwości próbkowania 44,1  kHz częstotliwość zegara systemowego wynosi 67,7376  MHz, a  dla częstotliwości próbkowania 48 kHz jest równa 73,728 MHz. Maksymalna częstotliwość zegara systemowego dla procesora LPC2387 wynosi 72 MHz, zatem w  tym drugim wypadku zastosowałem lekkie przetaktowanie procesora. W obydwu przypadkach zegar systemowy jest równy 24×BCLK (Bit clock magistrali I2S). Źródłem sygnału zegara systemowego jest specjalny układ scalony (U18) typu MAX9485EUP. Ma on wbudowany generator 27 MHz, a w strukturze wewnętrznej ma pętlę PLL generującą częstotliwości potrzebne do obróbki dźwięku. Po restarcie układ generuje częstotliwość 8,192 MHz (nóżka 11 – CLK_OUT1). Po wpisaniu przez procesor odpowiednich danych do rejestrów wewnętrznych tego układu, na wyjściu CLK_OUT1 otrzymujemy częstotliwość 11,2896 MHz lub 12,288 MHz. Na nóżce 18 – MCLK dostępny jest sygnał o częstotliwości 27 MHz dla dekodera STA310. Układ scalony MAX705CSA(U11) generuje sygnał RESET# zerujący większość układów scalonych potrzebujących sprzętowego sygnału zerowania. Źródłem sygnału reset procesora RESET0# jest albo sygnał RESET# z  układu U11 (poprzez diodę D6 BAT254) albo DTR# z układu U12 FT232RL (poprzez diodę D5 BAT254). Układ U11(MAX705CSA) jest zasilany napięciem +5 V, jego poziom wpływa na stan wyjścia RESER#. Napięciem +5  V jest zasilany stabilizator U25(LM3940) wytwarzający napięcie +3,3 V zasilające procesor. Procesor steruje pozostałymi układami scalonymi głównie przez interfejsy I2C. Dodatkowo dołączyłem do procesora szeregową pamięć RAM(U14) typu 23K256-I-SN o  pojemności 32kB. Pamięć ta jest sterowana przez interfejs ISP(SSP1). W  tej pamięci przechowuję dane związane z  operacjami zapis/odczyt na karcie SD/SDHC(JSD). Linie sterujące kartą SD/SDHC zostały poprowadzone przez zworki (Z15, Z16, Z17). Umożliwia to podłączenie tej karty albo do interfejsu ISP, albo do dedykowanego do obsługi kart pamięci interfejsu SD/MMC. Ponieważ wyprowadzenia interfejsu I2S i  SD/MMC wykorzystują te same wyprowadzenia procesora zmuszony byłem podłączyć kartę SD/ SDHC do interfejsu ISP(ISP). Do odczytu Pendriv’a zastosowałem moduł DIP1(JDIP) produkcji firmy Vinculim.

54

050-056_czytelnik.indd 54

Moduł ten zawiera specjalizowany układ scalony typu VNC1L-1A zapewniający obsługę transmisji USB. Układ VNC1L-1A może być sterowany przez interfejs równoległy, szeregowy RS-232 oraz szeregowy ISP. Wybrałem interfejs ISP(SSP0). Moduł DIP1 jest połączony również przez zworki ZVD1,2,3,4 umożliwiające aktualizację oprogramowania układu VNC1L-1A przez kanał RS-232 wychodzący z układu FT232RL(U12). Układ FT232RL pozwala programować procesor, jeśli są założone są zworki Z13 i Z20 oraz zworki ZVD1, 2, 3, 4 zwierają piny 1 i  2, albo aktualizować oprogramowanie układu VNC1L-1A po usunięciu zworek Z13 i Z20 oraz zmianie położenia zworek ZVD1, 2, 3, 4, aby zwierały piny 2 i  3. Sam układ FT232RL jest konwerterem transmisji USB na RS-232. Do programowania procesora LPC2387 należy użyć programu „Flash magic” (rysunek 8). Można go pobrać ze strony producenta (NXP). Do aktualizacji oprogramowania modułu VNC1L-1A można wykorzystać program VPROG dostępny na stronie www.ftdichip.com. Sterowanie układem VNCL1A polega na wysyłaniu do niego komend i odczytywaniu odpowiedzi. Użyłem „krótkich” komend – „Shortened Hexadecimal Command”. Ten rodzaj komunikacji jest najwygodniejszy przy sterowaniu tego układu przez procesor. Z układem VNCL-1A można się również komunikować w  trybie „Extended ASCII”, ale ten tryb nadaje się przy sterowaniu z terminala ASCII. Komunikację z układem VNCL-1A zaczynam zawsze od wysłania komendy „Check if online” polegającej na wysłaniu znaku <CR> (0x0D). Jeśli układ doczytał prawidłowo pendrive, to w  odpowiedzi otrzymamy: „>”, 0x0D. Przy braku pendriva otrzymamy odpowiedź: „ND”, 0x0D (No Disk). Oprogramowanie ampli tunera pozwala odczytywać pliki z  pendriva, ale nie wykorzystuje funkcji zapisu. Obsługa pendriva przebiega następująco: sprawdzenie obecności pendriva, odczyt katalogu, odczyt długości plików. Aby odtworzyć plik *.MP3 należy „otworzyć” plik funkcją „OPR”, a  następnie odczytać funkcją „RDF” określoną liczbę bajtów (zwykle kilkakrotnie). Nie należy przekroczyć liczby bajtów wynikającą z rozmiaru pliku. Po każdym wywołaniu funkcji „RDF” należy odczytać dokładnie taką ilość bajtów, jaką podaliśmy w  wywołaniu funkcji – w przeciwnym przypadku komunikacja z pendrivem ulegnie desynchronizacji. Procesor LPC2387 ma 4 bloki pamięci RAM: – STATC RAM - 64kB (0x4000 0000 – 0x4000 FFFF) – dostęp po 1 bajcie, – USB RAM - 16kB (0x7FD0 0000 – 0x7FD0 3FFF) – dostęp po 4 baty, – ETHERNET RAM - 16kB (0x7FE0 0000 – 0x7FE0 3FFF) – dostęp po 4 baty,

– CMOS RAM - 2kB (0xE0084000 0xE00847FF) – dostęp po 4 baty. W pamięci STATIC RAM przechowywane są dane, stos procesora i  bufory operacji dyskowych. Bloki pamięci USB RAM i ETHERNET RAM wykorzystywane są tylko na bufory operacji dyskowych. W  pamięci CMOS RAM przechowywane są najważniejsze dane. Zawartość pamięci CMOS RAM jest podtrzymywana bateryjnie. Karta pamięci SD lub SDHC jest wykorzystywana zarówno do odczytu jak i zapisu danych. Szybkość komunikacji z tą pamięcią wynosi około 300 kB/s (2,88 Mb/s). Zapewnia to możliwość zapisu plików typu WAV z dźwiękiem stereo o częstotliwości próbkowania 48 kHz z  16-bitową rozdzielczością (192 kB/s=1,536Mb/s). Karty pamięci Flash przed zapisem danych muszą skasować poprzednią zawartość dla pewnej liczby swoich bloków pamięci. Kasowanie danych odbywa się automatycznie przez sterownik wewnętrzny karty. Kasowanie danych jest powodem, że karta co jakiś czas przez moment zgłasza niegotowość przez kilkaset ms (maksymalny czas dostępu). Podczas zapisu pliku WAV maksymalny czas dostępu do karty nie powinien przekraczać 300 ms. Nawet bardzo szybkie karty (klasy 10) mogą mieć maksymalny czas dostępu na poziomie 500 czy nawet 700 ms. Przy doborze korty SD lub SDHC należy zwrócić uwagę na maksymalny czas dostępu do karty dla operacji zapisu. Oprogramowanie ampli tunera potrafi wykorzystać karty SD 1 GB, SD 2 GB, SDHC 2 GB oraz SDHC 4 GB. Karty powinny być w formacie FAT16 (również karty 4 GB). Zapis plików WAV odbywa się w buforze cyklicznym. Dla kart 1 GB długość bufora pozwala zmieścić około 6, dla kart 2 GB około 10, a dla kart 4 GB około 12 minut nagrania. Po uruchomieniu nagrywania dane są wpisywane do bufora (na karcie SD/SDHC). Właściwy zapis pliku zaczyna się po powtórnym naciśnięciu przycisku ENTER (PLAY). Jeśli w buforze jest już więcej niż 40 sekund nagrania, to nagrywany plik będzie się zaczynał 40 sekund wcześniej w odniesieniu do chwili, w której został naciśniety przycisk ENTER (PLAY). Uzyskujemy w  ten sposób „poślizg w czasie” i każde nagranie będzie zawierało początek nagrania. Nagranie kończy się w chwili naciśnięcia przycisku ESC (STOP) lub po zapełnieniu się całego bufora. Oczywiście przed uruchomieniem właściwego nagrywania dane będą nagrywane w buforze cyklicznym nieprzerwanie (bufor może być kilkakrotnie nadpisywany).

Układ EPM3064 Układ scalony (U10) typu EPM3064ATC100 spełnia głównie rolę multiplekserów sygnałów cyfrowych. Do jego zaprogramowania użyłem MAX+plus II. Strukturę wewnętrzną bloków logicznych ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:34


Amplituner do kina domowego AMPL-008 wprowadziłem w tym programie w  postaci schematu (plik *.gdf). Cały schemat logiki wewnętrznej jest dość rozbudowany, dlatego opiszę tylko ogólnie jego strukturę. W  układzie EPM3064 umieściłem trzy 8-bitowe rejestry. Dane przeznaczone dla każdego z  nich są wpisywane szeregowo najpierw do czwartego 8-bitowego rejestru „temp”. Sygnał CTRL0 służy jako zegar, a  sygnał CTRL1 przesyła dane (szeregowo 8 bitów). Sygnały CTRL2, CTRL3 i  CTRL4 zatrzaskują dane z  rejestru „temp” do odpowiedniego rejestru docelowego (LATCH1, LATCH2, LATCH3. Multiplekser MUX1 przełącza 3 sygnały wejściowe I2S do układu STA015. Multiplekser MUX2 przełącza 3 sygnały wejściowe I2S do układu STA310. Multiplekser MUX3 przełącza 2 sygnały wejściowe I2S do układu AL3102. Układ AL3102 nie wymaga sygnału BCLK. Układ AL3102 w  prototypie nie został wlutowany, ponieważ (bez zworki S6) sygnał ALIN1 jest powielany na wyjściach WMDIN1,2,3,4 lub tylko na WMDIN1,2,3. Multiplekser MUX4 przełącza źródło sygnału WMMCLK (‘Master clock’ dla układu WM8770). Multiplekser MUX5 przełącza źródło sygnału WMBCLK (‘Bit clock’ dla układu WM8770). Multiplekser MUX SPDIF przełącza źródło sygnału transmisji SPDIF. Niektóre wyprowadzenia układu EPM3064 mogą być wejściami lub wyjściami (WMWSADC, WMWSDAC, WMBCLK, DDPCMCLK). Część wyprowadzeń układu EPM3064 są po prostu wyjściami (OUTx1, OUTx2 itd.).

Przetwarzanie sygnałów audio Źródło sygnału audio może być cyfrowe lub analogowe. Sygnały analogowe mogą pochodzić z tunera radiowego lub kilku stereofonicznych wejść analogowych – złącza CHINCH i  JACK na tylnej ściance tunera, złącza JACK na przedniej ściance tunera. Sygnały cyfrowe mogą pochodzić z jednego z czterech wejść cyfrowych SPDIF. Również cyfrowym źródłem sygnału audio nazwałbym pliki *.WAV i *.MP3. W wypadku źródeł analogowych sygnał AUDIO może przejść tylko przez tory analogowe, ale może zostać również najpierw przetworzony na postać cyfrową (przez przetwornik ADC w układzie WM8770). Pierwszy przykład przetwarzania sygnału audio dotyczy sytuacji, gdy sygnał analogowy zostaje przetworzony na postać cyfrową. Z wyjścia multipleksera analogowego sygnał stereofoniczny (analogowy) trafia na przetwornik A/C (WM8770). Następnie, już w  postaci cyfrowej, po przejściu przez cyfrowy multiplekser (EPM3064) trafia na wejście procesora DSP zawartego w układzie STA310. Procesor DSP przetwarza strumień wejściowy według wybranych (jednego lub dwóch) algorytmów: Circlesurround, Dolby ELEKTRONIKA PRAKTYCZNA 7/2013

050-056_czytelnik.indd 55

Pro Logic, SRS, VMAX. Następnie z wyjść cyfrowych układu STA310 (po przejściu przez kolejny multiplekser w  układzie EPM3064) trafia do czterech przetworników D/C w układzie WM8770 i ostatecznie pojawia się w postaci analogowej na czterech stereofonicznych wyjściach z tego układu. Tor przetwarzania sygnału analogowego stereo przez procesor DSP układu STA310 (Tryb DDD). W  drugim przypadku źródłem sygnału cyfrowego jest wejście SPDIF. Sygnał SPDIF po przejściu przez multiplekser cyfrowy w układzie EPM3064 wchodzi na wejście SPDIF układu STA310. Następnie procesor DSP układu STA310 albo dekoduje strumień AC3 lub DTS, albo przetwarza strumień stereo PCM jednym (lub dwoma naraz) z algorytmów: Circlesurround, Dolby Pro Logic, SRS, VMAX. Różne tryby przetwarzania sygnałów postanowiłem oznaczyć skrótami (ze względu na niewielką ilość znaków potrzebną do wyświetlania na wyświetlaczu). Oto podstawowe skróty wykorzystywane w  dalszym opisie: • DDD – Digital, Digital, Digital – 3 strumienie cyfrowe stereo (L/R, C/Sub, LS/ RS), • DAA – Digital, Analog, Analog – 1 strumień cyfrowy i 2 strumienie analogowe, • AAA – Analog, Analog, Analog – 3 strumienie analogowe stereo. Tor przetwarzania sygnału cyfrowego z wejścia SPDIF przez procesor DSP układu STA310 (Tryb DDD). Drogę sygnału analogowego w  trybie AAA. W  tym przypadku wejściowy sygnał analogowy jest przetwarzany tylko analogowo. Wyjście analogowego multipleksera wejść (WM8770) jest skierowane wprost (Bypass) na czwarty, analogowy regulator wzmocnienia układu WM8770. Dalej sygnał z czwartego wyjścia stereo układu WM8770 trafia na wejście analogowego procesora audio (TDA7461). Tam dokonywana jest ewentualne korekta barwy tonu i  regulacja wzmocnienia dla wzmacniacza słuchawkowego (TPA6120A2). Stereofoniczny sygnał wyjściowy z  układu TDA7461 jest kierowany na wejście układu UPMIX. Na wyjściu tego układu otrzymujemy komplet 6-ciu analogowych kanałów dźwiękowych (wygenerowanych przez sumowanie, odejmowanie i  filtrowanie kanałów L i  R). Te 6 kanałów analogowych przechodzi jeszcze przez multipleksery analogowe ADG794 i dalej trafiają one na trzy pierwsze (stereofoniczne) regulatory wzmocnienia w układzie WM8770. Wyjścia z tych regulatorów sterują (po przejściu przez filtry dolnoprzepustowe – nie pokazane a rysunku) końcówkami mocy (TAS5611, TPA3120D2). Tor przetwarzania sygnału analogowego stereo przez procesor analogowy układu TDA7461 (Tryb AAA).

Przetwarzanie sygnałów w trybie DAA. Źródłem danych audio jest karta SD, SDHC lub Pendrive. Plik *.MP3 jest odczytywany przez procesor LPC2387 i  kierowany na wejście dekodera MP3 w  układzie STA015. Sygnały wyjściowe z  dekodera STA015 po przejściu przez jeden z  multiplekserów w  układzie EPM3064 trafiają na wejścia przetworników DAC1 i  DAC4 w  układzie WM8770. Na wyjściach tych przetworników pojawia się analogowy dźwięk stereo dla kanałów L i R. Aby uzyskać kanały: Centralny, Subwoofer oraz L i R surroud wykorzystany został układ TDA7461 oraz układ UPMIX. Tor przetwarzania sygnału analogowego stereo przez procesor analogowy układu TDA7461 (Tryb DAA). Myślę, że w  tym miejscu uważny czytelnik zacznie się zastanawiać, dlaczego odtwarzanie plików *.MP3 nie jest wykonywane w trybie DDD? Muszę przyznać, że taki tryb odtwarzania był przez mnie testowany – wyjście z układu STA015 wchodzące (przez multiplekser) na wejście procesora DSP układu STS310. Testy wykazały jednak, że układ STA310 często traci synchronizację z  przebiegiem wejściowym I2S z  układu STA015, co powoduje pojawienie się szumów. Wiąże się to prawdopodobnie z  trudnościami z  wychwytywaniem przez układ STA310 momentów przejścia częstotliwości próbkowania transmisji I2S z 44,1 kHz na 48 kHz i odwrotnie. Układ STA015 domyślnie generuje przebieg wyjściowy o  częstotliwości próbkowania transmisji I2S równy 48 kHz. Gdy układ ten zaczyna dekodować strumień MP3 o częstotliwości próbkowania 44,1 kHz (większość plików *.MP3) zmienia się również częstotliwość przebiegu wyjściowego I2S na 44,1 kHz. Możliwe są jeszcze inne tory przetwarzania sygnałów audio. Jednym z  nich jest przypadek odtwarzania DAA (w  tym wypadku Direct, Analog, Analog) w  którym analogowy sygnał stereo z  multipleksera wejściowego (WM8770) przechodzi wprost (Bypass) na pierwszy i  czwarty analogowy regulator wzmocnienia układu WM8770. Na pierwszym wyjściu układu WM8770 (kaREKLAMA

55

2013-06-28 08:09:34


PROJEKT CZYTELNIKA nały L/R) mamy wtedy sygnał bezpośredni (Direct). Kanały: Centralny, Subwoofer oraz L i R surroud są generowane (analogowo) przez układ TDA7461 oraz układ UPMIX. Innym przypadkiem odtwarzania jest odtwarzanie DIR (Direct, Direct, Direct), w którym 6 wejściowych analogowych sygnałów audio trafia (poprzez multipleksery ADG794) wprost na pierwsze 3 regulatory wzmocnienia w  układzie WM8770. Można również wybrać odtwarzanie Double Stereo, podczas którego kanały główne L/R są powielane (cyfrowo ‘DSD’ lub analogowo DSA) w kanałach L/R surround.

Obudowa i płyta czołowa Przewidziałem sterowanie za pomocą 8 przycisków. Możliwe jest również sterowanie z pilota RC-5 (urządzenie 0). Zaprojektowałem płytę czołową tunera zawierającą 8 przycisków, wyświetlacz LCD 2×24 znaki, 5 diod LED (np. niebieskich) oraz jedną diodę LED RGB typu CQL510RGB. Płytka główna łączy się z  płytką elewacji poprzez 20-żyłowy przewód taśmowy. Wyświetlacz LCD1 (HY2402A) jest sterowany przez 4-bitową magistralę. Te same linie danych (DAT4, DAT5, DAT6, DAT7) wykorzystałem do odczytu stanu przycisków. Na płytce elewacji umieściłem również elementy sterujące diodami LED. Dioda LED  RGB (LED_X) może świecić w jednym z czterech kolorów: zielonym, żółtym, czerwonym albo niebieskim. Kolor czerwony oznacza, że amplituner jest wyłączony (w  stanie czuwania). Kolor niebieski oznacza normalna pracę urządzenia, kolor zielony oznacza SHIFT, a kolor żółty ALT. Pięć zwykłych diod LED (w  prototypie są to diody niebieskie) pokazuje poziom sygnału na wyjściach REC układu WM8770. Diody L_LF i  L_RF świecą proporcjonalnie do poziomu sygnału w kanałach (odpowiednio) lewym i prawym. Dioda L_C sterowana jest z  wyjścia wzmacniacza U1A i  świeci proporcjonalnie do poziomu sumy sygnałów w  kanale lewym i  prawym. Poziom świecenia tej diody jest proporcjonalny do poziomu sygnału w  wirtualnym kanale centralnym. Diody L_LS i  L_RS są sterowane z  wyjścia wzmacniacza U1B. Wzmacniacz ten daje sygnał proporcjonalny do różnicy sygnałów w  kanałach lewym i  prawym. Pozom świecenia diod L_LS i  L_RS jest proporcjonalny

56

050-056_czytelnik.indd 56

do poziomu sygnału w wirtualnych kanałach tylnych (surround). Prądy sterujące diodami LED są prostowane przez tranzystory T1, T2, T3 i T4. Dodatnie połówki sinusoidy powodują zatykanie tych tranzystorów. Ujemne połówki sinusoidy powodują ich wysterowanie proporcjonalne do chwilowej amplitudy sygnału. Prądy płynące przez diody L_LF i L_RF wytwarzają spadki napięcia na rezystorach R21 i R22 proporcjonalne do średniej wartości poziomu sygnałów (analogowych audio) w kanałach przednich. Napięcie (stałe, uśrednione) z  tych rezystorów jest mierzone przez przetwornik analogowo cyfrowy znajdujący się w procesorze LPC2387. Procesor wyświetla na wyświetlaczu poziom wysterowania kanałów przednich. Wyświetlany poziom dla przebiegów sinusoidalnych daje wynik 100 dla pełnego wysterowania. Jeśli kanały analogowe są mocno przesterowane, to kształt wyjściowy sygnałów przypomina bardziej prostokąt i  wyświetlany wynik na wyświetlaczu może dochodzić do 200. W praktyce należy tak dobrać wzmocnienie (ATT) dla każdego wejścia analogowego, aby w  najgłośniejszych partiach odtwarzanych dźwięków na wyświetlaczu pojawił się wynik około 70. Prototyp amplitunera umieściłem w  obudowie przeznaczonej dla odtwarzacza DVD (BELLWOOD 311U), dlatego układ poszczególnych elementów na elewacji jest nieco inny. Przewidziałem opcjonalną obsługę impulsatora zamiast przycisków VOL+, VOL- i ENTER/PLAY – w prototypie użyłem impulsatora, a  przyciśnięcie przycisku ENTER/PLAY polega na naciśnięciu pokrętła impulsatora. Wszystkie operacje związane ze sterowaniem funkcjami tunera można wykonać posługując się przyciskami. Wygodniejsze jest jednak użycie pilota RC-5. Do sterowania funkcjami tunera używam głównie przycisków z  cyframi ‘0’, ‘1’… ‘9’. Jako klawisz ENTER używany jest przycisk ‘PLAY’, jako ESC przycisk ’STOP’. Podczas normalnej pracy tunera przyciski ‘0’, ‘1’… ‘9’ wybierają wprost wejście. Wejścia są przyporządkowane następująco: „0” – tuner FM, „1”, „2”, „3” – kolejne wejścia stereo CHINCH (z tyłu obudowy), „4” – wejście AUX – dodatkowe, w prototypie niewykorzystywane,

„5” – wejście DIRECT 5.1 – analogowe wejście 6-kanałowe (3 x JACK z tyłu obudowy), „6” – wejście JACK z przodu obudowy, „7” – wejście wykorzystywane podczas odtwarzania źródeł cyfrowych, „8” – tuner FM. Normalnie wybiera ostatnio wybraną stację radiową. Jeśli wybierzemy (w odstępie czasu mniejszym od 2 sekund) sekwencje ‘8’ ‘1’ albo ‘8’ ‘2’ itd., to zostanie wybrana zaprogramowana stacja radiowa 1, 2 itd. „9” – jedno z  wejść cyfrowych SPDIF. Normalnie wybiera ostatnio wybrane wejście SPDIF. Jeśli wybierzemy (w  odstępie czasu mniejszym od 2 sekund) sekwencje ‘9’ ‘1’ albo ‘9’ ‘2’ itd., to zostanie wybrane konkretne wejście SPDIF1, SPDIF2 itd. Dla wygody obsługi sekwencje „8” – „0” i  „9” – „0” są odczytywane, odpowiednio, jako „8” – „4” i „9” – „4”. Przyciski „VOL+” i „VOL-„ służą do regulowania głośności, ale w wielu przypadkach są traktowane jak „+” i „-”. Zaawansowane funkcje można obsługiwać posługując się MENU. Wywołanie MENU następuje przez naciśniecie przycisku SHIFT+ENTER (najpierw spowodować klawiszem SHIFT świecenie diody LED_X w  kolorze zielonym, a  następnie nacisnąć przycisk ENTER/PLAY). Poruszanie się po MENU polega na kolejnym naciskaniu klawisza ENTER/PLAY. Wybór poszczególnych pozycji z MENU jest dokonywany klawiszami „0”…„9”. Niekiedy należy podać konkretną wartość (np. częstotliwość stacji radiowej w kHz). Wprowadzamy się ją klawiszami cyfrowymi i kończy ENTER/PLAY. Jeśli chcemy wyjść z MENU lub nie chcemy zaakceptować wprowadzonej wartości, naciskamy przycisk ESC/STOP. Myślę, że układ MENU jest intuicyjny i pominę jego szczegółowy opis. Chcę tylko wspomnieć o  pozycji POWER pozwalającej określić, które końcówki mocy (układy scalone) są włączone oraz o pozycji BALNS ustalającej poziomy głośności w poszczególnych kanałach (relatywnie w stosunku do głośnika LEWY PRZÓD).

Zbyszko Przybył zbyszekp@mikronika.pl

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:34


Przegląd systemów operacyjnych dla systemów wbudowanych Użytkownicy rozpieszczani kolorowymi wyświetlaczami oraz interfejsami dotykowymi telefonów komórkowych stawiają przed konstruktorami urządzeń elektronicznych coraz większe wymagania. Niegdyś popularne monochromatyczne wyświetlacze znakowe odchodzą do lamusa nawet w urządzeniach amatorskich. Równocześnie czasy prostych interfejsów komunikacyjnych, takich jak np. RS232, którego oprogramowanie można było zmieścić w  kilkudziesięciu liniach kodu, również odeszły w  zapomnienie. Współczesne interfejsy takie jak USB, Ethernet, CAN, Wi-Fi, Bluetooth, wymagają skomplikowanych rozwiązań programowych, zarówno do obsługi samych rejestrów sprzętowych kontrolera interfejsu, jak i  dodatkowych warstw abstrakcji. Wszystko to powoduje, że przygotowanie we własnym zakresie odpowiedniego oprogramowania od podstaw dla nieco bardziej zaawansowanych projektów, za pomocą samego kompilatora, jest zadaniem żmudnym, podatnym na błędy, a  co za tym idzie kosztownym. Rozwiązaniem jest zastosowanie systemu operacyjnego. Tworzenie całego oprogramowania od podstaw ma czasem sens (choć nie zawsze) jedynie w  dużych firmach dla produkcji wielkoseryjnej, gdzie pracochłonny koszt przygotowania wyspecjalizowanego oprogramowania umożliwia zastosowanie prostszych, a  zatem tańszych podzespołów. Dlatego w  urządzeniach elektronicznych coraz chętniej stosowane są systemy operacyjne, które doskonale upraszczają proces przygotowania oprogramowania pozwalając skupić się na funkcjonalności, dodając kolejną warstwę abstrakcji pomiędzy programem a  sprzętem. Podobnie jak kilkanaście lat temu w oprogramowaniu wbudowanym odeszliśmy od pisania kodu aplikacji w  assemblerze (z wyjątkiem nielicznych wstawek) na rzecz języka C, który nazywany jest „przenośnym assemblerem”, tak dzisiaj obserwujemy proces odchodzenia od bezpośredniego programowania rejestrów mikrokontrolera na rzecz systemów operacyjnych oraz bibliotek dodatkowych. Nie bez znaczenia jednym z dodatkowych powodów coraz większej popularności takich rozwiązań jest rewolucja, która dokonała się w przeciągu ostatnich kilku, lat polegająca na odchodzeniu od mikrokontrolerów 8-bitowych w stronę rozwiązań 32-bitowych (głównie ARM). Współczesne mikrokontrolery mają wielokrotnie bardziej ELEKTRONIKA PRAKTYCZNA 7/2013

057-062_systemy.indd 57

wydajną jednostkę centralną oraz zasoby pamięci. Umożliwiają przy tym uruchamianie systemów operacyjnych bez zauważalnej utraty wydajności. Często wykorzystanie systemów operacyjnych nie wymaga ponoszenia dodatkowych kosztów, ponieważ wiele z nich jest dostępnych na wolnych licencji umożliwiającej pobranie i  modyfikowanie źródła, przy czym gro z nich to projekty dojrzałe, mające certyfikaty lub umożliwiające wykupienie wsparcia komercyjnego. Istnieją również komercyjne systemy o zamkniętym kodzie źródłowym, których użycie wymaga poniesienia dodatkowych kosztów zakupu samej licencji. W  zależności od sposobu licencjonowania, może to być opłata jednorazowa lub też opłata od każdej sztuki działającego urządzenia.

Architektura Pod pojęciem systemu operacyjnego dla urządzeń wbudowanych kryje się cała gama systemów, od tych najprostszych, które możemy uruchomić na mikrokontrolerach 8-bitowych, po rozbudowane, znane z komputerów PC. Ze względu na rodzaj obsługiwanych układów systemy możemy podzielić na dwie kategorie: • Systemy operacyjne przeznaczone dla mikroprocesorów minimum 32-bito-

wych wyposażonych w jednostkę zarządzania pamięcią MMU oraz dużą, zewnętrzną pamięć operacyjną, zazwyczaj większą niż 4 MB. • Minisystemy operacyjne, przeznaczone dla mikrokontrolerów jednoukładowych, pracujące w pojedynczej przestrzeni adresowej i wymagające niewielkiej pamięci operacyjnej rzędu pojedynczych kB. Systemy z pierwszej grupy, są najczęściej rozwiązaniami zaawansowanymi, zapewniającymi sterowniki dla wielu układów peryferyjnych, wbudowaną obsługę zaawansowanych protokołów sieciowych, wyświetlaczy graficznych, klawiatur itp. Wspierają one również separację oraz wirtualizację zasobów pomiędzy poszczególnymi aplikacjami, dzięki czemu nawet w  przypadku awarii jednej z  aplikacji, pozostała część systemu oraz aplikacja nadal pracują prawidłowo. Typowym przedstawicielem systemu wymagającego mikroprocesora z MMU jest Linux, którego architekturę programową przedstawiono poglądowo na rysunku 1. Linux składa się z monolitycznego jądra odpowiedzialnego za wirtualizację zasobów, szeregowanie zadań, komunikację międzyprocesową, obsługę protokołów sieciowych. Jądro zapewnia także jednolity interfejs dostępu do urządzeń dodając dodatkową warstwę abstrakcji uniezależniającą aplikację od sprzętu, na którym pracuje. Bezpośredni dostęp do sprzętu ma jedynie jądro systemu operacyjnego. Wszystkie aplikacje korzystające ze sprzętu muszą odwoływać się do niego za pośrednictwem jądra. Jądro pracuje w  trybie uprzywilejowanym, mając dostęp do całej przestrzeni adresowej oraz urządzeń peryferyjnych. Aplikacje działają w  przestrzeni użytkownika i  mają ograniczony dostęp do zasobów systemowych pracując w  wydzielonych, niezależnych przestrzeniach adresowych. Dostęp do wywołań systemowych jądra odbywa się za pomocą biblioteki libc, która zapewnia dodatkową funkcjonalność oraz tworzy warstwę abstrakcji pomiędzy interfejsem jądra a  aplikacją użytkownika. Pomimo niezaprzeczalnych, zalet pełnoprawne systemy operacyjne narzucają stosunkowo duże wymagania odnośnie do

E M B E D D E D O S T E M AT N U M E R U

Przegląd systemów operacyjnych WYBÓR dla systemów wbudowanych KONSTRUKTORA

57

2013-06-28 08:09:49


E M B E D D E D O S T E M AT N U M E R U

WYBÓR KONSTRUKTORA

Rysunek 1. Poglądowa architektura systemu Linux embedded samej jednostki centralnej oraz wymagają dodatkowych zasobów, takich jak stosunkowo duża pamięć operacyjna czy dodatkowa pamięć stała, w której będą przechowywane pliki oraz aplikacje. Niestety, współczesne mikrokontrolery jednoukładowe nie mają zasobów umożliwiających uruchomienie pełnoprawnego systemu. W  takich wypadkach znajdują zastosowanie „minisystemy operacyjne” o  znacznie uproszczonej budowie, oparte o koncepcję mikrojądra. Systemy te mają zdecydowanie mniejsze wymaga-

nia. Przede wszystkim nie jest wymagana jednostka centralna wyposażona w MMU, a  apetyt na pamięć jest znacznie mniejszy. Do jego uruchomienia wystarczy nawet 8-bitowy mikrokontroler wyposażony w pamięci RAM i Flash o wielkości kilkunastu KB. Podstawową architekturę takiego minisystemu pokazano na rysunku  2. Brak wymagań odnośnie do MMU, powoduje, że wszystkie aplikacje oraz sam system działają we wspólnej przestrzeni adresowej. Aplikacje oraz jądro mają pełny dostęp do siebie na-

wzajem oraz do wszystkich zasobów sprzętowych. Kod systemu oraz aplikacje linkowane są statycznie do pojedynczego obrazu, który jest następnie wgrywany do pamięci Flash urządzenia. Główną częścią systemu operacyjnego jest jądro, które jest bardzo proste i składa się z  modułu szeregowania zadań (schedulera) oraz modułu komunikacji międzyprocesowej (IPC). Moduł szeregowania zadań jest odpowiedzialny za przydzielanie czasu procesora poszczególnym aplikacjom, natomiast moduł IPC jest odpowiedzialny za komunikację pomiędzy procesami oraz jądrem. Aplikacje mają dostęp do wszystkich zasobów, zatem nie jest konieczne odwoływanie się do sprzętu za pośrednictwem jądra. W  tej architekturze można odwoływać się bezpośrednio do sprzętu za pomocą wpisów do rejestrów sprzętu, tak jak w przypadku klasycznych aplikacji pozbawionych systemu. Bardzo często minisystemy mają dodatkowe moduły udostępniające warstwę abstrakcji sprzętu HAL czy integrujące np. stos TCP lub USB, niestanowiące w ścisłym sensie jądra systemu, ale dostarczane razem z nim. Dodatkowa warstwa nie jest wymagana, ale pozwala na uniezależnienie aplikacji od specyfiki danego rozwiązania sprzętowego. Często również minisystemy wyposażane są w  dodatkowe stosy protokołów np. TCP/ IP, USB, Bluetooth itp., zapewniając odpowiednie API. Zazwyczaj istnieje możliwość wyłączenia poszczególnych modułów na etapie kompilowania i  pozostawienie minimalnego zestawu składającego się jedynie z  jądra. Rozpatrując minisystem z  punktu widzenia pełnoprawnego systemu możemy powiedzieć, że jego jądro stanowi analogię do biblioteki obsługi wątków np. Linuksowego pthread, a  poszczególne aplikacje należy rozpatrywać bardziej w kategoriach wątków, niż procesów z uwagi na pracę we wspólnej przestrzeni adresowej.

Wybór platformy sprzętowej. Mikrokontroler jednoukładowy czy mikroprocesor z MMU?

Rysunek 2. Uproszczona architektura minisystemu operacyjnego

58

057-062_systemy.indd 58

Do niedawna wybór pomiędzy mikrokontrolerem, a mikroprocesorem z  MMU dla średniozaawansowanych projektów był oczywisty. Podstawowym wyborem był mikrokontroler jednoukładowy z  uwagi na korzystną cenę lub o  wiele prostszy projekt płytki drukowanej. Jedynie w wypadku najbardziej zaawansowanych projektów mogliśmy sobie pozwolić na użycie mikroprocesora oraz pełnego systemu operacyjnego. Dziś porównując cenę oraz możliwości współczesnych układów wybór już nie jest taki oczywisty. Układ umożliwiający uruchomienie kompletnego systemu operacyjnego możemy nabyć w cenie detalicznej około 20 złotych. Uzupełniając go o  pamięć DRAM oraz niewielką pamięć Flash, łącznie za około 10 ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:49


057-062_systemy.indd 59

Community

GPL

Commercial, free for College and Universities

+

+

+

+

+

Micrium + + + +

+

? +

NIOS, Blackfin ARM7TDMI MC68000 H8 i960 MIPS ColdFire V850 MicroBlaze

4M/4M

few kB/20kB UCLinux

Cortex-M3 Cortex-M4F ARM7TDMI AVR MicroC/OS-II

Proprietary Mentor Graphics + + + + + + 2k/2k ARM MIPS PPC NiosII MicroBlaze SuperH AT91SAM7 NucleusRTOS

Sleepycat licence (OpenSource) Funkenstein Software Consulting + + + + few KB AVR, ARM, MSP430 FunkOS

Evidence Srl ReTiS Lab. and others GPL linking exception + + (multicore) 1-4KB

+ + kilka KB Cortex-M3, ARM7TDMI, AVR, x86 BeRTOS

ARM7, ARM9, Cortex-M, PIC24, PIC32, ST10, S12XS, PPC, NiosII, R2xx

+

+ + + + 512k/512k + ARM, CalmRISC, FR-V, H8, IA32, MC68000 MIPS, NIOS II, PowerPC SPARC, SuperH ECOS

+ + + - (Cooperative scheduler) 1K/6K MSP430 AVR STM32 PIC32 6502

+ + + + 2K/12K ColdFire PowerPC ARC ARM xSCALE MQX

Contiki

+

+ - (częściowo) + + + 2K/4K ARM7/ Cortex M3,M4

+ +/FIXED 4K/6K ARM Cortex-M3,M4 AVR AVR32 HCS12 MSP430 PIC HC8S x86 8052 Coldfire V850 FreeRTOS

ISIX

-

+ + + + +/RR 2K/2-6K I386 ARM7 ARM9 Cortex-M0, M3, M4 PPC e200z AVR8 MSP430 STM8 Coldfire H8S ChibiOS

Erika Enterprise

Modified GPLv2 Develever s.r.l. and community + +(beta)

BSD

GPL Community +

+

Adam Dunklers and Community

Freescale

BoFF +

+

? +

+

Proprietary

GPL

GPL/Commercial Support

GPL3/Commercial

Producent TCPIP USB Filesystem HAL C++ Priorytety Platforma

RAM/ FLASH

ELEKTRONIKA PRAKTYCZNA 7/2013

Nazwa

Tabela 1. Najbardziej popularne systemy operacyjne

złotych, otrzymujemy kompletny system komputerowy, który będzie tańszy niż np. mikrokontroler jednoukładowy STM32F4 mający przy tym znacznie mniejsze możliwości. Zastosowanie pełnoprawnego systemu operacyjnego niesie ze sobą szereg zalet od strony programowej, nieosiągalnych w wypadku użycia bibliotek dostarczanych przez producenta minisystemu. Najistotniejszą kwestią jest dostęp do ogromnej bazy bibliotek oraz programów, które często dostępne są w  postaci gotowych rozwiązań i kodów źródłowych. Wiele popularnych systemów udostępnia sterowniki urządzeń, takich jak pamięci USB, moduły Wi-Fi, Ethernet, Bluetooth oraz kompletne stosy protokołów niedostępne dla małych systemów. Dokonując wyboru musimy zastanowić się czy kosztem większego skomplikowania projektu sprzętowego nie uzyskamy znaczącego obniżenia kosztów przygotowania oprogramowania, które dla projektów nisko- i średnionakładowych stanowi znaczący koszt. Dzięki zastosowaniu dużej bazy oprogramowania możemy skupić się na tworzeniu aplikacji zamiast kolejny raz „wynajdować koło” i  uruchamiać czy pisać np. kod obsługi interfejsu USB. Również bardzo istotną kwestią jest dostępność MMU oraz odrębnej pamięci wirtualnej, oddzielającej od siebie poszczególne procesy oraz jądro. Rozwiązanie to ułatwia tworzenie zaawansowanego oprogramowania oraz podnosi poziom bezpieczeństwa gotowego rozwiązania. Nietrudno wyobrazić sobie, jakim koszmarem jest szukanie błędów w  rozbudowanym oprogramowaniu, gdy nie mamy do dyspozycji mechanizmów ochrony pamięci, gdzie błąd popełniony w  jednym fragmencie może ujawnić się w  zupełnie innym. Z  tych właśnie powodów należy rozważyć czy nie wygodniej i rozsądniej będzie użyć bardziej zaawansowa-

Licencja

Przegląd systemów operacyjnych dla systemów wbudowanych

59

2013-06-28 08:09:49


E M B E D D E D O S T E M AT N U M E R U

WYBÓR KONSTRUKTORA nego sprzętu i pełnoprawnego systemu, zamiast tracić czas na uruchamianie aplikacji dla mikrokontrolera.

Przegląd popularnych mini systemów operacyjnych Na rynku istnieje wiele różnych systemów operacyjnych przeznaczonych dla mikrokontrolerów, przy czym w przeciwieństwie do systemów wymagających MMU, istnieje duża różnorodność. Aby nie zagubić się w tym gąszczu opiszemy najbardziej popularne systemy, które możemy brać pod uwagę chcąc zastosować je we własnych projektach. Duża część z  nich jest dostępna na zasadach otwartych licencji, więc dostępne będą do nich kody źródłowe oraz będziemy mogli ich użyć bez ponoszenia dodatkowych opłat. Jeśli istnieje konieczność wsparcia technicznego, wiele projektów umożliwia wykupienie komercyjnego wsparcia. Dodatkową zaletą przemawiającą za użyciem systemu o otwartej licencji jest ogromna rzesza użytkowników, co pozwala lepiej je przetestować lub poszukać wsparcia społeczności, jeśli będziemy poszukiwali rozwiązania napotkanego problemu. Czasem systemy operacyjne tworzone są przez producenta mikrokontrolera i udostępniane za darmo celem stosowania z jego produktami. Użycie takiego systemu powoduje jednak, że zostaniemy przywiązani na stałe do jednej firmy, co może być ryzykownym posunięciem. Należy zaznaczyć, że wszystkie opisane minisystemy spełniają kryteria czasu rzeczywistego, co nie jest regułą w  wypadku dużych systemów. Istotną kwestią jest również wsparcie dla języka C++, którym może pochwalić się niewiele z  nich. W  tabeli  1 przestawiono listę najbardziej popularnych systemów. Większość z umieszczonych w tab. 1 systemów możemy uruchomić wykorzystując jedynie wewnętrzne zasoby pamięciowe mikrokontrolera jednoukładowego. Jedynymi wyjątkami są tutaj rozbudowane systemy, takie jak ECOS oraz uCLinux, które wymagają przynajmniej kilku MB pamięci zewnętrznej. Oprócz samego mikrojądra zazwyczaj udostępniane są dodatkowe zestawy bibliotek, takich jak: warstwa abstrakcji sprzętu HAL, stosy TCP/IP czy USB, obsługa systemów plików np. FAT itp. Generalnie większość z  tych systemów jest bardzo do siebie podobna, więc dokonując wyboru będziemy musieli kierować się przede wszystkim dostępnością systemu dla danej platformy oraz obecnością dodatkowych bibliotek dla danego mikrokontrolera, np. obsługi USB. Przy zastosowaniach komercyjnych istotne jest również licencjonowanie oraz ewentualnie dostępność odpłatnego wsparcia. Konkurencja na tym polu jest jednak tak duża, że większość z nich jest dostępna nieodpłatnie wraz

60

057-062_systemy.indd 60

z kodami źródłowymi, natomiast licencje komercyjne, wymagające uiszczania dodatkowych opłat, stanowią nieliczne wyjątki. Należy również zastanowić się nad tym czy zawsze będziemy potrzebowali wszystkich dodatkowych bibliotek dostarczanych z systemem. Często lepszym wyborem będzie wykorzystanie jedynie jądra systemu oraz użycie oddzielnych bibliotek dostarczanych przez producenta mikrokontrolera. Podobnie jest ze stosem TCPIP, gdzie np. popularny stos LWIP daje się bardzo łatwo przenieść na dowolny system operacyjny i  platformę niewielkim nakładem pracy. Dzięki modułowemu podejściu uzyskujemy dużo większą swobodę, jeśli chodzi o  dobór oprogramowania. Skupimy się teraz na bardzo krótkim omówieniu charakterystyki najbardziej popularnych systemów oraz ich charakterystyce.

ChibiOS/RT (http://www.chibios.org) System operacyjny ChibiOS/RT jest stosunkowo nowym, dostępnym na licencji GPL. Projekt początkowo powstał jako hobbystyczny, jednak stopniowo zaczął się rozrastać się i obecnie jest rozwijany przez społeczność. Ma przy tym możliwość wykupienia wsparcia komercyjnego. Cechą charakterystyczną istotnie wyróżniającą go spośród innych systemów jest jego statyczna architektura, umożliwiająca tworzenie wszystkich obiektów systemu statycznie w trakcie kompilacji, bez konieczności wykorzystania funkcji alokacji pamięci. Również istotną cecha jest elastyczna konfiguracja, co umożliwia uzyskanie minimalnej funkcjonalności jądra już przy zajętości pamięci Flash rzędu 1,2  kB na platformie Cortex-M3. Jądro systemu zapewnia wielozadaniowość z  wywłaszczeniem 128 priorytetów wątków, karuzelowe przełączanie zadań o takich samych priorytetach. Z mechanizmów komunikacji międzyprocesowej dostępne są: mutexy, zmienne warunkowe, semafory, zdarzenia, kolejki. Poza samym jądrem systemu, w  późniejszym czasie dodano warstwę abstrakcji sprzętu HAL umożliwiającą tworzenie aplikacji niezależnie od platformy. Jako komponenty opcjonalne do wyboru są dostępne dwa stosy TCP/IP: popularny uIP oraz bardziej rozbudowanty LWIP. Dostępna jest również obsługa systemu plików FAT z wykorzystaniem biblioteki FATFS. System zawiera zestaw najbardziej popularnych i  potrzebnych bibliotek przydanych podczas tworzenia własnych aplikacji.

FreeRTOS (http://www.freertos.org/) System operacyjny FreeRTOS jest jednym z najbardziej popularnych systemów dostępnych dla mikrokontrolerów

jednoukładowych. Jednocześnie jest to jeden z najstarszych projektów open source i pewnie jest znany większości czytelników. Projekt jest dostępny dla 31 typów mikrokontrolerów, zawiera wiele gotowych przykładów oraz obszerną dokumentację. Obsługiwanych jest również wiele rodzajów kompilatorów (w  tym GCC). Istnieje możliwość wykupienia wsparcia technicznego, a  ponadto możliwość nabycia komercyjnej odmiany systemu o nazwie SafeRTOS przeznaczonej dla aplikacji krytycznych pod względem bezpieczeństwa. Wersja komercyjna ma certyfikaty zgodności z  normami IEC61508, EN32304, FDA510k. Projekt został w  całości napisany w  języku C, aby oprogramowanie zajmowało niewiele miejsca oraz było przenośne. Jądro systemu zapewnia wielozadaniowość z  wywłaszczeniem oraz podstawowe mechanizmy komunikacji międzyprocesowej, takiej jak: mutexy, kolejki oraz semafory. Dodatkową cechą wyróżniającą system jest możliwość pracy w  trybie tick-less, czyli bez przerwania zegarowego systemu. Ten tryb jest przeznaczony do obsługi urządzeń krytycznych ze względu na pobór mocy. Istotną cechą jest również możliwość pracy systemu na komputerze PC bezpośrednio na platformie Win32 lub POSIX, co umożliwia tworzenie oprogramowania bezpośrednio na komputerze PC doskonale ułatwiając w  ten sposób pracę.

ISIX (http://bryndza.boff.pl/index. php?dz=rozne&id=isixrtos) ISIX jest system mojego autorstwa. Z założenia został zoptymalizowany dla platform 32-bitowych, kompilatora GCC, pełnego wsparcia dla języka C++ oraz dla uzyskania minimalnej zajętości zasobów. Obecnie system może działać na architekturze Cortex-M3 oraz Cortex-M4 , również w  wersji z  jednostką zmiennoprzecinkową. Jeśli istnieje potrzeba użycia systemu na innej architekturze, to w  łatwy sposób może być on dostosowany dla innych platform. Jądro systemu zapewnia wielozadaniowość z wywłaszczaniem, możliwość obsługi wielu priorytetów oraz szeregowanie zadań o  takim samym priorytecie z użyciem algorytmu round-robin. Liczbę elementów komunikacji międzyprocesowej ograniczono do niezbędnego minimum: do dyspozycji mamy semafory, oraz kolejki. Biblioteki zawierają również pełne wsparcie dla języka C++, włącznie z  obsługą wyjątków oraz same funkcje systemu dostarczające interfejs C++ wraz z  obsługą przestrzeni nazw. Dzięki użyciu tylko niezbędnych elementów system zajmuje jedynie kilka kB pamięci Flash i  jest łatwy w użyciu. Dodatkowo, oprócz samego systemu, jest dostarczana biblioteka libfoundation ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:49


Przegląd systemów operacyjnych dla systemów wbudowanych zawierająca generyczne algorytmy, niezależne od platformy oraz biblioteka libstm32 będąca odpowiednikiem STM32 standard perhipheral library. Formalnie wspomniane biblioteki są zupełnie niezależne od systemu i mogą być używane oddzielnie. Dodatkowo, dla systemu dostępny jest stos TCP/IP LWIP, a  dla mikrokontrolerów STM32 STOS USB od ST wpierający tryby Host i Device. Zaimplementowano również bibliotekę obsługi systemu plików FAT32 bazująca na FATFS oraz warstwę abstrakcji dla kart SD wspierająca karty SDHC. System jest dostępny na licencji GPL z  możliwością linkowania z  własnymi aplikacjami bez konieczności publikowania kodu źródłowego.

MQX (http://www.freescale. com/webapp/sps/site/ homepage.jsp?code=MQX_ HOME&tid=vanMQX) System operacyjny MQX jest przeznaczony dla mikrokontrolerów produkowanych przez firmę Freescale i dostępny jest na licencji komercyjnej. Podobnie jak inne systemy oparte o  architekturę mikrojądra, zapewnia algorytm szeregowania oparty o  wielozadaniowość z  wywłaszczeniem oraz obsługą priorytetów. Zapewnia też podstawowe mechanizmy komunikacji międzyprocesowej, takie jak: wątki, semafory, kolejki komunikatów. Istotną zaletą dla użytkowników produktów tej firmy jest pełna integracja ze wszystkimi bibliotekami obsługi sprzętu przez co przygotowanie systemu do użycia jest bardzo łatwe. Dostępne są również zaawansowane biblioteki, takie jak: stos TCP/IP, obsługa systemu plików FAT oraz obsługa USB w  trybach Host jak i Device. Cechą charakterystyczną jest również możliwość minimalistycznej konfiguracji zapewniającej podstawową funkcjonalność systemu już przy zajętości pamięci Flash rzędu 6 kB.

Contiki (http://www.contiki-os.org) Contiki jest specjalistycznym systemem przeznaczonym dla aplikacji sieciowych, którego celem jest możliwość uruchomienia obsługi sieci na 8-bitowych urządzeniach o niewielkich zasobach sprzętowych, z  naciskiem na optymalizację poboru energii. Jego głównym przeznaczeniem, są systemy czujników sieciowych. Umożliwia on uruchomienie aplikacji sieciowych już przy zajętości pamięci Flash rzędu pojedynczych kB, przy poborze energii rzędu miliwatów. System operacyjny Contiki ma odmienną budowę od pozostałych. Szeregowanie zadań realizowaną jest w  trybie wielozadaniowości kooperatywnej, bez wywłaszczania i jest oparte o koncepcję nazwaną protothread. Koncepcja ta opiera się o specjalistyczny ELEKTRONIKA PRAKTYCZNA 7/2013

057-062_systemy.indd 61

system makr dając użytkownikowi wrażenie, że ma do czynienia z odrębnym procesem, a  tak naprawdę jest to ukryta maszyna stanów, oparta o  system zdarzeń. Wątek – zadanie jest pozbawiony stosu lokalnego zmuszając programistę do używania zmiennych globalnych. Należy tutaj podkreślić, że ten system nie jest systemem czasu rzeczywistego. Jego cechą charakterystyczną jest wsparcie zarówno dla protokołu IPv4, jak i  jego następcy IPv6.

ECOS (http://ecos.sourceware.org/) System operacyjny ECOS jest przeznaczony dla nieco bardziej rozbudowanych urządzeń wyposażonych w przynajmniej kilkaset kilobajtów pamięci operacyjnej, na których nie jest możliwe uruchomienie pełnych systemów na przykład Linuksa. Jądro systemu zapewnia mechanizm przełączania zadań z  wywłaszczaniem oraz zaawansowane mechanizmy komunikacji międzyprocesowej. Dodatkowo, istotną cechą jest warstwa kompatybilności ze standardem POSIX, co umożliwia łatwe przenoszenie aplikacji przeznaczonych dla systemów: Unix, Linux, BSD. System dodatkowo ma zintegrowany stos TCP/IP pochodzący z  FreeBSD. Niestety, ten stos nie jest na bieżąco aktualizowany i  synchronizowany z kodem stosu FreeBSD, a ostatnia synchronizacja miała miejsce w 2001 roku, przez co system ma stare luki bezpieczeństwa oraz „exploity”, za co jest krytykowany. Obecnie stracił mocno na znaczeniu z  uwagi na to, że mikroprocesory z MMU oraz pamięci zewnętrzne bardzo potaniały. Ponadto układ z  zewnętrzną pamięcią oraz zewnętrznymi magistralami traci wszystkie zalety projektów opartych o  mikrokontrolery jednoukładowe. Rozwój systemu znacząco zwolnił i  ostatnia wersja stabilna 3.0 pochodzi z roku 2009.

BeRTOS (http://www.bertos.org/) BeRTOS jest kolejnym systemem modularnym, opartym o architekturę mikrojądra z obsługą wielozadaniowości z wywłaszczaniem oraz podstawowymi mechanizmami IPC, takimi jak: semafory, sygnały, kolejki komunikatów. Został on napisany w  języku C i  przeniesiony na najbardziej popularne układy rodziny ARM7TDMI, Cortex-M oraz AVR. Jego cechą charakterystyczną jest budowa modularna oraz rozbudowana warstwa abstrakcji sprzętu HAL zawierająca ogromną bazę sterowników urządzeń niespotykanych w  innych systemach. Dodatkowo, oprócz warstwy abstrakcji sprzętu do dyspozycji mamy bibliotekę obsługi systemu plików FAT, obsługę autorskiego systemu plików BattFS, który jest przeznaczony dla małych nośników, takich jak pamięci EEPROM lub

DataFlash. Jest wyposażony również w stos TCP/IP oraz obsługę dodatkowych protokołów, niespotykaną w  innych systemach. Są to na przykład PocketBus czy AX25. Z systemem jest dostarczana także biblioteka umożliwiająca tworzenie prostych interfejsów graficznych. System jest dostępny na licencji GPL z możliwością linkowania własnych aplikacji bez konieczności publikowania ich kodu źródłowego.

Erika Enterprise (http://erika.tuxfamily.org/drupal/) Erika Enterprise jest kolejnym systemem open source, który w 2012 roku otrzymał certyfikat OSEK/VDK. Podobnie jak i w innych systemach, mikrojądro zapewnia wielozadaniowość z  wywłaszczaniem obsługę podstawowych mechanizmów IPC. Ma przy tym budowę modułową. W  wersji minimalnej funkcjonalny kernel „zadowala się” pamięcią Flash rzędu 2 kB. Jego wyróżniającą cechą jest wsparcie dla architektury wielordzeniowej, które zazwyczaj nie jest spotykane w tej klasie systemów. Dla systemu, oprócz wsparcia społeczności, jest dostępne odpłatne wsparcie komercyjne.

FunkOS (http://funkos.sourceforge.net/) System operacyjny FunkOS jest dostępny dla popularnych platform mikrokontrolerowych, takich jak ARM, AVR, MSP430. Jądro systemu zapewnia obsługę wielozadaniowości z wywłaszczaniem, z możliwością obsługi 255 priorytetów zadań oraz podstawowymi mechanizmami komunikacji IPC. Ponadto, jest dostępna warstwa abstrakcji sprzętu HAL, obsługa systemu plików FAT16/32 oraz biblioteka do budowy interfejsów graficznych. Jego interesującą cechą jest to, że dla języka C++ istnieje zupełnie odrębne jądro napisane w C++. System ma pełne wsparcie dla C++. Dostępny jest na licencji open source – Sleepycat.

Nucleus RTOS (http://www.mentor.com/ embedded-software/nucleus/) NucleusRTOS jest systemem o zamkniętej licencji, utworzonym przez oddział systemów wbudowanych firmy Mentor Graphics. Producent chwali się, że jego system pracuje w  ponad 3 milionach urządzeń. Jest w  pełni skalowany, a  jego podstawową funkcjonalność możemy uzyskać już przy zajętości 13 kB pamięci Flash. System zawiera szereg bibliotek ułatwiających pracę programistom, takich jak: obsługa interfejsów I2C, SPI, USB2.0/USB3.0. Zawiera również zintegrowany stos TCP/IP. Ciekawą funkcjonalnością jest dostarczane przez producenta środowisko IDE oparte o Eclipse.

61

2013-06-28 08:09:49


E M B E D D E D O S T E M AT N U M E R U

WYBÓR KONSTRUKTORA MicroC/OS-II (http://micrium.com/rtos/) MicroC/OS-II jest systemem komercyjnym stworzonym przez firmę Micrium. Producent chwali się, że jego system jest wykorzystywany przez NASA do obsługi pojazdu Curiosity. Oparty na architekturze mikrojądra zapewnia wielozadaniowość z wywłaszczaniem, obsługę dowolnej liczby wątków (limitowaną wielkością dostępnej pamięci) oraz wsparcie dla mikrokontrolerów posiadających jednostkę ochrony pamięci MPU (nie mylić z MMU). System ma biblioteki TCP/IP, obsługę systemu plików FAT oraz SAFE oraz stos USB dla trybów Host i Device. Dostępne są również biblioteki dla obsługi CAN oraz Modbus. Tworzenie aplikacji ułatwia zintegrowane środowisko IDE oparte o  Eclipse.

System w większości został napisany w języku C, a w pełni funkcjonalny kernel zajmuje około 20 kB pamięci Flash.

uCLinux (http://www.uclinux.org/) uCLinux jest osobnym forkiem jądra systemu Linux dla mikrokontrolerów niemających jednostki zarządzania pamięcią MMU. Jest to w pełni funkcjonalny kernel z  dodaną emulacją jednostki zarządzania pamięcią MMU. Niemniej jednak, z uwagi na brak pamięci wirtualnej, wszystkie aplikacje uruchamiane są w  ramach wspólnej przestrzeni adresowej razem z  kernelem, przez co nie jest zapewniona pełna ochrona pamięci, jak w  wypadku tradycyjnego jądra. uCLinux nie jest kompletnym syste-

mem, a jedynie samym jądrem. Jako osobne projekty rozwijane są biblioteki towarzyszące np. ucLibc oraz dystrybucja formalnie stanowiąca system, która nosi nazwę ucLinux-dist. System do uruchomienia wymaga dostępnych kilku MB pamięci RAM oraz Flash na system plików, a  więc nie jest możliwe jego uruchomienie na mikrokontrolerach jednoukładowych bez dołączenia zewnętrznych pamięci. Obecnie stracił mocno na znaczeniu z uwagi na powszechną dostępność tanich mikroprocesorów wyposażonych w jednostkę MMU, w  związku z  czym uruchamianie jądra Linuksa na mikrokontrolerach bez MMU straciło rację bytu.

Lucjan Bryndza, EP l@boff.pl

REKLAMA

62

057-062_systemy.indd 62

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:09:49


Mikrokomputery firmyPREZENTACJA VIA Technology

Mikrokomputery firmy VIA Technology APC8950-ROCK i APC8750

Firma VIA Technology jest dobrze znana użytkownikom pecetów z produkcji specjalizowanych układów scalonych. Najnowsza inicjatywa firmy nawiązuje do nowego trendu rynkowego zapoczątkowanego przez mikrokomputer RaspberryPi. Są to tanie, miniaturowe komputery osobiste, których podstawowym zadaniem jest umożliwienie korzystania z  Internetu. Większość znanych mi mikrokomputerów pracuje pod kontrolą którejś z  dystrybucji Linuksa, natomiast APC8950 i  APC8750 pracują pod kontrolą systemu operacyjnego Android. Można zaryzykować twierdzenie, że opisywane mikrokomputery APC są tabletami bez panelu dotykowego, wyświetlacza oraz interfejsu Wi-Fi. Zamiast tego można do nich dołączyć monitor lub telewizor z  wejściem HDMI, mysz, klawiaturę i  sieć Ethernet. Dzięki zainstalowanym aplikacjom, takim jak odtwarzacz multimedialny, przeglądarka internetowa i klient poczty, oba komputerki mogą służyć do przeglądania Internetu, wysyłania i  odbierania e-maili oraz odtwarzania muzyki lub filmów. „Mocniejsza” płytka, APC8950-ROCK, może je odtwarzać w  rozdzielczości Full HD tj. 1920×1080 pikseli, natomiast APC8750 w  rozdzielczości HD tj. 1280×720 pikseli. To nie są jedyne różnice pomiędzy płytkami, ale o tym za moment. Komputerki mogą być uzupełnione o Wi-Fi. Zgodnie z  informacjami od producenta, można zastosować karty Wi-Fi dołączane do USB. I  tak, APC8950-ROCK współpracuje układami Ralink RT3070, RT5370, RT5572 i  Realtek RTL8188, natomiast APC8750 współpracuje z RT3070 lub RT5370. Co ważne, takie „USB dongle” są popularne i  dostępne również w Polsce. Już na początku trzeba zaznaczyć, że ze względu na zastosowany system operacyjny, są to inne komputery niż dobrze znany RaspberryPi. Cel podstawowy to cel edukacyjny – umożliwienie dostępu do Internetu za niewielką cenę. Mogą się również przydać do tworzenia multimedialnych aplikacji embedded, ale raczej szkoda ich do zastosowania w takich miejscach, w których pełnią one jedynie rolę sterownika i  nie współpracują z  monitorem. Oczywiście, wybór i  decyzję pozostawiamy użytkownikowi. O ciekawym

dzieliśmy się w redakcji. Jest to system informacyjny do autobusów, w którym pracuje ten mikrokomputer, monitor, moduł 3G i Wi-Fi. Informacje przekazywane drogą radiową są następnie wyświetlane na monitorze. Dostępna liczba wyprowadzeń I/O, które mogłyby posłużyć np. do załączania przekaźników czy sterowania wyświetlaniem nie jest duża. Płytka APC8950-ROCK ma tych wyprowadzeń 12 (RaspberryPi ma ich 8), natomiast APC8750 nie ma ich wcale. Owszem, można urządzenie zewnętrzne sterować za pomocą UART, ale znacznie komplikuje to układ elektryczny. W  nomenklaturze producenta pokazany na fotografii 1 mikrokomputer APC8750 jest przeznaczony dla przeciętnych użytkowników domowych. Niewielka płytka ma 4 złącza USB, wejście i  wyjście audio, gniazdo sieci Ethernet oraz UART doprowadzony do goldpinów. Do interfejsów USB można dołączyć klawiaturę, mysz oraz pamięci masowe pendrive.

przykładzie zastosowania APC8750 dowie-

Fotografia 1. Mikrokomputer APC8750

ELEKTRONIKA PRAKTYCZNA 7/2013

063-065_APC-ROCK.indd 63

Więcej informacji: http://apc.io/ http://youtu.be/snVFAf4DHEw Redakcja Elektronik Praktycznej dziękuje firmie TME z Łodzi, dystrybutorowi VIA Technology w Polsce, za udostępnienie komputerów APC8750 i APC8950-ROCK do testów. Jako dodatkowa pamięć (widziana w systemie jako dysk) może też posłużyć karta micro SD, której gniazdo zamontowano na płytce. Nie jest wymagane użycie żadnych specjalnych produktów, ale typowych, przeznaczonych dla urządzeń powszechnego użytku. System Android 2.3 w  wersji preinstalowanej przez producenta na APC8750, nie ma obsługi wirtualnej klawiatury, załączanej po kliknięciu myszą, jeśli do złącza USB nie jest dołączona klawiatura fizyczna. Wśród zainstalowanych programów brak aplikacji Google Play umożliwiającej założenie konta Google. Jeżeli ktoś chce korzystać z  dobrodziejstw aplikacji, może zainstalować Google Play korzystając strony internetowej http:// www.androiddrawer.com, na której oprócz tego jest dostępnych wiele innych aplikacji. Pokazany na fotografii 2 mikrokomputer APC8950-ROCK jest wersją rozwojową APC8750, przeznaczoną dla programistów tworzących oprogramowanie dla Androida. Różnice widać już na pierwszy rzut oka: inne rozmieszczenie złącz i mniejsza liczba gniazd USB, gniazdo dla karty mini PCI (karta w for-

63

2013-06-28 08:10:03


PREZENTACJA

Fotografia 2. Mikrokomputer APC8950-ROCK macie takim, jak używany w notebookach), względnie duża liczba goldpinów, wśród których jest też doprowadzenie 20-pinowego interfejsu JTAG. Dodatkowo, na płytce zamontowano też gniazdo micro USB mogące pracować w trybie OTG. Kolejne różnice odkryjemy po włączeniu zasilania, ponieważ płytka pracuje pod kontrolą systemu operacyjnego Android 4.0 mającego inny układ menu. Wśród aplikacji zainstalowanych przez producenta znajdziemy przeglądarkę, klienta poczty, odtwarzacz multimedialny, aplikację do obsługi kontaktów, kalendarz, liczne widżety. Z  punktu widzenia osoby wykonującej aplikację dla Androida znacznie ciekawsze będzie jednak to, że płytka ROCK ma liczne interfejsy umożliwiające dołączenie układów zewnętrznych. Wśród nich są UART, 4-kanałowe SPI, USB OTG, interfejs panelu dotykowego. W  ten sposób można eksperymentować z różnymi pamięciami, układami przetworników A/C lub C/A  itp. Co ważne, na płytce umieszczono też złącze typowego interfejsu JTAG co pozwala nawet na wymianę systemu operacyjnego i  zaawansowane debugowanie programów. Wsparcie techniczne i  oprogramowanie są udostępniane za darmo poprzez serwis internetowy www.apc.io. Niecenioną pomocą jest forum użytkowników obu płytek wspierane przez ekspertów z firmy APC, znadujące się pod adresem http://forum.apc.io. Oba mikrokomputery są jeszcze bardzo „gorącą” nowością. Gdy otrzymaliśmy je do przetestowania, wspomniana strona internetowa była jeszcze w powijakach i wyglądała troszkę dziwnie. Aktualnie można zauważyć, że

64

063-065_APC-ROCK.indd 64

serwis jest rozwijany z dnia na dzień i  za jego pomocą jest udostępniane coraz więcej materiałów. Trudno powiedzieć czy będą to również aplikacje. Póki co firma ograniczyła się do obrazu systemu operacyjnego oraz dokumentacji technicznej i  listy najczęściej zadawanych pytań. Mikrokomputer – pomimo stosunkowo skromnych zasobów, jeśli porównać go z  komputerem PC – po dołączeniu do sieci Internet działa poprawnie. System operacyjny Android jest „na pokładzie”, więc mikrokomputery działają od razu po włączeniu zasilania, a  graficzne menu użytkownika pojawia się w przeciągu kilkunastu sekund. Umawialiśmy się z firmą TME, że płytki zo-

staną oddane po testach w takim stanie, w jakim je otrzymaliśmy, więc obawiałem się np. zmiany systemu operacyjnego i  przekraczania granic bezpiecznego eksperymentowania z  Androidem. Dlatego testy ograniczyły się do strony użytkowej. Zachowywałem się jak zwykły użytkownik komputera korzystający z  Internetu i  używający komputera do oglądania filmów czy słuchania muzyki. Korzystałem przy tym z serwisu YouTube oraz po prostu z  pendrive USB dołączonego do złącza. Podsumowując można powiedzieć, że komputerki pracują bardzo dobrze, o  ile nie mamy do czynienia z  nadmierną liczbą aplikacji Flash na stronie internetowej. Wbudowany w  Androida odtwarzacz Flash

Tabela 1. Podstawowe parametry mikrokomputerów APC8950-ROCK i APC8750 Parametr System operacyjny Procesor

APC8950-ROCK Android 4.0 VIA ARM Cortex-A9@800 MHz RAM DDR3 512 MB Pamięć Flash 4 GB NAND Wbudowany kontroler grafiki Grafika 2D/3D, rozdzielczość FHD (1920×1080 pikseli) HDMI VGA 2×USB 2.0 Wejścia i  wyjścia microUSB (OTG) Wyjście audio Wejście mikrofonowe Ethernet 12×GPIO SPI+4 linie wyboru CS Linie dla rozszerzeń I2C PWMOUT 0…3 UART Interfejs debugera JTAG Wymiary 170 mm×85 mm

APC8750 Android 2.3 VIA 800 MHz RAM DDR3 512 MB Flash 2 GB NAND Wbudowany kontroler grafiki 2D/3D, rozdzielczość HD (1280×720 pikseli) HDMI VGA 4×USB Wyjście audio Wejście mikrofonowe Ethernet

UART

170 mm×85 mm ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:04


Mikrokomputery firmy VIA Technology działa poprawnie, ale niestety potrafi być też kapryśny. Kłopoty ujawniają się, gdy niektóre witryny wyświetlają nadmierną liczbę reklam lub zmieniamy rozdzielczość z „okienkowej” na pełny ekran i odwrotnie oglądając film na YouTube. Przeglądarka może przestać odpowiadać, a komputerek może wykonać automatyczny restart, o  czym informuje użytkownika. Nie jest to jednak jedynie problem Androida, ale również starszych komputerów PC, które pomimo, wydawałoby się, wystarczających zasobów nie radzą sobie z odtwarzaczem Flash. Ważne, że jeśli już film na YouTube „załapie”, to jest odtwarzany bez zacięć, obraz jest płynny, a dźwięk jest czysty, chociaż… nie zawsze, ponieważ czasami daje się zauważyć „klatkowanie”. Ten problem może rozwiązać zainstalowanie innego odtwarzacza, niż preinstalowany,

firmowy. Co ciekawe, komputerki nie mają najmniejszego problemu z większością popularnych formatów, które są im dostarczane na nośniku USB. Pliki MP3 lub filmy, nawet w  pełnej rozdzielczości, są odtwarzane bez najmniejszych kłopotów. Pobór mocy podczas odtwarzania filmów (przy zasilaniu 12 V DC) nie przekracza 4 W.

Podsumowanie Podstawowe parametry obu mikrokomputerów umieszczono w tabeli 1. Podsumowując trzeba powiedzieć, że mikrokomputery APC nie są demonami szybkości i ktoś kupujący taki wyrób powinien mieć tego świadomość, że za kwotę rzędu 200 zł brutto nie można oczekiwać nie wiadomo czego. Owszem, można w  normalny sposób korzystać z Internetu, ale strony wczytują się ze śred-

nią prędkością i mogą wystąpić kłopoty z serwisem YouTube. Z moich obserwacji wynika, że jest na nie bardziej narażony komputerek 8750 niż 8950. Być może wynika to z mocy obliczeniowej GPU, które w 8950 może pracować w  rozdzielczości Full HD. Z  drugiej strony, mocniejsza wersja znakomicie przyda się twórcom oprogramowania dla Androida. Jak wspomniano na początku, wyrób jest nowością i zapewne drobne niedociągnięcia zostaną usunięte w trakcie produkcji za pomocą aktualizacji firmware. Co ważne, tuż przed opublikowaniem artykułu pojawiła się informacja o dostępnej aktualizacji firmware, usuwającej większość zauważonych przez użytkowników problemów. Niestety, nie zdążyliśmy wykonać ponownych testów.

Jacek Bogusz, EP

Gratka dla Czytelników ! j e n z c y t k a r P i k i n o r t Elek Firma TME wspólnie z Elektroniką Praktyczną organizują konkurs, w którym nagrodą główną – przyznamy ją za pierwsze miejsce – jest mikrokomputer APC8950, natomiast za miejsce drugie i trzecie – mikrokomputery APC8750. Aby wziąć udział w konkursie należy na adres e-mail konkurs@ep.com.pl wysłać do dnia 31 lipca 2013 odpowiedź na pytanie „Do czego chciałbym użyć mikrokomputera APC?”. Komisja wybierze najciekawsze odpowiedzi i nagrodzi wybranych uczestników. W tytule wiadomości e-mail należy wpisać „konkurs APC” oraz podpisać e-mail swoim imieniem i nazwiskiem.

ELEKTRONIKA PRAKTYCZNA 7/2013

063-065_APC-ROCK.indd 65

65

2013-06-28 08:10:04


NOTATNIK KONSTRUKTORA

MPLAB X IDE

Nowe środowisko projektowe od Microchipa Darmowy pakiet MPLAB IDE jest znany wszystkim użytkownikom wszystkich rodzin mikrokontrolerów firmy Microchip. Przez lata, wraz z naturalnym rozwojem tego typu narzędzi i  poszerzaniem oferty o  nowe wyroby, zmieniał się też MPLAB IDE. Te zmiany miały najczęściej charakter ewolucyjny, ale co jakiś czas trafiała się mała rewolucja. Tak było na przykład przy zmianie z  wersji 5 na wersję 6. Zmieniono wtedy całkowicie między innymi interfejs graficzny. A  jak jest w  MPLAB X?

Rysunek 1. Okno pobierania

Ostatnią, najbardziej znaną jest wersja MPLAB IDE V8.x. Wspiera ona projektowanie wszystkich rodzin mikrokontrolerów oraz ma drivery dla wszystkich, obecnie produkowanych, firmowych programatorów i emulatorów sprzętowych, włączając w  to moduły ewaluacyjne. W  dotychczasowej wersji MPLAB IDE zapewnia kompleksową obsługę w  zakresie projektowania układów z  mikrokontrolerami PIC. Jednak jego koncepcja i  interfejs użytkownika z  czasem zaczęły odstawać od podobnych, konkurencyjnych narzędzi. Zapewne z  tego powodu producent postanowił odświeżyć IDE i  zaproponował MPLAB X IDE. Już sama zmiana nazwy sugeruje, że jest to całkowicie nowy produkt, zrywający z poprzednimi rozwiązaniami. Oprogramowanie MPLAB X IDE pojawiło się już jakiś czas temu w wersji beta. To dość powszechny wybieg stosowany przez firmy, pozwalający wykorzystać aktywnych użytkowników do testowania jeszcze niegotowe-

go wyrobu. Ponieważ IDE jest zaawansowanym pakietem dającym duże możliwość projektantom, a jednocześnie dystrybuowanym darmowo, to takie podejście jest zupełnie zrozumiałe. Etap końcowego testowania jest bardzo pracochłonny, a przez to kosztowny. „Zatrudnienie” chętnych do współpracy beta-testerów pozwala na znaczące zmniejszenie kosztów. Obecnie jest dostępna oficjalna, stabilna wersja V1.10 i  należy spodziewać się, że usunięto większość zauważonych błędów. MPLAB X IDE wykonano w  oparciu o  platformę open source – NetBeans IDE. Pozwala to firmom trzecim na powiększanie funkcjonalności pakietu poprzez dostarczanie dodatkowych modułów, tzw. wtyczek lub plug-inów. Należy spodziewać się, że podniesie to atrakcyjność środowiska. Poza tym, w końcu X IDE może być również używane w systemach Linux i Mac OS! Wszystkie wcześniejsze wersje pakietu można było uruchomić tylko w systemie Windows,

Rysunek 2. Konwersja projektu MPLAB IDE V8 na MPLAB X IDE

Rysunek 3. Otworzenie istniejącego projektu dla MPLAB IDE V8.x

66

066-069_mplabx.indd 66

a współpraca z  produktami firm trzecich była bardzo utrudniona. Praca nad projektem w MPALB IDE V8.x jest organizowana przez przestrzeń roboczą (Workspace) i projekt (Project). W przestrzeni roboczej można otworzyć więcej niż jeden projekt i z poziomu pakietu nawigować pomiędzy nimi. Głównym elementem projektu jest wybór mikrokontrolera. Zależnie od niego trzeba wybrać jeden aktywny kompilator i  programator/debuger. Każda zmiana mikrokontrolera wymaga zmiany konfiguracji projektu. W  MPLAB X IDE użytkownik również musi utworzyć projekt, w którym wybiera się mikrokontroler, kompilator i programator/debuger. Nie ma pojęcia przestrzeni roboczej. Jeżeli to konieczne, to projekty można grupować poleceniem Project Grouping. Jedną z  bardziej zauważalnych różnic pomiędzy poprzednimi wersjami a wersją X jest możliwość jednoczesnej pracy z kilkoma kompilatorami i narzędziami typu programator/debuger w  ramach jednego projektu. Na przykład, kiedy dla mikrokontrolera PIC18 mamy zainstalowanych kilka rozwojowych wersji kompilatorów MPLAB C-18 lub HI-Tech, to bez zmiany konfiguracji MPLAB X IDE, możemy wybrać dowolną wersję. Podobnie jest z programatorem lub debugerem. Program można pobrać ze strony producenta spod adresu http://ww1.microchip. com/downloads/mplab/X/index.html (rysunek  1). W  oknie Select Platform wybieramy system operacyjny. Razem z  pakietem IDE – zaznaczając odpowiednie okienka – moELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:17


Nowe środowisko projektowe od Microchipa

Rysunek 4. Wybór mikrokontrolera

Rysunek 5. Wybór programatora/ debugera żemy zaopatrzyć się w bezpłatne wersje Lite kompilatorów języka C do wszystkich rodzin mikrokontrolerów PIC. Instalacja programu jest nieskomplikowana i  nie odbiega od podobnych (dla systemu Windows). Do prawidłowego działania jest wymagane środowisko Java Runtime Enviroment. Razem z  MPLAB X IDE instaluje się aplikacja MPLAB Driver Switcher używana przy jednoczesnej pracy z MPLAB IDE V8.x i MPLAB X IDE.

Kompatybilność z MPLAB IDE V8.x Pracę z pakietem rozpoczynamy od utworzenia lub nowego projektu, lub otwarcia już istniejącego. Pierwszą rzeczą, którą starałem

Rysunek 6. Wybór kompilatora

Rysunek 7. MPLAB Device Driver Switcher ELEKTRONIKA PRAKTYCZNA 7/2013

066-069_mplabx.indd 67

się sprawdzić, była możliwość otwierania projektów utworzonych za pomocą starszej wersji V8.x. Trudno sobie bez tego wyobrazić bezbolesną zmianę na nowe środowisko. Na szczęście jest taka możliwość i nie ma potrzeby ponownego wyważania otwartych drzwi. Ale nie można otworzyć projektu MPLAB IDE V8 bezpośrednio w  MPLAB X IDE, ponieważ format plików projektów w obu IDE jest inny. Dlatego otwieranie starego projektu jest w  rzeczywistości tworzeniem go na nowo przez kreatora projektu, ale z  wykorzystaniem danych z  pliku *.mcs projektu MPLAB IDE V8. Czynność ta jest wykonywana z menu File -> New Project (rysunek 2). W zakładce Projects możemy wybrać: • Standalone Project – nowy projekt dla MPLAB X IDE. • Existing MPLAB IDE V8 Project – konwersja MPLAB IDE V8 do MPLAB X IDE. • Prebuilt (HEX , Loadable Image) Project – otworzenie gotowego pliku wynikowego. • Library Project – projekt biblioteki. Jeżeli chcemy przekonwertować stary projekt, wybieramy opcję Existing MPLAB IDE V8 Project. Otwiera się wtedy kolejne okno pokazane na rysunku 3. Z lewej strony okna są pokazane kroki, które należy wykonać, aby dokonać konwersji: • Wyszukanie pliku *.mcp projektu MPLAB IDE V8 (rysunek 3). • Wybór mikrokontrolera (rysunek 4). • Wybór pliku nagłówkowego. • Wybór programatora – starter kit PIC32 (rysunek 5). • Wybór kompilatora (rysunek 6). • Zapisanie nowego projektu. Takie same kroki – z  pominięciem kroku 2 (rys. 3) – są wykonywane przy tworzeniu nowego projektu (Stand Alone Project). W wypadku otwierania istniejącego projektu MPLAB IDE V8 dodawane są wszystkie pliki źródłowe, a  w  nowotworzonym – pliki źródłowe trzeba dodać samodzielnie. Konwersja projektów nie jest trudna, a jej wykonanie jest łatwe i  intuicyjne. Ja w  ten sposób bez problemu przekonwertowałem projekt serwera WWW wygenerowany przez program TCPMaker. MPLAB IDE V8.x i MPLAB X IDE mogą być zainstalowane na jednym komputerze i w trakcie działania nie przeszkadzają sobie. Współpracę MPLAB IDE V8.x z  firmowymi narzędziami poprzez interfejs USB zapewniały firmowe drivery specjalnie napisane do tego celu. W MPLAB X do obsługi magistrali USB zastosowano standardowe drivery WinUSB/LibUSB, które mają działać szybciej i nie przysparzać problemów. Potwierdziły to już pierwsze moje próby z  modułem PIC32 Starter Kit. Dwa różne drivery dla jednego narzędzia wymagają przełączania. Do tego celu jest przeznaczona specjalna aplikacja MPLAB Driver Switcher instalująca się z  MPLAB X

IDE. Na rysunku 7 pokazano okno MPLAB Device Driver Switcher w  trakcie przełączania drivera modułu PIC32 Starter Kit do MPLAB X IDE. Trakcie przełączania muszą być zamknięte MPLAB IDE V8 i  MPLAB X IDE i  moduł musi by podłączony do USB. Tu również, po próbach z  PIC32 Starter Kit okazało się, że wszystko działa jak powinno. Przełączanie jest konieczne dla Real ICE, ICD3, PM3 i  wspomnianego PIC32 Starter Kit. Większość nowych modułów ewaluacyjnych oraz PICkit-2 i  PICkit-3 nie wymagają przełączania driverów.

Projekt Głównym elementem nowotworzonego projektu są pliki źródłowe. Nowy plik jest tworzony w kreatorze wywoływanym z  menu File -> New File (skrót klawiszowy Ctrl+N). W oknie Categories wybiera się typ pliku: dla kompilatora Basic, dla kompilatorów C (zakładka Microchip Embeded lub C), dla asemblera, skryptu linkera itp. Po wybraniu typu pliku, w kolejnym oknie nadaje mu się nazwę i wybiera lokalizację. Utworzony plik dodaje się do projektu klikając prawym przyciskiem myszy na zakładce Source Files w oknie Projects i wybierając z menu rozwijanego Add Existing Item. Z  tego samego menu można też utworzyć nowy plik lub folder logiczny. Foldery logiczne są pomocne przy grupowaniu plików w  rozbudowanym projekcie. Na rysunku  9 pokazano okno Projects z  przykładowymi plikami źródłowymi pogrupowanymi w  folderach i2c (plik i2c.c), lcd (plik lcd.c). Plik main.c jest umieszczony w  folderze głównym. Wspieranie tworzenia plików źródłowych przez kreatora i  foldery logiczne to przydatne ułatwienia, ale podobne mechanizmy są znane z poprzedniej wersji IDE. Dużo

Rysunek 8. tworzenie nowego pliku źródłowego

Rysunek 9. Okno Projects z przykładowymi plikami źródłowymi

67

2013-06-28 08:10:17


NOTATNIK KONSTRUKTORA

Rysunek 10. Błędy edycji większe zmiany są w samym edytorze plików źródłowych. Każdy, kto pisze programy – obojętnie w jakim języku – wie, że kompilator wymaga 100% poprawności syntaktycznej. Każda literówka, brak średnika czy przecinka, nie mówiąc już o kompletności nawiasów, powoduje wygenerowanie komunikatu o  błędach składni przez kompilator. Edytor MPALB X IDE ma wbudowana kontrolę poprawności „on-line”. Już w  trakcie pisania programu są wychwytywane i  zaznaczane błędy syntaktyczne i jeżeli takie są, to na zostaną wykryte przez edytor. Nie ma potrzeby czasochłonnego sprawdzani składni poprzez kompilowanie pliku lub całego projektu. Na rysunku 10 pokazano fragment programu z celowo wygenerowanymi błędami. Numery linii, w których znaleziono błędy, są zastępowane symbolami (czerwone kółko z  wykrzyknikiem). Dodatkowo, nieprawidłowe wyrażenia w liniach są podkreślane na czerwono. Przyznam, że ta funkcjonalność edytora bardzo mi się spodobała. Przydatną funkcją jest zaznaczanie przez edytor wszystkich wystąpień zmiennej w  pliku źródłowym po kliknięciu na nią w  dowolnym miejscu programu. Występowanie zaznaczonych zmiennych jest wyświetlane w  linijce umieszczonej na prawej krawędzi okna edytora. Wystarczy kliknąć na kolorowym markerze na tej linijce, a  edytor przeniesie kursor do odpowiedniego miejsca. Jest to bardzo wygodne przy bardziej rozbudowanych programach, które z natury nie mieszczą się na jednym ekranie. Istnieje też możliwość wyszukiwania ciągu znaków w komentarzach. Ciągi można dowolnie definiować w  zakładce Tools -> Options -> Miscellaneous -> Tascs. Jest to również pomocne w  identyfikacji fragmentów bardzo rozbudowanych programów składających się z wielu plików. Jeżeli w  projekcie jest plik źródłowy, do którego musimy się odwoływać częściej niż zwykle (na przykład main.c), to można go sklonować poprzez klikniecie prawym klawiszem myszy na belkę z  jego nazwą w edytorze i wybraniu z rozwijanego menu Clone Document. Po utworzeniu kopii można go przesunąć (za pomocą lewego przycisku myszy) w dolny obszar okna edytora. Nowa funkcja Local history pozwala na obejrzenie i  ewentualne cofnięcie/ponowienie zmian w pliku źródłowym (rysunek 11). Gotowy projekt jest kompilowany po wykonaniu polecenia Run -> Build Project lub kliknięciu na ikonę z młotkiem. Są wte-

68

066-069_mplabx.indd 68

Rysunek 11. Okno funkcji Local History dy kompilowane tylko pliki, które zostały zmodyfikowane po ostatniej kompilacji. Kompilowanie wszystkich plików, które jest połączone z usunięciem wszystkich plików przejściowych z  rozszerzeniem *.o jest wykonywana po wybraniu Run -> Clean and Build Project lub po kliknięciu na ikonę z  młotkiem i  miotłą. Przebieg i wynik kompilacji są wyświetlane w oknie Output. Właściwości projektu są ustawiane poleceniem Run -> Set Project Configuration -> Customize. Na rysunku  12 pokazano okno projektu dla mikrokontrolera z  rodziny PIC32 z  kompilatorem MPLAB C-32 i  programatorem/debugerem PIC32 Starter Kit. Można tu między innymi zmieniać wersję kompilatora i  jego ustawienia, na przykład model pamięci i  poziom optymalizacji. Ważne dane związane z  projektem są wyświetlane w  oknie Dashboard (rysunek  13). Są tu umieszczone między innymi: typ mikrokontrolera, używany kompilator, zajętość pamięci RAM i Flash, aktywny programator/debuger. Zazwyczaj na którymś z etapów projektu trzeba przejść przez etap uruchamiania programu, czyli inaczej mówiąc – wykonać debugowanie. Dziś uruchamianie programu wykonuje się niemal zawsze w aplikacji docelowej. Ma to bardzo wiele zalet, ale wymaga odpowiednich narzędzi – debugerów. Microchip oferuje wiele ich typów, ale obecnie najbardziej znane to: MPLAB ICD2, MPLAB ICD3, PICkit-2, PICKit-3, REAL ICE. Można też zauważyć tendencję (nie tylko w  firmie Microchip) do wyposażania modułów ewaluacyjnych we własny, wbudowany programator/debuger. Każde z  tych rozwiązań pozwala na programowanie pamięci Flash mikrokontrolera i  uruchamianie programu w  układzie docelowym. MPLAB X IDE nie wspiera wszystkich narzędzi firmowych. Dotyczy to na przykład kultowego, ale już dość leciwego, MPLAB ICD2. Uruchamianie w  systemie wiąże się z  zaprogramowaniem pamięci mikrokontrolera. MPLAB X IDE nie rozróżnia czy program ma być skompilowany w  trybie Release (do zaprogramowania pamięci

Flash bez debugowania), czy w trybie Debug, tak jak to było w MPLAB IDE V8.x. Jeżeli chcemy zaprogramować pamięć Flash, to używamy polecenia Make and Program Device. Jeżeli będziemy debugować program, trzeba wybrać polecenie Program Device for Debugging. Oba polecenia automatycznie uruchamiają kompilator i  tworzą kod wynikowy. Debugowanie projektu rozpoczyna się od wykonania polecenia Debug->Debug Project. MPLAB X IDE łączy się z  debugerem, programuje pamięć Flash i  automatycznie wywołuje program zapisany w  mikrokontrolerze. Funkcja uruchamiania w  systemie ma podstawowy zestaw komend spotykany w  podobnych rozwiązaniach: • Pause – wstrzymanie wykonywania się programu. • Continue – wznowienie wykonywania się programu. • Reset – restart mikrokontrolera. • Krokowe wykonywanie się programu: step into, step over, run to cursor itp. Działanie komend jest intuicyjne i  nie wymaga szerszego wyjaśnienia.

Rysunek 12. Okno właściwości projektu

Rysunek 13. Okno dashboard ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:17


Nowe środowisko projektowe od Microchipa

Rysunek 14 Dodawanie zmiennej do okna Watch i okno Watch

Rysunek 15 Okno bitów konfiguracyjnych PIC32MX360F512L Krokowe wykonywanie programu to oczywiście tylko cześć możliwości debugera. Jedną z podstawowych funkcji jest ustawianie pułapek – Breakpoint. Pułapkę ustawia się bardzo łatwo – wystarczy kliknięcie lewym przyciskiem myszy na numerze linii w pliku źródłowym. Ustawienie pułapki jest sygnalizowane zmianą numeru linii na symbol pułapki – czerwony kwadrat. Na linijce z  prawej strony okna edytora pojawia się czerwony marker pozwalający na odnalezienie pułapki w  dużym pliku źródłowym. Pułapka jest usuwana po kliknięciu na jej symbol. Możliwe jest też ustawianie rozbudowanych pułapek warunkowych z  menu Debug -> New BraeakPoint. Po osiągnięciu linii z  ustawioną pułapką wykonywanie programu jest zatrzymywane i kolor linii zmienia się na zielony. Kolejnym elementem debugera jest podglądanie zawartości zmiennych – okno Watch. Zmienne są dodawane do okna poleceniem New Watch z  menu rozwijanego po kliknięciu na pliku źródłowym prawym przyciskiem myszy. Na rysunku  14 pokazano okna dodawania zmiennych do okna Watch (góra) i samo okno Watch (dół). Watch umożliwia wyświetlanie struktur, unii, tablic i oczywiście – rejestrów SFR.

Zawartość pamięci programu, danych, SFR i bitów konfiguracyjnych można podejrzeć z  menu Window -> PIC Memory Views. Na rysunku 15 pokazano okno z bitami konfiguracyjnymi mikrokontrolera PIC32MX360F512L.

Podsumowanie Używam pakietu MPLAB IDE od wielu lat. Zaczynałem od wersji V5.x i projektów pisanych wyłącznie w asemblerze. Od wersji V.6.x program nie zmieniał się w sposób radykalny. Jednak wszystkie wersje umożliwiały bezproblemową pracę z  aktualnie produkowanymi mikrokontrolerami i  firmowymi narzędziami – głównie programatorami i  debugerami. Microchipowe IDE miało zawsze opinię dobrego, solidnego narzędzia. Kiedy podstawowym kompilatorem stał się kompilator języka C, to MPLAB IDE również zaczął wspierać tworzenie programów w  C. Czasem, głownie dla firm zewnętrznych, wymagało to zainstalowania dodatkowego drivera, ale mimo tego wszystko działo poprawnie. Użytkownicy mikrokontrolerów Micrcochip uznali MPLAB IDE jako standard i  raczej rzadko korzystają z innych środowisk.

Nowy MPLAB X IDE najprawdopodobniej również będzie niekwestionowanym standardem. Właściwie znając dotychczasowe podejście Microchipa do jakości firmowych narzędzi można być tego pewnym. Mnie się ten pakiet bardzo podoba, mimo że jest to stosunkowo nowy produkt i jeszcze będzie rozwijany. Po pierwszych próbach, a  potem krótkiej, właściwej pracy nad nowym projektem uważam, że w  wielu aspektach przewyższa stare rozwiązania. Przede wszystkim, ma w  wiele bardziej elastyczny i nowoczesny interfejs użytkownika. Bardzo przypadł mi do gustu edytor z analizą składni i wieloma funkcjami dodatkowymi. Możliwość pracy z  wieloma wersjami kompilatorów i  narzędzi sprzętowych jest również bardzo cenna. Liczę też na to, że platforma open source zaowocuje wieloma ciekawymi wtyczkami niezależnych producentów lub pasjonatów programowania. Jedyna rzecz, która mnie zmartwiła, to brak wsparcia dla mojego starego MPLAB ICD2. To bardzo dobre narzędzie, ale jak już wspomniałem – dość leciwe. Widocznie uznano, że nie będzie wspierane, tym bardziej, że są produkowane nowe mikrokontrolery, których nie można zaprogramować za pomocą ICD2. Oczywiście, nie jest to jakiś wielki problem, bo mogę nadal korzystać z najnowszej wersji MPLAB IDE V8.x. Przedstawiony przeze mnie opis jest z  konieczności subiektywnym wyborem małej części możliwości pakietu. Dokładniej można się zapoznać z  podstawowymi właściwościami MPLAB X IDE po przeczytaniu dokumentu Getting Started with MPLAB X, napisanego w  formie prezentacji. Można go pobrać ze strony pobierania pakietu. W trakcie pracy pomocny będzie dokument MPLAB X IDE User’s Guide. Oba są dostępne na stronie Microchipa.

Tomasz Jabłoński, EP

REKLAMA

ELEKTRONIKA PRAKTYCZNA 7/2013

066-069_mplabx.indd 69

69

2013-06-28 08:10:17


NOTATNIK KONSTRUKTORA

Vamgraf – cudze chwalicie, swego nie znacie… Mikrokontrolery to elementy o dużych możliwościach i  niskiej cenie. Ich elastyczność powoduje, że mogą pracować w  bardzo wielu zastosowaniach. Nie ma problemu, jeśli użytkownik zna języki programowania i  jest w  stanie dobrze taki układ zaaplikować. Ale jest szeroka grupa potencjalnych odbiorców na przykład: modelarzy, krótkofalowców czy profesjonalistów innych specjalności niż elektronika lub informatyka, którzy chętnie wykorzystaliby mikrokontrolery do swoich potrzeb. Jednak nauka programowania w  asemblerze czy C wymaga pewnego wysiłku, a  początkowy brak efektów często zniechęca do dalszych prób. Głównie z  myślą o  takich odbiorcach powstają środowiska projektowe pozwalające tworzyć programy w  sposób bardziej intuicyjny. Idea takich narzędzi jest prosta: zamiast pracowicie wpisywać w plikach tekstowych szereg przynajmniej na początku niezbyt zrozumiałych poleceń można program sobie narysować. Rysowanie polega na pobieraniu z  przygotowanego magazynu elementów – klocków i  łączenie ich tak by w  końcowym efekcie tworzyły działające algorytmy. Praktyka pokazuje, że takiego projektowania można się nauczyć szybko i jeżeli nie będziemy potrzebowali elastycznego zaawansowanego programowania, to w  wielu prostych zastosowaniach zupełnie wystarczy. Pierwszym takim narzędziem, o  którym usłyszałem był opisywany w  Elektronice Praktycznej ST6 Realizer przeznaczony do graficznego tworzenia programów dla mikrokontrolerów z  rodziny ST6 firmy STM. Później poznałem angielski pakiet Flowcode. Firma produkujące ten pakiet zdecydowała się na „mocne uderzenie”. Po pierwsze, powstały środowiska dla najbardziej popularnych rodzin mikrokontrolerów: PIC Microchipa i AVR Atmela. Poza tym, jest dostępna wersja dla mikrokontrolerów z  rdzeniem ARM z  rodziny AT91SAM Atmela. Do środowiska projektowego jest dołączona spora oferta rozwiązań sprzętowych, od modułów bazowych z  wbudowanym programatorem sterowanym przez USB z  poziomu Flowcode, poprzez moduły rozszerzeń (wyświetlacze, przyciski, moduły Ethernet) po gotowe zamknięte urządzenia na przykład sterownik MIAC. Pakiet Flowcode był szeroko opisywany na łamach Elektronik Praktycznej. Były też publikowane szczegółowo opisywane projekty i większość zainteresowanych może sobie wyrobić jakiś pogląd na temat przydatności tego środowiska. Sam używam Flowcode i mam o nim jak najlepsze zdanie. Jednak

70

070-073_vamgraf.indd 70

ten artykuł nie będzie o Flowcode, tylko o innym graficznym środowisku – o Vamgrafie. Vamgraf – podobnie jak Flowcode – jest narzędziem, które pozwala na tworzenie programów w  sposób graficzny. Oprócz wielu ciekawych właściwości, o  których napiszę, ma jedną, jakby nie mówić, zaskakującą cechę – jest polskim produktem. Przyznam, że opisywałem już czeski system modułów radiowych IQRF, używam słowackich programatorów firmy Elnec, znam serbski system środowiska projektowego dla mikrokontrolerów PIC firmy Mikroelektronika, ale z polskim środowiskiem projektowym mam do czynienia po raz pierwszy. Chociażby z tego powodu z wielkim zainteresowaniem zacząłem przyglądać się produktowi krakowskiej firmy Vamod. Pakiet Vamgraf w  wersji V2.49 można pobrać ze strony producenta spod adresu

http://www.vamond.pl/download.php?plik=Vamgraf_2v49.zip. Vamgraf występuje w 2 wersjach: bezpłatnej i  płatnej. Wersja bezpłatna, z której korzystałem, pozwala na zapoznanie się możliwościami i  przetestowanie działania programu, ale bez zaprogramowania mikrokontrolera. Właściwie nie jest to precyzyjna definicja tej wersji – jest możliwość praktycznego przetestowania wyniku programowania w bezpłatnym Vamgrafie, ale pod warunkiem, że kupi się firmowy moduł VamsterB z mikrokontrolerem ATmega 188 lub VamsterD z  mikrokontrolerem ATmega32. Jeżeli nie mamy tych modułów, to można Vamgrafa testować do woli, ale sprawdzenie zdziałania rysowanych programów jest możliwe tylko w programowym symulatorze. Wersja bezpłatna staje się wersją płatną po zakupieniu w firmie kodu aktywacyjnego. W  tej wersji Vamgraf generuje kod wynikowy .hex, którym można zaprogramować mikrokontroler ATmega32 za pomocą dowolnego programatora i bez konieczności kupowania firmowych modułów. Po rozpakowaniu pliku 2v49.zip można uruchomić Vamgrafa przez kliknięcia na plik Vamgraf.exe umieszczony w katalogu Application files/Vamgraf_2_49_0_0. Otwiera się wtedy okno pokazane na rysunku 1. Nie różni się ono zbytnio od okien podobnych programów tego typu i składa się z kilku głównych elementów: • Menu głównego z sekcjami: Plik, Edycja, Operacje, Wykonanie, Ustawienia, Widok i Pomoc. Sekcje Plik, Edycja, Widok i Po-

Rysunek 1. Okno Vamgrafa ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:31


Vamgraf – cudze chwalicie, swego nie znacie…

moc składają się ze standardowych elementów, poza kilkoma wyjątkami. Sekcja Operacje zawiera opcje, za pomocą których wykonuje się operacje edycyjne dla całego projektu. Sekcja Wykonanie jest przeznaczona do kompilowania i testowania projektu oraz do współpracy z  firmowym modułem Vamster. Sekcja Ustawienia jest przeznaczona do modyfikowania ustawień Vamgrafa i Vamstera. Paska narzędzi z ikonami umożliwiającymi otwarcie nowego projektu, zapis projektu na dysku, otwarcie okna pomocy, ustawienie edycji elementów projektu w  tryb wybieranie, zaznaczenie wszystkich elementów projektu itp. Panelu elementów. Ten panel zawiera pogrupowane elementy projektowe: komentarze, łącznik wejść, rozdzielacz wyjść, wejścia, wyjścia, system, logiczne, liczbowe, data, czas, konwersja, bloki. W  zależności od rodzaju wybranego Vamstera, oraz modułów sprzętowych z nim współpracujących może się zmieniać ilość i rodzaj grup elementów. Panelu edycji. To w tym panelu jest wykonywane rysowanie schematu działania programu, czyli stawianie elementów z panelu elementów i wykonywanie połączeń pomiędzy nimi. Panelu informacji i  symulacji. Dolny panel spełnia funkcję panelu informacji wypisywanych przez kompilator w  tym informacji o  błędach i  jednocześnie jest panelem symulatora. Przełączanie pomiędzy tymi funkcjami odbywa się po kliknięciu na umieszczone na dole zakładki „Informacje” i Symulator”.

Działanie systemu System jest zbudowany w oparciu o  mechanizm generowania zdarzeń. Przyjmuje się, że każdy system sterowania składa się z określonej liczby wejść i  wyjść. Wejściami mogą być typowe, dwustanowe wejścia cyfrowe, wejścia analogowe oraz wejścia przypisane do zdefiniowanych w systemie układów, na przykład wejście do odczytywania temperatury z układu DS18B20. Każda zmiana na wejściu generuje zdarzenie, które wywołuje określone działanie projektowanej aplikacji. Ponieważ każdy system mikroprocesorowy ma ograniczone zasoby, to musi sobie jakoś radzić w sytuacjach, kiedy występuje wiele zdarzeń lub są one jednoczesne albo prawie jednoczesne. Dlatego zarejestrowane zdarzenie jest zapisywane do kolejki FIFO (pierwszy zapisany, pierwszy obsłużony). Potem zdarzenia są sukcesywnie obsługiwane przez program – egzekutor zdarzeń. W wyniku działania egzekutora zmienia się stan wyjść i obsłużone zdarzenie jest usuwane z kolejki. Oprócz opisanych elementów, czyli wejść/wyjść, kolejki i egzekutora, system wyposażono w  stos wywołań z  zabezpieczeniem przed pętlami, mechanizmy zarządzania ELEKTRONIKA PRAKTYCZNA 7/2013

070-073_vamgraf.indd 71

ekranami wyświetlania, obsługę pamięci EEPROM oraz obsługę zegara RTC. Jak już wspomniałem, zdarzenia są generowane przez zmianę na wejściach sprzętowych: cyfrowych, analogowych, pomiaru temperatury itp. To nie jest jedyne ich źródło. Oprócz tego mogą je zgłaszać wewnętrzne układy peryferyjne np. timery, układ RTC, oraz program użytkownika i system (start lub wygenerowany błąd).

Elementy systemu Wszystkie elementy systemu – a nie jest ich mało – są dokładnie opisane w  pliku pomocy programu i  nie będę tego opisu powielał. Skupię się tylko na kilku wybranych, tak aby mieć ogólne pojęcie z czego można budować program. Wejścia. Wejścia cyfrowe są przeznaczone do odczytywania poziomów logicznych: wysokiego lub niskiego. W  systemach mikroprocesorowych takie wejścia są szeroko stosowane na przykład do odczytywania stanu klawiszy, a  ale też do implementacji linii interfejsów komunikacyjnych. Zaprogramowany sterownik Vamster zawsze odczytuje wejścia cyfrowe, jeśli tylko nie wykonuje obsługi zdarzeń, ale nie szybciej, niż co 1  ms. Jeżeli stan wejścia się zmieni, to system generuje zdarzenie i wpisuje je do kolejki. Liczba dostępnych wejść jest zależna od typu wybranego Vamstera. Na przykład VamsterD jest sterownikiem przeznaczonym do uruchomienia na płytce zaprojektowanej przez użytkownika. Do dyspozycji są wtedy 24 wejścia cyfrowe odpowiadające możliwościom mikrokontrolera ATmega32. Vamstery mogą mieć zdefiniowany dodatkowy typ wejścia: klawisze. Są to 4 elementy stykowe oznaczone jako klawisz góra, dół, enter i esc. System domyślnie odczytuje je co 200  ms, ale kiedy mikrokontroler jest mocno obciążony obsługą zdarzeń, to ten czas może znacznie wydłużyć się. Jak się łatwo domyśleć, te elementy są głównie przeznaczone do obsługi menu kontekstowego. Każdy klawisz może występować w  programie wielokrotnie, ale jego przyciśnięcie powoduje wygenerowanie jednego zdarzenia. Jeżeli kolejka jest pełna przed odczytaniem klawiszy, to odczytanie zmiany ich stanu jest gubione (nie jest wprowadzane do kolejki). Może zostać zarejestrowane kolejne przyciśnięcie, ale pod warunkiem, że i w tym wypadku kolejka nie jest zapełniona. Wejścia analogowe konwertują napięcie z zakresu 0…5 V na wartość 10-bitową. Napięcie referencyjne przetwornika jest równe napięciu zasilającemu. Można w  części sterowników Vamster dołączyć zewnętrzne źródło napięcia referencyjnego. Przy Vref=5 V wynik konwersji napięcia Vin ma wartość Vin×1024/5. Wyjścia. Elementy wyjściowe to cyfrowe wyjścia dwustanowe, wyjścia PWM, buzzer,

diody LED, wyświetlacze (LCD i 4-cyfrowy LED) oraz wyjścia wirtualne (testowe). Do każdego z  wyjść są przypisane bufory. W trakcie obsługi zdarzenia te bufory są zapisywane i po zakończeniu obsługi przepisywane do wyjść sprzętowych. Na wyjściach dwustanowych i  PWM poziom wysoki to +5 V, a niski to 0 V. Sygnał PWM może być generowany sprzętowo – wyjścia PWMS1 i PWMS2. Ma wtedy rozdzielczość 10-bitów i częstotliwość 900 Hz. Programowa realizacja PWM dostępna na wyjściach PWMP1do PWMP8 ma rozdzielczość 8-bitów i  częstotliwość 75  Hz. Możliwe jest zdefiniowanie aktywnego poziomu napięcia dla wyjść dwustanowych i PWM. Wyświetlacze. Takie elementy wyjściowe jak diody LED i wyświetlacze są definiowane dla konkretnych typów sterowników. Dla konstruktora – szczególnie początkującego – bardzo atrakcyjna jest możliwość obsługi standardowego wyświetlacza LCD ze sterownikiem HD44780 i wyświetlacza LED złożonego z 4 cyfr. Żeby prawidłowo używać elementów wyświetlaczy trzeba wiedzieć jak działają w  systemie i  jak się je konfiguruje. Z  pojęciem wyświetlacza LED czy LCD związane są tzw. ekrany. Ekran to element, który określa wygląd i zawartość wyświetlanej informacji. Ekran jest aktywowany i  dezaktywowany poziomem logicznym na swoim wejściu A. Ekrany są podzielone na ekrany wyświetlania, edycji, edycji daty i czasu itp. Na wyświetlaczu może być widoczny tylko jeden ekran informacji, ale w  programie może być ich więcej i  wszystkie mogą być aktywowane w jednym czasie. Skoro tak, to powstają konflikty, z którymi Vamgraf radzi sobie tworząc listę aktywnych ekranów. Użytkownik nie ma dostępu do tej listy, a zarządzanie nią przez system wygląda następująco: po zerowaniu mikrokontrolera lista jest pusta. Kiedy program uaktywni ekran wymuszając poziom aktywny na wejściu A, to ekran jest umieszczany na końcu listy i jest wyświetlany (ekran aktywny). Po dezaktywacji ekran jest usuwany z  listy i  zaczyna być wyświetlany ekran ze środka listy, czyli aktywowany wcześniej i  niedezaktywowany. Inaczej mówiąc – jest wyświetlany ekran ostatnio aktywowany. Ekran przed nim jest przesuwany do środka listy, jeżeli pozostał aktywny. Po dezaktywacji ostatnio aktywowanego, ten ze środka na powrót staje się aktywny i wyświetlany. Jeżeli wszystkie ekrany informacji przestają być aktywne, to lista się opróżnia i na ekranie nic się nie wyświetla. Ekranów informacji może być wiele i  mogą być aktywne wszystkie. Ekranów edycji również może być wiele, ale aktywny może być tylko jeden. Załóżmy, że żaden ekran nie jest aktywny. Po uaktywnieniu ekrany wyświetlania przejmuje on kontrolę nad wyświetlaczem, zgodnie z  regułami

71

2013-06-28 08:10:32


NOTATNIK KONSTRUKTORA opisanymi przed chwilą. Jeżeli uaktywni się ekran edycji, to przejmuje kontrolę nad wyświetlaczem. Ekrany wyświetlania informacji są nadal zarządzane (wpisywane na listę), ale nie są wyświetlane. Jeżeli uaktywni się kolejny ekran edycji, to jest ignorowany, aż aktywny ekran edycji nie zostanie dezaktywowany. Przy czym nie wystarczy wymuszenie poziomu nieaktywnego na wejściu A. Z ekranem edycji jest powiązane działanie opisywanych już 4 klawiszy: góra, dół, enter i  esc. Ten ekran przejmuje wszystkie zdarzenia od klawiszy. Żeby dezaktywować ekran edycji, trzeba nacisnąć i puścić klawisz enter lub esc. Może to się stać również po przekroczeniu timeoutu, kiedy żaden klawisz nie jest naciskany przez określony czas. Edycja parametrów wymaga zmian ich wartości. Jest to wykonywane przez przyciskanie klawiszy góra/dół. Enter akceptuje zmiany, nowa wartość jest zapisywana w  pamięci EEPROM i  menu przechodzi do ustawiania kolejnej wartości. Naciśnięcie klawisza esc powoduje przejście do poprzedniej edycji lub dezaktywowanie ekranu edycji. W trakcie edycji w tle działają wszystkie niezbędne procesy Vamstera, poza aktywowaniem innych ekranów edycji. Edytowane wartości będą odczytywane z  pamięci EEPROM i zapamiętywane w niej po zmodyfikowaniu. Ekran edycji może mieć dodatkowe wyjścia: W, Enter, Esc. Ich działanie jest dokładnie opisane w instrukcji Vamgrafa.

Projekt przykładowy – zegar z regulatorem temperatury Wiemy już jak działają ekrany. Popatrzmy teraz, jak można je wykorzystać w praktyce. Do tego celu wykorzystamy przykładowy (przygotowany przez producenta) projekt zegara z  regulatorem temperatury przeznaczony dla sterownika Vamster SL. Narysowany projekt pokazano na rysunku 2. W jego skład wchodzą następujące elementy • STM – czas w  Vamsterze umieszczony w  katalogu Elementy\System\Data,czas. Ten element generuje zdarzenie co 1 min. Jego źródłem jest zegar czasu rzeczywistego RTC. Żeby użyć zegara, trzeba zaznaczyć „użycie daty i  czasu” w  oknie Ustawienia -> Vamster i  moduły. Zegar RTC może być sprzętowy. Mikrokontroler obsługuje wtedy układ PCF8583. Uaktywnienie tej opcji wymaga zaznaczenie opcji „sprzętowy zegar RTC” (rysunek 3). Raz ustawiony, sprzętowy RTC powinien działać poprawnie nawet po zaniku napięcia zasilania, jeżeli jest podtrzymywany bateryjnie. Inną możliwością jest użycie zegara programowego, który nie wymaga dodatkowych układów peryferyjnych. Po zaniku napięcia lub zerowaniu mikrokontrolera jego wartość jest zerowana i  wymaga ustawienia przez użytkownika.

72

070-073_vamgraf.indd 72

• SEC – element sekundy umieszczony w katalogu Elementy\System\Data,czas generuje zdarzenie co 1 s. • °C1 – element umieszczony w  katalogu Elementy\Wejście\Temperatura i  przeznaczony do pomiaru temperatury Rysunek 2. Przykładowy projekt z  czujnika DS1820. Ma jedno wyjście, na którym pojawiają się świetlanie czasu ma wartości z  zakresu -550…1250. Odposwój ustalony format wiada to mierzonej temperaturze z  zai  nie musimy się już kresu -55°C…125°C pomnożonej przez troszczyć o  dodatko10. Na przykład, temperaturze 13,5°C we konwersje, wybędzie odpowiadała wartość 135 na wyjświetlanie dwukropściu elementu. Pomiar odbywa się co 1 ka itp. s, a zdarzenie jest generowane tylko wtePonieważ eledy, kiedy odczytywana wartość uległa ment STM odczytuje zmianie od ostatniego pomiaru. Jeżeli czas z  rozdzielczopomiar zostanie wykonany, ale kolejka ścią 1 minuty, to żeby zdarzeń jest pełna, to nie zostanie obzegar zliczał też sesłużony (na przykład wyświetlony). Do kundy jest potrzebne Rysunek 3. Okno sterownika można przyłączyć 2 czujniki dodatkowe odczyty- Vamstera i moduły DS1820. Po umieszczeniu na schemacie, wanie i wyświetlanie system Vamstera sprawdza poprawność sekund. Wykonuje to element SEC połączony przyłączenia układu czujnika do mikroz wejściem CzasS. Wejście CzasS ma format kontrolera i  w  wypadku błędów zgłasza Liczbowe i  jest wyświetlane za minutami stosowny komunikat. w górnej linijce. • Element Start umieszczony jest w kataloTemperatura jest mierzona przez elegu Elementy\System\Start, który generuje ment °C. Jego wyjście jest połączone z  wejściem Temperatura. Dane z tego wejścia maja jedno zdarzenie po włączeniu zasilania format liczbowy, czyli można określić liczbę lub zerowaniu mikrokontrolera. Zdarzeni znaków zarezerwowanych do wyświetlania polega na ustawieniu stanu wysokiego H. i położenie kropki dziesiętnej. • Element Blok. Jest to wcześniej zdefinioWejście grzałka ma format logiczne. wany blok komparatora pozwalający na porównanie wartości na wyjściu pomiaMożna tu zdefiniować znak przypisany do ry temperatury (wejście We) z  dwoma poziomów niskiego i wysokiego oraz położestałymi wartościami 320 i  310 podawanie tego znaku na ekranie. Dodatkowe teksty nymi na wejścia Górny i Dolny. Wyjście niezwiązane z  danymi z  wejścia, czyli etykomparatora jest podawane na moduł kiety Czas:, Temp i  Grz są edytowane litera wyświetlacza i  jednocześnie na wyjście po literce. Klikamy na edytowaną pozycję WYC1 do sterowani a grzałką. Na rysuni z menu mającego obrazować generator znaku 4 pokazano rozwinięcie bloku kompaków wyświetlacza wybieramy potrzebny. ratora Tak zdefiniowany element LCD potrafi wyWażnym elementem projektu jest bez świetlać wszystkie dane otrzymane z zegara wątpienia element wyświetlacza LCD. Może i termometru. on mieć zdefiniowanych wiele wejść. W naProgram można testować symulatorem szym przykładzie są to wejścia A, Czas, uruchamianym na komputerze PC. Ekran CzasSS, temperatura i  grzałka. Na rysunsymulatora pokazano na rysunku 6. Jest na ku  5 pokazano okno konfiguracji elementu. nim umieszczony widok ekranu wyświetlacza LCD z  informacjami zdefiniowanymi Po kliknięciu na przycisk Dodaj, w głównym menu dodaje się wejścia z ich nazwami i  konfiguracją położenia na ekranie. Każdemu elementowi z  listy wejść przypisuje się parametry położenia wyświetlania: numer linii i położenie początku tekstu. Przy wyświetlaniu czasu początek komunikatu jest ustalony na 7-my znak górnej linijki. Format jest ustalany w  kolumnie Typ Wyśw. Wy- Rysunek 4. Rozwinięcie bloku komparatora. ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:32


Vamgraf – cudze chwalicie, swego nie znacie…

Rysunek 5. Okno Edycji elementu LCD

Rysunek 6. Ekran symulatora dla testowanego programu w oknie edycji elementu LCD. Symulowany czas jest pobierany z  czasu komputera PC. Temperaturę w  zakresie -55….125 °C zadajemy suwakiem oznaczonym DS1. Zmieniana temperatura jest wyświetlana na ekranie LCD. Można też sprawdzić działanie komparatora temperatury. Wyjście WyC1 jest aktywne, gdy temperatura wzrasta i jest wyższa niż 32°C, a staje się nieaktywne, gdy temperatura maleje i jest niższa niż 31°C (histereza 1°C).

Podsumowanie Program Vamgraf razem z ofertą zestawu różnych sterowników z rodziny Vamster mógłby być ciekawą propozycją dla konstruktorów pragnących wykorzystywać mikrokontrolery w swoich projektach. Graficz-

ELEKTRONIKA PRAKTYCZNA 7/2013

070-073_vamgraf.indd 73

na edycja programów, bardzo dobrze przygotowany plik pomocy i sporo programów przykładowych, to niewątpliwe zalety tego środowiska. Po teście muszę przyznać, że całość sprawia wrażenie narzędzia przemyślanego i  dopracowanego, szczególnie pod względem graficznym. Ktoś włożył w  nie dużo pracy i  efekty tej pracy widać. Nie miałem co prawda możliwości sprawdzenia poprawności działania w  rzeczywistym układzie, bo dysponowałem tylko bezpłatną wersją dostępną w Internecie. Jednak programowy debuger działał bardzo dobrze. Widać, że autorzy starali się zbudować system, w  którym można szybko zaprogramować uniwersalny sterownik mierzący na przykład temperaturę i  czas oraz wyświetlający to na ekranie. W programach przykładowych jest ciekawy projekt woltomierza z  wyświetlaczem LED, sterownika akwariowego, sterownika silnika krokowego itp. To sugeruje, że grupą docelową są albo początkujący programiści, albo użytkownicy mikrokontrolerów, którzy potrzebują sterownika i nie chcą zbytnio wnikać w  tajniki programowania. Dla nich silnym wsparciem będą pewnie gotowe sterowniki z rodziny Vamster. Przy rysowaniu programów trzeba się przyzwyczaić koncepcji budowy algorytmów. Vamgraf przypomina trochę koncepcję programu Lab View. Trudno się oprzeć porównaniu z Flowcode. Kompilator Flowcode jest oparty na graficznym tworzeniu algorytmów bardzo bliskim algorytmom wykorzystywanym przy projektowaniu programów pisanych w  językach programowania. Tam pętle, skoki warunkowe, sprawdzanie warunków itp. jest bardzo bliskie konstrukcjom programowym w  C. Ponadto, można robić wstawki napisane w  C, chociaż nie jest to

niezbędne. W przypadku Vamgrafa niezbędna jest umiejętność korzystania z  układów logicznych: bramek, przerzutników, multiplekserów. Niestety sporym ograniczeniem jest możliwość rysowania programów prawie wyłącznie dla firmowych sterowników z rodziny Vamster. Można co prawda wykorzystać projekt z VamsterD i w wersji płatnej rysować program dla własnego sterownika, ale ten sterownik może być zbudowany tylko w  oparciu o  ATmega32. Flowcode oferuje znacznie więcej przy niższej cenie. Na przykład w  wersji dla Microchipa można korzystać z  wielu mikrokontrolerów rodziny PIC16 i PIC18, a generowany kod nie jest związany z  firmowym sprzętem. Podejście twórców Vamgrafa sprowadza się do tego, że jest on dodatkiem do sterowników Vamster, a  nie uniwersalnym narzędziem programowym. Vamgraf jest również narzędziem bardzo mało znanym. Dowiedzieliśmy się o  nim z  kilku wpisów na forach internetowych. Bez większej reklamy i  akcji promocyjnej nie można sprawić, by stał się bardziej popularny, a według mnie zdecydowanie na to zasługuje i  to nie tylko dlatego, że jest polski. Być może gdyby twórcy zdecydowali się na rozszerzenie funkcjonalności polegające na przykład na zwiększeniu listy obsługiwanych mikrokontrolerów, nie wiązali tak mocno możliwości programowych z  własnymi sterownikami Vamster, obniżyli i cenę i mocniej zaczęli promować swój produkt, to mógłby się stać bardziej popularny. W obecnej sytuacji obawiam się, że niestety, nie doczekamy się polskiego narzędzia na miarę Bascoma czy Flowcode.

Tomasz Jabłoński, EP

73

2013-06-28 08:10:32


NOTATNIK KONSTRUKTORA

Projektowanie płytek obwodów drukowanych zgodnie z wymaganiami EMC i ESD W  poprzednim artykule opublikowanym w  EP  4/2013 opisałem zagadnienia teoretyczne związane z  powstawaniem interferencji elektromagnetycznych. Teraz skupię się na kolejnej strategii eliminowania problemów z  EMC: podziale projektowanego urządzenia na podsystemy i  ich optymalnym rozmieszczeniu na płytce obwodu drukowanego. Na podstawie tych rozważań opisanych w  poprzednim artykule wysnułem wniosek, że podstawowymi źródłami problemu z  kompatybilnością elektromagnetyczną są silne pole elektromagnetyczne oraz pętle prądowe utworzone w  obrębie PCB i  działające podobnie do anten. W  dalszej części zaprezentowałem podstawowe źródła promieniowania elektromagnetycznego oraz potencjalne elementy projektowanego systemu elektronicznego, które będą odbierały z  otoczenia szum elektromagnetyczny. Bardzo ważne przy projektowaniu układu elektronicznego spełniającego założenia kompatybilności elektromagnetycznej jest właściwe wykonanie i umieszczenie masy oraz zasilania systemu. Jakiekolwiek zaniedbania na tych polach mogą skończyć się poważnymi i trudnymi

wnętrznego, jak i wrażliwych na szum sekcjach systemu). Podobnie ma się sprawa z późniejszą analizą gotowego urządzenia pod kątem kompatybilności elektromagnetycznej i próbą usunięcia wykrytych usterek. Zdecydowanym ułatwieniem jest podzielenie projektu urządzenia na grupy funkcjonalne. Znacznie prościej jest zdefiniować możliwe źródła problemów dla mniejszego podsystemu, który spełnia jedno, ściśle sprecyzowane zadanie. Jasne określenie źródeł szumów i  miejsc wrażliwych w  podsystemie sprawi, że możliwe będzie należyte odfiltrowane zakłóceń i  zapewnienie odpowiedniej ochrony. Ważne, aby szum nie przenosił się pomiędzy podsystemami. Wykonanie kompletnego urządzenia elektronicznego poprzez połączenie ściśle

opisanych bloków funkcjonalnych umożliwia stosunkowo szybką identyfikację przyczyn niepożądanego zachowania oraz łatwą i skuteczną eliminację usterki. Pisząc „ściśle opisany” mam na myśli podsystem, który: • ma jednoznacznie określone zadanie, jakie ma spełniać w urządzeniu, • znany jest sposób przetwarzania sygnałów wejściowych na wyjściowe, jeżeli taki zachodzi, • jest określony zbiór wartości, które będą przyjmowały sygnały wchodzące i wychodzące. Podzielenie całego projektu na szereg mniejszych podsystemów jest więc zabiegiem bardzo korzystnym. Warto wprowadzić ten podział już na etapie wykonywania schematu połączeń elektrycznych. Może to wyglądać w  ten sposób, że na pierwszym arkuszu zostaną zaprezentowane w  sposób symboliczny poszczególne grupy funkcjonalne i  połączenia pomiędzy nimi, a na kolejnych znajdą się schematy elektryczne kolejnych podsystemów. W  sposób czytelny i  jednoznaczny muszą zostać przedstawione (i  nazwane) linie wej-

do usunięcia usterkami. Istotne jest zarówno poprawne wykonanie mozaiki połączeń na płytce obwodów drukowanych, jak i uważne dobranie komponentów pod kątem zadań, które będą spełniały w projektowanym systemie. Po wskazówki jak do tego się zabrać odsyłam do wcześniejszego artykułu. Teraz skupię się na kolejnej strategii eliminacji problemów z EMC: podziale projektowanego urządzenia na podsystemy, i ich optymalnym rozmieszczeniu na płytce obwodów drukowanych.

Podzielenie urządzenia na podsystemy Znalezienie wszystkich potencjalnych przyczyn problemów z kompatybilnością elektromagnetyczną dla projektowanego urządzenia elektronicznego, traktowanego jako niepodzielna całość, jest zadaniem szalenie złożonym. Trudno jest precyzyjnie określić wszystkie krytyczne miejsca w układzie (mowa tu zarówno o generatorach zakłóceń pola elektromagnetycznego, potencjalnych antenach zbierających zakłócenia ze środowiska ze-

74

074-077_plytki-pcb.indd 74

Rysunek 1: Przebieg prostokątny o częstotliwości podstawowej 1 MHz, wypełnieniu 50%, amplitudzie 5 V, czasie narastania/opadania zboczy 100 ps. Poniżej umieszczono widmo częstotliwościowe sygnału ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:43


Projektowanie płytek obwodów drukowanych zgodnie z wymaganiami EMC i ESD

Rysunek 2: Przebieg prostokątny o częstotliwości podstawowej 1 MHz, wypełnieniu 50%, amplitudzie 5 V, czasie narastania/opadania zboczy 10 ns. Poniżej umieszczono widmo częstotliwościowe sygnału ściowe/wyjściowe każdego z  podsystemów. Dobrze jest rozróżnić typ sygnału prowadzonego poszczególnymi liniami (np. wejściowy, wyjściowy, zegarowy, cyfrowy, analogowy etc.) za pomocą odpowiednich symboli graficznych. Zwiększy to czytelność schematu. Dodatkowo, warto nadać sygnałom opuszczającym/wchodzącym do podsystemu nazwy nawiązujące do ich zadania. Bardzo pomocne przy późniejszym rozmieszczaniu elementów na płytce obwodów drukowanych będzie dodanie do nazw

komponentów etykiet wskazujących, do której grupy przynależą. Klasyfikacja poszczególnych podsystemów powinna odbyć się pod kątem ilości generowanego szumu oraz wrażliwości na zakłócenia elektromagnetyczne. Najczęściej wyróżnia się następujące podsystemy: • Wysokoczęstotliwościowe\cyfrowe. Jest to grupa generująca znaczne ilości szumu elektromagnetycznego. Główną przyczyną takiego stanu rzeczy są przebiegi prostokąt-

Rysunek 3: Przebieg prostokątny o częstotliwości podstawowej 1 MHz, wypełnieniu 10%, amplitudzie 5 V, czasie narastania/opadania zboczy: 10ns. Poniżej umieszczono widmo częstotliwościowe sygnału ELEKTRONIKA PRAKTYCZNA 7/2013

074-077_plytki-pcb.indd 75

ne o wysokiej częstotliwości i krótkim czasie narostu i  opadania zboczy (rysunek  1 i  rysunek  2). Modyfikacja wypełnienia sygnału prostokątnego przyczynia się do zmiany mocy kolejnych harmonicznych (rysunek  3 i  rysunek  4), więc należy dążyć, aby systemy cyfrowe pracowały z jak najniższą częstotliwością, a  czas zmiany stanu na danej linii był jak najdłuższy. Drugą przyczyną znacznego stopnia generowanych zakłóceń przez ten blok jest sposób pobierania energii przez układy cyfrowe. Odbywa się on w sposób impulsowy, w  czasie wystąpienia zbocza zegarowego. Piki prądowe, które wtedy powstają, nie dość, że cechuje wysoka częstotliwość, to na dodatek są o  znacznej wysokości (dobrze jest zadbać o wyłączenie niepotrzebnych peryferii w mikrokontrolerze w celu zminimalizowania poboru mocy). Jak już wspomniałem w  poprzednim artykule, indukcja pola magnetycznego jest wprost proporcjonalna zarówno do częstotliwości sygnału jak i natężenia biegnącego prądu. Mówiąc bardziej obrazowo: indukcja pola magnetycznego jest wprost proporcjonalna do iloczynu (!) tych dwóch wartości. Czasami dodatkowo jest wyróżnia grupa szczególnie mocno szumiąca (np. procesor szybko wymieniający dane z pamięcią zewnętrzną). • Niskoczęstotliwościowy\analogowy. Jest to podsystem szczególnie wrażliwy na wszelki szum elektromagnetyczny. Bezwzględnie musi być umieszczony z daleka od możliwych źródeł zaburzeń pola elektromagnetycznego, czy też od krawędzi i otworów w laminacie. Bardzo ważne jest dostarczenie stabilnego zasilania, pozbawionego jakichkolwiek pików. Warto, aby ta grupa, jeżeli będzie korzystała z portów I/O  systemu, znajdowała się jak najbliżej strefy portów wejścia/wyjścia w celu zminimalizowania zniekształcenia danych analogowych. Analogicznie do układów wysokoczęstotliwościowych, czasami jest wyróżniana dodatkowa grupa, wyjątkowo wrażliwa na szum. • Strefa funkcjonalna portów wejścia/ wyjścia. Jak sugeruje nazwa, do tej grupy zaliczają się różne konektory, za pomocą których projektowany system elektroniczny wymienia informacje ze światem zewnętrznym. Najlepiej, aby ten podsystem znalazł się jak najbliżej krawędzi płytki obwodów drukowanych. Ze względu na możliwość odbierania i  wysyłania zakłóceń elektromagnetycznych, a  także podwyższone ryzyko wystąpienia przepięć (wywołanych np. przez wyładowania elektrostatyczne) bądź zwarć (spowodowanych

75

2013-06-28 08:10:43


NOTATNIK KONSTRUKTORA np. niepoprawnym ich użytkowaniem), należy ze szczególną pieczołowitością zadbać o zablokowanie tych niekorzystnych zjawisk w  obrębie tego podsystemu. Propagacja ich na kolejne grupy funkcjonalne spowoduje ich niepoprawną pracę, bądź co gorsza, uszkodzenie całego urządzenia. Do filtrowania szumów wysokoczęstotliwościowych zwykle wystarczą cewki ferrytowe oraz kondensatory ceramiczne. W przypadku przepięć można radzić sobie z nimi przy pomocy odpowiednio dobranych diod Zenera (w  tym miejscu odsyłam do poprzedniego artykułu, do porad na temat projektowania układu zasilania). • Układ zasilania. Ta grupa funkcjonalna powinna być umieszczana jak najbliżej wejścia mocy do systemu i w pewnej odległości zarówno od szybkich układów cyfrowych jak i wrażliwych analogowych. Jest ona o tyle specyficzna, że zarówno generuje, jak i jest podatna na zakłócenia pola elektromagnetycznego. Przyczyną powstawania szumu są płynące w niej prądy o dużym natężeniu oraz pracujące z  krótkimi czasami przełączania układy scalone (np. bardzo popularne w urządzenia zasilanych bakteryjnie przetworniki DC-DC). Z drugiej strony bardzo istotne jest ograniczenie szumu docierającego z zewnątrz. Zaniedbanie problemu spowoduje powstanie zakłóceń na szynie zasilającej i  w  efekcie ich rozprzestrzenienia, niepoprawną pracę projektowanego urządzenia. Po uporaniu się z zadaniem podzielenia całego systemu na mniejsze grupy, można przystąpić do rozplanowania ich rozmieszczenia na płytce PCB. W  przypadku podsystemów wysokoszumnych trzeba zastanowić się czy będzie on potrzebował dostępu do strefy portów I/O systemu. Jeżeli tak, w celu doprowadzenia sygnałów cyfrowych jak najkrótszymi ścieżkami (zminimalizujemy wielkość pętli prądowych, a  więc i  ilość wypromieniowywanego pola elektromagnetycznego), to musi zostać umieszczony w  sąsiedztwie podsystemu portów wejścia/wyjścia (rysunek  6). W  przeciwnym razie, system wysokoszumny powinien znaleźć się z dala od strefy portów (rysunek 7). Dobrze, aby ta odległość wynosiła przynajmniej 50  mm. Zmniejszona zostanie w  ten sposób ilość wypromieniowywanego pola elektromagnetycznego z budowanego systemu elektronicznego. Stosowane są dwa wzorce rozkładania podsystemów na obszarze płytki obwodów drukowanych. Pierwszy z nich przewiduje, że bloki funkcjonalne są poukładane oddzielnie, z  zachowaniem odpowiedniej odległości od siebie. Linie wchodzące i wychodzące z danego podsystemu są filtrowane. Zaletą jest duża

76

074-077_plytki-pcb.indd 76

Rysunek 4: Przebieg prostokątny o częstotliwości podstawowej 1 MHz, wypełnieniu 90%, amplitudzie 5 V, czasie narastania/opadania zboczy 10 ns. Poniżej znajduje się widmo częstotliwościowe sygnału

Rysunek 5: Przebieg sinusoidalny o częstotliwości podstawowej 1 MHz, amplitudzie 5 V. Poniżej umieszczono widmo częstotliwościowe sygnału. W przeciwieństwie do innych typów przebiegów, jedyny pik w widmie częstotliwości występuje przy częstotliwości podstawowej elastyczność przy późniejszych modyfikacjach urządzenia. Druga metoda przewiduje, że poszczególne podsystemu mogą się znajdować wewnątrz innych. Ma to jedną ogromną zaletę w  porównaniu ze sposobem pierwszym: linie wchodzące i wychodzące z centralnego podsystemu będą przechodziły przez więcej niż jedną strefę filtrów. Przykładowo, w centralnej części naszego układu umieścimy bardzo wrażliwy układ analogowy, posiadający własny ekran.

Będzie on otoczony przez podsystem analogowy. Linie przechodzące z jednego systemu do drugiego będą przechodziły przez strefę filtrowania. Całość będzie zamknięta w  ekranowanej obudowie, z filtrowanymi portami wejścia/ wyjścia. Jak łatwo zauważyć, sygnały docierające do wrażliwej części układu ze środowiska zewnętrznego będą lepiej odfiltrowane, niż miałoby to miejsce, gdy blok szczególnie wrażliwy byłby umieszczony niezależenie. ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:44


Projektowanie płytek obwodów drukowanych zgodnie z wymaganiami EMC i ESD

Rysunek 6: Położenie poszczególnych podsystemów. Układ cyfrowy będzie korzystał z portów I/O Zalety i  wady dwóch wymienionych powyżej wzorców sprawiają, że w wielu układach są one stosowane jednocześnie. Ma to zazwyczaj miejsce, kiedy w obwodzie są wyróżnione dodatkowo bardzo szumne, bądź bardzo wrażliwe grupy funkcjonalne. Są one wtedy otaczane przez odpowiedni podsystem (analogowy albo cyfrowy). Rozmieszczenie poszczególnych elementów elektronicznych na płytce obwodów drukowanych zgodnie z  ich przynależnością do danego podsystemu sprawi, że uniknięty zostanie problem z  przypadkowo utworzonymi pętlami prądowymi. Prądy zwrotne płynące w obrębie danej grupie funkcjonalnej nie będą zakłócały przepływu prądu w  pozostałych. Skoro takie zjawisko nie będzie miało miejsca, to czy jest sens mu zapobiegać poprzez podzielenie płaszczyzny masy? Prądy zwrotne płynące pomiędzy poszczególnymi blokami pojawią się jedynie przy liniach je łączących, dlatego musimy zadbać o odpowiednie ich odfiltrowanie. W przypadku krytycznych (mocno szumiących, czy też wrażliwych) podsystemów należy zadbać, aby pomiędzy nimi, a pozostałymi przebiegała linia masy połączona przelotkami z płaszczyzną masy. Odległość między przelotkami nie powinna być większa niż 1/10 długości najkrótszej, spodziewanej fali elektromagnetycznej.

Prowadzenie ścieżek sygnałowych Skoro już uporaliśmy się z zaprojektowaniem masy i zasilania, dokonaliśmy podziału projektowanego układu elektronicznego na grupy funkcjonalne, określiliśmy zjawiska niekorzystne (pod kątem kompatybilności elektromagnetycznej) w nich wystąpią i podjęliśmy kroki ku ich wyeliminowaniu, a elementy elektroniczne zostały rozłożone na płytce obwodów drukowanych zgodnie z  ich przynależnością do poszczególnych grup, możemy przystąpić do utworzenia połączeń sygnałowych wewnątrz i pomiędzy podgrupami. Nieocenioną pomocą okażą się naniesione na etapie tworzenia schematu połączeń elektryczELEKTRONIKA PRAKTYCZNA 7/2013

074-077_plytki-pcb.indd 77

Rysunek 7: Położenie poszczególnych podsystemów. Układ cyfrowy nie będzie korzystał z portów I/O

nych etykiety i symbole graficzne definiujące przynależność i typ danego sygnału. Generalnie, ścieżki sygnałowe powinny być jak najkrótsze, w  przypadku sygnałów szybkozmiennych warto zadbać, aby prowadzone były w  obrębie jednej warstwy, sąsiadującej z  płaszczyzną masy. Jeżeli musimy wykonać zagięcie, to powinno ono być wykonane pod jak najmniejszym kątem. W  wielu przypadkach optymalne są zagięcia pod kątem 45°. Duże kąty zaginania ścieżek są szczególnie niekorzystne przy wysokich częstotliwościach. Część energii sygnału jest w takich liniach odbijana z powrotem do źródła. W ekstremalnym przypadku może dojść do odbicia całości wypromieniowanej z nadajnika energii i  w  efekcie jego zniszczenia. Mniej katastroficznym skutkiem będzie zwiększona emisja promieniowania elektromagnetycznego oraz skłonność do zbierania szumu EM z  otoczenia. Podobnie, jak w przypadku ścieżek o zbyt dużym kącie zagięcia, zachowują się linie prowadzące donikąd. Powstają zazwyczaj podczas usuwania ze schematu połączeń, które już zostały naniesione w projekcie mozaiki połączeń PCB. Warto po takiej operacji uważnie obejrzeć projekt płytki. Najmocniej szumiącymi ścieżkami będą te, którymi będzie transmitowany sygnał cyfrowy. Czas przełączania poziomów na tych liniach będzie determinował moc wyższych harmonicznych – im krótszy, tym ich amplituda będzie wyższa (rys. 1 i 2). Konieczne jest wydłużenie czasu narostu zboczy narastających i  opadających do wartości jak najwyższych, umożliwiających spełnienie postawionych projektowanemu systemowi wymagań. Realizowane jest to najczęściej przez szeregowe wpięcie do linii oporników o  małych wartościach rezystancji, typowo nieprzekraczającymi 70  V. Moc przenoszoną przez kolejne harmoniczne można również zmniejszyć poprzez dobranie odpowiedniego wypełnienia sygnału prostokątnego (rys. 3 i 4). Jest istotne, aby sygnały cyfrowe prowadzone były w bezpośrednim sąsiedztwie płaszczyzny masy.

Warto też zadbać o biegnącą do nich równolegle ścieżkę masy oraz umieszczenie z dala od linii, którymi są rozprowadzone inne rodzaje sygnałów. Jeżeli w układach cyfrowych pozostają jakieś niewykorzystane wyprowadzenia, to trzeba je bezwzględnie dołączyć do masy przez rezystor ograniczający natężenie prądu. Uniknie się wtedy losowej zmiany poziomów na tych liniach wywołanej np. pobliskim zdarzeniem ESD. W  wypadku ścieżek, którymi rozprowadzone są sygnały analogowe, sprawa wygląda nieco inaczej. Tutaj raczej trzeba zadbać o wysoką odporność na zaburzenia pola elektromagnetycznego. W celu zmniejszenia oddziaływania z szumami pochodzącymi z podsystemu cyfrowego warto, aby sygnały analogowe biegły ścieżkami prostopadłymi do połączeń cyfrowych. Wejścia do podsystemu analogowego powinny być filtrowane za pomocą filtrów dolnoprzepustowych. Dodatkową ochronę linią prowadzących sygnały analogowe zapewniają biegnące równolegle ścieżki masy (podobnie jak w  wypadku ścieżek prowadzących sygnały cyfrowe – połączonej przelotkami z  płaszczyzną masy). W  celu obniżenia impedancji pomiędzy nimi warto zastosować wielowarstwowe, ceramiczne kondensatory odprzęgające. Użyteczne w  przypadku połączeń o  charakterze analogowym okażą się również cewki ferrytowe. Ich zadaniem będzie tłumienie wysokoczęstotliwościowych składowych sygnału. Takie składowe mogą pojawić się np. w przypadku przełączenia przekaźnika elektrycznego. Powinny być usytuowane jak najbliżej miejsca możliwego ich powstania.

Podsumowanie To by było na tyle wskazówek na temat rozplanowania położenia poszczególnych elementów na obszarze płytki obwodów drukowanych. W kolejnym artykule opiszę, w  jaki sposób zabrać się do zagadnienia ekranowania systemu oraz do zaprojektowania magistral i wyprowadzeń sygnałów.

Rafał Łaziński

77

2013-06-28 08:10:44


PODZESPOŁY

Komponenty pasywne dla motoryzacji Współczesny rynek motoryzacyjny stawia coraz wyższe wymagania komponentom elektronicznym przy jednoczesnym wzroście zróżnicowania poszczególnych serii i typów. Komponenty trzeba dobierać już nie tylko do określonej aplikacji, lecz często również dla poszczególnych funkcji w  urządzeniu. Tendencja ta dotyczy również pasywnych elementów elektronicznych, którym stawia się surowe wymagania i żąda zgodności z  odpowiednimi normami.

Coraz częściej jest wymagana konieczność stosowania elementów pasywnych spełniających wymagania norm i regulacji wewnątrzbranżowych. Dotyczy to zwłaszcza aplikacji związanych z bezpieczeństwem użytkownika (na przykład poduszek powietrznych, ABS, ESP itp.) oraz zasilaczy, głównie tych dołączanych bezpośrednio do akumulatora samochodu (zacisk 30). Stawiane im wymagania to przede wszystkim: praca w szerokim zakresie temperatury, duża odporność na działanie podwyższonej temperatury, wibracje oraz udary. Dalsze wymagania wynikają z  norm i regulacji obowiązujących w branży motoryzacyjnej, np. raport 8D, IMDS (International Material Data System), PPAP (Part Production Approval Process) itd.

78

078-080_rutronik.indd 78

W praktyce nie da się już obejść bez komponentów, które uzyskały kwalifikację AEC-Q200. Są one kontrolowane w  dużo szerszym zakresie, niż elementy przeznaczone do innych zastosowań. Te testy przeprowadza się przede wszystkim pod kątem zachowania stabilności parametrów w  szerokim przedziale temperatury, odporności na działanie wilgoci i  obciążenia mechaniczne (wstrząsy, wibracje, wyginanie płytki) oraz możliwości lutowania w utrudnionych warunkach.

Kondensatory Najczęściej w segmencie motoryzacyjnym stosuje się wielowarstwowe kondensatory ceramiczne MLCC (Multi Layer Ceramic Capacitor). Ich czas funkcjonowania

jest praktycznie nieograniczony, ale są one bardzo wrażliwe na zginanie. Może to powodować pęknięcia najczęściej skutkujące zwarciem, co może spowodować różne niebezpieczeństwa, np. pożar. Dlatego do funkcji krytycznych, np. wspomnianego zasilania bezpośrednio z akumulatora samochodowego, stosuje się kondensatory MLCC typu otwartego (open mode), z  wewnętrznym układem szeregowym (float mode) i/lub w  technologii soft termination (nazywaną również Flexiterm, zakończeniem z polimerem lub soft electrode). Budowę kondensatorów MLCC zilustrowano na rysunku 1. Do coraz większej liczby modułów dostępne są kondensatory MLCC w wykonaniu promieniowym i  osiowym z  kwalifikacją AEC-Q200, pozwalające na eliminowanie zakłóceń dzięki możliwości bezpośredniego podłączenia do czujnika, z  reguły, do jego wyprowadzeń. W technice motoryzacyjnej nadal stosuje się również inne kondensatory, które też mają swoje zalety. Na przykład, kondensatory foliowe mają wprawdzie ograniczony zakres temperatur, lecz za to doskonałą stabilność mechaniczną i  elektryczną. Na ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:57


Komponenty pasywne dla motoryzacji

Rysunek 1. Budowa różnych typów kondensatorów MLCC

Rysunek 2. Kondensator SMD wykonaniu antywibracyjnym rynku są już dostępne pierwsze serie z kwalifikacją AEC-Q200. Kondensatory tantalowe wyróżniają się wysoką stabilnością, a jednocześnie mają dużą pojemność w odniesieniu do wymiarów. Z  uwagi na brak odporności na impuls przetężenia, nie mogą być jednak stosowane jako kondensator filtra wejściowego. Kondensatory elektrolityczne, aluminiowe to rozwiązanie niedrogie, umożliwiające wytwarzanie kondensatorów o  dużej pojemności. Aby jednak zapewnić kondensatorom elektrolitycznym wymagany okres użytkowania, trzeba dokładnie określić ich warunki pracy. Służą do tego tzw. mission profiles, umożliwiające dobór komponentów z uwzględnieniem wymagań aplikacji, takich jak: przepięcia, temperatura pracy, prądy tętnień oraz wibracje. Specjalne, antywibracyjne kondensatory elektrolityczne SMD pokazano na rysunku 2. Aby poprawić odporność na wibracje kondensatorów THT stosuje się specjalne podstawki i uchwyty – przykładowe pokazano na fotografii 3. Kondensatory EDLC (Electric Double Layer Capacitor), znane również jako superkondensatory lub ultrakondensatory (fotografia  4), zyskują coraz większe znaczenie w  napędach hybrydowych i  elektrycznych w aplikacjach odzyskiwania energii. Tu jeszcze długo nie będzie modeli z  kwalifikacją AEC-Q200, ponieważ nie spełniają one określonych tam kryteriów temperatury. Lecz dystrybutorzy komponentów dla branży

Fotografia 3. Gniazda antywibracyjne dla kondensatorów THT ELEKTRONIKA PRAKTYCZNA 7/2013

078-080_rutronik.indd 79

motoryzacyjnej współpracują ściśle z producentami pojazdów, aby określić, jakie e są rzeczywiste wymagania dla poszczególnych aplikacji i funkcji.

Rezystory Nawet tak proste komponenty elektroniczne jak rezystory, muszą sprostać rosnącym wymaganiom. W sektorze motoryzacyjnym głównie wymaga się stabilności, odporności na impulsy prądowe oraz na szkodliwe gazy. Standardowo rezystory są wykonane w technologii grubowarstwowej, o  tolerancji znamionowej 1% i współczynniku temperatury 100 ppm/K, w obudowach od 1005 do 2512. Wersją przeznaczoną specjalnie do aplikacji motoryzacyjnych są rezystory grubowarstwowe w  wykonaniu siarkoodpornym, o  niewielkiej zawartości palladu w elektrodach. Mechaniczną ochronę przed wnikaniem szkodliwych gazów, umożliwiającą również stosowanie tych u  elementów w  trudnych warunkach, zapewnia homogeniczna warstwa ochronna lakieru epoksydowego (rysunek 5). Rezystory cienkowarstwowe najczęściej stosuje się w  aplikacjach, które wymagają długotrwałej stabilności, dużej dokładności oraz niewielkiego szumu wywołanego przepływem prądu. W porównaniu z rezystorami grubowarstwowymi umożliwiają one uzy-

Fotografia 4. Superkondensatory są z powodzeniem stosowane aplikacjach branży motoryzacyjnej skanie lepszych tolerancji znamionowych, mają niższy współczynnik temperaturowy, mniejsze indukcyjności i  pojemności pasożytnicze oraz wyższą stabilność przy wysokich częstotliwościach. Wszystko to zapewnia praktycznie stałą wartość rezystancji bez względu na czynniki zewnętrzne, takie jak: temperatura, czas i impulsy przepływającego prądu. Rezystory pomiarowe – boczniki, nadają się zwłaszcza do aplikacji pomiarowych. Zwykle ten niskoomowy rezystor służy do pomiaru i  przetwarzania prądu na spadek napięcia. Elementy te mogą pracować w temperaturze do 275 °C i przy mocy strat do 5 W. Dostępne są rezystory o  rezystancji nawet w  zakresie miliomowym i  współczynniku temperatury 50  ppm/K. Typowymi obszarami zastosowania w sektorze motoryzacyjnymi są sterowniki poduszek powietrznych, systemy zarządzania akumulatorami, układy ABS, centralne zamki, systemy zarządzania silnikiem oraz klimatyzacja. Drabinki rezystorów SMD jest złożona z  2, 4 lub 8 rezystorów zintegrowanych w  jednej obudowie. Pady lutownicze są dostępne w  wersji wklęsłej (concave) lub wypukłej (convex). Sieci rezystorowe są, w porównaniu z  pojedynczymi rezystorami, są tańsze biorąc pod uwagę koszty zamówienia, przechowywania i montażu.

Rysunek 5. Zabezpieczenie przed wnikaniem gazów

79

2013-06-28 08:10:57


PODZESPOŁY Cewki i dławiki Od układów zasilających w  pojazdach oczekuje się przede wszystkim jak najmniejszych wymiarów. Uzyskuje się to poprzez zwiększanie częstotliwości kluczowania przetwornicy. Pozwala to na zmniejszenie wymiarów dławika stosowanego w  filtrze EMI oraz do akumulowania energii w przetwornicach DC/DC. Jednocześnie od cewki wymaga się przenoszenia dużego prądu i odporności na podwyższoną temperaturę. Cewki ekranowane magnetycznie, wysokoprądowe są wykonane z  lakierowanego drutu miedzianego, który wytrzymuje temperaturę do 200°C (fotografia 6). Jest on zgrzewany ultradźwiękowo do wyprowadzeń elementu zatopionych w  tworzywie będącym mieszanką materiału ferromagnetycznego i kleju epoksydowego (technologia kompozytowa). Elementy te są również dostępne z kwalifikacją AEC-Q200. Wyróżniają się bardzo niską rezystancją szeregową, a  co za tym idzie, wysoką obciążalnością prądową. Są więc pierwszym wyborem do konwerterów DC/DC i  filtrów EMI, pozwalając na dostarczenie stabilnego i  dobrze odfiltrowanego prądu przy niewielkich wymiarach. Istnieje coraz więcej standardowych cewek i  rdzeni indukcyjnych z  kwalifikacją AEC-Q200, które przeznaczone są do zastosowania w  liniach sygnałowch i  zasilających niskoprądowych. Są one dostępne w  technologii wielowarstwowej jak i  drutowej. Ponadto dostępne są nowe cewki przeciwzakłóceniowe, zoptymalizowane do sieci CAN i FlexRay o zakresie temperatury pracy do 150°C. Zawdzięczają to swej zoptymalizowanej strukturze, odpornemu, przewodzącemu klejowi oraz wewnętrznej konstrukcji absorbującej naprężenia.

Rezonatory ceramiczne Rezonatory ceramiczne stosuje się, podobnie jak rezonatory kwarcowe, jako źródła sygnałów zegarowych. Nie mają one jednak ich dokładności i stabilności. Standardowo tolerancja częstotliwości wynosi 0,5% w  temperaturze pokojowej i  zmienia się o  około 0,3% w  zakresie temperatury od -20 do +80°C oraz na skutek starzenia o  ok. 0,5% przez 10 lat. Mimo to znajdują zastosowanie w  wielu aplikacjach w  sektorze motoryzacyjnym, obok rezonatorów kwarcowych i filtrów z akustyczną falą powierzchniowa (SAW), ponieważ w  porównaniu z nimi mają mniejsze wymiary, wyższą odporność na czynniki mechaniczne i z reguły są tańsze. Rezonatory są również objęte surowymi procedurami kwalifikacyjnymi. Muszą przechodzić regularne audyty, zaostrzone testy środowiskowe i badania końcowe. Ponadto. Mają rozszerzony zakres temperatury pracy, od -40 do +125°C (150°C). W  ra-

80

078-080_rutronik.indd 80

mach testu temperaturowego przechodzą od 500 do 1000 cykli, zamiast 10 dla zwykłych rezonatorów. Na przykład, w zakresie częstotliwości od 4  MHz do 7,99  MHz dostępne są serie o  ulepszonej charakterystyce temperaturowej z  przeznaczeniem do przemysłu motoryzacyjnego. Za ich pomocą Fotografia 6. Wysokoprądowa cewka indukcyjna i jej budowa można zbudować ge- wewnętrzna neratory do aplikacji HS-CAN o  maksymalnej tolerancji łącznej stępne w  wersjach od 2 do 60  MHz, -40 + 0,27% w  zakresie temperatury od -40 do 125  C, 100  ppm i  1,8  V do 3,3  V. Klasycz+125°C. Wielu producentów oferuje usługi ny RTC ma wyjście 32,768 kHz oraz wyjście projektowe, umożliwiające dostosowanie 1 Hz. Pracuje w temperaturze -40 C do +85 C rezonatora do danego układu. W  efekcie lub +125  C oraz ma port I²C, SPI lub port klient otrzymuje wyspecyfikowany generarównoległy. Poza typami stosowanymi potor zgodny ze specyfikacją, z  indywidualwszechnie w branży motoryzacyjnej – od renym numerem części. zonatorów w  metalowych obudowach SMD typu HC49 po wersje ceramiczne o  wymiarach 2,5 mm×2,0 mm – dostępne są również Kwarce typy wykonane na specjalne zamówienie W  każdym pojeździe mechanicznym klientów. można znaleźć wiele różnych kwarców. Zapewniają one wymaganą dokładność na poziomie ppm oraz stabilność temperaturową Jakość ma swoją cenę w zakresie do 150 C/160 C. Zmiany na skuObecnie dostępny jest szeroki wybór tek starzenia się również wpływają na czępasywnych elementów elektronicznych, stotliwość rezonansową kwarcu w  jednocyspełniających kompleksowe, ostre wymafrowym zakresie ppm. Całkowita tolerancja gania aplikacji branży motoryzacyjnej. częstotliwości rezonatora kwarcowego nie Istnieje jednak druga strona medalu – są przekracza 200 ppm, spełniając w  ten spoone znacznie droższe od standardowych sób wymagania szybkich interfejsów komukomponentów. Projekty i  wdrożenia nikacyjnych. produktów, urządzenia i  surowce Dobór kwarcu zależy od tego, czy są produkcyjne niezbędne do uzyskania przeznaczone do aplikacji multimedialnych, produktów klasy „zero błędów”, wiążą się czy bezpieczeństwa, jak układy hamulcowe, z dużo wyższymi kosztami. Do tego dochopoduszki powietrze, systemy monitorujące dzą wyższe koszty technologiczne z powociśnienie w oponach. Z reguły, już na wczedu większych nakładów czasu na obszerne snym etapie projektowym, odbywa się ewabadania i  testy, procedury dopuszczenia luacja płytki mająca na celu przetestowanie i  dokumentację. Jeśli jednak dzięki temu unika się kosztów reklamacji, zwłaszcza działania i  konfigurację układu oscylatora w  przypadku poważnych awarii samochooraz testy bezpieczeństwa. Aby zagwarandów, bądź ryzyka akcji serwisowych –komtować jakość kwarców motoryzacyjnych, ponenty pasywne z kwalifikacją AEC-Q200 producent musi spełnić różne normy, np. nie mają alternatywy. AEC-Q200, TS16949, QS900. Do dopuszPoza spełnieniem specjalnych wymaczenia wymagana jest dokumentacja PPAP. gań i  wyborem optymalnych elementów Elementy, które są produkowane w pomieszczeniach o  najwyższych klasach czystości, coraz większe znaczenie zyskuje również wyróżniają się odpornością termiczną na możliwość zakupu tego samego elementu stres termiczny w nawet 3000 cyklach zmiaz  różnych źródeł. Jest to jedno z  wymagań ny temperatury oraz odpornością na wstrzązabezpieczenia procesów produkcyjnych sy. Kwarce przechodzą rozszerzone testy, co w wypadku poddostawców z branży motorynajmniej według AEC-Q200 i specjalne konzacyjnej. Wymaganie to spełni partner, który trole bezpieczeństwa. Wielu producentów dla jednego elementu jest w  stanie zaoferobez problemu spełnia powyższe wymagania. wać dwie równorzędne alternatywy. Dostępne na rynku produkty obejmują Jürgen Geier kwarce, generatory kwarcowe i RTC. Zakres Field Application Engineer Capacitors częstotliwości kwarców sięga od 32,768 kHz Rutronik Elektronische Bauelemente do 4…40 MHz. Generatory kwarcowe są doGmbH ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:10:58


Krok po kroku Kursy EP

32 bity jak najprościej (1) Pierwsze kroki z modułem STM32F0DISCOVERY Samouczek jest dedykowany szczególnie tym projektantom, którzy stają przed perspektywą zmiany mikrokontrolera z  8-bitowego na nowszy i  tańszy 32-bitowy. Wszystkie programy są napisane w  języku C. W  przykładach nie użyto bibliotek służących do obsługi peryferiali, dzięki czemu kod programów jest krótki i  czytelny, a  zajętość pamięci znacznie mniejsza, niż w  typowych programach demonstracyjnych, udostępnianych przez producentów mikrokontrolerów. Zwrócono również szczególną uwagę na poprawność prezentowanych rozwiązań i  sposób zapisu programu ułatwiający optymalizację kodu i  wychwytywanie błędów przez kompilator. Przedstawione programy zostały napisane w  taki sposób, że nie generują one żadnych ostrzeżeń kompilatora. Środowisko Keil MDK-ARM Przykłady programów zostały przygotowane przy użyciu środowiska MDK-ARM firmy Keil dla systemu Windows, którego darmową wersję ewaluacyjną z  ograniczeniem długości kodu do 32 kB można pobrać z  portalu www. keil.com. Spośród wielu dostępnych środowisk programowania dla mikrokontrolerów z rdzeniami ARM, MDK-ARM wyróżnia się łatwością przygotowania do pracy i tworzenia pierwszych projektów. Jest to więc to dobry wybór dla stawiających pierwsze kroki w  programowaniu mikrokontrolerów z rdzeniami Cortex. Przed rozpoczęciem działań z  STM32F0 należy pobrać i zainstalować aktualną wersję środowiska. Prezentowane przykłady zostały utworzone przy użyciu wersji 4.70 i 4.60. Wszystkie przykładowe projekty opisane w  tekście znajdują się w  pliku F0tutorial.zip. Po rozpakowaniu pliku do nowego foldera projekty można otworzyć przy użyciu środowiska Keil indywidualnie (klikając na pliku projektu z rozszerzeniem .uvproj) lub poprzez plik przestrzeni roboczej f0tutorial.umpw. Warto jednak stworzyć je od nowa samodzielnie, nabierając w ten sposób wprawy w posługiwaniu się środowiskiem.

Przygotowanie do pracy z STM32F0DISCOVERY Po zainstalowaniu środowiska w  komputerze, przed pierwszym podłączeniem modułu Discovery, należy w folderze, w którym zostało zainstalowane środowisko (domyślnie C:\Keil) odnaleźć folder ARM\STLink\USBdriver i  uruchomić zawarty w  nim instalator ST Link_V2_ USBdriver.exe. Następnie należy dołączyć moduł Discovery i korzystając z dialogu instalacji drivera w systemie, przerwać poszukiwanie drivera w sieci. System Windows powinien odnaleźć świeżo zainstalowany driver i skonfigurować go do pracy z  płytką Discovery. Uwaga: Próby instalacji drivera STLink w  inny sposób często kończą się niepowodzeniem.

Po rozpoznaniu modułu Discovery (co zostaje potwierdzone ciągłym świeceniem większej z czerwonych diod umieszczonych na płytce w  okolicy złącza USB) należy zaktualizować wbudowane oprogramowanie STLink, uruchamiając z  foldera ARM\STLink program ST LinkUpgrade.exe.

Tworzenie projektu Na początek stworzymy projekt z programem, który nic nie robi oraz przyjrzymy się procesowi tworzenia projektu i budowie modułu startowego • Wybieramy z menu opcję Project – new mVision Project. • Wybieramy lokalizację projektu. Warto założyć folder grupujący wszystkie projekty, a  w  nim dopiero fol-

ELEKTRONIKA PRAKTYCZNA 7/2013

081-084_st1.indd 81

81

2013-06-28 08:11:19


#include „stm32f0xx.h” //======================================================= void SystemInit(void) { } //======================================================= int main(void) { }

der projektu. Pierwszemu projektowi nadamy nazwę Empty. • Po wprowadzeniu nazwy projektu wybieramy producenta i typ mikrokontrolera – w  naszym przypadku STMicroelectronics STM32F051R8. • Akceptujemy sugestię wygenerowania przez środowisko pliku startowego i włączenia go do projektu. W ten sposób stworzyliśmy pierwszy, niekompletny jeszcze projekt oprogramowania. Został wygenerowany moduł startowy zawierający deklaracje procedur obsługi wyjątków oraz procedurę inicjującą działanie mikrokontrolera. Środowisko ustawiło również ścieżki dla plików nagłówkowych, dzięki czemu będziemy mogli włączać je do naszych modułów pisanych w języku C. Rozwijamy foldery w panelu widoku plików z lewej strony okna i otwieramy moduł startowy. W środowisku Keil jest on napisany w  języku asemblera ARM, pomimo że nie ma przeciwwskazań, aby był on napisany w C. W module możemy zauważyć deklaracje nazw procedur obsługi wyjątków oraz słabe definicje tych procedur. Dzięki temu mamy zapewnioną domyślną obsługę niespodziewanych wyjątków w  postaci pętli nieskończonych, a jednocześnie mamy możliwość stworzenia własnych procedur, które przysłonią procedury domyślne. Fragment kodu rozpoczynający się etykietą ResetHandler jest procedurą inicjującą działanie mikrokontrolera, uruchamianą po zainicjowaniu go, np. przez włączenie zasilania lub podanie sygnału Reset. Procedura ta w środowisku Keil składa się jedynie z wywołań dwóch procedur: SystemInit i  __main. Procedura SystemInit służy do wczesnego zainicjowania mikrokontrolera; zwykle zawiera ona programowanie generatora przebiegu zegarowego oraz konfigurację parametrów dostępu do pamięci. Procedura __main jest zawarta w  bibliotece dostarczanej wraz ze środowiskiem. Przygotowuje ona środowisko pracy dla programów napisanych w C, a następnie wywołuje procedurę main. Procedury SystemInit i main muszą zostać dostarczone przez programistę. Można również skorzystać modułu z procedurą SystemInit dostarczonego przez producenta mikrokontrolera.

Konfiguracja projektu Przed rozpoczęciem pisania programu warto ustawić podstawowe parametry konfiguracji projektu. W wypadku prostych projektów możemy wszystkie pliki źródłowe przechowywać w  głównym folderze projektu. Nie ma jednak sensu zaśmiecać tego foldera plikami roboczymi, postaciami pośrednimi i  innymi plikami tworzonymi

82

081-084_st1.indd 82

podczas kompilacji i konsolidacji, dlatego warto na wstępie zmienić kilka opcji ustawień projektu. Zaczynamy od zmiany domyślnej nazwy nazwy generowanej wersji projektu z domyślnej Target 1 na nazwę projektu – w naszym wypadku Empty. Możemy to zrobić klikając powoli dwukrotnie na nazwie Target 1 w panelu z  lewej strony okna i  wpisując nową nazwę. Następnie klikamy prawym przyciskiem myszy na folderze Empty i  z  menu kontekstowego wybieramy pierwszą opcję – Options for target ‚Empty’. Mamy tu do wykonania kilka zmian: • W zakładce Output wybieramy Select Folder for Objects, w otwartym dialogu tworzymy folder o nazwie Obj i wybieramy do składowania plików pośrednich. • W zakładce Listing wybieramy Select Folder for Listings, w otwartym dialogu tworzymy folder o nazwie Lst i wybieramy do składowania plików raportów. • W zakładce C/C++ wybieramy poziom optymalizacji kodu 2.

Krok po kroku Kursy EP

Listing 1. Pierwszy, niemal pusty program dla STM32F0DISCOVERY /* STM32F0DISCOVERY empty program project gbm, 12’2012 */

Tworzenie programu Wybieramy opcję File  New i piszemy nasz pierwszy, niemal pusty program w języku C (listing 1). Program zawiera dyrektywę preprocesora włączającą plik nagłówkowy z  definicją zasobów mikrokontrolera, która w  pustym programie jest zbędna oraz dwie puste procedury – SystemInit i main. Po napisaniu programu zapamiętujemy go w  folderze projektu pod nazwą main.c, a  następnie dodajemy plik programu do projektu korzystając z  menu kontekstowego folderu Source Group 1 – opcja Add Files to Source Group 1. Gotowy projekt przygotowany według powyższego opisu można znaleźć w  folderze Empty powstałym po rozpakowaniu pliku F0Tutorial.zip. Następnie z  paska narzędzi wybieramy Build, co spowoduje skompilowanie i  konsolidację projektu. Raport z tych czynności możemy zaobserwować w dolnym panelu okna. Po usunięciu przyczyn ewentualnych błędów i  ostrzeżeń sprawdzamy rozmiar wygenerowanego obrazu raportowany przez konsolidator w dolnym panelu okna. Nasz pusty program zajmuje po kilkaset bajtów kodu i  stałych danych. Stałe (sekcja RO-data) – zawiera tablicę adresów procedur obsługi wyjątków zawarta w module startowym oraz dane o pozostałych sekcjach, z których korzysta procedura __main podczas inicjowania pamięci RAM. W  procesorze Cortex-M0 tablica wyjątków zajmuje 192 bajty. W  sekcji stałych są również zapisane początkowe wartości danych statycznych inicjowanych wartościami różnymi od zera, o ile takie dane wstępują w  programie. Większość sekcji kodu zajmuje procedura __main i inne procedury pochodzące z biblioteki kompilatora. Procedury ResetHandler, SystemInit i main zajmują łącznie zaledwie kilkadziesiąt bajtów. Dwie pierwsze sekcje (Code i  RO-data) zajmują pamięć Flash mikrokontrolera. Pozostałe dwie sekcje – dane statyczne o  niezerowych wartościach początkowych (RW-data) oraz pozostałe dane statyczne wraz ze stosem i stertą (sekcja ZI-data) zajmują jedynie pamięć RAM. Sekcja danych statycznych jest pusta, gdyż nasz program nie definiuje żadnych danych. Ostatnia sekcja

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:11:19


Krok po kroku Kursy EP

oprócz stosu (domyślnie 1024 B) i  sterty (domyślnie 512  B) zawiera również obszar roboczy dla biblioteki (96 B). Łączny rozmiar tej sekcji przekracza 1,5 kB, może on jednak zostać zmieniony poprzez konfigurację modułu startowego.

Przykłady dla płytki STM32F0DISCOVERY bez dodatkowych układów Kolejny program będzie tradycyjnym pierwszym programem dla nowego mikrokontrolera – będzie on naprzemiennie zaświecał i gasił dwie diody świecące dostępne na płytce STM32F0DISCOVERY. Gotowy program znajduje się w projekcie blink0.

Tworzenie programu

programów dla układów 8-bitowych jednym istotnym szczegółem – włączeniem portu GPIOC przed jego konfiguracją. To typowa cecha wszystkich peryferiali w mikrokontrolerach z  rdzeniami Cortex – przed użyciem modułu należy go uaktywnić. Jest to również najczęstsze źródło błędów w programach pisanych przez początkujących. Jeżeli programista nie włączy modułu, odwołania do niego nie będą miały żadnych skutków albo będą powodowały błędy podczas wykonania programu. Mikrokontrolery z  rdzeniami Cortex mają zwykle wiele modułów peryferyjnych, a  każdy z  nich jest widoczny dla oprogramowania w  postaci wielu rejestrów sterujących. Pliki nagłówkowe dostarczane przez producentów mikrokontrolerów najczęściej definiują moduły peryferyjne jako struktury języka C, a  poszczególne rejestry modułów – jako pola tych struktur. Przy odwoływaniu się do rejestrów używamy adresu modułu zdefiniowanego jako stałej typu wskaźnikowego, wskazującej strukturę zawierającą rejestry danego modułu, operatora „->” i nazwy rejestru. Plik nagłówkowy stm32f0xx.h definiuje zarówno nazwy rejestrów jak i  nazwy pól (w  tym pojedynczych bitów) tych rejestrów. Brakuje w  nim jednak definicji symboli odpowiadających możliwym wartościom pól o  szerokości powyżej jednego bitu, dlatego potrzebne w  programie wartości pól bitowych będziemy definiować jako własne symbole preprocesora. W praktyce warto byłoby stworzyć własny plik nagłówkowy zawierający takie definicje, z którego można będzie korzystać w wielu projektach, jednak w pierwszych projektach będziemy umieszczać te definicje w głównym pliku programu, dla zwiększenia czytelności kodu. Aby zrozumieć znaczenie poszczególnych instrukcji programu należy zajrzeć do dokumentacji mikrokontrolera. Rejestr AHBENR w module RCC służy do włączania niektórych peryferiali, w  tym portów GPIO. Każdy port GPIO zawiera wiele rejestrów sterujących. W  naszym

Tworzymy projekt i plik programu w taki sam sposób, jak w poprzednik przykładzie, pamiętając o zmianie domyślnych nazw oraz konfiguracji opcji projektu. W pliku programu przed funkcjami umieszczamy definicje połączeń LED i przycisku, określające nazwy portów i pozycje linii portów, do których są podłączone te elementy na płytce DISCOVERY. Są to linie 8 i 9 portu GPIOC. Po zainicjowaniu mikrokontroler pracuje z  wewnętrznym generatorem przebiegu zegarowego o  częstotliwości 8  MHz. Ponieważ nie ma powodu, by zmieniać źródło przebiegu ani jego częstotliwość na potrzeby pierwszych, prostych programów, funkcja SystemInit() może pozostać pusta. Napiszemy natomiast funkcję main(), która będzie cyklicznie zaświecała i gasiła diody. Wewnątrz funkcji deklarujemy zmienną, która posłuży do realizacji programowej pętli opóźnienia. Zmienna ma typ uint32_t – jest to 32-bitowa zmienna całkowita bez znaku. Użycie typów o jawnie określonych rozmiarach, zdefiniowanych w pliku nagłówkowym stdint.h (włączanym pośrednio przez plik stm32f0xx.h), podnosi czytelność i przenośność programu, dlatego będziemy ich używali w kolejnych przykładach. Listing 2. Program naprzemiennie zaświecający diody LED W  celu przygotowania portu do pracy /* STM32F0DISCOVERY wykonujemy kolejno następujące czynności: Trivial blinker - very first project • włączamy moduł GPIOC poprzez ustagbm, 12’2012 */ wienie bitu w rejestrze AHBENR, #include „stm32f0xx.h” • ustawiamy linie portu GPIOC odpowia//================================================================== // defs for STM32F05x chips dające LED jako wyjścia, #define GPIO_MODER_OUT 1 • zaświecamy jedną z diod. //================================================================== // defs for STM32F0DISCOVERY board Po zainicjowaniu portu program wcho#define LED_PORT GPIOC #define BLUE_LED_BIT 8 dzi w pętlę nieskończoną, w której następują #define GREEN_LED_BIT 9 dwie akcje: //================================================================== void SystemInit(void) • opóźnienie zrealizowane jako prosta pęt{ } la programowa, //================================================================== int main(void) • zmiana stanu obu wyjść sterujących dio{ dami poprzez zanegowanie bitów portu, uint32_t i; // port setup które im odpowiadają. RCC->AHBENR = RCC_AHBENR_GPIOCEN; // turn on GPIOC LED_PORT->MODER = GPIO_MODER_OUT << (GREEN_LED_BIT << 1) W  ten sposób co określony czas dioda | GPIO_MODER_OUT << (BLUE_LED_BIT << 1); // LED pins as outputs dotychczas świecąca zgaśnie, a ta, która była LED_PORT->ODR = 1 << GREEN_LED_BIT; // green initially ON wygaszona – zaświeci się. Gotowy tekst profor (;;) { gramu jest przedstawiony na listingu 2. for (i = 0; i < 1000000; i ++); // quick-and-dirty delay // toggle both LEDs Programiści znający mikrokontrolery LED_PORT->ODR ^= 1 << GREEN_LED_BIT | 1 << BLUE_LED_BIT; 8-bitowe mogą zauważyć, że zaprezento} } wany program różni się od analogicznych

ELEKTRONIKA PRAKTYCZNA 7/2013

081-084_st1.indd 83

83

2013-06-28 08:11:19


Kompilowanie i uruchomienie programu Podobnie jak poprzednio, do kompilacji programu użyjemy przycisku Build. Możemy zauważyć, że w porównaniu z  programem pustym nasz program jest dłuższy o ok. 50 bajtów – tyle zajmuje kod napisany przez programistę wraz z  użytymi w  nim wartościami adresów i stałych. Po pomyślnym skompilowaniu programu należy przygotować środowisko do uruchomienia programu. Czynność tę należy wykonać przy tworzeniu każdego projektów, gdyż konfiguracja dotycząca programowania pamięci i  uruchamiania programu jest zapamiętywana w pliku projektu. Po dołączeniu płytki STM32F0DISCOVERY i rozpoznaniu jej przez system z menu Flash wybieramy opcję Configure Flash Tools. W zakładce Utilities wybieramy moduł debugowania ST-Link Debugger, a  następnie otwieramy dialog konfiguracji, naciskając przycisk Settings. W  dialogu ustawień zaznaczamy opcje: Erase Sectors, Program, Verify i Reset and Run, a następnie dodajemy algorytm programowania STM32F05x Flash. Zamykamy dialog ustawień, przechodzimy do zakładki Debug w dialogu konfiguracji, wybieramy również ST-Link Debugger i zaznaczamy opcję Use.

84

081-084_st1.indd 84

Po skonfigurowaniu środowiska do pracy z modułem ST-Link możemy zaprogramować mikrokontroler przy użyciu przycisku LOAD umieszczonego na pasku narzędzi. Zaraz po zaprogramowaniu program rozpocznie działanie – diody zaczną naprzemiennie migać. Częstotliwość migania jest określona przez czas wykonania pętli opóźniającej i  wynika m.in. z  wybranego w  ustawieniach kompilatora poziomu optymalizacji kodu wynikowego. Oczywiście nie jest to poprawny sposób odmierzania czasu – ten problem rozwiążemy w następnym przykładzie.

Krok po kroku Kursy EP

przykładzie użyliśmy dwóch z nich: MODER i ODR. Rejestr MODER służy do ustawiania trybu pracy linii portu. Każdej z 16 linii portu odpowiadają dwa kolejne bity rejestru MODER, a ustawienie tych bitów na wartość binarną 01 powoduje zaprogramowanie linii portu jako wyjścia. Nasz program zawiera definicję tej wartości pod nazwą GPIO_MODER_OUT. Przy zapisie do rejestru MODER wartość ta musi być przesunięta w lewo o liczbę pozycji równą podwojonemu numerowi bitu portu. Rejestr ODR zawiera wartości wyjść. Ponieważ diody są włączone pomiędzy wyjścia mikrokontrolera i  masę, ich zaświecenie wymaga wysterowania wyjścia w  stan wysoki. Operacja różnicy symetrycznej wykonywana w pętli głównej powoduje zanegowanie stanu obu wyjść sterujących diodami i – w konsekwencji - zmianę stanu obu diod.

Klonowanie projektu Jeżeli nasz kolejny projekt bazuje na innym, już uruchomionym, zamiast tworzyć projekt od nowa możemy sklonować istniejący projekt, oszczędzając czas spędzony na konfiguracji opcji i tworzeniu plików. W celu sklonowania istniejącego projektu: • Zamykamy środowisko Keil MDK-ARM. • Kopiujemy folder istniejącego projektu. • Nadajemy nowej kopii foldera projektu nazwę nowego projektu. • Z  nowego foldera projektu usuwamy foldery Obj i Lst oraz wszystkie pliki oprócz plików źródłowych (w naszym przypadku startup_stm32f0xx.s i main.c) oraz plików z rozszerzeniami .uvproj i .uvopt. • Zmieniamy nazwy plików projektu z rozszerzeniami .uvproj i .uvopt, nadając im nazwę nowego projektu i pozostawiając ich rozszerzenia. • Uruchamiamy środowisko klikając na pliku z rozszerzeniem .uvproj. • W opcjach projektu, w zakładce Output, zmieniamy nazwę pliku wynikowego na nazwę nowego projektu. • Po zamknięciu projektu i środowiska usuwamy z folderów projektu pliki o  nazwach odpowiadających nazwie poprzedniego projektu. Po kolejnym otwarciu projektu środowisko stworzy już pliki o nazwach odpowiadających nowemu projektowi. Kolejne przykładowe projekty możemy tworzyć przez klonowanie wcześniejszych projektów.

Grzegorz Mazur gbm@ii.pw.edu.pl

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:11:19


TEST Odtwarzacz Philips DVP9000S

Odtwarzacz Philips DVP9000S Philips to firma kojarzona głównie ze sprzętem RTV i to sprzętem o  dobrej i  bardzo dobrej, jakości. Historia firmy sięga końca XIX  w. i  jest naznaczona kilkoma bardzo znaczącymi wynalazkami. Mało kto pamięta, że np. w  latach sześćdziesiątych XX wieku w  laboratoriach firmy opracowano kasetę magnetofonową. Ale pewnie wszyscy wiedzą, że cyfrowy system rejestracji dźwięku CD to efekt współpracy inżynierów Philipsa i  Sony. Audiofile też cenią sobie najnowszy standard SADC – również efekt współpracy Philipsa i  Sony. Chociaż ostatnio firma pozbyła się swojego działu półprzewodnikowego i  coraz mniej słyszy się o  urządzeniach RTV z  charakterystycznym logo firmy, to jednak ciągle można je spotkać. Przykładem jest zaawansowany, wielosystemowy odtwarzacza DVP9000S służący do odtwarzania płyt: CD, SACD oraz DVD. Urządzenia produkowane przez Philipsa zawsze miały swój charakterystyczny design. DVP9000S już na pierwszy rzut oka wygląda interesująco. Elementy na płycie czołowej zostały rozmieszczone prawie idealnie symetrycznie. Przy obu krawędziach z  lewej strony jest nietypowy okrągły wyświetlacz LCD, a  z  prawej strony również okrągły, 4-przyciskowy wybierak połączony z osią czegoś w rodzaju joysticka. Na środku umieszczono wysuwaną tackę na płyty. Całość uzupełniają małe okrągłe przyciski sterujące pracą odtwarzacza. Panel czołowy to aluminiowy profil wykończony w  technice „drapanego aluminium”. Pokrywę górną wykonano z dość grubej blachy stalowej, pomalowanej na kolor srebrny. Wszystko jest doskonale spasowane. Pokrywa górna idealnie przylega do panelu czołowego i tylnego, nie ma żadnych luzów. Obudowa urządzenia jest wykonana bardzo solidnie, a  całość jest dość ciężka. Zastosowano elementy metalowe, żadnych tworzyw sztucznych i  od razu widać, że odtwarzacz ELEKTRONIKA PRAKTYCZNA 7/2013

085-088_test.indd 85

jest przeznaczony dla wymagających użytkowników. Właściciele wysokiej klasy sprzętu audio przykładają dużą uwagę do jakości wykonania obudowy i widać, że firma postarała się, by zaspokoić ich potrzebę solidnego designu. Nas jednak bardziej będzie interesowało to, jak odtwarzacz jest wykonany wewnątrz. Było to dla mnie tym ciekawsze, że przyznam się, iż wiele razy widziałem urządzenia audio z  pięknie wykonanymi obudowami i z bardzo niechlujnym wnętrzem. Po otwarciu obudowy DVP9000S od razu widać wieloletnie doświadczenie inżynierów Philipsa w  konstruowaniu elektroniki (fotografia 1). Nie znajdziemy tu żadnej plątaniny kabli. Moduły są połączone ze sobą albo estetycznymi wiązkami kabli zakończonymi rozłączanymi złączami, albo płaskimi, emetycznymi taśmami i  specjalizowanymi zaciskanymi złączami. Funkcjonalnie odtwarzacz został podzielony na kilka modułów: • Zasilacz.

• Moduł układów audio – video. • Moduł SD5.2 zawierający dekoder DVD, kontroler SACD i sterownik napędu laserowego. • Moduł HDMI. • Napęd z laserowym czytnikiem płyt. • Moduł sterowania panelem interfejsu użytkownika (front panel).

Zasilacz Moduł zasilacza pokazano na fotografii 2. Zastosowano zasilacz impulsowy i  pewnie wielu entuzjastów techniki audio przeciera oczy ze zdumienia. Przyjęło się, że zasilacze impulsowe ze względu na zasadę działania są źródłem zbyt wielu zaburzeń EMC i dlatego nie nadają się do zasilania wysokiej klasy, niskoszumnych układów audio. Różni „guru” techniki audio wymyślają lub powielają różne, czasem bardzo kontrowersyjne układy zasilania, ale zawsze oparte na regulatorach liniowych. A  tu zastosowano zasilacz impulsowy i  to z  bardzo dobrym skutkiem, co potwierdzają pomiary, a przede wszystkim odsłuchy. Na pewno skonstruowanie takiego źródła zasilania wymagało od konstruktorów olbrzymiego doświadczenia. Moduł zasilacza jest oddalony od innych modułów odtwarzacza oraz oddzielony od nich dodatkową przegrodą wykonaną z  blachy stalowej. Układ jest oparty o  sterownik NCP1200D60 pracujący po stronie pierwotnej i dostarcza napięć: +3,3 V, +5 V, ±12 V i +24 V. Po stronie wtórnej dla napięć ±12 V zastosowano dodatkowy stabilizator składający się z  tranzystora szeregowego i  diody Zenera. Napięcie +3,3  V, które jest najbardziej obciążone układami cyfrowymi, ma dodatkowy stabilizator impulsowy oparty o sterownik scalony FP5001. Ten stabilizator

85

2013-06-28 08:11:32


TEST jest zasilany z napięcia +5 V uzyskiwanego po stronie wtórnej zasilacza.

Moduł układów audio – video Moduł układów audio – video jest wykorzystywany do wytwarzania analogowych sygnałów audio przy odtwarzaniu płyt z na-

Fotografia 1 Wnętrze odtwarzacza DVP9000S

Fotografia 2. Moduł zasilacza

Fotografia 3. Moduł układów audio-video

86

085-088_test.indd 86

graniami CD, SACD, DVD Audio i DVD Video oraz standardowych, analogowych sygnałów video dostępnych na złączu SCART i  SVIDEO (fotografia  3). Układ audio jest podzielony na kilka bloków funkcjonalnych: generator sygnału zegarowego MCLK, wielokanałowy przetwornika C/A  przeznaczo-

ny do odtwarzania dźwięku przestrzennego Dolby Digital i DTS oraz przetwornik DAC stereo. Generator sygnału MCLK jest zrobiony „na piechotę”. Zastosowano tu typowy oscylator z inwerterem 74HCU04, stabilizowany oscylatorem kwarcowym o  częstotliwości 33,86 MHz. Wielokanałowy przetwornik C/A  jest zbudowany w oparciu o układ CS4362 produkowany przez firmę Cirrus Logic. CS4362 jest 6-kanałowym przetwornikiem C/A, przy czym każdy z kanałów zawiera cyfrowy filtr interpolacyjny, wielobitowy konwerter cyfrowo – analogowy delta sigma, układ cyfrowej de emfazy i  regulacji poziomu sygnału wyjściowego oraz wstępny filtr analogowy. Inżynierowie Philipsa przyjęli, że ten przetwornik będzie przeznaczony do konwersji kanałów, które z  zasady mają mniejsze wymagania odnośnie do pasma i dynamiki (poziomu szumów). Dlatego CS4392 konwertuje na postać analogową kanały przednich i tylnych efektów przestrzennych (MAIN L/R i SURROUND L/R), kanału centralnego przeznaczonego głównie do odtwarzania dialogów (CENTER) i kanału subbasowego (SUBWOOFER). Na wyjściu kanałów przetwornika zamontowano analogowe filtry dolnoprzepustowe ze wzmacniaczami operacyjnymi. Filtry są dość rozbudowane. Oprócz funkcji filtrowania dolnoprzepustowego pełnią rolę konwerterów sygnałów różnicowych na sygnały SE. W torach kanału centralnego i subbasowego zastosowano wzmacniacz operacyjny OP275, a  w  torach kanałów MAIN i SURROUND układ NE5532. Wzmacniacze operacyjne są zasilane napięciem ±12 V blokowanym przy każdym wzmacniaczu kondensatorami 100 mF i 100 nF. Tor stereofoniczny jest wykonany oddzielnie z  użyciem stereofonicznego przetwornika CS4398. Jest to układ o  bardzo dobrych parametrach, przeznaczony do konwertowania cyfrowego sygnału PCM o rozdzielczości do 24 bitów i częstotliwości próbkowania do 192 kHz oraz sygnału DSD. Przetwornik jest znany fanom audio i  ma bardzo dobra opinię. Podobnie jak w wypadku CS4392, na wyjściu CS4398 zamontowano analogowe filtry dolnoprzepustowe ze wzmacniaczami OP275. Tu również napięcia zasilające są blokowanie parami kondensatorów 100 mF i 100 nF. Wszystkie sygnały audio są wyprowadzone na tylny panel i są dostępne poprzez złącza Cinch. Dodatkowo, sygnały MAIN L/R są wyprowadzone na odpowiednie styki złącza SCART poprzez bufory zbudowane ze wzmacniaczy LM833. Część sygnału wizji modułu audio – video zbudowano w  oparciu o  elementy dyskretne (tranzystory). Pracują one w  torach wzmacniaczy i buforów sygnałów RGB oraz zespolonego sygnału wizji CVBS, podawaELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:11:32


Odtwarzacz Philips DVP9000S nych na złącze SCART. Zespolony sygnał CVBS jest też wyprowadzany na osobne złącze Cinch umieszczone na tylnej ściance odtwarzacza. Jest dodatkowo buforowany i wzmacniany przez szerokopasmowy wzmacniacz AD8091. Oprócz wyprowadzeń analogowych sygnałów audio i video na module umieszczono gniazda dla cyfrowych sygnałów audio Coaxial (izolowany transformatorem) i Opto.

Moduł SD5.2 Jest to najbardziej skomplikowany i rozbudowany układ odtwarzacza. Pokazano go na fotografii  4. Dekodowaniem strumienia danych w  standardzie DVD odczytywanych z  płyty poprzez układ czytnika laserowego zajmuje się układ ZiVA5 produkowanym przez amerykańską firmę LSI Logic Corporation. ZiVA5 jest specjalizowanym, 32-bitowym mikroprocesorem taktowanym częstotliwością 150  MHz z  rdzeniem SPARC i  wbudowanym modułem DSP. Głównym zadaniem, które ma do wykonania jest dekodowanie standardów DVD-Video, DVD-Audio, CVD, Super VDC i  CD ROM z  obsługą MP3 lub podobnych metod kompresji. Może tez spełniać rolę dekoderów dźwięku przestrzennego Dolby Digital, DTS oraz dekodera DVD Audio o częstotliwości próbkowania do 192 kHz. Dekoduje też strumienie danych audio kompresowane w  standardach MPEG-1 i MPEG-2. Do konwersji na postać analogową sygnałów video używa pięciu wbudowanych, 10-bitowych przetworników cyfrowo – analogowych. Przetworniki mogą pracować z  częstotliwością 54  MHz. Kodek video wspiera systemy PAL, NTSC i 480p (system EDTV o podwyższonej rozdzielczości). Wyjściowy sygnał wizyjny jest kompatybilny ze standardami Macrovison 7.1.L1 (NSTC, PAL) i  Macrovison AGC1.03 (480p). Aby ułatwić pracę konstruktorom odtwarzaczy, ZiVA5 ma wbudowany port równoległy, który można oprogramować jako interfejs ATAPI do komunikacji z napędami CD/DVD. Mikroprocesor nie ma wbudowanej pamięci programu (Flash) i danych (SRAM) i dlatego musi używać zewnętrznych pamięci, które umieszczono na płytce drukowanej modułu. Kolejnym ważnym elementem jest dekoder strumienia DSD stosowanego w systemie SACD. Jak wiadomo, SACD jest standardem (opracowanym w  kooperacji firm Philips i  Sony), który miał zapewnić jeszcze wyższą jakość odtwarzania, niż jest to w wypadku standardu CD. Poza tym, nośniki SACD mogą mieścić audiofilskie nagrania wielokanałowe, gdzie każdy kanał ma wysoką jakość sygnału. Niestety, standard nie zyskał dużej popularności, głównie z  powodu niezbyt dużej oferty płyt i  wąskiej oferty odtwarzaczy. DVP9000S radzi sobie rewelacyjnie ze stereofonicznymi nagraniami SACD i  jest ELEKTRONIKA PRAKTYCZNA 7/2013

085-088_test.indd 87

Fotografia 4. Moduł SD5.2 jednym z niewielu uznanych odtwarzaczy tego standardu o stosunkowo niewygórowanej cenie. Za dekodowanie SACD jest odpowiedzialny jest układ SAA7329. Być może niska popularność SACD bierze się też z  tego, że jest to bardzo „hermetyczny” system. Poza bardzo ogólnymi informacjami nie można znaleźć żadnych szczegółów technicznych. Dotyczy to również danych układu SA7329. Standardowe przeszukanie Internetu nie dało żadnych informacji na jego temat. Wiadomo tylko tyle, że łączy się interfejsem równoległym z  układem ZiVA5 i  ma swoją pamięć DRAM.

Do sterownia laserem w napędzie optycznym jest używany układ SPS3721. Tu również nie znalazłem żadnych danych katalogowych. Wiadomo tylko, że układ steruje układami pozycjonowania lasera, ustawiania ostrości, silnikiem ładowania płyt (przesuwu tacki) i  silnikiem napędu płyty. Jako driver jest wykorzystywany układ BA5954. Mostek do sterowania silnikiem tacki jest wykonany z elementów dyskretnych (tranzystorów).

Moduł HDMI Standard złącza HDMI jest dzisiaj bardzo popularny, ale trzeba pamiętać, że w czasie projektowania odtwarzacza było to nowo-

Fotografia 5. Moduł HDMI

87

2013-06-28 08:11:35


TEST Podsumowanie

Fotografia 6. Tylna cześć odtwarzacza czesne wyposażenie. HDMI (High Definition Multimedia Interface) jest zestandaryzowanym interfejsem służącym do przesyłania cyfrowych, nieskompresowanych sygnałów audio i wideo. Ponieważ są dostępne odtwarzacze Blu-Ray mające sygnał video o  wysokiej rozdzielczości oraz monitory (telewizory) mogące wyświetlać materiał filmowy o wysokiej rozdzielczości, to HDMI w nowoczesnym sprzęcie stał się nieodzowny. Opisywany odtwarzacz może odtwarzać tylko materiał zapisany na płytach CD lub DVD, ale nawet przy niższej rozdzielczości DVD konwersja obrazu zapisanego cyfrowo na sygnał analogowy wizji powoduje jego pogorszenie. Dlatego możliwość cyfrowego przesyłania obrazu może spowodować widoczne polepszenie jego jakości. Pokazany na fotografii 5 moduł HDMI ma za główne zadanie zaimplementowanie złącza HDMI i przez to stworzenie możliwości przesłania sygnałów fonii i wizji z jak najwyższą jakością do monitora o wysokiej rozdzielczości. Główną rolę pełni w tym procesie układ FLI2310. Jest to scalony konwerter cyfrowego sygnału video. Sygnałem wejściowym może być każdy przemysłowy standard analogowego sygnału wizyjnego: 480i (NTSC), 476i(PAL/ SECAM), 470p, 720p, 1080i, oraz VGA i XGA oraz cyfrowe sygnały wizyjne w standardach: 8-bitowy Y/Cr/Cb, 8-bitowy Y/Pr/Pb i 24-bitowy RGB. Sygnałem wyjściowym jest cyfrowy strumień danych wizji o  programowanych rozdzielczościach 480p, 576i, 576p, 720p, 1080i, 1080p, lub od VGA do SXGA. Obraz może być skalowany do formatu 4:3 lub 16:9. Oprócz obsługi HDMI w  module są umieszczone układy generujące sygnały analogowe video Y, PB i Pr. Zasadniczym elementem jest tu układ ADV7310 produkowany przez Analog Devices. Zawiera on w  swojej strukturze 6 szybkich, 12-bitowych przetworników C/A  oraz cyfrowe porty równoległe z  wejściami kompatybilnymi ze standardem TTL. Dodatkowe układy umożliwiają kontrolowanie barwy, jaskrawości, oraz poziomu korekcji gamma sygnału wyjściowego. Cyfrowy sygnał wejściowy może mieć rozdzielczość od 720×480 pikseli do 1920×1080 pikseli przy 30 ramkach na sekundę. Sygnały Y, Pb i Pr są buforowane przez wzmacniacze AD8061. Tylną ściankę odtwarzacza ze złączami wyjściowymi pokazano na fotografii 6.

88

085-088_test.indd 88

Moduł sterowania interfejsem użytkownika Układowo jest to najprostszy moduł. Ma za zadanie odczytywanie stanu przycisków panelu sterującego, odczytywanie i dekodowanie sygnały z nadajnika zdalnego sterowania, wyświetlanie komunikatów na okrągłym wyświetlaczu LCD oraz wysyłanie poleceń do modułu SD5.2 poprzez interfejs I2C. Jak łatwo domyślić się, zasadniczą rolę będzie spełniał tu mikrokontroler. Do sterowani funkcjami odtwarzacza wybrano mikrokontroler 87PH48 produkowany przez Toshibę. Znalezione w sieci dane katalogowe zawierają szczątkowe informacje. Można się z nich dowiedzieć, że rdzeń mikrokontrolera jest 8-bitowy i należy do serii TLCS-870. Dokumentacja podaje, że układ może zaadresować do 64  kB pamięci w  przestrzeni liniowej von Neumana. Pamięć jest podzielona na 4 bloki: ROM, RAM, SFR (rejestry funkcji specjalnych) i  DBR (rejestry bufora danych). Mikrokontroler jest dobrze wyposażony, między innymi w przetwornik A/C, moduł PWM, UART, SPI i I2C. Na pewno są wykorzystywane porty I/O do sterownia wyświetlaczem, odczytywania stanu przycisków i sygnału z pilota RC (odbiornik TSOP2236) oraz interfejs I2C do wysyłania komend do układów odtwarzacza.

Konstrukcja odtwarzacza może stanowić wzór dla konstruktorów urządzeń elektronicznych z najwyższej półki. Bardzo dobre parametry elektryczne idą w  parze z  ciekawym wyglądem i  obudową bardzo starannie wykonaną i  z  dobrych materiałów. Do tego należy dodać nienagannie wykonane wnętrze. Jednak nie można pominąć jednej wady, która burzy ta doskonałą i  w  sumie zasłużoną opinię. DVP9000S ma duży problem z niezawodnością kluczowego elementu, pokazanego na fotografii  7 laserowego czytnika płyt DVD/SACD/CD. Czytnik potrafi odtwarzać płyty CD i  DVD jak wiele tanich napędów montowanych w komputerach PC. Jednak dodatkowo potrafi czytać hybrydowe płyty SACD. Niestety, po pewnym (jednak niezbyt długim) czasie ok. 2…3  lat średnio intensywnej eksploatacji zaczynają się problemy z  odczytywaniem płyt, niezależnie od standardu. Błędy odczytu powodują najprawdopodobniej zapełnianie się jakiegoś bufora, bo ponowne wgranie firmware dostępnego w  Internecie pomaga na jakiś czas. Jednak po kilku takich zabiegach, ten środek nie pomaga i odtwarzacz staje się tylko ładnym eksponatem. Niestety, nie można kupić nowego czytnika, tak jak jest to możliwe w  przypadku wielu nawet starych odtwarzaczy CD różnych firm. Szkoda, bo jest to moim zdaniem jeden z nielicznych przykładów klasycznego, solidnego podejścia do konstruowania sprzętu powszechnego użytku i wyróżnia się na tle wszechobecnej, elektronicznej tandety. Na koniec należy dodać, że odtwarzacz opisujemy jako ciekawostkę, ponieważ nie jest już produkowany.

Tomasz Jabłoński, EP

Fotografia 7. Czytnik laserowy ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:11:36


Krok po kroku Kursy EP

Podstawy programowania w LabView (4) Operacje na zmiennych znakowych, pliki tekstowe, zasady tworzenia wykresów Do tej pory poznaliśmy środowisko programistyczne, podstawowe elementy języka programowania graficznego, pracę z  tablicami i  złożony typ jakim jest Klaster Danych. W  tej części zajmiemy się pracą ze zmiennymi znakowymi, obsługą plików tekstowych oraz zasadami tworzenia wykresów. Operacje na zmiennych znakowych należą do jednych z najczęściej wykonywanych. Gdyż jest to czytelny dla ludzi sposób przekazania informacji. W postaci wymiany komunikatów tekstowych często przebiega komunikacja pomiędzy komputerem i podłączonym do niego urządzeniem pomiarowym. Komunikaty te zwykle zgodne są z językiem SCPI. Dlatego operacjom na zmiennych znakowych należy poświęcić trochę uwagi. W LabView zmienne znakowe określane są jako typ String oznaczający łańcuch znaków. Do jego obsługi przygotowano paletę String.

Paleta funkcji String Wszystkie niezbędne funkcje zostały zgromadzane w palecie String pokazanej na rysunku 38. Oprócz podstawowego zestawu funkcji znajdziemy tam trzy dodatkowe palety: • Additional String Functions zawierającą dodatkowe funkcje operujące na tekście. • String Number Conversion zawierającą funkcje konwertujące dane tekstowe do numerycznych. • String/Array/Path Conversion zawierającą funkcje do konwersji typu string na Path, czyli ścieżkę dostępu do pliku, tablicę i odwrotnie.

String Length – zwraca liczbę znaków w tekście. string – badany tekst, może to być tablica tekstowa, klaster danych tekstowych, lub tablica klastrów danych tekstowych. length – liczba znaków w tekście, struktura zmiennej jest taka sama jak wejściowej string.

Concatenate Strings - łączy teksty wejściowe i jednowymiarowe tablice tekstowe w  jeden tekst, zmiany liczby wejść można dokonać przez rozciągnięcie funkcji lub kliknięcie prawym klawiszem myszy i wybranie Add Input lub Remove Input. string 0..n-1 – wejścia zmiennych tekstowych , lub tablice tekstowe. concatenated string – tekst wynikowy.

String Subset zwraca fragment tekstu o podanej długości od wybranego znaku. string – tekst wejściowy. offset określa, od którego znaku należy rozpocząć odliczanie elementów. Gdy wejście nie jest dołączone lub wartość jest ujemna, domyślnie funkcja przyjmuje 0. length określa, ile znaków z tekstu chcemy pobrać. Jeśli wejście nie zostanie dołączone, funkcja poprzyjmuje domyślnie, że jest to długość tekstu wejściowego minus wartość offset.

Replace Substring wstawia usuwa lub zamienia tekst substring o określonej długości w string. Jeśli substring jest pusty, z tekstu string zostanie usunięty fragment o  długości length od miejsca wskazanego przez offset. W  przypadku, gdy length jest równy zero, substring zostanie wstawiony w  miejsce określone przez offset. string – tekst wejściowy poddawany modyfikacji. substring – tekst który zostanie wstawiony w miejsce określone przesz offset. offset – określa, od którego znaku należy wykonać wstawienie. length – określa ile znaków w tekście string należy zamienić na substring. result string – tekst wynikowy. replaced substring – tekst, który został zamieniony, lub usunięty.

Search and Replace String zamienia, usuwa jedno lub wszystkie wystąpienia wzorca. Gdy replace string jest pusty, szukany wzorzec zostaje usunięty. input string – tekst wejściowy. search string – szukany wzorzec. replace string – tekst, w którym należy zamienić wzorzec.

Rysunek 38. Paleta funkcji String

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 89

89

2013-06-28 08:11:51


String % 0 WidthString .

ConvChar

tekst nie podlegający zmianie (opcjonalnie) po tym znaku następują znaki formatujące. wyrównanie lewostronne brak znaku oznacza wyrównanie prawostronne (opcjonalnie) dopełnienie zerami z lewej strony, brak oznacza dopełnienie spacjami (opcjonalnie) określa minimalną liczbę znaków (opcjonalnie) oddziela liczbę określającą ilość znaków od liczby określającej precyzję Znak formatujący określa typ danych d – oznacz liczbę całkowitą x - oznacza liczbę szesnastkową o  – oznacza liczbę ósemkową f – oznacz liczbę stałoprzecinkową e, g – oznaczają liczby zmiennoprzecinkowe.

offset – określa pozycję, od której rozpoczyna się wyszukiwanie. result string – wynikowy tekst. number of replacements – liczba zamienionych znaków. offset past replacement – wskazuje pozycję pierwszego znaku po ostatnim zamienionym wzorcu. replace all? – określa czy zamienić wszystkie, czy tylko pierwsze wystąpienie wzorca. Niepodłączenie wartości jest uznawane jako False i powoduje zastąpienie tylko pierwszego wystąpienia wzorca.

Match Pattern to funkcja, która wyszukuje w podanym tekście wzorzec określony w  regular expression. Zwraca tekst przed jego wystąpieniem, wzorzec i pozostały tekst. Wskazuje pozycję pierwszego znaku w tekście po wystąpieniu wzorca. Jeśli szukany tekst nie został odnaleziony, funkcja zwraca w offset past match wartość -1, a wyjścia match substring, after substring są puste. Wzorzec może zawierać znaki specjalne pozwalające uogólnić wyszukanie. string – przeszukiwany tekst. regular expression – szukany wzorzec. offset – pozycja znaku, od którego należy rozpocząć przeszukiwanie. before substring – tekst przed wystąpieniem wzorca. match substring – wzorzec. after substring – tekst po wystąpieniu wzorca. offset past match – pozycja następnego znaku po znalezionym wzorcu.

initial scan location – pozycja, od której rozpoczyna się skanowanie. default 1..n – domyślne wartości dla każdego z typów. W  przypadku nieoczekiwanych danych wartości te zostaną zwrócone domyślnie. remaining string – pozostały tekst. offset past scan – wskazuje na następny znak po przetworzonym tekście. output 1..n – wyjścia danych właściwego typu.

Krok po kroku Kursy EP

Tabela 1. Opis znaków formatujących, dotyczy funkcji Scan From String i Format Into String

Format Into String przetwarza różne typy danych do postaci znakowej. Formatowanie odbywa się zgodnie ze wzorcem formatowania, składnia opisana poniżej. Możliwe jest formatowanie więcej niż jednego typu jednocześnie. Podobnie jak w Scan From String znaki formatujące można przygotować korzystając z okna edycji. format string – wzorzec formatowania [String]%[-][0] [WidthString][.PrecString]ConvChar[String]. initial string – opcjonalny tekst wejściowy. input 1..n – zmienne wejściowe. resulting string – sformatowany tekst wynikowy. Znaki sterujące formatowaniem (umieszczane we wzorcu formatowania) wymieniono w tabeli 1.

Pick Line (funkcja z palety Additional String Functions) – pozwala wybrać odpowiednią linie tekstu. Tekst musi być rozdzielony znakiem nowej linii. string – tekst wejściowy (opcjonalnie). multi-line string – wybierane linie tekstu. line index – numer wybranej linii. output string – tekst wynikowy.

Append True/False String (funkcja z palety Additional String Functions) – zależnie od wartości selector na wyjście przekazuje wartość true string lub false string. string – wejściowy tekst (opcjonalnie). true string – tekst zwracany, gdy wartość selector jest równa TRUE. false string – tekst zwracany, gdy wartość selector jest równa FALSE. selector – wybór aktywnego wejścia. output string – tekst wyjściowy.

Przykład użycia funkcji z palety string Scan From String zamienia wartości zapisane w podstacji tekstowej na właściwy typ danych, zgodnie z wzorcem formatowania. Nie znając dokładnie składni znaków formatujących można przygotować je korzystając z okna edycji. Pozwala ono na wybranie odpowiedniego formatu danych za pomocą myszki. Funkcja umożliwia jednoczesne formatowanie wielu zmiennych. format string – wzorzec formatowania [String]%[-][0] [WidthString][.PrecString]ConvChar[String]. input string – tekst wejściowy.

90

Przykładowy program ma za zadanie przygotowanie polecenia programującego przyrząd. Wymiana komunikatów pomiędzy urządzeniami pomiarowymi i komputerem odbywa się często za pomocą komunikatów tekstowych zgodnych z standardem języka SCPI. Na potrzeby przykładu założymy, że pewne urządzenie akceptuje polecenie w następującej postaci: „SET:VOLTAGE:parametr:wartość”, gdzie: Parametr - przyjmuje jedną z dwóch wartości AC lub DC.

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 90

2013-06-28 08:11:51


Krok po kroku Kursy EP

musimy określić, który znak oddziela część dziesiętną od całkowitej. Robimy to wpisując %.; następnie formatujemy wartość do postaci numerycznej %6f, ostatni znak informujący o jednostce %1s. Gotowy program powinien wyglądać jak na rysunku 39. Wartości nastawiane w kontrolce Wartość powinny być takie same, jak otrzymywane po lewej stronie w Wartość numeryczna. W praktyce możemy spotkać się z wieloma rodzajami plików. Ich struktura jest zależna od programisty. LabView udostępnia obsługę wielu typów plików binarnych, oferujących większe upakowanie, plików tekstowych, i specyficznych typów np. pliki archiwum zip. Funkcje do ich obsługi zgromadzone zostały w palecie File I/O. Rysunek 39. Przykład przygotowujący i analizujący polecenie programujące wartość – jest napięciem z przedziału 0…10 V i powinna mieć postać XX.XXX. Zakładamy, że liczba określająca wartość musi mieć stała długość, część dziesiętna od całkowitej jest oddzielona kropką, stosujemy dopełnienie zerami, np. 01.220, 10.000. Dodatkowo przyjmujemy że urządzenie odpowie takim samym komunikatem. Który należy przeanalizować i  odczytać parametr, wartość numeryczną i  jednostkę. Aby nie mnożyć przykładów zrobimy to na tym samym diagramie. Po analizie komunikatu powinniśmy otrzymać dokładnie takie wartości jak zadane. Sterowanie wartością parametru zrealizujemy za pomocą przycisku. Po jego wstawieniu na panelu czołowym wybieramy Properties i w oknie Appearance zaznaczamy Multiple string. W polu On text wpisujemy AC a Off text, DC. W oknie Operation wybieramy Switch when pressed. Możemy nazwać kontrolkę na przykład Parametr. Nastawianie wartości możemy zrealizować dowolną kontrolką numeryczną np. Knob i  nazwać ją Wartość. Pierwsza część komunikatu jest niezmienna, więc możemy wpisać ją w  stałą tekstową. Wstawienie właściwego parametru zrealizujemy za pomocą funkcji Append True/False String współpracującą z  naszym przyciskiem. Pozostałą część komunikatu przygotujemy korzystając z  funkcji Format Into String. Właściwy format liczby można skonfigurować wpisując w stałą podłączoną do wejścia format string odpowiedni tekst formatujący lub po dwukrotnym kliknięciu myszką na funkcji ustawić go w  oknie konfiguracyjnym. Po jego zamknięciu na diagramie pojawi się stała z odpowiednim tekstem formatującym. Po połączeniu wszystkich elementów tak jak na rysunku  39 (części A  po lewej stronie diagramu) możemy przetestować fragment odpowiedzialny za przygotowanie polecenia. Pozostała jeszcze analiza komunikatu. Ponieważ jest on nieskomplikowany, to w zasadzie do jego analizy wystarczy tylko jedna, odpowiednio skonfigurowana funkcja Scan From String. Zauważmy, że długość komunikatu jest stała i wszystkie jego składowe zawsze zajmują te same pozycje. W pierwszej kolejności odczytamy stałą część komunikatu czyli „SET:VOLTAGE:”. Odpowiada za to fragment kodu formatującego %12s (zwraca pierwsze dwanaście znaków), następnie wartość parametru %2s (kolejne dwa znaki), później zbędny separator %1s. Teraz

Wybrane funkcje palety File I/O Na rysunku 40 zaprezentowano paletę funkcji File I/O. Zgromadzono w niej funkcje pozwalające nie tylko na zapis i odczyt plików, ale również na kopiowanie, usuwanie, kompresję itp. Skupimy się tylko na plikach.

Write to Text File zapisuje do pliku tekstowego tekst lub tablicę tekstową. Kolejne elementy tablicy zapisywane są w nowych liniach. Jeśli nie podamy ścieżki dostępu do pliku, wyświetli się nam okno dialogowe, w  którym można wskazać miejsce zapisu i  nazwę pliku. Trzeba pamiętać, aby dodać rozszerzenie. prompt – tekst wyświetlony w  górnym pasku okna dialogowego (opcjonalnie). file – ścieżka dostępu do pliku (opcjonalnie). text – wejściowy tekst lub tablica tekstowa. refnum out – wartość może być przekazana do innych funkcji wykonujących dalsze operacje na pliku. cancelled – zwraca wartość FALSE, gdy prawidłowo wpisano ścieżkę dostępu do pliku lub TRUE, gdy ścieżka nie została wybrana.

Read from Text odczytuje dane z pliku tekstowego. Korzystając ze zmiennej count można określić, ile znaków chcemy odczytać. Wartość „-1” oznacza odczyt całego pliku. Funkcja – podobnie jak poprzednia – w przypadku braku ścieżki dostępu otwiera okno dialogowe umożliwiające wskazanie pliku. prompt – tekst wyświetlony w  górnym pasku okna dialogowego (opcjonalnie). file (use dialog) – ścieżka dostępu do pliku (opcjonalnie). count – określa, ile znaków chcemy odczytać z pliku. refnum out – wartość może być przekazana do innych funkcji wykonujących dalsze operacje na pliku. text – odczytany tekst. cancelled – zwraca wartość FALSE, gdy prawidłowo wpisano ścieżkę dostępu do pliku, natomiast Rysunek TRUE, gdy ścieżka nie została wybrana. 40. Paleta funkcji File I/O

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 91

91

2013-06-28 08:11:51


Strip Path wyodrębnia ze ścieżki dostępu ostatni element i zamienia go na typ znakowy. path – wejściowa ścieżka dostępu. stripped path – ścieżka dostępu pozbawiona ostatniego elementu. name – wyłuskany element.

List Directory (z palety Advanced File VIs and Functions) zwraca listę plików i folderów w katalogu określonym w ścieżce path. path – ścieżka dostępu do badanego katalogu. pattern – wzorzec pozwalający odfiltrować nazwy np. *.txt pozwoli na zwrócenie tylko listy plików tekstowych. filenames – lista plików w wskazanym katalogu. folder names – lista folderów w wskazanym katalogu. Path To String (z palety Advanced File VIs and Functions) konwertuje ścieżkę dostępu do typu znakowego zachowując jej strukturę. path – wejściowa ścieżka dostępu. string – wynik konwersji. String To Path (z palety Advanced File VIs and Functions) – konwertuje ścieżkę dostępu zapisaną w  postaci tekstowej do odpowiedniego typu. String – ścieżka dostępu w postaci znakowej. ępu po ko konwe nwers rs na właściwy typ. Path – ścieżka dostępu konwersji Path to Array of Strings (z palety Advanced File VIs and Functions) – konwertuje ścieżkę dostępu do tablicy tekstowej, w  której elementy są kolejnymi elementami tablicy. path – ścieżka dostępu. relative – sygnalizuje czy jest ścieżka względna czy bezwzględna. array of strings – wynikowa tablica tekstowa.

Refnum to Path (z palety Advanced File VIs and Functions) – konwertuje typ refnum do odpowiedniej ścieżki dostępu. refnum – jest wskazaniem na otwarty plik. path – ścieżka dostępu związana z refnum. Current VI’s Path (z palety File Constants) – zwraca ścieżkę dostępu do pliku w którym jest umieszczona.

Przykład obsługi plików tekstowych

Krok po kroku Kursy EP

Build Path tworzy ścieżkę dostępu zamieniając dane tekstowe z wejścia Name or relative path na opis ścieżki i dołączając je po ścieżce base path. base path – podstawowa ścieżka dostępu (opcjonalnie). name or relative path – nazwa pliku, folderu lub ścieżka dostępu. appended path – wynikowa ścieżka dostępu.

Przygotujemy program wykorzystujący funkcje z palety File I/O, jego zadaniem jest. Zapis do pliku tekstowego dowolnego tekstu z dodanym na początku numerem linii. Utworzenie pliku tekstowego w tym samym katalogu, co program. Odczytanie zawartości pliku. Podzielenie odczytanego tekstu na linie i umieszczenie ich w kolejnych komórkach tablicy. Punkty 1 i  4 zostały dodane w  celu przećwiczenia operacji na zmiennych tekstowych. Można je pominąć i wykonać tylko czynności z punktów 2 i 3. Tworzenie programu rozpoczynamy od przygotowania tekstu zapisywanego do pliku. Dla uproszczenia przyjąłem, że zawartość każdej z linii będzie taka sama, a na jej początku zostanie dodany numer. Liczba linii też jest stała i  określona liczbą iteracji pętli. Tekst zawarty w każdej z linii jest pobierany z kontrolki Tekst. W pętli For funkcja Format Into String zamienia numer iteracji na zmienną tekstową, która jest dopisywana na początku każdej z linii za pomocą Concatenate Strings. Na końcu jest dopisany znak końca linii. Gotowy do zapisu tekst można zobaczyć we wskaźniku Tekst do Zapisu. Plik zapisany zostanie w  tym samym katalogu, co nasz program. Korzystając z  Current VI’s Path określamy, gdzie znajduje się program. Otrzymujemy ścieżkę dostępu do programu. UWAGA! Program przed uruchomieniem należy zapisać na dysku, ponieważ Current VI’s Path nie zwróci ścieżki dostępu. Za pomocą Strip Path odcinamy nazwę programu. Funkcją Build Path dodajemy nazwę pliku tekstowego wraz z  rozszerzeniem.

Array of Strings to Path (z palety Advanced File VIs and Functions) – konwertuje elementy tablicy tekstowej do ścieżki dostępu. Wejście relative pozwala na określnie czy jest to ścieżka względna, czy bezwzględna. relative – wartość FALSE jest domyślną i  oznacza, że ścieżka dostępu jest bezwzględna, natomiast TRUE oznacza ścieżkę względną. array of strings – tablica tekstowa zawierająca kolejne elementy ścieżki dostępu. path – wynikowa ścieżka dostępu właściwego typu. Rysunek 41. Przykład operacji na plikach

92

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 92

2013-06-28 08:11:51


Krok po kroku Kursy EP

Możemy wygenerować na panelu czołowym wskaźnik wyświetlający miejsce zapisu pliku. Ja nazwałem go Ścieżka dostępu. Przed zapisem należy korzystając z funkcji Open/Create/Replace File określić sposób edycji jako replace or create, gdyż w przeciwnym wypadku każdy zapis do pliku będzie skutkował dopisaniem nowego tekstu na końcu istniejącego. Sam zapis realizuje Write to Text File. Klikając na niej prawym przyciskiem myszy w menu lokalnym trzeba odznaczyć opcję Convert EOL. Odczyt z pliku realizuje Read from Text File, wartość -1 na wejściu count oznacza, że czytamy całą zawartość pliku. Tutaj również należy odznaczyć Convert EOL. Odczytany tekst jest przekazany do pętli, w  której Match Pattern wyszukuje znak końca linii i  poprzedzającą go część przesyła do tunelu wyjściowego pętli. Pozostały tekst jest przesyłany do Feedback Node i  analizowany w  kolejnej iteracji. Cały program przedstawia rysunek 41.

Zasady tworzenia wykresów

Rysunek 42. Przykłady tworzenia wykresów Dlatego skupię się tylko na odpowiednim przygotowaniu danych. Przykłady tworzenia wykresów Waveform Chart pokazano na rysunku 42.

Jednym z elementów przetwarzania danych jest ich wizualizacja. Najłatwiejszym i  najbardziej czytelnym sposobem jest przedstawienie ich w  postaci wykresów. LabView daje możliwość przedstawienia danych na wykresach przebiegów, XY trójwymiarowych, intensywności, wykresach kołowych i  innych. Przedstawię tutaj zasady tworzenia tylko podstawowych i najczęściej używanych wykresów. Wszystkie wykresy zgromadzone zostały na panelu czołowym w palecie Graph. Po umieszczeniu w oknie panelu odpowiedniego wykresu należy przejść na diagram i  wykonać połączenie zacisku ze źródłem danych o  odpowiednim formacje. Format danych zależy od typu wykresu i sposobu wykreślania, co zostało opisane poniżej.

Waveform Graph, podobnie jak Waveform Chart, prezentuje przebiegi, w których na osi poziomej znajduje się numer próbki lub czas. Różnica polega na tym, że tutaj od razu jest wyświetlany cały przebieg. Do zacisku wejściowego należy przesłać tablicę zawierającą wszystkie punkty przebiegu. Możliwe jest wyświetlenie jednego lub więcej przebiegów w jednym oknie. Tabela 3 opisuje sposób wyświetlania w  zależności od typu danych. Na rysunku 42 pokazano przykłady tworzenia wykresów Waveform Graph wyświetlających pojedynczy i podwójny przebieg.

Wykres Waveform Chart

Wykres – XY Graph

Waveform Chart jest najprostszym z wykresów. Służy do wyświetlania aktualnie zbieranych danych, wejście akceptuje wartość skalarne które w miarę napływania dorysowywane są na wykresie i gromadzone w wewnętrznej tablicy. Wykreślany może być jeden lub wiele przebiegów jednocześnie. Zależnie od typu dostarczanych danych. W  tabeli 2 przedstawiono sposób wyświetlania przebiegów w zależności od typu danych. Wykres akceptuje też specjalny typ danych reprezentujący przebiegi czasowe Waveform Data Type w skrócie WDT. Struktura jest podobna do klastra danych zawiera informację o czasie początkowym przebiegu (x0), odstępie czasowym pomiędzy próbkami (dt) i  tablicę próbek (Y). Na osi x może znajdować się czas lub numery próbek. Każdy z  wykresów pozwala na konfigurowanie wielu opcji większość z nich jest dostępna w menu lokalnym,

XY Graph przedstawia wartości funkcji w kartezjańskim układzie współrzędnych. Dane wejściowe zawierają dwie tablice zgrupowane w klaster danych, pierwsza zawiera wartości dla osi X a druga dla osi Y. Podobnie jak na poprzednich wykresach można wyświetlić jednocześnie więcej niż jedną funkcję wówczas klastry danych należy zgrupować w tablicę. Przykład pokazano na rysunku 42.

i taka sama dla części wykresów są to np. kolory przebiegów styl linii, grubość linii, rodzaj punktów, automatyczna zmiana skali oddzielnie dla każdej osi, typ osi liniowy logarytmiczny i wiele innych. Dostęp do wszystkich tych opcji jest możliwy również w  sposób programowy. Na szczegółowy opis wszystkich opcji nie ma tutaj miejsca.

Wykres - Waveform Graph

Tabela 2. Sposób wyświetlania przebiegów w zależności od typu danych Rodzaj danych Skalar Tablica 1D Tablica 2D Klaster danych WDT

Sposób wyświetlania 1 przebieg - 1 punkt 1 przebieg - 1 lub więcej punktów kilka przebiegów – 1 lub więcej punktów kilka przebiegów – 1 lub więcej punktów 1 przebieg - 1 lub więcej punktów

Tabela 3. Sposób wyświetlania w zależności od typu danych Rodzaj danych Tablica 1D Tablica 2D WDT

Sposób wyświetlania 1 przebieg kilka przebiegów w jednym oknie 1 przebieg

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 93

93

2013-06-28 08:11:51


Aby pokazać jak przygotować dane dla poszczególnych wykresów, zrobimy program liczący funkcje sinus i cosinus oraz przedstawimy je na powyżej scharakteryzowanych wykresach. Funkcje trygonometryczne operują na mierze łukowej dlatego korzystamy z  radianów a  nie stopni. Na początku wyznaczamy krok a następnie w każdej z iteracji obliczamy wartość funkcji dla kolejnych wartości kąta. Wykorzystaną tutaj funkcję Sine & Cosine znajdziemy w palecie Mathematic  Elementary & Special Functions  Trigonometric Functions. Proponuje dodać opóźnienie czasowe, aby zobaczyć jak jest wykreślany przebieg Waveform Chart. Dla każdego z wykresów przedstawiono dwa przypadki, gdy jest wyświetlany jeden przebieg oraz dwa przebiegi. Wykresy Waveform Chart znajdują się wewnątrz pętli, podczas każdego jej obiegu dorysowują jedną wartość. Aby uzyskać tylko jeden przebieg wystarczy przekazać wartość wprost z funkcji, dla uzyskania dwóch wykresów wartości funkcji sinus i cosinus zostały połączone w klaster danych przekazany do Waveform Chart 2 przeb. Podobnie wygląda sytuacja z Waveform Graph. Do uzyskania jednego przebiegu wystarczy przekazanie tablicy jednowymiarowej. Natomiast, aby wyświetlić dwa przebiegi, trzeba przekazać tablicę dwuwymiarową. Wykresy umieszczone są na zewnątrz pętli, gdzie dostępne są wszystkie wartości. Również wykres XY Graph musi być umieszczony poza pętlą, ponieważ dane dla każdej z  osi muszą być zgromadzone w  tablicach. Zwróćmy uwagę na sposób grupowania danych dla XY Graph 1 przeb. Zostały one zgrupowane w klaster wewnątrz pętli i w ten sposób uzyskaliśmy tablicę klastrów będących parami wartości dla osi X oraz Y. Właściwe jest również zgrupowanie danych poza pętlą – wówczas otrzymamy klaster danych zawierający dwie tablice przechowujące wartości X i Y. W obu przypadkach przebiegi zostaną wyświetlone poprawnie.

Wykres - Digital Waveform Graph Digital Waveform Graph jest odmiennym rodzajem wykresu. Jest przeznaczony do wyświetlania bitowej reprezentacji cyfrowych przebiegów. Dane wejściowe mają postać klastra danych. Na pierwszej pozycji znajduje się liczba opisująca czas początkowy x0, odstęp czasowy pomiędzy próbkami dx, tablicę danych, liczbę opisującą szerokość danych. Przyjęto że podstawowa szerokość wynosi 8 bitów. Dla liczby 8-bitowej podajemy 1, 16-bitowej 2 itd. Rysunek 43 przedstawia przykładowe przebiegi.

Sterowanie właściwościami elementów panelu czołowego Property Node daje możliwość sterowania właściwościami obiektów panelu czołowego. Mogą one być zarówno zapisywane, jak i odczytywane. Aby wstawić Property Node na diagramie należy z menu lokalnego danego elementu wybrać Create  Property Node  Value (odpowiedni atrybut na przykład Value). Zacisk możemy rozciągać za pomocą myszki, tak aby mieć dostęp jednocześnie do większej liczby atrybutów. Mogą być one mieszane, czyli jednocześnie możemy część z  nich zapisywać, a  część odczytywać. Najeżdżając

94

Rysunek 43. Przykładowy wykres Digital Waveform Graph

Krok po kroku Kursy EP

Przykłady tworzenia wykresów

myszką na wybrany atrybut, po pojawieniu się „rączki” i kliknięciu, rozwinie się lista dostępnych atrybutów, z której wybieramy odpowiedni. Domyślnie większość ma zacisk z prawej strony pozwalający na odczytywanie właściwości. Klikając prawym klawiszem myszki z menu lokalnego należy wybrać Change To Write, gdy chcemy zapisywać wartość atrybutu. Wówczas zacisk pojawi się z lewej strony. Zmiana odwrotna jest możliwa po wybraniu Change To Read. Takiej samej zmiany można dokonać jednocześnie dla całej grupy atrybutów wybierając odpowiednio Change All To Write albo Change All To Read. Na rysunku 44 pokazano przykładowe zaciski dla dwóch różnych kontrolek wykresu i  przycisku. Część właściwości jest taka sama np. Value (wartość), Visible (widoczność elementu). Część jest specyficzna dla danej kontrolki np. PlotArea Size (wielkość obszaru aktywnego wykresu), część jak Val(sgnl) może być tylko zapisywana. Wszystkich właściwości jest zbyt dużo, aby je opisać. Myślę że ich nazwy są dość czytelne i  sugerują czego dotyczy dany atrybut. Ponadto, klikając prawym przyciskiem myszy na wybranym atrybucie, w rozwiniętym menu lokalnym znajdziemy opcję pozwalającą na otwarcie okno pomocy danej właściwości np. Help For Value. Są tam wszystkie niezbędne informacje.

Przykład sterowana oknem wykresu Waveform Graph Przykładowy program wyświetla funkcję sinus i kosinus na wykresie Waveform Graph. Korzystając z Property Node określimy: nazwy przebiegów, styl punktów jednego z przebiegów, nazwę osi X oraz kolor tła. Diagram odpowiedniej funkcji przedstawia rysunek 45. Obliczenie funkcji sinus i cosinus zrealizowano tak samo, jak na przykładzie z rysunku 42. Wynik został wyświetlony na wykresie Waveform Graph. Klikając na ikonie wykresu należy z menu lokalnego wybrać Create  Property Node  Active Plot. Na diagram zostanie wstawiony zacisk z pierwszym atrybutem. Korzystając z  myszki należy rozciągnąć go tak, aby widoczne było siedem atrybutów. Klikając myszką na każdym z  nich, gdy jest widoczna „rączka” należy z listy wybrać odpowiednie atrybuty Rysunek 44. zgodnie z  kolejnością widoczną Przykładowa na rysunku  45. Niektóre z  nich lista właściwości zostały pogrupowane zgodzie wykresu Waveform z elementem, którego dotyczą np. Chart i przycisku Plot.Name oznacza, że należy szu- Boolean

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 94

2013-06-28 08:11:51


Krok po kroku Kursy EP

kać w grupie Plot pod nazwę Name. Kropli widoczne w nazwach właściwości oznaczają kolejne grupy. Jeśli terminale połączeniowe znajdują się z  prawej strony, należy z  menu lokalnego wybrać Change All To Write i połączyć wszystko, jak pokazano na rysunku 45. Kontrolka Plot Area:Colors:BG Color pozwala na wybranie kolor z palety barw za pomocą myszki. Znajduje się w palecie Numeric pod nazwą Framed Color Box. Można ją zastąpić zwykłą zmienną numeryczną, ale określenie koloru będzie trudne. W każdej iteracji pętli rysowany jest wykres i ustawiane wybrane właściwości WaveForm Graph. Property node wykonuje się następująco: Active Plot=0 – ustawia pierwszy wykres aktywnym, wszystkie właściwości dotyczące przebiegu będą dotyczyły właśnie pierwszego wykresu. Plot Name=Sin – określa nazwę pierwszego przebiegu. Active Plot=1 – drugi wykres jest aktywny. Plot Name=Cos – określa nazwę drugiego przebiegu. Point Style =1 – określa rodzaj punktów wykresu. XScale.NameLbl.Text = Kąt – ustawia opis osi X. BG Color – określa kolor tła okna wykresu. Oczywiście umieszczenie Property Node bezpośrednio w pętli nie jest dobrym rozwiązaniem. Najlepiej wywoływać je tylko wtedy, gdy zachodzi konieczność zmiany lub sprawdzenia określonych właściwości. W przeciwnym razie niepotrzebnie zajmuje czas procesora.

Rysunek 45. Przykład zastosowania Property Node do sterowania właściwościami wykresu

Podsumowanie W tej części poznaliśmy operacje na danych tekstowych, plikach, zasady tworzenia wykresów oraz sterowanie właściwościami elementów panelu czołowego. Do tej pory przygotowywane przez nas programy mieściły się na jednym diagramie. W  kolejnej części nauczymy się pracy z  menedżerem projektów, definiowania wejść i  wyjść funkcji. Napiszemy prostą grę bitwa morska przechodząc wszystkie etapy tworzenia aplikacji, aż po wygenerowanie pliku exe.

Wiesław Szaj wszaj@prz.edu.pl

ELEKTRONIKA PRAKTYCZNA 7/2013

089-095_labview(4).indd 95

95

2013-06-28 08:11:51


Łatwa obsługa interfejsu I2C Moduł peryferyjny I2C (Typ0) układów procesorowych F2802x/3x Piccolo jest bardzo rozbudowany. Aby go skutecznie zastosować trzeba dobrze zrozumieć jego konstrukcję i zasadę działania. W  artykule jest opisane ćwiczenie praktyczne z  zastosowaniem biblioteki driverlib pakietu programowego controlSUITE v.3.x oraz środowiska Code Composer Studio v5.x i  zestawu ewaluacyjnego C2000 Piccolo LaunchPad. Celem ćwiczenia jest poznanie i  zastosowanie obsługi modułu peryferyjnego I2C układu procesorowego serii F2802x Piccolo. Do tworzenia w środowisku CCSv5 programów przeznaczonych dla procesorów rodziny F2802x Piccolo jest potrzebny pakiet programowy controlSUITE. Zawiera on oprogramowanie firmware, biblioteki, opisy zestawów sprzętowych oraz projekty przykładowe dla wszystkich serii procesorów rodziny C2000. Użyto przykładowego programu z projektu Example_ F2802xI2C_eeprom pakietu controlSUITEv3.x. Ćwiczenie jest zorganizowane tak, że działania są wykonywane w kolejnych punktach i krokach uzupełnionych o szczegółowe opisy. Do wykonania ćwiczenia jest potrzebny komputer z zainstalowanym (darmowym) oprogramowaniem: • Środowisko Code Composer Studio v5.3.0 firmy Texas Instruments [2, 4, 8, 9, 11]. Umożliwia tworzenie programów przeznaczonych dla procesorów serii Piccolo TMS320F2802x. • Pakiet programowy controlSUITE v3.2 firmy Texas Instruments [2, 4, 8, 9, 11]. Zawiera oprogramowanie „firmware”, biblioteki, opisy zestawów sprzętowych oraz projekty przykładowe dla wszystkich serii procesorów rodziny C2000. Platforma sprzętowa obejmuje następujące elementy: • Zestaw ewaluacyjny C2000 Piccolo LaunchPad firmy Texas Instruments z  układem procesorowym Piccolo TMS320F28027 firmy Texas Instruments (zawiera kabel USB-A USB-mini) [1, 7]. • Moduł sprzętowy KAmodEXP2 firmy Kamami [13] z  układem scalonym MCP23008 ekspandera szyny I2C firmy Microchip [15]. • Przewody połączeniowe, standard złącza IDC (np. CAB_A firmy Kamami) [14]. Instalowanie i  użytkowanie środowiska CCSv5 oraz pakietu programowego controlSUITEv3 zostało opisane w artykule [2]. W folderze C:\home_dir komputera zostanie utworzony nowy folder work_I2C. Wymagane są prawa dostępu (zapisu i modyfikacji) dla tej ścieżki dyskowej. Możliwe jest umieszczenie foldera home_dir na innym wolumenie dyskowym z prawami dostępu.

Opisy Dane techniczne i parametry elektryczne modułu peryferyjnego I2C układu procesorowego serii F2802x

96

Krok po kroku Kursy EP

C2000 Piccolo LanuchPad (5)

Dodatkowe informacje: Dotychczas w EP na temat zestawu ewaluacyjnego C2000 Piccolo LaunchPad: • „Zestaw ewaluacyjny C2000 Piccolo LaunchPad”, EP 01/2013 • „C2000 Piccolo LanuchPad (1) – Pierwszy program w  środowisku programowym CCS v5”, EP 02/2013 • „C2000 Piccolo LanuchPad (2) – Łatwe programowanie z  pakietem controlSUITE”, EP 03/2013 • „C2000 Piccolo LanuchPad (3) – Łatwe programowanie do pamięci Flash”, EP 04/2013 • „C2000 Piccolo LanuchPad (4) - Łatwa obsługa szyny SPI”, EP 05/2013 Pliki źródłowe (CD/FTP): ftp://ep.com.pl, user: 52617, pass: 30lct328 Piccolo_F2802x_KAmodEXP2.c, Piccolo_F2802x_KAmodEXP2.h oraz Example_2802xI2C_KAmodEXP2.c

Piccolo są zamieszczone w dokumencie Texas Instruments TMS320F28027, TMS320F28026, TMS320F28023, TMS320F28022, TMS320-F28021, TMS320F280200, Piccolo Microcontrollers, Data Sheet [7]. Opis modułu peryferyjnego I2C układu procesorowego serii F2802x Piccolo jest zamieszczony w  dokumencie TMS320x2802x, 2803x Piccolo Inter-Integrated Circuit (I2C) Module Ref. Guide [12]. Dokładne omówienie budowy modułu peryferyjnego I2C układu procesorowego serii F2802x Piccolo jest zamieszczone w książce Henryk A. Kowalski, „Procesory DSP dla praktyków”, BTC, Warszawa, 2011 [5]. Dokładne omówienie przykładowego projektu Example_F2802xI2C_eeprom jest zamieszczone w  książce Henryk A. Kowalski, „Procesory DSP w  przykładach”, BTC, Warszawa, 2012 [6].

Skonfigurowanie modułu KAmodEXP2 W module KAmodEXP2 został zastosowany układ scalony ekspandera MCP23008 firmy Microchip pracujący w  standardzie łącza I2C [15]. Do poprawnej pracy programu z ćwiczenia jest wymagana podstawowa (standardowa) konfiguracja przełączników płytki drukowanej modułu KAmodEXP2 [13]: • Założona zwora JP0 w  pozycji „0” (JP0.1-JP0.2). Oznacza to bit adresowy A0=0. • Założona zwora JP1 w  pozycji „0” (JP1.1-JP1.2). Oznacza to bit adresowy A1=0. • Założona zwora JP2 w  pozycji „0” (JP2.1-JP2.2). Oznacza to bit adresowy A2=0.

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 96

2013-06-28 08:12:07


Krok po kroku Kursy EP

Niestety, moduł KAmodEXP2 nie zawiera rezystorów podciągających dla sygnałów SCL i SDA szyny I2C. Rezystory o rezystancji ok 4,7 kV należy dołączyć zewnętrznie (np. na złączu CON1 lub CON2).

Dołączanie modułu KAmodEXP2 do zestawu C2000 Piccolo LaunchPad Dołącz moduł KAmodEXP2 do zestawu ewaluacyjnego C2000 Piccolo LaunchPad. Uwaga! Połączenia należy wykonywać bez włączonego zasilania, czyli przy odłączonym kablu USB. Najlepiej najpierw połączyć masę obu płytek drukowanych. Zmniejszy to niebezpieczeństwo uszkodzenia układów ze względu na ładunki elektrostatyczne. Połączenia należy wykonywać przewodami z końcówkami zgodnymi ze standardem złącza IDC [14]. Należy podać masę, zasilanie 3,3 V oraz dwa sygnały łącza I2C, dwa dodatkowe sygnały sterujące i cztery sygnały danych (tabela 1). Wybór skonfigurowania wyprowadzeń układu procesorowego F28027 Piccolo został zaznaczony kolorem. Należy zauważyć, że wyprowadzenie GPIO32 układu procesorowego F28027 Piccolo jest połączone z wyprowadzeniem GPIO16 na płytce drukowanej zestawu ewaluacyjnego C2000 Piccolo LaunchPad. Tak samo jest połączone wyprowadzenie GPIO33 z wyprowadzeniem GPIO17. Dlatego bez modyfikacji płytki drukowanej nie można w tym projekcie używać wyprowadzenia GPIO16 i GPIO17.

Konfigurowanie zestawu C2000 Piccolo LaunchPad Po zainstalowaniu środowiska CCSv5 [2] można pierwszy raz dołączyć zestaw ewaluacyjny C2000 Piccolo LaunchPad [1] kablem USB do wolnego portu USB komputera. System Windows automatycznie rozpoznaje układ. Zostaną zainstalowane sterowniki systemu Windows dla emulatora XDS100v2 [6]. Należy poczekać aż system potwierdzi, że sprzęt jest gotowy do pracy. Do poprawnej pracy programu przykładowego wymagana jest podstawowa (standardowa) konfiguracja przełączników płytki drukowanej zestawu [1]: • Założone zwory JP1 („3V3”), JP2 („5V”) i JP3 („GND”). Oznacza to zasilanie układu procesorowego z gniazda USB. • Przełącznik S1 („Boot”) skonfigurowany następująco: S1.1 - do góry (ON), S1.2 - do góry, S1.3 - do góry. W praktyce oznacza to bootowanie z pamięci Flash. • Przełącznik S4 („Serial”) skonfigurowany w  pozycji do góry (ON). Oznacza dołączenie portu UART układu procesorowego do układu emulatora, a  tym samym do wirtualnego portu COM na PC.

Pliki źródłowe Do wykonania ćwiczenia potrzebny jest kod źródłowy zawarty w dodatkowych plikach Piccolo_F2802x_ KAmodEXP2.c oraz Piccolo_F2802x_KAmodEXP2.h. Ponadto zostanie zmodyfikowany kod w  głównym pliku Example_2802xI2C_eeprom.c projektu przykładowe-

Tabela 1 Dołączenia modułu KAmodEXP2 do zestawu C2000 Piccolo LaunchPad Płytka KAmodEXP2 Con3.4 (GND) Con3.1 (V+) Con3.2 (SCL) Con3.3 (SDA) Con5.3 (INT) Con5.2 (RES) Con4.1 (IO0) Con4.3 (IO1) Con4.5 (IO2) Con4.7 (IO3)

Płytka C2000 Piccolo LaunchPad J3.2 (GND) J3.1 (+3.3V) J2.7 (SCLA/GPIO33) J2.6 SDAA/GPIO32) J1.7 (GPIO18) J1.8 (AIO2/ADCINA2) J6.1 (GPIO0) J6.2 (GPIO1) J6.3 (GPIO2) J6.4 (GPIO3)

go. Wersja końcowa zmian jest zamieszczona w pliku Example_2802xI2C_KAmodEXP2.c.

Uruchomienie środowiska CCSv5 1. W oknie Workspace wpisz ścieżkę i nazwę folderu roboczego. Powinna być ona krótka i musi być zlokalizowana w miejscu, dla którego są uprawnienia dostępu (zapisu). Dla indywidualnej pracy proponowana jest ścieżka <C:/home_dir>. Dla tego ćwiczenia proponowana jest nazwa folderu work_I2C. Po kliknięciu na przycisk OK okna Workspace Launcher otwierane jest okno startowe środowiska CCSv5 (i ładowane są poszczególne elementy środowiska). Można to obserwować na pasku postępu. Może to trwać dosyć długo i należy koniecznie poczekać na zakończenie inicjalizacji środowiska przed rozpoczęciem dalszej pracy.

Projekty przykładowe pakietu controlSUITE W oknie TI Resource Explorer perspektywy CCS Edit pokazywana jest strona Welcome (w html). Zawiera ona graficznie menu główne. Istotne informacje są zgrupowane na stronie Home. Można ją otworzyć po kliknięciu oknie TI Resource Explorer na ikonkę Home . Po kliknięciu na odnośnik Examples pokazywane jest po lewej stronie okna drzewo dokumentacji i dostępnych projektów przykładowych. Jeśli pokazywana jest tylko jedna linia controlSUITE z gałęzią English to udostępnia ona dokumentację pakietu. Aby dodać przykłady należy na stronie Home kliknąć na odnośnik Configure Resource Explorer. W  oknie dialogowym Package Configuration trzeba kliknąć na Add, wskazać folder C:\ti\controlSUITE i  kliknąć OK. Nazwa controlSUITE pojawi się w oknie wyboru i należy kliknąć OK. Po dłuższej chwili pojawi się w drzewie okna TI Resource Explorer druga linia controlSUITE zawierająca pozycje: development kits, device_support oraz libs.

Zastosowanie projektu Example_ F2802xI2C_eeprom 2. Dla pracy z rodziną F2802x Piccolo rozwiń w oknie TI Resource Explorer drugą pozycję controlSUITE. Następnie należy rozwinąć drzewo controlSUITE  device_support  f2802x  v210  f2802x_examples. Potem trzeba kliknąć na nazwę wybranego projektu Example_F2802xI2C_ eeprom. W prawym oknie zostanie wyświetlona instrukcja jak krok po kroku zbudować i uruchomić projekt.

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 97

97

2013-06-28 08:12:07


Krok1 umożliwia zaimportowanie wybranego projektu do CCSv5. 3. Kliknij na odnośnik kroku 1. Po poprawnym wykonaniu importowania drzewo projektu pojawia się w oknie Project Explorer i  zielony znaczek jest pokazywany na prawo od linii nazwy kroku. Projekt Example_F2802xI2C_eeprom został zaimportowany z  kopiowaniem pliku Example_2802xI2C_ eeprom.c do foldera roboczego projektu.

Krok2: Budowanie projektu Example_F2802xI2C_eeprom Krok2 umożliwia wykonanie budowania wybranego projektu. 4. Kliknij na odnośnik kroku 2. W oknie Console pokazywane są bieżące informacje o postępie budowania. W oknie Problems pokazywane są opisy błędów, ostrzeżeń i informacji. Po poprawnym wykonaniu budowania zielony znaczek pokazywany jest na prawo od linii nazwy kroku (rysunek 6). 5. W  oknie Project Explorer rozwiń drzewo projektu i kliknij na jego nazwę. Został zbudowany projekt w konfiguracji budowania o nazwie RAM. Budowanie projektu Example_F2802xI2C_eeprom zostało zakończone poprawnie. Został utworzony wynikowy plik binarny Example_2802xI2C_eeprom.out. Jednak Zostały zgłoszone ostrzeżenia. Na razie są one nieistotne.

Krok3: Definiowanie konfiguracji sprzętowego systemu docelowego Krok3 umożliwia zdefiniowanie konfiguracji sprzętowego systemu docelowego dla projektu. Pole Connection pokazuje typ „none”. 6. Kliknij na odnośnik kroku 3. W oknie dialogowym Debugger Configuration rozwiń listę i wybierz pozycję Texas Instruments XDS100v2 USB Emulator. Kliknij OK. Pole Connection pokazuje teraz typ Texas Instruments XDS100v2 USB Emulator. Zielony zna-

Rysunek 1. Wpisywanie przez moduł peryferyjny I2C układu procesorowego F28027 Piccolo nowej zawartości 0x08 do rejestru konfiguracyjnego IOCON (adres 0x05) układu scalonego MCP23008 pod adresem 0x20 na szynie I2C.

98

czek pokazywany jest na prawo od linii nazwy kroku. Utworzony plik konfiguracji sprzętowej TMS320F28027. ccxml jest teraz pokazany w gałęzi /targetConfigs drzewa projektu w oknie Project Explorer. Jest on ustawiony jako Active/Default (aktywny i domyślny).

Krok4: Uruchamianie sesji debugowej dla projektu Example_F2802xI2C_eeprom Krok4 umożliwia uruchomienie sesji debugowej dla projektu. Dotychczas praca środowiska CCSv5 nie wymagała fizycznej obecności sprzętu docelowego. Wykonanie kroku 4 wymaga wcześniejszego dołączenia zestawu ewaluacyjnego C2000 Piccolo LaunchPad do komputera z zainstalowanym środowiskiem CCSv5. 7. Kliknij na odnośnik kroku 4. Kliknięcie na odnośnik kroku 4 powoduje automatyczne rozpoczęcie sesji debuggowej – podobnie jak po przyciśnięciu przycisku Debug .

Krok po kroku Kursy EP

Krok1: Importowanie projektu Example_F2802xI2C_eeprom do CCS

Modyfikacja skonfigurowania wyprowadzeń I2C procesora Piccolo F28027 Z funkcji main() wywoływana jest funkcja InitI2CGpio() inicjalizacji modułu peryferyjnego I2C. W projekcie domyślnie zostały zastosowane wyprowadzenia GPIO28 i  GPI29 układu procesorowego F28027 Piccolo. Te wyprowadzenia są dołączone do izolatora galwanicznego konwertera USB-RS232 na płytce zestawu ewaluacyjnego C2000 Piccolo LaunchPad. Jednak można to zmienić. 8. Przełącz się do perspektywy CCS Edit. Zauważ, że ikonka na lewo od nazwy pliku F2802x_I2C.c zawiera nałożoną strzałkę. Sygnalizuje ona, że plik jest tylko dołączony do projektu. Kliknij prawym klawiszem na nazwę pliku i  wybierz Properties. Pokazana jest dokładna lokalizacja pliku. Wszelkie zmiany wprowadzone w tym pliku będą widoczne przez inne projekty tego pakietu firmware. Usuń plik F2802x_I2C.c z projektu. W systemie Windows skopiuj plik F2802x_I2C.c do foldera projektu C:/home_dir/work_I2C/Example_F2802xI2C_eeprom. 9. W oknie Project Explorer dwukliknij na nazwę pliku F2802x_ I2C.c. Odkomentuj wszystkie linie kodu dotyczące wyprowadzeń GPIO32 i GPIO33. Opatrz komentarzem wszystkie linie kodu dotyczące wyprowadzeń GPIO28 i GPI29. Zauważ, że nazwa pliku na zakładce okna edycji jest poprzedzona gwiazdą. Sygnalizuje ona, że zostały wykonane zmiany i nie są one zapisane do pliku. Aby je zachować należy kliknąć na przycisk Save . Również kliknięcie na przycisk Build powinno spowodować zapisanie wszystkich plików ze zmianami przed rozpoczęciem budowania projektu. Tak się typowo dzieje. Czasami występują jednak kłopoty z plikami nagłówkowymi. Skorzystanie z  podglądu stanu pól bitowych rejestrów sterowania modułów peryferyjnych wymaga dołączenia do projektu pliku definicyjnego struktur modelu bezpośredniego dostępu do rejestrów. Zestawienie nazw zmiennych (struktur) udostępnianych przez plik jest podane w tab. 2.12 (str. 32) dokumentacji pakietu firmware [8]. Dla modułu peryferyjnego I2C jest udostępniana struktura rejestrów sterowania I2caRegs.

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 98

2013-06-28 08:12:07


Krok po kroku Kursy EP

10. Wykonaj samo budowanie projektu (bez ponownego startowanie sesji debugowej). Kliknij na przycisk Build. Nie używaj przycisku Debug. Na pytanie czy załadować plik wynikowy kodu przyciśnij przycisk Yes. 11. Przełącz się do perspektywy CCS Debug. Zauważ w oknie edytora, że praca program została zatrzymana na pierwszej linii kodu funkcji main(). 12. Otwórz okno Disassembly z  menu View    Disassembly.

Wgląd w projekt Example_ F2802xI2C_eeprom 13. Zapoznaj się z  komentarzem na początku pliku Example_2802xI2C_eeprom.c. Krótki opis projektu przykładowego oraz założenia i  wymagania sprzętowe są zamieszczone na początku głównego pliku każdego projektu przykładowego z pakietu programowego controlSUITE. Program dobrze działa z  dołączoną pamięcią EEPROM. Szczegółowe omówienie działania przykładowego projektu jest zamieszczone w książce [6].

Zbudowanie projektu F2802xI2C_KAmodEXP2 14. Zmień nazwę projektu. W oknie Project Explorer kliknij prawym klawiszem myszy na linię nazwy projektu Example_ F2802xI2C_eeprom. Z  podręcznego menu wybierz z  menu Rename, wpisz nową nazwę F2802xI2C_KAmodEXP2 i  kliknij OK. Zostanie również zmieniona nazwa folderu projektu w  folderze roboczym (C:\ home_dir\work_KAmodEXP2\F2802xI2C_KAmo dEXP2). 15. Dodaj pliki KAmodEXP2.c oraz KAmodEXP2.h do folderu projektu C:\home_dir\work_KAmodEXP2\ F2802xI2C_KAmodEXP2. Oba pliki zostaną automatycznie dodane do projektu. 16. Dodaj na początku pliku Example_2802xI2C_ eeprom.c dodatkowe definicje z listingu 1. 17. W pliku Example_2802xI2C_eeprom.c dodaj po linii kodu InitI2CGpio(); skonfigurowanie dodatkowych wyprowadzeń GPIO układu procesorowego F28027 Piccolo z listingu 2. Wobec małej liczby dostępnych wyprowadzeń cyfrowych GPIO układu procesorowego F28027 Piccolo zostało użyte wyprowadzenie analogowe ADCINA4 skonfigurowane jako cyfrowe AIO2 i  ustawione jako wyjście z poziomem wysokim. 18. Dodaj na początku funkcji main() w  pliku Example_2802xI2C_eeprom.c dodatkowe definicje Uint16 Output = 1, Input=0; int16 tmp; 19. Zamień kod programu rozpoczynając od linii następnej po EINT; aż do końca funkcji main() na kod pokazany na listingu 3. 20. Zmodyfikuj kod funkcji I2CA_Init(void); do postaci pokazanej na listingu 4. 21. Zakomentuj prawie cały kod funkcji i2c_int1a_ isr(void). Pozostaw aktywną tylko ostatnią linię kodu PieCtrlRegs.PIEACK.all = PIEACK_GROUP8;

Listing 1. Dodatkowe definicje dla funkcji main() w pliku Example_2802xI2C_eeprom.c// //KAmodEXP2 modifications #include „KAmodEXP2.h” // MCP23008 hardware address //Hardware addres of KAmodEXP2 (JP0=0 JP1=0 JP2 = 0) #define DEV_ADDR 0 //Hardware addres of KAmodEXP2 (JP0=1 JP1=0 JP2 = 0) //#define DEV_ADDR 1 //Hardware addres of KAmodEXP2 (JP0=0 JP1=1 JP2 = 0) //#define DEV_ADDR 2 //Hardware addres of KAmodEXP2 (JP0=1 JP1=1 JP2 = 0) //#define DEV_ADDR 3 //Hardware addres of KAmodEXP2 (JP0=0 JP1=0 JP2 = 1) //#define DEV_ADDR 4 //Hardware addres of KAmodEXP2 (JP0=1 JP1=0 JP2 = 1) //#define DEV_ADDR 5 //Hardware addres of KAmodEXP2 (JP0=0 JP1=1 JP2 = 1) //#define DEV_ADDR 6 //Hardware addres of KAmodEXP2 (JP0=1 JP1=1 JP2 = 1) //#define DEV_ADDR 7

22. Wykonaj samo budowanie projektu (bez ponownego startowania sesji debugowej). Z menu Project wybierz pozycję Clean. W oknie Clean kliknij OK. 23. Zauważ brak pytania czy załadować plik wynikowy kodu. Spowodowane jest to zmianą ustawienia ścieżki dostępu do pliku wynikowego. Nazwa foldera roboczego jest inna. 24. Przełącz się do perspektywy CCS Debug. Załaduj kod wynikowy do układu procesorowego F28027 Piccolo. 25. Kliknij na przycisk Load. W oknie Load Program kliknij na przycisk Browse project. 26. Kliknij na projekt F2802xI2C_KAmodEXP2 oraz przycisk OK. 27. W  oknie Load Program kliknij na przycisk Browse i w folderze RAM wybierz plik Example_F2802xI2C_eeprom.out i kliknij przycisk Otwórz a potem OK. Zauważ, że nazwa pliku z  kodem źródłowym oraz z wynikowym nie została zmieniona.

Inicjalizowanie modułu peryferyjnego I2C Wstępna inicjalizacja zawartości rejestrów modułu peryferyjnego I2C układu procesorowego jest wykonywana w funkcji I2CA_Init. Kod funkcji znajduje się w pliku głównym Example_2803xI2C_eeprom.c projektu. Moduł peryferyjny I2C w trakcie obsługiwania wysyłania i odbierania danych jest kilkakrotnie reprogramowany. Adres układu pamięci na szynie I2C jest ustawiony w  rejestrze I2CSAR na 0x20. Preskaler sygnału zegarowego w  rejestrze I2CPSC jest ustawiony tak, aby częstotliwość zegara szyny I2C wynosiła około 400 kHz. Czas poziomu niskiego sygnału zegarowego w rejestrze I2CCLKL jest ustawiony na ok. 1,5 us. Czas poziomu wysokiego sygnału zegarowego w rejestrze I2CCLKL jest ustawiony na ok. 1 us. W rejestrze I2CIER włączone jest zezwolenie na zgłaszanie przerwań SCD i ARDY, bez obsługi XRDY i RRDY. Moduł peryferyjny jest skonfigurowany w  rejestrze I2CMDR jako „slave”, odbiornik oraz 8 bitów na słowo danych. Dalej moduł peryferyjny I2C zostaje wyprowadzony ze stanu Reset, czyli zostaje włączony. Włączane jest rozszerzenie FIFO. Włączona jest obsługa FIFO nadajnika w rejestrze I2CFFTX, z sygnalizacją zapełnienia 0 pozycji oraz bez zgłaszania przerwań. Włączona jest obsługa FIFO odbiornika w rejestrze I2CFFRX, z sygnali-

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 99

99

2013-06-28 08:12:07


zacją zapełnienia 0 pozycji oraz bez zgłaszania przerwań. Zerowany jest znacznik przerwania RXFFINT. W funkcji main() wstawiany jest adres procedury i2c_int1a_isr() obsługi przerwania I2CINT1A modułu peryferyjnego I2C-A. Jest jeszcze drugie przerwanie I2CINT2A modułu peryferyjny I2C-A, które w  programie nie jest używane. EALLOW; PieVectTable.I2CINT1A = &i2c_int1a_isr; EDIS; Dalej w  funkcji main() ustawiane jest zezwolenie na obsługę przerwania INT8.1 grupy 8 w  module PIE. Następnie ustawiane jest w CPU zezwolenie na obsługę przerwania INT8. Na koniec włączane jest w CPU globalne zezwolenie na obsługę przerwań maskowalnych. //Enable interrupts required for this example //Enable I2C interrupt 1 in the PIE: Group 8 interrupt 1 PieCtrlRegs.PIEIER8.bit.INTx1 = 1; //Enable CPU INT8 which is connected to PIE group 8 IER |= M_INT8; EINT; Obecnie w  programie nie jest używane przerwanie I2CINT1A modułu peryferyjnego I2C-A. Jednak może ono zostać w  prosty sposób dostosowane do obsługi transmisji. 28. Zapoznaj się z  kodem funkcji w  pliku Piccolo_ F2802x_KAmodEXP2.c oraz definicjami w  pliku Piccolo_F2802x_KAmodEXP2.h.

Wpis danych do modułu KAmodEXP2 Funkcja Uint16 KAmodEXP2_WriteReg(Uint16 idx, Uint16 RegAddr, Uint16 RegValue) realizuje wpis danych do wskazanego rejestru układu scalonego MCP23008 firmy Microchip zastosowanego w module KAmodEXP2 firmy Kamami. Funkcja KAmodEXP2_WriteReg realizuje najpierw skonfigurowanie modułu peryferyjnego I2C a  następnie wstawienie danych do zapisu do układu MCP23008. Parametr idx podaje adres układu scalonego MCP23008 na szynie I2C. Adres ten jest definiowany poziomem logicznym wejść A0, A1 i A2 układu scalonego. Tak zdefiniowany zmienny numer jest przesuwany w  lewo o  jeden bit i  konkatenowany ze stałą częścią adresu na szynie wynoszącą 0x20. Parametr RefAddr podaje adres rejestru wewnętrznego układu scalonego MCP23008. Jest on numerem od 0x00 do 0x0A. Parametr RegValue przekazuje wartość do wpisania do rejestru. W  funkcji KAmodEXP2_WriteReg najpierw jest sprawdzane czy został zakończony poprzedni transfer na szynie (czy był wygenerowany stan STOP). Adres

100

układu scalonego MCP23008 (0x20) wpisywany jest do rejestru I2CSAR. Sprawdzane jest czy szyna nie jest zajęta (bit BB (I2CSTR[12]). Jeśli szyna jest wolna to do rejestru I2CCNT wpisywana jest liczba bajtów do wysłania. Jest ona równa liczbie bajtów danych plus bajt adresu rejestru wewnętrznego układu scalonego MCP23008. Do FIFO nadajnika (rejestr I2CDXR) jest wpisywany bajt adresu rejestru. Następnie wpisywane jest bajt danych. Na koniec ustawiana jest nowa zawartość rejestru I2CMDR. Ustawienie poszczególnych bitów tego rejestru powoduje skonfigurowanie modułu peryferyjnego I2C: • FREE=1 – Moduł pracuje dalej po przejściu układu procesorowego w tryb debugowy czasu rzeczywistego, np. po aktywowaniu pułapki. • STT=1 – Jeśli moduł pracuje jako MASTER to powoduje wygenerowanie stanu START na szynę. Następnie stan bitu jest automatycznie zerowany. • STP=1 – Powoduje wygenerowanie stanu STOP na szynę po zliczeniu licznika bajtów na zero. Następnie stan bitu jest automatycznie zerowany. • MST=1 – Praca modułu jako MASTER. • TRX=1 – Praca modułu jako nadajnik. • IRS=1 – Zezwolenie na pracę. Po wpisie ustawień do rejestru I2CMDR wysyłanie danych na szynę I2C jest wykonywane automatycznie,

Krok po kroku Kursy EP

Listing 2. Skonfigurowanie dodatkowych wyprowadzeń GPIO układu procesorowego F28027 Piccolo //KAmodEXP2 modifications //KAmodEXP2 - Additional GPIO EALLOW; GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; // Enable pull-up for GPIO18 GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0; // as GPIO18 GpioCtrlRegs.GPADIR.bit.GPIO18 = 0; // GPIO18 = input //KAmodEXP2 - Enable an ADCINA4 pin as AIO2 digital output, set it high GpioDataRegs.AIOSET.bit.AIO2 = 1; // Set high output latch GpioCtrlRegs.AIOMUX1.bit.AIO2 = 0; // ADCINA4 = AIO2 GpioCtrlRegs.AIODIR.bit.AIO2 = 1; // AIO2 = output EDIS;

sprzętowo przez moduł peryferyjny I2C układu procesorowego F2802x Piccolo. W programie zostało zastosowane opóźnienie o  90 <m>s, czyli trochę więcej, niż typowy czas wysłania trzech bajtów na szynie I2C (rysunek 1) z zegarem o częstotliwości 400 MHz [10]. Na zapisie transmisji (rys. 1) dokładnie widać momenty wystawiania stanu ACK na linii SDA przez układ scalony MCP23008. Podczas wymuszania niskiego poziomu napięcie na linii SDA wynosi ok. +0.5V w porównaniu do poziomu prawie zerowego podczas sterowania stanem linii przez moduł peryferyjny I2C układu procesorowego F28027 Piccolo. Po zakończeniu przez moduł peryferyjny I2C transmisji i  wystawieniu stanu STOP na szynę moduł peryferyjny I2C wykrywa ten stan i  zostaje zgłoszone przerwanie I2CINT1A z ustawionym kodem SCD w rejestrze I2CISRC. Może być ono obsługiwane w procedurze i2c_ int1a_isr. Jednocześnie kasowany jest bit znacznika STP w rejestrze I2CMDR.

Odczyt danych z modułu KAmodEXP2 Funkcja int16 KAmodEXP2_ReadReg(Uint16 idx, Uint16 RegAddr); realizuje wpis odczyt ze wskazanego rejestru układu scalonego. Funkcja KAmodEXP2_ReadReg realizuje pracę w dwóch fazach: • Skonfigurowanie modułu peryferyjnego I2C jako nadajnik i wysłanie bajtu adresu rejestru do układu MCP23008. • Skonfigurowanie modułu peryferyjnego I2C jako odbiornik i odebranie bajtu danych.

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 100

2013-06-28 08:12:07


Krok po kroku Kursy EP

Parametr idx podaje adres układu scalonego MCP23008 na szynie I2C. Adres ten jest definiowany poziomem logicznym wejść A0, A1 i A2 układu scalonego. Tak zdefiniowany zmienny numer jest przesuwany w lewo o jeden bit i konkatenowany ze stałą częścią adresu na szynie wynoszącą 0x20. Parametr RegAddr podaje adres rejestru wewnętrznego układu scalonego MCP23008. Jest on numerem od 0x00 do 0x0A.

Faza 1 W funkcji KAmodEXP2_ ReadReg najpierw jest sprawdzane czy został zakończony poprzedni transfer na szynie (czy był wygenerowany stan STOP). Adres układu scalonego MCP23008 (0x20) wpisywany jest do rejestru I2CSAR. Sprawdzane jest czy szyna nie jest zajęta (bit BB (I2CSTR[12]). Jeśli szyna jest wolna to do rejestru I2CCNT wpisywana jest liczba bajtów do wysłania. Jest ona równa liczbie bajtów danych plus bajt adresu rejestru wewnętrznego układu scalonego MCP23008. Do FIFO nadajnika (rejestr I2CDXR) jest wpisywany bajt adresu rejestru. Następnie wpisywane jest bajt danych. Na koniec ustawiana jest nowa zawartość rejestru I2CMDR. Na koniec ustawiana jest nowa zawartość reje-

Rysunek 2. Odczytywanie przez moduł peryferyjny I2C układu procesorowego F28027 Piccolo zawartości (0x01) z do rejestru portu GPIO (adres 0x09) układu scalonego MCP23008 pod adresem 0x20 na szynie I2C. stru I2CMDR. Ustawienie poszczególnych bitów tego rejestru powoduje skonfigurowanie modułu peryferyjnego I2C: • STT=1 – Jeśli moduł pracuje jako MASTER to powoduje wygenerowanie stanu START na szynę. Następnie stan bitu jest automatycznie zerowany. • MST=1 – Praca modułu jako MASTER. • TRX=1 – Praca modułu jako nadajnik. • IRS=1 – Zezwolenie na pracę.

Listing 3. Kod głównej części funkcji main(). //KAmodEXP2 modifications KAmodEXP2_Reset(); DELAY_US(1); // 1 us //KAmodEXP2_Init(); // Init the processor I2C module hardware Error = KAmodEXP2_WriteReg(DEV_ADDR, IOCON, 0x08); //(5) Enable the MCP23008 hardware address if (Error != I2C_SUCCESS) fail(); Error = KAmodEXP2_WriteReg(DEV_ADDR, IODIR, 0x00); //GPIO as output if (Error != I2C_SUCCESS) fail(); Error = KAmodEXP2_WriteReg(DEV_ADDR, GPIO, 0x00); //Write GIO = 0x00 if (Error != I2C_SUCCESS) fail(); //infinite loop for(;;) { Error = KAmodEXP2_WriteReg(DEV_ADDR, GPIO, 0x00); //Write GPIO = 0x00 DELAY_US(1000000); // 1000ms //------------// effect 1 //------------for(Output = 1; Output != 0x20; Output <<= 1) //0x100; { //(9) Write GPIO = Output Error = KAmodEXP2_WriteReg(DEV_ADDR, GPIO, Output); if (Error != I2C_SUCCESS) fail(); //SetOutScreen(Output); tmp= KAmodEXP2_ReadReg(DEV_ADDR, GPIO); if (tmp < I2C_SUCCESS) fail(); Input= (Uint16)tmp; DELAY_US(700000); // 700 ms } //------------// effect 2 //------------for(Output = 1; Output < 0xF; Output <<= 1) { Output |= 1; KAmodEXP2_WriteReg(DEV_ADDR, GPIO, Output); // SetOutScreen(Output); DELAY_US(700000); // 700ms } //------------// effect 3 //------------for(Counter = 0; Counter < 4; Counter ++) { Output = 0x55; KAmodEXP2_WriteReg(DEV_ADDR, GPIO, Output); //SetOutScreen(Output); DELAY_US(700000); // 700ms Output = 0xAA; KAmodEXP2_WriteReg(DEV_ADDR, GPIO, Output); //SetOutScreen(Output); DELAY_US(700000); // 700ms } } //for(;;)

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 101

101

2013-06-28 08:12:07


Oznacza to, że po zakończeniu transferu nie jest wystawiany stanu STOP na szynę. Po wpisie ustawień do rejestru I2CMDR wysyłanie danych na szynę I2C jest wykonywane automatycznie, sprzętowo przez moduł peryferyjny I2C układu procesorowego F2802x Piccolo. W programie zostało zastosowane opóźnienie o 60 ms, czyli trochę więcej niż typowy czas wysłania dwóch bajtów na szynie I2C z zegarem o częstotliwości 400 MHz (rysunek 2). Stan ACK po wysłaniu ostatniego bajtu zostanie wykryty przez moduł peryferyjny I2C. Zgłaszane jest wtedy przerwanie I2CINT1A z  ustawionym bitem znacznika ARDY w  rejestrze I2CISRC. Może być ono obsługiwane w procedurze i2c_int1a_isr.

Faza 2 Adres układu scalonego MCP23008 (0x20) wpisywany jest do rejestru I2CSAR. Sprawdzane jest czy szyna nie jest zajęta (bit BB (I2CSTR[12]). Do rejestru I2CCNT wpisywana jest liczba bajtów do odczytu. Ustawiana jest nowa zawartość rejestru I2CMDR. Ustawienie poszcze-

Krok po kroku Kursy EP

Rysunek 3. Transmisja konfigurowania rejestru konfiguracyjnego IOCON (adres 0x05), rejestru kierunku IODIR (adres 0x00) oraz rejestru portu GPIO (adres 0x09) układu scalonego MCP23008 pod adresem 0x20 na szynie I2C.

gólnych bitów powoduje skonfigurowanie modułu peryferyjnego I2C: • NACKMOD=0 – Jeśli moduł pracuje jako odbiornik MASTER to po zliczeniu wewnętrznego licznika odebranych bajtów do zera wysyłany jest stan NACK. • STT=1 – Jeśli moduł pracuje jako MASTER to powoduje wygenerowanie stanu START na szynę. Następnie stan bitu jest automatycznie zerowany. • STP=1 – Powoduje wygenerowanie stanu STOP na szynę po zliczeniu licznika bajtów na zero. • MST=1 – Praca modułu I2C jako MASTER. • TRX=0 – Praca modułu jako odbiornik. • IRS=1 – Zezwolenie na pracę. Moduł peryferyjny I2C wymusza na szynie stan ponowny START (czyli RESTART) a następnie wysyła na szynę bajt adresu pamięci EEPROM z bitem R//W ustawionym na poziom wysoki (READ). Po odebraniu bitu potwierdzenia ACK z  szyny I2C (wystawionego przez układ scalony MCP23008) moduł peryferyjny I2C zwalnia szynę. Zaczyna on wtedy pracować jako odbiornik bajtów wysyłanych układ scalony MCP23008. Odbiór danych z szyny I2C jest wykonywany automatycznie, sprzętowo. Odbiór kolejnych bajtów przez moduł peryferyjny I2C jest potwierdzany wystawieniem przez moduł peryferyjny I2C bitu potwierdzenia ACK na szynę I2C. Jedynie po odebraniu ostatniego bajtu (wewnętrzny licznik bajtów zliczył do zera) wystawiany jest na szynę bit NACK oraz następnie stan STOP. W  programie zostało zastosowane opóźnienie o 65 ms, czyli trochę więcej niż typowy czas wysłania dwóch bajtów na szynie I2C (rys. 2) z zegarem o częstotliwości 400  MHz [10]. Na zapisie transmisji (rys. 2) dokładnie widać momenty wystawiania stanu ACK na linii SDA przez układ scalony MCP23008. Oraz wystawianie niskiego poziomu podczas transmisji bajtu danych.

Listing 4. Funkcja inicjowania modułu peryferyjnego I2C układu procesorowego F2802x Piccolo. void I2CA_Init(void) { // Initialize I2C // Slave address - MCP23008 control code I2caRegs.I2CSAR = 0x0020 | (DEV_ADDR << 1); // I2CCLK = SYSCLK/(I2CPSC+1) #if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ) I2caRegs.I2CPSC.all = 4; // Prescaler - need 7-12 Mhz on module clk #endif #if (CPU_FRQ_60MHZ) I2caRegs.I2CPSC.all = 6; // Prescaler - need 7-12 Mhz on module clk #endif I2caRegs.I2CCLKL = 10; // NOTE: must be non zero I2caRegs.I2CCLKH = 5; // NOTE: must be non zero I2caRegs.I2CIER.all = 0x24; // Enable SCD & ARDY interrupts I2caRegs.I2CMDR.all = 0x0020; // Take I2C out of reset // Stop I2C when suspended // 15 NACKMOD 0 sends a NACK bit to the transmitter // during the next acknowledge cycle on the bus // 14 FREE 0 continues to operate when a breakpoint occurs // 13 STT 1 STT is automatically cleared after the START condition has been generated // 12 rsv // 11 STP 0 STP is automatically cleared after the STOP condition has been generated // 10 MST 0 Master mode // 9 TRX 0 Transmitter mode // 8 XA 0 7-bit addressing mode // 7 RM 0 Nonrepeat mode // 6 DLB 0 Digital loopback mode is disabled // 5 IRS 1 The I2C module is enabled // 4 STB 0 not in the START byte mode // 3 FDF 0 Free data format mode is disabled //2:0 BC 000 8 bits per data byte I2caRegs.I2CFFTX.all = 0x6000; // Enable FIFO mode and TXFIFO I2caRegs.I2CFFRX.all = 0x2040; // Enable RXFIFO, clear RXFFINT, return; } // I2CA_Init(void)

102

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 102

2013-06-28 08:12:07


Krok po kroku Kursy EP

Wystawienie stanu STOP na szynę powoduje zgłoszenie przerwanie I2CINT1A z ustawionym bitem znacznika SCD w rejestrze I2CISRC. Może być ono obsługiwane w procedurze i2c_int1a_isr. Jednocześnie kasowany jest bit znacznika STP w  rejestrze I2CMDR. Odebrane dane są odczytywane z FIFO odbiornika (rejestr I2CDRR).

Uruchamianie projektu F2802xI2C_KAmodEXP2 29. Przełącz się do perspektywy CCS Debug. Kliknij na przycisk Resume. Program zostanie uruchomiony. Obserwuj diody D2, D3, D4, D5 na zestawie ewaluacyjnym C2000 Piccolo LaunchPad. Diody prezentują trzy wzory świecenia. Najprostszy sposób inicjalizacji scalonego ekspandera MCP23008 dla szyny I2C jest pokazany na rysunku 3. Najpierw do rejestru konfiguracyjnego IOCON (adres 0x05) układu wpisywany jest bajt danych (0x08). Są to ustawienia zgodne z domyślnymi po operacji Reset. Następnie do rejestru kierunku IODIR (adres 0x00) układu jest wpisywany bajt danych (0x00). Oznacza to ustawienie wszystkich bitów portu układu MCP23008 jako wyjścia. Na koniec do rejestru portu GPIO (adres 0x09) jest wpisywana nowa zawartość 0x00. Bibliografia [1] Henryk A. Kowalski, „Zestaw ewaluacyjny C2000 Piccolo LaunchPad”, Elektonika Praktyczna 01/2013 [2] Henryk A. Kowalski, „C2000 Piccolo LanuchPad – pierwszy program w środowisku programowym Code Composer Studio v5”, Elektonika Praktyczna 02/2013. [3] Code Composer Studio, strona produktu http://www. ti.com/ccs [4] controlSUITE, strona pobierania http://www.ti.com/ tool/controlsuite [5] Henryk A. Kowalski, „Procesory DSP dla praktyków”, Wydawnictwo BTC, Warszawa, 2011 http://ii.pw.edu.pl/ kowalski/dsp/book/ [6] Henryk A. Kowalski, „Procesory DSP w przykładach”, Wydawnictwo BTC, Warszawa, 2012 http://ii.pw.edu.pl/ kowalski/dsp/book/ [7] TMS320F28027, TMS320F28026, TMS320F28023, TMS320F28022, TMS320-F28021, TMS320F280200, Piccolo Microcontrollers, Data Sheet, SPRS523I, 31 Jul 2012 [8] F2802x Firmware Development Package USER’S GUIDE v. 210 [ f2802x-FRM-EX-UG.pdf], pakiet controlSUITE [9] F2802x Peripheral Driver Library USER’S GUIDE v. 210 [f2802x-DRL-UG.pdf], pakiet controlSUITE [10] TMS320x2802x/TMS320F2802xx Piccolo System Control and Interrupts Reference Guide (Rev. D) 13 Feb 2013, [SPRUFN3D] [11] controlSUITE Getting Started Guide (Rev. B), SPRUGU2B , 09 June 2011 [12] TMS320x2802x, 2803x Piccolo Inter-Integrated Circuit (I2C) Module Ref. Guide (Rev. D) [SPRUFZ9D.pdf] [13] KAmodEXP2, Adresowalny ekspander GPIO z interfejsem I2C www.kamami.pl [14] CAB_A, Przewody połączeniowe, www.kamami.pl [15] MCP23008/MCP23S08, 8-Bit I/O Expander with Serial Interface, Data Sheet (08/24/2007) www.microchip.com

ELEKTRONIKA PRAKTYCZNA 7/2013

096-103_piccolo(5).indd 103

103

2013-06-28 08:12:07


INFO Firma Tomsad zmieniła siedzibę Firma Tomsad znana z dystrybucji programatorów zmieniła swoją siedzibę. Nowa siedzibą firmy jest budynku Pomorskiego Parku Technologicznego (pokój D431) w  Gdyni przy ul. Aleja Zwycięstwa 96/98 tel. +48694562973, fax +48 587 32 22 94. Adres pocztowy e-mail oraz strony internetowej nie zmieniły się: www.programatory.pl, biuro@programatory.pl

Roboty zdobyły serca Polaków Podczas II Nocy Robotów PIAP ponad 5500 gości odwiedziło Przemysłowy Instytut Automatyki i Pomiarów. Wstępem do wydarzenia była debata poświęcona polskiej robotyce i  kierunkom jej rozwoju. Goście PIAP mieli niezwykłą okazję poznać ponad 100 robotów z Polski i zagranicy, a także uczestniczyć w warsztatach, zawodach i pokazach specjalnych z udziałem maszyn. W  piątek, 24 maja 2013 r., Przemysłowy Instytut Automatyki i Pomiarów PIAP udostępnił wszystkim zainteresowanym strzeżone zwykle rozwiązania z obszaru robotyki i automatyki. II Noc Robotów PIAP rozpoczęła się debatą na temat polskiej myśli technicznej i rozwoju robotyki oraz wpływu osiągnięć technologicznych na gospodarkę polską i światową. Prelegentami podczas konferencji byli Dyrektor PIAP dr inż. Jan Jabłkowski, Dyrektor NCBiR prof. dr hab. inż. Krzysztof Jan Kurzydłowski, Zastępca Dyrektora ds. Inteligentnych Systemów Bezpieczeństwa PIAP prof. nzw. dr inż. Piotr Szynkarczyk, Dyrektor Departamentu Gospodarki Elektronicznej Ministerstwa Gospodarki Sebastian Christow, Maciej Cader z Ośrodka Systemów Mobilnych PIAP oraz Karolina Zawieska z Ośrodka Systemów Bezpieczeństwa PIAP.

„Wpływ rozwoju robotyki na codzienne życie człowieka jest coraz bardziej widoczny. W najbliższych latach roboty coraz częściej będą pojawiały się w przestrzeni publicznej. W ramach działalności PIAP staramy się oswajać ludzi z  robotami i  pokazywać im jak bardzo mogą nam one pomagać.” – zaczął rozmowę dyrektor PIAP, dr inż. Jan Jabłkowski. „Poza wykorzystaniem maszyn o wysokiej jakości w sektorze przemysłowym możemy spodziewać się obecności robotów miedzy innymi w pracach trudnych i niebezpiecznych dla ludzi.” Przyszłość współpracy i  współistnienia człowieka ze światem materii technicznej opisywała Karolina Zawieska, która w PIAP zajmuje się najnowszą dyscypliną - robotyką społeczną - Roboty będą także wykorzystywane do pomocy ludziom na co dzień, uczestnicząc w edukacji, rehabilitacji, opiece zdrowotnej i pomocy w domu, choćby osobom starszym, dla których wykonanie wielu podstawowych czynności jest problematyczne. Profesor Krzysztof Jan Kurzydłowski z Narodowego Centrum Badań i Rozwoju podkreślał jak ważna dla polskiej robotyki jest edukacja nowych kadr, zauważając przy tym zmianę w podejściu młodych ludzi do nauki, i większe zainteresowanie studiami technicznymi. Na koniec podkreślono wagę środków unijnych oraz pomocy ze strony jednostek naukowych, takich jak NCBiR, a także wkład w rozwój tej dziedziny środków rynkowych. Dyrektor Departamentu Gospodarki Elektronicznej Ministerstwa Gospodarki Sebastian Christow zauważył, że nasycenie robotyką w Polsce jest znacznie niższe niż w  innych krajach Europy, jednak jest szansa na zmianę w najbliższej przyszłości. Inwestycje w robotykę są bardzo opłacalne i zwracają się często już po kilku miesiącach i nie później niż po dwóch latach.

REKLAMA

104

104-106_info.indd 104

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:12:26


INFO Tematem, który wzbudził poruszenie uczestników debaty był aspekt ingerencji robotów w bezpieczne funkcjonowanie i życie społeczne człowieka. Eksperci podkreślali, że przy produkcji robotów przestrzegane są zasady etyki i  w  najbliższych latach nie musimy obawiać się zagrożenia ze strony maszyn. Daleko nam zatem do scen z filmów science-fiction, w których roboty wykazujące się inteligencją są w stanie zbuntować się przeciw ludziom. Wiele emocji wywołał także temat wykorzystywania robotów do akcji zbrojnych i  ataków. Prelegenci uspokajali, że głównym zadaniem robotów jest odsuwanie ludzi od zagrożenia, ratowanie ich życia i zmniejszanie niebezpieczeństwa wynikającego chociażby z klęsk żywiołowych. Choć roboty mogą być wykorzystane w różnych celach, musimy pamiętać, że zawsze za ich działaniem stoi człowiek. Po debacie rozpoczęło się wielkie święto robotyki pod hasłem „Odkryj nieznane”, które odwiedziło aż 5,5 tysiąca osób. Największym zainteresowaniem gości cieszyły się roboty latające - a  wśród nich quadrocopter - roboty przemysłowe, występujące w niecodziennych odsłonach – m.in. malarza czy gracza w koło fortuny - oraz roboty antyterrorystyczne, które podejmowały i neutralizowały ładunki wybuchowe, ale także pozwalały sobą sterować przez uczestników. Najmłodsi goście nie mogli doczekać się rywalizacji robotów sumo, bohaterów Gwiezdnych Wojen i udziału w przygotowanych dla nich przez Przemysłowy Instytut Automatyki i  Pomiarów licznych warsztatów. W  konkursie Małego Inżyniera na najlepszy robostrój było aż trzech zwycięzców, którzy wygrali półkolonie, a klasa jednego ze szczęśliwców już wkrótce będzie mogła wziąć udział w warsztatach robotycznych. Furorę robił flirtujący z  uczestniczkami Nocy R2-D2 a także humanoidalny robot NAO, który oczarował wszystkich swoim tańcem do piosenki Gangnam Style. Podczas Nocy Robotów PIAP i duzi i mali nie kryli radości i fascynacji zgromadzonymi atrakcjami „Jeszcze nigdy nie widzieliśmy takich technologii tak licznie zgromadzonych, które można nie tylko zobaczyć ale też dotknąć, poruszyć, sterować. Podobały nam się najbardziej zawody sumo, Star Wars i  antyterrorystyczne. Czekamy na następną edycję - mówią Jarek i jego sześcioletni syn Mateusz, który w przyszłości chce zostać policjantem i korzystać z pomocy robotów antyterrorystycznych.” Organizatorami „II Nocy Robotów PIAP - Odkryj Nieznane” są Przemysłowy Instytut Automatyki i  Pomiarów PIAP, który od blisko 50 lat zajmuje się tworzeniem najnowszych technologii m.in. z dziedziny robotyki i automatyki oraz PIAP-ScienTech, którego zadaniem

Agilent Technologies wprowadza opcje analizy widma w czasie rzeczywistym oraz pasma pomiarowego szerokości 160 MHz do analizatora sygnałów MXA Agilent Technologies rozszerza możliwości analizatora sygnałów średniej klasy N9020A MXA X-Series. Nowe opcje poszerzenia pasma pomiarowego do 160 MHz oraz analizy widma w czasie rzeczywistym (RTSA) są odpowiedzią na wyzwania pomiarowe podczas analizy interferencji w heterogenicznych sieciach bezprzewodowych nowej generacji. Obie opcje mogą być zarówno wbudowane w nowe analizatory, jak i  dodane do analizatorów wyprodukowanych wcześniej. Opcja RTSA stanowi 1/7 ceny specjalizowanego, jednozadaniowego analizatora czasu rzeczywistego. Wraz z coraz gęstszym rozmieszczaniem mikrokomórek i bezprzewodowych sieci LAN rośnie prawdopodobieństwo niepożądanej interakcji sygnałów w.cz. Dla deweloperów analiza widma w czasie rzeczywistym stanowi potężne narzędzie umożliwiające rejestrację i  analizę ulotnych sygnałów. Opracowany przez Agilent analizator MXA z opcją RTSA zapewnia szerokość pasma pomiarowego równą 160 MHz i  najszybsze REKLAMA

jest upowszechnianie powstających w Instytucie wynalazków. Więcej dodatkowych informacji na stronie www.nocrobotow.pl.

Switch Ethernetowy zgodny z IEC 61850 Firma Phoenix Contact wprowadziła do oferty nowy switch Ethernetowy zgodny z  normami IEC 61850 i  IEEE 1613. Niezarządzalny switch typu FL SWITCH 1008E ma 8 portów z  gniazdem RJ45 i  prędkością transmisji 10/100 Mbps. Dodatkowe funkcje jak autokrosowanie, redundantne zasilanie, styk alarmowy, temperatura pracy -40 … 70 C sprawiają, że urządzenie można stosować w  wymagających instalacjach. Dzięki wysokiej odporności na zakłócenia elektromagnetyczne, zgodne z  normą IEC 61850, switch dedykowany jest do komunikacji pomiędzy urządzeniami w  systemach elektro-energetycznych. Więcej informacji: www.phoenixcontact.pl/ethernet ELEKTRONIKA PRAKTYCZNA 7/2013

104-106_info.indd 105

105

2013-06-28 08:12:27


INFO wśród innych tego typu przyrządów obliczanie widma w trybie overlap. Ta kombinacja daje możliwość precyzyjnego wyzwalania na impulsach o krótkim czasie trwania. Ponadto, oferowana przez analizator funkcja wyzwalania maską częstotliwości i prezentacja widma na wykresach w czasie rzeczywistym pomagają w precyzyjnym lokalizowaniu nieciągłych problemów związanych z występowaniem interferencji. “Nowe opcje wprowadzone do analizatora MXA czynią z niego narzędzie niezbędne dla inżynierów zajmujących się transmisją bezprzewodową, chcących zidentyfikować i rozwiązać problemy występujące w środowiskach z gęsto rozmieszczonymi sieciami radiowymi,” powiedział Andy Botka, wiceprezes i  dyrektor generalny oddziału Microwave Communications firmy Agilent. “Dla producentów chcących uzyskać maksymalną gęstość kanałów transmisyjnych, funkcjonalność i  parametry oferowane przez MXA pomagają zapewnić transmisję bez niepożądanych interferencji.” Analizator MXA o zakresie częstotliwości wejściowych do 26,5 GHz jest obecnie produkowany w wersjach o szerokości pasma pomiarowego 85, 125 i 160 MHz, dostępnej też jako opcja dla analizatorów wyprodukowanych wcześniej. Opcja 160 MHz spełnia wymogi specyfikacji LTE-Advanced i  bezprzewodowych sieci LAN standardu 802.11ac, charakteryzujących się szerokim pasmem transmisji zapewniającym większą przepustowość danych. Zdolność analizatora MXA do rejestracji sygnałów w paśmie 160 MHz przy szerokości zakresu dynamicznego SFDR równej 72 dBc pozwala na charakteryzację słabych sygnałów położonych na wykresie widma w pobliżu silnych sygnałów. Gdy konieczne jest przeprowadzenie głębszej analizy, MXA może współpracować z oprogramowaniem Agilent 89600 VSA. Taka konfiguracja pozwala na demodulację i dokładną charakteryzację najbardziej złożonych sygnałów. Dodatkowe informacje Opcje RTSA i  szerokiego pasma pomiarowego są dostępne jako upgrade dla już wyprodukowanych analizatorów. Kompatybilność z opcją szerokiego pasma pomiarowego zależy od bieżącej konfiguracji analizatora. Dostępne są następujące opcje: -N9020A-B85, szerokość pasma pomiarowego 85 MHz -N9020A-B1A, szerokość pasma pomiarowego 125 MHz -N9020A-B1X, szerokość pasma pomiarowego 160 MHz -N9020A-RT1 lub N9020AK-RT1 (upgrade), analizator czasu rzeczywistego o szerokości pasma pomiarowego do 85 MHz -N9020A-RT2 lub N9020AK-RT2 (upgrade), analizator czasu rzeczywistego o szerokości pasma pomiarowego do 160 MHz Powyższe opcje są dostępne w sprzedaży na całym świecie. Więcej informacji można znaleźć na stronach: www.agilent.com/find/MXA i www.agilent.com/find/RTSA.

Nowe stacje do ładowania pojazdów elektrycznych Na mapie Polski pojawiły się dwie nowe stacje do ładowania pojazdów elektrycznych. Ze stacji można skorzystać bez żadnych opłat. Firma ABB zainstalowała je w Krakowie oraz Aleksandrowie Łódzkim, umożliwiając użytkownikom „doładowanie” samochodu nawet w kwadrans. Stacja szybkiego ładowania w Aleksandrowie Łódzkim znajdująca się w pobliżu fabryki ABB w Aleksandrowie Łódzkim pozwala na ładowanie dwóch pojazdów jednocześnie w  jednym z  dwóch standardów: prądem stałym o mocy 50kW (CHAdeMO), który umożliwia skrócenie czasu ładowania do zaledwie 15-30 minut, oraz prądem przemiennym o mocy 22kW (Typ II). Dzięki temu ze stacji mogą skorzystać prawie wszystkie aktualnie dostępne na rynku, seryjnie produkowane samochody elektryczne. Z  kolei druga stacja została zainstalowana przed budynkiem Korporacyjnego Centrum Badawczego ABB w  Krakowie. Użytkownikom udostępniono model Terra SmartConnect o mocy 20 kW w technologii

106

104-106_info.indd 106

prądu stałego, co pozwala skrócić czas ładowania do 80 proc. pojemności baterii do niespełna 120 minut. Jest to urządzenie dostosowane dla potrzeb biurowców i galerii handlowych, czyli lekkie, zajmujące niewiele miejsca i umożliwiające montaż naścienny. „Co istotne, obie stacje będą dostępne 24 godziny na dobę, a każdy z użytkowników będzie mógł z nich skorzystać za darmo. Jest to nowa jakość na polskim rynku i  mamy nadzieję, że w  ten sposób będziemy mogli w jakimś stopniu wpłynąć na popularyzację pojazdów elektrycznych w Polsce. Przykład Estonii pokazuje, że warto inwestować w infrastrukturę dla pojazdów elektrycznych” – powiedział Wojciech Dziwisz, kierownik ds. rozwoju biznesu e-mobility w ABB w Polsce. W  Estonii powstała największa w  Europie sieć stacji do szybkiego ładowania prądem DC, na potrzeby której ABB dostarczyła 200 takich urządzeń. Firma uczestniczyła ponadto w rozbudowie ogólnokrajowych sieci do ładowania m.in. w  Belgii, Irlandii, Danii i  Holandii. W  sumie ABB zainstalowała już około 600 stacji do szybkiego ładowania na czterech kontynentach. Szczegóły na stronie www.abb.pl

Beznarzędziowe złączki PTIO 1,5/S do czujników i urządzeń wykonawczych Kompaktowe złączki szynowe PTIO 1,5/S firmy Phoenix Contact umożliwiają łatwe i  przejrzyste okablowanie 3- i  4-przewodowych czujników, krańcówek i  urządzeń wykonawczych. Dzięki tej rodzinie złączek można zmniejszyć ilość okablowania dla zaworów i  czujników magnetycznych, przy tym zajmując jedynie 3,5 mm miejsca na czujnik na szynie. Można przy tym zredukować również czas potrzebny na ich dołączenie poprzez beznarzędziowym zaciski sprężynowe Push-In, w  których, aby dołączyć przewód wystarczy jedynie włożyć go do zacisku a  sprężyna pod naciskiem tulejki ugnie się dokonując połączenia. Dwupoziomowe złączki dostępne są w  wersjach 3- i  4-przewodowej. Górny poziom do okablowania sygnału jest dostępny ze wskaźnikiem świetlnym lub bez niego. Przyłącza biegunów dodatniego i ujemnego są wykonywane na dolnym poziomie. Przelotowe gniazda na mostki na każdym punkcie zaciskowym umożliwiają szybki i łatwy rozdział potencjału poprzez mostki wtykowe z systemu CLIPLINE bezpośrednio od złączek zasilania PTIO-IN. Za ich pomocą można już bardzo łatwo zasilać i rozbudowywać grupy zacisków a podwójne gniazdo na mostek na każdym punkcie zaciskowym umożliwia ich ustawianie w  dowolnym miejscu na listwie zaciskowej. Zaciski PTIO ze złączami sprężynowymi Push –In są włączone do rodziny złączek szynowych z  szeregu Clipline Complete. Dysponują zaletami tego systemu i można je stosować z  akcesoriami z  tego samego asortymentu. Nowa seria PTIO zmniejsza czas wykonania okablowania i obniża koszty zaopatrzenia. Więcej informacji: www.phoenixcontact.com ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:12:27


Tytuł

7/2013

lipiec li i

Nr N 7 (90)

• Pierwsze kroki z S7-1200. Współpraca z programatorem PG/PC i pierwszy program • Systemy operacyjne w automatyce przemysłowej • Wielowątkowość a wielordzeniowość

ELEKTRONIKA PRAKTYCZNA 1/2009

107_ap1.indd 107

107

2013-06-28 08:12:48


108_ap2.indd 108

2013-06-28 08:13:02


Pierwsze kroki z S7-1200: współpraca z programatorem PG/PC i pierwszy program AUTOMATYKA I MECHATRONIKA

Pierwsze kroki z S7-1200

Współpraca z programatorem PG/PC i pierwszy program W  artykule opisano sposób zapisu programu do pamięci sterownika S7-1200 oraz pokazano sposób wykonania nieskomplikowanego programu testowego. Artykuł jest przeznaczony dla osób rozpoczynających programowanie sterownika S7-1200.

Rysunek 1. 1 – Diody LED statusu wbudowanych portów I/O; 2 – Diody LED statusu operacyjnego CPU; 3 – Złącze PROFINET; 4 – Slot karty pamięciowej (pod klapką); 5 – Rozpinane złącze na kable CPU S7-1200 składa się z modułu procesora, zintegrowanego zasilacza, obwodów wejściowych oraz obwodów wyjściowych umieszczonych w zwartej, plastikowej obudowie, co łącznie tworzy bardzo wydajny sterownik PLC. CPU jest wyposażona w  port PROFINET umożliwiający komunikację poprzez sieć PROFINET/Ethernet. Dostępne są również moduły komunikacyjne pozwalające na łączność poprzez interfejsy RS485 i RS232.

SCHEMAT POŁĄCZENIA CPU – SWITCH – ZASILACZ 24 VDC CPU – ZASILACZ 24 VDC

Nr. Funkcja Rysunek/Uwagi 1. 1. Menu wyboru funkcji. 2. Zadania do wybrania. 3. Wybór opcji dla wybranego zadania. 4. Zmiana widoku Portal View na Project View.

2.

Zmiana ustawień widoku Zmiany widoku podczas startu TIA Portal podczas pracy między dokonuje się wchodząc w Optionswidokiem Portal View ->General->Start View. Project View.

3.

Tworzenie nowego projektu rozpoczynij, wybierając Create new project. Wpisz nazwę projektu i kliknij Create.

Elementy zewnętrzne sterownika S7-1200 Schematy ukazują sposób przykładowego połączenia CPU z programatorem za pomocą interfejsu PROFINET, który tworzy fizyczne połączenie między urządzeniem programującym i CPU. CPU ma wbudowaną funkcję Auto-Cross-Over, więc w celu realizacji połączenia można zastosować kabel ethernetowy prosty lub skrosowany. W  celu utworzenia fizycznego połączenia między urządzeniem programującym i CPU należy wykonać następujące kroki: 1 Zainstalować CPU 2 Podłączyć kabel ethernetowy do gniazda portu PROFINET 3 Podłączyć kabel ethernetowy do urządzenia programującego W  celu utworzenia nowego projektu należy uruchomić Totally Integrated Automation Portal (TIA), klikając dwukrotnie na ikonę znajdującą się na pulpicie. Rozpoczęcie pracy w nowo utworzonym projekcie należy wykonać poprzez dodanie CPU i skonfigurowanie jego parametrów. Po wybraniu urządzenia TIA Portal przechodzi do widoku Project view(przy zaznaczonej opcji Open device view). Wybranie CPU w oknie dialogowym Add new device powoduje utworzenie wirtualnej listwy montażowej i CPU widocznych w oknie Device view. ELEKTRONIKA PRAKTYCZNA 7/2013

109-111_siemens.indd 109

CPU nie ma domyślnie ustawionego adresu IP. Użytkownik powinien w trakcie konfiguracji CPU ręcznie wpisać adres IP urządzenia. Pomaga to uniknąć konfliktu adresu IP, gdyż wszystkie urządzenia w  sieci PROFINET muszą mieć swój indywidualny adres IP. Jeżeli CPU jest połączona z routerem sieciowym, to należy również wpisać adres IP routera. Aby skonfigurować port PROFINET należy wybrać z okna Project tree pole Device configuration. Następnie w oknie dialogowym Device view zaznaczyć zielony prostokąt PROFINET. W znajdującym się poniżej oknie Properties wybierz pole konfiguracji Ethernet address. TIA Portal wyświetla okno dialogowe konfiguracji adresu Ethernet, które pozwala powiązać program zawierający projekt z adresem

109

2013-06-28 08:13:16


AUTOMATYKA I MECHATRONIKA Nr. Funkcja

1.

Rysunek/Uwagi

Pierwszą częścią adresu IP jest Network ID (który identyfikuje sieć w jakiej znajduje się dane urządzenie). Drugą częścią adresu IP jest

Wybierz Configure a device, aby dodać nowe urządzenie.

Host ID (unikalny dla każdego urządzenia w danej sieci). Adres IP 192.168.x.y jest standardowo rozpoznawany jako sieć prywatna, która nie jest dostępna w Internecie.

2.

Zaznacz Add New device.

Wybierając Unspecyfic CPU 1200 TIA Portal dokona autodetekcji urządzenia

Z drzewka urządzeń wybierz zainstalowany sprzęt lub kliknij Unspecific CPU 1200 w  celu autodetekcji. Zaznacz Open device view i  kliknij Add.

Nr.

Funkcja

1.

W okienku dialogowym Device view Wybierz detect w  celu uruchomienia procedury rozpoznania urządzenia.

2.

W oknie Hardware detection for PLC zaznacz sterownik z  odpowiednim adresem MAC. Każde urządzenie znajdujące się w  sieci PROFINET posiada indywidualny adres MAC.

IP tego CPU, które otrzyma ten projekt. Adres IP jest ustalany w chwili wczytania ustawień do CPU. Ustawienia stałego adresu IP programatora (Windows) można dokonać, wybierając kolejno Start->Panel sterowania->Połączenia sieciowe-><”twoje połączenie,karta sieciowa”>. Wybierz Ustawienia(Properties).Z listy dostępnych protokołów zaznacz Internet Protocol (TCP/IP), następnie Ustawienia(Properties). Mając zaznaczone pole Użyj następującego adresu IP(Use the following IP address), wpisz adres IP. Maska podsieci(subnet mask) zaktualizuje się automatycznie po kliknięciu jeden raz w polu deklaracji adresu maski podsieci.

Rysunek/Uwagi

Aby sprawdzić czy wybrano prawidłowy sprzęt, zaznacz urządzenie(właściwy adres MAC) i wciśnij Flash LED. Diody LED statusu operacyjnego CPU powinny migać.

Podczas tworzenia programu użytkownika dla wykonania zadań automatyki instrukcje programu są umieszczane w blokach kodu. Blok organizacyjny (OB) reaguje na specyficzne zdarzenia w CPU i może przerwać wykonywanie programu użytkownika. Domyślny blok organizacyjny (OB1), cyklicznego wykonywania programu użytkownika stanowi podstawową strukturę programu i jest jedynym niezbędnym blokiem kodu wymaganym przez program użytkownika. Dodatkowe systemowe bloki OB spełniają specyficzne funkcje, takie jak zadania rozruchowe, obsługę przerwań i błędów lub wykonywanie określonego kodu w zadanych odstępach czasu. Możesz deklarować zmienne, przeciągając je z  listy tagów, definiując bezpośrednio z  widoku CPU lub wpisując ręcznie adresy fizyczne.

Wczytanie programu do CPU Użytkownik może wczytać elementy swojego projektu z urządzenia programującego do CPU. Po wczytaniu projektu CPU przechowuje program użytkownika (OB., FC, FB, i DB) w pamięci stałej. Użytkownik może wczytać swój projekt z  urządzenia programującego do CPU z następującej lokalizacji. Funkcja „przeciągnij i upuść” (drag&drop) pozwala w intuicyjny sposób przemieszczać obiekty między edytorami paneli HMI oraz sterownika PLC. W tym wypadku programista jest zwolniony z deklaracji i pilnowania zmiennych w obu edytorach – panelu i sterownika. Wystarczy, że w jednym miejscu dokona zmian, a zmiany te zostaną zaktualizowane natychmiast w drugim edytorze. Dzięki temu można zaoszczędzić dużo czasu podczas programowania oraz unika się Rysunek 2.

110

109-111_siemens.indd 110

błędów na etapie wprowadzania i deklaracji zmiennych. ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:13:17


Pierwsze kroki z S7-1200: współpraca z programatorem PG/PC i pierwszy program Nr. 1.

Funkcja Rysunek/Uwagi W oknie dialogowym Project tree wybierz Program blocks i  kliknij dwukrotnie na Main[OB1]. Opcja Add new block umożliwia dodanie innych bloków OB, funkcji FC, bloku funkcji FB i  bloków danych DB.

2.

Dodaj do Network 1 dwa styki normalnie rozwarte metodą „przeciągnij i upuść” oraz jedną cewkę wyjściową.

Nr. Funkcja Rysunek/Uwagi 1. Z Project Tree: poprzez kliknięcie prawym klawiszem myszy na sterownik PLC, a  następnie wybór Download to device i  All z  menu kontekstowego.

2. Z menu Online poprzez kliknięcie pozycji Download to device.

3.

Z menu narzędziowego, zaznaczając wcześniej sterownik PLC, którego konfiguracje oraz program chcesz wgrać a  następnie klikając ikonę Download to device.

Nr. Funkcja Po zleceniu wczytania programu pojawią się następujące okna dialogowe:

Wczytanie programu ze sterownika PLC Przed przystąpieniem do odczytania programu użytkownika ze sterownika PLC należy założyć nowy projekt i dodać nowe urządzenie. Należy kliknąć prawym przyciskiem myszy na folderze sterownika PLC, po czym wybierz z rozwijanego menu Compare offline/online. Następnie w oknie dialogowym Compare editor kliknij w kolumnie Action na ikonę w celu zmiany wartości pola Description na Upload from device. W oknie Upload preview wciśnij UploDalej kliknij na ikonę ad from device w celu odczytania programu ze sterownika do Step7 Basic V10.5.

Rysunek/Uwagi

1. W okienku dialogowym Load preview zaznacz Continue i  wciśnij Load w  celu załadowania projektu do CPU.

2. W Load results zaznacz Start all i  wciśnij Finish w  celu ustawienia sterownika PLC w  pozycji Run.

Tomasz Starak

Rysunek 3. ELEKTRONIKA PRAKTYCZNA 7/2013

109-111_siemens.indd 111

Rysunek 4.

Rysunek 5.

111

2013-06-28 08:13:17


T E M AT N U M E R U AU T O M AT Y K A O S

AUTOMATYKA I MECHATRONIKA

Systemy operacyjne w automatyce przemysłowej Systemy operacyjne dla automatyki przemysłowej są współcześnie bardzo złożone. Obejmują nie tylko aspekty związane z kontrolą urządzeń automatyki, ale również pozwalają na dalece posuniętą integrację przedsiębiorstwa – od planowania produkcji aż do wyrobu finalnego. Niesie to ze sobą określone korzyści, ale i zagrożenia, ponieważ taki system musi być otwarty dla większej liczby użytkowników. Najważniejszą cechą systemu przemysłowego systemu operacyjnego jest determinizm czasowy, a  więc funkcjonalność gwarantująca jego reakcję w  ściśle określonym przedziale czasowym. Może to być przerwanie, sygnał z  czujnika czy inny, który ma wywołać określoną reakcję systemu. Jednak współcześnie przemysłowym systemom operacyjnym stawia się również wymagania odnośnie do wspomnianego we wstępie bezpieczeństwa, ochrony zasobów oraz pewności komunikacji, również w sieciach rozległych np. łączących ze sobą producenta i  podwykonawców podzespołów. Systemy operacyjne czasu rzeczywistego współcześnie są stosowane powszechnie i nie tylko w rozległych, przemysłowych instalacjach stacjonarnych, ale również w pociągach, samolotach. Dlatego też nowoczesny system operacyjny (nie tylko dla automatyki przemysłowej) musi obsługiwać różne standardy komunikacji i  połączeń sieciowych, wypełniając przy tym surowe wymagania bezpieczeństwa i ochrony, a przy tym urządzenia doń dołączone muszą być tak łatwe w obsłudze, jak to tylko możliwe. Najlepiej, aby interfejs użytkownika był podobny do znanego z  urządzeń powszechnego użytku, łatwy do opanowania i intuicyjny. Nie są to wymagania łatwe do spełnienia i nawet jakby sprzeczne. W  sukurs inżynierom przychodzą tu nowoczesne technologie: sprawne łącza światłowodowe, techniki wizualizacji zadań, coraz większa moc mikroprocesorów i coraz większe zasoby pamięci. Coraz częściej struktury układów mikroprocesorowych zawierają tez jednostki wspomagające sprzętowo pracę oprogramowania. Dzięki niektórym z  tych blokówOfunkcjonalnych układy mogą sprawnie szyfrować dane, dekodować je i  wykrywać potencjalne zagrożenia np. wirusy czy próby naruszenia integralności.

112

112-114_automatyka1.indd 112

Co ważne, funkcje realizowane sprzętowo są wykonywane znacznie szybciej i nie obciążają rdzenia, który w  tym czasie może realizować inne zadania. Oczywiście stawia to dodatkowe wymaganie przed systemem operacyjnym RTOS, który powinien mieć wsparcie dla takich mechanizmów. Oprócz tego coraz częściej stosuje się też architekturę wielordzeniową umożliwiającą rozdział zadań pomiędzy poszczególne rdzenie i  zmniejszenie częstotliwości taktowania mikroprocesora, co przyczynia się do obniżenia poboru mocy przy jednoczesnym wzroście wydajności. Jednocześnie rdzenie procesorów wielordzeniowych mają wydzielone, specjalne obszary pamięci, które pozwalają na współdzielenie danych lub ich rozdział, selekcjonowanie funkcji i aplikacji. Użycie systemu operacyjnego zapewniającego obsługę procesora wielordzeniowego pozwala na zarządzanie zadaniami, dzięki czemu w jednych obszarach pamięci są wykonywane zadania deterministyczne, natomiast w  innej niedeterministyczne. Oprócz wspomnianych zalet, taki rozdział pozwala na podwyższenie bezpieczeństwa aplikacji i przetwarzanych danych. Nie bez znaczenia jest też fakt wzrostu niezawodności i  sprawności innych podzespołów użytkowanych w  systemach RTOS. Dobrym przykładem są dyski Flash, które nie mają ruchomych elementów mechanicznych i  dzięki swej niezawodności pomału wypierają typowe HDD. W  zastosowaniach profesjonalnych ich względnie wysoka cena nie jest przeszkodą, ponieważ stanowi jedynie ułamek kosztów całego wyposażenia, a  zastosowanie dysków półprzewodnikowych znacznie podnosi niezawodność całej instalacji. Ciekawym przykładem urządzeń tego typu jest komputer przemysłowy PC Simatic Microbox 427 firmy Siemens. Użytkownik

ma wrażenie, że to jest zwykły sterownik PLC, natomiast w rzeczywistości Microbox ma w porównaniu z nim znacznie rozszerzoną funkcjonalność. Nerwem współczesnych systemów automatyki jest sprawna łączność pomiędzy poszczególnymi elementami składowymi. Dotyczy to nie tylko modułów sterowników, ale również tzw. świata zewnętrznego. Chodzi przede wszystkim o  możliwość informacji z  sieciami standardu Ethernet za pomocą protokołów IPv4 oraz IPv6 i  o  obsługę interfejsu szeregowego USB. Coraz częściej użytkownicy domagają się również się również połączeń bezprzewodowych, z różnymi sieciami z rodziny 802.x, sieciami MIPv4 i MIPv6 dla aplikacji mobilnych oraz obsługi protokołów IPsec i  HTTPS. Warto przy tej okazji wspomnieć, że uzupełniając system o  dodatki funkcjonalne trzeba mieć na uwadze ogólne bezpieczeństwo systemu. Ponadto, konieczność obsługi rozszerzeń może spowodować oddziaływanie na sposób działania mechanizmu kolejkowania zadań, dlatego rozszerzenia jest dobrze zaplanować na etapie projektowania aplikacji, aby twórca systemu operacyjnego mógł zaimplementować niezbędne funkcje i  przewidzieć ich zachowanie się. Mimo wszystko dla systemów automatyki słuszna jest jedna zasada – im mniej funkcji, tym lepiej i  bezpieczniej. Warto Kaskada awarii Połączenie wielu sieci może skutkować efektem kaskadowym. Taki problem spowodował przerwę w  dostawie energii do 50 milionów ludzi w  USA. Przyczyną kaskadowej awarii było uszkodzenie jednego z  systemów automatyki przemysłowej, co spowodowało niekompletne informacje o  postępujących awariach i  zmianach topologii sieci energetycznej. Stosunkowo niegroźna awaria kilku linii 345 kV w  północnym Ohio spowodowała kaskadowe przeciążenie innych linii 345 kV i  138 kV, co z  kolei spowodowało awarię całej sieci energetycznej. Utracono zasilanie o  mocy 61800 MW z  508 generatorów w  265 elektrowniach. W  polskim systemie zarządzania energią elektryczną zdarzenie polegające na całkowitym wyłączeniu zasilania na znacznym obszarze spowodowane przez kaskadową awarię jest mało prawdopodobne. Niemniej celowy atak przeprowadzony przeciw systemom automatyki przemysłowej może spowodować lokalne wyłączenia - przykładem mogą być wyniki ćwiczeń przeprowadzonych na jesieni 2012 r. we Wrocławiu, podczas konferencji Wolność i  Bezpieczeństwo. W  każdym przypadku przeprowadzenie takiego ataku wymagałoby zasobów klasy militarnej. Źródło: Computerworld

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:13:28


Systemy operacyjne w automatyce przemysłowej

W styczniu 2003r. wirus SQL Slammer, atakujący serwery bazodanowe Microsoft SQL Server dostał się do wewnętrznej sieci elektrowni atomowej DavisBesse w  stanie Ohio i  zaraził co najmniej jeden serwer. Skutkiem było wyłączenie systemu monitoringu bezpieczeństwa na blisko pięć godzin. Zarządzanie procesami w  elektrowni zostało wyłączone na sześć godzin. Wirus przedostał się do sieci elektrowni przez łącze T1, które zostało zestawione do sieci jednej z  firm trzecich poza firmowym firewallem.

zwrócić uwagę, że również zbyt duża liczba obsługiwanych protokołów komunikacyjnych – mimo iż dobrze wygląda w materiałach reklamowych – może utrudniać funkcjonowanie systemu automatyki, szczególnie w  aspekcie bezpieczeństwa zasobów i ochrony informacji. Dotychczas w różnych systemach stosowano różne stopnie ochrony za wyjątkiem ujednoliconych standardów w branży militarnej. Aktualnie są podejmowane kroki mające na celu stworzenie jednolitego standardu bazującego na sprzęcie i oprogramowaniu, zapewniającego jednakowo wysoki poziom ochrony. Osobną kwestią pozostaje ochrona danych przechowywanych na komputerach biurowych, dołączonych do sieci, gdyż jak wie każdy mający do czynienia z  bezpieczeństwem systemów informatycznych – najbardziej zawodnym elementem zabezpieczeń jest człowiek. Oprócz możliwości komunikowania się za pomocą popularnych standardów sieciowych, w przyszłości będą potrzebne również inne funkcje. W szczególności będą to kwestie rozwoju wielozadaniowości i odpowiednich dla niej standardów komunikacyjnych. Wiele aplikacji wykonujących jednocześnie kilka zadań wymaga do swojej obsługi odpowiednich protokołów komunikacyjnych, np. ze wsparciem dla kolejkowania i nadawania priorytetów poszczególnym telegramom. W zastosowaniach przemysłowych ważne są ELEKTRONIKA PRAKTYCZNA 7/2013

112-114_automatyka1.indd 113

również kwestie szeregowania zadań zgodnie z zadanymi kryteriami oraz tworzeniach chronionych, odizolowanych obszarów w  pamięci operacyjnej, przeznaczonych do ich obsługi. W  kontekście sprawności systemu operacyjnego oraz jego deterministyczności czasowej warto zastanowić się czy zbyt duża liczba obsługiwanych protokołów komunikacyjnych nie doprowadzi do sytuacji, w której mechanizm szeregowania zadań systemowych nie zostanie przeciążony i tym samym nie zachwieje podstawowej i najważniejszej cechy w  porównaniu z  typowymi sieciami i  systemami operacyjnymi – zdolności do obsługiwania zdarzeń w  ściśle określonym przedziale czasu. Rozważając sytuacje tego typu, w celu rozwiązania konkretnego problemu, można posłużyć się urządzeniami zewnętrznymi i „zrzucić” na nie odpowiedzialność za komunikację pomiędzy poszczególnymi aplikacjami systemu. Takie urządzenia mogą być też wyposażone w pewne dodatkowe funkcje służące do rozwiązania konkretnego problemu, np. mogą przesłać dane od CPU do miejsca w  sieci, w  którym nie wymagają one stosowania specjalnego systemu kodowania w  celu ich ochrony (np. zdalna pamięć). Przenoszenie danych i  separacja zadań mogą być stosowane nie tylko przy usprawnianiu ich szeregowania. Systemy opera-

cyjne czasu rzeczywistego z reguły pracują w środowisku, w którym pamięć operacyjna jest ograniczona. Jednocześnie wciąż rośnie liczba realizowanych przez nie zadań. W efekcie, niewielka pamięć – jeśli odnieść to do potrzeb – musi mieć możliwość obsługi coraz bardziej wyrafinowanych i skomplikowanych zadań. Aby temu sprostać, dostawcy systemów operacyjnych tworzą specjalne procedury postępowania pozwalające na ustalenie, co tak naprawdę jest potrzebne użytkownikowi danego systemu. W  jednej z  metod decydującą rolę odgrywa opinia i  wymagania użytkownika końcowego, na podstawie których już w fazie projektowania systemu podejmowane są decyzje odnośnie do dodania lub usunięcia określonych funkcji i aplikacji programowych, co pozwala na optymalizację obciążenia systemu i  zużycia jego zasobów. Dzięki takiemu podejściu użytkownicy mogą wybrać, które funkcje (np. diagnostyczne) powinny być umieszczone w systemie. Po całkowitym jego opracowaniu, w  razie potrzeby, te funkcje mogą być łatwo usunięte podnosząc efektywność systemu. W  efekcie końcowym gabaryty urządzeń mogą być mniejsze, a cały system bardziej kompaktowy. Inną metodą jest zmniejszenie aplikacji systemowych poprzez dobór właściwego języka programowania i  kompilatorów, który może doprowadzić do znacznej redukcji ob-

113

2013-06-28 08:13:28


T E M AT N U M E R U AU T O M AT Y K A O S

AUTOMATYKA I MECHATRONIKA jętości kodu aplikacji. Dla przykładu pakiet LabVIEW firmy National Instruments ma opcję, która pozwala na integrację i wielokrotne użycie istniejącego kodu przy programowaniu portów systemu czasu rzeczywistego do wykorzystania w różnych zastosowaniach. Wymagania odnośnie do przemysłowych systemów operacyjnych będą też rosły w miarę postępu w automatyzacji. Oczywiście trudno sobie wyobrazić, aby całe przedsiębiorstwo było sterowane przez pojedynczy komputer i w praktyce system operacyjny nadzoruje pracę podsystemów sterujących np. pakowaniem produktów, robotami malującymi lub spawającymi karoserię itp. Niemniej jednak kluczem do integracji całości jest sprawna komunikacja i szeregowanie zadań, zarówno w obrębie samego systemu operacyjnego, jak i  niżej, na poziomie mikroprocesora. Rosnąca liczba podsystemów będzie wymagała jeszcze większej sprawności systemu w celu ich obsłużenia.

Jacek Bogusz, EP Bibliografia: • http://www.controlengineering.pl/menu-gorne/artykul/article/nowoczesne-systemy-operacyjne-czasu-rzeczywistego/ • http://www.computerworld.pl/artykuly/387412/Ataki.na.automatyke.przemyslowa.html

114

112-114_automatyka1.indd 114

Atak popularnego wiruza Zotob sparaliżował w sierpniu 2005 r. 13 zakładów koncernu DaimlerChrysler. Chociaż wirus ten atakował zwykłe sieci biurowe, unieruchomił także automatykę przemysłową, gdyż korzystała z  tych samych systemów operacyjnych co biurowe stacje robocze. To samo zdarzyło się w  firmach Caterpillar, Boeing oraz kilku dużych agencjach medialnych. Atak równie popularnego Confickera sprawił, że w  dwóch firmach z  branży energetycznej w  stanie Nevada w  USA wdrożono awaryjne procedury pracy, do czasu usunięcia zagrożenia.

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:13:29


Wielowątkowość a wielordzeniowość Wielowątkowość i  wielordzeniowość to niezależne, ale dopełniające się, techniki projektowania aplikacji. Korzyści z  ich stosowania zależą od zadań powierzonych systemowi, ale może się zdarzyć, że żadna z  nich nie będzie odpowiednia w  danej sytuacji. Ponieważ pracujące wielowątkowo oraz wielordzeniowe procesory stały się normą i  są dostępne także w  komputerach SBC, projektanci układów cyfrowych powinni znać ich poszczególne ich cechy, wady i  zalety. Przetwarzanie współbieżne Zwiększenie wydajności systemu przez podniesienie jego częstotliwości taktowania powoduje większe zużycie mocy i  jest ograniczone technologiami elektronicznymi. Granica ta zwiększa się co roku, jednak wydajność tanich i  energooszczędnych rozwiązań wciąż pozostawia wiele do życzenia. Na szczęście, prawie wszystkie aplikacje komputerowe reprezentują pewien stopień współbieżności, ponieważ często istnieje potrzeba wykonywania wielu niezależnych zadań jednocześnie. Pozwala to na zastosowanie technik przetwarzania wielowątkowego, a w tym np. rozłożonego na wiele rdzeni procesora. Zadanie to nie zawsze jest proste, ale i tak łatwiejsze niż przekraczanie ograniczeń fizycznych, na które natrafiają twórcy procesorów. Cechą systemów wieloprocesorowych lub jednoprocesorowych ale wielordzeniowych jest wykorzystanie przetwarzania współbieżnego do podziału zadań. W  opty-

malizacji wykorzystania powierzchni procesora oraz zwiększenia efektywności energetycznej. W przeciwieństwie do układów wielowątkowych, rdzenie jednowątkowe, zanim wykonają zaplanowane operacje, muszą czekać na przesłanie danych z pamięci. Wielowątkowość może być więc zdefiniowana następująco: jeśli ze względu na opóźnienia w  komunikacji między procesorem a pamięcią, pojedyncze zadanie nie będzie w  stanie całkowicie wykorzystać zasobów procesora, jednoczesne przetworzenie wielu zadań trwałoby krócej niż wykonanie ich sekwencyjne. Innymi słowy, wielowątkowość oznacza możliwość uruchomienia więcej niż jednego ciągu instrukcji (wątku) w  tym samym czasie. W  tym celu procesor powinien mieć więcej niż jeden licznik i zbiór programowalnych rejestrów. Powielenie tych zasobów jest dużo mniej kosztowne niż wymiana całej jednostki obliczeniowej. Przykładowo, dla procesora MIPS32 34K, wykorzystującego architekturę wielowątko-

wą, wzrost powierzchni układu scalonego o 14% odpowiada 60-procentowemu wzrostowi przepustowości w stosunku do rdzenia jednowątkowego.

Skalowalność wielordzeniowości Teoretycznie, wieloprocesorowe architektury są nieskończenie skalowalne, jednak w praktyce tylko ograniczona liczba aplikacji mogłaby wykorzystać moc obliczeniową tysięcy procesorów. Z  kolei uruchomienie wielu wątków na pojedynczym rdzeniu przyniesie wzrost wydajności tylko do momentu maksymalnego obciążenia jego jednostek wykonawczych. Chociaż sposoby i cele stosowania wielordzeniowości i  wielowątkowości są różne, wspólnym wymogiem ich skutecznego wykorzystania jest użycie odpowiedniego oprogramowania oraz wielozada-

AUTOMATYKA OS T E M AT N U M E R U

WielowątkowośćI MECHATRONIKA a wielordzeniowość AUTOMATYKA

malnej sytuacji liczba wątków oprogramowania wykonywanych w tym samym czasie, powinna odpowiadać liczbie dostępnych w systemie procesorów. W  specjalizowanych systemach odpowiednie wątki mogą być przydzielane do różnych procesorów (a  niekiedy i  ich części), z których każdy ma inne przeznaczenie i może zostać optymalnie skonfigurowany do konkretnych operacji. Pozwalają na to np. najnowsze wersje QNX-a.

Wielowątkowy sprzęt Istnieją także procesory wielowątkowe, które mogą wykonywać przetwarzanie współbieżne, ale w nieco inny sposób niż układy wielordzeniowe. Zamiast wykorzystania technik podziału obciążenia na poziomie systemu, ich działanie polega na optyELEKTRONIKA PRAKTYCZNA 7/2013

115-116_automatyka2.indd 115

Rys. 1. Wydajność dwuwątkowego procesora MIPS 34K

115

2013-06-28 10:54:33


AUTOMATYKA OS T E M AT N U M E R U

AUTOMATYKA I MECHATRONIKA

system powinien zawierać minimalna liczbę rdzeni, niezbędną dla danej aplikacji. Budowanie systemu wielordzeniowego nie ma sensu, jeśli określone zadanie może być wydajnie zrealizowane przez pojedynczy rdzeń. Rys. 2. Wyniki testów

Kiedy wielowątkowość ma sens niowego systemu operacyjnego. Natomiast jednowątkowe, nieobsługujące tych technologii aplikacje powinny zostać napisane od nowa i zdekomponowane do postaci podprogramów lub oddzielnych wątków oprogramowania.

Kiedy wielordzeniowość ma sens Zastosowanie wielordzeniowości w projektach jest korzystne, jeśli funkcje systemu mogą być zdekomponowane do postaci niezależnych zadań. Wykorzystanie wielu wolniejszych rdzeni zamiast jednego bardzo wydajnego procesora przekłada się przeważnie na oszczędność mocy i  ewentualne także powierzchni, jeśli mniejsza przepustowość pozwala na użycie mniejszych komórek pamięci. Jeśli funkcje układu, które mają być wykonywane jednocześnie, nie mogą zostać zdekomponowane na etapie projektowania elektroniki systemu, można zastosować

podejście alternatywne, polegające na budowie symetrycznego klastra obliczeniowego, składającego się z wielu procesorów. Poszczególne procesory klastra wykonują przydzielone im w  locie zadania, dzięki czemu realizowane jest przetwarzanie współbieżne. Kosztem takiej elastyczności jest konieczność budowy złożonej sieci połączeń między poszczególnymi procesorami a  współużytkowaną szybką i  pojemną pamięcią. To zwiększa powierzchnię całego układu i  zużycie mocy, jednak wynikiem jest funkcjonalny odpowiednik systemu wielordzeniowego. Każdy dodatkowy rdzeń, niezależnie czy w  postaci oddzielnego procesora, czy też jako część jednego układu scalonego, powoduje wzrost sumaryczne powierzchni zastosowanych układów scalonych i nawet w trybie oszczędzania energii zużywa pewną ilość prądu upływowego. W  związku z  tym cały

Zastosowanie wielowątkowości przynosi korzyści w sytuacji, w której procesor musiałby długo czekać na instrukcje. Czas oczekiwania rośnie wraz ze wzrostem częstotliwości rdzenia i zależy także od technologii oraz sposobu zarządzania pamięcią przez daną aplikację. Typowe złożone oprogramowanie może być nieefektywne w  jednowątkowym środowisku przez 30% czasu, natomiast programy gorzej zoptymalizowane pod kątem pamięci – nawet przez 75% czasu pracy. Systemy, w  których szybkości procesora i  pamięci są dobrze dopasowane, tzn. nie występuje spadek wydajności spowodowany opóźnieniami w komunikacji między nimi, w ogóle nie zyskają na wielowątkowości. Dodatkowe zasoby procesora wynikające z  zastosowania wielowątkowości mogą być wykorzystane także do innych zadań, których nie można zrealizować w  systemie wielordzeniowym, opartym na procesorach konwencjonalnych. Jeśli, na przykład, w  zwykłym procesorze wystąpi żądanie przerwania, następuje wstrzymanie i  zapamiętanie stanu aktualnego programu i wykonanie kodu procedury przerwania. Natomiast wielowątkowy procesor może sprzętowo dokonywać przełączania wątków, co zapewnia wykonywanie przerwań bez opóźnienia obecnego w przypadku ich programowej obsługi.

Podsumowanie Z punktu widzenia efektywnego wykorzystania powierzchni i  mocy, optymalny procesor SoC powinien zawierać wielowątkowy rdzeń jako podstawowy element przetwarzający i  replikować go w  konfiguracji wielordzeniowej, jeśli aplikacja wymagałaby większej wydajności niż może zapewnić pojedynczy rdzeń.

Grzegorz Michałowski artykuł ukazał się w magazynie Elektronik

116

115-116_automatyka2.indd 116

ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 10:54:33


OgĹ&#x201A;oszenia i reklamy hurtowni, sklepĂłw, importerĂłw, producentĂłw, dealerĂłw, itp. sÄ&#x2026; pĹ&#x201A;atne. Cena podstawowego moduĹ&#x201A;u (35 x 20 mm) wynosi 66 zĹ&#x201A; + VAT. Koszt minimalnej ramki dla ogĹ&#x201A;oszeĹ&#x201E; o wielkoĹ&#x203A;ci 3 moduĹ&#x201A;Ăłw wynosi 198 zĹ&#x201A; + VAT. ModuĹ&#x201A;y moĹźna Ĺ&#x201A;Ä&#x2026;czyÄ&#x2021; zarĂłwno w pionie jak i w poziomie. Maksymalna szerokoĹ&#x203A;Ä&#x2021; ogĹ&#x201A;oszenia to 5 moduĹ&#x201A;Ăłw, wysokoĹ&#x203A;Ä&#x2021; 12 moduĹ&#x201A;Ăłw. Rabaty stosujemy wyĹ&#x201A;Ä&#x2026;cznie dla reklam powyĹźej 8 moduĹ&#x201A;Ăłw: 4-6 emisji 10%, 7-11 emisji 15% i od 12 emisji 25%. Oferta specjalna: â&#x20AC;˘ publikacja fragmentĂłw cennika w ramce o wielkoĹ&#x203A;ci: 8 moduĹ&#x201A;Ăłw w pionie cena 264 zĹ&#x201A; + VAT, 9 moduĹ&#x201A;Ăłw w poziomie 305 zĹ&#x201A; + VAT â&#x20AC;˘ rabat specjalny dla firm poszukujÄ&#x2026;cych pracownikĂłw wynosi 25% (wyĹ&#x201A;Ä&#x2026;cznie dla duĹźych reklam). Wszelkich informacji udziela Grzegorz Krzykawski, tel. 22 257 84 60, e-mail: grzegorz.krzykawski@ep.com.pl. Reklamy do tej rubryki mogÄ&#x2026; byÄ&#x2021; przygotowane przez ZamawiajÄ&#x2026;cego w postaci wydruku z drukarki laserowej lub pliku w formacie CDR, AI, EPS (tekst zmieniony na krzywe), PSD, PDF z prĂłbnym wydrukiem albo pliku w dowolnym edytorze tekstu (takĹźe z wydrukiem), jeĹ&#x203A;li krĂłj czcionek nie jest rzeczÄ&#x2026; duĹźej wagi. MaĹ&#x201A;e reklamy mogÄ&#x2026; byÄ&#x2021; przygotowane w redakcji (gratis) na podstawie odrÄ&#x2122;cznego szkicu lub maszynopisu. Opracowania te nie bÄ&#x2122;dÄ&#x2026; jednak wĂłwczas uzgadniane z ZamawiajÄ&#x2026;cym przed oddaniem do druku. Redakcja nie odpowiada za treĹ&#x203A;Ä&#x2021; reklam i  ogĹ&#x201A;oszeĹ&#x201E; zamieszczonych w  Elektronice Praktycznej

KWWSZZZPDV]F]\NSO HPDLOPDV]F]\N#PDV]F]\NSO

â&#x20AC;&#x17E;MASZCZYKâ&#x20AC;? 6XOHMĂśZHN0LĂŻRVQD XO0LFNLHZLF]D tel. (22) 783-45-20 ID[   NRP

Obudowy XU]Ă&#x2C6;G]HĂą SU]HQRÄ&#x201A;Q\FK

Obudowy QDV]\QĂ&#x161;

z-89F ]ĂŻ

z-100F ]ĂŻ

Obudowy KHUPHW\F]QH

Obudowy SLORWĂśZ

z-56 ]ĂŻ

p-7 ]ĂŻ

Niniejsze ogĹ&#x201A;oszenia sÄ&#x2026; informacjÄ&#x2026; handlowÄ&#x2026; i nie stanowiÄ&#x2026; oferty w myĹ&#x203A;l art. 66, § 1 Kodeksu Cywilnego. Ceny mogÄ&#x2026; ulec zmianie. 117-120_kramik.indd 117

2013-06-28 08:13:56


Atrakcyjna propozycja dla reklamodawców cennik o wymiarach 111×66 mm

cena 305 zł

(netto)

Więcej informacji: Grzegorz Krzykawski tel. 22 257 84 60 e–mail: grzegorz.krzykawski@ep.com.pl

Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie. 117-120_kramik.indd 118

2013-06-28 08:13:56


HURT - DETAL BNS Sp. z o.o. ul. Tysiąclecia 31, 40-873 Katowice tel. 32 250 45 42, faks 32 351 00 41

www.bns.com.pl

Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie. 117-120_kramik.indd 119

2013-06-28 08:13:57


avt.pl/prenumerata Nie przegap! interesujących materiałów w siostrzanym czasopiśmie W lipcowym wydaniu

Elektroniki dla Wszystkich między innymi:

Fragment cennika o wymiarach 73×89 mm cena specjalna:

264 złote netto

Szczegółowych informacji udziela Grzegorz Krzykawski tel. 22 257 84 60 grzegorz.krzykawski@ep.com.pl

Miniwieża z klocków Czy obecnie samodzielna budowa urządzeń audio ma jeszcze jakiś sens? Zapoznaj się z interesującym przykładem wykorzystania modułu panelowego odtwarzacza mp3 z tunerem, zegarem i budzikiem w domowym systemie audio. Rejestrator GPS Urządzenia GPS od szeregu lat cieszą się niesłabnącym zainteresowaniem. Przekonaj się, że budowa praktycznie użytecznego rejestratora i jego oprogramowanie, wcale nie są tak trudne, jak można byłoby sobie wyobrażać. PFC i Bill killer Jeżeli nie do końca czujesz temat PFC oraz współczesny problem współczynnika mocy, nie przegap materiału, który w przystępny sposób pokazuje istotę zagadnienia, a także rozmaite jego aspekty. PKE – Szoker, czyli przetwornica wysokiego napięcia Szósty wykład Praktycznego Kursu Elektroniki w sposób zaskakująco przystępny i praktyczny przedstawia tematykę przetwornic, zarówno pojemnościowych, jak i indukcyjnych. Nie taki diabeł straszny jak go malują... Oscyloskop audio CRT A może masz pomysł na ciekawy artykuł lub projekt? Monitory i telewizory kineskopowe pomału stają Skonstruowałeś urządzenie, się urządzeniami retro. Zapoznaj się z opisem niektóre jest godne zaprezentowania szerszej publiczności? skomplikowanej przeróbki, która staremu monoMożesz napisać artykuł edukacyjny? chromatycznemu monitorowi daje nowe życie. Chcesz podzielić się doświadczeniem? Ponadto w numerze  Praktyczny minutnik W takim razie zapraszamy do współpracy na łamach  Sterownik matrycy LED Elektroniki dla Wszystkich. Kontakt: edw@elportal.pl  Impulsowy zasilacz diod LED  Koleżeńskie porady – Panel z trawionego EdW możesz zamówić w sklepie internetowym AVT aluminium.  Warsztatowe patenty – Nietypowe obuhttp://www.sklep.avt.pl, telefonicznie 22 257 84 50, dowy fax: 22 257 84 55, listownie lub za pomocą e-maila:  Szkoła Konstruktorów – Nietypowe handlowy@avt.pl Do kupienia także w Empikach wykorzystanie tanich ogniw słonecznych i wszystkich większych kioskach z prasą. z lampek ogrodowych Na wszelkie pytania czeka także Dział Prenumeraty  Szkoła Konstruktorów – Dowolny układ tel. 22 257 84 22, prenumerata@avt.pl zdalnego sterowania, najlepiej nietypowy

www.elportal.pl

Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie. 117-120_kramik.indd 120

2013-06-28 08:13:57


Tytuł

Bestsellery dla elektroników

kod zamówienia

KS–130500

USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32 Książka powstała z myślą o konstruktorach i programistach systemów mikroprocesorowych niewtajemniczonych w arkana USB, który jest obecnie najpopularniejszym interfejsem komunikacyjnym, zarówno w urządzeniach przenośnych jak i stacjonarnych. Autor na praktycznych przykładach pokazał, jak zaprogramować interfejsy USB w mikrokontrolerach STM32 z rdzeniami ARM Cortex-M3 lub Cortex-M4. Przykłady przetestowano na mikrokontrolerach STM32F103, STM32F107, STM32F207, STM32F407 oraz STM32L152, co daje pełny przekrój „silników” interfejsów USB stosowanych w mikrokontrolerach STM32. Zamiarem autora było zainteresowanie tematyką USB w systemach embedded zarówno elektroników hobbystów, studentów kierunków związanych z elektroniką lub informatyką, jak i doświadczonych konstruktorów i programistów systemów mikroprocesorowych. Żeby opanować materiał przedstawiony w książce potrzebne jest minimalne doświadczenie w programowaniu mikrokontrolerów i znajomość podstaw języka C. Marcin Peczarski, stron: 408 cena: 89 zł

Budowa robotów dla średnio zaawansowanych. Wydanie II Książka Budowa robotów dla średnio zaawansowanych zawiera praktyczną wiedzę, którą podzielić może się wyłącznie doświadczony budowniczy robotów - wiedzę, którą początkujący może zdobyć tylko na własnych błędach. Znajdziesz tu wypróbowane algorytmy podążania za linią oraz porady na temat tego, które elementy elektroniczne warto szlifować. Dowiesz się, że dobrze umieszczony przełącznik pozwala lepiej unikać przeszkód niż para czułek. Nauczysz się również, jak zabezpieczać kondensatory przed eksplozją... Będziesz korzystać z wielu technik stosowanych przez zawodowych inżynierów robotyków - doświadczysz przy tym tych samych wyzwań i radości, gdy Twój robot „ożyje”. David Cook, stron: 441, cena: 69 zł

kod zamówienia

KS–130501

kod zamówienia

KS–130502

Inteligentny dom. Automatyzacja mieszkania za pomocą platformy Arduino, systemu Android i zwykłego komputera System powiadamiający o poziomie wody, elektryczny pies obronny czy system wykrywający dostarczone paczki to tylko część pomysłów, które pozwolą Ci opanować niuanse tworzenia własnych projektów. Dzięki lekturze tej książki samodzielnie zbudujesz karmnik, który będzie publikował na Twitterze wpisy o przylatujących ptakach i konieczności uzupełnienia ziarna. Będziesz sterował oświetleniem wewnątrz i na zewnątrz domu za pomocą odpowiedniego programu. Zabezpieczysz swój dom przed nieproszonymi gośćmi. Stworzysz autonomiczny system podnoszenia i opuszczania zasłon zależnie od temperatury i natężenia światła w pokoju. Sprawisz, że Twój dom przemówi w momencie, gdy przyjdzie do Ciebie e-mail lub odwiedzą Cię goście... Książka ta będzie niewyczerpanym źródłem inspiracji dla kolejnych innowacji w Twoim domu. Spróbuj tego, naprawdę warto! Mike Riley , stron: 296, cena: 49 zł

Spraw, by rzeczy przemówiły. Programowanie urządzeń elektronicznych z wykorzystaniem Arduino Ciężko nam w to uwierzyć, ale całkiem niedawno komputery były odizolowanymi jednostkami, niezdolnymi do komunikowania się między sobą. Dzisiaj potencjał samych komputerów, tabletów i telefonów połączonych w sieć jest oszałamiający. Budowanie projektów elektronicznych, które prowadzą interakcję ze światem fizycznym, to dobra zabawa. A kiedy urządzenia, które budujesz, zaczynają komunikować się między sobą, staje się to naprawdę interesujące. Trzydzieści trzy łatwe projekty z tej książki pokazują, jak sprawić, by Twoje gadżety komunikowały się z Tobą i Twoim środowiskiem. To idealna propozycja dla ludzi z niewielką wiedzą techniczną, ale dużym zainteresowaniem tematem! kod zamówienia

Tom Igoe, cena: 79 zł

KS–130504

Dowolną książkę z kompletnej bibliotekii elektronika można znaleźć na www.sklep.avt.pl Niniejsze ogłoszenie jest informacją handlową i nie stanowi oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.

ELEKTRONIKA PRAKTYCZNA 1/2009

121_ksiegarnia.indd 121

121

2013-06-28 08:14:10


Kity AVT

Najpopularniejsze Kity AVT dostępne w wersjach A, B, C A – płytka drukowana z dokumentacją B – kit, czyli zestaw elementów z płytką drukowaną i dokumentacją C – moduł (urządzenie) zmontowany i uruchomiony z instrukcją tylko w języku polskim

Cena PLN Kod

Nazwa

Publ.

Cena PLN Kod

z VAT (23%)

A

B

C

RTV/Audio/Video AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT

594 1023 1024 1492 2132 2153 2180 2392 2449 2477 2728 2864 MOD07 MOD11 MOD12

Zdalnie sterowany potencjometr Przedwzmacniacz gramofonowy RIAA Wzmacniacz słuchawkowy Wzmacniacz 2 x 100 W Przedwzmacniacz z regulacją barwy Wzmacniacz 100 W  z  TDA7294 Wzmacniacz mocy z  LM3886 Wzmacniacz mikrofonowy SMD Filtr do subwoofera Wzmacniacz mocy 70 W  na TDA 1562 Wzmacniacz mikrofonowy Analizator widma Wzmacniacz słuchawkowy Wzmacniacz mocy 2×12 W Wzmacniacz mocy 2×22 W

AVT 1615 AVT 1616 AVT 1618 AVT 1619 AVT 1620 AVT 1622 AVT 1625 AVT 1633 AVT 1646 AVT 1649 AVT 1665 AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT

1666 1668 3500 3505 5272 MOD03 MOD04 MOD05 MOD06 PROG1 PROG2

AVT AVT AVT AVT AVT

733 735 1066 1459 1572

Uniwersalny adapter dla AVR EP2/08 Minimoduł z ATtiny2313 EP2/11 AVTduino LCD - wyoewietlacz LCD dla EP4/11 Arduino AVTduino LED - wyoewietlacz LED dla EP5/11 Arduino AVTduino JOY – manipulator dla Arduino EP6/11 AVTduino Motor – driver silników dla EP9/11 Arduino Cortexino – kompatybilna z  Arduino płytka EP5/11 z  LPC1114 Minimoduł z  ATMEGA8 EP6/11 PICduino – kompatybilna z  Arduino płytka EP7/11 z  PIC18F2550 Uniwersalny moduł rozszerzeń dla Arduino EP8/11 AVTduino BT – moduł Bluetooth kompatyEP9/11 bilny z  Arduino Moduł karty pamięci kompatybilny EP11/11 z  Arduino Moduł wyświetlacza LCD z  mikrokontroleEP2/12 rem ATmega8 AVTduino RELAY moduł przekaźników EP3/12 AVTduino ETHERNET EP3/12 Płytka testowa do kursu BASCOM AVR EdW12/02 Płytka testowa do kursu C EdW1/06 AVTduino – sposób na AVR EP1/11 Konwerter USB<–>RS485 Moduł przekaźników na USB Ethernetowy moduł I/O Uniwersalny moduł portów I/O  na USB Programator USB – AVR (STK500 v2) Mini programator USB – AVR (STK500 v2)

38 5 5,5 15 4 7 8 6 6 7 4 36

90 19 26 67 24 57 88 19 22 85 20 74

110

130 30 38 100 35 137 74 38 42

18 8 14

75 29 40

125 37 52

10

43

53

10

29

38

11

33

44

11

67

90

EdW1/05 EdW3/05 EP8/95 EP12/07 EP6/10

390 513 924 925 950/1

8-kanałowy przełącznik RC5/SIRC EP4/05 Zegar z 2-kanałowym termometrem EP10/03 Programowany sterownik świateł EP4/06 Karta przekaźników na USB EP4/06 Termostat elektroniczny EP9/06 Automat do zapalania świateł w  samochoAVT 990 EP6/07 dzie AVT 1007 Regulator obrotów silnika elektrycznego EP8/94 AVT 1314 Najprostszy sterownik silnika krokowego EP8/01 AVT 1474 Generator fali prostokątnej EP8/08 AVT 1476 Włącznik zmierzchowy EP8/08 AVT 1510 Bariera laserowa EP1/09 AVT 1520 Zdalny włącznik radiowy EP4/09 AVT 1525 Sterownik unipolarnego silnika krokowego EP6/09 Regulator obrotów wentylatora 230 V AVT 1613 EP4/11 z  silnikiem indukcyjnym AVT 2210 Najprostszy regulator mocy 230 V EdW3/97 Ładowarka akumulatorów żelowych – AVT 2309 EdW10/98 zasilacz buforowy AVT 2715 Ładowarka akumulatorów ołowiowych EdW3/04 2-kanałowy termometr z  dwukolorowym AVT 5108 EP8/07 wyświetlaczem LED AVT 5250 Karta przekaźników z  interfejsem Ethernet EP8/10 AVT 5330 8-kanałowy termometr do PC EP2/12 Czterokanałowy termometr z  wyświetlaAVT 5389 EP5/12 czem LED AVT MOD01 Regulator impulsowy DC (15 A) AVT MOD08 Bezstykowa kontrola dostępu (RFID)

8

40

53

67

94

15

23

32

8

80

94

8

22

38

9

66

92

AVT 710

10 10 22 34 11

38 54 120 122 63

52 82 200 190 84 65 92 350 90 98 67

AVT 719

6 6 4 5 7

30 25 18 20 36

49 38 24 30 57

MT3/97

6

32

52

EdW3/98

6

37

58

EdW3/08

31

76

98

EdW1/12 EP10/02 EP3/12

AVT AVT AVT AVT AVT

12

Przyrządy warsztatowe Monitor i konserwator akumulatora Regulator impulsowy DC Miniaturowy zasilacz uniwersalny Uniwersalny układ czasowy Symetryczny zasilacz warsztatowy Najmniejszy moduł miniwoltomierza na AVT 2126 LCD AVT 2270 Moduł miliwoltomierza do zasilaczy Moduł woltomierza/amperomierza z  terAVT 2857 mostatem AVT 2999 Mini Kombajn Pomiarowy AVT 5083 Mikroprocesorowy zasilacz laboratoryjny AVT 5333 Multimetr panelowy AVT MOD09 Konwerter USB <–> RS232 AVT MOD10 Miernik częstotliwości 50 MHz

Publ.

z VAT (23%)

A

B

C

Dla domu, samochodu, wypoczynku i zabawy EP10/04 EP11/94 EP10/94 EP11/08 EdW2/97 EdW8/97 EdW2/98 EdW2/00 EdW9/00 EdW3/01 EdW7/04 EdW5/08

Układy uP, uC i do PC AVT 1462 AVT 1610

Nazwa

60 40 23

170 56 49

260 70 36 46

17 30 22 22 36

36 88 38 67 94

50 140 55 80 143

5

26

40

6 6,5 5 4 6 36 22

30 38 28 24 50 69 38

48 45 50 32 90

6

34

52

5,1

25

33

6,3

24

39

6

36

59

29

78

106

52 22

190 64

280 95

27

65

110 64 140

Zestawy startowe AVT AVT AVT AVT

701 702 703 704

AVT 705

Zestaw startowy: rezystory – 660 szt. Zestaw startowy: kondensatory – 265 szt. Zestaw startowy: elektrolity – 100 szt. Zestaw startowy: półprzewodniki – 76 szt. Zestaw startowy: elementy mechaniczne – 600 szt. Zestaw do wykonywania płytek drukowanych Zestaw startowy diody LED – 142 szt.

19 26 26 16 25 28 28

Nowości AVT 1740 AVT 1741 AVT 1742

Zbliżeniowy włącznik oświetlenia Włącznik pompy odwadniającej Rozbudowany termostat Moduł sterownika komfortowych kierunAVT 1743 kowskazów Wzmacniacz mocy 10 W z  układem AVT 1744 TDA2003 AVT 5401 Radioodbiornik kieszonkowy z  RDS AVT 5399 Dwukanałowy multimetr panelowy AVT 5400 DMX Dimmer & Relay rozszerzeń dla Raspberry Pi. InterAVT 5402/1 Moduł fejs płytki stykowej Moduł rozszerzeń dla Raspberry Pi. Płytka AVT 5402/2 wejść analogowych Moduł rozszerzeń dla Raspberry Pi. Płytka AVT 5402/3 prototypowa AVT 5405 Komputer samochodowy AVT 5403 ADAU1701 – DSP dla każdego AVT 5404 Dwudrożna zwrotnica aktywna AVT 1745 Miniaturowy moduł przekaźników z  RS485 Wzmacniacz o  mocy 20 W  z  układem AVT 1746 LM1875 Wzmacniacz słuchawkowy z  układem AVT 1747 TPA6111 AVT 1748 Zabezpieczenie akumulatora ołowiowego

EP5/13 EP5/13 EP6/13

20 8 8

39 26 22

EP6/13

12

56

EP6/13

6

18

EP6/13 EP6/13 EP6/13

18 23 28

51 96

EP6/13

12

19

EP6/13

8

53

52

27

EP6/13

14

22

EP7/13 EP7/13 EP7/13 EP7/13

14 10 12 18

68 34

49

EP7/13

8

36

48

EP7/13

6

EP7/13

5

24

Pełna oferta oraz prezentacje techniczne kitów i modułów są dostępne na stronie: sklep.avt.pl 122

ELEKTRONIKA PRAKTYCZNA 7/2013 Niniejsze ogłoszenie jest informacją handlową i nie stanowi oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.

122_oferta.indd 122

2013-06-28 08:14:20


Prenumerata

za darmo lub półdarmo

Jeśli jeszcze nie prenumerujesz Elektroniki Praktycznej, to spróbuj za darmo! Warunkiem otrzymania 3-miesięcznej bezpłatnej prenumeraty próbnej od sierpnia jest wniesienie, jako swego rodzaju „kaucji”, opłaty za następne 9 miesięcy (144,00 zł). Jeśli nie uda nam się przekonać Cię do prenumeraty i zrezygnujesz z niej przed 16 października 2013 – otrzymasz zwrot całej swojej wpłaty. Nie musisz próbować, bo jesteś zdecydowany na prenumeratę? Wybierz relatywnie najtańszą opcję startową, czyli prenumeratę 2-letnią, której cenę obniżyliśmy o wartość aż 8 numerów! Jeśli już prenumerujesz EP, nie zapomnij przedłużyć prenumeraty. W ten sposb uzyskasz prawo do jeszcze atrakcyjniejszych zniżek – nawet do 50% ceny czasopisma! Szczegóły na www.ep.com.pl/oferta-prenumeraty. Prenumerata Elektroniki Praktycznej to również: • 80% zniżki na równoległą prenumeratę e-wydań (co oznacza dostęp do najnowszych wydań jeszcze przed ukazaniem się pisma w kiosku!) • 50% zniżki na archiwum EP (na PenDrive’ie, karcie lub DVD) – Prenumeratorzy płacą tylko 48 zł • 50% zniżki na wydania specjalne „Elektronika Praktyczna Plus” – Prenumeratorzy płacą tylko 13 zł • co miesiąc CD „Niezbędnik Elektronika”, a na nim m.in. narzędzia programowe, karty katalogowe i noty aplikacyjne (tylko dla Prenumeratorów) • zniżki w sklepie www.sklep.avt.pl • zniżki w wielu innych sklepach elektronicznych i inne przywileje Klubu AVT-elektronika (www.avt.pl/klub-elektronika)

Po prostu - jak w niebie!

Zaprenumeruj Elektronikę Praktyczną w lipcu, a otrzymasz – do wyboru: koszulkę z logotypem EP lub płytę K. D. Lang „Sing It Loud” m.in. z piosenką „Heaven”.”

A więc – zamów prenumeratę! Możesz to zrobić na kilka sposobów: • dokonując wpłaty na nasze konto: AVT-Korporacja Sp. z o.o., ul. Leszczynowa 11, 03-197 Warszawa, BNP Paribas Bank Polska SA, 97 1600 1068 0003 0103 0305 5153 • wypełniając formularz w Internecie (na stronie www.ep.com.pl/prenumerata.html) – tu można zapłacić kartą lub dokonać szybkiego przelewu • wysyłając na numer 663 889 884 SMS-a o treści PREN – oddzwonimy i przyjmiemy zamówienie (koszt SMS-a wg Twojej taryfy) • zamawiając za pomocą telefonu, e-maila, faksu lub listu. Informację, jaki prezent wybierasz, przekaż nam przed końcem lipca – mailem (prenumerata@avt.pl), faksem (22-257-84-00), telefonicznie (22-257-84-22) lub listownie (Wydawnictwo AVT, Dział Prenumeraty, ul. Leszczynowa 11, 03-197 Warszawa)

NIEZBĘDNIK ELEKTRONIKA

to płyta CD, którą co miesiąc dostają TYLKO PRENUMERATORZY EP. Niezbędnik elektronika to narzędzia programowe, karty katalogowe, noty aplikacyjne... Niezbędnik elektronika to krążek, który trzeba mieć. Nie pozwól, by taki rarytas przechodził Ci koło nosa: zaprenumeruj Elektronikę ę Praktyczną!

Tylko Prenumeratorzy mogą kupić pełne archiwum EP (lata 1993-2008) w formacie PDF ze zniżką 50%. Cena wynosi 96 zł, ale

dla Prenumeratorów tylko 48 zł!

Archiwum wydaliśmy na trzech nośnikach: DVD, karcie microSD i PenDrive’ie Zamówić je można na stronie sklep.avt.pl

Cena najnowszego wydania d EP+ to 26 zł, ł ale... Prenumeratorzy płacą jedynie 13 zł!

Nie lubisz płacić wszystkiego na raz? Pomyśl o stałym zleceniu bankowym: www.avt.pl/szb Dział Prenumeraty Wydawnictwa AVT, ul. Leszczynowa 11, 03-197 Warszawa, tel.: 22 257 84 22, faks: 22 257 84 00, e-mail: prenumerata@avt.pl 123_prenumerata.indd 123

2013-06-28 08:14:32


WYKAZ FIRM DZIAŁ OGŁASZAJĄCYCH SIĘ W TYM NUMERZE ELEKTRONIKI PRAKTYCZNEJ AKSOTRONIK ............................... 119 ARMEL ......................................... 117 ASTAT ............................................ 17

Elektronika Praktyczna 8/2013 Kolejne gigabajty narzędzi niezbędnych do pracy konstruktora, ktora, czyli NIEZBĘDNIK ELEKTRONIKA NIKA na DVD. Tylko dla prenumeratorów EP.

BNS ............................................. 119 BORNICO ....................................... 10 DELTA ......................................... 117 ELMARK AUTOMATYKA ............... 105 ELMAX......................................... 118 ELPIN ........................................... 118 ELPOD.......................................... 118 EVATRONIX .................................... 49 FARNELL ELEMENT14 ................... 126 FERYSTER ................................. 12, 73 GAMMA ........................................ 73 GTB SOLARIS ................................ 117 HUMA ................................... 73, 120

Sterownik silników DC o średniej mocy

MASZCZYK................................... 117

Za miesiąc użyteczny moduł dla Arduino, który umożliwia sterowanie i monitorowanie dwóch silników prądu stałego o średniej mocy i prądzie uzwojeń do 2,8A zasilanych napięciem 8…50 V. Układ współpracuje z płytkami zgodnymi mechanicznie z Arduino zasilanymi napięciem 5…3,3 V dzięki czemu można go stosować z zestawami STM, Freedom, Pioneer itp.

NDN ........................................ 3, 125

Wyciszacz odbiornika TV

KRADEX ....................................... 117 KRISTECH ..................................... 119

PIEKARZ ................................. 73, 119 PYFFEL ......................................... 117 QWERTY ........................................ 12 RENEX ........................................... 73 RS COMPONENTS ............................ 7 RUTRONIK ...................................... 11 SEMICON ....................................... 29 ST MICROELECTRONICS ...................... ................................ 5, 45, 51, 53, 55 TELMATIK .................................... 117 TESPOL .......................................... 15 TRANSFER ELEKTRONIK ................ 117 UNISYSTEM.................................... 19 WOBIT .................... 41, 73, 104, 118 Reklamy 124 stron internetowych na str. 73

124_zapowiedzi.indd 124

Urządzenie powstało w odpowiedzi na potrzebę znalezienia najprostszego z możliwych sposobów wyciszania odbiornika TV. Prezentowane urządzenie przyda się również osobom, które chcą sterować zdalnie urządzeniami bez użycia jakichkolwiek podręcznych gadżetów.

Wzmacniacz audio o mocy 2x40 W Tematyka wzmacniaczy audio cieszy się niesłabnącym zainteresowaniem. Za miesiąc urządzenie, które jest uzupełnieniem przedwzmacniacza LM4562 i przetwornika DAC z TDA1541. Zestaw tworzy kompletny system o dobrej jakości, nieodbiegającej od rozwiązań fabrycznych.

Sterowany radiowo przełącznik ON-OFF Za miesiąc zaprezentujemy opis przełącznika typu włącz/wyłącz sterowanego drogą radiową.

Cyfrowa ramka do zdjęć W kolejnym numerze EP projekt o charakterze jak najbardziej wakacyjnym. Będzie to cyfrowa ramka do zdjęć, ale z wyświetlaczem OLED!

Oraz wiele, wiele innych projektów i miniprojektów. Tradycyjnie, jak co roku, w sierpniowej EP można spodziewać się góry użytecznych urządzeń do wykonania w czasie wakacji! Nietuzinkowe zajęcie na wakacyjne wieczory. Nie możesz tego przegapić! ELEKTRONIKA PRAKTYCZNA 7/2013

2013-06-28 08:14:48


000_wklejka_CD.indd 1

2013-06-28 08:02:55


13 Niezbędnik EP 7/20 cej na str. 8 ię w a: b dnik elektronik Niezbę

CDEP 7/2013 Dodatkowe materiały do artykułów: • Projektowanie PCB pod katem ESD • Programowanie w LabView • C2000 Piccolo LaunchPad Dodatkowe materiały do projektów: • Projekty pokrewne • Noty katalogowe • Programy • Źródła • PCB

, P T F R E W R E S Y N J Y C K A D E R : . N I . M M I N A NA Dodatkowe materiały oraz poprzednie części do artykułów: • Projektowanie PCB pod kątem ESD •Programowanie w LabView •C2000 Piccolo LaunchPad

Dane wymagane do logowania na serwerze FTP Elektroniki Praktycznej: host: ftp://ep.com.pl • user: 52617 • pass: 30lct328 Uwaga: na serwerze FTP są dostępne materiały od numeru 12/2009 do wydania bieżącego. Dostęp do poszczególnych materiałów dla Czytelników EP po podaniu unikatowego hasła opublikowanego w EP.

000_wklejka_CD.indd 2

2013-06-28 08:02:56


Nowe oscyloskopy serii: HMO3000: HMO3032/HMO3034, 300MHz, 2/4 kana³y HMO3042/HMO3044, 400MHz, 2/4 kana³y HMO3052/HMO3054, 500MHz, 2/4 kana³y y y y y y y y y y y y

Zasilacze programowalne serii HMP

Próbkowanie o częstotliwości 4GSa/s w czasie rzeczywistym Pamięć akwizycji o pojemności 8M punktów/kanał Rozciąg przebiegu funkcją Zoom w stosunku 200 000:1 Tryb sygnałów mieszanych MSO z 8/16 kanałami logicznymi Opcjonalne wyzwalanie szeregowe I2C + SPI + UART/RS-232 (HOO10/ HOO11), CAN + LAN (HOO12) Czułość odchylania pionowego 1mV/dz, regulacja składowej stałej w zakresie ±0,2…±20V Tryby wyzwalania: zbocze, sygnał wideo, szerokość impulsu, stan logiczny, wyzwalanie z opóźnieniem (czas, zdarzenie) Analiza widmowa przebiegu szybką transformatą Fouriera (FFT) 6-cyfrowy częstościomierz, funkcja samonastawności Autoset, pomiary automatyczne, edytor formuł 3 porty USB do podłączenia pamięci masowej, drukarki W oscyloskopach serii HMO3000 (300 i 400MHz) można zwiększyć pasmo do 500MHz przez zakup licencji

y y y y y y y y y

y y y y y y y y y

Analizatory widma: HMS1000/HMS3000 y y

y y y y y

HMP2020: 1 x 0…32V/0…10A, 1 x 0…32V/0…5A HMP2030: 3 x 0…32V/0…5A, HMP4030: 3 x 0…32V/0…10A, HMP4040: 4 x 0…32V/0…10A, Moc wyjściowa 384W uzyskiwana dzięki układowi inteligentnego zarządzania mocą Niski poziom tętnień <150μV dzięki wyjściowym stabilizatorom liniowym Wysoka rozdzielczość ustawienia i odczytu 1mV/0,1mA Izolowane galwanicznie od siebie i od masy kanały wyjściowe Zaawansowany tryb pracy równoległej i szeregowej wyjść ze śledzeniem napięcia lub prądu Definiowanie dowolnych charakterystyk napięcia i prądu wyjściowego funkcją EasyArb FuseLink: ustawianie powiązań bezpieczników elektronicznych indywidualnie dla każdego kanału Dowolnie ustawiany poziom zabezpieczenia przed przepięciem (OVP) dla wszystkich wyjść Przejrzyste wyświetlanie parametrów pracy na ekranie LCD i podświetlanych przyciskach Interfejs USB/RS-232; opcjonalnie IEEE-488 lub Ethernet/USB

Pasmo częstotliwości: 100kHz…1GHz/3GHz Zakres pomiaru amplitudy: -114dBm…+20dBm; Wyświetlany średni poziom szumu (DANL) -125dBm/-125dBm z opcjonalnym przedwzmacniaczem HO3011 Pasmo rozdzielczości (filtr RBW): 100kHz 1kHz…1MHz ze skokiem 1-3, oraz 200kHz (-3dB) i dodatkowo 9kHz, 120kHz, 1MHz (-6dB) Czystość widmowa: < -100dBc/Hz (przy100kHz) Pasmo filtru wideo (VBW): 10Hz…1MHz ze skokiem 1-3 Generator śledzący (TG) (HMS1010/HMS3010): -20dBm…0dBm Zintegrowany demodulator AM i FM (wewnętrzny głośnik) Detektory: Auto-, min-, max-peak, sample, RMS, quasi-peak 8 znaczników wraz ze znacznikiem różnicowym 6,5” kolorowy ekran TFT o rozdzielczości VGA, wyjście DVI 3 porty USB do podłączenia pamięci masowej, drukarki

Gdzie liczy się mobilność

Generator sygnałowy na dziś i na jutro

R&S®FSH4/8/13/20

Najszybszy analizator na rynku - 1000 przebiegów/s

R&S®FSV

R&S®SMBV100A

Przenośne analizatory widma do 20 GHz Wektorowe generatory sygnałowe

Analizatory sygnałów

EMC-PCS 3 Zestaw do analizy EMC

W skład zestawu wchodzą: nowoczesny analizator spektralny HMS3000, sieć sztuczna HM6050-2, zestaw sond HZ540 i oprogramowanie HM EMC PreCom pod system operacyjny Windows. ● HMS3000 (3 GHz Analizator widma)

● HM6050-2 (Sieć sztuczna)

elektromagnetycznej (Oprogramowanie pracuje pod systemem Windows 32 bit i obsługuje moduł HO720 standardowych interfejsów RS232/USB).

!! E I N A Z Ą I W Z O R E W O GOT

● HZ540 (3 aktywne sondy szerokopasmowe)

Pasmo: 100kHz÷3GHz, okres przemiatania częstotliwości: 20ms÷1000s, pasma filtrów rozdzielczych: 100Hz÷1MHz skokowo w sekwencji 1-3, 200kHz (-3dB), dodatkowo 200Hz, 9kHz, 120kHz, 1MHz (-6dB), pasma filtru video: 10Hz÷1MHz skokowo w sekwencji 1-3

®

Pomiar zakłóceń przenoszonych przez sieć zasilającą w zakresie częstotliwości 9kHz÷30MHz (CISPR 16), włączany ogranicznik impulsów przepięciowych, gniazdo do podłączenia "sztucznej ręki"

● HM PreCom EMC (Oprogramowanie) HM PreCom EMC analizatora widma pozwala na wstępne pomiary zgodności z wymaganiami norm kompatybilności

Zestaw HZ540 składa się z: - Sonda pola magnetycznego (typ H) - Sonda wysokoimpedancyjna - Sonda pola elektrycznego (typ E)

02-784 Warszawa, ul. Janowskiego 15 tel./fax (22) 641-15-47, 644-42-50 http://www.ndn.com.pl e-mail: ndn@ndn.com.pl

125.indd 125

2013-06-28 08:15:04


POTRZEBUJESZ SZYBKO ATRAKCYJNEJ OFERTY CENOWEJ? RZUĆ WYZWANIE

NASZEMU SPECJALIŚCIE! f szybkie oferty na każdy z 500 000 produktów f 9900 obniżonych cen f 7000 linii produktowych kwotowanych dziennie

Skontaktuj się z nami w sprawie oferty: Wyślij wiadomość e-mail: info-pl@farnell.com Zadzwoń: 00800 121 29 67 lub prześlij zapytanie ofertowe przez internet na stronie pl.farnell.com/oferty 126.indd 126

farnell.com 2013-06-28 08:15:19

Elektronika praktyczna 07 2013  
Elektronika praktyczna 07 2013  
Advertisement