cena: 16,00 zł (w tym 8% VAT) PRICE: 8 EUR Nakład 27000 egz.
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
Groty (standard)
210ESD 150~480 oC DIA 300~450 oC 210ESD - 44-415404 DIA - 44-915412 TWZ - 46-060102
LF-8000
z³ 1000 t +va
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
Zakres temperatury
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
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
z³ 1150 t +va
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
22W, 5 dioptri
Stacja Zasilanie
³ 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
http://www.ndn.com.pl e-mail:
[email protected]
• 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
OD WYDAWCY
Koniec epoki telegrafu
Prenumerata naprawdę warto
Każdy z elektroników co najmniej słyszał o telegrafie, a niektórzy mieli z nim do czynienia. Nie wdając się w szczegóły można powiedzieć, że jest to pierwsze, stosowane masowo urządzenie zasilane energią elektryczną, służące do przekazywania informacji na odległość. Zostało skonstruowane przed telefonem i pomimo prostoty konstrukcji, a może właśnie dzięki niej, odegrało ogromną rolę w rozwoju gospodarki i cywilizacji. Telegraf igiełkowy skonstruowali w 1833 r. w Getyndze uczeni niemieccy Carl Friedrich Gauss i Wilhelm Weber. Pierwszy telegraf elektryczny zbudowali w 1837 r. angielski fizyk i wynalazca Sir Charles Wheatstone’a oraz Sir Williama Fothergill Cooke. Ich telegraf używał 5 przewodów do sterowania wskazówką w odbiorniku pokazującą odebrane litery alfabetu. Również w 1837 r. Samuel Finley Breese Morse opracował pierwszy amerykański telegraf, który funkcjonowała z użyciem (w przeciwieństwie do wynalazku Wheatstone’a) kropek i kresek zwanych alfabetem Morse’a. Co ważne, były one przesyłane za pomocą pojedynczej pary przewodów. W ten sposób Morse został autorem metody kodowania znaków oraz ich przekazywania na odległość. Dzięki niezawodności działania systemu jego wynalazek został uznany za standard. Pierwszy telegram o treści „WHAT HATH GOD WROUGHT” przesłany z Waszyngtonu odebrano w Baltimore dnia 24 maja 1844 r. Ale co jest powodem do takiego wstępu? Jak podała stacja BBC, 14 lipca 2013 r. indyjska firma telekomunikacyjna Bharat Sanchar Nigam Ltd. (BSNL) wysłała ostatni telegram za pomocą telegrafu i zdecydowała się na zakończenie realizowania usług telegraficznych, które w Indiach świadczono od około 160 lat! Tę decyzję podjęto pomimo ryzyka pozbawienia indyjskich prawników, żołnierzy i rządu zaufanego narzędzia komunikacji. W Indiach wiele osób nadal wysyła telegramy, które docierają nawet do najodleglejszych zakątków kraju. Prawnicy używają ich do przesyłania wyroków sądu, które nie mogą być przesłane faksem, a ich wysyłka tradycyjną pocztą zajmuje zbyt wiele czasu. Telegraf Samuela Morse’a z 1837 r. Indyjskie siły zbrojne nie przyjmują od żołnierzy niektórych wniosków zgłaszanych telefonicznie, na przykład w celu „awaryjnego” przedłużenia urlopu. Taki wniosek musi być przesłany na piśmie, za pomocą poczty lub telegrafu. Pary, które pobrały się ze sobą pomimo braku zgody rodziców (np. ze względu na różnice kastowe lub wyznaniowe) i uciekły na przysłowiowy drugi koniec kraju, wysyłają telegramy do rodziców zawierające życzenia lub po prostu informacji o życiu codziennym, wydarzeniach itp. Podobnych zastosowań telegrafu było w Indiach wiele. Można powiedzieć, że sieć telegraficzna w Indiach stała się ofiarą postępu technicznego – wszystkiemu winna sieć telefonii komórkowej. Współcześnie ponad 59% obywateli tego kraju używa telefonu komórkowego lub podobnego urządzenia. Zapewne, podobnie jak stało się to w innych krajach, ich użytkownicy zamiast telegramów wysyłają sobie po prostu wiadomości tekstowe lub zdjęcia, a utrzymywanie sieci telegraficznej przy stale malejącej liczbie transmitowanych nią wiadomości nie miało sensu ekonomicznego. Firmy zajmujące się dostarczeniem telegramów nadal istnieją i najczęściej są dostępne poprzez strony internetowe, a Indie są ostatnim krajem, którego obywatele masowo wysyłają telegramy. Firma BSNL nadal dostarcza około 5 tys. telegramów każdego dnia. Dla porównania, w Stanach Zjednoczonych ostatni telegram był dostarczony 2 lutego 2006 r. Sieć telegraficzną w Indiach zbudowano we wczesnych latach kolonizacji przez Brytyjczyków. Historycy przypisują jej początki młodemu chirurgowi (!), który przeprowadził pierwszą demonstrację urządzenia w Kalkucie w 1833 r., 11 lat przed tym, zanim Samuel Morse przesłał swój pierwszy komunikat. Budowę sieci telegraficznej zakończono w 1856 r. Jej długość wynosiła ponad 6,5 tys. kilometrów. Początkowo pomagała ona przede wszystkim cudzoziemskim urzędnikom i handlowcom kontrolować wymianę handlową oraz zarządzać administracją różnych regionów. Tom Standage, autor książki „The Victorian Internet” napisał, że wczesna sieć telegraficzna była odpowiedzialna między innymi za robienie szumu, sceptycyzm, narodziny hakerów, początki romansów on-line i ślubów, wirtualne pokoje dyskusyjne (nazywane współcześnie chat-room’ami), prowadzenie wojen, nadmiar informacji, przepowiednie rychłego pokoju na świecie. Biuro ostatniego telegrafu ponoć przekształcono na muzeum, do którego pielgrzymują głównie nastolatkowie, aby zapoznać się z kawałkiem historii, póki jeszcze to jest możliwe. Co ciekawe, znajomość alfabetu Morse’a i zasad telegrafii stała się „trendy” wśród krótkofalowców. Młodzi radioamatorzy pomimo istnienia programów komputerowych, garną się do nauki i za pomocą telegrafii realizują łączności na fantastyczne wręcz odległości.
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:
[email protected] 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:
[email protected] 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ę
[email protected] Prenumerata w Wydawnictwie AVT www.avt.pl/prenumerata lub tel: 22257 84 22 e-mail:
[email protected] 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:
[email protected] 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 9/2013
Nr 9 (249) Wrzesień 2013
Zasilacz Warsztatowy Dobry zasilacz warsztatowy o gwarantowanych parametrach, zbudowany w oparciu o mikrokontroler sterujący za pomocą PWM układami stabilizacji napięcia
Projekty Zasilacz warsztatowy...................................................................................................................... 20 Moduły rozszerzeń dla Raspberry Pi (3). RaspbPI_DIO16, RaspbPI_HUB, RaspbPI_DCM.................. 34 DAMP – wzmacniacz klasy D o mocy 10 W .................................................................................... 40 Miernik panelowy do zasilacza symetrycznego............................................................................... 42
Miniprojekty
i prądu oraz kontrolujący
Miniaturowy konwerter USB/UART z układem FT230XS ................................................................. 49
zabezpieczenia.
Xbee Mini – łączność bezprzewodowa ........................................................................................... 53
Akcesoria do Raspberry Pi
Projekt Czytelnika
Kolejne płytki z układami peryferyjnymi, które
Płytka uruchomieniowa z mikrokontrolerem Precision32 ............................................................... 50 LiPo PWR – mikroprzetwornica 3 V/5 V@500 mA........................................................................... 54
Amplituner do kina domowego AMPL-008 (3) ............................................................................... 56
Wybór konstruktora TEMAT NUMERU 62 Pamięci FRAM i Flash. Przegląd pamięci nieulotnych ......................................................................
rozszerzają możliwości
Notatnik konstruktora
aplikacji Raspberry Pi:
Klocki dla Arduino (2). Procedury obsługi wybranych modułów
ekspander I/O (16 linii wejścia/wyjścia), rozdzielacz
TEMAT NUMERU 68 Pamięci nieulotne – technologie i trendy ........................................................................................
dodatkowych dla Arduino – wyświetlacz LED i zegar PCF8583....................................................... 72 Charakterystyka urządzeń wielkich częstotliwości (1). Zagadnienia wstępne ................................. 81
USB (4 porty) oraz sterownik
Podzespoły
silników prądu stałego.
Sensory MEMS w ofercie STMicroelectronics – przegląd oferty ...................................................... 76
Prezentacje
Multimetr panelowy Multimetr wskazujący
TEMAT NUMERU 71 Przegląd oferty producentów pamięci nieulotnych FRAM ..............................................................
IQRF – technologia bezprzewodowa, która przełamuje bariery ...................................................... 84 Nowe podzespoły dzięki nanotechnologii ...................................................................................... 85
napięcia/prądy w gałęziach
Innowacyjna platforma zaopatrzeniowa elhurt.com.pl ................................................................ 124
symetrycznych, który można
Kursy
użyć w konstruowanym przez
32 bity jak najprościej (3). Pierwsze kroki z modułem STM32F0DISCOVERY ................................... 86
siebie zasilaczu, wskaźniku
Mikrokontrolery Precision32 (1). Rozpoczęcie pracy ..................................................................... 104
itp.
C2000 Piccolo LanuchPad (6). Łatwa inicjalizacja systemowa procesora serii Piccolo F2802x ......... 94
Automatyka i Mechatronika Praktyczna Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 ..................... 109
Wzmacniacz klasy D o mocy 10 W Nowoczesny, stereofoniczny
Przekaźniki NEED w sieci ModBus ................................................................................................ 112 TEMAT NUMERU 114 Kompendium przemysłowych dysków Flash................................................................................. TEMAT NUMERU 116 SSD czy HDD? Wytrzymałe pamięci dla przemysłu ....................................................................... TEMAT NUMERU 118 Nośniki pamięci w urządzeniach automatyki przemysłowej .........................................................
wzmacniacz audio
Od wydawcy .................................................................................................................................... 4
zbudowany w oparciu o układ
Nie przeocz. Podzespoły ................................................................................................................... 8
MAX9768. Może zasilać
Sprzężenie zwrotne. Forum ............................................................................................................ 18
Niezbędnik elektronika ..................................................................................................................... 7 Nie przeocz. Koktajl niusów ........................................................................................................... 14
kolumny o impedancji 4 lub
Info .............................................................................................................................................. 120
8 Ohm. Ma wzmocnienie
Księgarnia wysyłkowa .................................................................................................................. 129
regulowane za pomocą napięcia. 6
Kramik i rynek .............................................................................................................................. 125 Oferta........................................................................................................................................... 130 Prenumerata ................................................................................................................................ 131 Zapowiedź następnego numeru ................................................................................................... 132
ELEKTRONIKA PRAKTYCZNA 9/2013
Tytuł ZAWARTOŚĆ DODATKOWEJ PŁYTY DVD
niezbędnik
elektronika
1. Altera Quartus II 13.0.1 SP1
Najnowsza wersja bezpłatnego pakietu narzędziowego Quartus II firmy Altera, zintegrowana z pierwszym service-packiem. Wersja opublikowana na DVD obsługuje układy z rodzin Cyclone IV, Cyclone III, Cyclone II oraz Cyclone V FPGAs: (za wyjątkiem 5CEA9, 5CGXC9, oraz 5CGTD9), wszystkie układy z serii MAX/MAX II oraz układ EP2AGX45 z rodziny Arria II. W stosunku do wersji poprzednich, aktualna wersja pakietu znacznie szybciej kompiluje projekty, obsługuje systemy wielordzeniowe, wyraźnie zmniejszono także liczbę drobnych „bugów”.
2. DesignSpark v5
Bezpłatny pakiet do projektowania płytek drukowanych udostępniony przez firmę RS Components. Jest to stosunkowo mało popularne narzędzie w naszym kraju, ale charakteryzujące się dużymi możliwościami i – co szczególnie ważne – konsekwentnie rozwijane przez producenta. Domyślne biblioteki dostarczane w wersji v5 obejmują ponad 80000 podzespołów z ofert wielu renomowanych firm, co znacznie ułatwia szybkie rozpoczęcie pracy z pakietem. Narzędzie warte uwagi!
3. Eagle 6.40
Najnowsza wersja popularnego pakietu do projektowania płytek drukowanych. EP 8/2013 1. Atmel Studio 6.1 z SP1.1 Najnowsza wersja zintegrowanego pakietu programistycznego firmy Atmel dla mikrokontrolerów 8- i 32-bitowych z oferty Atmel 2. CodeWarrior Special Edition 10.4 Najnowsza wersja pakietu programistycznego firmy Freescale, za pomocą którego można przygotowywać projekty dla mikrokontrolerów z rodzin ColdFire, ColdFire+, DSC, Kinetis, Qorivva, RS08, S08 oraz S12Z. 3. Infineon DAvE 3.1.6 Najnowsza wersja środowiska narzędziowego DAvE firmy Infineon dla mikrokontrolerów XMC4xxx oraz XMC1xxx, rodzin z oferty producenta wyposażonych w rdzenie Cortex-M. 4. Keil/ARM MDK Atmel Edition 4.71 Wersja znanego środowiska programistycznego, ograniczonego do mikrokontrolerów z rdzeniami ARM z oferty firmy Atmel. 5. Linear Technology LTSpice Najnowsza, opublikowana w ostatnich dniach czerwca 2013, wersja popularnego symulatora układów analogowych. 7. Microchip MPlabX 1.85 Najnowsza wersja IDE firmy Microchip oraz kompletu kompilatorów C dla mikrokontrolerów 8-/16- i 32-bitowych z oferty firmy Microchip. 8. TI TivaWare Najnowsza, lipcowa, wersja bibliotek Standard Peripherial Driver Library, dla nowych mikrokontrolerów
firmy Texas Instruments, wyposażonych w rdzeń Cortex-M4F: TivaC. EP 7/2013 1. Altera Quartus II Web Edition v 13.0.0.156 Najnowsza wersja pakietu projektowego Quartus II firmy Altera. 2. Atmel Studio 6.1 b2562 Kolejna kompilacja pakietu Atmel Studio 6.1. 3. Cirrus Logic FlexGUI v.8.0.0 Pakiet narzędziowy do konfigurowania i testowania cyfrowych układów audio. 4. Cirrus Logic Seismic Eval GUI v2.8 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 Najnowsza wersja pakietu programistycznego PSoC Designer firmy Cypress Semiconductor. 6. Freescale CodeWarrior 10.4 SE Najnowsza wersja bezpłatnego środowiska programistycznego CodeWarrior firmy Freescale. 7. FTDI VisualTFT v3.60 Pakiet programistyczny do przygotowywania aplikacji graficznych dla procesora EVE firmy FTDI. 8. NXP Flash Magic v7.47 Najnowsza wersja programu Flash Magic, który jest samodzielnym programatorem mikrokontrolerów LPC1xxx/2xxx firmy NXP. 9. SiliconLabs Preci-
sion32 IDE Najnowsza wersja kompletnego środowiska programistycznego, bazującego na IDE Eclipse i kompilatorze GCC. EP 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
ELEKTRONIKA PRAKTYCZNA 9/2013 10/2012
4. Eagle LPCxpert
Program spełniający rolę generatora symboli bibliotecznych dla edytora schematów w pakiecie Eagle (a także Altium Designer i OrCAD), służący do tworzenia symboli mikrokontrolerów z rodzin LPC1000 i LPC4000 firmy NXP. Za jego pomocą można tworzyć także pliki konfiguracyjne dla kompilatorów C, w których uwzględniono ustalone przez użytkownika konfiguracje linii GPIO.
5. Infineon DAvE Drive 1.9.1
Pakiet narzędziowy firmy Infineon, pozwalający na wygodne, bazujące na klikanym interfejsie graficznym, tworzenie driverów do silników BLDC i indukcyjnych dla wybranych rodzin mikrokontrolerów firmy Infineon: XC800 i XE16x.
6.Keil/ARM MDK 4.72a
Najnowsza wersja popularnego pakietu ARM-MDK firmy ARM (dawniej Keil), który jest zintegrowanym środowiskiem programistycznym dla twórców systemów bazujących na mikrokontrolerach z rdzeniami Cortex-M.
7.Newton 4.2.1
symulatorem zjawisk fizycznych (także elektrycznych), który może w pewnym stopniu zastąpić eksperymenty prowadzone w szkolnych i uczelnianych laboratoriach.
8. Siemens LOGOsoft Comfort v7
Najnowsza wersja oprogramowania narzędziowego dla twórców aplikacji na sterowniki PLC z rodziny LOGO! firmy Siemens. Publikujemy wersję ewaluacyjną, obejmująca rodzinę sterowników 0BA7.
9. STM32-MAT
Oprogramowanie umożliwiające interpretację aplikacji dla mikrokontrolerów STM32 przygotowanych za pomocą MATLAB-a, w wersjach dla trzech środowisk programoistycznych: Atollic TrueSTUDIO, IAR EWARM oraz Keil µVision4.
10. Tina Design Suite v9.3
Najnowsza wersja symulatora układów analogowych o nazwie Tina, która bazuje na silniku Spice i jest zintegrowana z nowoczesnym IDE oraz pakietem bibliotek schematowych oraz wysokiej jakości modeli modeli symulacyjnych.
Najnowsza wersja demonstracyjna programu Newton węgierskiej firmy Design Soft, który jest uniwersalnym
(w tym przykładowe projekty) TivaWare dla mikrokontrolerów Tiva C 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. 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.
oraz ST-Link/V2 (a także zgodnego z nimi ZL30PRG).
4. Cedar Logic Simulator Prosty w obsłudze symulator układów logicznych.
13. STMicroelectronics STMStudio v3.1.1 Najnowsza wersja bezpłatnego analizatora kodu wykonywanego przez mikrokontrolery STM32 oraz STM8.
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.
12. STMicroelectronics ST Toolset v29 Najnowsza wersja bezpłatnego, zintegrowanego środowiska programistycznego dla mikrokontrolerów ST7.
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.
10. STMicroelectronics SPC5 Studio Najnowsza wersja bezpłatnego środowiska projektowego SPC5 Studio.
3. AXsem Microlab Pakiet oprogramowania narzędziowego służącego do konfiguracji mikrokontrolerów zintegrowanych z transceiverami RF-ISM firmy Axsem.
11. STMicroelectronics ST-Link v.2.5.0 Najnowsza wersja programu obsługującego programatory pamięci Flash ST-Link
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 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. 14. Microchip MPlabX
1.70 Lutowa wersja doskonale znanego pakietu MPlabX z ewaulacyjnymi wersjami kompilatorów dla mikrokontrolerów PIC. 15. NXP emwin libraries Zestaw nowych bibliotek oraz aktualizacje do środowiska emwin. 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. 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. 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. 2. Drivery do ARM-MDK dla interfejsu OSJTAG Pakiet najnowszych (1.10) driverów dla pakietu ARM. 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.
7
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 paratory o czasie odpowiedzi 50 ns oraz 8- i 5-bitowe przetworniki C/A. Blok komunikacyjny obsługuje interfejsy LIN, I²C i SPI. W układach serii PIC16F178x po raz pierwszy zaimplementowano programowalny kontroler PSMC bazujący na 16-bitowym modulatorze PWM taktowanym zegarem 64 MHz. Wszystkie te cechy umożliwiają realizację inteligentnych pętli sterowania pracujących przy minimalnej interwencji jednostki CPU. Inną ważną zaletą nowych mikrokontrolerów PIC16F178x jest zastosowana technologia XLP (eXtreme Low Power) pozwalająca na obniżenie poboru prądu w stanie aktywnym do 32 mA/MHz i sleep do 50 nA. Układy te zawierają od 3,5 do 28 kB pamięci Flash, od 256 B do 2 kB pamięci RAM i 256 B pamięci EEPROM. Są oferowane w obudowach o 28 lub 40 wyprowadzeniach. http://goo.gl/rqXxn9
Przetwornice DC-DC serii Micro SIP
Nowe, 8-bitowe mikrokontrolery PIC
Microchip rozszerza rodzinę 8-bitowych mikrokontrolerów PIC16F o nową serię PIC16F178x wyposażoną w rozbudowany zespół bloków peryferyjnych. Obejmuje on 12-bitowe przetworniki A/C, 16-bitowe modulatory PWM, wzmacniacze operacyjne, szybkie kom-
Firma Bel Power będąca oddziałem Bel Fuse Inc. zaprezentowała nową serię nieizolowanych przetwornic DC-DC przeznaczonych do zastosowania w aplikacjach, w których najważniejsze znaczenie mają niewielkie wymiary podzespołów. Przetwornice z serii Micro SIP charakteryzują się zakresem napięcia wejściowego od 4,5 do 13,8 V i zakresem napięcia wyjściowego od 0,59 do 5,1 V. Produkowane są w trzech wersjach różniących się wydajnością prądową wynoszącą: 3 A (VRAE-03E1xx), 6 A (VRAE-06E1xx) i 10 A (VRAE-10E1xx). Sprawność energetyczna sięga 91%. Częstotliwość taktowania jest stała i wynosi 500 kHz. Przetwornice mają standardowo zabezpieczenia podnapięciowe, nadprądowe i zwarciowe oraz wyprowadzenie Remote On//Off. Przetwornice Micro SIP są produkowane w obudowach SIP-5 o wymiarach 16,5 mm×10,4 mm×8,13 mm. http://goo.gl/i0HPcT
REKLAMA
Wzmacniacz audio 2×15 W z obsługą standardu IIS
Firma Renesas Technology Europe oferuje pracujący w klasie D wzmacniacz audio o bardzo dobrej jakości R2J15116FP, obsługujący standard sygnału wejściowego IIS. Jest on przeznaczony do zastosowania przede wszystkim w telewizorach LCD i plazmowych. Zawiera
8
ELEKTRONIKA PRAKTYCZNA 9/2013
NO W OŚ Ć
Podzespoły
DESIGNSPARK PCB
EWOLUCJI
CIĄG DALSZY DESIGNSPARK PCB v5 Bezpłatne narzędzie do projektowania PCB:
www.designspark.com/pcb ELEKTRONIKA PRAKTYCZNA 9/2013
DOSTĘPNE TYLKO W
9
NIE PRZEOCZ 24-bitowy procesor sygnałowy pozwalający na dostrajanie parametrów wzmacniacza w zależności od aplikacji docelowej, np. przekątnej ekranu telewizora czy rozmieszczenia i rodzaju głośników. Dzięki temu nie jest obciążany główny procesor sygnałowy urządzenia realizujący zadania związane m.in. z dekodowaniem strumienia audio i przetwarzaniem dźwięku w systemie surround. Maksymalna moc wyjściowa wynosi 2×15 W. Nowością w układzie R2J15116FP jest funkcja inteligentnej regulacji poziomu dźwięku zwiększająca rozdzielczość przy mniejszych zmianach głośności. Obwód sprzężenia zwrotnego stabilizuje głośność przy fluktuacjach napięcia zasilającego. Ponadto, dostępne są funkcje: • 7-punktowego korektora, • 2-punktowego układu regulacji barwy tonu, • ogranicznika mocy (możliwość ustawienia przez użytkownika maksymalnego poziomu głośności), • dynamicznej regulacji zakresu (DRC). Parametry konfiguracyjne dla powyższych funkcji są zadawane przez układ sterujący, zwykle mikrokontroler, za pomocą interfejsu I2C. Wzmacniacz R2J15116FP zawiera zabezpieczenie przed przeciążeniem, przegrzaniem i zbyt niskim napięciem zasilania. Jest oferowany w obudowie HTQFP-48 o wymiarach 7 mm×7 mm i nie wymaga stosowania radiatora. http://goo.gl/OvYd5D
Układ kondycjonowania sygnałów AD8275 z przesuwnikiem poziomów napięć
Firma Analog Devices wprowadziła na rynek 16-bitowy driver wejścia dla przetwornika A/C dodatkowo realizujący funkcję przesuwnika poziomów napięć. Układ jest oferowany pod oznaczeniem AD8275 i pozwala na uproszczenie konstrukcji bloków kondycjonowania sygnału stosowanych w aplikacjach wysokonapięciowych. Realizuje funkcje tłumienia, przesuwania poziomów napięć i zasilania wejścia przetwornika. Przesuwając poziom napięć z zakresu ±10 V do zakresu 0...+4 V, AD8275 idealnie nadaje się do współpracy z 16-bitowymi przetwornikami A/C z sukcesywną aproksymacją (SAR). Szerokość pasma analogowego wynosi 15 MHz. Układ może zostać skonfigurowany do pracy z wyjściem różnicowym. AD8275 charakteryzuje się wzmocnieniem ustalonym fabrycznie na poziomie 0,2 V/V. Zawiera precyzyjne, trymowane laserowo rezystory zapewniające bardzo mały błąd wzmocnienia rzędu
0,002% oraz dryft temperaturowy wynoszący maksymalnie 1 ppm/ ºC. Czas ustalania się sygnału wyjściowego do 0,001% wartości skoku napięcia wynosi jedynie 450 ns, dzięki czemu układ doskonale nadaje się do systemów wymagających krótkiego czasu akwizycji danych. Poza wyeliminowaniem wysokonapięciowych zasilaczy, dyskretnych dzielników rezystorowych, wzmacniaczy sterujących i innych komponentów wymaganych w układach sterowania przetworników typu SAR, AD8275 pozwala na zmniejszenie powierzchni płytki drukowanej z uwagi na małe wymiary obudowy wynoszące zaledwie 3 mm×5 mm. Dopuszczalny zakres napięcia wejściowego wynosi od –35 V do +40 V. Cena hurtowa AD8275 to 1,60 USD. http://goo.gl/eG9bbr
Wysokonapięciowe tranzystory MOSFET do układów zasilających
Toshiba wprowadza do sprzedaży nową rodzinę wysokonapięciowych tranzystorów MOSFET produkowanych w zaawansowanym procesie technologicznym ϖ-MOS VII, przeznaczonych do zastosowania w zasilaczach. Oferta obejmuje obecnie tranzystory o napięciu znamionowym 500 i 600 V, a docelowo zakres ten zostanie rozszerzony do 400...650 V. W porównaniu z tranzystorami produkowanymi w oparciu o poprzedni proces technologiczny ϖ-MOS VI, nowe tranzystory wykazują o 40% mniejszy ładunek bramki, mniejszą o 25% pojemność wyjściową, mniejszą o 10% pojemność wejściową i mniejszą o 60% pojemność bramka – dren. Pierwsze tranzystory z nowej rodziny są produkowane na zakres prądu drenu od 5 do 15 A. Ich parametry, takie jak RDS(on), ładunek bramki czy energia przebicia lawinowego zostały dobrane pod kątem zastosowania w różnych aplikacjach. REKLAMA
REKLAMA
10
ELEKTRONIKA PRAKTYCZNA 9/2013
Mikrokontrolery PIC® eXtreme Low Power Podzespoły zapewniają maksymalny czas pracy z baterii
Wykorzystaj do maksimum baterię w swojej aplikacji, używając mikrokontrolerów PIC® z technologią nanoWatt XLP i korzystaj z najniższych na rynku poborów prądu w trybie aktywnym i sleep. Niski pobór prądu i elastyczne źródła wybudzania ■ Pobór prądu w trybie sleep obniżony do 9 nA ■ Prądu układu Brown-out Reset obniżony do 45 nA ■ Zasilanie RTC obniżone do 400 nA Niski dynamiczny pobór prądu ■ Nie więcej niż 30 µA/MHz ■ Efektywne energetycznie wykonanie kodu Funkcje poprawiające pracę przy zasilaniu z baterii ■ Czas pracy przy zasilaniu bateryjnym > 20 lat ■ Praca z napięciem do 1,8V z autozapisem i funkcjami analogowymi ■ Układy nadzorcze o niskim poborze mocy (BOR, WDT) Konfigurowalne układy peryferyjne ■ Zintegrowane USB, LCD, RTC & interfejs dotykowy ■ Brak konieczności użycia kosztownych układów zewnętrznych Duży asortyment obejmujący ponad 160 MCU XLP ■ Wersje od 8 do 100 pinów ■ Od 4 KB do 128 KB Flash
WYKORZYSTAJ DO MAKSIMUM BATERIĘ W KOLEJNYM PROJEKCIE! 1. Odwiedź www.microchip.com/XLP
2. Ściągnij poradnik
“Low Power Tips ‘n Tricks” 3. Wykorzystaj narzędzia szacujące czas działania baterii
Płytka projektowa XLP 16-bit Development Board (DM240311)
Płytka projektowa XLP 8-bit Development Board (DM240313)
11
ELEKTRONIKA PRAKTYCZNA Nazwa Microchip i logo, logo Microchip, dsPIC, MPLAB i9/2013 PIC są zastrzeżonymi znakami towarowymi firmy Microchip Technology Incorporated w USA i innych krajach. Wszystkie pozostałe znaki towarowe są własnością ich odpowiednich właścicieli. ©2013 Microchip Technology Inc. Wszystkie prawa zastrzeżone. ME1071Pol/08.13
NIE PRZEOCZ Tranzystory z nowej rodziny TKxxxx są dostępne w obudowach TD-220SIS o wymiarach 10 mm×4,5 mm×17,8 mm. Ceny przy małych zamówieniach zaczynają się od 0,75 USD. http://goo.gl/xgWTDm
Transceivery RS-232 ze zintegrowanym przesuwnikiem poziomów logicznych
Układy MAX13234E…MAX13237E to nowa rodzina transceiverów RS-232 (EIA/TIA-232, V.28/V.24) ze zintegrowanym translatorem poziomów logicznych. Stanowią zmodernizowane wersje wprowadzonych wcześniej na rynek układów MAX3224E…MAX3227E. Ich najważniejsze zalety to duża szybkość transmisji danych (do 3 Mb/s), mały pobór prądu w trybie shutdown (typ. 1 mA), zabezpieczenie ESD na wszystkich liniach sygnałowych i funkcja AutoShutdown Plus powodująca przełączenie układu w tryb shutdown po odłączeniu kabla transmisyjnego lub po 30-sekundowej nieaktywności układów zewnętrznych. Linie
sygnałowe są zabezpieczone przed wyładowaniami ESD do ±15 kV przenoszonymi przez powietrze i do ±8 kV przenoszonymi przez kontakt (zgodnie z normą IEC 61000-4-2) oraz do ±15 kV HBM. Układy MAX13234E/MAX13235E zawierają dwa nadajniki i dwa odbiorniki. Są oferowane w obudowach TQFN/ TSSOP. Układy MAX13236E/ MAX13237E zawierają po jednym nadajniku i odbiorniku, są oferowane w obudowach TQFN. Maksymalna szybkość transmisji wynosi 3 Mb/s dla MAX13235E/MAX1237E oraz do 250 kb/s dla MAX13234E/ MAX13236E. Wszystkie układy pracują w zakresie napięcia zasilania od 3…5,5 V. Przy zamówieniach 1000 sztuk ceny hurtowe zaczynają się od 2,70 USD w wypadku wersji podwójnych i od 1,99 USD w wypadku wersji pojedynczych. http://goo.gl/s4KrsM
Wysokonapięciowy regulator DC-DC buck-boost o sprawności do 98%
REKLAMA
Układ LTM4609 to wysokonapięciowy, nieizolowany regulator DC-DC typu buck-boost wyróżniający się dużą sprawnością sięgającą 98%. Wchodzi w skład rodziny układów mModule. Zawiera asynchroniczny kontroler DC-DC buck-boost, cztery szybkie N-kanałowe tranzystory MOSFET ze zintegrowanymi diodami Schottky’ego, wejściowe i wyjściowe kondensatory bocznikujące oraz układ kompensacji – wszystko to umieszczono wewnątrz plastikowej obudowy LGA o wymiarach 15 mm×15 mm×2,8 mm. Topologia buck-boost oznacza, że napięcie wejściowe może być zarówno większe, jak i mniejsze od napięcia wyjściowego. LTM4609 pracuje w zakresie napięcia wejściowego od 4,5 do 36 V i umożliwia regulację napięcia wyjściowego w zakresie od 0,8 do 34 V. Maksymalna moc dostarczana do obciążenia wynosi 120 W.
Parametrem wyróżniającym LTM4609 na tle innych podobnych układów jest duża sprawność energetyczna, sięgająca 98,3% w trybie boost i 97,3% w trybie buck. Wartości te uzyskuje się przy napięciu wejściowym VIN=6,5...36 V, napięciu wyjściowym VOUT=30 V i prądzie wyjściowym IOUT=2 A. W odróżnieniu od układów o topologii SEPIC (Single Ended Primary Inductor Converter) wymagających około 20 komponentów zewnętrznych (w tym dostrojonej cewki), zrealizowanie kompletnego układu regulatora na bazie LTM4609 wymaga dołączenia jedynie 6 elementów zewnętrznych: zewnętrznej cewki (o standardowej wartości), kondensatorów w obwodzie wejściowym i wyjściowym oraz rezystorów w obwodach pętli sprzężenia zwrotnego i pomiaru prądu wyjściowego. Ponadto, w układach o topologii SEPIC uzyskuje się znacznie mniejszą sprawność energetyczną rzędu 76...84%. W przypadku, gdy zachodzi potrzeba wyeliminowania harmonicznych na wybranych częstotliwościach, LTM4609 może być synchronizowany z dowolnym zewnętrznym przebiegiem zegarowym z zakresu od 200 do 400 kHz. Standardem jest zabezpieczenie nadnapięciowe i nadprądowe. Inne parametry:
12
ELEKTRONIKA PRAKTYCZNA 9/2013
Podzespoły • wydajność prądowa: 4 A (10 A w trybie buck), • bardzo szybka odpowiedź impulsowa, • wyjście sygnalizacyjne Power Good. LTM4609 może pracować w zakresie temperatury otoczenia od -40ºC do +85ºC przy maksymalnej temperaturze złącza +125ºC. Przy zamówieniach 1000 sztuk ceny hurtowe zaczynają się od 22,55 USD. http://goo.gl/tFg4Tz
Szybkie przełączniki sygnałów audio SPDT z funkcją tłumienia trzasków
Szybkie przełączniki sygnałów audio i danych ISL54210 i ISL54211 firmy Intersil są wyposażone w funkcję tłumienia trzasków występujących przy włączaniu i wyłączaniu zasilania. Zostały zaprojektowane z myślą o zastosowaniach w sprzęcie bateryjnym – są produkowane w miniaturowych obudowach TDFN (3 mm×3 mm) i TQFN (1,8 mm×1,4 mm). Pracują przy napięciu zasilania od 2,7…3,6 V, przy czym ISL54210 został zoptymalizowany do zasilania z regulatora LDO, a ISL54211 z baterii Li-Ion. ISL54210 zawiera obwód wykrywający napięcie VBUS szyny USB, wykorzystywany do przełączania źródła sygnału USB/audio. ISL54211 zawiera wejście logiczne 1,8 V umożliwiające bezpośrednią współpracę z niskonapięciowym mikrokontrolerem. Oba układy charakteryzują się małymi zniekształceniami nieliniowymi i pasmem wystarczającym do przełączania sygnałów USB 2.0 (480 Mb/s). ISL54210 i ISL54211 to przełączniki typu SPDT. Inne parametry: • THD+N: 0,014% przy mocy 1 mW@32 V, • przesłuchy międzykanałowe: –100 dB (20…20000 Hz), • izolacja w stanie OFF: 95 dB (20…20000 Hz), • pasmo: 700 MHz (-3 dB). http://goo.gl/z6v3Xc
Firma Samsung Electronics opracowała pierwszy kontroler W-USB (Wireless USB) SoC do aplikacji szerokopasmowych UWB, oznaczony symbolem S3CR650. Pozwala on na realizację urządzeń łączących w sobie wygodę wynikającą z łączności bezprzewodowej i poziom bezpieczeństwa typowy dla połączeń kablowych USB. Układy W-USB są przeznaczone do zastosowań głównie w urządzeniach przenośnych, transmitujących duże ilości danych w postaci zdjęć cyfrowych, filmów i plików MP3. Przepustowość systemów W-USB pozwala na przesyłanie za pomocą połączenia W-USB pliku o wielkości 700 MB w ciągu około minuty. Połączenie odbywa się w paśmie od 3,1 do 10,6 GHz. S3CR650, będący kompletnym systemem zrealizowanym na pojedynczym chipie (SoC) zawiera rdzeń obliczeniowy ARM, obwody warstwy fizycznej UWB i kontroler pamięci. Obsługuje standardy kart SD, MMC i NAND Flash oraz tryb USB 2.0 OTG bez potrzeby współpracy z dodatkowymi układami logicznymi. Transmisja może być szyfrowana w standardzie AES z kluczem 128-bitowym. Pobór mocy przez układ nie przekracza 300 mW. Po raz pierwszy kontrolery W-USB zostaną zastosowane w cyfrowych aparatach fotograficznych i telefonach komórkowych, a następnie ich obszar zastosowań rozszerzy się na drukarki, projektory, bezprzewodowe twarde dyski, bezprzewodowe wyświetlacze i bezprzewodowe głośniki. Pozwoli to na łączenie w domowej sieci peer-to-peer różnych urządzeń bezprzewodowych i wymianę danych z prędkością rzędu 120 Mb/s bez potrzeby korzystania z komputera. http://goo.gl/iqttOS ELEKTRONIKA PRAKTYCZNA 9/2013
REKLAMA
Kontroler bezprzewodowego USB
13
NIE PRZEOCZ
koktajl
niusów Fideltronik zyskuje na Omni
Fideltronik, wiodący dostawca usług EMS w Polsce, podpisał w ramach sojuszu Omni trzyletni kontrakt z norweskim liderem rozwiązań dla jednostek morskich na produkcję urządzeń pozycjonowania. Nowy kontrakt umacnia pozycje firmy na rynku skandynawskim. Omni łączy grupę firm dostarczających usługi EMS i oprogramowanie.
Semicon dystrybutorem szwajcarskiej firmy Sloan
Semicon podpisał umowę dystrybucyjną z firmą Sloan AG, szwajcarskim producentem kontrolek i modułów LED. Produkty tej firmy o 50-letniej tradycji używane są m.in. w sprzęcie militarnym, urządzeniach automatyki przemysłowej, awionice, czy też w sprzęcie medycznym. Wyroby Sloana mają dopuszczenia i certyfikaty pozwalające na ich użycie w odpowiedzialnych zastosowaniach.
Semicon autoryzowanym konwerterem taśm 3M
Semicon poszerza współpracę dystrybucyjną z firmą 3M i dołącza do wąskiego grona autoryzowanych konwerterów 3M w zakresie konfekcjonowania taśm przemysłowych. Posiadanie własnej maszyny do cięcia taśm daje firmie możliwość oferowania taśm przemysłowych w konkurencyjnych cenach i ilościach odpowiadających potrzebom zamawiającego. W ofercie firmy Semicon znajdują się taśmy jednostronnie i dwustronnie klejące, z nośnikiem lub bez, taśmy akrylowe VHB, taśmy metalowe, winylowe, piankowe, folie maskujące, ochronne, a także kapton i błony klejowe.
TME preferowanym partnerem dystrybucyjnym firmy Belden
TME otrzymała status „Preferred Distribution Partner” od producenta kabli i przewodów, firmy Belden, a także dla złączy Hirschmann i Lumberg. Tytułem tym nagradzane są najbardziej perspektywiczni dystrybutorzy, zapewniający szerokie możliwości rozwoju.
Techno-Service rozbudowuje potencjał produkcyjny obwodów wielowarstwowych
Techno-Service S.A. rozbudowuje potencjał produkcyjny w zakresie obwodów wielowarstwowych. W ostatnich tygodniach firma zainwestowała w nową trawiarkę Schmid typ 24. Nowe urządzenie pozwala na stabilne i powtarzalne trawienie laminatu o grubości 0,1 mm, co jest bardzo ważne w przypadku skomplikowanych obwodów wielowarstwowych, bo umożliwia zmniejszenie ich grubości końcowej. Dla klientów ważne jest również to, że nowa maszyna zapewnia dużą precyzję w wykonaniu skomplikowanych płytek ze ścieżkami i odległościami pomiędzy nimi o szerokości 100 µm, co jest efektem bardzo równomiernego trawienia na całej powierzchni formatu produkcyjnego.
14
Eltronika umacnia się w M2M
Eltronika podpisała umowy dystrybucyjne z czołowymi producentami branży M2M - firmą Antenova M2M oraz Bluegiga. Antenova M2M jest dostawcą wysokiej klasy anten przeznaczonych do szerokiej gamy bezprzewodowych aplikacji, a Bluegiga to czołowy producent rozwiązań komunikacyjnych krótkiego zasięgu, w tym modułów Bluetooth, Wi-Fi oraz modemów i urządzeń sieciowych Bluetooth dla integratorów systemów. W ostatnim okresie Eltronika poszerza działalność dystrybucyjną na rynku czeskim oraz słowackim.
Laboratorium pomiarów środowiskowych w Merze
Firma Mera uruchomiła laboratorium wzorcujące, świadczące usługi wzorcowania przyrządów pomiarowych do pomiaru temperatury i wilgotności względnej. Zostało ono wyposażone w profesjonalny sprzęt pomiarowy, gwarantujące wysoką precyzję prowadzonych badań. Wykwalifikowany personel oraz system zarządzania oparty na procedurach zapewniają rzetelność i wiarygodność wykonywanych pomiarów oraz wysoką jakość obsługi klienta.
Meratronik szkolił z wektorowych analizatorów obwodów
Meratronik wspólnie z firmą Anritsu i ośrodkiem szkolenia Instytutu Łączności przeprowadził w czerwcu szkolenie w zakresie wektorowych analizatorów obwodów: podstaw analizy, metod kalibracji i analizy dokładności pomiaru. Spotkanie było także okazją do wypróbowania w działaniu kilku analizatorów z oferty Anritsu.
Conrad Electronics umacnia się we Włoszech
Conrad, dystrybutor elektroniki, uruchomił swoją stronę internetową w języku włoskim i otworzył lokalne przedstawicielstwo w Mediolanie, zapewniające wsparcie techniczne i obsługę klientów. Firmie zależy szczególnie na klientach z obszaru B2B, dla których Conrad chce dostarczać złącza, podzespoły pasywne, czujniki i przełączniki.
Nowa platforma dla projektów open-source DesignShare
RS Components, dystrybutora komponentów elektronicznych, elektrycznych i przemysłowych, rozbudował swoją platformę internetową DesignSpark o dział DesignShare. DesignShare umożliwia przechowywanie projektów i zachęca projektantów elektroniki do wymiany pomysłów, współpracy i dyskusji na temat rozwiązań projektowych. Opracowana wspólnie z czasopismem Elektor, wiodącą publikacją z zakresu elektroniki, platforma DesignShare jest dostępna na stronie www.designspark.com i zawiera dwie główne sekcje: „Pomysły” i „Projekty”. Do zasobów związanych z projektem należą na przykład schematy płytek drukowanych, pliki układów dla programu DesignSpark PCB oraz dokumentacja techniczna, kod oprogramowania i/lub kod maszynowy, rysunki elementów mechanicznych i pliki CAD. Dostępna jest również wtyczka do strony RS, na której użytkownicy mogą zakupić części potrzebne do projektów. W przypadku profesjonalnych projektów wymagających zachowania poufności dostępna jest opcja prywatności, która umożliwiająca ograniczenie dostępu dla wybranej grupy osób. Wszystkie widoczne publicznie projekty są udostępniane jako open source i można je pobierać bezpłatnie. ELEKTRONIKA PRAKTYCZNA 9/2013
Koktajl Podzespoły niusów Dzień z produktami firmy Moxa
Tak mogli spędzić czas uczestnicy niedawnego seminarium Moxa Solution Day – wydarzenia, które na stałe weszło do kalendarza konferencji organizowanych przez firmę Elmark Automatyka. Jego ostatnia edycja odbyła się pod koniec maja w Warszawie i była przede wszystkim okazją do poznania produktów z zakresu komunikacji przemysłowej oraz modułów kontrolno-pomiarowych i przemysłowych komputerów embedded. Moxa to popularny w kraju dostawca urządzeń do sieci komunikacyjnych – od tych standardowych, takich jak przełączniki sieciowe, poprzez bramy i konwertery protokołów, po rozwiązania specjalizowane.
Pegatron zapowiada 10% wzrost obrotów w II kw.
Dzięki lepszym niż oczekiwane wynikom firmy w kwietniu i maju br. Pegatron Technology spodziewa się, że dostawy laptopów i płyt głównych firmy w II kw. będą o 10% wyższe w skali kwartalnej. Pegatron, dostawca usług projektowych i produkcyjnych głównie podzespołów związanych z komputerami, w 2010 r. wydzielił się z Asusa jako niezależna firma. W 2012 r. Pegatron osiągnął skonsolidowane przychody 29,6 mld dol. i wzrost w skali roku o 47%, z marżą brutto 4,8%, poinformowała firma w komunikacie. Według jej prezesa Jasona Changa produkty z asortymentu innego niż IT stanowiły w ubiegłym roku ponad
50% przychodów. Z kolei zdaniem części obserwatorów rynku głównym napędem wzrostu obrotów Pegatrona w 2012 r. były zlecenia na produkcję pierwszej generacji tabletu iPad mini oraz iPhone’a 4S. W dobrych wynikach firmy udział miały także jej oddziały Casetek i ASRock. Na całym świecie firma zatrudnia obecnie 100 tys. do 110 tys. pracowników i planuje zwiększanie zatrudnienia. W I kw. Pegatron dostarczył na kontrakt około 3 mln laptopów, a w miesiącach kwiecień-maj 2,5 mln tych urządzeń. Ostatnio Tajwańczycy otrzymali zamówienia na tablety z układami opartymi na ARM i systemem Windows RT.
Rockchip wprowadza na rynek układy SoC do tabletów wytwarzane przez Globalfoundries
Globalfoundries i Rockchip poinformowali w czerwcu o zawiązaniu współpracy przy wytwarzaniu procesorów do urządzeń przenośnych następnej generacji. Układy powstawać będą w zakładach Globalfoundries w oparciu o 28-nanometrowy proces HKMG – na tranzystorach z metalową bramką i izolacją o wysokiej stałej dielektrycznej. Nowe układy RK3188 i RK3168 bazują na wielordzeniowym projekcie ARM Cortex-A9 i są zoptymalizowane pod kątem wydajnych, ekonomicznych tabletów o długim czasie żywotności baterii. Połączenie projektu ARM i Rockchipa z technologią procesu HKMG 28 nm Globalfoundries zaowocowało powstaniem układów SoC taktowanych zegarem do 1,8 GHz, których niewielki pobór prądu spełnia rygorystyczne wymogi urządzeń mobilnych. Pilotażowa produkcja proce-
REKLAMA
Przekaźniki Fujitsu
Motoryzacja, Zasilanie, Sygnały, Duża szybkość, Pewność zadziałania emea.fujitsu.com/relays
ELEKTRONIKA PRAKTYCZNA 9/2013
15
NIE PRZEOCZ sorów ruszyła na początku 2013 r., a obecnie ich dostawy zaczynają trafiać do szerokiego grona klientów. Obie firmy podkreśliły korzyści wynikające z wczesnej współpracy przy przekazaniu finalnego projektu urządzeń do produkcji, w tym dobrą charakterystykę wydajności i zasilania oraz krótki czas wprowadzenia produktów na rynek.
UE planuje nowe pilotażowe linie produkcji półprzewodników
Komisja Europejska ogłosiła prace nad czterema projektami pilotażowych linii produkcyjnych półprzewodników w zakresie technologii od LED po płytki podłożowe o średnicy 450 mm. Wcześniej KE zapowiedziała projekt usprawnienia i rozwoju produkcji półprzewodników w całkowicie zubożonej technologii podłoży Silicon-on-Insulator (FDSOI). Rozwój projektów pięciu pilotażowych linii produkcyjnych jest częścią ogłoszonej w maju europejskiej strategii elektronicznej o wartości ponad 5 mld euro. W nowe projekty angażuje się 128 firm z 20 krajów. Komisja Europejska zapowiedziała wsparcie linii pilotażowych kwotą 100 mln euro, a łączne kwoty przeznaczone dla projektów z różnych źródeł mają wynieść ponad 700 mln euro. Środki na ten cel wyasygnować mają poszczególne kraje członkowskie UE oraz zainteresowane firmy. Projekty będą realizowane od obecnego do 2015 r. Projekty obejmują m.in. utworzenie linii pilotażowej AGATE, rozwijanej pod kątem wytwarzania rozwiązań z azotku galu na substratach krzemowych do produkcji półprzewodników mocy i diod LED. Projektowi temu przewodzi francuski producent płytek podłożowych Soitec i dziesięć innych firm. Następny projekt o symbolu roboczym E450EDL to linia produkcyjna tworzona w instytucie badawczym IMEC przy współudziale dostawcy narzędzi ASML oraz docelowo 43 partnerów z 11 krajów. Firmy te będą testować narzędzia, materiały i wytwarzanie pierwszych partii płytek krzemowych o średnicy w nowym standardzie 450 mm. Wsparcie projektu ma być zapewnione do 2016 r. Kolejne projekty to rozwój produkcji podzespołów mocy na cienkich płytkach krzemowych przez Infineona w zakładach w Villach i Dreźnie, projekt produkcyjny i badawczo-rozwojowy STMicroelectronics prowadzony w Agrate i na Malcie oraz wspomniane wcześniej wsparcie i optymalizacja produkcji układów w technologii FDSOI realizowane m.in. przez STMicro w Crolles i Globalfoundries w Dreźnie.
Nowa spółka jv. SMIC zbuduje w Pekinie fabrykę układów 45 nm
Zgodnie z zapowiedziami, Semiconductor Manufacturing International Corp. (SMIC) poinformował o planach zawiązania w Pekinie spółki joint-venture, aby rozwijać swoje moce produkcyjne układów w stolicy Chin. SMIC i jego oddział SMIC Bejing są na etapie zawarcia umowy wspólnego przedsięwzięcia z firmami Bejing Industrial Development Investment Management oraz Zhongguancun Development Group. Inwestycje będą realizowane w Zhongguancun - północno-zachodniej części Pekinu - czasem określanej mianem chińskiej Doliny Krzemowej. We wspólnym projekcie SMIC będzie odpowiedzialny za zarządzanie powstającą spółką jv. o nazwie Northern SMIC Semiconductor Manufacturing (Bejing). Łączna inwestycja Northern SMIC jest szacowana na 3,59 mld dol., a kapitał założycielski spółki wynosi 1,2 mld
16
dol., z czego SMIC i SMIC Northern sfinansują 55%, a BIDIMC i ZDG pozostałe 45%. W ubiegłym roku SMIC zapowiadał wybudowanie fabryki krzemu przyległej do jego działających w Pekinie zakładów 300-milimetrowych. Plany obecnie powoływanej spółki jv. przewidują fabrykę o wydajności 35 tysięcy nowych płytek miesięcznie wykonywanych w technologiach 45 nm i niższych.
Microchip przejął dostawcę rozwiązań z zakresu pamięci embedded
Microchip kupił firmę Novocell Semiconductor, dostawcę bloków IP pamięci embedded opartych na układach typu antifuse. Zakupu dokonała należąca do Microchipa spółka o nazwie Silicon Storage Technology (SST), a finalizację transakcji zaplanowano na okres do końca czerwca br. Obecnie trwa proces integracji Novocella jako nowego oddziału SST, który planuje inwestycje w asortyment jego obecnych i przyszłych produktów. Zdaniem Waltera Novosela, prezesa i głównego technologa firmy, rozwija ona technologię nieulotnej pamięci od początku działalności, a dzięki transakcji z SST spodziewa się upowszechnienia swoich rozwiązań na rynku własności intelektualnej układów pamięci.
Po słabym 2012 r. rynek przekaźników czeka obecnie wzrost
Po dwucyfrowym wzroście w latach 2010-2011 światowy rynek przekaźników elektromechanicznych i półprzewodnikowych skurczył się w roku ubiegłym o 3,6%, do 3,35 mld dol. w skali roku, wynika z raportu analitycznej firmy branżowej IMS Research. Tym samym doszło do pierwszego spadku od 2009 r., kiedy obroty na rynku zmalały o ponad jedną czwartą. Pogorszenie w roku 2012 r. było jednak w swej skali i czasie trwania znacznie słabsze niż w 2009 r. W roku obecnym spodziewany jest powrót wzrostu na wszystkie główne rynki regionalne, w wyniku czego światowe obroty wzrosną o 5,2%, do 3,54 mld dol. Także na lata kolejne analitycy przewidują stabilny 2-3-procentowy wzrost zarówno w Europie i obu Amerykach, oraz od 6 do 8% w rejonie Azji-Pacyfiku. W wyniku tej poprawy rynek przekaźników do 2017 r. ma osiągnąć wartość 4,5 mld dol. W roku ubiegłym według danych z raportu IMS odnotowano spadki dla przekaźników w segmentach motoryzacyjnym, przemysłowym, półprzewodnikowych i przeznaczonych do montowania na obwodach drukowanych we wszystkich regionach geograficznych. Największa, 6,2-procentowa redukcja dostaw miała miejsce w rejonie Europy, Bliskiego Wschodu i Afryki (EMEA), a spadek dla obszaru obu Ameryk wyniósł 2,9%. W rejonie Azji i Pacyfiku nastąpiło natomiast największe odwrócenie trendu – po dynamicznym, 24-procentowym wzroście w 2011 r. odnotowano spadek 2-procentowy w roku ubiegłym. W 2011 r. azjatyccy producenci przekaźników osiągnęli wzrost sprzedaży o ponad 40%, wymiernie więcej niż w latach wcześniejszych, poinformował IHS. Hossa nie trwała długo i kolejny rok przyniósł ochłodzenie, szczególnie w Chinach. Świetnie prosperują-
Wzrosty i spadki na rynku przekaźników elektromechanicznych i półprzewodnikowych w ujęciu regionalnym według IHS ELEKTRONIKA PRAKTYCZNA 9/2013
Koktajl Podzespoły niusów ce poprzednio firmy w 2012 r. sprzedawały nawet o 15% mniej tych elementów.
Photon Energy zadebiutował na warszawskiej giełdzie
Na parkiecie rynku NewConnect zadebiutowała na początku czerwca spółka Photon Energy działająca w branży fotowoltaicznej. W ramach prowadzonej działalności Photon Energy Group zapewnia usługi niezbędne do projektowania, budowy oraz eksploatacji elektrowni słonecznych. Spółka prowadzi działalność w zakresie wytwarzania energii elektrycznej, handlu systemami fotowoltaicznymi, usług projektowych i konstrukcyjnych na zlecenie oraz utrzymania i obsługi istniejących elektrowni słonecznych. Photon Energy jest spółką holdingową, a w skład jej grupy kapitałowej wchodzi 56 spółek, za pomocą których firma realizuje konkretne projekty głównie w Europie. Spółka ma biura m.in. w Amsterdamie, Berlinie, Pradze i Mediolanie i zatrudnia łącznie około 75 pracowników.
BSH zdejmuje Zelmera z giełdy
W kwietniu br. giełda zawiesiła notowania Zelmera w związku z ogłoszeniem przez głównego akcjonariusza przymusowego wykupu papierów spółki od akcjonariuszy mniejszościowych. Do tego czasu BSH Sprzęt Gospodarstwa Domowego, polska spółka z grupy Bosch und Siemens, zgromadziła 97,78% akcji Zelmera. W rękach akcjonariuszy mniejszościowych pozostało 2,22% walorów rzeszowskiej firmy. Cena wykupu wynosiła 40 zł, tyle samo, ile Bosch und Siemens Hausgerate płacił za akcje Zelmera w zakończonym w połowie marca wezwaniu. Dzień wykupu wyznaczono na 17 kwietnia. Wcześniej BSH zapowiadał, że po przejęciu wycofa polską spółkę z giełdy, ale pozostawi markę Zelmer na rynku i będzie kontynuował produkcję
w zakładzie Zelmer w Rogoźnicy k. Rzeszowa. BSH wyraził także wolę wprowadzenia polskiej marki na kolejne rynki zagraniczne. Przed przejęciem Zelmer posiadał ponad 20% udziału w rynku polskim, miał także istotny udział w sprzedaży sprzętu AGD na rynkach zagranicznych, eksportując swoje produkty do 35 krajów świata, w znacznym stopniu do Rosji i Ukrainy. W 2012 r. Zelmer zwiększył przychody o 9,2% do 737 mln zł, choć zysk netto spadł o 39% i wyniósł 29,4 mln zł.
Projektuj z Freescale po raz trzeci
26 czerwca firma Freescale zorganizowała kolejne spotkanie z cyklu „Projektuj z Freescale”, na które składał się cykl wykładów seminaryjnych omawiających podzespoły firmy takie jak na przykład mikrokontrolery Kinetis L i procesory i.MX 6, sensory MEMS Xtrinsic, układy komunikacji bezprzewodowej. Sporo miejsca poświęcono także oprogramowaniu, głównie systemom operacyjnym Wykłady prowadzone były w czterech równoległych sesjach, co umożliwiało uczestnikom wybór interesujących sesji. Integralną częścią imprezy była także wystawa „Technology Lab”, na której pokazywano narzędzia, rozwiązania demonstracyjne oraz projekty. Wystawa w części była dziełem partnerów Freescale i firm powiązanych z omawianymi technologiami, jak np. Quantum oraz WG Electronics.
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2013
17
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
Tosca aws 306 drugie podejście # born2die: Witam. Mniej więcej rok temu był temat o mojej Tosce (…). Teraz się wziąć postanowiłem za nią porządnie. Dostała wszystkie potencjometry nowe, ponieważ w starych połamały się ośki. Dodam, że potencjometr od balansu to oryginalny Telpod M+N. A więc zacząłem, tak jakbym ją budował sam od nowa. Wyjąłem całość, przedwzmacniacz pod zasilacz stabilizowany, generator na wejście i oscyloskop. I ożył! Pięknie działa balans, wszystkie regulacje również działają. Sprawdzałem pod wejściami magnetofon i radio. Jedyne, co mnie zaniepokoiło, to działanie wejścia gramofonowego: dziwnie zniekształcało sinusa jakby był ścięty od dołu. Ale mniejsza o to, nie używam tego wejścia. Przedwzmacniacz działa dobrze. Więc czas wziąć się za zasilanie końcówki. Podłączyłem i śmiga 2×27,5V na starej Elwie jest zadowalającym wynikiem. Przyszła kolej na tranzystory. Więc „diorka” otrzymała wszystko nowe, sterujące i nawet od stabilizacji termicznej, zostawiłem tylko parę różnicową oryginalną. Podłączam do sieci włączam, oczekując, że odpali od „kopa”, a tu cisza. Oczywiście, pali bezpieczniki sieciowy 630 mA. Odłączyłem kolektory od parki końcowej i to samo – pali bezpiecznik. W tym momencie stanąłem i nie wiem, co począć. Pomóżcie… Dodano po zastanowieniu: po całym dniu walk wzmacniacz działa jak trzeba. Prąd spoczynkowy to jak na razie 40 mA na gałąź, ale te tranzystory zniosą chyba nawet 50 mA, więc zaryzykuję. Można powiedzieć końcówka uruchomiona. Przystąpiłem do montażu zasilania tunera i dobrze, że go nie podłączyłem do zasilania. Bezpiecznik co prawda nie spalił się, ale (…) w pewnym punkcie na schemacie jest napisane, że powinno być 50 V, a tam nie ma nic. Jestem też ciekaw skąd się bierze to 50 V. Są to k502 i k503 – na żadnym z nich nie ma żadnego potencjału, a powinien. Dołączam schemat i mam nadzieje, żę ktoś odpisze i choć troszkę pomoże. # ACeK: To bardzo proste, z zasilacza… Jest to zasilacz jednopołówkowy. To napięcie jest potrzebne do polaryzacji warikapów (diod pojemnościowych). Przez zmianę napięcia na ślizgaczu potencjometru zmienia się pojemność diod, a przez to odbierana częstotliwość. Musisz sprawdzić, gdzie Ci to napięcie ginie. Jak to zrotego bić? Wylutuj przed UL1550 opornik R152 (jeśli dobrze odczytałem ze schematu), wystarczy jedną stronę i sprawdź czy masz napięcie. Jeśli tak, to po kolei szukasz dalej. Jeśli nie, to wracasz w stronę transformatora. # born2die: A więc tak, trafko mam walnięte, bo nie mam tego napięcia w ogóle. Nie ma nic na odczepach transformatora. Znajomy powiedział, żebym zrobił tak: pod uzwojenia 9-10, czyli jedną gałąź zasilania końcówki, podłączył powielacz napięcia i ten powielacz podłączył do zasilacza jednopołówkowego (wiedziałem co to jest, tylko nie wiedziałem po co tak duże napięcie i dlaczego go nie ma). Nie mam pojęcia, czemu padło mi jedno uzwojenie i zniknęło to napięcie z trafa, ale cóż – jakoś sobie trzeba radzić.
18
# ACeK: Spróbuj sprawdzić czy czasem nie ma przerwy na wyprowadzeniach uzwojenia w transformatorze punkty 6(8) i 7 (…). Uzwojenie jest nawinięte bardzo cienkim drutem, dlatego, że jest potrzebne wysokie napięcie do polaryzacji, ale prąd jest bardzo mały. Jeśli nie da się reanimować zasilacza, to możesz zamiast powielacza dać jakikolwiek transformatorek zewnętrzny (…) # born2die: Zrobiłem powielacz według schematu, który zamieściłem poniżej. Uzyskałem około 31 V w punkcie k502. Czy to da radę „uciągnąć” strojenie czy nie bardzo? # ACeK: UL1550 to jest „dioda Zenera” na około 33 V. Jeśli masz napięcie zasilania 31 V, to będziesz musiał zmniejszyć wartość opornika R152, aby dobrać prąd około 5 mA. Dokładność stabilizacji napięcia będzie miała wpływ na odbierane stacje. # born2die: Podłączyłem nie zmieniając wartości żadnych elementów i wyszło mi coś takiego: radio gra, łapie stacje, ale niemiłosiernie buczy. Prawdopodobnie przez zbyt niskie napięcie. Jakbym musiał zmienić wartość tego opornika, żeby nie buczało? Na UL1550 jest okolo 32 V. Myślałem żeby zrobić przetwornicę z 14 V na 40 V, ale czy jest sens? Albo można zrobić powielacz odpowiedzialny za zasilanie przedwzmacniacza. Chyba uciągną jeszcze strojenie, bo zrobienie tam podwajacza z 30 V może mieć sens. # ACeK: Jak na razie nie wiemy, dlaczego są zakłócenia. Naprawę każdego urządzenie, powinno zacząć się od zasilacza. UL1550 oraz R152 stanowią stabilizator napięcia, który dodatkowo jest wspomagany kondensatorem C103. Zanim będziesz próbował różnych powielaczy, może zrób test, jak proponowałem na początku. Osobny transformator, z którego dajesz wyprostowane napięcie 45…50 V. Wydajność prądowa 10 mA. W ten sposób sprawdzisz, jak zachowuje się układ. Jak to zrobisz, będziemy zastanawiać się, co dalej. # born2die: Tak. Zrobiłem inaczej. Z odczepu dla przedwzmacniacza (30 V) zrobiłem powielacz i po filtracji mam w punkcie k502 40 V, a na stabilizatorze mam 32 V, więc chyba zasilanie działa dobrze. Natomiast zmierzyłem k503 i jest 13,6 V. Chyba za mało – powinno być koło 15 V żeby zasilić scalaki??? # rafal.220: Co to tych wartości napięć, to już nie rozchodzi się o to czy masz 0,5 V za mało, a jedynie o to, że mogą nie zostać spełnione warunki do prawidłowej stabilizacji, a w takim przypadku zapas napięcia odgrywa kluczową rolę. Zresztą kombinuj, a sam nauczysz się na własnych błędach wyciągając odpowiednie wnioski. ELEKTRONIKA PRAKTYCZNA 9/2013
SPRZĘŻENIEPodzespoły ZWROTNE # born2die: Dobra, rozumiem. Ale dlaczego to tak brumi, skoro przy radiu nie kombinowałem? Jedyne, czego nie ma w radiu, to antena ferrytowa, ale ona i tak nie jest używana na długich, więc to odpada. Może podłączyć zasilanie scalaków z zasilacza stabilizowanego. Masę do obudowy, a pod punkt k503 dać 15 V? # rafal.220: Ale jak to brumi? Jaka jest częstotliwość tego brumu? 50 Hz (częstotliwość sieci)? # born2die: Jest to takie brumienie mniej więcej jak, ma się nie włączone źródło do wzmacniacza i dotknie palcem. Częstotliwość, nie mam pojęcia, nie mam na tyle doświadczenia, żeby na ucho powiedzieć, jaka to jest częstotliwość. # ACeK: born2die napisał(a):... Jedynie czego nie ma w radiu, to antena ferrytowa,, ale ona i tak nie jest używana na długich, wiec to odpada ... Nie wiem skad masz takie informacje. Antena ferrytowa służy do odbierania zakresu AM, za to nie jest używana do odbioru FM. Czy te zakłócenia są na wszystkich zakresach, czy tylko na FM? Na czym odbierasz sygnał (rodzaj anteny)? # rafal.220: Ech... Pewnie źródłem śmieci jest samo zasilanie. Zbuduj sobie prowizoryczny oscyloskop. Do tego celu możesz wykorzystać wejście liniowe karty dźwiękowej. Jak na początek, powinien ułatwić ci życie.
# born2die: Antena jest to taka, jaką dołączali dawno temu do telewizora Deawoo. Odbieram na UKF2 i stacje ładnie wszystkie łapie, tylko wszystko ciągle przeplata się z brumem. Na Tosce 303 z tą samą anteną nie ma takich problemów. Oscyloskop mam, więc nie widzę problemu. # rafal.220: (…) To weź sobie zbadaj wszystkie wystabilizowane napięcia zasilające względem „gorącej masy”, jeśli gdzieś będą tętnienia, to wiadomo, o co się rozchodzi. # born2die: Nie wykonałem pomiarów oscyloskopem, gdyż uznałem, że muszę przekazać wam pewną wiadomość. Pomierzyłem napięcia z płytki zasilacza tunera. I wyszło tak, w punkcie k503 (zasilanie scalaków) 53 V skąd? W punkcie k502 dobre 40 V i w punkcie k501 też 40 V, choć nie wiem, ile tam powinno być. Ale zrobiłem tak, że uruchomiłem Toscę z tunerem bez podłączonego zasilania sclaków i też brumiało (radio oczywiście nie odbierało), więc nie wiem skąd te 53 V i dlaczego tuner jeszcze żyje? # rafal.220: To zależy względem, którego punktu odniesiono zasilanie samych scalaków (wykonałeś pomiary bezpośrednio na nóżkach zasilających?). Ponadto, ten transformator w końcu masz sprawny czy nadal jest tam uszkodzone uzwojenie? Może ono jest przyczyną zwarcia na karkasie trafo i wprowadza ci sztuczne obciążenie, a co za tym idzie pulsację napięcia?
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2013
19
PROJEKTY
Zasilacz warsztatowy
AVT 5417
Regulowany zasilacz warsztatowy to – oprócz lutownicy, multimetru, oscyloskopu i generatora – podstawowe wyposażenie warsztatu elektronika. Nawet początkujący elektronik musi być wyposażony przynajmniej w zasilacz, lutownicę i multimetr. Dlatego wielu z nich konstruuje swoje pierwsze zasilacze samodzielnie, zanim „dojrzeje” do zakupu wyrobu fabrycznego. Postanowiłem i ja zmierzyć się z konstrukcją zasilacza, jednak używając do tego celu nowoczesnych podzespołów. Wyposażyłem go też w funkcje, które uważałem za niezbędne. Rekomendacje: pełnowartościowy, nowoczesny, funkcjonalny zasilacz o regulowanym napięciu, prądzie wyjściowym i prądzie zadziałania zabezpieczenia, który przyda się w niejednym warsztacie elektronicznym. Od czasu, gdy w handlu pojawiły się względnie tanie mikrokontrolery, konstruktorzy próbowali je z lepszym lub gorszym skutkiem użyć jako sterowników zasilaczy. Niegdyś wykonałem dla siebie zasilacz sterowany przez mikrokontroler PIC16F84. Była to konstrukcja, w której rolę stabilizatora pełnił układ L200. Regulacja napięcia wyjściowego polegała na dołączaniu poprzez analogowy multiplekser w obwód regulacji L200 potencjometrów z ustalonym podzia-
20
łem, a w konsekwencji ustalenie napięcia wyjściowego. Multiplekser miał 16 wyjść, więc do dyspozycji miałem 16 napięć wyjściowych. Dodatkowym ograniczeniem było dopuszczalne napięcie na wyprowadzeniach multipleksera wynoszące +16 V. Dlatego napięcie wyjściowe nie mogło być wyższe niż ok. 15 V. Ograniczenie prądowe w L200 jest realizowane przez włączanie w obwód pomiaru prądu rezystora szeregowego. W moim zasi-
W ofercie AVT* AVT-5417 A Podstawowe informacje: • Zakres napięcia wyjściowego 0,6…24 V. • Napięcie wyjściowe ustawiane zgrubnie, z krokiem 1 V i dokładnie z krokiem 0,1 V. • Funkcja programowego ograniczania maksymalnego napięcia wyjściowego – overvoltage protection. • Maksymalny prąd wyjściowy 3 A. • Programowane ograniczenie prądowe w zakresie 0,1…3 A. • Ograniczenie prądowe ustawiane zgrubnie z krokiem 1 A i dokładnie z krokiem 0,1 A. • Funkcja programowanego zabezpieczenia nadprądowego (overcurrent protection) w zakresie 0,1…3 A ustawiana z rozdzielczością 0,1 A. • Cyfrowy pomiar napięcia wyjściowego (rozdzielczość 0,1 V) i prądu wyjściowego (rozdzielczość 0,01 A). • Funkcja ograniczania moc strat na tranzystorze regulacyjnym przez automatyczne przełączanie odczepu transformatora na połowę wtórnego napięcia przemiennego przy napięciu wyjściowym poniżej +12 V (z histerezą 0,2 V). • Możliwość pracy bez sterownika mikroprocesorowego – sterowanie za pomocą potencjometrów (bez pomiaru napięcia i prądu wyjściowego). Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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
ELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy laczu, za pomocą przekaźników, włączałem 3 rezystory uzyskując 3 zakresy ograniczenia prądowego: 100 mA, 500 mA i 1000 mA.
Napięcie wyjściowe było ustawiane za pomocą przycisków „Góra” i „Dół”. Sterownik wyświetlał na wyświetlaczu jego wartość,
przy czym nie była to wartość zmierzona na wyjściu, tylko spodziewana. W procesie uruchamiania trzeba było zadbać o to, aby
Rysunek 1. Schemat części analogowej zasilacza ELEKTRONIKA PRAKTYCZNA 9/2013
21
PROJEKTY wartość wyświetlana odpowiadała wyjściowej przez odpowiednie ustawienie potencjometru włączonego w obwód. Zabezpieczenie prądowe było zmieniane sekwencyjnie przez jednoczesne przyciśnięcie obu przycisków. Piszę o tym wszystkim dlatego, że ten zasilacz (opisywany kiedyś na łamach EP) pracuje bezawaryjnie kilkanaście lat i jest do dzisiaj z powodzeniem używany mimo wspomnianych ograniczeń. Teraz postanowiłem skonstruować i wykonać nowszą wersję, o szerszym zakresie napięcia wyjściowego, z funkcją pomiaru prądu i napięcia wyjściowego oraz z regulowanym zabezpieczeniem prądowym.
Założenia projektowe Zasilacze mogą mieć bardzo różne parametry, ale najczęściej przyjmuje się, że uniwersalny zasilacz warsztatowy powinien mieć możliwość regulacji napięcia wyjściowego w zakresie 0…24-30 V i wydajność prądową 2…5 A. Dolna granica 0 V jest umowna, ponieważ komu nie jest potrzebny zasilacz, który nie daje napięcia na wyjściu. W praktyce używa się napięcia minimalnego rzędu 1 V. Ja przyjąłem, że zadowalający będzie zakres napięcia wyjściowego 0,6…24 V i wydajność prądowa 3 A. Założyłem też, że urządzenie będzie kontrolowane przez sterownik mikroprocesorowy, który będzie mierzył rzeczywiste napięcie wyjściowe oraz prąd obciążenia. Pomiar prądu umożliwi wykonanie zabezpieczenia nadprądowego polegającego na odłączeniu napięcia zasilającego od obciążenia po przekroczeniu zadanego progu. Dodatkowo, dobrze by było zastosować regulowane ograniczenie prądowe. Po osiągnięciu zadanej wartości prądu jest ograniczane napięcie wyjściowe. Zasilacz pracuje wtedy jako źródło prądowe. Układ ma być klasycznym stabilizatorem analogowym z szeregowym tranzystorem regulacyjnym. Przy takiej topologii układu występują duże straty mocy na szeregowym stabilizatorze przy obciążeniu dużym prądem i ustalonym, niewielkim napięciu wyjściowym. Dlatego przewidziałem automatyczne przełączenie zasilania układu z odczepu transformatora sieciowego, gdy ustawione napięcie wyjściowe jest niższe niż 12 V. Sterowanie napięciem wyjściowym, ograniczeniem prądowym, zabezpieczeniem nadprądowym oraz pomiar napięcia i prądu ma wykonywać sterownik z mikrokontrolerem.
Część analogowa zasilacza Schemat części analogowej zasilacza pokazano na rysunku 1. Na pierwszy rzut oka układ wydaje się dość skomplikowany. Jednak w rzeczywistości jest to kilka klasycznych bloków analogowych połączonych ze sobą:
22
• Blok regulatora napięcia. • Blok pomiaru prądu i napięcia. • Blok ograniczenia prądowego. • Blok zasilacza pomocniczego. Blok regulatora napięcia. Blok regulatora napięcia (rysunek 2) jest zbudowany z tranzystora regulacyjnego T1, komparatora i wzmacniacza błędu U1 oraz układu próbkującego napięcie wyjściowe. Tranzystorem regulacyjnym T1 może być tranzystor bipolarny NPN lub tranzystor FET z kanałem N. Zasada działania tego układu jest następująca: napięcie wyjściowe ze źródła (emitera) tranzysto- Rysunek 2. Blok regulatora napięcia ra T1 po podzieleniu przez 10 w układzie dzielnika złożonego z rezystorów Blok pomiaru napięcia i prądu. NapięR2, R6 i R9 (sygnał regulacji) trafia na wejcie wyjściowe regulatora napięcia będzie ście odwracające wzmacniacza operacyjnego mierzone przez wbudowany w mikrokontroU1 (nóżka 2). Na wejście nieodwracające U1 ler przetwornik A/C. Ponieważ mikrokontro(nóżka 3) jest podawane napięcie odniesieler jest zasilany napięciem +3,3 V i to napięnia nazywane napięciem referencyjnym cie jest używane jako napięcie referencyjne Uref. W wyniku porównania sygnału reguprzetwornika, to sygnał na wejściu przetworlacji z Uref powstaje sygnał błędu. Sygnał nika nie może mieć napięcia wyższego niż błędu jest wzmacniany i z wyjścia U1 (nóżka +3,3 V. Najprościej będzie podzielić napię6) steruje bramką (bazą) tranzystora regulacie wyjściowe przez 10. Dzielnik jest zbucyjnego T1. Napięcie wyjściowe jest ciągle dowany z rezystora R7 i potencjometru R10. testowane i jeżeli nie jest równe zadanemu, Zastosowałem wieloobrotowy, precyzyjny czyli napięciu referencyjnemu, to sygnał potencjometr, bo jest to łatwiejsze rozwiąz wyjścia komparatora po wzmocnieniu tak zanie niż zdobycie i dobranie rezystorów do steruje tranzystorem T1, by te różnicę znidokładnego dzielnika. welować. Pomiar prądu (rysunek 3) nie jest tak Układ regulacji napięcia można trakprosty, jak pomiar napięcia. Najczęściej natować jako wzmacniacz operacyjny mocy tężenie prądu mierzy się metodą techniczną objęty pętlą ujemnego sprzężenia zwrotnepoprzez pomiar spadku napięcia na rezystogo poprzez dzielnik napięcia wyjściowego rze pomiarowym włączonym szeregowo. Po(rezystory R1, R6, R9). Napięcie na wyjściu winien on mieć jak najmniejszą rezystancję można wyliczyć z zależności Uwy=(1+R2/ po to, aby nie powodował dużego spadku (R6+R9)). Ponieważ założyliśmy, że napięnapięcia wyjściowego przy dużym prądzie cie wyjściowe jest dzielone przez 10, czyli obciążenia zasilacza. Z drugiej strony, małe R2/(R6+R9)=10, to napięcie wyjściowe ma spadki napięcia na rezystorze pomiarowym wartość Uwy=10×Uref. Wystarczy teraz powodują problemy z pomiarem. Dlatego zmieniać napięcie referencyjne w zakresie stosuje się rezystory pomiarowe o małej re0…2,4 V, by na napięcie wyjściowe zmieniało się w zakresie 0…24 V. Zmiana napięcia referencyjnego będzie zadaniem sterownika mikroprocesorowego. Układ regulacji z ujemnym sprzężeniem zwrotnym ma bardzo dobre parametry elektryczne i dlatego jest chętnie stosowany w topologiach scalonych stabilizatorów napięcia oraz w regulatorach wykonywanych z elementów dyskretnych. Żeby ograniczyć możliwość wzbudzania się układu ograniczono pasmo przenoszenia wzmacniacza U1 przez dodanie rezystora R3 i kondensatora C4. Rysunek 3. Układ pomiaru prądu ELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy zystancji i wzmacnianie spadku napięcia poprzez wzmacniacze prądu stałego. Prąd płynący przez rezystor wywołuje na nim spadek napięcia, który z prawa Ohma jest równy U=I×R (R=R19). Przy znanej rezystancji R prąd będzie równy I=U/R. Załóżmy, że nasz zasilacz będzie dostarczał prądu o natężeniu maksymalnym 3 A, a bocznik będzie miał rezystancję 0,1 V. Maksymalny spadek napięcia U=3 A×0,1 V=0,3 V. Z jednej strony, 300 mV spadku na wyjściu to sporo jak na zasilacz, ale z drugiej strony nie będzie można dokładnie zmierzyć to napięcie przetwornikiem o zakresie napięcia wejściowego 0…3,3 V (napięcie referencyjne przetwornika A/C wynosi 3,3 V). Napięcie 300 mV to około 10% całego zakresu pomiarowego, a trzeba dążyć do tego, by napięcie mierzone miało maksymalną wartość bliską zakresowi pomiarowemu. Najprostszym rozwiązaniem będzie wzmocnienie napięcia stałego odkładającego się na boczniku za pomocą wzmacniacza operacyjnego U4 pracującego w konfiguracji wzmacniacza nieodwracającego. Wzmocnienie takiego układu łatwo dobiera się za pomocą dzielnika złożonego z 2 rezystorów: R17 i sumy rezystancji R11+R12. Wzmocnienie wzmacniacza nieodwracającego jest wyliczane z zależności: G=1+(R11+R12)/R17. Jeżeli dobierzemy rezystory w taki sposób, aby R11+R12/R17 miało wartość 9, to wzmocnienie całego układu będzie równe 10. Wtedy dla maksymalnego natężenia prądu wynoszącego 3 A napięcie wyjściowe z układu pomiaru prądu będzie równe 3 V. Dokładne ustalenie wzmocnienia jest możliwe dzięki zastosowaniu wieloobrotowego potencjometru R11. Pozwala to również na korekcję wzmocnienia wynikającą z tolerancji rezystancji użytego rezystora pomiarowego. Rezystor pomiarowy jest włączony w ujemną gałąź napięcia wyjściowego. Uproszcza to układ pomiarowy, ale wymaga uwagi przy projektowaniu obwodów masy. Masa odniesienia w stosunku, do której są mierzone napięcia wyjściowe i zasilane są wzmacniacze operacyjne, jest oznaczona jako -Uout. Jak widać na schemacie, nie jest to ujemny biegun mostka Graetza, tylko drugi koniec rezystora pomiarowego R19. Takie rozwiązanie jest podyktowane tym, aby układ próbkowania bloku regulacji napięcia pomiarowego nie mierzył dodatkowego spadku na rezystorze R19. Gdyby masa układu próbkowania była dołączana do minusa mostka (oznaczonego na schemacie GND), to napięcie wyjściowe regulatora zmieniałoby się o wartość spadku napięcia na R19 i było zależne od pobieranego prądu (w granicach 0…300 mV dla prądu wyjściowego 0…3 A), co jest niedopuszczalne. -Uout jest tez masą odniesienia dla sygnałów regulacyjnych generowanych przez mikrokontroler. ELEKTRONIKA PRAKTYCZNA 9/2013
Blok ograniczenia prądowego. OgraniD9 (12 V). Wzmacniacz U4 jest zasilany czenie prądowe to istotny obwód zasilacza. napięciem +15 V ze stabilizatora zbudoPrawidłowo ustawione ograniczenie często wanego z tranzystora T5 i diody Zenera chroni zasilany układ przed zniszczeniem, D11. Tranzystor T5 powinien być wyposzczególnie wtedy, gdy wydajność prądowa sażony w radiator. Stabilizator 7805 (U5) zasilacza jest spora, a zasilane urządzenie dostarcza napięcia +5 V do zasilania ukłama np. odwrotnie wlutowany układ scalony, dów sterownika, w tym mikrokontrolera kondensator elektrolityczny itp. Ogranicze(przez stabilizator +3,3 V umieszczony nie prądowe chroni też sam zasilacz przed na płytce sterownika) i wyświetlacza LCD. krótkotrwałym zwarciem wyjścia. Układy zasilania pomocniczego wymagają Zasada działania układu ograniczenia napięcia niestabilizowanego o wartości ok. prądowego jest podobna do działania układu +32 V. Do złącza POM trzeba doprowadzić regulacji napięcia. Jego podstawą jest komdodatkowe napięcie przemienne o wartoparator ze wzmacniaczem napięcia. Kompaści ok. 32…35 V o wydajności minimum rator porównuje napięcie wyjściowe z ukła150 mA. du wyżej opisanego układu pomiaru prądu Układ stabilizatorów zasilania pomocniz napięciem referencyjnym reprezentującym czego można próbować zasilić z napięcia na ograniczany prąd. Zastosowany w zasilaczu dodatnim biegunie kondensatora C2. Jednak układ ograniczenia został pokazano na ryto rozwiązanie ma ograniczenia. Po pierwsunku 4. sze, napięcie na C2 musi być odpowiednio Na wejście nieodwracające (nóżka 3) wyższe, niż maksymalne napięcie wyjściowe przez rezystor R14 jest podawane ze stezasilacza. Ten warunek można dość łatwo rownika mikroprocesorowego napięcie refespełnić, ale wraz ze wzrostem napięcia na rencyjne. Wejście odwracające jest połączoC2, rosną straty na tranzystorze regulacyjne przez rezystor R16 z wyjściem układu nym. Ponadto, przy takim rozwiązaniu nie pomiaru prądu z rysunku 3 (nóżka 6 ukłamożna wykorzystać metody włączania oddu U4). Jeżeli napięcie na wejściu odwraczepu transformatora w celu zmniejszania cającym reprezentujące mierzony prąd na strat mocy na tranzystorze regulacyjnym, wyjściu zasilacza jest wyższe niż napięcie gdy jest ustawione napięcie wyjściowe rówreferencyjne podawanego z mikrokontrolene połowie maksymalnego napięcia zasilara na wejście nieodwracające, to na wyjściu cza. Wtedy napięcie na C2 jest zbyt niskie. wzmacniacza U3 występuje napięcie niższe, Jednak podstawowe ograniczenie to odkłaniż na wyjściu układu regulacji napięcia. danie się tętnień o częstotliwości 100 Hz na Powoduje to zmniejszanie się napięcia na rezystorze pomiarowym R19. Po 10-krotnym wyjściu zasilacza do momentu aż napięwzmocnieniu, na wyjściu układu pomiaru cia na wejściu komparatora się wyrównają. prądu tętnienia mogą mieć amplitudę nawet Dioda D7 zabezpiecza układ regulacji przez powyżej 2 V. podwyższaniem napięcia wyjściowego przez układ zabezpieczenia, kiedy prąd wyjściowy Sterownik cyfrowy jest niższy niż prąd ograniczenia. Według założeń sterownik cyfrowy poBlok zasilania pomocniczego. Układy winien wykonywać następujące zadania: wzmacniaczy operacyjnych zastosowane • Wytwarzać napięcie referencyjne w zaw zasilaczu musza być zasilane odpowiedkresie 0….2,4 Vdo regulacji napięcia nim napięciem. Wzmacniacze operacyjne wyjściowego. U1 i U3 są jednocześnie wzmacniaczami na• Wytwarzać napięcie regulujące poziom pięcia dla układu regulacji napięcia i ograniograniczenia prądowego w zakresie czenia prądowego. Z tego powodu muszą być 0…3 V. zasilane napięciem o wartości co najmniej • Mierzyć napięcie wyjściowe. Uwy+3 V, czyli +27 V. Dlatego zastosowano wysokonapięciową wersję typowego wzmacniacza mA741 oznaczoną jako mA741I. Układ ten może pracować przy maksymalnym napięciu zasilania ±22 V, a więc 0…44 V. W zasilaczu jest zasilany napięciem -5 V…+27 V (32 V). mA741 nie może pracować z ujemnym biegunem zasilania na potencjale masy (tak jak na przykład LM324) i napięciami wejściowymi równymi lub bliskimi potencjałowi masy. Do generowania napięcia ujemnego -5 V jest używany popularny układ ICL7660 (U2). Napięcie +27 V jest uzyskiwane w stabilizatorze zbudowanym z tranzystora T4 i diod Zenera D8 (15 V), oraz Rysunek 4. Układ ograniczenia prądowego
23
PROJEKTY • Mierzyć prąd wyjściowy z konwertera prąd/napięcie. • Realizować interfejs użytkownika umożliwiający wykonywanie wszystkich nastaw i pomiarów. Do wytwarzania napięcia przez cyfrowy sterownik będzie potrzebny przetwornik C/A. Takie przetworniki jako moduły peryferyjne do niedawna były rzadko spotykane w mikrokontrolerach. Jeżeli trzeba było wytworzyć napięcie, to najprostszym rozwiązaniem
był przetwornik C/A zbudowany z generatora PWM i analogowego filtra dolnoprzepustowego. Przebieg PWM można bez problemu generować nawet programowo, ale filtr musi być układem zewnętrznym, co komplikuje układ. Z tego powodu zacząłem szukać mikrokontrolerów z wbudowanym przetwornikiem C/A. Poszukiwania były o tyle trudne, że tu potrzebuję dwóch niezależnych przetworników. Wybór padł na 32-bitowy mikrokontroler STM32F100RBT6B. Jest on
bogato wyposażony w bloki peryferyjne, ma obszerne pamięci Flash i RAM, a wydajność 32-bitowego rdzenia Cortex-M zdecydowanie przewyższa potrzeby tej aplikacji. Ale ma również wszystkie potrzebne do budowy zasilacza zasoby: dwa 12-bitowe przetworniki C/A i 12-bitowy przetwornik A/C z multiplekserem na wejściu i co ważne – jest łatwo dostępny, a jego cena przy zakupie jednostkowym jest nie jest wygórowana. Zatem nic nie stoi na przeszkodzie, by go zastosować,
Rysunek 5. Schemat ideowy sterownika zasilacza
24
ELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy chociaż z zadaniem sterowania zasilacza poradziłby sobie nawet niezbyt rozbudowany 8-bitowiec wyposażony w odpowiednie bloki peryferyjne. Schemat sterownika pokazano na rysunku 5. Zasadniczy element – mikrokontroler – jest zasilany napięciem +3,3 V uzyskiwanym ze stabilizatora U1. Na wejście stabilizatora jest podawane napięcie +5 V ze stabilizatora U5 (7805) umieszczonego na płytce analogowej. To napięcie zasila również wyświetlacz LCD (DIS1). Taktowanie zapewnia rezonator kwarcowy o częstotliwości 8 MHz (Y2). Układy analogowe (zasilanie +3,3 V) nie mają swojego stabilizatora. Żaby zapewnić przyzwoitą jakość napięcia zasilającego układu analogowe, w tym układy wytwarzania napięć referencyjnych przetworników A/C i C/A, zastosowano filtr LC składający się z dławika L1 oraz kondensatorów C1 i C2. Ponieważ mikrokontroler nie ma wbudowanej pamięci nieulotnej przeznaczonej na dane użytkownika (na przykład dane konfiguracyjne), to zastosowałem zewnętrzną pamięć EEPROM typu 25LC256 (U5) z interfejsem SPI. Interfejs użytkownika składa się z alfanumerycznego wyświetlacza LCD o organizacji 2×16 znaków (DIS1), impulsatora ze stykiem zwieranym przyciśnięciem ośki (IM!) i dodatkowego styku KAS (P3). Programowanie mikrokontrolera zapewnia złącze SWI (P2) obsługiwane przez programator/ debuger ST-LINK. Elementy R8, Q1 i P4 nie są używane w projekcie. Zostały przewidziane do sterowania wentylatorem chłodzącym radiator i odczytywania temperatury radiatora. Jak widać sterownik układowo nie jest skomplikowany. Uzyskanie tak nieskomplikowanego układu było możliwy dzięki bogatemu wyposażeniu mikrokontrolera.
Wytwarzanie napięcia referencyjnego – konfigurowanie przetwornika C/A
wybranej rozdzielczości, cyfrowe dane do konwersji są wpisywane do: • 8 najmłodszych bitów rejestru DAC_ DHR8Rx[7:0]. • 12 bitów dosuniętych do lewej w rejestrze DAC_DHR12Lx[15:4]. • 12 bitów dosuniętych do prawej w rejestrze DAC_DHR12Rx[11:0]. Dane z rejestrów DAC_DHR są automatycznie zapisywane do rejestrów przetwornika DAC_DOR w czasie jednego cyklu magistrali APB1, ale tylko w wypadku, gdy użytkownik nie wybrał sprzętowego wyzwalania konwersji. Kiedy takie wyzwalanie zostało wybrane i warunek wyzwalania nastąpił, to przepisanie pomiędzy DAC_DHR i DAC_ DOR zajmuje 3 cykle magistrali APB1. Po zapisaniu DAC_DOR napięcie na wyjściu zmienia się po czasie Tsettling zależnym od napięcia zasilania i obciążenia wyjścia analogowego przetwornika. Warto tu wspomnieć, że do wyjścia można dołączyć wbudowany w układ mikrokontrolera bufor analogowy i uzyskując stosunkowo niską impedancję wyjściową. W zasilaczu programowo wybrano buforowanie wyjścia. Napięcie wyjściowe przetwornika pracującego w rozdzielczości 12-bitowej jest określone zależnością: DACotput=Uref (DOR/4095)[V], gdzie Uref – napięcie referencyjne przetwornika, DOR – zawartość rejestru DAC_DOR. Dla napięcia referencyjnego 3,3 V napięcie na wyjściu zmienia się w zakresie 0…3,3 V. Do konfiguracji przetwornika zostaną użyte funkcje standardowej biblioteki CMSIS dla mikrokontrolerów STM32. Jak wiemy, do sterowania napięciem wyjściowym zasilacza zostanie wykorzystany przetwornik DAC1 z wyjściem napięciowym na wyprowadzeniu PA4 (Reg), a do ustawiania poziomu zabezpieczenia prądowego DAC2 z wyjściem napięciowym na wyprowadzeniu PA5 (Ilevel). W pierwszym kroku zdefiniujemy PA4 i PA5 jako wyprowadzenia analogowe (listing 1). Aby przetwornik pracował tak jak tego od niego oczekujemy musi być odpowiednio skonfigurowany. Najpierw wyłączamy możliwość sprzętowego wyzwalania. Napięcie na wyjściu ma się zmienić po zapisaniu nowej wartości do rejestru przetwornika przez pro-
Napięcia referencyjne do regulacji napięcie wyjściowego i zabezpieczenia nadprądowego są wytwarzane przez blok przetwornika C/A. W STM32F100 może on być skonfigurowany do pracy z rozdzielczością 12 lub 8 bitów i ma 2 Listing 1. Konfiguracja wyprowadzeń PA4 i PA5 niezależne konwertery, a w praktyce są to 2 niezależne przetworniki. Ich wyjścia są dostępne na wyprowadzeniach PA4 (DAC1) i PA5 (DAC2). Napięcie na PA4 jest używane do regulowania napięcia wyjściowego zasilacza, a na PA5 do ustawiania poziomu ograniczenia prądowego. Zależnie od
gram użytkownika. Potem trzeba zapewnić taktowanie modułom ADC1 i ADC2 z magistrali APB1 oraz trzeba je włączyć przez wywołanie funkcji DAC_Cmd(DAC_Channel_1, ENABLE); i DAC_Cmd(DAC_Channel21, ENABLE);. Procedurę konfiguracji pokazano na listingu 2. Dla modułu DAC1 zapis rejestru DAC_DHR i w rezultacie DAC_DOR wykonuje funkcja DAC_SetChannel1Data(DAC_ Align_12b_R, 2048);. Jej argumentami są: • Wielkość i format danych do konwersji. My będziemy wpisywali dane 12-bitowe dosunięte do prawej. • Cyfrowa wartość DOR do konwersji na napięcie analogowe według zależności Uwy=Uref (DOR/4095)[V]. Tak samo są zapisywane rejestry modułu DAC2. Z praktycznego punktu widzenia mamy wszystko, co jest konieczne do konwersji cyfrowo-analogowej i tym samym programowego sterowania wytwarzaniem napięcia na wyjściu konwertera C/A w zakresie 0…3,3 V.
Pomiar napięcia i prądu wyjściowego – konfigurowanie przetwornika A/C W mikrokontrolerach rodziny STM32F100 są wbudowane dwa niezależne przetworniki A/C o rozdzielczości 12 bitów. Napięcie podawane na wejście analogowe można przypisać do jednej z dwóch grup: podstawowej (regular channel) i grupy nazwie injected channel. Grupa injected ma wysoki priorytet wyzwalania konwersji. Jeżeli pojawi się sygnał wyzwalania dla tej grupy kanałów, to zostanie zatrzymane przetwarzanie w grupie regular (po zakończeniu cyklu) i przetwornik będzie przetwarzał sygnały z wejść grupy injected. Ten mechanizm został stworzony po to, by zapewnić jak najszybszą konwersję dla sygnałów krytycznych z punktu widzenia algorytmów przetwarzania sygnałów. Oprócz priorytetu są jeszcze inne różnice. Grupa injected może przetwarzać sygnały z maksymalnie 4 wejść, ale do każdego kanału jest przypisany osobny rejestr wyniku. Do grupy regular można przypisać maksymalnie 16 wejść, a rejestr wyniku jest jeden wspólny.
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //włączenie taktowania GPIOA GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure);
Listing 2. Konfiguracja przetwornika
void DACInit(void) { DAC_InitTypeDef DAC_InitStructure; DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;//bez wyzwlania sprzetowego DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;//dolaczenie bufora analogowego RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);//wlaczenie taktowania DAC_Init(DAC_Channel_1, &DAC_InitStructure); DAC_Cmd(DAC_Channel_1, ENABLE); //wlaczenie DAC1 DAC_Init(DAC_Channel_2, &DAC_InitStructure); DAC_Cmd(DAC_Channel_2, ENABLE); //wlaczenie DAC2 }
ELEKTRONIKA PRAKTYCZNA 9/2013
25
PROJEKTY W naszym zasilaczu, przy stosunkowo dużej wydajności rdzenia i szybkich przetwornikach, spokojnie możemy użyć grupy regular do pomiaru napięcia i prądu wyjściowego. Sygnał taktujący przetwornikiem ADCCLK ma częstotliwość maksymalną 14 MHz. Rdzeń STM32F100 może być taktowany z częstotliwością nie większą niż 24 MHz i z taką maksymalną częstotliwością pracują obie magistrale APB1 i APB2. Sygnał taktujący przetwornikiem jest brany z szyny APB2 i dzielony przez preskaler o programowanym podziale przez 2, 4 6 i 8. Aby uzyskać maksymalną częstotliwość taktowania wybieramy podział przez 2 i otrzymujemy ADCCLK wynoszące 12 MHz. Znając częstotliwość taktowania można określić jak długo będzie trwała konwersja: T=sampling time+12,5×TADCCLK (TADCCLK – okres sygnału taktowania przetwornika). Czas 12,5×TADCCLK wynika z przetwarzania 12-bitowego przy metodzie sukcesywnej aproksymacji. Czas sampling time jest programowany i może mieć jedną z wartości: 1,5; 7,5; 13,5; 28,5; 41,5; 55,5; 71,5 lub 239,5 ×TADCCLK. Moduł przetwornika trzeba przed użyciem skonfigurować, zapewnić taktowanie i włączyć. Każdy z pomiarów będzie wyzwolony programowo. Dlatego trzeba wyłączyć pomiar ciągły i wyzwalanie zewnętrzne. Czas trwania pojedynczej konwersji zależy od częstotliwości taktowania modułu przetwornika. Przetwornik może korzystać z 16 wejść analogowych przełączanych multiplekserem analogowym. My będziemy mierzyli napięcie wyjściowe zasilacza i napięcie z konwertera prąd/napięcie (prąd wyjściowy). Napięcie wyjściowe jest mierzone w kanale 0 (linia PA0), a napięcie z konwertera prąd/ napięcie w kanale 1 (PA1). Linie PA0 i PA1 trzeba skonfigurować jako wejścia analogowe (listing 3). Aby przetwornik mógł w ogóle pracować, trzeba wybrać źródło jego sygnału zegarowego i programowo włączyć moduł. Ponieważ częstotliwość taktowania rdzenia ustalono na 24 MHz, to zegar taktujący przetwornik musi być podzielony przez 2. Pokazano to na listingu 4. Moduł ADC jest rozbudowany i może pracować w różnych trybach. Nas będzie interesowała praca w trybie regular z pomiarem w 2 kanałach. Jest możliwe włączenie automatycznego przemiatania kanałów pomiarowych. Wtedy po zakończeniu obsługi jednego kanału automatycznie jest inicjowany kolejny. Jednak jest z tym problem, bo w trybie regular wynik konwersji jest zapisywany do jednego rejestru. Użytkownik, gdy jest włączone skanowanie nie wie, z którego kanału odczytuje pomiar. Tę niedogodność można wyeliminować stosując przesyłanie wyników poszczególnych pomiarów przez
26
Listing 3. Konfigurowanie PA0 i PA1 jako wejść analogowych
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//wejscie analogowe GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);
Listing 4. Konfiguracja taktowania i włączenie przetwornika
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //włącz taktowanie ADC1 RCC_ADCCLKConfig(RCC_PCLK2_Div2);//taktowanie przetwornika =12MHz ADC_Cmd(ADC1, ENABLE);
Listing 5. Konfigurowanie przetwornika ADC
void AnalogInit(void) { //struktura z konfiguracją ADC ADC_InitTypeDef ADC_InitStructure; //praca niezalezna ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //skanowanie kanalow niepotrzebne ADC_InitStructure.ADC_ScanConvMode = DISABLE; //pomiar w trybie jednokrotnym ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //brak wyzwalania zewnetrznego ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //wyrownanie danych do prawej - 12 mlodszych bitow znaczacych ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //liczba używanych kanalow =2 ADC_InitStructure.ADC_NbrOfChannel = 2; ADC_Init(ADC1, &ADC_InitStructure); }
Listing 6. Kalibracja przetwornika ADC1
//zerowanie rejestrow kalibracyjnych ADC1 ADC_ResetCalibration(ADC1); //oczekiwanie na restart while(ADC_GetResetCalibrationStatus(ADC1)); //kalibracja ADC1 ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1));
Listing 7. Główna część procedury inicjalizacyjnej GPIOLcdInit(); //inicjalizacja GPIOSpiInit(); //inicjalizacja GPIOImpInit(); //inicjalizacja LcdInit(); //inicjalizacja AnalogInit(); //inicjalizacja DACInit(); //inicjalizacja RCC_ADCCLKConfig(RCC_PCLK2_Div2); ADC_Cmd(ADC1, ENABLE); ADC_Cmd(ADC2, ENABLE); ZasilaczInit(); //inicjalizacja
portów LCD portów Spi portów enkodera wyświetlacza LCD ADC DCA
nastaw zasilacza
Listing 8. Inicjalizacja sterownika zasilacza
void ZasilaczInit(void){ if(EERead(ADDR_Init)!=0x49){ EEWrite(100,ADDR_Vo_H); EEWrite(0,ADDR_Vo_L); //ustawienie Limit Iwyj Io=3732; EEWrite(Io>>8,ADDR_In_H); EEWrite(Io,ADDR_In_L); //ustawienie limit Uwyj EEWrite(Io>>8,ADDR_Ul_H); EEWrite(Io,ADDR_Ul_L); //numer funkcji w menu funkcyjnym EEWrite(0,ADDR_Nr_Fun); EEWrite(0x49,ADDR_Init); } //odczytanie i ustawienie napięcia wyjściowego i zabezpieczenia prądowego Vo=EERead(ADDR_Vo_H); Vo<<=8; Vo|=EERead(ADDR_Vo_L); Io=EERead(ADDR_Io_H); Io<<=8; Io|=EERead(ADDR_Io_L); DAC_SetChannel1Data(DAC_Align_12b_R, Vo); DAC_SetChannel2Data(DAC_Align_12b_R, Io); //prog odciecia pradowego Iover=EERead(ADDR_In_H); Iover<<=8; Iover|=EERead(ADDR_In_L); //prog odciecia napieciowego Uover=EERead(ADDR_Ul_H); Uover<<=8; Uover|=EERead(ADDR_Ul_L); }
kanał DMA do tablicy wyników umieszczonej w pamięci RAM. Ja postanowiłem zastosować typową metodę polegającą na konfigurowaniu jednego kanału pomiarowego przed pomiarem, wykonaniu i zapisaniu pomiaru, a następnie skonfigurowaniu następnego
kanału i wykonaniu pomiaru w tym kanale. Do tego celu zdefiniowałem funkcję konfiguracyjną AnalogInit (listing 5) konfigurującą przetwornik do pracy niezależnej i bez wyzwalanie zewnętrznego. Pomiar jest wykonywany w pojedynczym kanale, w trybie ELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy Listing 9. Ustawianie napięcia wyjściowego V0 char SetVo(unsigned char kod) { short Vo, step; char dir=0;
step=VoSTEPD; if(kod==KOD_IMP_UP||kod==KOD_IMP_DWN) { Vo=EERead(ADDR_Vo_H); Vo<<=8; Vo|=EERead(ADDR_Vo_L); if(kod==KOD_IMP_UP) { dir=1; if(ST==1) step=VoSTEPZ; Vo=Vo+step; if(Vo>2988) Vo=2988; } if(kod==KOD_IMP_DWN) { dir=0; if(ST==1) step=VoSTEPZ; Vo=Vo-step; if(Vo<0) Vo=0; } if(dir==0&&Vo<=1482) //jedziemy w dol { GPIO_WriteBit(GPIOB, GPIO_Pin_6,Bit_SET); PosLcd(14,1); DispLcd(“LO”); } if(dir==1&&Vo>=1506) //jedziemy w gore { GPIO_WriteBit(GPIOB, GPIO_Pin_6,Bit_RESET); PosLcd(14,1); DispLcd(“HI”); } if(Vo>Uover) { CorrOverVoltage(); PosLcd(11,1); DispLcd(“U>”); return(-1); } else PosLcd(11,1); DispLcd(“ “); EEWrite(Vo>>8, ADDR_Vo_H); EEWrite(Vo, ADDR_Vo_L); //korekcja nieliniowości bufora DAC if(Vo<=1116) Vo=Vo-CORL; if(Vo>1116&&Vo<=1736) Vo=Vo-CORM; DAC_SetChannel1Data(DAC_Align_12b_R, Vo); } return(0); }
jednokrotnym (skanowanie kanałów jest wyłączone). Taktowany i włączony moduł ADC można skalibrować. Wtedy według zapewnień producenta poprawia się dokładność konwersji. Sposób uruchomienia kalibracji pokazano na listingu 6. Konfiguracja modułów przetworników to zasadniczy element inicjalizacji sterow-
nika zasilacza. Oprócz tej konfiguracji trzeba zainicjować porty GPIO do obsługi wyświetlacza LCD i sterowania przekaźnikami (wyjściowe) oraz do obsługi impulsatora i styków wykorzystywanych w interfejsie użytkownika (wejściowe). Inicjalizacji wymagają też linie portów używanych do komunikacji z pamięcią EEPROM. Interfejs komunikacyj-
Listing 10. Pomiar i wyświetlenie napięcie wyjściowego void PomV(char x, char y) { unsigned long pomiar; char txt[8]; char i;
PosLcd(x,y); DispLcd(“Uwy=”); ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_28Cycles5); //wyzwolenie pojedynczego pomiaru ADC_SoftwareStartConvCmd(ADC1, ENABLE); //odczekaj na zakończenie konwersji while (!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); //pobierz zmierzoną wartość pomiar = ADC_GetConversionValue(ADC1); //przelicz wartość pomiar = (pomiar * 8057)/1000; sprintf((char *)txt, „%d,%03d V\0”, pomiar / 1000, pomiar % 1000); if(txt[1]==’,’){ txt[3]=’V’; txt[4]=’ ‘; for(i=0;i<6;i++) WriteRd(txt[i]); } else { txt[4]=’V’; for(i=0;i<5;i++) WriteRd(txt[i]); } }
ELEKTRONIKA PRAKTYCZNA 9/2013
ny SPI jest tutaj emulowany programowo. Główną procedurę inicjalizacyjną pokazano na listingu 7. Jak wiemy, napięcia referencyjne wytwarzane przez C/A określają wartość napięcia wyjściowego i ograniczenia prądowego. W klasycznych konstrukcjach te nastawy są określane przez ustawienie położenia potencjometrów. Po wyłączeniu i ponownym włączeniu zasilacza nie powinny się zmienić, jeżeli potencjometry nie zostały przestawione. W sterowaniu cyfrowym zwykle jest potrzebne, aby po ponownym włączeniu zasilacz dostarczał takiego samego napięcia (i miał ten sam poziom ograniczenia) jak przed wyłączeniem. W trakcie kręcenia impulsatorem zmieniane wartości są zapisywane do pamięci EEPROM. Po włączeniu zasilania sterownik odczytuje zapamiętane wartości i wysyła je do przetworników C/A. Kiedy sterownik jest włączany po raz pierwszy, to w pamięci EEPROM są zapisane liczby 0xFF. Dlatego w takim wypadku jest konieczne nadanie nastawom pewnych wartości domyślnych. Procedura inicjalizacyjna sprawdza czy w komórce pamięci o adresie ADDR_Init jest zapisana wartość 0x49 i jeżeli nie, to inicjuje obszar EEPROM odpowiedzialny za nastawy, a potem zapisuje wartość 0x49 pod adresem ADDR_Init. Po tej operacji mamy wstępnie zainicjowane ustawienia i w czasie następnego włączenia ponowna wstępna inicjacja nie zostanie wykonana. Na listingu 8 pokazano procedurę ZasilaczInit(). Napięcie wyjściowe ustawia się za pomocą funkcji SetVo pokazanej na listingu 9. Jej argumentem jest kod obrotu impulsatora. Na początku z pamięci EEPROM jest odczytywana ostatnio ustawiona wartość napięcia. Potem, w zależności od kodu, ta wartość jest zwiększana lub zmniejszana. Krok zmiany zależy od tego czy styk zwierany przez wciśnięcie gałki impulsatora jest wciśnięty (krok 0,1 V), czy nie (krok 1 V). Przy zwiększaniu ograniczeniem jest wartość 2988 odpowiadająca napięciu +2,4 V na wyjściu C/A, czyli +24 V na wyjściu zasilacza. Przy każdym zwiększeniu zmiennej Vo program sprawdza czy napięcie wyjściowe nie jest mniejsze od 11,9 V. Jeżeli tak, to załącza przekaźnik RE2 i główne napięcie zasilające jest pobierane z odczepu transformatora. W moim zasilaczu napięcie na C2 ma wtedy wartość ok. +16 V. Jeżeli modyfikowana wartość Vo jest zwiększana, to program sprawdza czy po modyfikacji nie jest większa niż 12,1 V i ewentualnie wyłącza przekaźnik RE2. Wtedy zasilacz jest zasilany pełnym napięciem – na C2 występuje ok. 32 V. Po ustawieniu nowej wartości program sprawdza czy ustalone napięcie nie jest większe niż wartość zapisana w zmiennej Uover. Jeżeli tak, to jest wywoływana funkcja korekcji CorrOverVoltage. Zmienna Uover jest ustawiana przez funkcję
27
PROJEKTY Overvoltage. Zmodyfikowana wartość Vo jest wysyłana do przetwornika C/A przez funkcję DAC_SETChannel1Data, a potem ponownie zapisywana w EEPROM. W czasie konfigurowania przetwornika C/A do jego wyjście jest programowo dołączany wewnętrzny bufor. Wyjście przetwornika C/A ma stosunkowo dużą rezystancję i dlatego jego sygnał napięciowy jest podatny na zaburzenia. Bufor powoduje, że rezystancja wyjściowa jest mała, ale jego włączenie ma wady. Do podstawowych należy nieliniowość charakterystyki. Krok 1 V jest uzyskiwany przez dodawanie do zmiennej Vo stałej 124 (dziesiętnie). Jeżeli ustawimy prawidłowo napięcie na początku zakresu na 1 V, to przy liniowym przyroście wartości Vo, dla teoretycznego napięcia +24 V, jest ustawiane przez C/A napięcie +24,15 V. Aby zmniejszyć ten błąd nastawy trzeba by było zastosować zewnętrzny bufor ze wzmacniaczem operacyjnym, a właściwie 2 bufory: dla układów regulacji napięcia wyjściowego i dla obwodów ograniczenia prądowego. Spowodowałoby to spore rozbudowanie układu. Ponieważ w naszym zasilaczu liniowość ustawienia napięcia wyjściowego nie ma aż tak dużego znaczenia, to zastosowałem korekcję programową w 2 punktach zakresu regulacji. Pomiar napięcia (listing 10) rozpoczynamy od ustawienia kanału pomiarowego. Dla przypomnienia: napięcie wyjściowe mierzymy (po podzieleniu przez 10 w za pomocą dzielnika rezystancyjnego) przetwornikiem A/C w kanale pomiarowym 0 (linia PA0). Kanał jest ustawiany funkcją biblioteczną ADC_RegularChannelConfig. Po ustawieniu kanału funkcja ADC_SoftwareStartConvCmd wyzwala programowo jeden pomiar. Konwersja jest kończona, gdy przetwornik ustawi flagę ADC_FLAG_EOC. Zawartość rejestru konwersji odczytuje funkcja ADC_GETConversionValue. Nasze napięcie referencyjne wynosi +3,3 V, a rozdzielczość pomiaru 12 bitów. Po podzieleniu pełnego zakresu przetwornika 3,3V przez 2^12=4096 otrzymamy 0,0008056640625 V. Zmiana wartości na najmłodszym bicie wyniku pomiaru odpowiada zmianie napięcia o ok. 0,0008057 V, więc aby przekonwertować wartość odczytaną z przetwornika na napięcie w woltach trzeba ją pomnożyć przez 0,0008057 V. Mnożenie zmiennoprzecinkowe jest oczywiście wykonalne, ale lepiej jest mnożyć stałoprzecinkowo. Wykorzystuje się tutaj trik polegający na mnożeniu wyniku konwersji przez 8057, a potem podzieleniu wyniku przez 1000, pamiętając o odpowiedniej długości zmiennych, na których operujemy i o przecinku. Po tych operacjach wynik jest umieszczony w zmiennej pomiar. Aby wynik wyświetlić w postaci znaków ASCII na wyświetlaczu LCD trzeba go przekonwertować. Do tego celu doskonale nadaje funkcja sprintf umożliwiająca konwertowanie zawartości
28
Listing 11. Pomiar prądu i zabezpieczenie overcurrent char PomI(char x, char y) { unsigned long pomiar; char txt[8]; char i;
PosLcd(x,y); DispLcd(“Iwy=”); ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_28Cycles5); //wyzwolenie pojedynczego pomiaru ADC_SoftwareStartConvCmd(ADC1, ENABLE); //odczekaj na zakonczenie konwersji while (!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); //pobierz zmierzona wartość pomiar = ADC_GetConversionValue(ADC1); if (pomiar>Iover) { Delay(20); //opoznienie 20 ms //wyzwolenie pojedynczego pomiaru – powtorny pomiar po 20 ms ADC_SoftwareStartConvCmd(ADC1, ENABLE); //odczekaj na zakonczenie konwersji while (!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); //pobierz zmierzona wartosc pomiar = ADC_GetConversionValue(ADC1); if(pomiar>Iover) { GPIO_WriteBit(GPIOB, GPIO_Pin_5,Bit_SET); odłącz wyjscie return(-1); } } if(++pomi_disp==10) { pomi_disp=0; //przelicz wartosc wyrazona jako calkowita, 12-bit na rzeczywista pomiar = pomiar * 8057/10000; //pomiar= pomiar*10; sprintf((char *)txt, „%d,%03d A\0”, pomiar / 1000, pomiar % 1000); if(txt[1]==’,’) { txt[4]=’A’; txt[5]=’ ‘; for(i=0;i<6;i++) WriteRd(txt[i]); } else { txt[5]=’A’; for(i=0;i<6;i++) WriteRd(txt[i]); } } return(0); }
Listing 12. Pętla główna sterownika zasilacza
while(1) { PomV(1,1); SetVo(GetEncoder(); //ustawienie napięcia wyjściowego if(PomI(1,2)==-1) //pomiar napięcia wyjściowego { DispLcd(„I> „); PomV(1,1); while(KAS) Delay(20); while(!KAS) Delay(50); GPIO_WriteBit(GPIOB, GPIO_Pin_5,Bit_RESET); //załącz wyjście } if(KAS==0) MenuSetup();//wywolanie menu funkcyjnego }
zmiennej do postaci znakowej i zapisująca wynik konwersji w buforze umieszczonym w pamięci RAM. Po konwersji pozostaje tylko wyświetlić zawartość bufora txt[]. Bardzo podobnie jest mierzony i wyświetlany prąd. Napięcie z konwertera prąd/napięcie mierzymy w kanale1 i dlatego przed pomiarem trzeba go sobie ustawić za pomocą funkcji ADC_ RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_28Cycles5);. Mnożenie, dzielenie, konwersja przy pomocy sprintf, oraz wyświetlanie przebiega praktycznie tak samo jak w funkcji PomV. W funkcji pomiaru prądu jest też zaimplementowane zabezpieczenie nadprądowe. Jeżeli po pomiarze wartość prądu jest wyższa niż zapisane w zmiennej Iover, to program odczekuje 20msek i ponawia pomiar prądu. Jeżeli dalej prąd jest większy niż Iover, to
funkcja pomiaru odłącza wyjście zasilacza od obciążenia przełączając przekaźnik RE1 ( na linii PB5 stan wysoki). Ponowne załączenie wyjścia zasilacza do obciążenia następuje w pętli głównej po naciśnięciu przycisku KAS. Przed jego naciśnięciem trzeba odłączyć obciążenie od zacisków wyjściowych zasilacza, bo w przeciwnym przypadku sterownik załączy obciążenie, zmierzy prąd i ponownie je wyłączy.
Pętla główna i menu funkcyjne Na początku pętli głównej jest mierzone napięcie wyjściowe (funkcja PomV). Następnie funkcja SetVo odczytuje stan impulsatora (wywołanie GetEncoder jako argument) i jeżeli został on obrócony, to zmieniana jest wartość napięcia, tak jak to zostało pokazano na list. 9. Po ustawieniu napięcia funkcja PomI mierzy i wyświetla prąd obciążeELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy Listing 13. Ustawienie progu zabezpieczenia prądowego //ustawienie ograniczenia prądowego void SetLimitI(void){ char txt[8]={“ “}; char i, kod, step ; long pomiar, Io;
ClrLcd(); PosLcd(1,1); DispLcd(“LimitI=”); Io=EERead(ADDR_Io_H); Io<<=8; Io|=EERead(ADDR_Io_L); while(1) { step=VoSTEPD; kod=GetEncoder(); if(kod==KOD_IMP_UP) { if(ST==1) step=VoSTEPZ; Io=Io+step; if(Io>3732) Io=3732; } if(kod==KOD_IMP_DWN) { if(ST==1) step=VoSTEPZ; Io=Io-step; if(Io<0) Io=0; } DAC_SetChannel2Data(DAC_Align_12b_R, Io);//ustawienie ograniczenia prądu PosLcd(8,1);//wyswietl wartosc ograniczenia pomiar=Io; pomiar = pomiar * 8057/10000; //przelicz wartosc sprintf((char *)txt, „%d,%03d A\0”, pomiar / 1000, pomiar % 1000); // konwersja BIN/ASCII if(txt[1]==’,’) { txt[4]=’A’; txt[5]=’ ‘; for(i=0;i<6;i++) WriteRd(txt[i]); } else { txt[5]=’A’; for(i=0;i<6;i++) WriteRd(txt[i]); } if(!KAS) break; } Delay(20); while(KAS); EEWrite(Io>>8, ADDR_Io_H); EEWrite(Io, ADDR_Io_L); }
Listing 14. Korygowanie overvoltage
void CorrOverVoltage(void) { //napiecie wyjściowe równe Uover DAC_SetChannel1Data(DAC_Align_12b_R, Uover); //zapisz Vo=Uover EEWrite(Uover>>8, ADDR_Vo_H); EEWrite(Uover, ADDR_Vo_L); }
nia. Jeżeli prąd jest wyższy niż ustawiony przez funkcję Overcurrent (zmienna Iout), to zostanie odłączone wyjście za pomocą styków przekaźnika RE1, natomiast funkcja PomI zwróci -1. Na wyświetlaczu pojawi się komunikat „Iwy=I>”. Po naciśnięciu KAS przekaźnik jest załączany, a program powraca do pętli głównej. Jeżeli w program jest w pętli głównej i nie jest wymagane wyłączenie zadziałania zabezpieczenia przed przeciążeniem, to naciśnięcie przycisku KAS powoduje wejście do menu funkcyjnego. Funkcje w menu wybiera się przez kręcenie ośką impulsatora, a wybór zatwierdza przyciśnięciem KAS. Po zakończeniu działania wybranej funkcji, program wraca do pętli głównej. W obecnej wersji oprogramowania dostępne są 3 funkcje: • ustawienie progu zadziałania ograniczenia prądowego, • ustawienie maksymalnego napięcia wyjściowego (Overvoltage), ELEKTRONIKA PRAKTYCZNA 9/2013
• ustawienie progu zabezpieczenie nadprądowego.
Funkcja ustawienia progu ograniczenia prądowego Ograniczenie prądowe działa na zasadzie porównywania napięcia z konwertera prąd/ napięcie z napięciem referencyjnym. Napięcie referencyjne ograniczenia prądowego jest generowane przez drugi przetwornik C/A, pierwszy służy do ustawiania napięcia wyjściowego. Zadaniem funkcji ustalającej próg ograniczenia prądowego jest odczytanie z pamięci EEPROM zapamiętanej wartości, umożliwienie jej edycji, wysłanie do modułu przetwornika C/A i po zakończeniu regulacji – ponowne zapisanie do pamięci EEPROM. Procedurę SetLimitI realizująca to zadanie pokazano na listingu 13.
Funkcja Overvoltage Postanowiłem wyposażyć zasilacz w moim zdaniem bardzo przydaną funkcję
ograniczania napięcia wyjściowego. Jej działanie polega na ustawieniu konkretnej, progowej wartości napięcia zasilania, powyżej której nie będzie można zwiększyć napięcia wyjściowego. Załóżmy, że chcemy zasilać układ zbudowany z układów TTL i mikrokontrolera. W takim wypadku napięcie nie może być wyższe niż +5,25 V. Jeżeli w trakcie pracy przez pomyłkę zwiększymy napięcie zasilania, to zasilany układ może zostać uszkodzony. Żeby się przed tym zabezpieczyć ustawiamy w funkcji Overvoltage wartość +5 V, która zostanie zapisana w zmiennej globalnej Uover i w pamięci EEPROM. Jeżeli w trakcie regulowania napięcie wyjściowego zostanie wykryty warunek Vo>Uover, to zostanie wywołana funkcja CorrOverVoltage, która ustawi na przetworniku C/A napięcie równoważne Uover i zapisze w pamięci EEPROM, w obszarze zapamiętywania Vo, wartość Uover (listing 14). Wyłączenie działania Uover następuje po ustawieniu wartości napięcia większej od +24 V.
Funkcja ustawiania ograniczenia nadprądowego overcurrent Ograniczenie prądu wyjściowego ma wiele zalet, ale są sytuacje, w których potrzeba innego zabezpieczenia – działającego w taki sposób, że po przekroczeniu określonego prądu automatycznie odłącza wyjście zasilacza od obciążenia na przykład za pomocą przekaźnika. Oprócz progu prądowego powinno się też ustawiać czas zwłoki do zadziałania. Jeżeli zasilamy układ, który pobiera 100 mA i ustawimy zabezpieczenie na 150 mA, ale w układzie zasilania ma spory kondensator elektrolityczny, to w czasie jego ładowania prąd będzie wyższy niż próg zabezpieczenia. Jeżeli wyłączenie nastąpi natychmiast po wykryciu przekroczenia, to będzie trudno taki układ zasilić z zabezpieczeniem nadprądowym. Pozostaje ustawić wyżej próg lub odmierzyć pewien czas zwłoki i po tym czasie ponownie skontrolować prąd. W obu wypadkach wrażliwe układy mogą być narażone na uszkodzenie, bo dopuszczamy w określonych warunkach przepływ dużo większego prądu, niż to wynika z potrzeb zabezpieczenia układu. Jak widać, nie ma idealnego zabezpieczenia przez wzrostem natężenia prądu i trzeba wybrać jakiś kompromis. W tej wersji programu nie ma możliwości ustawienia czasu zwłoki. Jest on ustawiony na 20 ms. Próg zabezpieczenia jest ustawiany podobnie, jak w wypadku ustawiania napięcia overvoltage. Wartość zabezpieczenia jest zapisywana do zmiennej Iover i do pamięci EEPROM. Warunek przekroczenia sprawdza się przy każdym pomiarze w procedurze PomI. Jeżeli jest spełniony, to funkcja wyłącza wyjście i zwraca -1. Dokładnie
29
PROJEKTY zostało to opisane przy omawianiu funkcji pomiaru prądu PomI.
Montaż i uruchomienie zasilacza
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie eŁlementów kolorem czerwonym
Zasilacza jest podzielony na 2 płytki: płytkę układów analogowych (rysunek 7) i płytkę sterownika (rysunek 8).
Wykaz elementów Płytka układów analogowych Rezystory: (metalizowane 5%/0,6 W) R23: 47 V R14, R16, R20: 100 V R21: 470 V R4, R5, R8, R17, R18: 1 kV R2, R12: 9,1 kV R3, R15: 1 MV R19: 0,1 V/5 W (5%) R9: 1 kV (pot. wieloobr.) R11: 2 kV (pot. wieloobr.) R10: 22 kV (pot. wieloobr.) Kondensatory: C4, C15, C16: 4,7 nF/100 V (foliowy) C3, C6, C7, C11, C12, C18, C19, C23, C24, C28: 100 nF/63 V (SMD 1206) C1, C5, C8…C10, C13…C16, C20…C22, C25, C27: 10 mF/50 V (elektrolit.) C26: 1000 mF/50 V (elektrolit.) C2: 68000 mF/50 V (elektrolit.) Półprzewodniki: D1, D2, D4, D5: diody prostownicze 5 A/100 V D3, D6, D7: 1N4148 (BAV21) D9: dioda Zenera 12 V/1,3W D10: mostek prostowniczy 1 A/1000 V, okrągły D11, D8: dioda Zenera 15 V/1,3 W T1: IRF540N (FET N) T2…T5: BD139 U1, U3, U4: mA741IN lub podobne w obudowie DIP8 U2: ICL7660 (DIP8) U5: 7805 Inne: RE1, RE2 Schrack RT424024 lub odpowiedniki Płytka drukowana Podwójna listwa goldpinów raster 2,54 mm
Uruchomienie płytki analogowej. Prawie wszystkie elementy na płytce układów analogowych są przeznaczone do montażu przewlekanego. Tranzystor mocy T1 można wlutować bezpośrednio w punkty lutownicze na płytce, ale pamiętajmy o tym, że jako element regulacyjny musi on być umieszczony na radiatorze. Ja w punkty lutownicze przeznaczone na nóżki T1 wlutowałem listwę 3 goldpinów o rastrze 2,54 mm, a potem do tych goldpinów przylutowałem krótkie odcinki przewodów. Tranzystor można wtedy w miarę swobodnie umieścić na radiatorze i połączyć go z płytką przewodami pamiętając jednak o tym, by przewody były tak krótkie, jak to możliwe. Jeżeli tranzystor zostanie przykręcony bezpośrednio bez przekładki i tulejek izolacyjnych, to na radiatorze będzie występowało napięcie równe napięciu na kondensatorze C2 – w praktyce ponad 30 V i dlatego dobrym rozwiązaniem jest odizolowanie tranzystora od radiatora. Po zmontowaniu i sprawdzeniu montażu dołączamy napięcie przemienne o wartości ok. 30…33 V i wydajności prądowej 200 mA do złącza POM i sprawdzamy poprawność napięć zasilających: Ust, +15 V, +5 V oraz -5 V z układu U2. Napięcie Ust w modelowym rozwiązaniu miało wartość +27 V, aby można było ustawić maksymalne napięcie wyjściowe zasilacza równe +24 V. W tym momencie płytka sterownika powinna być bezwzględnie odłączona od płytki analogowej.
Teraz można dołączyć napięcie przemienne o wartości ok. 27 V do styków 1 i 2 złącza J1. Przy braku napięć sterujących na złączu J2, napięcie na wyjściu zasilacza powinno być równe 0 V. Bezwzględnie trzeba też sprawdzić czy nie ma wysokich napięć na stykach 1…4, 6 i 8 złącza sterującego J2. Przy prawidłowo zmontowanym układzie i sprawnych elementach na tych stykach powinno występować ok. 0 V. Zbyt wysokie napięcia mogą zniszczyć linie I/O mikrokontrolera. Tu dochodzimy do momentu, w którym trzeba sprawdzić działanie obwodów regulacji i pomiarów układów analogowych. Można to zrobić na 2 sposoby. Jeżeli mamy zmontowaną i wstępnie sprawdzoną płytkę sterownika, to można ją dołączyć i uruchamiać układ docelowy. Napiszę o tym dalej. Druga metoda to wykorzystanie 2 potencjometrów – jeden do regulowania napięcia wyjściowego, a drugi do regulowania poziomu zadziałania zabezpieczenia prądowego i stabilizatora +3,3 V. Ja przy uruchamianiu prototypu posłużyłem się najpierw tą metodą. Przy okazji można zobaczyć, jak można sterować i użytkować zasilacz bez sterownika mikroprocesorowego. Wszystko wtedy będzie działać poprawnie, ale nie będą dostępne pomiary wykonywane przez sterownik. Ponieważ układ analogowy ma być „zestrojony” dla napięć referencyjnych o maksymalnej wartości +3,3 V (z DAC mikrokontrolera), to potencjometry będą dzieliły napięcie +3,3 V ze
Rysunek 6. Umieszczenie danych do konwersji
Płytka sterownika
Rezystory: R1…R6, R8, R9: 1 kV (SMD 1206) Potencjometr 47 kV Kondensatory: C9, C10: 27 pF (SMD 1206) C1, C3, C4, C7, C8, C11…C13, C15: 100 nF (SMD 0805) C2, C5, C6, C16: 10 mF/10 V (SMD 3216) Półprzewodniki: U1: LM1117MP-3.3 (SOT-223N) U2: STM32F100RBT6B (zaprogramowany) U5 25LC256 I/SN (SOIC8, 150 mils) Inne: Wyświetlacz LCD-AC-1602F-BIW W1B-E6 C PBF (2×16 znaków) Impulsator ze stykiem EC-11SP-1-1-1-15KQ Podwójna listwa goldpinów raster 2,54mm Transformator – opis w tekście Kabel 10-przewodowy z 2 wtykami IDC10 Radiator Obudowa Wyłącznik sieciowy Gniazdo bezpiecznikowe.
30
Rysunek 7. Schemat montażowy płytki układów analogowych ELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy
Rysunek 8. Schemat montażowy płytki sterownika stabilizatora LDO o napięciu wyjściowym +3,3 V uzyskiwanym z napięcia +5 V, dostępnego na stykach 5 i 7 złącza J2. Żeby regulować poziom napięcia wyjściowego trzeba podać podzielone napięcie z suwaka potencjometru (liniowy 1…10 kV) na styk 2 (Reg) złącza J2. Napięcie na nim powinno zamieniać się w zakresie 0…2,4 V, a napięcie na wyjściu w zakresie 0…24 V. Układ wymaga regulacji wykonywanej potencjometrem R9 umieszczonym na płytce układów analogowych. Ustawiamy dokładnie napięcie sterujące 1,00 V na wejściu sterującym Reg (doprowadzenie 4 złącza J2) i tak ustawiamy R9, aby napięcie na wyjściu zasilacza miało wartość 10,0 V. Przy okazji trzeba dokładnie ustawić dzielnik napięcia wyjściowego (rezystory R2, R6, R9). Przy napięciu wyjściowym 10,0 V tak regulujemy potencjometrem R9, aby napięcie na styku 6 złącza J2 miało wartość równą 1,00 V. Od dokładności tej regulacji będzie zależała dokładność pomiaru napięcia wyjściowego przez sterownik zasilacza. Poprawność wykonania czynności regulacyjnych można sprawdzić przy innych napięciach wyjściowych, na przykład przy 5,0 V; 15,0 V i 20,0 V. Układ do pomiaru prądu wymaga wzmocnienia około 10×. Oznacza to, że napięcie na wyjściu U4 ma być 10 razy większe niż spadek napięcia na rezystorze pomiarowym R19. Wzmocnienie konwertera I/U ustawiamy potencjometrem R11. Jako rezystor pomiarowy zastosowałem łatwy do kupienia opornik 0,1 V/5 W w obudowie ceramicznej. Dokładność rezystancji tego elementu nie spełnia wymagań stawianym rezystorom boczników w klasycznych układach pomiarowych, ale tutaj możemy przez zmianę wzmocnienia skorygować rozrzut parametrów. W praktyce regulacja ELEKTRONIKA PRAKTYCZNA 9/2013
wygląda tak: obciążamy zasilacz prądem 1 A. W szereg z obciążeniem włączamy amperomierz, na przykład o zakresie pomiarowym 2 A. Jeżeli prąd mierzony ma wartość 0,95 A, to napięcie na wyjściu U4 powinno mieć wartość 0,95 V i tak regulujemy potencjometrem R11, aby tę wartość uzyskać. Dokładność regulacji zależy głównie od dokładności pomiaru prądu przez zewnętrzny amperomierz. Prąd pobierany z zasilacza nie musi być mierzony bardzo dokładnie. Ten pomiar najczęściej jest orientacyjny, ale możemy go wykonać z tak dużą dokładnością, jak tylko się da. Jeżeli są jakieś problemy, to można zmierzyć spadek napięcia na rezystorze R19. Powinien być około 10× mniejszy od napięcia na wyjściu układu pomiarowego. Jeżeli tak nie jest, to trzeba sprawdzić rezystancję R19 i wartość elementów w otoczeniu wzmacniacza U4.
Układ zabezpieczenia prądowego wymaga drugiego napięcia referencyjnego uzyskiwanego z drugiego potencjometru. Ponieważ na wyjściu pomiaru prądu napięcie na wyjściu układu pomiarowego prądu zmienia się w zakresie 0…3 V (co odpowiada 0…3 A), to wartość ograniczenia prądowego będzie ustawiana napięciem referencyjnym w zakresie 0…3 V. Tu zależność jest również prosta: ustawienie napięcia referencyjnego o wartości 1 V powoduje zdziałanie ograniczenia na poziomie 1 A. Sprawdzamy to w następujący sposób: obciążamy wyjście zasilacza prądem na przykład 0,5 A przy ograniczeniu ustawionym na 3 A. Potem przestawiamy ograniczenie na 0,5 A i napięcie na wyprowadzeniu 2 złącza J2 (Ilewel) jest równe 0,5 V. Przy próbie zwiększania napięcia wyjściowego, układ ograniczenia prądowego nie pozwala na to i napięcie pozostaje na tym samym poziomie aż do momentu zmiany poziomu ograniczenia lub zmiany rezystancji obciążenia. Jak już wspomniałem, wersja zasilacza bez sterownika wymaga 2 potencjometrów i napięcia +3,3 V. Jeżeli decydujemy się na uproszczoną wersję, to albo układ U5 wymieniamy na stabilizator napięcia +3,3 V lub przeliczamy wzmocnienia układów dla napięć referencyjnych zmieniających się w zakresie 0…5 V. Po wykonaniu wszystkich regulacji moduł analogowy jest gotowy do dołączenia sterownika. Sterownik mikroprocesorowy. Montaż sterownika jest nieco bardziej skomplikowany. Przede wszystkim trzeba przylutować mikrokontroler umieszczony w obudowie do montażu powierzchniowego. Płytka jest tak pomyślana, że wyświetlacz LCD został umieszczony nad większością elementów sterownika. Jeżeli przylutujemy wyświetlacz za pomocą dwurzędowych goldpinów (jak w prototypie), to trzeba mieć pewność, że
31
PROJEKTY wszystkie luty zostały wykonane prawidłowo, bo potem nie ma możliwości poprawek bez bardzo trudnego demontażu połączeń wyświetlacza. Mniej ryzykowne będzie połączenie wyświetlacza z płytką sterownika za pomocą giętkich przewodów, aby można go było w każdej chwili odsunąć od płytki. Tu uwaga – zastosowany wyświetlacz typu LCD-AC-1602F-BIW W1B-E6 C PBF ma na nóżce 1 doprowadzenie napięcia +5 V, a na nóżce 2 podłączenie GND zasilania i tak została zaprojektowana płytka drukowana. Przy zastosowaniu innych wyświetlaczy z dużym prawdopodobieństwem może być odwrotnie. Trzeba to sprawdzić przed dołączeniem zasilania. Po zmontowaniu całości trzeba sterownik zasilić podając napięcie +5 V na doprowadzenia 5, 7 (+5 V) i 9,10 (GND) złącza J1. Po sprawdzeniu poprawności napięcia +3,3 V można przejść do programowania mikrokontrolera. Do programowania są używane linie SWCLK i SWDIO szeregowego interfejsu SWD dostępnego w programatorze/debugerze ST-Link2. Można tu użyć programatora ZL30ProgV2 lub wykorzystać moduł ST Link2 z dowolnej płytki STM32 Discovery. Ja użyłem programtora ST Link z modułu STM32 Value Line Discovery. Moduł jest podzielony na 2 części: niezależny programator /debuger STLink2 zasilany ze złącza USB i część z testowanym mikrokontrolerem z rodziny STM32. Domyślnie Discovery jest tak skonfigurowany, że linie interfejsu SWD są połączone z testowanym mikrokontrolerem, ale można to łatwo zmienić zworkami. Przestawienie zworek powoduje odłączenie linii interfejsu SWD od mikrokontrolera na płytce i połączenie ich z wyprowadzeniami złącza dla programatora – dokładne informacje można znaleźć w dokumentacji modułu. Sam proces programowania wymaga programu sterującego, w którym można plik wczytać i wysłać przez ST Link do mikrokontrolera. Ja użyłem pakietu mVision4. Był to naturalny wybór, bo w tym środowisku został napisany i uruchomiony program sterujący. Jednak by w nim programować pamięć Flash mikrokontrolera, trzeba mieć otwarty projekt z plikami źródłowymi. Jeżeli mamy do dyspozycji tylko plik wynikowy z rozszerzeniem HEX, to dobrym wyborem jest użycie programu ST Link Utility. Plik do zaprogramowania jest standardowo otwierany poleceniem File -> Open. Programowanie wykonuje się poleceniem z menu Target -> Program. W tym menu jest tez zakładka ustawiająca tryb pracy in-
Fotografia 9. Wnętrze zasilacza prototypowego terfejsu ST Link – musimy tu ustawić opcję SWD. Kiedy pamięć Flash mikrokontrolera jest już zaprogramowana, można przystąpić do testowania sterownika. Po włączeniu zasilania na ekranie wyświetlacza powinny zostać wyświetlone Uwy=0,0 V (w górnej linijce), Iwy =0,00 A (w dolnej linijce) przy zwartych do masy wejściach pomiarowych Uwy (pin 6 złącza J1) i Iwy (pin 8 złącza J1). Na te wejścia można podawać napięcia z zakresu 0…+3,0 V. Na wyświetlaczu powinny zmieniać się wartości pomiarów zgodnie z zależnością: • napięcie wskazywane: Uout=U(Uwy)×10, • prąd wskazywany: Iout=U(Iwy). Jeżeli tak jest, to układy pomiarowe działają poprawnie. W następnym kroku testujemy działanie ustawiania napięcia wyjściowego. Kręcimy ośką potencjometru i mierzymy napięcie na pinie 2 złącza J1. Na wyświetlaczu nic się nie zmienia, bo w tym momencie na wejście pomiarowe Uwy nie jest podawane napięcie z modułu analogowego. Ale jeżeli zewrzemy wyjście przetwornika C/A (pin2 złącza J1) z wejściem przetwornika A/C (pin4 złącza J1), to zdawane napięcie podawane przez C/A jest mierzone przez A/C i na wyświetlaczu pojawia się wartość ustawionego napięcia zgodnie ze znana już regułą Uout= UReg×10. Napięcie powinno się zmieniać z krokiem 1 V, jeśli ośka impulsatora nie jest przyciśnięta i 0,1 V, jeśli jest przyciśnięta.
Podobnie jest sprawdzane ustawianie progu ograniczenia prądowego. Żeby sobie ułatwić zadanie, trzeba zewrzeć piny 2 (Ilevel) i 8 (Iwy) złącza J1. Wartość zabezpieczenia prądowego ustawia się po wejściu do funkcji Set limit I. Podobnie jak przy regulacji napięcia, obrót ośki powoduje zmianę ustawionego z krokiem 1 A, a po przyciśnięciu osi impulsatora z krokiem co 0,1 A. Ustawiony prąd będzie również widoczny po wyjściu z funkcji Set limit I, bo zwarte są piny 2 i 8 złącza J1. Analogicznie są ustawiane progi napięcia i prądu w funkcjach Set Overvoltage i Set Overcurrent, jednak działanie tych funkcji będzie można przetestować po połączeniu sterownika z płytką układów analogowych. Po tych testach trzeba rozewrzeć piny 4-6 i 2-8 złącza J1 i płytka sterownika jest gotowa do włączenia do układu zasilacza.
Testowanie kompletnego zasilacza Po wstępnym przetestowaniu płytki układów analogowych i płytki sterownika i sprawdzeniu czy na złączu J2 płytki układów analogowych nie ma niebezpiecznych napięć można oba układy połączyć. Do połączenia obu modułów jest przeznaczona 10-przewodowa taśma przewodów z zaciśniętymi złączami IDC10. Testowanie kompletnego zasilacza można rozpocząć od ustawiania napięcia wyjściowego. Sterownik mierzy napięcie wyjściowe i jeżeli dzielnik pomiarowy został dobrze wyregulowany, to wyświetlana na
http://sklep.avt.pl 32
ELEKTRONIKA PRAKTYCZNA 9/2013
Zasilacz warsztatowy wyświetlaczu wartość napięcia powinna być równa napięciu zmierzonemu przez multimetr na zaciskach wyjściowych złącza WY. Potem obciążamy wyjście, najlepiej rezystorem o dużej mocy i porównujemy wskazania pomiaru prądu na wyświetlaczu z prądem mierzonym przez multimetr. Przy okazji obserwujemy, czy po obciążeniu napięcie wyjściowe jest stabilne (nie zmienia się). Oczywiście pod warunkiem, że prąd wyjściowy nie jest ograniczany przez ograniczenie prądowe. W kolejnym kroku ustawiamy próg zabezpieczenia prądowego. Po obciążeniu wyjścia prąd wyjściowy nie powinien być wyższy niż ustawiony próg. Napięcie wyjściowe nie wzrasta przy próbie podwyższania, jeżeli prąd wyjściowy osiągnie wartość równa progowi zabezpieczenia. Jeżeli prąd wyjściowy przekroczy próg zabezpieczenia prądowego ustawionego w funkcji Set Overcurrent, to przekaźnik RE1 powinien odłączyć wyjście zasilacza od obciążenia. Ponowne załączenie wyjścia jest możliwe po zmniejszeniu obciążenia i przyciśnięciu przycisku KAS. Po ustawieniu progu napięciowego funkcją Set overvoltage sterownik nie pozwoli na ustawienie napięcia wyjściowego wyższego niż ten próg. W czasie normalnej pracy trzeba napięcie progowe ustawić na poziomie powyżej +24 V.
Na fotografii 9 pokazane wnętrze modelowego zasilacza. Umieściłem go w typowej łatwej do kupienia obudowie. Zamieściły się tu wszystkie elementy: transformator o mocy ok. 100 VA, transformator do zasilania układów pomocniczych, obie płytki, wyłącznik sieciowy i gniazdo bezpiecznika. Radiator z tranzystorem mocy został przykręcony na zewnątrz do ścianki tylnej obudowy.
Na koniec Przedstawiony tu zasilacz został zaprojektowany do używania w typowych warunkach domowego warsztatu elektronika. Przy doborze elementów starałem się by jak najwięcej z nich było typowych, łatwych do kupienia i tanich. Mikrokontroler STM32F100RBT6B można bez problemu zakupić w ilościach detalicznych i w dobrej cenie u niejednego z krajowych dostawców. Najdroższym elementem jest transformator. Poprawne działanie zasilacza wymaga napięć przemiennych 2×14…15 V przy obciążeniu większym lub równym 3A i dodatkowego napięcia 30…33 V o obciążalności 200 mA. Trudno znaleźć w domowych zasobach transformator o takich parametrach. Można zastosować 2 oddzielne transformatory i ja tak zrobiłem. Można też zamówić wykonanie takiego elementu w specjalistycznym zakładzie.
Ze względów bezpieczeństwa od strony sieci zasilającej 230VAC zasilacz musi być wyposażony w bezpiecznik topikowy. Jego wartość będzie zleżała od mocy transformatora – na próbę można użyć bezpiecznika szybkiego o prądzie znamionowym 2 A. Umieszczenie zasilacza w metalowej obudowie wymaga odpowiedniej, podwójnej izolacji obwodów 230 VAC, stosowania 3-przewodowego kabla zasilającego z odpowiednią wtyczką, dołączenia przewodu neutralnego do obudowy zasilacza i zasilanie z gniazdka z prawidłowo połączonym kołkiem uziemiającym. Sieciowy przewód zasilający powinien być wprowadzony do obudowy przez specjalny gumowy lub plastykowy przepust. Nieprzestrzeganie tych zaleceń grozi porażeniem i jeżeli ktoś nie ma doświadczenia w tego typu konstrukcjach, to lepiej jest poprosić o pomoc kogoś bardziej doświadczonego. Dla obudowy z materiału izolacyjnego wymagania są mniejsze, ale tu również należy zadbać o prawidłowe wykonanie obwodów 230 VAC. Trzeba też wspomnieć, że takie elementy jak: transformator sieciowy, wyłącznik sieciowy i oprawa bezpiecznikowa, musza być dobrej jakości i przystosowane do przy napięciu co najmniej 250 VAC.
Tomasz Jabłoński, EP
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2013
33
PROJEKTY
Moduły rozszerzeń dla Raspberry Pi (3)
AVT 5412
RaspbPI_DIO16, RaspbPI_HUB, RaspbPI_DCM Komputerek Raspberry Pi staje się coraz popularny, zakres jego aplikacji rośnie niemal w tempie, 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.
W ofercie AVT* AVT-5412 A Podstawowe informacje: • 16 dodatkowych wejść/wyjść cyfrowych CMOS/3,3 V. • Na bazie ekspandera I/O typu MCP23S17. • Sterowanie za pomocą SPI, adres ustalany sprzętowo za pomocą zworek. • Zasilanie z płytki Raspberry Pi. Wykaz elementów: Rezystory: R1: 2,2 kV (SMD 0805) R2…R4: 10 kV (SMD 0805) Kondensatory: C1…C3: 0, 1 mF (SMD 0805) C4, C5: 10 mF (SMD 0805) Półprzewodniki: LD: dioda LED SMD U1: MCP23S17 (SO28W) U2: MCP100T (SOT-23) U3: LM1117-3.3 (SOT-223) Inne: A0…A2, CE0, CE1: zwora GPIO CONN: złącze IDC26, przelotowe INT: złącze SIL2 2,54 mm (opcja) PA, PB: złącze IDC10 kątowe, z obudową PS: złącze SIP3 kątowe, ze zworą Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5402/2 Moduły rozszerzeń dla Raspberry Pi (2) – Płytka do komunikacji szeregowej EP 7/2013 AVT-5402 Moduły rozszerzeń dla Raspberry Pi (1) – Płytka stykowa, moduł I/O, moduł wejść analogowych EP 6/2013
RaspbPI_DIO16: płytka cyfrowych portów I/O Przedstawiona płytka umożliwia rozszerzenie funkcjonalności GPIO Raspberry PI o dodatkowe 16 wejść/wyjść cyfrowych w standardzie 3,3 V. Płytka wymaga Raspberry Pi Rev2. o rozmieszczeniu sygnałów GPIO-P1 przedstawionym w tabeli 1. Wykorzystywany jest interfejs SPI oraz zasilanie 3,3/5 V. Układ oparty jest o uniwersalny układ scalony ekspandera GPIO z interfejsem SPI typu MCP23S17. Ma on możliwość ustalenia adresu za pomocą linii A0...A2, co umożliwia zwiększenie liczby ekspanderów dołączonych do wspólnej magistrali SPI do ośmiu. Dla ułatwienia obsługi programowej ekspander ma możliwość generowania przerwań na podstawie poziomów na wyprowadzeniach portów A i B. Schemat ideowy płytki ekspandera portów I/O pokazano na rysunku 1. Typową apli-
34
kację układu U1 uzupełniają układ generatora sygnału zerowania U2, układ stabilizatora U3 3.3 V, wraz z możliwością wyboru źródła zasilania, zworą PS - pomiędzy 3.3 V z Raspberry PI, a 3.3 V ze stabilizatora U3. Wybór źródła zasilania zależy od obciążenia wyjść układu, każde z wyjść MCP może być obciążone prądem 25mA, pod warunkiem nieprzekraczania sumarycznego prądu 125 mA wyprowadzenia VCC oraz traconej w układzie mocy. Dodatkowe kilkadziesiąt mA stanowiłoby niepotrzebne obciążenie wewnętrznego stabilizatora PI. Obecność zasilania sygnalizuje dioda LD. Sygnały IO portów U1 wyprowadzone są na złącza PA, PB typu IDC10. Zwory CE0,CE1 umożliwiają wybór kanału interfejsu SPI (domyślnie zwarte CE0, interfejs 0). Zwory A0..A2 ustalają adres układu U1 (domyślnie wszystkie trzy są zwarte, adres 0x20). Na złącze INT wyprowadzone są generowane przez U1 przerwania.
* 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
Układ zmontowano na niewielkiej, dwustronnej płytce drukowanej. Rozmieszczenie elementów przedstawia rysunek 2. Montaż nie wymaga opisu. Podobnie jak w wypadku Arduino, jest możliwe łączenie płytek prototypowych w stosy („kanapki”), wymaga to jednak odnalezienia żeńskiego złącza przelotowego IDC26, co niestety nie jest łatwe. Można je zastąpić złączami przelotowymi 2×SIP10+IDC6 z Rev3 Arduino. Jeżeli nie ELEKTRONIKA PRAKTYCZNA 9/2013
Moduły rozszerzeń dla Raspberry Pi Tabela 1. Rozmieszczenie sygnałów GPIO1 na złączu P1 Pin P1-01 P1-03 P1-05 P1-07 P1-09 P1-11 P1-13 P1-15 P1-17 P1-19 P1-21 P1-23 P1-25
3.3V GPIO2(SDA) GPIO3(SCL) GPIO4 GND GPIO17 GPIO27 GPIO22 3.3V GPIO10(MOSI) GPIO9(MISO) GPIO11(SCLK) GND
P1 GPIO Funkcja 5V 5V GND GPIO14(TXD) GPIO15(RXD) GPIO18 GND GPIO23 GPIO24 GND GPIO25 GPIO8(CE0) GPIO7(CE1)
Pin P1-02 P1-04 P1-06 P1-08 P1-10 P1-12 P1-14 P1-16 P1-18 P1-20 P1-22 P1-24 P1-26
Rysunek 1. Schemat ideowy płytki modułu RaspbPI_DIO16
jest wymagane „kanapkowanie”, jako GPIO lutujemy żeńskie złącze IDC26. Stabilność mocowania płytki zapewnia kołek M3×8 pomiędzy Raspberry a DIO16. Należy pamiętać o konieczności wlutowania zwór CE0/1, A0…2 dla odpowiedniej konfiguracji płytki. Aby w praktyce najszybciej sprawdzić działanie modułu, polecam wykorzystanie WebIOPi (dokładny opis instalacji i użytkowania na http://goo.gl/1fOKRi). Instalacja z konsoli: wget http://webiopi.googlecode. com/files/WebIOPi-0.6.0.tar.gz tar xvzf WebIOPi-0.6.0.tar.gz cd WebIOPi-0.6.0 sudo ./setup.sh Przed uruchomieniem serwera jest konieczna edycja pliku konfiguracyjnego (użytkownik administrator): /etc/webiopi/config Dopisanie linii w sekcji [DEVICE] (rysunek 3): gpio = MCP32S17 slave:0x20 Zapisanie zmian w pliku i uruchomienie serwera: sudo /etc/init.d/webiopi start Plik config z domyślnymi ustawieniami dołączony jest do dokumentacji projektu. Po uruchomieniu przeglądarki internetowej, wpsianiu adresu http://localhost:8000/ (użytkownik: webiopi, hasło: raspberry) i wybraniu linku Device Monitor, powinny być widoczne odczyty z wejść MCP23S17 (rysunek 4) oraz powinien być możliwy zapis wyjść. Łącząc odpowiednio wyprowadzenia złącz PA i PB można sprawdzić poprawność działania U1. Oczywiście, jest możliwe użycie WebIOPi we własnych aplikacjach. Udostępnia ono biblioteki dla ponad 30 typowych układów AD/DA/IO i przetworników sygnałowych. Dokładny opis zastosowania WebIOPi można znaleźć w Wikipedii oraz pod adresem http://goo.gl/pzyt9R.
4-portowy HUB USB zgodny z Raspberry PI
Rysunek 2. Schemat montażowy płytki modułu RaspbPI_DIO16
Rysunek 3. Konfiguracja MCP23S17 w WebIOPi
Rysunek 4. Obsługa MCP23S17 poprzez WebIOPi ELEKTRONIKA PRAKTYCZNA 9/2013
Komputerek Raspberry PI wyposażono w dwa porty do komunikacji szeregowej USB. Po dołączeniu klawiatury i myszy brakuje wolnego portu dla pozostałych urządzeń, takich jak np. pamięć masowa, interfejs Bluetooth, karta sieci bezprzewodowej, czytnik pamięci itp. Jest jasne, że można za niewygórowaną kwotę kupić gotowego huba USB, ale znacznie ciekawiej jest zrobić go samodzielnie szczególnie, gdy dysponujemy Raspberry Pi w wersji „A” z jednym portem USB. Schemat ideowy płytki HUB’a pokazano na rysunku 5. Sercem urządzenia jest U1 – TUSB2046B, 4-portowy hub USB, z zarządzaniem zasilaniem USB i współpracą z zewnętrzną pamięcią konfiguracji. Do jego poprawnej pracy jest wymagany sygnał zega-
35
PROJEKTY
AVT 5413
rowy 6 MHz, generowany za pomocą bloku generatora z kwarcem XTAL1 i pojemnościami C3, C4. Układ jest zasilany napięciem 3.3V ze stabilizatora U4, LD sygnalizuje jego obecność. Poprawny reset po włączeniu zasilania zapewnia U3. Opcjonalna pamięć konfiguracji U7, umożliwia konfigurację własnych PID/VID magistrali. Na płytce przewidziano miejsce dla układu 93LC46B. Jeżeli mamy zamiar poeksperymentować z „własnym” hubem, należy zewrzeć zworkę EXM do masy uaktywniając układ interfejsu EEPROM. Domyślnie U7, R71 nie są wlutowane, a zworą EXM zwieramy wyprowadzenie !EXTMEM do 3,3 V dezaktywując układ interfejsu pamięci. Sygnał z nadrzędnego portu USB (Host) jest doprowadzony przez złącze mini USB do portu „0” U1. Rezystory R1, R2 oraz kondensatory C1, C2 terminują magistralę. Rezystor R3 informuje Hosta o możliwości pracy w trybie Full Speed. Układ U2 – SN65220 – służy do zabezpieczenia magistrali USB przed przepięciem. Płytkę wyposażono w opcjonalne złącze USBI umożliwiające stałe połączenie Huba z RPi za pomocą przewodów wlutowanych w miejsce złączy USB RPi. Każdy z 4 portów USB ma elementy terminujące magistralę (rezystory Rx1…4, kondensatory Cx1, Cx2, gdzie x oznacza numer portu USB) oraz własne zabezpieczenie przepięciowe SN65220. Jako gniazda wyjściowe USB1...4 zastosowano standardowe gniazda USB tupu „A”. Zasilanie wyprowadzane przez każdy z portów jest filtrowane za pomocą kondensatorów CE11…41. Układ U1 ma możliwość zarządzania zasilaniem dołączonych urządzeń USB. W tym celu są używane wyjścia sterujące !PWRON (!PWNx) załączające odpowiadnie, inteligentne klucze U5, U6 oraz wejścia monitorowania przeciążenia zasilania !OVRCURR (!OVCx).
36
TPS2062D zawiera dwa kompletne układy kluczowania zasilania, oparte o tranzystor MOSPFET z niewielką Rdson, układ monitorowania prądu zasilania z sygnalizacją przekroczenia (wartość ustalona, zależna od typu układu, dla TPS2062 to 1 A), blokadę przepływu prądu wstecznego oraz układ rozładowania pojemności filtrujących, gdy klucz jest wyłączony. Przekroczenie dopuszczalnej wartości prądu jest sygnalizowane wyzerowaniem wyjścia !FLTx, co informuje U1 (TUSB2046B) o awarii zasilania portu i powoduje ustaienie sygnału !ENx, odłączając przeciążony port USB od huba, nie powodując zakłóceń w pracy pozostałych portów (o ile zasilacz układu wytrzyma krótkotrwałe, zwiększone obciążenie). Jeżeli nie przewidujemy konieczności zabezpieczania portów USB (aczkolwiek jest to zalecane), w miejsce układów U5 i U6 należy wlutować zwory Z5 i Z6 podające stale zasilanie USB. Rozwiązanie uproszczone wydaje się sensowne w wypadku urządzeń typu klawiatura, mysz. Dla urządzeń „eksperymentalnych” warto zastosować układ zabezpieczający tym bardziej, że tylko nieliczne fabryczne huby są wyposażone w układy zarządzania zasilaniem. Najczęściej zabezpieczenie ogranicza się do jednego, wspólnego dla wszystkich portów bezpiecznika polimerowego. Układ uzupełnia złącze zasilania PWR umożliwiające zasilanie naszego Huba i Raspberry Pi z typowego zasilacza 5 V/3 A z nasadką zasilającą DC w miejsce niewygodnego złącza microUSB. Jest to szczególnie istotne, gdy do huba są dołączone dyski HDD lub karty Wi-Fi wymagające dostarczenia większej mocy, przekraczającej możliwości Raspberry. Wydajność prądową zasilacza należy dobrać w zależności od szczytowego poboru mocy urządzeń USB, aby wykluczyć niestabilność zasilania skutkująca zawieszaniem się lub restartami Pi.
W ofercie AVT* AVT-5413 A Podstawowe informacje: • Rozszerzenie liczby interfejsów USB do 4 (USB Hub). • Na bazie układu TUSB2046B – 4-portowego huba USB. • Sterowanie za pomocą USB. • Zasilanie z zasilacza 5 V/3 A (natężenie prądu jest zależne od rodzaju zasilanych urządzeń). • Zabezpieczenie linii interfejsowych przed przepięciami. Wykaz elementów: Rezystory: R1, R2, R13, R14, R23, R24, R33, R34, R43, R44,: 27 V (SMD 0805, 1%) R3…R5: 1,5 kV (SMD 0805, 1%) R11, R12, R21, R22, R31, R32, R41, R42, R51, R52, R61, R62: 15 kV (SMD 0805, 1%) R71: 1 kV (SMD 0805) Kondensatory: C1…C4, C11, C12, C21, C22, C31, C32, C41, C42: 22 pF (SMD 0805) C5, C6, C51, C61: 10 mF (SMD 0805) C7, C71: 0,1 mF (SMD 0805) CE1: 220 mF/10 V (elektrolit.) CE2, CE11, CE21, CE31, CE41: 47 mF/6,3 V (SMD „B”) Półprzewodniki: U1: TUSB2046B (TQFP32) U2, U11, U21, U31, U41: SN65220DBV (SOT23-6) U3: MCP100T (SOT-23) U4: LM1117-3.3 (SOT-223) U5, U6: TPS2062D (SO-8) U7: 93LC46B (SO-8) LD: dioda LED SMD Inne: EXM, Z5, Z6: zwora P1: złącze IDC26 przelotowe P5: złącze IDC8 przelotowe PWR: złącze zasilania DC NZZ USB: złącze USB Mini B USB1…USB4: złącze USB A USBI: złącze IDC4 XTAL1: 6 MHz, kwarc HC49 niski Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5402/2 Moduły rozszerzeń dla Raspberry Pi (2) – Płytka do komunikacji szeregowej EP 7/2013 AVT-5402 Moduły rozszerzeń dla Raspberry Pi (1) – Płytka stykowa, moduł I/O, moduł wejść analogowych EP 6/2013 * 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
Układ jest zmontowany na niewielkiej, dwustronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunku 6. Montaż jest typowy i nie wymaga opisu. Uwagi odnośnie do złącz są takie same, jak dla modułu opisywanego wcześniej. W zależności od zastosowań można zamontować EEPROM U7 wraz z towarzyszącymi elemenELEKTRONIKA PRAKTYCZNA 9/2013
Moduły rozszerzeń dla Raspberry Pi tami. W prototypie zamontowane są wszystkie układy ochrony przepięciowej oraz klucz zasilania U6 dla portów USB3 i USB4. Por-
ty USB1 i USB2 mają wlutowaną zworę Z5 i są zasilane bezpośrednio, z pominięciem układu zabezpieczeń (służą do dołączenia
urządzeń o niskim prawdopodobieństwie zwarcia magistrali). Połączenie USB pomiędzy Raspberry a Hubem jest zrealizowane przewodem spiralnym USBA-USBBmini o długości 15 cm.
Sterownik silników prądu stałego RaspbPI_ DCM
Rysunek 5. Schemat płytki huba USB ELEKTRONIKA PRAKTYCZNA 9/2013
Płytka umożliwia rozszerzenie funkcjonalności GPIO Raspberry PI o możliwość sterowania dwoma silnikami prądu stałego o średniej mocy (maksymalny prąd obciążenia 2,8 A) zasilanych napięciem z przedziału 8…50 V. Dodatkowo, jest możliwe wyprowadzenie 8 sygnałów GPIO w standardzie 3,3 V dla współpracy z sensorami, dołączenia magistrali I2C oraz do komunikacji szeregowej. Płytka wymaga Raspberry Pi Rev2. o przyporządkowaniu sygnałów GPIO-P1 przedstawionym w tab. 1. Układ sterownika silnika oparty jest o specjalizowany driver L6205 firmy ST. Zawiera on wszystkie obwody niezbędne dla sterowania dwoma silnikami: dwa mostki H zbudowane z tranzystorów MOSFET z niskim Rdson i bezstratnym układem pomiaru prądu silnika niewymagającym zewnętrznych elementów, logikę zabezpieczającą i pompę ładunku do sterowania mostkiem H, wbudowane zabezpieczenia przed przeciążeniem i przegrzaniem oraz wejściową logikę sterującą. Schemat ideowy płytki driverów silników pokazano na rysunku 7. Napięcie zasilania silnika MVCC jest oddzielone od napięć sterujących i musi pochodzić ze źródła zewnętrznego. Napięcie MVCC, poprzez złącze PWRM, zasila mostki H układu U1. Diody D1 i D2, pojemności Cb i Cp oraz rezystor Rp są elementami przetwornicy napięcia niezbędnej dla prawidłowego sterowania „górnych” tranzystorów mostka. Kondensatory CE1,C2 odsprzęgają zasilanie części mocy Do wyprowadzenia U1-SENSEA są dołączone wyprowadzenia „dolne” mostka H, rezystory RSA1 i RSB1 umożliwiają pomiar prądu silnika. Jeżeli po-
37
PROJEKTY
AVT 5414
Rysunek 6. Rozmieszczenie elementów modułu W ofercie AVT* AVT-5414 A Podstawowe informacje: • Możliwość sterowania dwoma silnikami prądu stałego. • Napięcie uzwojeń 8…50 V, prąd obciążenia do 2,8 A. • Na bazie układu L6205, specjalizowanego sterownika silników. • Zasilanie z płytki Raspberry Pi i z zasilacza zewnętrznego. Wykaz elementów: Kondensatory: C1, C2, CB: 220 nF (SMD 1206, 50 V) CE1: 47 mF/50 V (elektrolit. low ESR) CEA, CEB: 5,6 nF (SMD 1206) CP: 10 nF (SMD 1206, 50 V) Półprzewodniki: D1, D2: LL4148 (SMD) PW: dioda LED SMD U1: L6205 (SO20W) U2, U2: HC86 (SO14) Inne: DIO: złącze SIP10/2,54 mm GND, VCC: złącze SIP8 2,54 mm GPIO: złącze IDC26 I2C, SER: złącze SIP4/2,54 mm PWRM: złącze MC1.5_381, kompletne Rezystory: R1: 1 kV (SMD 1206) REA, REB: 100 kV (SMD 1206) RP: 100 V (SMD 1206) RSA1, RSB1: 1 V (SMD 1206; 0,5 W opis w tekście) RSA2, RSB2: zwora SMD, opis w tekście Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5402/2 Moduły rozszerzeń dla Raspberry Pi (2) – Płytka do komunikacji szeregowej EP 7/2013 AVT-5402 Moduły rozszerzeń dla Raspberry Pi (1) – Płytka stykowa, moduł I/O, moduł wejść analogowych EP 6/2013 * 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
38
Rysunek 7. Schemat ideowy płytki PaspbPI_DCM ELEKTRONIKA PRAKTYCZNA 9/2013
Moduły rozszerzeń dla Raspberry Pi Dioda LD sygnalizuje występowanie napięcia 3,3 V. Należy pamiętać, aby nadmiernie nie obciążać linii 3,3 V dołączonymi czujnikami (maksymalne natężenie prądu obciążenia wynosi ok.100 mA), aby nie przeciążyć wewnętrznego stabilizatora Raspberry. Złącze DIO uzupełniono o piny zasilania. Ułatwia to wyprowadzenie wszystkich dostępnych sygnałów GPIO za poRysunek 8. Rozmieszczenie elementów na płytce mocą przewodu SIP10 np. do płytki PaspbPI_DCM stykowej lub prototypowej. Układ zmontowano na niewielkiej, miar nie jest potrzebny, należy zamontować dwustronnej płytce drukowanej, której zwory RSA2 i RSB2. Bramki U2-1 i U2-4 schemat montażowy pokazano na rysunku buforują sygnały sterujące ENx, a bramki 8. Montaż jest typowy i nie wymaga opisu. U2-2 i U2-3 negują sygnał sterujący kierunAby jak najszybciej przetestować działanie kiem umożliwiając sterowanie wejść IN1/2x modułu polecam użycie WebIOPi (dokładny w standardowej konwencji EN/DIR. Oprócz opis instalacji i użytkowania na http://goo. sterowania silnikiem, moduł umożliwia wygl/1fOKRi). prowadzenie sygnałów magistrali I2C, portu Instalacja za pomocą konsoli: szeregowego oraz niewykorzystanych GPIO wget http://webiopi.googlecode. wraz z zasilaniem 3,3 V na złącza szpilkocom/files/WebIOPi-0.6.0.tar.gz we zgodnie z ArduinoBricks, ułatwiając tar xvzf WebIOPi-0.6.0.tar.gz wygodne dołączenie współpracujących czujcd WebIOPi-0.6.0 ników. sudo ./setup.sh Uwaga: sygnały GPIO Raspberry zgodne Uruchomienie serwera: są ze standardem 3,3 V, dołączenie napięcia sudo /etc/init.d/webiopi start 5 V może spowodować uszkodzenie GPIO.
Rysunek 9. Obsługa DCM poprzez WebIOPi Po przejściu do przeglądarki internetowej pod adres http://localhost:8000/ (użytkownik: webiopi, hasło: raspberry) i wybraniu linku GPIO, powinny być widoczne odczyty z wejść GPIO (rysunek 9) oraz powinien być możliwy zapis wyjść. Ustawiając GPIO17 i GPIO18 oraz GPIO22 i GPIO23 jako w wyjścia mamy możliwość załączenia silnika poprzez wysterowanie GPIO17/GPIO18 oraz sterowanie kierunkiem obrotów za pomocą poziomu na GPIO22/GPIO23.
Adam Tatuś, EP
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
[email protected]; www.evatronix.com.pl/eda
ELEKTRONIKA PRAKTYCZNA 9/2013
39
PROJEKTY
DAMP – wzmacniacz klasy D o mocy 10 W Współcześnie wzmacniacze klasy D cieszą się ogromną popularnością. Są stosunkowo łatwe w budowie, mają dużą sprawność energetyczną, co umożliwia zasilanie ich również ze źródeł przenośnych, a przy tym mają bardzo dobre parametry, nieporównywalne z tymi sprzed kilkunastu lat. W artykule zaprezentowano wzmacniacz zbudowany na bazie układu MAX9768. Jest to wzmacniacz monofoniczny, który można zastosować np. do budowy aktywnego zestawu głośnikowego. Rekomendacje: wzmacniacz klasy D o dobrych parametrach, który może przydać się w wielu konstrukcjach audio: od nagłośnienia domu lub samochodu, aż do aktywnych zestawów głośnikowych.
Schemat ideowy wzmacniacza pokazano na rysunku 1. Jego sercem jest nowoczesny układ scalony wzmacniacza klasy D MAX9768 z oferty firmy Maxim-Dallas. Kondensatory C1...C5 zapewniają odpowiednie filtrowanie zasilania, natomiast stabilizator IC2 dostarcza napięcia 3,3 V przeznaczonego do zasilania części sterującej układu scalo-
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
Wykaz elementów Rezystory: R1: 30 kV (SMD 0805) R2, R3, R7: 10 kV (SMD 0805) R6: 10 kV (potencjometr pionowy) Kondensatory: C1, C2: 100 mF/16 V (SMD „D”) C6, C10, C13: 1 mF (SMD 0805) C3…C5, C7, C11, C12: 100 nF (SMD 0805) C8, C9: 330 pF (SMD 0805) Półprzewodniki: IC1: MAX9768 IC2: MCP1703-3302 Inne: FB1, FB2: koralik ferrytowy SMD3025 POW1, POW2, SPK: złącze DG301-5.0/2 CON5, CON6: goldpin 1×4 IN: goldpin kątowy 1×2
40
AVT 5416
nego. Rezystory R1, R oraz kondensator C6 ustalają wzmocnienie napięciowe. W obwodzie wyjściowym nie ma filtrów z dużymi dławikami charakterystycznymi dla wzmacniaczy klasy D. Zamiast nich zastosowano nieskomplikowane filtry z koralikiem ferrytowym i kondensatorem. Zgodnie z dokumentacją układu MAX9768 dostarczoną przez producenta, te elementy umożliwiają poprawną pracę wzmacniacza, co ważne, z zachowaniem norm kompatybilności elektromagnetycznej. Redukcję zakłóceń EMI osiągnięto dzięki specjalnym sposobom modulacji. Brak dławików przekłada się na zmniejszenie gabarytów gotowego wzmacniacza oraz przede wszystkim na zmniejszenie ceny produktu końcowego. Jedynym ograniczeniem jest to, że obciążenie (głośnik) musi być dołączony przewodem o długości do 1 m, co predysponuje wzmacniacz do zainstalowania np. wewnątrz kolumny głośnikowej. Układ MAX9768 ma regulację głośności sterowaną za pomocą napięcia stałego. Na płytce zamontowano miniaturowy potencjometr, który realizuje tę funkcję, ale napięcie sterujące głośnością może być także podawane z zewnątrz, na przykład przez mikrokontroler lub pobierane ze wspólnej szyny sterowania napięciowego. Należy wtedy nie montować potencjometru R6, a do złącza CON5 lub CON6, do pinu VL, doprowadzić napięcie z przedziału 0...3,3 V. Zwarcie wejścia do masy zasilania (0 V) odpowiada głośności minimalnej, natomiast zwarcie do +3,3 V głośności maksymalnej. Funkcją, na którą również warto zwrócić uwagę jest możliwość synchronizowania
W ofercie AVT* AVT-5416 A AVT-5416 B AVT-5416 C Podstawowe informacje: • Zasilanie 5...14 V DC. • Moc wyjściowa 10 W przy obciążeniu 8 V i zasilaniu 14 V. • Praca przy obciążeniu 8 V lub 4 V. • Sprawność energetyczna około 87%. • Wbudowany regulator głośności sterowany napięciowo. • Możliwość łączenia w wielokanałowe, zsynchronizowane zespoły wzmacniaczy. • Dla przewodów głośnikowych do 1 m nie ma potrzeby stosowaniu dławików wyjściowych. • Zabezpieczenie przeciwzwarciowe i termiczne. • Wymiary 26 mm×47 mm×15 mm. Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-1758 Wzmacniacz z układem TPA3110 EP 8/2013 AVT-1746 Wzmacniacz o mocy 20 W z układem LM1875 EP 7/2013 AVT-1723 Miniaturowy wzmacniacz o mocy 2×6 W EP 2/2013 AVT-1712 Miniaturowy, stereofoniczny wzmacniacz mocy 2×3 W EP 10/2012 AVT-5345 Wzmacniacz audio o mocy 2×300 W EP 5/2012
* 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 9/2013
J
A IEW A W bV PN O La STĘ N SJA Ż DO ER JU W ST E
DAMP – wzmacniacz klasy D o mocy 10 W
Nieskończone możliwości na jednej platformie
NI LabVIEW to kwintesencja graficznego projektowania systemów, które stanowi połączenie środowiska programistycznego z rekonfigurowalnym sprzętem. Dzięki niemu możemy
Rysunek 1. Schemat ideowy wzmacniacza z MAX9768
Rysunek 2. Schemat montażowy wzmacniacza z MAX9768 ELEKTRONIKA PRAKTYCZNA 9/2013
przyspieszyć projektowanie dowolnych
w taki sposób, aby łatwo można było łączyć ze sobą poszczególny moduły wzmacniaczy – na przeciwległych krawędziach płytki umieszczono złącza zasilania POW1 i POW2 oraz CON5 i CON6 z wyprowadzonymi sygnałami SYNC, SYNCOUT, VL oraz SHDN (funkcja standby, wyłączenie wzmacniacza). Potencjometr do regulacji głośności powinien być zamontowany tylko w jednym z modułów i będzie regulował głośność wszystkich modułów. Montaż może sprawić trudności ze względu na obudowę układu scalony MAX9768. Jest on oferowany w obudowie o wymiarach 4 mm×4 mm×0,8 mm, na której krawędziach wyprowadzono aż 24 nóżki. Pozostałe elementy są w obudowach SMD 0805 i ich zamontowanie nie powinno sprawić trudności.
KS
systemów pomiarowych i sterowania.
>> Przyspiesz projektowanie systemów na ni.com/labview-platform
REKLAMA
zegara taktującego za pomocą zewnętrznego sygnału zegarowego. Układ ma wejście synchronizujące SYNC i wyjście zegarowe SYNCOUT, co daje możliwość połączenia kilku wzmacniaczy w wielokanałowy, zsynchronizowany system, o zminimalizowanym występowaniu zjawiska intermodulacji. Schemat montażowy wzmacniacza pokazano na rysunku 2. Płytka zaprojektowano
800 889 897 National Instruments Poland Sp. z o.o. n Salzburg Center, ul. Grójecka 5,˙ 02-025 Warszawa Tel: +48 22 328 90 10 n Fax: +48 22 331 96 40 n Strona internetowa: http://poland.ni.com ˛ Rejonowy dla m. st. Warszawy, XIII Wydział Adres e-mail:
[email protected] n KRS 86646, Sad n Kapitał zakładowy: 100,000.00 PLN ˛ Gospodarczy Krajowego n Rejestru Sadowego NIP 527-22-69-641 ©2013 National Instruments Corporation. Wszystkie prawa zastrzezone. LabVIEW, National Instruments, NI, ni.com to zarejestrowane znaki handlowe National Instruments. Inne wymienione produkty i firmy to zarejestrowane znaki handlowe i nazwy firmowe odpowiednich firm. 13216
41
PROJEKTY
Miernik panelowy do zasilacza symetrycznego AVT
5415
Prezentowany miernik panelowy jest znakomitym uzupełnieniem każdego budowanego zasilacza. Jest przeznaczony do zasilacza symetrycznego i umożliwia jednoczesny pomiar obu napięć wyjściowych oraz prądów pobieranych ze źródeł napięcia dodatniego i ujemnego. Rekomendacje: miernik nadaje się do współpracy z zasilaczem 3,3…30 V. We wstępie do artykułu należą się podziękowania Jakubowi Moroniowi, Szymonowi Kulisowi i Przemkowi Terleckiemu za udzielenie cennych wskazówek i zwrócenie uwagi na błędy w projekcie i budowie układu. Założeniem tego projektu było wykonanie taniego miernika, który jednocześnie pozwala na zmierzenie napięć i prądów z możliwie dobrą dokładnością. Dodatkowo, wyświetlanie poboru mocy czy też rezystancji dołączonego odbiornika może być przydatne w wielu zastosowaniach. Miernik jest zbudowany z zastosowaniem popularnych wzmacniaczy operacyjnych TL081, których offsety kalibrowane są za pomocą potencjometrów wieloobrotowych oraz sieci rezystorów. Do pomiaru napięcia zastosowano przetwornik analogowo-cyfrowy w mikrokontrolerze ATmega8. Wyniki pomiarów są prezentowane na wyświetlaczu LCD 16×2. Przyciski na panelu przednim pozwalają na przełączanie się w wygodny sposób pomiędzy wskazaniami prądu, mocy i rezystancji obciążenia.
Zasada działania Miernik składa się z dwóch części, połączonych ze sobą za pomocą złącz goldpin. Schemat części analogowej zamieszczono na rysunku 1. Schemat można podzielić na dwie prawie symetryczne części. Jedna odpowiada za pomiar prądu i napięcia w ujemnym kanale współpracującego zasilacza, a druga w dodatnim. Spadek napięcia występujący na rezystorze R+* (0,2 V) jest proporcjonalny do płynącego przezeń prądu. Rezystor ten nie jest zamontowany na płytce miernika, gdyż jest częścią zasilacza współpracującego z miernikiem. Punkt „A” powinien być dołączony
42
do wyższego potencjału (przed rezystorem w zasilaczu), natomiast punkt „B” do potencjału niższego (za rezystorem pomiarowym). Wzmacniacz operacyjny U3 (TL081) porównuje napięcie w punkcie „B” z napięciem występującym na rezystorach R1…R4 (200 V) względem punktu „A”. Jego wyjście tak steruje tranzystorem T1 (BC857), aby spadek napięcia na równoległym połączeniu R1… R4 był równy spadkowi napięcia na rezystorze pomiarowym R+*. Równoległe połączenie R1…R4, zamiast pojedynczego rezystora zostało zastosowane w celu polepszenia tolerancji rezystancji, a co za tym idzie, poprawia dokładność pomiaru. Prąd płynący przez tranzystor T1 i rezystory R1…R4 płynie także przez rezystory R5…R8 (9,1 kV). Ich rezystancja jest 45,5 razy większa od równoległego połączenia R1…R4, więc napięcie na kondensatorze C8 (100 nF) jest 45,5 razy wyższe, niż na rezystorze pomiarowym R+*. Jak łatwo zauważyć, pomiar prądu może odbywać się w maksymalnie 4 zakresach pomiarowych, realizowanych przez rezystory R9…R12 (2,4 kV), R13…R16 (750 V) i tranzystory MOSFET z komplementarnych par T3-T4 (IRF7106/IRF7105). Elementy T3 i T4 w istocie zawierają dwa tranzystory o przeciwnych polaryzacjach w jednej obudowie. Jeśli dla przykładu tranzystory MOSFET-N z T3 i T4 będą przewodzić (wysoki stan na bramkach G1), to prąd płynący przez T1 będzie trafiał na równoległe połączenie rezystorów R5… R16 realizując najmniejszy mnożnik napięcia i zarazem największy zakres pomiarowy. Napięcie z dzielnika rezystancyjnego, filtrowane przez C8 trafia na wejście bufora nieodwracającego U4 (TL081) i dalej przez rezystor R21 (9,1 kV) na wejście przetwor-
W ofercie AVT* AVT-5415 A AVT-5415 B AVT-5415 UK Podstawowe informacje: • Pomiar napięcia i prądu zasilacza symetrycznego (w odniesieniu do masy). • Wskazanie wyniku pomiaru na wyświetlaczy LCD 16×2. • Wyświetlanie napięć, prądów, mocy w dwóch kanałach symetrycznych. • Zakres pomiaru napięcia 3,3…30 V. • Zakres pomiaru prądu: 0…2000 mA. • Zasilanie ±36 V DC (uzwojenie pomocnicze) Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5399 Dwukanałowy multimetr panelowy EP 6/2013 AVT-5386 Podwójny woltomierz i amperomierz EP 3/2013 AVT-5339 Woltomierz cyfrowy EP 4/2012 AVT-5333 Multimetr panelowy EP 3/2012 AVT-5300 VMOD - Uniwersalny miernik napięcia EP 7/2011 AVT-5233 3-kanałowy woltomierz EP 5/2010 AVT-5182 Wielokanałowy rejestrator napięć EP 4/2009 AVT-2857 Moduł woltomierza/amperomierza EdW 3/2008 AVT-5086 Programowany 4-kanałowy komparator/woltomierz EP 11/2002 AVT-2270 Moduł miliwoltomierza EdW 3/1998 AVT-2126 Moduł woltomierza na LCD EdW 3/1997 * 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 9/2013
Miernik panelowy do zasilacza symetrycznego nika A/C za pośrednictwem złącza GP1. Tranzystory zmieniające zakres sterowane są za pomocą mikrokontrolera poprzez złącze
GP2. Napięcie na wyjściu bufora U4 nie powinno przekroczyć 2,56 V, gdyż przetwornik A/C pracuje z takim napięciem referencyj-
nym. Gdy napięcie zbliża się do tej wartości, zakres prądowy zostaje zmieniony automatycznie na większy.
Rysunek 1. Schemat części analogowej multimetru ELEKTRONIKA PRAKTYCZNA 9/2013
43
PROJEKTY Rezystory R17…R20 (47 kV) oraz potencjometry wieloobrotowe P1…P2 (10 kV) pozwalają na zniwelowanie offsetu wzmacniaczy U3 i U4, jednak w pierwszej fazie uruchomienia multimetru nie należy ich montować. Kondensatory C7 (100 nF), C9, C10 (100 nF) filtrują napięcia zasilające wzmacniacze U3 i U4. Wzmacniacz U3 pracuje przy zasilaniu dodatnim o wartości maksymalnej 36 V, natomiast U4 przy zasilaniu symetrycznym ±5 V, aby dobrze przenosić sygnały o potencjale zbliżonym do masy. Pomiar prądu płynącego w ujemnym biegunie zasilacza jest bardzo podobny. Rezystorem pomiarowym jest tutaj R-* (0,2 V), punkt „C” należy dołączyć do niższego potencjału, a punkt „D” do wyższego. Dzięki wzmacniaczowi operacyjnemu U6 (TL081) i tranzystorowi T2 (BC847) spadek napięcia na równoległym połączeniu R41… R44 (200 V) jest taki sam, jak na rezystorze pomiarowym R-*. Prąd płynący przez rezystory R41…R44 i tranzystor T2 płynie Rysunek 2. Schemat części cyfrowej multimetru także przez równoległe połączenie R23-R25 (9,1 k) i R34 (9,1 k). Podczas pozwalają na zniwelowanie offsetu wzmacgłego połączenia R58…R61 (560 kV) oraz działania układu na wejściu odwracającym niaczy U5 i U6. Kondensatory C11, C12 R50…R53 (160 kV). Stopień podziału jest wzmacniacza U5 (TL081) ustali się potenoraz C14 (100 nF) filtrują napięcie zasilania wyznaczony tutaj na 10/45. Napięcie z dzielcjał masy, a zatem rezystor R34 jest włączowzmacniaczy operacyjnych. nika jest filtrowane za pomocą pojemności ny równolegle do R23…R25. Napięcie na Pomiar napięcia wykonany jest w mniej C15 (100 nF), a następnie trafia na bufor U7 kondensatorze filtrującym C13 (100 nF) jest skomplikowany sposób i działa z zastosowa(TL081) i poprzez rezystor R49 (9,1 kV) na w efekcie 45,5 razy większe od napięcia na niem dzielnika napięcia. W dodatnim kanale złącze wyjściowe GP1. Pomiar napięcia jest rezystorze pomiarowym R-*. Wzmacniacz pracuje dzielnik składający się z równoledokonywany w dwóch zakresach pomiaU1 pracuje w konfiguracji odwracającej o wzmocnieniu -1, co jest konieczne w celu umożliwienia pracy przetwornika A/C w mikrokontrolerze, pracującego tylko przy wejściowych napięciach dodatnich. Podobnie jak w kanale dodatnim, dzięki tranzystorom MOSFET-P z par T3 i T4 oraz rezystorom R26…R29 (2,4 kV) i R30…R33 (750 V), jest możliwa zmiana zakresów pomiarowych miernika prądu. Bramki tranzystorów MOSFET-P wymagają sterowania ujemnego względem masy, więc zostały podłączone do mikrokontrolera poprzez transoptory OPT1-OPT2 (LTV357T), pozwalające sterować bramki tranzystorów napięciem dodatnim względem masy. Rezystory R80, R81 (10 kV) podciągają bramki do potencjału masy, gdy OPT1 i OPT2 są wyłączone, natomiast R45, R46 (1 kV) ograniczają prąd diod transoptorów. Wyjście bufora odwracającego U5 trafia na rezystor R38 (9,1 kV) i dalej, na złącze GP1. Rezystory R36, R37, R39, R40 (47 kV) oraz potencjometry P3 (10 kV) i P4 (10 kV) Rysunek 3. Schemat montażowy części analogowej multimetru
44
ELEKTRONIKA PRAKTYCZNA 9/2013
Miernik panelowy do zasilacza symetrycznego rowych zmienianych dzięki tranzystorowi MOSFET-N z komplementarnej pary T5 (IRF7105/IRF7106). Gdy tranzystor przewodzi do rezystorów R50…R53 dołączają się równolegle R54…R57 (44,2 kV) zmieniając stopień podziału dzielnika. Pomiar napięcia ujemnego jest wykonywany w bardzo podobny sposób. Dzielnik składa się tym razem z rezystorów R70…R73 (560 kV) oraz R63…R65 (160 kV). Podobnie jak na ujemnym zakresie pomiarowym dla prądu, rezystor R74 (160 kV) dołącza się równolegle do rezystorów R63…R65. Kondensator C18 (100 nF) filtruje napięcie z dzielnika, które jest odwracane za pomocą wzmacniacza U8 (TL081). Stosunek rezystancji rezystorów R75 i R74 (160 kV) ustala wzmocnienie U8. Zmiana zakresu pomiaru napięcia po stronie ujemnej odbywa się dzięki tranzystorowi MOSFET-P z pary T5 i rezystorom R66…R69 (44,2 kV), identycznie jak po stronie dodatniej. Do sterowania tranzystora MOSFET-P jest używany transoptor OPT3 (LTV357) oraz rezystory R82 (10 kV) i R79 (1 kV). Rezystory R47, R48, R76, R77 (47 kV) oraz potencjometry P5-P6 (10 k) pozwalają wyzerować offset wzmacniaczy U7 i U8, a kondensatory C16, C17, C19, C20 (100 nF) filtrują napięcie zasilania tych wzmacniaczy. Diody D1…D4 (BAT85) zabezpieczają wejścia wzmacniaczy operacyjnych U4, U5, U7 i U8 przed nadmiernym wzrostem napięcia. W ich miejsce można też dać dowolnych diod krzemowych w obudowie SOD80, gdyby okazało się, że wzmacniacze operacyjne nie pracują stabilnie (testy wykazały, że zależy to w dużej mierze od producenta wzmacniaczy). Schemat części cyfrowej pokazano na rysunku 2. Jej sercem jest mikrokontroler ATmega8 (U1). Pomiar jest wykonywany za pomocą przetworników A/C wbudowanych w mikrokontroler. Sam przetwornik A/C może pracować z wewnętrznym lub zewnętrznym napięciem referencyjnym 2,56 V. W roli zewnętrznego układu referencyjnego jest używana regulowana dioda Zenera U2 (TL431) wraz z elementami współpracującymi: potencjometrem P2 (10 kV), rezystorem R2 (470 V) i C5 (100 nF). Kondensatory C5 (100 nF) i C15 (10 mF) filtrują napięcie referencyjne, a potencjometr P2 pozwala na ustawienie jego wartości. Napięcie wejściowe przetwornika jest filtrowane przez kondensatory C6…C9 (100 nF), które tworzą filtr RC razem z szeregowym rezystorem wyjściowym, znajdującym się w części analogowej układu. Złącza GP1 oraz GP2 zapewniają połączenie pomiędzy płytkami. Kondensatory C4 (100 nF) i C14 (10 mF) oraz dławik L1 (10 mH) filtrują napięcie zasilające część analogową mikrokontrolera. Kondensator C3 (100 nF), zamontowany bliELEKTRONIKA PRAKTYCZNA 9/2013
Rysunek 4. Dołączenie miernika do zasilacza sko mikrokontrolera, zapewnia filtrowanie napięcia zasilającego część cyfrową mikrokontrolera. Ponieważ miernik będzie wykorzystywany w zasilaczu i zwykle zasilany z pomocniczego uzwojenia transformatora, na płytce przewidziano zasilacz stabilizowany wraz z mostkiem prostowniczym Br1 (1 A) i stabilizatorem U3 (7805). Prezentacja wyniku pomiaru odbywa się za pomocą wyświetlacza W1 (16×2). Jego kontrast można dostroić za pomocą potencjometru P1 (10 kV). Prąd podświetlania wyświetlacza jest ograniczony przez rezystor R1 (47 V). Przyciski S1, S2 umożliwiają zmianę trybu pracy miernika, a diody świecące D1 i D2 sygnalizują przekroczenie zakresu pomiarowego prądu.
Budowa Schemat montażowy części analogowej multimetru pokazano na rysunku 3. Montaż należy rozpocząć od komponentów umieszczonych od strony druku. Jakie pierwsze należy przylutować rezystory i kondensatory w obudowach 0805. Jeśli nie planujemy regulowania offsetów wzmacniaczy operacyjnych za pomocą potencjometrów wieloobrotowych (potencjometry nie będą montowane), to nie należy montować także rezystorów R17…R20, R39, R40, R36, R37, R47, R48, R76, R77. Z pozoru „dziwne” wartości rezystancji w układzie dzielników wynikają z faktu, że są to elementy o tolerancji 1% i nie zawsze są one dostępne o wartościach takich jak w szeregu 5%. W dalszej kolejności można wlutować tranzystory i wzmacniacze operacyjne, złącza GP1, GP2 i stabilizatory napięcia U1, U2. Montaż złącz goldpin i stabilizatorów jest utrudniony, gdyż należy go wykonać od strony druku. Kolejnym etapem będzie montaż elementów po przeciwnej stronie płytki. W pierwszej kolejności należy wlutować wszystkie zworki, a następnie kondensatory C1 i C2. Wyprowadzenia kondensatorów można zgiąć pod kątem 90 stopni, aby można było je położyć na płytce. W roli elementów/złącz R+* i R-* trzeba wlutować przewody, gdyż w tym miejscu powinny zostać dołączone rezystory pomiarowe zasilacza symetrycznego. Do złącza „Z” będzie trzeba doprowadzić
Rysunek 5. Układ testowy symetryczne napięcie zasilające, więc najprościej także wlutować w tym miejscu kawałek 3-żyłowej tasiemki. Potencjometry P1…P6 nie powinny być montowane na tym etapie nawet, gdy będziemy korzystali z możliwości regulowania offsetów wzmacniaczy. Potencjometry można zamontować dopiero po wstępnym uruchomieniu części analogowej. Gdy część analogowa miernika jest już gotowa, można przystąpić do jej wstępnego uruchomienia. W tym celu należy dołączyć układ do zasilacza symetrycznego zgodnie z rysunkiem 4. Można też dołączyć układ miernika na czas testów do symetrycznego zasilacza regulowanego i zbudować nieskomplikowany układ testowy zgodnie z rysunkiem 5. Widoczne na schemacie rezystory 0,2 V służą do pomiaru prądu. Napięcie zasilania układu musi być wyższe od napięcia w punkcie „A” (i po ujemnej stronie w punkcie „C”) o co najmniej kilka woltów i nie wyższe niż 32 V (dla bezpieczeństwa wzmacniaczy operacyjnych i stabilizatorów). Dlatego do testów najlepiej wykorzystać dwa zasilaREKLAMA
45
PROJEKTY cze laboratoryjne. Na jednym ustawiamy wysokie napięcie symetryczne rzędu 12…32 V, jakie normalnie występuje na kondensatorach filtrujących, natomiast drugi zasilacz laboratoryjny symuluje działanie stabilizatora. W roli obciążenia Ro można zastosować rezystory 330 V/5 W lub podobne, tak aby prąd płynący przez rezystory pomiarowe był rzędu kilkudziesięciu mA (moc rezystorów obciążenia powinna być dobrana z odpowiednim zapasem). Gdy już część analogowa miernika jest dołączona do zasilacza lub układu testowego, można przystąpić do pierwszego uruchomienia układu. Wszystkie wejścia sterujące G1…G6 powinny być zwarte do masy. Po włączeniu zasilania należy sprawdzić czy stabilizatory U1 i U2 dają odpowiednie napięcia (±5 V). Jeśli wynik kontroli jest prawidłowy, to można wykonać pomiar napięć w kilku kluczowych punktach układu. Napięcie między punktami „A” i „B” jest proporcjonalne do płynącego prądu i powinno być równe napięciu pomiędzy punktami „A” i „E”. Świadczy to o poprawnym działaniu układu pomiarowego ze wzmacniaczem U3. Dopuszczalne są tutaj niewielkie różnice napięcia w granicach 1 mV (offsety wzmacniaczy nie zostały jeszcze wyregulowane). Z kolei napięcie w punkcie „F” względem masy powinno być około 45,5 razy wyższe, niż pomiędzy punktami „A” i „E” (sygnały sterujące są zwarte do masy, więc układ pracuje z najwyższym wzmocnieniem). Podobnego pomiaru możemy dokonać po stronie ujemnej szyny zasilania. Napięcie między „C” i „D” powinno być równe napięciu między punktami „C” i „G”, a w punkcie „H” względem masy napięcie powinno być 45,5 razy większe (wartość bezwzględna) niż między „C” i „G”. W dalszej kolejności sprawdzamy działanie buforów napięciowych U4 i U5. Napięcie w punkcie „Ucurr+” na złączu wyjściowym powinno być równe napięciu w punkcie „F” (względem masy), natomiast napięcie w punkcie „Ucurr-” powinno być równe napięciu w punkcie „H” (ze znakiem minus). Można jeszcze sprawdzić, jak zachowują się napięcia w punktach „F” i „H” dla innych stopni podziału dzielnika. Wyboru podziału dokonujemy poprzez zmianę poziomów logicznych sygnałów sterujących G1…G4. Ostatnią częścią, jaką warto sprawdzić, są dzielniki do pomiaru napięcia. Napięcie w punkcie „I” względem masy powinno być 4,5 razy mniejsze, niż napięcie w punkcie „B”, natomiast na wyjściu „U+” napięcie powinno być równe temu w punkcie „I”. Po stronie ujemnej szyny zasilania sytuacja jest podobna. Napięcie w punkcie „J” jest 4,5 razy mniejsze niż w punkcie „D” (wartości bezwzględne), a w punkcie „U-”
46
Rysunek 6. Schemat montażowy części cyfrowej multimetru napięcie jest takie samo jak w punkcie „J”, tylko ze znakiem przeciwnym. Można jeszcze sprawdzić drugi stopień podziału podając poziom wysoki (+5 V) na wejścia sterujące G5 i G6. Ostatnim etapem uruchomienia części analogowej miernika jest wyzerowanie offsetów wzmacniaczy operacyjnych. Do tego celu jest potrzebny miliwoltomierz o jak najlepszej dokładności. Nie jest to obowiązkowy etap i jeśli godzimy się na spadek dokładności przyrządu, możemy go pominąć. Na początek jest konieczne wlutowanie potencjometrów P1…P6, a następnie za ich pomocą porównujemy napięcia między odpowiednimi punktami obwodu. Punkty obwodu i odpowiadające im potencjometry wymieniono w tabeli 1. Napięcia są mierzone względem masy. Dla potencjometrów P1, P2, P4 i P5 jest wygodnie zmierzyć bezpośrednio napięcie między dwoma punktami (pomijając masę) i ustawić wartość napięcia równą 0. Na rysunku 6 pokazano schemat montażowy części cyfrowej multimetru. W pierwszej kolejności należy zamontować elementy od strony ścieżek. Najpierw wlutowujemy mikrokontroler U1 sprawdzając dokładnie jego wyprowadzenia. Następnie, montujemy wszystkie rezystory i kondensatory SMD w obudowach 0805 oraz złącza. Największą trudność sprawią tutaj złącza szufladkowe GP1 i GP2, gdyż należy je wlutować od strony ścieżek. Muszą one odstawać od płytki, aby piny były widoczne spod plastikowej obudowy, gdyż w przeciwnym wypadku nie będzie można ich przylutować. Teraz montujemy podzespoły od strony komponentów. Montaż rozpoczynamy od wlutowania trzech zworek. Należy wlutować potencjometr P1, kondensatory C10 i C13, rezonator kwarcowy X1 oraz
Tabela 1. Punkty obwodu z potencjometrami Potencjometr P1 P2 P3 P4 P5 P6
Punkty obwodu E, B F, Ucurr+ H, UcurrD, G I, U+ J, U-
stabilizator U3. Mostek prostowniczy jest konieczny tylko wtedy, gdy układ będzie zasilany bezpośrednio z uzwojenia transformatora poprzez złącze Z. Dławik L1 nie jest konieczny i przy braku można go zastąpić zworką. Jeśli nie używamy przełączanych trybów pracy, to przyciski S1 i S2 nie będą potrzebne, podobnie jak potencjometr P2 i układ U2, jeśli nie będziemy używali zewnętrznego napięcia referencyjnego. Pod wyświetlacz W1 dobrze jest zastosować 16-pinowe złącze szufladkowe, a w płytkę samego wyświetlacza wlutować goldpin. Do wyprowadzeń procesora można na czas testów przylutować przewody, za pomocą których będzie można go zaprogramować. Obie płytki (analogowa i cyfrowa) po złoże-
Rysunek 7. Ustawienia fusebitów mikrokontrolera ATMega8 ELEKTRONIKA PRAKTYCZNA 9/2013
Miernik panelowy do zasilacza symetrycznego niu ścieżkami do siebie powinny do siebie pasować. Wyświetlacz i dwie płytki miernika można ze sobą skręcić za pomocą śrub 3 mm.
Oprogramowanie Program został napisany w Bascom AVR i po kompilacji zajmuje około 5 kB. Skompilowany program oraz pełny kod źródłowy są dostępne w materiałach dodatkowych do artykułu na płycie CD i serwerze FTP. Pomiary są wykonywane w procedurze obsługi przerwania 8-bitowego Timera 0, skonfigurowanego do pracy ze preskalerem wprowadzającym podział częstotliwości taktującej timer przez 1024. Na samym początku procedury obsługi przerwania do licznika timera jest wpisywana liczba 6. Powoduje to zliczanie 250 impulsów, o częstotliwości zegara podzielonej przez 1024. Ponieważ procesor pracuje z rezonatorem kwarcowym 16 MHz, to przerwanie będzie występowało co 16 ms. Ustawienie flagi F_16ms pozwala później w pętli głównej odczytywać stany dwóch przycisków. Po każdorazowym wystąpieniu przerwania następuje zwiększenie wartości zmiennej N (numerującej pomiary), po czym program wykonuje pętlę for odczytującą wyniki pomiarów w poszczególnych kanałach A/C (ADC2…ADC5). Wartość z przetwornika jest tymczasowo zapisywana do zmien-
ELEKTRONIKA PRAKTYCZNA 9/2013
nej Xx, a następnie dodawana do odpowiedniej komórki tablicy X(1...4). Tablica ta przechowuje sumę wartości z wielu pomiarów, a jej indeks 1...4 oznacza kolejne wejścia pomiarowe. Przy każdym wywołaniu procedury jest sprawdzana wartość zmiennej N i jeśli jest równa N_max (definiowana na początku programu ilość pomiarów do uśrednienia), to następuje podzielenie wartości X(1…4) przez N_max, zapisanie wyniku do nowej tablicy Y(1...4) i wyzerowanie wartości X(1...4). Jednocześnie zostaje ustawiona flaga Zmierzono, która świadczy o gotowości wyniku do dalszej obróbki. Co każde 16 ms, jeśli przycisk został wciśnięty, to pin nazwany Sw1 jest wyzerowany. Zwiększana jest wartość licznika Sw_licz(1) aż do momentu, gdy osiągnie ona wartość 6. Łatwo domyślić się, że procedura obsługi przycisku jest wywoływana, jeśli jest on przytrzymany przez co najmniej 6×16 ms (ok. 0,1 s). Po upływie tego czasu następuje zwiększenie wartości zmiennej Mod_1 określającej, który parametr ma być pokazany na wyświetlaczu (prąd, moc, rezystancja). Mod_1 zmienia się w zakresie 0…2, więc gdy wartość tej zmiennej osiąga 3, musi zostać zerowana. Zapewnia to cykliczną zmianę trybów wyświetlania. Drugi przycisk działa analogicznie, więc opis procedury jego odczytu pominięto.
Procedura przeliczająca wynik pomiaru jest wykonywana w pętli głównej, gdy zostanie wykonany pomiar i jest ustawiona flaga Zmierzono. Na początku, w pętli for, wyliczane są maksymalne wartości prądu, które może bezpiecznie mierzyć układ na i-tym zakresie. Wykorzystywane w tym celu są współczynniki przeliczeniowe Curr_pos(1...4). Wynik jest zapisywany do tablicy Mx(1…4), w której kolejne indeksy oznaczają kolejne zakresy. Dalej, aktualnie zmierzona wartość z przetwornika Y(1) – po przeliczeniu za pomocą jednego ze współczynników (odpowiadającemu zakresowi curr_pos_z, na którym aktualnie znajduje się zakres prądowy) – jest porównywana z wartościami maksymalnymi Mx(1…4) dla kolejnych zakresów. Na tej podstawie jest ustawiana odpowiednia wartość zmiennej curr_poz_z (odpowiedni zakres pomiarowy). Gdy wartość zmierzona po przeliczeniu przekracza maksimum najwyższego zakresu pomiarowego to zostaje ustawiona wartość Over_pos = 1, co powoduje zapalenie czerwonej diody ostrzegawczej. W następnym kroku jest wykorzystywana (już niepotrzebna), pierwsza z komórek tablicy Mx(1…4) do obliczenia maksymalnej wartości dla mniejszego zakresu napięciowego. Tym razem jest używany współczynnik Volt_pos(1). Dalej, jest porównywana aktualnie zmierzona wartość napięcia Y(2), przeliczona zgodnie z aktualnym zakresem
47
PROJEKTY
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
Wykaz elementów Płytka analogowa Rezystory: (SMD 0805) P1…P6: 10 kV (potencjometr) R+*, R-: 0,2 V/5 W R1…R4, R41…R44: 200 V R5…R8, R21, R23…R25, R34, R35, R38, R49, R78: 9,1 kV R9…R12, R26…R29: 2,4 kV R13…R16, R30…R33: 750 V R17…R20, R36, R37, R39, R40, R47, R48, R76, R77: 47 kV R45, R46, R79: 1 kV R50…R53, R63…R65, R74, R75: 160 kV R54…R57, R66…R69: 44,2 kV R58…R61, R70…R73: 560 kV R80…R82: 10 kV Kondensatory: C1, C2: 47 mF (elektrolit. lub tantalowy) C1A, C2A, C3, C4, C7…C20: 100 nF (SMD 0805) C5, C6: 47 mF (elektrolit. lub tantalowy) Półprzewodniki: D1…D4: BAT85 (SOD80) OPT1…OPT3: LTV357T T1: BC857 (SOT23) T2: BC847 (SOT23) T3…T5: IRF7106 (SO8) U1: 78L05 (TO-92) U2: 79L05 (TO-92) U3…U8: TL081 (SO8) Inne: GP1, GP2, Z: listwy goldpin Płytka cyfrowa Rezystory: PR6: 10 kV (potencjometr) P2: 10 kV (potencjometr) R1: 47 V (SMD 0805) R2…R4: 470 V (SMD 0805) Kondensatory: C1, C2: 22 pF (SMD 0805) C3…C12: 100 nF (SMD 0805) C10: 220 mF (elektrolit.) C13: 47 mF (elektrolit.) C14, C15: 10 mF (elektrolit.) Półprzewodniki: Br1: mostek prostowniczy 1 A/50 V D1, D2; dioda LED U1: ATmega8 (TQFP32) U2: TL431 (TO-92) U3: 7805 (TO-220) Inne: GP1, GP2: listwa goldpin L1: „10 mH dławik S1, S2: przyciski W1: wyświetlacz LCD 16×2 X1: rezonator kwarcowy 16 MHz Z: złącze śrubowe ARK2 napięciowym volt_pos_z, z wartością maksymalną Mx(1) i na podstawie tego program określa aktualny zakres pomiarowy. Analogicznie ustalane są zakresy dla prądu i napięcia po stronie ujemnej połówki zasilania. Po czym wywoływana jest procedura Zakresy, która ustawia odpowiednie poziomy linii sterujących zakresami miernika. Dalej program zajmuje się formatowaniem wyniku pomiaru przed wyświetleniem oraz wykonywaniem niezbędnych obliczeń mocy i rezystancji obciążenia. Procedura wygląda na skomplikowaną,
48
Rysunek 8. Obwody pomiaru prądu i napięcia Listing 1. Współczynniki przeliczeniowe Curr_pos(4) Curr_pos(3) Curr_pos(2) Curr_pos(1) Curr_neg(4) Curr_neg(3) Curr_neg(2) Curr_neg(1) Volt_pos(1) Volt_pos(2) Volt_neg(1) Volt_neg(2)
= = = = = = = = = = = =
4.6497252747 3.6080586081 1.3163919414 0.2747252747 4.6497252747 3.6080586081 1.3163919414 0.2747252747 0.0112500000 0.0429242081 0.0112500000 0.0429242081
jednak pozwala na automatyczne wyrażenie wyniku w jednostkach podstawowych lub podwielokrotnościach, w zależności od wartości mierzonej. Po zaprogramowaniu mikrokontrolera ważne jest jeszcze ustawienie jego bitów konfiguracyjnych, zgodnie z rysunkiem 7.
Kalibracja i pomiary Program w mikrokontrolerze nie będzie działał prawidłowo bez współczynników służących do obliczeń. Wszystkie współczynniki używane w programie obsługi multimetru zamieszczono na listingu 1. Curr_pos i Curr_neg pozwalają na przeliczenie wartości liczbowej z przetwornika A/C na prąd wyrażony w miliamperach, natomiast współczynniki napięciowe Volt_ pos i Volt_neg odpowiadają za zamianę liczby z A/C na napięcie wyrażone w woltach. W przypadku pomiaru prądu występują 4 współczynniki (dla pomiaru po „dodatniej” stronie) odpowiadające zakresom pomiarowym. W przypadku pomiaru napięcia występują dwa zakresy pomiarowe i dwa współczynniki. W rezultacie otrzymuje się układy, które w uproszczeniu są pokazane na rysunku 8 (a – pomiar prądu, b – pomiar napięcia). Pomiar prądu jest wykonywany przez pomiar spadku napięcia na rezystorze pomiarowym. Układ miernika zapewnia, że napięcie UR jest takie samo, jak na rezystorze pomiarowym. Napięcie UP jest mierzone przez przetwornik i odpowiednio wyższe, zależnie od ustawień kluczy tranzystorowych S1 i S2: UP = K×UR, gdzie K jest wzmocnieniem układu i zależy od zakresu pomiarowego. W najmniejszym zakresie, gdy S1 i S2 są rozwarte, K=R1/R0. Gdy S2 jest zwarte to pracujemy w drugim zakresie i wtedy K=(R1||R2)/ R0 (R1 zastępuje się połączeniem równo-
ległym odpowiednich rezystorów). Napięcia UR i UP wyrażamy wzorami: UR=IP×R, UP=Vref/1024×X, gdzie IP jest prądem mierzonym, R jest rezystancją opornika pomiarowego, Vref jest napięciem referencyjnym przetwornika A/C, a X jest wartością uzyskaną w trakcie pomiaru. W rezultacie: IP=1/K×1/R×Vref/1024×X, natomiast Curr_pos(i)=1/K×1/R×Vref/1024. Wstawiając wartość K dla pierwszego zakresu uzyskujemy Curr_pos(1)=0,2747252747. Układ pomiarowy po ujemnej połówce liczy się analogicznie i w najprostszym przypadku Curr_pos(i) = Curr_neg(i). Dla dzielnika napięcia sytuacja jest jeszcze mniej skomplikowana. Występuje tu zależność: Uz=A×UP, gdzie A=(R0+R1)/R1 dla mniejszego zakresu (S1 rozwarty). Dla większego zakresu R1 zastępuje się równoległym połączeniem R1 i R2. UP wyraża się analogicznie jak dla zakresu prądowego: UZ=A×Vref/1024×X. A zatem: Volt_pos(i)=A×Vref/1024. Dla ujemnego zakresu napięciowego wartość Volt_neg(i) jest obliczana analogicznie. W większości wypadków Volt_pos(i)=Volt_neg(i). Jeśli dysponujemy dokładnym miernikiem, możemy doświadczalnie wyznaczyć wartość oporu R (pozostałych rezystancji w dzielniku też) oraz dokładnie zmierzyć napięcie referencyjne przetwornika A/C. Współczynniki można wyliczyć wykorzystując arkusz kalkulacyjny dostępny w materiałach dodatkowych. Można również zająć się kalibracją przetwornika A/C znajdując, jaką zależnością wyraża się wartość liczbowa uzyskana z przetwornika w stosunku od napięcia na jego wejściu. W tym celu jest konieczne wykonanie serii pomiarów i dopasowanie krzywej teoretycznej da funkcję f(X), która w powyższych rozważaniach zastąpi czynnik Vref/1024*X. Współczynniki kalibracyjne będą wtedy zawierały jedynie informację o dzielnikach i rezystancji rezystora pomiarowego (w przypadku pomiaru prądu). Kalibracja przetworników jest tematem na osobny artykuł i wykracza poza ramy tego artykułu.
Mirosław Firlej elektronika@firlej.org http://mirley.firlej.org ELEKTRONIKA PRAKTYCZNA 9/2013
MINIPROJEKTY
Miniaturowy konwerter USB/UART z układem FT230XS Moduł jest uniwersalnym, miniaturowym konwerterem pośredniczącym w wymianie danych pomiędzy komputerem PC wyposażonym w port USB i dowolnym systemem cyfrowym wyposażonym w UART.
AVT 1775
Rysunek 1. Schemat ideowy konwertera Schemat elektryczny konwertera pokazano na rysunku 1. Konwersja USB<–>UART jest wykonywana przy użyciu układu typu FT230XS, który w swej strukturze zawiera praktycznie wszystkie niezbędne bloki funkcjonalne. Pochodzi on ze zminiaturyzowanej serii układów FTDI, w której to – w porównaniu z popularnym układem FT232RL – ograniczono jedynie liczbę sygnałów portu szeregowego. Dzięki niewielkim wymiarom możliwa była znaczna miniaturyzacja całego konwertera. Schemat montażowy konwertera pokazano na rysunku 2. Prawidłowo zmontowany moduł dołączony do portu USB komputera zostanie wykryty przez system jako FT230 USB UART, następnie nastąpi instalacja ste-
Rysunek 3. Zastosowanie konwertera
Rysunek 2. Schemat montażowy konwertera rowników urządzenia. Należy wykorzystać sterowniki dostarczane bezpłatnie przez firmę FTDI (producenta układu FT230X): http://goo.gl/WGlcf8. Schemat blokowy, ilustrujący zastosowanie konwertera podczas pracy z dowolnym systemem cyfrowym wyposażonym w UART pokazano na rysunku 3.
EB
W ofercie AVT* AVT-1775 A AVT-1775 B AVT-1775 C Podstawowe informacje: • Scalony konwerter USB<->UART (FT230X). • Interfejs TTL zgodny ze standardowym UART (linie Tx i Rx). • Współpraca z systemami cyfrowymi zasilanymi napięciem 3,3 V. • Prędkość transmisji danych: 300 bd…3 Mbd, 512 B bufora Rx/512 B bufora Tx. • Obsługa ramek 7/8 bitów danych, 1/2 bity stopu, znacznik parzystości lub jego brak. • Dwukierunkowa, asynchroniczna transmisja danych. • Zgodność z UHCI/OHCI/EHCI. • Współpraca z interfejsami USB 1.1 i USB 2.0 (w trybie Full Speed – 12 Mb/s). • Możliwość określania i przechowywania w pamięci EEPROM numerów USB VID, PID oraz numeru seryjnego. • Sterowniki dla Windows oraz MAC-OS i Linuksa. • Zasilanie: z portu USB. Wykaz elementów: R1, R2: 27 V (SMD 0805) C1, C2: 100 nF (SMD 0805) C3, C4: 47 pF (SMD 0805) U1: FT230XS J1: wtyk USB A do druku J2: listwa goldpin 1×4 Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5194 4-portowy konwerter USB na RS232 EP 7/2009 AVT-5150 Konwerter USB – RS232 EP 10/2008 AVT-5140 Konwerter USB-IO EP 7/2008 AVT-530 Konwerter USB na RS485 EP 5/2008 AVT-981 Konwerter USB-LPT EP 4/2007
* 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
http://goo.gl/fG9Hmh ELEKTRONIKA PRAKTYCZNA 9/2013
49
MINIPROJEKTY
Płytka uruchomieniowa z mikrokontrolerem Precision32 Prezentujemy projekt płytki uruchomieniowej z mikrokontrolerem z rodziny Precision32 firmy Silicon Labs opartym na rdzeniu ARM Cortex-M3. Płytka jest uzupełnieniem artykułów nt. mikrokontrolerów Precision32 publikowanych w EP w 2013 r. Niezwykle popularnymi w ostatnim czasie narzędziami, z których korzystają elektronicy, są niedrogie płytki uruchomieniowe z mikrokontrolerem. W ogólnym pojęciu płytka tego typu to konstrukcja zbudowana tylko z komponentów, które potrzebne są do zaprogramowania i poprawnego działania mikrokontrolera. Zgodnie z tą ideą na płytce, oprócz mikrokontrolera, zintegrowany jest obwód zasilania dla mikrokontrolera, obwód taktujący mikrokontroler, obwód generowania sygnału reset mikrokontrolera oraz rozszerzeniowe złącza sygnałowe, do których za pomocą ścieżek dołączono sygnały z wyprowadzeń mikrokontrolera. Dodatkowo, na płytce znajduje się programator/debuger lub złącze do dołączenia zewnętrznego programatora/debugera. Dzięki małej liczbie komponentów składowych płytka cechuje się ni-
ską ceną zakupu lub budowy, ale mimo tego stanowi ona kompletną platformę sprzętową pozwalającą na pracę z mikrokontrolerem. Prezentowana płytka uruchomieniowa jest przeznaczona dla mikrokontrolera z rodziny Precision32. Jej projekt powstał w oparciu o analizę dostępnych na stronie
Tabela 1. Specyfikacja mikrokontrolera SIM3U167-B-GQ Nazwa parametru Rdzeń Napięcie zasilania Częstotliwość taktowania Ilość pamięci FLASH Ilość pamięci SRAM Liczba portów I/O (wejścia/wyjścia) Peryferia licznikowe i czasowe Peryferia zasilania
Peryferia analogowe Interfejsy komunikacyjne Interfejs programowania/ debugowania Pozostałe zasoby Temperatura pracy Obudowa Liczba wyprowadzeń
50
Wartość ARM Cortex-M3 2,7…5,5 V (z włączonym regulatorem napięcia) 1,8…3,6 V (z wyłączonym regulatorem napięcia) do 80 MHz 256 kB 32 kB 65 Timer0, Timer1, Low Power Timer, Watchdog, RTC, PCA0, PCA1, EPCA0 Regulator napięcia, regulator napięcia zasilający układy peryferyjne (na zewnątrz mikrokontrolera), mechanizm Brown-out Detect/Reset, moduł monitorujący napięcie zasilania 2 przetworniki A/C (12-bitowe, 16 kanałów każdy), 2 komparatory, przetwornik pojemnościowo-cyfrowy (16 kanałów), przetwornik C/A (10-bitowy, 2 kanały), przetwornik prądowo-napięciowy, czujnik temperatury USB, 2×USART (IrDA, SmartCard), 2×UART, 3×SPI, 2×I2C, I2S, EMIF JTAG, SWD, ETM 6 wysokoprądowych (300 mA) linii I/O, moduł DMA, 12 linii z tolerancją napięcia 5 V, moduł obliczający CRC, moduł szyfrujący AES, wewnętrzne źródła zegarowe, mechanizm Crossbar od -40 oC do 85 oC TQFP80 (12×12 mm) 80
AVT 1772
internetowej firmy Silicon Labs materiałów: dokumentacji technicznej dla mikrokontrolerów Precision32 (datasheet, reference manual) oraz schematu elektrycznego płytki SiM3U1xx-B-DK z mikrokontrolerem z rodziny Precision32. Zastosowany na płytce mikrokontroler to model SIM3U167-B-GQ. Jego parametry techniczne przedstawiono w tabeli 1. Na płytce zamiast SIM3U167-B-GQ mogą zostać wlutowane inne modele z rodziny Precision32, kompatybilne sprzętowo (pin-to-pin) z SIM3U167-B-GQ. Są to następujące układy: SIM3U157-B-GQ, SIM3C167-B-GQ, SIM3C157-B-GQ. W porównaniu do SIM3U167-B-GQ, SIM3U157-B-GQ ma mniejszą pamięć Flash (128 kB), SIM3C167-B-GQ nie ma interfejsu USB, a SIM3C157-B-GQ łączy cechy pierwszego i drugiego. Schemat ideowy płytki uruchomieniowej pokazano na rysunku 1. Napięcie zasilania jest dostarczane z gniazda USB (X1). Ma ono wartość +5 V. Jest ono dołączone do dwóch wyprowadzeń mikrokontrolera: VBUS (poziom na tej linii sygnalizuje czy urządzenie USB jest dołączone do mikrokontrolera) i VREGIN (wejście dla zintegrowanego w mikrokontrolerze regulatora napięcia). Wewnątrz mikrokontrolera napięcie jest przetwarzane przez regulator z poziomu 5 V do wartości 3.3 V. Wyjściem regulatora jest wyprowadzenie VDD. Między ścieżkami połączonymi z wyprowadzeniami VBUS, VREGIN i VDD a masą umieszczone zostały po dwa kondensatory ceramiczne ELEKTRONIKA PRAKTYCZNA 9/2013
MINIPROJEKTY w celu filtrowania napięcia: jeden o pojemności 4,7 mF (C8, C15, C19) i jeden o pojemności 100 nF (C6, C14, C18). Napięcie 3,3 V jest doprowadzone do wszystkich wyprowadzeń zasilających mikrokontroler: VIOHD, VIO1, VIO2 i VIO3. Analogicznie rozprowadzona jest masa do wyprowadzeń 0 V: VSSHD, VSS1 i VSS2. Między potencjałami dodatnimi i masą umieszczono po dwa kondensatory ceramiczne – podobnie jak wcześniej – w celu filtrowania napięcia:
jeden o pojemności 1 mF (C17, C13, C11, C9) i jeden o pojemności 100 nF (C16, C4, C5, C7). Kolejnym fragmentem schematu elektrycznego jest obwód taktujący mikrokontroler. Przewidziane zostało miejsce na podłączenie do układu dwóch zewnętrznych rezonatorów kwarcowych. Ich obecność jest opcjonalna, gdyż taktowanie z maksymalną częstotliwością i możliwość działania wszystkich peryferiów mikrokontrolera można uzyskać wykorzystując wbudowane w układzie źródła zegarowe (należy jednak pamiętać, że mają one gorszą precyzję). Pierwszy kwarc generujący sygnał o częstotliwości 32,768 kHz (Q2) może zostać włączony między wyprowadzenia RTC1 (PB0.9)
i RTC2 (PB0.10). Drugi kwarc, generujący sygnał o częstotliwości 20 MHz (Q1), może zostać włączony między wyprowadzenia XTAL1 (PB0.15) i XTAL2 (PB1.0). Pomiędzy ścieżkami łączącymi kwarc Q2 z mikrokontrolerem znajduje się miejsce dla opornika o rezystancji 10 MV (R1). Pomiędzy każdą ze ścieżek a masą jest przewidziane miejsce na kondensator ceramiczny o pojemności 22 pF (C1, C2). Do programowania i debugowania mikrokontrolera jest używany interfejs JTAG. Tworzą go następujące sygnały: TDI (wejście danych), TDO (wyjście danych), TMS (wybór trybu pracy), TCK (sygnał zegarowy) oraz TRST (reset). W mikrokontrolerze SIM3U167-B-GQ przyporządkowane tym
Rysunek 1. Schemat elektryczny płytki z Precison32 ELEKTRONIKA PRAKTYCZNA 9/2013
51
MINIPROJEKTY sygnałom wyprowadzenia zostały połączone z gniazdem SV5. W standardzie JTAG przypisano sygnały do odpowiednich miejsc w gnieździe sygnałowym. Przypisanie jest następujące: sygnał TMS – pin nr 2, TCK – 4, TDO – 6, TDI – 8, TRST – 10. Ponadto piny 3, 5 i 7 muszą być połączone z masą, a pin 1 z napięciem zasilania. Zgodnie z tą regułą połączono piny gniazda SV5 do zasilania, masy i interfejsu JTAG mikrokontrolera. Obwód zerowania mikrokontrolera składa się on z trzech elementów: przycisku S1, opornika o rezystancji 1,5 kV (R2) i kondensatora ceramicznego o pojemności 100 nF (C3). Przycisk włączono pomiędzy linię RESET i masę. Wciśnięcie przycisku powoduje wyzerowanie doprowadzenia RESET, co skutkuje restartem mikrokontrolera. Opornik jest włączony między linią RESET i napięciem zasilania. Ustala on na linii RESET poziom wysoki. Kondensator umieszczono między linią RESET i masą. Niweluje on efekt wielokrotnych zmian stanu sygnału będących efektem drgania styków przycisku w trakcie jego naciskania i zwalniania. W celu sygnalizacji obecności napięcia zasilania zastosowano diodę LED (LED1). Jest ona włączona pomiędzy +5 V a masą, dzięki czemu po podłączeniu zasilania dioda będzie informować o jego obecności poprzez świecenie. W szereg z diodą włączono opornik 100 V (R3) w celu ograniczenia wartości prądu płynącego przez diodę LED. Aby do mikrokontrolera można było w wygodny sposób dołączać układy, systemy lub urządzenia dodatkowe, każde wyprowadzenie układu zostało połączone z odpowiadającym mu pinem jednej z czterech list kołkowych (SV1, SV2, SV3, SV4). Wspomniane już gniazdo USB nie pełni tylko roli gniazda zasilania. Oprócz napięcia 5 V i masy doprowadzone są do niego również linie D+ i D- z mikrokontrolera. Dzięki temu po dołączeniu przewodu USB z jednej strony do gniazda płytki, a z drugiej do gniazda urządzenia zewnętrznego, poprzez
tenże przewód można realizować transmisję danych zgodnie ze standardem USB. Kondensatory ceramiczne o pojemności 100 nF (C10, C12) dołączone do wyprowadzeń PB0.12 i PB0.13 pełnią rolę filtru: pierwszy na wyjściu regulatora napięcia pozwalającego zasilać układy peryferyjne mikrokontrolera, drugi na wyjściu przetwornika C/A. Schemat montażowy płytki z Precision32 pokazano na rysunku 2. W centralnej części płytki umieszczono mikrokontroler. Wszystkie kondensatory ceramiczne filtrujące zasilanie umieszczono możliwie blisko wyprowadzeń zasilających mikrokontrolera. Pozostałe elementy – gniazdo USB, obwód taktujący, złącze do programowania/debugowania i obwód zerowania umieszczono na skraju jednej ze stron płytki. Płytka ma wymiary 75 mm×66 mm. Montaż płytki należy rozpocząć od przylutowania mikrokontrolera. Jego obudowa to TQFP80 z rastrem 0,5 mm, dzięki czemu układ można w łatwy sposób przylutować korzystając ze standardowych narzędzi montażowych: pęsety do precyzyjnego ułożenia mikrokontrolera na płytce oraz lutownicy (lub stacji lutowniczej) do połączenia cyną wyprowadzeń mikrokontrolera ze ścieżkami płytki.Po przylutowaniu mikrokontrolera można przystąpić do montażu kolejnych podzespołów. Należy zacząć od najmniejszych komponentów, a więc elementów SMD – kondensatorów ceramicznych, diody LED oraz rezystorów. Następnie można przystąpić do przytwierdzenia większych elementów powierzchniowych – gniazda USB, kwarców oraz gniazda do programowania/ debugowania.
Precision32 – jeden układ, wiele możliwości
Konstrukcja przedstawionej płytki dobrze obrazuje jedną z zalet mikrokontrolerów z rodziny Precision32, która jest jednocześnie cechą wyróżniającą te układy na rynku. Próżno wśród produktów film konkurencyjnych szukać mikrokontrolerów, w których zintegrowanych zostało łącznie tyle niestandardowych peryferiów. Dzięki temu możliwe jest uproszczenie wielu aplikacji poprzez zastosowanie mikrokontrolera z rodziny Precision32 zamiast użycia innego mikrokontrolera połączonego z pewną liczbą dodatkowych układów. Pozwala to zmniejszyć pobór prądu, koszt i gabaryty urządzenia. Zauważmy, że: Na płytce brak jest układu scalonego będącego regulatorem napięcia. Dzięki wbuRysunek 2. Schemat montażowy płytki z Precision32
52
W ofercie AVT* AVT-1772 A Wykaz elementów: R1: 1 MV (SMD 0805) R2: 1, kV (SMD 0805) R3: 100 V (SMD 0805) C1, C2: 22 pF (SMD 0805) C3 … C7, C10, C12, C14, C16, C18: 100 nF (SMD 0805) C9, C11, C13, C17: 1 mF (SMD 0805) C8, C15, C19: 4,7 mF (SMD 0805) IC1: SIM3U167-B-GQ LED1: dioda LED (0805) Q1: 20.000 MHz SMD Q2: 32,768 kHz SMD SV1…SV4: listwa kołkowa 1×20 pin THT, raster 2,54 mm SV5: listwa kołkowa 2×5 pin SMD, raster 1.27 mm X1: gniazdo USB mini SMD Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5311 AVT-1620 AVT-5288 AVT-5275 AVT-5175 AVT-2875 AVT-971 AVT-939 AVT-920 AVT-992
ZEAVR – Płytka ewaluacyjna dla mikrokontrolerów Atmega8 i Atmega32 EP 9/2011 Cortexino - Kompatybilna z Arduino płytka z LPC1114 EP 5/2011 Zestaw ewal. Dla FPGA EP 4/2011 ZEPIC - Zestaw ewaluacyjny dla mikrokontrolerów PIC EP 2/2011 SARGE – jednoukładowy komputer 32-bitowy EP 2/2009 LogicMaster – płytka prototypowa dla CPLD EdW 8/2008 Zestaw uruchomieniowy USB z PIC18F4550 EP 2-3/2007 Zestaw startowy dla mikrokontekstów ST7FLITE2x EP 7-8/2006 Zestaw startowy z MSP430F413 EP 2-3/2006 Zestaw uruchomieniowy dla procesorów rodzin AVR i `51 EP 1/2001
* 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
dowanemu w mikrokontroler regulatorowi napięcia VREG0 układ można zasilać bezpośrednio z gniazda USB napięciem o wartości 5 V. Alternatywne, w przypadku braku zasilania z gniazda USB mikrokontroler można zasilać bezpośrednio napięciem z zakresu 1.8...3.6 V (w tym przypadku wbudowany regulatora napięcia jest wyłączony). Na płytce nie muszą zostać wlutowane kwarce. Wbudowane w mikrokontroler źródła sygnałów zegarowych zapewniają pełną funkcjonalność mikrokontrolera (układ może pracować z maksymalną częstotliwością i może korzystać z każdego ze zintegrowanych peryferiów – włącznie z zegarem ELEKTRONIKA PRAKTYCZNA 9/2013
MINIPROJEKTY czasu rzeczywistego i interfejsem komunikacyjnym USB). Pozwala to na wyeliminowanie kwarców zewnętrznych. Na płytce sygnały z gniazda USB są bezpośrednio podłączone do wyprowadzeń mikrokontrolera. Kompletny interfejs USB 2.0 Full Speed (PHY, obwód terminujący, rezystor dołączony do linii USB D+) eliminuje potrzebę dołączenia do mikrokontrolera jakichkolwiek komponentów, potrzebnych do komunikacji USB. Dodatkowo w niektórych aplikacjach docelowych użytkownik może wykorzystać inne zasoby wewnętrzne mikrokontrolera,
które w przypadku zastosowania innych mikrokontrolerów przeważnie musiałyby mieć postać oddzielnych układów scalonych: Regulator napięcia EXTVREG0 pozwala wyeliminować zewnętrzny regulator napięcia i zasilać zewnętrzne układy scalone bezpośrednio z mikrokontrolera (możliwe jest ustawienie napięcia wyjściowego o wartości z przedziału 1.8...3.6 V z krokiem 100 mV, wydajność prądowa regulatora wynosi 1 A). 6 wysokoprądowych linii I/O (każda o maksymalnej wartości prądu wyjściowego 300 mA) pozwala na bezpośrednie sterowanie z mikrokontrolera np. diod LED dużej
mocy, buzzerów itp., eliminując potrzebę stosowania zewnętrznych tranzystorów sterujących. Przetwornik pojemnościowo-cyfrowy pozwala na bezpośredni odczyt przez mikrokontroler stanów przycisków pojemnościowych, eliminując konieczność stosowania zewnętrznego kontrolera lub przycisków mechanicznych.
Szymon Panecki Wydział Elektroniki Politechnika Wrocławska
[email protected]
Xbee Mini – łączność bezprzewodowa Układy FTDI przeniosły komunikację szeregową z portów RS na USB, natomiast moduły Digi uwalniają komunikację od kabli i przenoszą ją na fale radiowe. Oferta firmy Digi w zakresie modułów komunikacji bezprzewodowej stale się rozszerza, dostępne są moduły OEM, uwalniające projektanta od konieczności żmudnego projektowania części radiowej i aplikacji wybranego protokołu komunikacyjnego, co znacząco skraca czas opracowania projektu. Xbee, ZigBee oraz najnowszy Wi-Fi dają wybór w sposobie realizacji transmisji bezprzewodowej. W zależności od wersji modułu, możliwa jest komunikacja na odległość od kilku metrów do kilku kilometrów. Moduły Xbee i Zigbee, oprócz realizacji łączności punkt-punkt, umożliwiają budowę złożonej, wielopunktowej sieci radiowej wraz z całą infrastrukturą komunikacyjną, taką jak routery, koordynatory itp. Wszystkie moduły radiowe mają identyczny rozkład wyprowadzeń, co zdecydowanie ułatwia rozbudowę
lub zmianę standardu komunikacji bez przeprojektowywanie urządzenia. Wyprowadzenia i konstrukcja mechaniczna stała się nieformalnym standardem i dostępne są także moduły innych producentów zgodne mechanicznie np. bardzo popularny HC06 z interfejsem Bluetooth oraz zamienniki modułów Digi uproszczonych funkcjonalnie i nieco tańszych firmy Maxstream. W zależności od oczekiwanego zasięgu komunikacji w ofercie Digi dostępne są moduły serii Pro o zwiększonej mocy nadajnika. Każdy z modułów produkowany z możliwością wyboru typu anteny, od wbudowanej (drutowej lub paskowej bardzo wygodnej w zastosowaniach, ale o najmniejszym zasięgu i narzucającej pewne ograniczenia na konstrukcję urządzenia) po zewnętrzne z dostępnymi kilkoma rodzajami typowych złącz antenowych (UFl, RPSMA). Możliwy w zależności od warunków środowiskowych jest też dobór pasma radiowego: 868MHz, 900MHz, 2.4GHz. Większość z modułów ma wbudowane i konfigurowane wejścia/wyjścia analogowe oraz cyfrowe umożliwiające budowanie sieci monitoringu bez dodatkowego sprzętu. Aby ułatwić zastosowanie z modułów Digi opracowano niewielki interfejs sprzętowy, którego schemat pokazano na rysunku 1. Moduły ze względu na rozstaw wyprowadzeń w rastrze 2mm są nieco uciążliwe przy szybkim prototypowaniu układów, nie nadają się niestety ani Rysunek 1. Schemat ideowy płytki XBee Mini ELEKTRONIKA PRAKTYCZNA 9/2013
AVT 1773 do płytek prototypowych, ani stykowych, lutowanie przewodów do delikatnych złącz modułu także nie jest najlepszym rozwiązaniem. Lepiej wydać te kilka PLN i zastosować przejściówkę Xbee_Mini, a przy okazji uchronić drogi moduł przed przypadkowym uszkodzeniem. Zaprojektowana płytka ma złącza dla modułów Digi o rozstawie 2 mm, umożliwia stosowanie nieco większych gabarytami wersji Pro o zwiększonej mocy wyjściowej. Wszystkie wyprowadzenia modułów są dołą-
Rysunek 2. Schemat montażowy płytki XBee Mini
53
MINIPROJEKTY czone do złącz J1/J2 już w typowym rastrze 100 mils, o rozstawie 600 mils, umożliwiających wykorzystanie płytek prototypowych. Kondensatory C1, CE2 filtrują zasilanie modułu, dioda LD1 sygnalizuje obecność zasilania, przycisk RES umożliwia restart procesora modułu, dioda RSSI domyślnie wskazuje „moc” sygnału radiowego (o ile nie zmieniona została konfiguracja modułu). Złącze RS umożliwia wykorzystanie podstawowej funkcji modułu jaką jest radiowy „most” w standardzie portu szeregowego. Do złącza RS doprowadzone są sygnały DOUT/ DIN (TXD/RXD) oraz zasilanie. Uwaga: moduły zasilane są napięciem 3,3 V i w takim standardzie muszę być sygnały RXD/TXD. Dla ułatwienia aplikacji istnieje możliwość przełączenia sygnałów RXD/TXD (poziome lub pionowe położenie zwór CF), aby nie było konieczne niewygodne krzyżowanie przewodów kabla SIP4. Fabrycznie moduł Xbee skonfigurowany jest do transmisji szeregowej 9600, 8, N, 1. Zestawienie dwóch modułów umożliwia bezpośrednią transmisję radiową pomiędzy dwoma urządzeniami. Podczas zakupu modułów należy zwrócić uwagę, że moduły Xbee dostępne są z różnym oprogramowaniem: tzw. seria 1 umożliwiająca tylko i wyłącznie zestawienie łącza punkt-punkt, bez braku późniejszej możliwości zmiany na wersję „sieciową” oraz seria 2 umożliwiająca realizację dowolnej topologii sieci. Niestety, nie jest możliwa współpraca modułów serii 1 i 2 nawet podczas realizacji transmisji punkt-punkt. Oczywiście moduły serii 1 są
tańsze i w większości zastosowań wystarczające. Interfejs Xbee_Mini zmontowany jest na dwustronnej płytce drukowanej, rozmieszczenie elementów przedstawia rysunek 2. Montaż złączy J1/2 zależy od zastosowania modułu, przy realizacji tylko funkcji komunikacji można je pominąć i poprzestać na złączu RS. Moduły XBee są fabrycznie skonfigurowane do transmisji szeregowej 9600, 8, N, 1. Wystarczy tylko dołączyć zasilanie i interfejs RXD/TXD, aby zestawić łącze szeregowe. Dla szybkiego sprawdzenie poprawności działania wystarczą dwa konwertery USB/RS232 3,3V lub np. karta Multiport opisywana w EP1/12 oraz program Terminal. Po inicjacji połączeń powinna być możliwa transmisja pomiędzy modułami. Jeżeli moduły były już wcześniej przekonfigurowane lub chcemy zapoznać się z wszystkimi ich funkcjami, jest koniecznie pobranie ze strony http:// www.digi.com/ oprogramowania XTCU. Umożliwia ono min. upgrade wewnętrznego oprogramowania modułu oraz szczegółową konfigurację modułów Xbee. Niestety, w tym momencie konieczna jest szczegółowa analiza pod kątem własnych zastosowań, dostarczonej do modułu dokumentacji, oczywiście znacznie wykraczająca poza ramy artykułu. Polecam także książkę: „Building_Wireless_Sensor_Networks” Roberta Faludi wyd. O’Reilly, w której „łopatologicznie” opisane jest wykorzystanie modułów Xbee na przykładach przy współpracy z Arduino pozwala to na w miarę bezbolesne zapoznanie się z ich możliwościa-
W ofercie AVT* AVT-1773 A Wykaz elementów: R1, R2: 470 V (SMD 0805) C1: 0,1 mF (SMD 0805) CE1: 22 mF/6 V (SMD „B”) CF: złącze IDC4 2,54 mm+ zwory J1, J2: złącze SIP10 2,54 mm (w zależności od zastosowań) LD1, LD2: dioda LED SMD RES: mikroprzycisk 6×3 mm RM: złącza żeńskie SIP10 2 mm RS: złącze EH 4 pin Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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-5332 ZigT system kontrolno-pomiarowy pracujący z użyciem łączności ZigBee EP 3/2012 AVT-5313 IntelliDom – System sterowania inteligentnego budynku z interfejsem ZigBee EP 10-11/2011 * 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
mi i sposobem wykorzystania we własnych urządzeniach.
Adam Tatuś, EP
LiPo PWR – mikroprzetwornica 3 V/5 V@500 mA Akumulatory Li-Po coraz częściej stają się podstawowym źródłem zasilania, zastępując inne chemiczne źródła energii. Przestawiona przetwornica umożliwia wykorzystanie ogniwa Li-Po do zasilania układów 5 V (np. w modelarstwie). Schemat układu pokazano na rysunku 1. Jej sercem jest specjalizowany układ scalony U1 typu TPS61202 zawierający w swej strukturze przetwornicę podwyższająco-obniżającą o sprawności przekraczającej 90% (dla Uwe>3 V), klucz odcinający obciążenie przy wyłączonej przetwornicy, układ zabezpieczeń przeciwzwarciowych, termicznych i nadnapięciowych. Przetwornica jest zasilana z ogniwa Li-Po poprzez typowe gniazdo EH4. Wyłącznik
54
AVT 1771
Rysunek 1. Schemat ideowy przetwornicy ELEKTRONIKA PRAKTYCZNA 9/2013
MINIPROJEKTY
W ofercie AVT* AVT-1771 A Wykaz elementów: R1: 270 kV (SMD 0805) R2: 2,7 MV (SMD 0805) R3: 2,2 kV (SMD 0805) C1, C3: 10 mF (SMD 0805) C2: 0,1 mF (SMD 0805) U1: TPS61202DCRT (SON10) LD1: dioda LED SMD BAT: złącze EH4 DC5V: złącze ARK2/200 L1: 2, 2 mH/0,5 A (dławik np. DLJ4018) PWR: przełącznik MSS-2235 Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • 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
Rysunek 2. Schemat montażowy przetwornicy PWR umożliwia wyłączenie przetwornicy na czas manipulacji w zasilanym układzie, natomiast dioda LD1 sygnalizuje obecność +5 V. Napięcie wyjściowe jest dostępne na gniazdach ARK-DC5V oraz złączach SIL 5 V/ GND ułatwiających stosowanie w płytkach prototypowych. Kondensatory C1, C2, C3 odsprzęgają, odpowiednio: bateryjne, wewnętrzne i wyjściowe napięcia układu. Rezystory R1, R2 są dzielnikiem układu komparatora zabezpieczenia podnapięciowego. Próg dla wyłączenia przetwornicy ustalono na 250 mV z histerezą 100 mV dla ponownego załączenia. Zalecana wartość R1 to około 250 kV, wartość R2 można obliczyć ze wzoru R2=R1((Vinmin / Vlvo) -1), gdzie Vlvo =250+/-15 [mV] W modelu rzeczywiste wartości wynoszą 3,85 V/2,75 V, próg można oczywiście dosto-
sować do własnych potrzeb, jeżeli wykorzystujemy do zasilania przetwornicy 2 lub 3 akumulatory NIMH lub baterie R6. Układ zmontowano na niewielkiej jednostronnej płytce drukowanej. Jej schemat montażowy pokazano na rysunku 2. Montaż układu nie wymaga opisu, zastosowany układ U1 ma obudowę SON z wkładką radiatorową, należy zwrócić uwagę na poprawne przylutowanie wkładki do masy układu. Prawidłowo zmontowany układ nie wymaga uruchamiania. Warto sprawdzić jedynie zgodność progu wyłączenia z obliczonym, gdyż wewnętrzne odniesienie Ulvo dla komparatora ma spory rozrzut. Uwaga: podczas użytkowania ogniwa Li-Po należy zachować odpowiednie warunki eksploatacji: zabezpieczyć ogniwo przed uszkodzeniem mechanicznym, zwarciem, przeciążeniem, przeładowaniem, przegrzaniem – w żadnym przypadku nie demontować wbudowanego układu nadzorującego ogniwo. Nieprzestrzeganie warunków bezpiecznej eksploatacji może spowodować eksplozję ogniwa i pożar oraz zagrożenia dla zdrowia użytkownika.
Adam Tatuś, EP
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2013
55
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 (3) Na wstępnie kolejnej części opisu mojego amplitunera chciałbym rozwinąć temat czy tak skomplikowany układ warto budować samodzielnie. Myślę, że są pewne przesłanki do zajęcia się takim tematem. W sklepach RTV można znaleźć różne amplitunery do kina domowego, jednak niektórych cech funkcjonalnych mojej konstrukcji nie znajdziemy u żadnego producenta sprzętu RTV.
Żaden ze znanych mi amplitunerów nie ma funkcji nagrywania plików dźwiękowych na kartach SD/SDHC. Samo nagrywanie, chociaż trudne do zrealizowania, nie byłoby wiele warte, gdyby nie funkcja „time shift” pozwalająca nagrać usłyszany utwór zawsze od początku. Moja konstrukcja amplitunera miała również potwierdzić (lub temu zaprzeczyć) wyższość przetwarzania cyfrowego sygnałów audio nad przetwarzaniem analogowym. Testy odsłuchowe wykazały zdecydowaną przewagę przetwarzania cyfrowego. Zbudowany amplituner, wyposażony w dekoder DD/DTS poradzi sobie praktycznie z każdym dźwiękiem wielokanałowym przesyłanym transmisją SPDIF (formaty dźwię-
ku 7.1 przesyłane są obecnie interfejsem HDMI). Funkcjonalność mojego ampli tunera nieco jest zubożona wskutek braku wejść HDMI. Sama płytka drukowana pozwala także zmontować ampli tuner z wejściem STEREO SPDIF (z odbiornikiem DIR9001). Główne elementy elektroniczne amplitunera AMPL-008 zostały umieszczone na dwuwarstwowej płytce drukowanej o wymiarach 262 mm×180 mm. Na płytce tej (głównej) znajdują się zarówno układy analogowe, cyfrowo-analogowe, jak i cyfrowe. Wszystkie typy układów mają wspólną masę (GND). Nie rozdzieliłem masy cyfrowej od analogowej (co być może jest błędem). Na płytce głównej znajdują się także stabiliza-
Dodatkowe materiały na CD/FTP: ftp://ep.com.pl, user: 41650, pass: 742qofb6 • pierwsza i druga część artykułu
tory napięcia (+3,3 V, +5 V, +9 V, +12 V). Postanowiłem nie wprowadzać żadnego napięcia ujemnego (zwykle zwarcie sygnałów cyfrowych z napięciem ujemnym uszkadza układy cyfrowe). Wzmacniacze operacyjne zamontowane na płytce głównej są zasilane pojedynczym napięciem +9 V. Takie zasilanie wzmacniaczy operacyjnych wymagało, aby punktem odniesienia dla sygnałów audio było napięcie referencyjne VREF. Napięcie to jest równe składowej stałej (typowo 3,8 V) występującej na wyjściach układu TDA7461 (U2). Napięcie występujące na jego nóżkach 27 i 28 jest filtrowane przez kondensatory CE16 i CE17 i doprowadzone na wejście wzmacniacza operacyjnego U47D. Na jego wyjściu pojawia się stabilne napięcie odniesienia VREF równe około 3.8 V. Napięcie +5 V zasila zarówno bloki cyfrowe jak i analogowe. Dlatego zostało rozdzielone filtrami LC na napięcia: VP5V, VP5X, VCCA.
Rysunek 1. Schemat zasilacza amplitunera AMPL-008
56
ELEKTRONIKA PRAKTYCZNA 9/2013
Amplituner do kina domowego AMPL-008 (A-B) z komputera. System Windows przy pierwszym podłączeniu tego układu poprosi o wskazanie sterowników. Sterowniki można pobrać ze strony www.ftdichip.com. Należy zainstalować sterowniki FTDI-D2XX. Najlepiej wlutować zieloną diodę LD1 i czerwoną LD2. Wtedy podczas odczytu danych będzie zapalać się zielona dioda LED, a podczas zapisu czerwona. Po uruchomieniu układu FT232RL można wlutować procesor LPC2387 (U8) i układ MAX705CSA (U11). Procesor ten występuje w obudowie TQFP100 o rozstawie nóżek równym 0,5 mm. Wlutowanie tego typu układów wymaga pewnej wprawy i doświadczenia, ale jest możliwe do wykoRysunek 2. Okno programu „Flash Magic” nania w warunkach amatorskich. Procesor potrzebuje sygnału zegara o częstotliwości 12,288 MHz. Należy przed pierwszymi próbami zaprogramowania procesora wlutować najpierw układ generatora typu MAX9485 (U18) wraz z jego elementami biernymi (między innymi kwarc 27 MHz). Między zworką Z49 z wejściem Rysunek 3. Okno programu AMPL-008 po starcie procesora LPC2387 XTAL1 procesora należy (przecinając jedną ze ścieżek na Napięcie +3.3 V na schemacie występudruku) wlutować dzielnik pojemnościowy je pod nazwą VCC. Napięcie +12 V zasila złożony z dwóch kondensatorów 100 pF układ scalony TPA6120A2(U81) oraz blok w obudowach 0805. Po włączeniu zasilania sterujący układu scalonego TAS5611(U29). układ MAX9485 generuje na wyjściu CLK_ Montaż elementów płytki głównej naOUT1 sygnał o częstotliwości 8,192 MHz. leży rozpocząć od zmontowania stabiliElementów „wokół” bramek U9A i U9B nie zatorów: LM2676T(U24), LM3940(U24), należy montować. LM7809(U26) oraz LM7812(U27). StabiliJeśli stwierdzimy, że układ MAX9485 zator LM2676T jest stabilizatorem impulsodziała prawidłowo, możemy przystąpić do wym. Dławik LX5 powinien mieć indukcyjzaprogramowania procesora LPL2387. Układ ność 47 lub 68 mH. Rezystorami RZ1 i RZ2 FT232RL pozwala na zaprogramowanie mimożna „dostroić” poziom napięcia wyjściokrokontrolera, jeśli są założone są zworki wego na około +5,25 V. Należy wlutować Z13 i Z20 oraz zworki ZVD1…AVD4 zwiezworkę ZZ łączącą masę zasilacza GNDZ rają piny 1 i 2. Do programowania procesora z masą normalną GND. Zasilanie płytki naLPC2387 należy użyć programu Flash Magic leży doprowadzić na złącze JZ1. Na skrajne (rysunek 2). Można go pobrać ze strony propiny (1 i 4) należy podać +24 V (od 20 V ducenta (NXP). Po uruchomieniu programu do 28 V), a na środkowe piny (2 i 3) potennależy wybrać typ procesora – LPC2387, port cjał masy. Do zasilania można użyć zasilacz COM zgodnie z numerem interfejsu, na któwłasnej konstrukcji. Na rysunku 1 pokazano rym zainstalował się wirtualny port układu schemat zasilacza zastosowanego w prototyFT232RL (najlepiej ustawić w Menadżerze pie. Urządzeń numer tego portu na 7), ustawić Po uruchomieniu stabilizatorów możBaud Rate na 230400, interfejs ustawić na na zamontować układ U12 typu FT232RL None(ISP), oscylator na 12,288 MHz. Naoraz elementy bierne bezpośrednio z nim leży zaznaczyć bloki do kasowania od 1 do związane. Jest to konwerter USB-RS232. Do 11. Używając przycisku Browse… należy gniazda J11 można podłączyć kabel USB ELEKTRONIKA PRAKTYCZNA 9/2013
wczytać plik *.hex (prawdopodobnie na stronach EP będzie on nazywać się AMPL-008. hex). Po naciśnięciu przycisku Start program Flash Magic wykonuje najpierw kasowanie wybranych bloków, następnie przeprowadza programowanie pamięci Flash procesora, a następnie przeprowadzana jest weryfikacja zaprogramowanej zawartości. Program Flash Magic (wersja 6.50.264), zapamiętuje swoje ustawienia przy kolejnych uruchomieniach. Procesor po zaprogramowaniu komunikuje się przez kanał UART (poprzez USB) z komputerem. Do komunikacji można użyć dowolny terminal obsługujący RS232 (Baund Rate 115200, 8 bitów, no parity, 1 bit stopu). Najlepiej jednak użyć mojego programu AMPL-008.exe (rysunek 3). Program ten poza funkcją terminala RS-232 ma wiele innych przydatnych funkcji. Program AMPL-008. exe został napisany na stałe do obsługi portu COM7, dlatego w systemie Windows należy w Menadżerze Urządzeń ustawić numer wirtualnego portu (dla układu FT232RL) właśnie na 7. Główne cechy programu AMPL-008 to: – Obsługa „terminala” RS-232 (znaki z klawiatury komputera są traktowane tak samo jak z przycisków na elewacji tunera lub z pilota RC-5), – Obsługa wirtualnego wyświetlacza LCD 2×24 znaki, – Obsługa pamięci SD/SDHC (formatowanie, odczyt partycji, kopiowanie plików, mazanie plików), – Zapis/Odczyt wybranych sektorów na karcie SD/SDHC, – Konwersja plików *.pcm (pliki audio bez nagłówka) na format *.wav, – Możliwość odczytu/zapisu zawartości pamięci CMOS, – Możliwość odczytu/zapisu zawartości pamięci RAM. Po zaprogramowaniu procesora programem „Flash Magic” najlepiej uruchomić program „AMPL-008”. Po restarcie płytki AMPL008 w oknie „terminala” powinien pojawić się napis „HALLO…”. Na tym etapie prawdopodobnie pojawią się jeszcze dwie kolejne linie (CPRS=200000DF…). Procesor będzie REKLAMA
57
PROJEKT CZYTELNIKA próbował zaprogramować poprzez magistralę I2C różne układy scalone. Ponieważ niektórych nie znajdzie (nie będą jeszcze wlutowane) program się zawiesi. Po restarcie obsługa wirtualnego wyświetlacza jest zablokowana. Sterowanie wyświetlaniem jest sterowane przez wysyłanie znaku ‘E’ (ECHO). Kolejne wysyłanie znaków ‘E’ przełącza wyświetlanie znaków na wyświetlaczu LCD (L), w oknie terminala (E), w oknie wirtualnego wyświetlacza LCD (S). Stan wyświetlania jest widoczny w oknie terminala napisami: *S*, *SL*, *E*, *SEL*. Napis *SEL* oznacza, że znaki będą wyświetlane na wyświetlaczu LCD, w oknie terminala oraz w oknie wirtualnego wyświetlacza LCD. W następnej kolejności proponuję wlutować ekspandery I2C typu PCF8574A (U20 i U30). Warto także wlutować tranzystory TC1 i TC2 (BSS123), diody D7 i D8 (BAT254) oraz rezystory R167, R168, R174 i R175. Elementy te tworzą translator poziomów napięć na magistrali I2C z 3,3 V na 5 V i odwrotnie. Następnie proponuje wlutować układ TEA5768HL (U1) spełniający funkcję odbiornika radiowego. Dla prototypu udało mi się kupić dławiki 33 i 120 mH w obudowach 0805. Największym wyzwaniem będzie zdobycie diod pojemnościowych DV1 i DV2 typu BB202. W prototypie zastosowałem diody typu BB134. Rezonator kwarcowy Q2 powinien mieć częstotliwość 13 MHz. Na płytce drukowanej jest miejsce pod rezonator „zegarkowy”. Próby uruchomienia układu radioodbiornika z kwarcem „zegarkowym” nie powiodły się. Dlatego zastosowałem miniaturowy rezonator kwarcowy (stosowany w niektórych telefonach komórkowych) o częstotliwości 13 MHz. Jako następny układ do wlutowania proponuję wybrać WM8770 (U5). Jest to układ cyfrowo-analogowy. Na początku można wlutować tylko elementy związane z wejściami analogowymi AIN1L/R, AIN2L/R oraz AIN8L/R. Układ ten posiada szereg wejść i wyjść cyfrowych doprowadzonych do układu EPM3064ACT100 (U10). Dlatego warto go w tym momencie również wlutować. Układ EPM3064ACT100 wymaga zaprogramowania przez dowolny programator podłączony przez gniazdo JTAGEPM(J10). W moim projekcie większość wyjść cyfrowych jest wyprowadzona przez szeregowy rezystor o wartości 33 lub 56 V. Eliminuje to nieznacznie poziom generowanych zakłóceń elektromagnetycznych oraz zmniejsza prawdopodobieństwo pojawienia się odbić sygnałów na wejściu układu odbierającego dane. Niektóre wejścia mają szeregowy rezystor 82 V – tak na wszelki wypadek (na przykład aby nie uszkodzić wejścia w przypadku zwarcia linii do +5 V lub +9 V). Następnie należy wlutować układ TDA7461 (U2). W takim ukompletowaniu płytki oprogramowanie powinno „chodzić”. Pierwsze eksperymenty z ampli tunerem warto rozpocząć do urucho-
58
Rysunek 4. Okno programu „AMPL-008” w czasie pracy mienia obsługi karty SD/ SDHC. Należy wlutować podstawkę karty (JSD), układ scalony 74LVC86 (U7) oraz pamięć szeregową 23K256 (U14). Na tym etapie nie podłączyliśmy płytki elewacji, dlatego płytkę ampli tunera należy podłączyć przewodem USB z komputerem z systemem Windows i uruchomić program „AMPL-008”. Rysunek 5. Schemat dodatkowej płytki z odbiornikami Po restarcie procesora SPDIF typu TORX147PL w głównym oknie termi‘l’numer
– otwarcie katalogu nala powinno pojawić kilka linii (HALLO z pozycji ‘numer’ lub uruchomienie od.., CPSR=200000DF…) z podstawowymi twarzania pliku z takiej pozycji (np. l10) informacjami. Początkowo zawartość pana pendriv’ie, mięci CMOS (w strukturze procesora) za‘q’ – odczytanie jakości sygnału „FM”, wiera przypadkowe dane. Program „AMPL‘u’ – bezpośrednie sterowanie rejestrami 008” pozwala uruchomić różne funkcje. niektórych układów scalonych (TDA7461, Jak wspominałem wcześniej (przy braku SAA6588, STA310), wyświetlacza LCD) najpierw warto nacisnąć ‘t’ – testy modułu VDIP pilota i inne, 4 razy znak ‘E’. Naciśniecie znaku ‘m’ wywo‘U’ – bezpośrednie sterowanie rejestrami łuje „MENU”. Na początek możemy ustawić układu EPM3064, datę i czas. Oto kilka najważniejszych funk‘d’adres – wyświetlanie zawarcji możliwych do wykorzystania w progratości pamięci RAM (0000..FFFF), mie „AMPL-008”: ‘s’adres – modyfikacja komórek ‘m’ – wywołanie „MENU”, pamięci RAM, ‘f’ – ustawianie częstotliwości odbieranej ‘i’ – odczyt 48 sektorów karty SD/SDHC stacji (lub jej numer 1..9), do pamięci RAM począwszy od adresu ‘o’ – „otwarcie” (odczyt partycji) karty 0x2000, SD/SDHC, ‘I’ – odczyt 48 sektorów karty SD/SDHC ‘p’ – „otwarcie” pendriv’a, w trybie „Multi” do pamięci RAM począwszy ‘k’ – odczyt katalogu głównego od adresu 0x2000, na karcie SD/SDHC, ‘L’ – ustawienie numeru bieżącego sek‘k’numer – otwarcie katalogu tora, z pozycji ‘numer’ lub uruchomienie odtwa‘>’ – zmiana numeru aktualnego prograrzania pliku z takiej pozycji (np. k10) na karmu FM lub wejścia o 1 w górę, cie SD/SDHC, ‘<’ – zmiana numeru aktualnego progra‘l’ – odczyt katalogu głównego/ mu FM lub wejścia o 1 w dół, bieżącego na pendriv’ie, ELEKTRONIKA PRAKTYCZNA 9/2013
Amplituner do kina domowego AMPL-008 ‘+’ – głośniej lub przewiń w górę, ‘-’ – ciszej lub przewiń w dół, – „Play” w zatwierdzenie wyboru, – „Stop” lub wycofanie się z rozpoczętej akcji. Program „AMPL-008” ma wiele „przycisków” (rysunek 4). Poniżej opiszę niektóre z nich: „RD *.* –> BUF” – wczytanie do bufora w komputerze dowolnego pliku z dysku komputera, „WR BUF –> *.*” – zapis zawartości bufora w komputerze do dowolnego pliku na dysku komputera, „RD CMOS ‘” – odczyt zawartości pamięci CMOS procesora LPC2387 i umieszczenie odczytanych danych w buforze komputera, „WR CMOS !” – zapis danych z bufora komputera do pamięci CMOS procesora LPC2387, „RD BUFOR” – odczyt zawartości pamięci RAM procesora LPC2387 od adresu 0x2000 do 0xFFFF i umieszczenie odczytanych danych w buforze komputera, „WR BUFOR” – zapis danych z bufora komputera do pamięci RAM procesora LPC2387 od adresu 0x2000 do 0xFFFF, „RD RAM/F” – odczyt zawartości całej pamięci RAM procesora LPC2387 (od adresu 0 do 0xFFFF) i umieszczenie odczytanych danych w buforze komputera, „Read SEC” – odczyt sektorów z karty SD/SDHC bezpośrednio do wybranego pliku na dysku komputera (numer HEX sektora początkowego i końcowego należy wpisać w okienka nad tym przyciskiem), „Write SEC” – zapis sektorów na karcie SD/SDHC bezpośrednio z wybranego pliku z dysku komputera (numer HEX sektora początkowego należy wpisać w pierwsze okienko nad tym przyciskiem), „Ident PCC” – odczytanie parametrów karty SD/SDHC (otwarcie karty), „MD” – utworzenie nowego katalogu, „DEL” – zmazanie wybranego/wybranych plików. Podczas niektórych modyfikacji pamięci CMOS w pierwszą komórkę tej pamięci jest wpisywany ciąg 0x43 0x4D 0x4F 0x53 co przy listingi zbioru „CMOS.bin” daje na początku napis „CMOS”. Niektóre wartości przechowywane w pamięci CMOS mają kluczowe znaczenie dla poprawnego działania ampli tunera. Na początek proponuję ustawić balans głośników. Balans jest ustawiany relatywnie w stosunku do poziomu w lewym przednim kanale. Zakres nastaw balansu wynosi zwykle ±10 dB, niekiedy ±20 dB. Z „MENU” należy wybrać opcję „BALANS”. Pojawi się napis „Balans[1..5]R,C,Sw,Rs,Ls”. Odpowiedni głośnik wybieramy odpowiednią cyfrą. Właściwą wartość balansu ustawiamy znakami ‘+’ i ‘–‘. Kolejną ważną nastawą jest ustawienie dla poszczególnych wejść wzmocnienia ELEKTRONIKA PRAKTYCZNA 9/2013
dla przetwornika ADC w układzie WM8770. Z „MENU” należy wybrać opcję „ADCATT”. Nastawa „ADCATT” dotyczy zawsze aktualnego wejścia analogowego. Wejście analogowego radia ma numer ‘0’. Wejścia ‘1’, ‘2’ itd. to kolejne wejścia analogowe. Wejście numer ‘7’ ma szczególne znaczenie. Jest to wejście z czwartego przetwornika DAC4. Wzmocnienie dla tego wejścia powinno wynosić 16÷20. Dla wejść analogowych wzmocnienie zależy od poziomu sygnału wejściowego. Właściwe wzmocnienie można ocenić obserwując na wyświetlaczu poziom wysterowania kanałów przednich. Należy dla każdego wejścia analogowego tak dobrać wzmocnienie „ADCATT” aby w najgłośniejszych partiach odtwarzanych dźwięków na wyświetlaczu pojawił się wynik około 70 (L070R070). Dokładniej poziom można ocenić nagrywając najpierw krótkie fragmenty muzyczne na karcie SD/SDHC, a następnie przejrzeć nagrane pliki *.WAV w dowolnym edytorze plików muzycznych (np. Audacity). Program „AMPL-008” służy głównie do testów i podczas normalnego użytkowania ampli tunera nie jest potrzebny. Program ten pozwala kopiować pliki pomiędzy kartą SD/ SDHC ampli tunera a komputerem. Z uwagi na małą szybkość transmisji szeregowej (115200 bodów co daje około 12 kB/s) kopiowanie plików można traktować eksperymentalnie. W głównym oknie pojawiają się różne komunikaty (bardziej szczegółowe niż na wyświetlaczu). Podczas pracy dekodera STA310 pojawiają się komunikaty związane ze zmianą formatu danych lub pojawieniem się błędów transmisji SPDIF. Funkcje odczytu i zapisu pojedynczych sektorów są pomocne głównie podczas uruchamiania programu obsługi partycji FAT. Zapis sektorów przypadkowymi danymi może zniszczyć strukturę logiczną karty SD/SDHC. Program „AMPL-008” pozwala formatować kartę SD/SDHC ale nie zawsze przebiega to formatowanie poprawnie (niekiedy program ten źle oblicza wielkość dostępnej przestrzeni na partycję FAT). Najlepiej kraty SD lub SDHC sformatować w czytniku kart podłączonym do komputera. Należy wybrać typ partycji FAT-16 nawet dla karty SDHC o pojemności 4 GB. Polecam program „EaseUS Partition Master”. Ampli tuner obsługuje karty o maksymalnym rozmiarze partycji równym 4 GB w systemie FAT-16 (Pojemność samej karty może być większa). W kolejnym kroku proponuję wlutować wzmacniacze operacyjne U45 i U46 (poczwórne wzmacniacze operacyjne AD8664) i elementy RC wokół nich. Wzmacniacze te tworzą filtry dolnoprzepustowe i (włączane opcjonalnie) filtry uwydatniające tony niskie i wysokie. Po wlutowaniu tych elementów i gniazda J8 (6× JACK 3,5 mm) możliwe będzie sprawdzenie działania ampli tunera dla sygnałów akustycznych. Do szarego gniazda J8D (AUX Out FRONT) należy podłączyć
wzmacniacz mocy (lub wejście ‘Line In’ komputera) aby mieć możliwość odsłuchu przednich kanałów odtwarzanych dźwięków. Na tym etapie powinno działać radio i wszystkie wejścia analogowe. Można także z karty SD/ SDHC odtwarzać (i nagrywać) nieskompresowane pliki *.WAV. Jeśli tor „STEREO” działa poprawnie (dla radia i pierwszych trzech wejść analogowych) można zamontować dekoder MP3 STA015(U16). Oprogramowanie przewiduje częstotliwość rezonatora kwarcowego QSD4 równą dokładnie 14,7456 MHz. Rezonatory o tej częstotliwości były montowane przez ostatnie lata prawie na każdej płycie głównej PC (w okolicach zintegrowanej karty graficznej). Pierwsze próby z odtwarzaniem plików *.MP3 można przeprowadzić posługując się kartą SD/SDHC. Na tym etapie montażu ampli tunera można wlutować moduł VDIP1(JDIP) wraz z układem 74LVC86(U7). Moduły te są zaprogramowane przez producenta. Nie wszystkie pendriv’y są czytane prawidłowo. Można ewentualnie po odpowiednim przestawieniu zworek ZVD1,2,3,4 wpisać najnowszy „soft” dla układów VNC1L-1A posługując się programem „VPROG_COM_2.exe”. Najnowsze oprogramowanie można znaleźć na stronie producenta www.vinculum.com. Poprawnie działający moduł VDIP1 umożliwi odtwarzanie plików *.MP3 z pendriv’a. Zanim zamontujemy końcówki mocy konieczne jest wlutowanie układu „Upmix” – układy scalone: U43(AD8664) i U44(OPA4132), układu „Downmix” – układy scalone: U19(ADG451BRL), U20(PCF8574AT), U42(OPA4132) oraz układów U28(OPA2134) i U47(OPA4132) wraz elementami biernymi wokół nich. Proponuję wlutować na początek pierwszy z układów TPA3120D2(UW1). Należy wlutować wszystkie elementy bierne związane z tym układem. Nóżki GAIN0(18) i GAIN1(17) nie mogą pozostać niepodłączone. Najlepiej połączyć je z masą. Na płytce prototypu przez pomyłkę nie znalazły się linie łączące te nóżki ze zworkami ZWA1 i ZWB1. Należy przed pierwszymi próbami związanymi z uruchomieniem końcówek mocy wykonać te połączenia przewodem służącym do REKLAMA
59
PROJEKT CZYTELNIKA naprawy płytek drukowanych. Zastosowałem dławiki firmy FERYSTER z rdzeniem ferromagnetycznym o indukcyjności 10 mH i prądzie maksymalnym 7 A. Rdzenie dławików lekko się rozgrzewają (nawet przy braku wysterowania). Wydaje mi się, że przy tej indukcyjności można by spróbować zastosować dławiki powietrzne. Końcówki mocy są programowo wprowadzane w stan „shutdown”. Przed ich uruchomieniem należy w ‘MENU’ wybrać ustawienie ‘Power’. Poszczególne końcówki mocy mają przypisany odpowiedni ‘bit’. Abu uaktywnić tylko końcówkę mocy UW1 należy podać (jako parametr w menu ‘Power’) wartość ‘4’. Odpowiednio wprowadzenie wartości ‘2’ uaktywnia końcówkę mocy UW2, a wartość ‘1’ – końcówkę mocy U29(TAS5615). Oczywiście wprowadzenie wartości ‘7’ uaktywni wszystkie trzy końcówki mocy. Układy TPA3120D2 (lub TPA3123D2) nie mają radiatorów, posiadają tylko ‘Thermal pad’ odprowadzający ciepło wprost na płytkę drukowaną. Należy odpowiednio ustawić zworki na polach krosowych Z35, Z36, Z37, Z38, Z39, Z47 i Z48. Układy TPA3120D2 mogą być zasilane napięciem nie większym od 30 V (typowo 27 V). W prototypie ustawiłem najniższy poziom wzmocnienia tych układów (20 dB – linie GANI0 i GANI1 połączone z masą). Po uruchomieniu pierwszej końcówki mocy możemy wlutować (jeśli przewidujemy jego wykorzystanie) drugi układ scalony TPA3120D2(UW2). Układ scalony TAS5615(U29) (lub TAS5611, TAS5613) jest bardziej rozbudowany. Jego obudowa posiada ‘Thermal pad’ na górnej powierzchni obudowy przeznaczony do odprowadzania ciepła przez zewnętrzny radiator. Zastosowałem popularny radiator stosowany od chłodzenia chipów na płytach głównych PC. Sam schemat aplikacyjny tego układu jest dość rozbudowany. Układ ten jest sterowany przez układ ekspandera PCF8574AT(U30). Wraz z układem TAS5615(U29) należy wlutować wszystkie elementy bierne wokół niego i układ PCF8574AT(U30). Należy również połączyć na polu krosowym PK4 punkty 1 z 2. W prototypie zastosowałem dławiki takie same jak dla układów TPA3120D2. Układ TAS5615 jest skonfigurowany do pracy w układzie BTL. Pierwsze krótkie próby można wykonać bez montowania radiatora. Pod radiatorem znajdują się elementy w obudowach 0805. Przy montażu radiatora należy uważać aby elementy te nie dotykały radiatora. Podczas pracy układu TAS5615 radiator ten jest ciepły. Przy braku wysterowania (sygnałem akustycznym) pewna część pobieranej energii przez układ TAS5615 zużywana jest na pokrycie strat w rdzeniach ferrytowych zastosowanych dławików. Wydaje mi się, że we wzmacniaczach pracujących w klasie D dobór dobrej jakości dławików jest bardzo istotny. Na płytce drukowanej przewidziałem niewiele miejsca na dławiki LDA1, LDB1, LDC1, LDD1. W przyszłości
60
spróbuję wymienić te dławiki na lepsze (o podobnych gabarytach, ale zapewniające mniejsze straty w rdzeniu dla 400 kHz). Po uruchomieniu końcówek mocy proponuję wlutować układ scalony TPA6120A2(U81) wraz z elementami towarzyszącymi. Układ ten jest wysokiej klasy wzmacniaczem słuchawkowym. Układ ten posiada również ‘Thermal pad’ odprowadzający ciepło na warstwę miedzi płytki drukowanej. Na tym etapie płyta głów- Fotografia 6. Płytka-nakładka SPDIF z dekoderem STA310 na powinna zawierać prawie wszystkie elementy. Pozostały jeszcze do Dekoder DD/DTS wlutowania: odbiorniki i nadajniki transmiDekoder DD/DTS został zbudowany na sji SPDIF, odbiornik podczerwieni i reszta bazie układu scalonego typu STA310 (U2). Zozłącz. Na płytce drukowanej prototypu przez stał umieszczony na małej płytce drukowanej pomyłkę wyprowadzenia 1,2,3 i 4 odbiornika z wyprowadzeniami w postaci gold-pinów paTORX173(TO1) zostały umieszczone w odsujących w złącza J1, J2, J3 na płycie głównej wrotnej kolejności: 4,3,2,1. Przed zamontowa(fotografia 6). Na tej samej płytce znajduje się niem tego elementu zmuszony byłem odciąć również liniowy stabilizator napięcia +2,5 V na druku wszystkie połączenia i wykonać typu TPS75225 (U1). Płytka dekodera pobiera krótkimi przewodami nowe. Odbiorniki światpodczas pracy prąd dochodzący do 700 mA. łowodowe SPDIF_F2 i SPDIF_F4 typu TORXNa płytce dekodera pojawiło się błędne połą147PL (rysunek 5) umieściłem na dodatkowej czenie nóżki 4 z napięciem zasilania +3,3 V. płytce drukowanej i podłączyłem do złącza Powinno tam być doprowadzone napięcie S12 (piny 2 i 3 tego złącza oraz masa i +3,3 V). +2,5 V. Przed montażem układu scalonego Odbiornik podczernieni pracuje w stanSTA310 to połączenie zostało przecięte, a nóżdardzie RC-5 (modulacja 36 kHz). Tuner reakę 4 połączyłem kawałkiem przewodu z jedną guje na kody dla urządzeń: 0, 16, 18 i 20. Po z przelotek połączoną z napięciem zasilania uruchomieniu wszystkich bloków na płycie +2,5 V. Dodatkowo, w linii SPDIF_IN szeregogłównej można przystąpić do montażu płytki wo wlutowałem rezystor 390 V. Również rówelewacji. W pierwszej kolejności proponuję zanolegle do kondensatora 100 mF (CE2) dolumontować wyświetlacz LCD-HY2402A wraz towałem kondensator elektrolityczny 3300 mF. z kilkoma elementami biernymi bezpośrednio Zmontowaną płytkę – nakładkę dekodera naz nim związanymi (również przyciski). Potenleży, przy odłączonym zasilaniu płyty główcjometrem PR1 można wyregulować kontrast nej, odpowiednio umieścić w złączach J1…J3. świecenia wyświetlacza. Płytka elewacji łąPo włączeniu zasilania płyty głównej można czy się 20-żyłowym przewodem taśmowym sprawdzić wartość napięcia +2,5 V występuz płytą główną amplitunera. Po uruchomieniu jącą na wyprowadzeniach kondensatora CE1. wyświetlacza i klawiatury proponuję wlutować układ AD8662 (U1) i elementy bezpośrednio z nim związane. Układ ten jest związany ze sterowaniem diod LED pokazujących poziom sygnału audio na wyjściach REC przedwzmacniacza. Średni prąd wysterowania diod LED przednich kanałów jest mierzony przez przetworniki ADC procesora i wyświetlany w lewym dolnym rogu wyświetlacza. Aby wykorzystać wejścia i wyjścia SPDIF należy umieścić w złączach J1, J2, J3 płytkę-nakładkę dekodera STA310 lub odbiornika/na- Fotografia 7. Płytka-nakładka SPDIF z układami DIR9001 dajnika SPDIF. i DIT4096 ELEKTRONIKA PRAKTYCZNA 9/2013
Amplituner do kina domowego AMPL-008 Można również sprawdzić napięcie występujące na wyprowadzeniach kondensatora CE2. Wartość tego napięcia zmienia się w zależności od trybu pracy dekodera. Powinno się zawierać w granicach 4,2…4,8 V. Dekoder powinien zostać wykryty przez oprogramowanie i powinny pojawić się odpowiednie komunikaty w oknie głównym programu AMPL-008. exe – „STA310[B8]=31 Soft v.:14”.
Odbiornik SPDIF PCM Ponieważ zdobycie dekodera Dolby Digital typu STA310 jest bardzo trudne, przewidziałem uproszczoną wersję amplitunera z cyfrowym interfejsem SPDIF. W miejsce płytki – nakładki dekodera STA310 można zamontować płytkę – nakładkę „DIR9001_DIT4096” z odbiornikiem SPDIF typu DIR9001, oraz nadajnikiem SPDIF typu DIT4096 (fotografia 7). Obydwa te układy scalone są produkowane przez firmę Texas Instruments. Można je łatwo kupić lub zamówić próbki tych układów. Najważniejszy jest montaż układu DIR9001 (U3) – schemat AMPT-DIR-DIT.sch. Odbiornik DIR9001 ma bardzo dobre parametry. Jeśli nie przewidujemy wykorzystywania cyfrowych wyjść SPDIF nie jest konieczne wlutowanie układów scalonych U1(DIT4096) i U2(74LVC00). Odbiornik DIR9001 ma bardzo dobre parametry: • Zakres częstotliwości wejściowego sygnału SPDIF (Biphase Input Signal SR): 28…108 kHz. • Niski błąd odtworzonego sygnału zegarowego (Low-Jitter Recovered System Clock): maksymalnie 50 ps. • Wewnętrzna pętla PLL niewymagająca zewnętrznego sygnału zegarowego. • Obsługiwane standardy transmisji SPDIF: EIAJ CP-1201, IEC60958, AES/EBU. • Wymagane pojedyncze napięcie zasilania 3,3 V. Format danych wyjściowych z odbiornika DIR9001 jest określony przez stany logiczne na wejściach: PSCK0, PSCK1, FMT0 oraz FMT1. Tryb pracy układu DIR9001 zależy od stanu logicznego występującego na wejściu CKSEL. Nóżka CKSEL (28) jest na stałe dołączona do masy, co ustawia pętlę PLL (VCO) jako źródło zegara systemu. Układ DIT9001 ma kilka sygnałów wyjściowych. Sygnał wyjściowy AUDIO#(1) jest wyzerowany, jeśli odbierane bity reprezentują dane AUDIO PCM. Dla danych skompresowanych (np. AC-3) na wyprowadzeniu AUDIO# pojawia się poziom wysoki. Sygnał wyjściowy ERROR zostaje ustawiony, jeśli w odbieranych danych wykryto błąd parzystości lub jeśli pętla PLL nie jest w stanie synchronizacji. Podczas odbioru nieskompresowanych danych „AUDIO PCM” w stanie synchronizacji pętli PLL, przy braku błędów w transmisji obydwa te sygnały zostają wyzerowane. Na diodach D3 i D4 (BAT254) jest tworzona suma logiczna tych sygnałów, ELEKTRONIKA PRAKTYCZNA 9/2013
Rysunek 8. Pole elektryczne wokół ścieżek na płytkach 2- i 4-warstwowych która po zanegowaniu przez tranzystor T2 (BC847) jest czytana przez procesor LPC2387 jako sygnał AUDIO_OK. Płytka odbiornika SPDIF powinna zostać wykryta przez oprogramowanie i powinien pojawić się w oknie głównym programu AMPL-008.exe komunikat: „DIR/DIT OK”. Procesor sprawdza cyklicznie poziom sygnału AUDIO_OK, i jeśli jego poziom jest wysoki, to odblokowany jest cyfrowy tor AUDIO. Dla niskiego poziomu sygnału AUDIO następuje wyciszenie wyjść z układu WM8770. Wyjścia FSOUT0 i FSOUT1 nie są używane – częstotliwość wyjściowa magistrali I2S jest mierzona przez procesor LPC2387. Płytka – nakładka „DIR9001_DIT4096” nie pozwala na dekodowanie przebiegów Dolby Digital (AC3) lub DTS. Trzeba to mieć na uwadze i w urządzeniu dostarczającym sygnał SPDIF (np. Blu-ray) należy dla wyjścia cyfrowego ustawić „Downmix” na „STEREO PCM”. Niektóre funkcje ampli tunera przy pracy z nakładką „DIR9001_DIT4096” są niedostępne. Są to takie funkcje jak: SRS, VMAX, Dolby Pro Logic, Circle Surround. Możliwe jest użycie układu analogowego „Upmix” pozwalającego na uzyskanie 6 kanałów ze źródeł STEREO. Struktura połączeń tego analogowego układu odpowiada pracy cyfrowych układów „Dolby Pro Logic II” w trybie „Music”.
Podsumowanie Udało mi się zbudować całkowicie samodzielnie kompletne i funkcjonalne urządzenie – amplituner kina domowego. Najwięcej przyjemności (i jednocześnie pracy) miałem podczas programowania dekodera STA310. Cyfrowy dźwięk w formacie 5.1 można przetwarzać na wiele sposobów. Mogłem przetestować różne transformacje cyfrowe dźwięku wielokanałowego na stereofoniczny lub odwrotnie dźwięku stereofonicznego na wielokanałowy. Szkoda, że nie powstał nigdy prosty cyfrowy format przesyłania dźwięku wielokanałowego bez kompresji i kodowania. Zawsze, gdy jest przesyłany cyfrowo dźwięk z większą liczbą kanałów jest on kompresowany lub kodowany. W przypadku interfejsu SPDIF dźwięk wielokanałowy jest kompresowany w formacie AC-3 lub DTS. Podczas przesyłania cyfrowo dźwięku przez interfejs
HDMI jest on kodowany lub kompresowany i kodowany. Z powyższego wynika, że do obróbki dźwięku wielokanałowego zawsze jest potrzebny specjalny układ scalony raczej niemożliwy do kupienia przez indywidualnego konstruktora. Moja wersja amplitunera została wykonana na pojedynczej (pomijając płytkę elewacji), dwuwarstwowej płytce drukowanej. Występują na niej zarówno bloki analogowe, jak i cyfrowe. Druk dwuwarstwowy jest odpowiedni dla bloków analogowych. Dla bloków cyfrowych lepszym rozwiązaniem byłby druk czterowarstwowy. Dla płytek czterowarstwowych ścieżki sygnałowe najlepiej umieścić na zewnętrznych warstwach (Top i Bottom), a warstwy wewnętrzne przeznaczyć na rozprowadzenie masy (na warstwie Mid 1) i zasilania (na warstwie Mid 2) w postaci „poligonów”. Szybkozmienne sygnały cyfrowe generują pola elektromagnetyczne. Na płytkach dwuwarstwowych pole elektryczne każdej ścieżki jest rozproszone we wszystkich kierunkach. Na płytkach czterowarstwowych z wypełnionymi obszarami masy i zasilania pole elektryczne większości ścieżek może się „pozamykać” do tych obszarów. Najlepszym rozwiązaniem przy projektowaniu tego typu układów elektronicznych jest umieszczenie bloków cyfrowych na płytce czterowarstwowej, a bloków analogowych na płytce dwuwarstwowej.
Zbyszko Przybył [email protected] REKLAMA
61
T E M AT N U M E R U
PA M I Ę C I N I E U LO T N E
WYBÓR KONSTRUKTORA
Pamięci FRAM i Flash Przegląd pamięci nieulotnych Rynek pamięci nieulotnych jest z jednej strony już bardzo dojrzały, a z drugiej, wciąż rozwijający się. Zaawansowana technologia NOR FLASH została dobrze opanowana przez wielu producentów, co zapewnia niskie ceny tego typu układów oraz brak problemów z ich dostępnością, a także względnie stały, choć niezbyt szybki postęp w tej dziedzinie. Tymczasem popularność coraz szybciej zdobywają nowe układy, takie jak FRAM, czy nawet MRAM. Choć są znacznie droższe niż tradycyjne Flash, a ich wybór wciąż jest ograniczony, niektóre cechy i parametry zachęcają do ich stosowania.
Pamięci ferroelektryczne
Rynek pamięci ferroelektrycznych nie jest duży i wyraźnie dominuje na nim jeden producent. Da się to już zauważyć po fakcie, że powszechnie stosowanym skrótem dla tych pamięci jest akronim FRAM, który stanowi nazwę zastrzeżoną, należącą do firmy Ramtron. Inni producenci starają się unikać tego określenia i stosują zamiast niego skróty F-RAM lub FeRAM, zawsze odnoszące się do angielskiego Ferroelectric Random Access Memory. W praktyce, na rynku pamięci FRAM, oprócz Ramtrona działa także Fujitsu, a pierwsze kroki stawia Lapis Semiconductor. U niektórych dostawców, na liście producentów pojawiają się jeszcze firmy Cypress Semiconductor i Rohm Semiconductor, ale w rzeczywistości pierwsza z nich jest właścicielem Ramtrona, a druga Lapis Semiconductor i oferowane przez nie układy pokrywają się z markowanymi przez ich spółki zależne. Czytelnicy śledzący nowości prasowe mogą zauważyć, że rynkiem pamięci ferroelektrycznych interesuje się też Texas Instruments, który oferuje pewne produkty tego typu. W praktyce jednak dostarcza on jedynie kompletne mikrokontrolery wyposażone w pamięci FRAM, a takie układy nie wchodzą w zakres niniejszego przeglądu. Pełne zestawienie dostępnych obecnie na rynku produktów, za wyjątkiem tych wycofywa-
62
nych ze sprzedaży, zostało przedstawione w tabeli 1 i tabeli 2. Oferowane pamięci dostępne są w trzech odmianach. Najliczniejszą grupę stanowią układy z dostępem szeregowym za pomocą interfejsów SPI lub I2C. Dosyć łatwo jest też nabyć układy pamięci z interfejsem równoległym, choć ich wybór jest znacznie mniejszy. Trzecią grupę produktów stanowią układy specjalizowane do konkretnych aplikacji. Mogą to być pamięci zintegrowane z układem radiowym, umożliwiające bezprzewodowy odczyt i zapis danych, co znajduje zastosowanie np. w różnego rodzaju inteligentnych kartach zbliżeniowych (choćby w tagach RFID). Oferowane są też modele z wbudowanym timerem, watchdogiem lub z niezmiennymi numerami seryj-
nymi, pozwalającymi na weryfikację oryginalności podzespołów. Zastosowanie w tym celu układów FRAM jest wygodne, gdyż ich zawartość można łatwo aktualizować, podtrzymanie pamięci nie wymaga ciągłego zasilania, a wbudowane elementy peryferyjne umożliwiają np. resetowanie mikrokontrolera, który przestał reagować na sygnały i przekazanie mu aktualnego kodu programu do wykonania.
Pamięci FRAM z interfejsem szeregowym Najliczniejszą grupę pamięci FRAM stanowią układy z interfejsem szeregowym. W ramach podgrupy obejmującej podzespoły sterowane za pomocą I2C można znaleźć modele o pojemności od 4 kb do 1 Mb. Naj-
ELEKTRONIKA PRAKTYCZNA 9/2013
Pamięci FRAM i Flash szybsze. Ich czas cyklu zegarowego może wynieść nawet 55 ns (w zależności od modelu), podczas gdy w produktach konkurencji wartość ta nie może spaść poniżej 150 ns. Wszystkie z oferowanych obecnie pamięci FRAM z interfejsem równoległym mogą pracować w temperaturze od -40 do +85°C, przy czym żywotność produktów Fujitsu wynosi 10 lat, ale jedynie w temperaturze do 55°C. Wytrzymałość układów równoległych tej firmy jest mniejsza niż w przypadku produktów konkurencyjnych i wynosi 1010 cykli. Napięcia zasilania omawianych podzespołów kształtują się podobnie, jak w przypadku modeli szeregowych z interfejsem I2C.
Pamięci Flash z interfejsem szeregowym
bogatszą ofertę ma Ramtron, którego układy charakteryzują się również największą żywotnością. Producent deklaruje, że wiele z nich wytrzyma nawet 38 lat działania i 1014 cykli zapisu/odczytu. Standardowa temperatura pracy jest taka sama dla wszystkich producentów i wynosi od -40 do +85°C, ale jeden z układów – FM24CL64B-GA – może pracować nawet w temperaturze do +125°C. Większość z oferowanych układów wymaga zasilania od nieco ponad 2 V do 3,6 V, ale w ofercie Ramtrona są też pamięci zasilane napięciem od 4,5…5,5 V. Pozostali producenci – Fujitsu i Lapis Semiconductor – nie dostarczają układów, które można zasilić napięciem poniżej 2,5 V. Interfejsu układów oferowanych przez Fujitsu nie są też tak szybkie, jak najszybsze z produktów Ramtrona i Lapisa. Ich maksymalna częstotliwość zegarowa wynosi często 400 kHz. Układy Fujitsu i Lapisa wytrzymują do 1012 cykli zapisu i odczytu, a ich deklarowana żywotność wynosi 10 lat, przy czym w wypadku większości pamięci Fujitsu producent zapewnia, że jest ona możliwa do uzyskania nawet przy maksymalnej, dopuszczalnej temperaturze pracy. Pamięci z interfejsem SPI mają pojemność do 2 Mb, a do tego częstotliwość sygnału zegarowego interfejsu może wynosić do 40 MHz (w wypadku niektórych układów Ramtrona i jednego Fujitsu). Ramtron oferuje kilka modeli o rozszerzonym zakresie temperatury pracy, które mogą pracować w temperaturze do 125°C i do 1013 cykli zapisu i odczytu. W tych wypadkach producent nie podaje jednak czasu niezawodnego przechowywania danych w pamięci. Wśród pamięci z SPI najgorzej wypada Lapis, który oferuje tylko dwa produkty taktowane zegarem 15 MHz i charakteryzujące ELEKTRONIKA PRAKTYCZNA 9/2013
się żywotnością 10 lat oraz wytrzymujące 1012 cykli pracy. Mogą być one zasilane napięciem od 2,7 do 3,6 V lub od 3,0 do 3,6 V, w zależności od modelu. Napięcia zasilania pozostałych układów są podobne, jak w przypadku wersji z I2C, przy czym firmie Fujitsu udało się stworzyć dwa modele o pojemności 1 Mb i 2 Mb, które można zasilać nawet napięciem 1,8 V.
Pamięci FRAM z interfejsem równoległym Poszukując większych bloków pamięci FRAM konieczne jest sięgnięcie po modele z interfejsem równoległym. Te dostępne są w wersjach o pojemności od 64 kB do 8 Mb. Oczywiście znów dominuje Ramtron, którego układy nie tylko wytrzymują najwięcej cykli zapisu i odczytu, ale są również naj-
Wybór pamięci Flash jest zdecydowanie bardziej bogaty, niż w wypadku FRAM. Na rynku działa mnóstwo producentów, a ich osiągnięcia technologiczne są na tyle zbliżone do siebie, że produkty o bardzo podobnych parametrach można otrzymać od wielu różnych dostawców. Poniżej przedstawiamy wybranych z nich, ograniczając się do pamięci NOR Flash.
Adesto Technologies Oferta Adesto Technologies (która przejęła produkcję pamięci Flash Atmela) obejmuje 4 podgrupy pamięci szeregowych NOR Flash. Wszystkie są obsługiwane za pomocą interfejsu SPI, przy czym seria DataFlash pozwala na czyszczenie pojedynczych stron pamięci (tj. fragmentów o rozmiarze 256 bajtów), podczas gdy pozostałe wymagają czyszczenia całych bloków, nie mniejszych niż 4 kB. W ramach wszystkich rodzin pamięci tej firmy dostępne są układy taktowane zegarem do 100 MHz. Większość może być zasilana napięciem od 2,3 V, a rodzina 1.8 V Block Erase pozwala ponadto na zasilanie napię-
63
64
Fujitsu Ramtron Ramtron Ramtron Fujitsu Fujitsu Ramtron Ramtron Ramtron Fujitsu Fujitsu Lapis Ramtron Ramtron Ramtron Ramtron Fujitsu Ramtron Fujitsu Ramtron Ramtron Ramtron Ramtron Ramtron Ramtron Ramtron Ramtron Ramtron Fujitsu Ramtron Ramtron Ramtron Ramtron Lapis Fujitsu Fujitsu Ramtron Ramtron Ramtron
Producent
MB85RC04V FM24C04C FM24C04B FM24CL04B MB85RC16V MB85RC16 FM24C16C FM24CL16B FM24C16B MB85RC64A MB85RC64V MR44V064A FM24C64C FM24C64B FM24CL64B-GA FM24CL64B MB85RC128A FM24V01 MB85RC256V FM24W256 FM24V02 FM24V05 FM24V10 FM25040C FM25040B FM25040B-GA FM25L04B FM25L04B-GA MB85RS16 FM25C160C FM25C160B FM25C160B-GA FM25L16B MR45V032A MB85RS64 MB85RS64V FM25640C FM25640B FM25640B-GA
Model
I 2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C I2C SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI
4 kb 4 kb 4 kb 4 kb 16 kb 16 kb 16 kb 16 kb 16 kb 64 kb 64 kb 64 kb 64 kb 64 kb 64 kb 64 kb 128 kb 128 kb 256 kb 256 kb 256 kb 512 kb 1 Mb 4 kb 4 kb 4 kb 4 kb 4 kb 16 kb 16 kb 16 kb 16 kb 16 kb 32 kb 64 kb 64 kb 64 kb 64 kb 64 kb
512×8 512×8 512×8 512×8 2 k×8 2 k×8 2 k×8 2 k×8 2 k×8 8 k×8 8 k×8 b.d. 8 k×8 8 k×8 8 k×8 8 k×8 16 k×8 16 k×8 32 k×8 32 k×8 32 k×8 65 k×8 128 k×8 512×8 512×8 512×8 512×8 512×8 2 k×8 2 k×8 2 k×8 2 k×8 2 k×8 b.d. 8 k×8 8 k×8 8 k×8 8 k×8 8 k×8
Pojemność Interfejs Łączna Układ 3,0÷5,5 4,5÷5,5 4,5÷5,5 2,7÷3,6 3,0÷5,5 2,7÷3,6 4,5÷5,5 2,7÷3,6 4,5÷5,5 2,7÷3,6 3,0÷5,5 2,5÷3,6 4,5÷5,5 4,5÷5,5 3,0÷3,6 2,7÷3,6 2,7÷3,6 2,0÷3,6 2,7÷5,5 2,7÷5,5 2,0÷3,6 2,0÷3,6 2,0÷3,6 4,5÷5,5 4,5÷5,5 4,5÷5,5 2,7÷3,6 3,0÷3,6 2,7÷3,6 4,5÷5,5 4,5÷5,5 4,5÷5,5 2,7÷3,6 2,7÷3,6 2,7÷3,6 3,0÷5,5 4,5÷5,5 4,5÷5,5 4,5÷5,5
napięcie zasilania [V]
maksymalny pobierany prąd b.d. 400 µA 400 µA 300 µA b.d. b.d. 400 µA 300 µA 400 µA b.d. b.d. b.d. 400 µA 400 µA 340 µA 300 µA b.d. 1 mA b.d. 400 µA 1 mA 1 mA 1 mA 4 mA 4 mA 3 mA 3 mA 2 mA b.d. 4 mA 4 mA 3 mA 3 mA b.d. b.d. b.d. 4 mA 4 mA 1,2 mA 400 kHz/1 MHz 1 MHz 1 MHz 1 MHz 400 kHz 400 kHz/1 MHz 1 MHz 1 MHz 1 MHz 400 kHz 400 kHz 3,4 MHz 1 MHz 1 MHz 1 MHz 1 MHz 400 kHz 3,4 MHz 400 kHz/1 MHz 1 MHz 3,4 MHz 3,4 MHz 3,4 MHz 20 MHz 20 MHz 14 MHz 20 MHz 10 MHz 20 MHz 20 MHz 20 MHz 15 MHz 20 MHz 15 MHz 20 MHz 20 MHz 20 MHz 20 MHz 4 MHz
Maks. Częstotliwość taktowania
Tabela 1. Oferowane obecnie na rynku pamięci FRAM z dostępem szeregowym
-40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+125 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+125 -40÷+85 -40÷+125 -40÷+85 -40÷+85 -40÷+85 -40÷+125 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+125
temp. Pracy [°C] 10^12 10^12 10^12 10^14 10^12 10^10 10^12 10^14 10^12 10^12 10^12 10^12 10^12 10^12 10^14 10^14 10^12 10^14 10^12 10^14 10^14 10^14 10^14 10^12 10^12 10^13 10^14 10^13 10^12 10^12 10^12 10^13 10^14 10^12 10^12 10^12 10^12 10^12 10^13
wytrzymałość [cykli] 10 lat 36 lat 38 lat 38 lat 10 lat 10 lat 36 lat 38 lat 38 lat 10 lat 10 lat 10 lat 36 lat 38 lat 38 lat 38 lat 10 lat 10 lat 10 lat 38 lat 10 lat 10 lat 10 lat 36 lat 38 lat b.d 38 lat b.d 10 lat 36 lat 38 lat b.d 38 lat 10 lat 10 lat 10 lat 38 lat 38 lat b.d
85°C 75°C 75°C 75°C 85°C 75°C 75°C 75°C 75°C 85°C 85°C
przy przy przy przy
85°C 85°C 75°C 75°C
Firma ta intensywnie rozwija swoją ofertę pamięci NOR FLASH, wprowadzając na rynek wiele nowych modeli. Produkcja nabrała dodatkowego tempa, po ubiegłorocznym przejęciu tajwańskiego producenta układów tego typu, o nazwie Chingis. Obecnie w sprzedaży znajduje się 7 modeli, z czego każdy dostarczany jest w dwóch, trzech lub
przy 75°C
Integrated Silicon Solutions
przy 85°C przy 75°C przy 75°C
być taktowany zegarem o częstotliwości 85 lub 100 MHz i są dostępne w trzech wersjach obudów każda.
przy 75°C
przy 75°C przy 75°C
Niewielką ofertę pamięci SPI Flash ma firma Amic Technology, która produkuje układy o pojemnościach od 512 kb do 64 Mb. Są one zasilane napięciem z zakresu od 2,7 do 3,6 V i wytrzymują temperaturę standardową, tj. od -40 do +85°C. Ich interfejs może
przy 85°C
Amic Technology
przy 85°C
SOP8 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC SOP8 SOP8/SON8 8-Pin SOIC SOIC8 or DFN8 8-Pin SOIC SOP8 SOP8 SOP8 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC SOIC8 or DFN8 SOP8 8-Pin SOIC SOP8 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC SOIC8 or DFN8 8-Pin SOIC SOP8/SON-8 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC SOIC8 or DFN8 SOP8 SOP8 SOP8 8-Pin SOIC 8-Pin SOIC 8-Pin SOIC
obudowa
T E M AT N U M E R U ciem od 1,65 V. Oferowane pojemności wynoszą od 1 Mb do 64 Mb dla pamięci DataFlash, od 512 kb do 64 Mb dla Block Erase, od 8 Mb do 64 Mb dla Quad-I/O Block Erase i 8 Mb lub 16 Mb dla 1,8 V Block Erase.
przy 75°C przy 75°C
przy przy przy przy przy przy przy przy przy przy przy
Żywotność
PA M I Ę C I N I E U LO T N E WYBÓR KONSTRUKTORA
czterech wersjach obudów. Produkty te mają pojemność od 256 kb do 4 Mb i mogą być zasilane napięciem z zakresu od 2,7 do 3,6 V lub (w jednego modelu o pojemności 2 Mb i jednego o pojemności 4 Mb) od 1,65 do 1,95 V. W drugiej połowie tego roku, oprócz obecnie oferowanych układów z interfejsem dual-output SPI, pojawią się modele z quad-output SPI o pojemności do 256 Mb. Częstotliwość sygnału zegarowego ich interfejsu wyniesie do 104 MHz, co przy wspomnianym trybie pracy pozwoli na transfer z 4-krotnie większą wydajnością, niż w wy-
ELEKTRONIKA PRAKTYCZNA 9/2013
Pamięci FRAM i Flash padku typowego, szybkiego odczytu przez SPI taktowanego zegarem 104 MHz. Warto dodać, że wszystkie pamięci szeregowe NOR Flash firmy ISSI mają poszerzony zakres temperatury pracy. Te obecnie dostępne mogą pracować w zakresie temperatury od -40 do +105°C, a produkty, które mają dopiero pojawić się na rynku, mogą pracować nawet w temperaturze do +125°C.
Macronix International
przy 85°C
przy 85°C
przy 85°C
SOP8 8-Pin SOIC SOP8 SOP8 SOIC8 or DFN8 8-Pin SOIC SOIC8 SOP8 (FPT-8P-M02) SOIC8 SOP8 (FPT-8P-M08)/DIP8 TDFN8, EIAJ8 TDFN8, EIAJ8 przy 85°C
lat lat lat lat lat lat lat lat lat lat lat lat
wytrzymałość [cykli]
10^12 10^14 10^12 10^12 10^14 10^14 10^14 10^13 10^14 10^13 10^14 10^14
temp. Pracy [°C]
-40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85 -40÷+85
10 10 10 10 10 38 10 10 10 10 10 10
Żywotność
obudowa
Firma Macronix oferuje pamięci z interfejsem szeregowym, o pojemnościach od 512 kb do
512 Mb. Większość z nich jest zasilana napięciem 3 V, ale są też modele przeznaczone do pracy z napięciem 1,8 V i 2,5 V. Niektóre z układów Macronixa należą do najszybszych na rynku, bo pozwalają na taktowanie interfejsu przebiegiem o częstotliwości 133 MHz w trybie poczwórnym. Warto dodać, że większość z tych produktów jest oferowana w bardzo dużej liczbie różnorodnych obudów. Macronix dostarcza też pamięci NOR Flash wzbogacone o funkcje bezpieczeństwa, takie jak trwałe zabezpieczenie przed zapisem, zabezpieczenie z użyciem hasła lub przed kopiowaniem zawartości.
Microchip Firma ta oferuje układy o pojemnościach od 512 kb do 64 Mb. Są taktowane zegarem od 20 MHz do 80 MHz, ale aktualnie jest planowana również produkcja modułów 16- i 64-megabitowych, z interfejsem taktowanych przebiegiem zegarowym 104 MHz. Zakres napięcia zasilania wynosi najczęściej od 2,7 do 3,6 V, przy czym najnowsze układy mogą być zasilane napięciem z zakresu od 1,65 do 1,95 V. Typowy zakres temperatury pracy układów tej firmy wynosi od -40 do +85°C lub od 0 do 70°C. Warto dodać, że układy firmy Microchip są czasami oferowane jako produkty Silicon Storage Technology.
33/25 MHz 40 MHz 33/25 MHz 15 MHz 40 MHz 20 MHz 40 MHz 25/30 MHz 40 MHz 25/40 MHz 40 MHz 40 MHz 2,7÷3,6 2,0÷3,6 2,7÷3,6 3,0÷3,6 2,0÷3,6 2,7÷5,5 2,0÷3,6 1,8÷3,6 2,0÷3,6 1,8÷3,6 2,0÷3,6 2,7÷3,6 16 k×8 16 k×8 32 k×8 b.d. 32 k×8 32 k×8 64 k×8 128 k×8 128 k×8 256 k×8 256 k×8 256 k×8 128 kb 128 kb 256 kb 256 kb 256 kb 256 kb 512 kb 1 Mb 1 Mb 2 Mb 2 Mb 2 Mb SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI SPI MB85RS128B FM25V01 MB85RS256B MR45V256A FM25V02 FM25W256 FM25V05 MB85RS1MT FM25V10 MB85RS2MT FM25V20 FM25H20
Firma ta ma w swojej ofercie ponad 360 układów pamięci Flash z interfejsem szeregowym. Przejęła ona bowiem produkcję firmy Numonyx założonej w 2008 roku wspólnie przez Intela i STMicroelectronics. Mają one pojemność od 512 kb do aż 1 Gb i mogą być zasilane napięciem z zakresu: 1,7…2,0 V, 2,3…3,6 V lub 2,7…3,6 V. Maksymalna częstotliwość przebiegu zegarowego interfejsu wynosi 50, 75 lub 108 MHz, z czego nawet największe z układów obsługują najszybsze taktowanie. Standardowy zakres temperatury pracy wynosi od -40 do +85°C, ale jest też kilka modeli wytrzymujących do +105°C lub do +125°C. W ofercie można też znaleźć 10 szybkich produktów o niskim napięciu zasilania, przeznaczonych do zastosowania w aplikacjach bezprzewodowych, które nie mogą pracować w temperaturach poniżej -25°C.
ON Semiconductor Firma ON Semiconductor, która przejęła niegdyś producenta pamięci Flash firmę Catalyst Semiconductor, oferuje obecnie tylko 5 układów NOR Flash z interfejsem szeregowym. Cztery z nich mają pojemność 4 Mb, a jeden – 1 Mb. Mogą być zasilane napięciem z zakresu 2,3…3,6 V, przy czym jeden z modeli 4-megabitowych jest zasilany napięciem rzędu 1,8 V. Wszystkie te układy wytrzymują standardowy zakres temperatury, tj. od -40 do +85°C i są dostępne w dwóch obudowach. Niestety, nie są zbyt szybkie. Częstotliwość taktowania ich interfejsu szeregowego wynosi 30 lub 40 MHz, w zależności od układu. Producent deklaruje za to, że przechowują zgromadzone w nich dane nawet przez 20 lat.
Winbond Firma Winbond oferuje duży wybór pamięci NOR Flash z interfejsem szeregowym. Zostały one podzielone na dwie rodziny: • W25X, która obejmuje układy o pojemnościach od 1 Mb do 4 Mb i ma interfejs SPI lub Dual Output SPI, • W25Q o pojemnościach od 512 kb do 256 Mb, pozwalająca dodatkowo obsługiwać interfejsy Quad-SPI i QPI. Omawiane pamięci mogą być taktowane zegarem do 104 MHz i zasilane – w zależności od wersji – napięciem na poziomie 3 V, 2,5 V lub 1,8 V. Oprócz standardowego zakresu temperatur pracy, tj. od -40 do +85°C, część z nich oferowana jest także w odmianach o zwiększonej odporności na wysokie temperatury, co pozwala im na pracę w temp. do 105°C.
Spansion Fujitsu Ramtron Fujitsu Lapis Ramtron Ramtron Ramtron Fujitsu Ramtron Fujitsu Ramtron Ramtron
Producent
Tabela 1. c.d.
Model
Pojemność Interfejs Łączna Układ
napięcie zasilania [V]
maksymalny pobierany prąd b.d. 2,5 mA b.d. b.d. 2,5 mA 2 mA 3 mA b.d. 3 mA b.d. 3 mA 10 mA
Maks. Częstotliwość taktowania
Micron
wynosi od 4 Mb do 1 Gb. Wiele modeli jest dostępnych w więcej niż jednej obudowie, przy czym ich interfejs może być taktowany przebiegiem o częstotliwości nawet 133 MHz. Pozwala to na uzyskanie przepustowości odczytu do 66 MB/s. Szybkość zapisu dochodzi natomiast do 1,5 MB/s. Standardowym napięciem zasilania jest 3 V, ale niektóre układy można zasilać napięciem z zakresu od 1,65…3,6 V.
ELEKTRONIKA PRAKTYCZNA 9/2013
Firma Spansion oferuje kilkanaście modeli pamięci Flash NOR z interfejsem szeregowym. Ich pojemność
65
Pamięci Flash z interfejsem równoległym
Układy Flash z interfejsem równoległym produkowane są niemal przez te same firmy, które wytwarzają NOR Flash z interfejsami szeregowymi. Poza sposobem komunikacji, główne różnice widać w pojemności oferowanych układów. Pamięci równoległe zazwyczaj obejmują odmiany o 2…4-krotnie większych pojemnościach, niż układy szeregowe tych samych firm.
66
przy 55 °C przy 55 °C
przy 55 °C przy 55 °C
70 ns 70 ns 150 ns 70 ns 70 ns 70 ns 150 ns 150 ns 150 ns 60 ns 60 ns 60 ns 150 ns 150 ns 55 ns 55 ns 60 ns
-40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40 -40
÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷
+85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85 +85
10^14 10^12 10^10 10^14 10^14 10^12 10^12 10^10 10^10 10^14 10^14 10^14 10^10 10^10 10^14 10^14 10^14
38 lat 38 lat 10 lat b.d. 38 lat 38 lat 10 lat 10 lat 10 lat b.d. b.d. b.d. 10 lat 10 lat b.d. b.d. b.d.
przy 55 °C
28-Pin SOIC 28-Pin SOIC SOP/TSOP28 28-pin SOIC, 32-pin TSOP-I 28-Pin SOIC 28-Pin SOIC TSOP(I)28 TSOP48 TSOP48 TSOP-I-32 TSOP-II-44 48-Ball FBGA TSOP48 TSOP48 TSOP-II-44 48-Ball FBGA 48-Ball FBGA
Oferta pamięci równoległych NOR Flash firmy Amic Technology przechodzi aktualnie istotne zmiany. Wśród produkowanych obecnie układów jedynie cztery nie są wycofywane z produkcji, przy czym mają pojemność 1 Mb lub 2 Mb i wymagają zasilania napięciem 5 V. Jednakże w pierwszym i drugim kwartale przyszłego roku do sprzedaży mają być wprowadzone kolejne układy o pojemnościach od 1 Mb do 32 Mb, zarówno zasilane napięciem 5 V, jak i mniejszym – 3 V. Niemal każdy z nich będzie dostarczany w dwóch lub trzech rodzajach obudów. Wszystkie, za wyjątkiem jednego, mają czas cyklu odczytu równy 70 ns. Nieco szybszy będzie układ A29801A o pojemności 8 Mb, dla którego czas ten będzie wynosił
Integrated Silicon Solutions W aktualnej ofercie ISSI znajdują się trzy pamięci równoległe NOR FLASH. Model o pojemności 512 kb i o pojemności 1 Mb mogą pracować w temperaturze od -40 do +85°C, a model 4-megabitowy nie jest przeznaczony do działania w temperaturach ujemnych. W drugiej połowie tego roku w sprzedaży mają pojawić się cztery kolejne układy. Ich pojemności wyniosą: 32 Mb, 64 Mb, 128 Mb oraz 256 Mb i będą mogły pracować w temperaturach ujemnych. Wszystkie z równoległych pamięci NOR FLASH firmy ISSI są zasilane napięciem od 2,7 do 3,6 V i mają czas dostępu równy 70 ns. Są oferowane w kilku wersjach obudów.
Macronix International W aktualnej ofercie Macronixa znaleźć można pamięci NOR FLASH o dostępie równoległym, o pojemnościach od 2 Mb do 1 Gb. Mogą one pracować z napięciem zasilania o wartości 1,8 V; 3 V lub 5 V, w zależności od wersji. Poszczególne układy różnią się też sposobem zapisu i odczytu. Część modeli przystosowana jest raczej do odczytu sekwencyjnego, a część do odczytu po stronach. Czas dostępu do równoległych pamięci firmy Macronix wynosi od 70 ns dla układów o najmniejszych pojemnościach, do 110 dla układów 1-gigabitowych. Producent oferuje też pamięci równoległe zabezpieczone hasłem lub trwale – przed zapisem.
Microchip Oferta pamięci FLASH z interfejsem równoległym, oferowanych przez Microchip
FM16W08 FM1608B MB85R256F FM28V020 FM18W08 FM1808B MR48V256A MB85R1001A MB85R1002A FM28V100 FM21L16 FM21LD16 MB85R4001A MB85R4002A FM22L16 FM22LD16 FM23MLD16
64 kb 64 kb 256 kb 256 kb 256 kb 256 kb 256 kb 1 Mb 1 Mb 1 Mb 2 Mb 2 Mb 4 Mb 4 Mb 4 Mb 4 Mb 8 Mb
8 k x 8 8 k x 8 32 k x 8 32 k x 8 32 k x 8 32 k x 8 b.d. 128 k x 8 64 k x 16 128 k x 8 128 k x 16 128 k x 16 512 k x 8 255 k x 16 256 k x 16 256 k x 16 512 k x 16
55 ns. Będzie on także dostępny w wersji o ograniczonym zakresie temperatury pracy -25…+85°C zamiast standardowego -40… +85°C.
Ramtron Ramtron Fujitsu Ramtron Ramtron Ramtron Lapis Fujitsu Fujitsu Ramtron Ramtron Ramtron Fujitsu Fujitsu Ramtron Ramtron Ramtron
Układ Łączna Model Producent
Pojemność
Napięcie zasilania
Maksymalny pobierany prąd 2,7 ÷ 5,5 12 mA 4,5 ÷ 5,5 15 mA 2,7 ÷ 3,6 b.d. 2,0 ÷ 3,6 12 mA 2,7 ÷ 5,5 12 mA 4,5 ÷ 5,5 15 mA 3,0 ÷ 3,6 b.d. 3,0 ÷ 3,6 b.d. 3,0 ÷ 3,6 b.d. 2,0 ÷ 3,6 12 mA 2,7 ÷ 3,6 12 mA 2,7 ÷ 3,6 12 mA 3,0 ÷ 3,6 b.d. 3,0 ÷ 3,6 b.d. 2,7 ÷ 3,6 12 mA 2,7 ÷ 3,6 12 mA 2,7 ÷ 3,6 14 mA
Czas cyklu
Temp. pracy [°C]
Wytrzymałość [cykli]
Żywotność
Obudowa
Amic Technology
Tabela 2. Oferowane obecnie na rynku pamięci FRAM z dostępem równoległym
T E M AT N U M E R U
PA M I Ę C I N I E U LO T N E
WYBÓR KONSTRUKTORA
ELEKTRONIKA PRAKTYCZNA 9/2013
Pamięci FRAM i Flash Winbond Wybór pamięci NOR Flash z interfejsem równoległym w ofercie Winbonda nie jest duży. Obecnie sprzedawane są tylko modele o pojemności 32, 64 i 128 Mb, w kilku obudowach, ale nie w wersjach przeznaczonych na do zastosowania w motoryzacji. Te modele oraz o większych pojemnościach (256 i 512 Mb) są dopiero w trakcie opracowywania. Wszystkie pracują w zakresie temperatury -40…+85°C. Modele o pojemnościach 32 Mb i 64 Mb mają czas dostępu na poziomie 70 ns, a większe układy – 90 ns. Wszystkie są zasilane napięciem 3/3,3 V.
Pamięci MRAM obejmuje około 50 produktów, z czego każdy dostępny jest w kilku obudowach. Zakres oferowanych pojemności wynosi od 512 kb do 64 Mb, a czas cyklu odczytu to zazwyczaj 70 ns, choć są też modele szybsze – 55-nanosekundowe i wolniejsze – 90-nanosekundowe. Zakres napięcia zasilania wynosi najczęściej od 2,7 do 3,6 V, choć niektóre układy mogą być zasilane napięciem z przedziału 1,65…1,95 V. Typowy zakres temperatury pracy układów tej firmy wynosi od -40 do +85°C lub od 0 do 70°C.
Micron Oferta pamięci równoległych NOR Flash Microna jest jeszcze większa, niż w wypadku układów szeregowych tej firmy i obejmuje aż 625 modeli aktualnie produkowanych lub wprowadzanych do produkcji. Dostępne pojemności wynoszą od 2 Mb do 2 Gb, a zakresy napięcia zasilania, zależnie od typu układu, mieszczą się w następujących prze-
działach: 1,7…2,0 V; 1,7…3,6 V, 2,3…3,6 V, 2,7…3,6 V i 4,5…5,5 V. Wśród tych układów można znaleźć modele o czasach dostępu z zakresu od 45 ns do 110 ns. Dostępne są też układy o podwyższonej wytrzymałości temperaturowej do +125°C.
Spansion Wybór pamięci równoległych Spansion jest ogromny. Są one podzielone na rodziny, różniące się przede wszystkim napięciem zasilania. Może ono wynosić 3 V; 1,8 V lub 5 V. Do pierwszej grupy należy najwięcej układów, a oferowane pojemności wynoszą od 8 Mb do 2 Gb. W drugiej grupie pamięci mają pojemność z zakresu od 8 do 512 Mb, przy czym w niektórych można jednocześnie zapisywać i odczytywać dane. Pamięci zasilane napięciem 5 V są w praktyce już wycofywane z produkcji. Najszybsze z pamięci równoległych firmy Spansion mają czas odczytu na poziomie 55 ns.
Opisane układy FRAM i NOR Flash to nie są jedyne rodzaje pamięci nieulotnych, niewymagające żadnego, nawet wbudowanego zasilania. Jedną z ciekawszych i coraz bardziej rozwijanych technologii jest MRAM, która obejmuje układy magnetorezystywne. Liderem w tej dziedzinie wydaje się być firma Everspin Technologies, która deklaruje, że pamięci MRAM cechują się żywotnością przekraczającą 20 lat i wytrzymują nieskończenie wiele cykli zapisu i odczytu. Do ich zalet należy też duża szybkość pracy. W przypadku układów szeregowych SPI (dostępne pojemności to 256 kB, 1 Mb i 4 Mb) zegar taktujący pracą interfejsu szeregowego może działać z częstotliwością do 104 MHz, co w trybie Quad-Output pozwala na uzyskanie dużej przepustowości odczytu. W przypadku układów z dostępem równoległym (pojemności 256 kb, 1 Mb, 4 Mb i 16 Mb), czas cyklu odczytu wynosi 35 lub 45 ns (w zależności od wersji). Omawiane układy mogą być zasilane, w zależności od modelu, napięciem 3,3 V lub 1,8 V i pracować w temperaturze, zależnie od wersji: 0…70°C, -40…+85°C, -40…+105°C lub od -40…125°C.
Podsumowanie
Obecny rynek półprzewodnikowych pamięci nieulotnych rozwija się bardzo dynamicznie. Nawet pomijając najbardziej dochodowe pamięci NAND Flash, można zauważyć, trwający postęp technologiczny i pojawiające się coraz to nowsze rodzaje układów. Szczególnie ciekawie zapowiada się przyszłość pamięci MRAM, które obecnie są produktami obiecującymi, ale zupełnie niszowymi. Wiele wskazuje na to, że niebawem nastąpi w ich dziedzinie znaczący postęp, gdyż za ich rozwój zabiera się jeden z gigantów rynku – Samsung Electronics. Na pewno przyniesie to wiele korzyści dla inżynierów-elektroników.
Marcin Karbowniczek, EP
ELEKTRONIKA PRAKTYCZNA 9/2013
67
T E M AT N U M E R U PA M I Ę C I N I E U LO T N E
NOTATNIK KONSTRUKTORA
Pamięci nieulotne – technologie i trendy Gwałtowny wzrost zapotrzebowania na urządzenia przenośne, takie jak aparaty fotograficzne, kamery, odtwarzacze multimedialne, tablety i smartfony, spowodował dynamiczny rozwój podzespołów przeznaczonych do ich konstrukcji. Mam tu na myśli przede wszystkim wyświetlacze, panele dotykowe, pamięci nieulotne oraz mikrokontrolery zdolne do „udźwignięcia” systemu operacyjnego. Jako użytkownicy przeważnie nie interesujemy się, co jest sercem takiego urządzenia i żądamy jedynie, aby działało ono płynnie i mieściło jak najwięcej danych, a więc przede wszystkim plików multimedialnych. Rosnące wymagania rynku musiały w takiej sytuacji spowodować rozwój technologii wytwarzania pamięci nieulotnych. Pamięć nieulotna nie potrzebuje zasilania, aby poprawnie przechowywać dane. Zwykle zasilanie pamięci nieulotnej jest wymagane, jeśli dane są zapisywane lub odczytywane. Istnieją co prawda pamięci zwane nvRAM, które składają się z pamięci statycznej RAM oraz akumulatorka lub baterii (ostatnio coraz częściej stosuje się superkondensatory), ale nie będziemy się nimi zajmowali. Gdy pamięć nieulotna jest nieużywana, to możemy odłączyć jej zasilanie lub usunąć ją z gniazda, aby oszczędzać energię.
68
Najlepiej znanymi przez użytkowników i najbardziej popularnymi są pamięci Flash, ale jednocześnie są rozwijane inne technologie, takie jak FeRAM, MRAM i OUM. Omówimy je pokrótce sygnalizując ich wady i zalety.
Flash Technologie Flash NOR i Flash NAND zdominowały rynek półprzewodnikowych pamięci nieulotnych. Pamięci NOR, które zaczęto oferować około 1988 r., doprowadzi-
ły do wycofania z użycia układów EPROM i EEPROM. Komórki pamięci Flash NOR są połączone równolegle, co umożliwia ich bezpośrednie adresowanie i łatwy, swobodny dostęp do pojedynczych słów danych. Z tego powodu są one przeznaczone przede wszystkim do zastosowania w aplikacjach niewymagających dużej gęstości zapisu, w których pamięć jest przede wszystkim odczytywana oraz jest wymagane, aby odczyt przebiegał z bardzo dużą prędkością. Łatwo zorientować się, że ten rodzaj technologii będzie doskonały do wytwarzania pamięci programu dla mikroprocesora. Do wad pamięci Flash NOR należy zaliczyć bardzo małą prędkość zapisu i kasowania danych, stosunkowo niedużą pojemność uzyskiwaną z milimetra kwadratowego powierzchni struktury, a przez to również relatywnie wysoką cenę. Pamięci wykonane w technologii Flash NAND wprowadzono na rynek niespełna rok później z przeznaczeniem przede wszystkim dla dysków półprzewodnikowych i co należy podkreślić, świetnie się do tego nadają. Na podłożu półprzewodnikowym o tej samej powierzchni, co w pamięci NOR, można ELEKTRONIKA PRAKTYCZNA 9/2013
Pamięci nieulotne – technologie i trendy wykonać pamięć NAND o około dwukrotnie większej pojemności. Pamięć tę można szybko programować i kasować, wolniej niż w pamięciach NOR przebiega odczyt danych. Liczba cykli programowania jest o rząd większa, niż dla NOR, a przy tym te pamięci są tanie. Niestety, operacje zapisu/ odczytu muszą przebiegać sekwencyjnie, więc ten rodzaj pamięci raczej nie nadaje się wprost tj. bez stosowania żadnych „zabiegów” do pełnienia roli pamięci programu dla mikroprocesora. Kiedy do swojej aplikacji wybrać pamięć NOR, a kiedy NAND? Odpowiedź zależy od wymagań systemu docelowego. Krótkie porównanie podstawowych parametrów pamięci wykonanych w technologii NOR i NAND umieszczono w tabeli 1. Dla systemu, który musi być uruchamiany z pamięci Flash, wykonywać kod programu w niej zapamiętany lub dla takiego, w którym jest istotny czas opóźnienia odczytu, odpowiedzią będzie pamięć NOR. Dla aplikacji przechowujących dane lepsza będzie pamięć NAND. Stosując pamięci Flash należy pamiętać, że zapamiętanie informacji wymaga wcześniejszego skasowania komórki pamięci. W pamięciach NAND operacje zapisu i kasowania przebiegają blokami (sektorami) o określonej wielkości – nie można po prostu zapamiętać pojedynczego słowa, a gdyby zaszła taka konieczność, to wewnętrzny kontroler pamięci zadba o to, aby pozostała zawartość bloku nie zmieniła się. Niestety, przez różne cechy i parametry pamięci Flash konstruktor nie może zastosować tylko jednego ich rodzaju w urządzeniu, takim jak na przykład smartfon. Wymaga on zarówno sporego „magazynu” na przechowywane dane, jak i pamięci programu, najczęściej z zapisanym kodem systemu operacyjnego. Dlatego w takich aplikacjach najczęściej stosuje się albo oba typy pamięci, albo NAND w połączeniu z pamięcią PSRAM lub DRAM, do której jest przepisywany kod programu po załączeniu urządzenia i z niej uruchamiany.
FeRAM FeRAM jest rodzajem pamięci nieulotnej, w której użyto efektu ferroelektrycznego do zapamiętywania bitów słowa danych. Efekt ten polega na zdolności materiału do przechowywania polaryzacji elektrycznej również przy nieobecności pola elektrycznego,
które tę polaryzację wywołało. Komórka pamięci jest tworzona poprzez nałożenie materiału ferroelektrycznego w postaci krystalicznej pomiędzy dwa doprowadzenia płaskich elektrod w taki sposób, aby został utworzony kondensator z materiałem ferroelektrycznym jako dielektrykiem. Konstrukcja tego kondensatora jest zbliżona do typowej komórki pamięci DRAM z tym, że zamiast przechowywać informację w postaci naładowanego kondensatora, bit jest przechowywany w postaci polaryzacji ładunków w obrębie struktury krystalicznej. W ten sposób – poprzez zmianę polaryzacji ładunków za pomocą pola elektrycznego wewnątrz kondensatora – można tworzyć i zapamiętywać dwa stabilne stany. Stany te umownie mogą odpowiadać wartościom logicznym bitów, to jest „0” i „1”. Prosta zasada działania, niemalże identyczna z tą stosowaną w pamięciach RAM, umożliwia konstrukcję nieskomplikowanych obwodów zapisu i odczytu komórek pamięci. Jak wspomniano wcześniej, materiał ferroelektryczny zachowuje polaryzację ładunków pomimo zaniku pola elektrycznego i w związku tym, nie tak jak w pamięciach RAM, dane mogą być przechowywane w sposób nieulotny. Zbudowana z jego wykorzystaniem komórka pamięci nie wymaga również okresowego odświeżania. Pamięć FRAM jest odporna na działania zewnętrznego pola magnetycznego. Jej zasada działania, nie ma nic wspólnego z ferromagnetyzmem. Podobny jest jedynie opis zjawiska fizycznego: w przypadku materiałów ferroelektrycznych polaryzacji ulegają ładunki, natomiast w przypadku materiałów ferromagnetycznych – domeny magnetyczne. Kryształ używany do konstrukcji komórki pamięci ma ruchomy atom w środku swojej struktury (oznaczony kolorem żółtym). Przyłożenie pola elektrycznego powoduje, że „mobilny” atom przesuwa się w kierunku działania sił pola. Odwrócenie polaryzacji pola powoduje przemieszczanie się atomu w kierunku przeciwnym. Pozycje atomy na „górze” i „dole” struktury krystalicznej są stabilne. Atom pozostaje w jednej z nich w przypadku braku pola elektrycznego. Jako komórka pamięci cyfrowej, taka struktura jest wręcz idealna: ma dwa stany stabilne i potrzebuje niewielkiej mocy do zmiany stanu, który zachowuje nawet mimo działania różnych czynników zewnętrznych.
Mimo, iż podstawowym elementem komórki pamięci jest kondensator, to jednak bity nie są zapamiętywane jako ładunek liniowy. Odczyt takiej komórki pamięci wymaga detekcji położenia atomu wewnątrz struktury krystalicznej. Niestety, nie może ono być rozpoznane bezpośrednio i musi tu być używany pewien „zabieg”. Do kondensatora jest przykładane napięcie. Na skutek tego pomiędzy jego okładzinami pojawia się pole elektryczne. Ruchomy atom przesuwa się zgodnie z kierunkiem działania pola, lub pozostaje w spoczynku, jeśli jego położenie jest z nim zgodne. W środku struktury kryształu występuje stan równowagi, który utrzymuje pozostałe atomy w ściśle określonych położeniach sieci krystalicznej, a wypadkowe pole elektryczne jest równe 0. Jeśli ruchomy atom przemieszcza się, to powoduje zaburzenie, co skutkuje impulsem energetycznym. Impuls ten dodaje się do ładunku zgromadzonego przez kondensator. Na skutek tego jedne kondensatory będą naładowane do wartości ładunku wymuszonej przez pole elektryczne a inne będą miały ładunek będący kombinacją oddziaływania pola
Tabela 1. Porównanie parametrów pamięci NAND i NOR (na podstawie materiałów firmy Toshiba) Parametr Gęstość Prędkość Prędkość Prędkość Prędkość Interfejs Aplikacje
odczytu zapisu kasowania programowania (kasowanie + zapis)
ELEKTRONIKA PRAKTYCZNA 9/2013
NAND Flash (x8) 512 Mb…4 Gb 16 MB/s 6,9 MB/s 64 MB/s 6,1 MB/s Dostęp pośredni Pamięć programu lub pamięć danych
NOR Flash (x16) 16 Mb…256 Mb 55 MB/s 0,16 MB/s 0,032 MB/s 0,026 MB/s Dostęp swobodny Pamięć programu
69
T E M AT N U M E R U PA M I Ę C I N I E U LO T N E
NOTATNIK KONSTRUKTORA elektrycznego i ruchu atomu. Co prawda, odczyt pamięci wymaga przemieszczenia atomu, ale należy pamiętać, że atom przebywa bardzo krótką drogę. Jego położenie zmienia się w czasie 1 nanosekundy, a cała operacja odczytu zajmuje około 70 nanosekund i to głównie ze względu na prędkość interfejsu. Łatwo na podstawie powyższego opisu wywnioskować, jak będzie wyglądał obwód określający stan bitu. Będzie nim rodzaj komparatora porównującego ładunek odebrany z komórki pamięci z pewnym poziomem odniesienia. Dobrze, a co ze zmianą polaryzacji ładunku? Przecież podczas odczytu atom przemieszcza się wewnątrz struktury. W związku z przyjętą metodą odczytu, każdemu cyklowi dostępu do pamięci towarzyszy rodzaj operacji odświeżania. A co w związku z tym z czasem dostępu do pamięci? Czy nie jest przez to odświeżanie wydłużany? Niestety tak. Wpływ odświeżania na czas odczytu pamięci FRAM jest znaczny, ponieważ zajmuje ono aż 50 nanosekund. Operacja zapisu jest bardzo podobna do opisywanego wcześniej odczytu. Inaczej niż inne rodzaje pamięci programowane elektrycznie, FRAM nie wymaga przyłożenia wysokiego napięcia czy też długiego czasu zapisu. Wewnętrzny obwód przykłada napięcie do okładzin kondensatora ferroelektrycznego. Powoduje to odpowiednie przemieszczenie ruchomego atomu i polaryzację kryształów. Jeśli jest to potrzebne, nowe dane po prostu zmieniają stan polaryzacji kryształu ferroelektrycznego. Jak przy odczycie, zmiana stanu kryształu zajmuje ok. 1 nanosekundy, a cała operacja zapisu około 70 nanosekund (7×10-8s!). Nieporównywalnie krótki czas, jeśli odnieść go np. do pamięci FLASH.
MRAM Pamięć MRAM przechowuje informację w kanapce składającej się z dwóch cienkich warstw ferromagnetyka przedzielonych izolatorem. Opór elektryczny takiej „kanapki” jest zależny od tego, czy spiny w warstwach ferromagnetycznych są ułożone w tym samym kierunku (mała rezystancja), czy też są zorientowane przeciwnie (duża rezystancja). Zmiana kierunku polaryzacji magnetycznej jednej z warstw odpowiada zmianie stanu
70
bitu. Odbywa się ona za pomocą impulsów prądu dostarczanego selektywnie do poszczególnych komórek. Czas niezbędny do przemagnesowania pamiętającej warstwy magnetycznej ogranicza maksymalną prędkość zapisu danych, podobnie jak na czas odczytu ma znaczący wpływ sposób mierzenia rezystancji. Producenci i firmy prowadzące badania opracowali wiele różnych technik sterowania magnetycznymi komórkami pamięciowymi, które zapewniają czas dostępu rzędu 20…40 ns, a opracowania eksperymentalne nawet 200 ps! Oprócz dużej szybkości pracy i względnie niewielkiemu apetytowi na energię, najpoważniejszą zaletą pamięci MRAM jest nieograniczona liczba cykli zapisu danych (przypomnijmy, że pamięci Flash mają żywotność 100000…1 mln cykli kasowanie/ zapis). Odczyt stanu bitu polega na pomiarze rezystancji komórki. Poszczególne komórki są wybierane (typowo) przez zasilenie połączonego z nimi tranzystora, który załącza przepływ prądu przez daną komórkę do masy. Jak wspomniano, rezystancja komórki zmienia się ze względu na występowanie zjawiska tunelowania magnetycznego. Odczyt stanu komórki odbywa się za pomocą pomiaru natężenia płynącego przez nią prądu. Typowo, jeśli warstwy ferromagnetyka w kanapce są spolaryzowane w tym samym kierunku, to uznaje się, że jest to „1”, jeśli przeciwnie – „0”. Podstawową wadą pierwszych pamięci MRAM było duże zapotrzebowanie na energię. W uproszczeniu ich zasada działania opierała się na zmianie polaryzacji magnetycznej na skutek przepływu dużego prądu przez komórkę pamięci. Z drugiej strony, duże pole magnetyczne przy niewielkich odległościach komórek pamięci powodowało również zmiany stanu sąsiadów, więc musiały one mieć stosunkowo duże wymiary. Jednak ze względu na potencjał nowego rodzaju pamięci naukowcy nie poddawali się i współcześnie jest np. używana technika o nazwie SST (Spin Transfer Switching), w której do bezpośredniej zmiany polaryzacji domeny magnetycznej jest używany spin „spolaryzowanych” elektronów. Dzięki nowej technice można było znacznie zredukować pobór energii (przy zastosowaniu nowej struktury kompozytowej nowej 50-krotnie mniejszy prąd) oraz zmniejszyć wymiary komórki pamięci. Prognozuje się, że SST umożliwi budowę układów pamięci w technologii 65 nm i mniej. Niestety, przy dużej prędkości pracy pamięci, pomimo zastosowania nowej techniki, jej apetyt na energię nadal jest bardzo duży. Mimo, iż pamięci MRAM są dostępne w handlu od 2006 r., to jednak wydaje się, że najlepsze czasy dla MRAM’ów dopiero nadejda. Nadal są opracowywane nowe, konkurencyjne metody zmiany polaryzacji
domeny. Można wspomnieć chociażby o metodzie zmiany polaryzacji pod wpływem temperatury TAS-MRAM (Thermal Assisted Switching) lub na skutek przepływu prądu w pionowych kolumnach, co niweluje problem zakłóceń – VMRAM (Vertical transport MRAM).
PRAM, OUM Pod nazwami PRAM (czasami PCRAM – Phase-change RAM) i OUM (Ovonic Unified Memory) kryje się ten sam rodzaj pamięci nieulotnej, której zasada działania opiera się na zjawisku zmiany rezystancji na skutek zmiany fazy z krystalicznej na amorficzną nośnika krystalicznego. Zmiana fazy jest wykonywana za pomocą temperatury, tj. miejscowego podgrzewania komórki pamięci za pomocą impulsów prądu elektrycznego. Odczyt stanu komórki pamięci jest wykonywane przez pomiar rezystancji nośnika. Autorem koncepcji i prototypów pamięci PRAM jest firma Ovonyx, stąd pamięć określanie pamięć OUM. Obecnie rozwojem tego rodzaju pamięci zajmuje się głównie firma Intel. Nośnikiem w pamięci PRAM jest stop tellurku antymonu i tellurku galu, podobny do stosowanego w płytach CD-R/W. Co ciekawe, proces zmiany fazy nośnika może być zakończony w przeciągu 10 ns. Typowo pamięci dostępne komercyjnie zapewne na skutek ograniczeń interfejsu realizują zapis pojedynczego bitu w przeciągu około 300 ns. Niewątpliwą zaletą pamięci PRAM jest duża liczba cykli zapisu, która sięga aż 1012! Co ciekawe, w pojedynczej komórce pamięci można zapisać więcej niż jeden bit informacji. W 2006 r. firma Samsung wprowadziła do sprzedaży pamięć PRAM o pojemności aż 512 Mb, to jest o znacząco więcej niż dostępne w handlu pamięci FeRAM lub MRAM. Tuż po Samsungu w październiku 2006 r. firmy Intel i STMicroelectronics zademonstrowały własne pamięci PRAM, natomiast w grudniu prezentacji PRAM dokonała firma IBM.
Podsumowanie W artykule omówiono najbardziej popularne rodzaje pamięci nieulotnych. Konkurencja na tym polu jest bardzo silna i co pewien czas pojawiają się pomysły na nieulotne zapamiętanie informacji. Firmy już wytwarzają pamięci NAND w technologii 25 nm i o strukturach trójwymiarowych, poszukuje się też nowych materiałów do wytwarzania pamięci FeRAM. Ten postęp jest wymuszany przez wymagania rynku i oczekiwania konsumentów. Współczesne trendy można określić za pomocą kilku słów: większa pojemność, większa szybkość pracy, mniejsze zużycie energii i duża niezawodność.
Jacek Bogusz, EP
ELEKTRONIKA PRAKTYCZNA 9/2013
Rynek pamięci FRAM jest jednym z najszybciej rozwijających się w ostatnim czasie. Technologia, której celem jest zapewnienie trwałości danych oraz wsparcie dla procesów technologicznych i produkcyjnych, zyskuje nowe zalety, a co ważne – również nowych producentów. Eksperci Farnell element14 wskazują, że wśród najczęściej wybieranych marek znajdują się Ramtron, Fujitsu oraz od niedawna – produkty firmy Lapis.
Pamięci ferroelektryczne FRAM to podzespoły, które zapewniają użytkownikom krótki czas dostępu, mały pobór energii, a przede wszystkim – bezpieczeństwo magazynowanych danych. Ponadto, zapewniają przechowywanie zapamiętanych danych również po odłączeniu napięcia zasilania. W odróżnieniu od pamięci typu Flash, ich dodatkowym atutem jest ogromna liczba operacji zapisu i kasowania. Nowoczesne pamięci FRAM, które współcześnie są wprowadzane do sprzedaży, charakteryzują się wyższą wytrzymałością w porównaniu ze wcześniejszymi egzemplarzami oraz są bardziej energooszczędne od pamięci EEPROM lub Flash. Umożliwiają one również adresowanie i zapisywanie lub odczytywanie pojedynczych słów danych – nie trzeba posługiwać się blokami. Tym samym można powiedzieć, że pamięci FRAM są hybrydą łączącą cechy pamięci Flash i RAM, a przy tym mogą je skutecznie zastąpić. Oferta pamięci FRAM pomimo stosunkowo małego zróżnicowania pod względem liczby producentów, rozwija się bardzo dynamicznie, a jego dotychczasowi liderzy, firmy Ramtron, Fujitsu i Lapis, są zmuszone do oferowania swoim odbiorcom rozwiązań nowych i jeszcze bardziej innowacyjnych niż dotychczas.
Liczy się czas Jedną z zalet nieulotnych pamięci FRAM jest ich żywotność. Wśród produktów dostępnych w ofercie Farnell element14, jednym z liderów w tej kategorii jest pamięć Ramtron FM24C04B. Jej żywotność jest szacowana na około 38 lat przy pracy w temperaturze 75˚C. ELEKTRONIKA PRAKTYCZNA 9/2013
Tak długi okres eksploatacji zapewnia przede wszystkim bezpieczeństwo przechowywanych danych, gwarantuje użytkownikom stabilność działania systemu oraz zapewnia wyeliminowanie problemów powodowanych przez pamięci oparte m.in. o technologię EEPROM – utrata danych czy problemy z zapisem. Jest ona też doskonałym rozwiązaniem dla użytkowników ceniących sobie parametry wytrzymałości. Dzięki rozwiązaniom zastosowanym przez firmę Ramtron pamięć FM24C04B zapewnia aż 1012 cykli zapisu i odczytu. Rachunek jest bardzo prosty – w porównaniu z pamięciami EEPROM daje to milion razy większe możliwości. Oprócz zalet w postaci dużej wydajności i żywotności, pamięci Ramtron FM24C04B mają również doskonałe parametry użytkowe. Są one wyposażone w popularny, dobrze znany interfejs I2C, którego maksymalna częstotliwość sygnału zegarowego wynosi 1 MHz. Zasilane napięciem stałym 4,5…5,5 V pobierają prąd maksymalny o natężeniu zaledwie 400 mA. Pojemność pamięci FM24C04B wynosi 4 Kb. Krótki czas dostępu, ograniczony głównie parametrami interfejsu szeregowego – w porównaniu z dostępnymi na rynku odpowiednikami tego produktu wykonanymi w technologii Flash – zapewnia znacznie większą efektywność realizowanych procesów.
Konkurencja nie pozostaje w tyle Marka Ramtron jest zdecydowanym liderem wśród producentów pamięci nieulotnych FRAM. Nie zniechęca to jednak
konkurentów – Fujitsu i Lapis. Obie firmy regularnie prezentują nowe produkty, które jakością i parametrami dorównują Ramtronowi. Firma Fujitsu zaprezentowała dwie nowe pamięci FRAM – MB85RS1MT i MB85RS2MT o pojemności, odpowiednio, 1 Mb i 2 Mb. Pod względem gęstości upakowania komórek pamięci są to najbardziej zaawansowane produkty oferowane przez Fujitsu Semiconductor. Oba układy mają interfejs szeregowy SPI. Nowe pamięci Fujitsu mają 1013 cykli odczytu/zapisu. Dzięki temu są one optymalne dla zróżnicowanych aplikacji, m.in. do inteligentnych liczników, urządzeń przemysłowe oraz do sprzętu medycznego. W porównaniu z pamięciami EEPROM o identycznej gęstości upakowania komórek, układy MB85RS1MT i MB 85RS2MT zużywają aż o 92% mniej energii! Czołowi producenci już zapowiadają, że nowe produkty będą zużywały jeszcze mniej energii i zajmowały jeszcze mniej miejsca na płytce drukowanej. Dzięki temu, że mogą one pełnić rolę pamięci operacyjnej i pamięci nieulotnej, znacznie obniżą też koszt komponentów montowanych w urządzeniu. Rozwiązania zastosowane we wszystkich pamięciach FRAM zapewniają również wysoki poziom bezpieczeństwa informacji i funkcjonowania aplikacji. Już teraz użytkownicy nie muszą obawiać się o skutki nagłych spadków napięcia lub o utratę zasilania.
Chris Sullivan Global Head of Solutions Marketing Farnell element14
71
T E M AT N U M E R U
Przegląd oferty producentów pamięci nieulotnych FRAM
PA M I Ę C I N I E U LO T N E
PREZENTACJE
NOTATNIK KONSTRUKTORA
Klocki dla Arduino (2)
Procedury obsługi wybranych modułów dodatkowych dla Arduino – wyświetlacz LED i zegar PCF8583 Arduino jest nie tylko świetną platformą prototypową. Ogromy wybór modułów dodatkowych umożliwia budowanie funkcjonalnych urządzeń. Unika się przy tym konieczności zaprojektowania płytki drukowanej i jej montażu. W artykule prezentujemy kilka „klocków”, z których można poskładać funkcjonalne urządzenia oraz metody ich obsługi programowej.
„Klocki” – kanapki dla Arduino, oferowane przez wielu niezależnych producentów oraz do samodzielnego wykonania, których dokumentacja jest dostępna w Internecie, pozwalają na szybkie wykonanie zegara, woltomierza, układu sterującego i wielu, wielu innych. Przyjrzyjmy się przykładom programów wykonanych dla Arduino Duemilanove oraz modułów opisywanych w Elektronice Praktycznej.
Obsługa wyświetlacza LED 7-segmentowe wyświetlacze LED wydają się być ponadczasowe. Pomimo tego, że w handlu są dostępne doskonałe wyświetlacze LCD o nieporównywalnych możliwościach, to jednak wyświetlacze LED są nadal chętnie używane w wielu aplikacjach, w których jest wystarczające wyświetlanie liczb i nieskomplikowanych komunikatów. W tym przykładzie użyjemy modułu AVT-1616 w wersji 2, który jest wyposażony nie tylko w 4-pozycyjny, 7-segmentowy wyświetlacz LED, ale również termometr 1-Wire, zegar czasu rzeczywistego PCF8583, fotorezystor, dwa przyciski ogólnego przeznaczenia oraz przycisk zerowania. Wyposażenie płytki predysponuje ją przede wszystkim do wykonania zegara – zbudujemy go w tym przykładzie. Na początku przyjmijmy pewne założenia. Czas będzie wskazywany na wyświetlaczu LED, a odmierzany przez układ scalony zegara RTC PCF8583. Na początek, dla uproszczenia, przyjmijmy, że nie będziemy używali kalendarza, a jedynie liczników go-
72
dzin, minut i sekund. Nie będziemy też używali termometru 1-Wire i fotorezystora do regulowania natężenia oświetlenia – zajmiemy się nimi w następnym przykładzie. Nastawy czasu zegara oraz przełączanie trybów będzie wykonywane za pomocą przycisków SW1 (pierwszy od prawej) i SW2 (drugi od prawej). Podczas wyświetlania godziny dwukropek będzie migotał, a gdy będą wyświetlane sekundy lub godziny/minuty, dwukropek będzie świecił się nieprzerwanie. W tym przykładzie wykonamy program zegara realizujący podstawowe funkcje, działający zgodnie z podanymi założeniami. W kolejnym artykule opiszemy, w jaki sposób wykorzystać pozostałe peryferia i wykonamy nieco bardziej skomplikowany. Wyświetlacz LED na płytce AVT1616 ma 4 cyfry. Ich katody są wspólne i dołączone do wyprowadzeń portu PORT D, natomiast anody są rozdzielone i sterowane za pomocą wyprowadzeń 0…3 portu PORT B. Poziomem aktywnym załączającym zasilanie anody i powodującym świecenie segmentu jest poziom niski. Na przykład, jeśli chcemy załączyć świecenie segmentu „A” pierwszej cyfry, należy wyzerować wyprowadzenia PORT D0 oraz PORTD B0 (będziemy je w skrócie nazywali PD0 i PB0). Wyzerowanie wyprowadzenia PB1, ustawienie PB0 oraz pozostawienie PD0 bez zmian powoduje zaświecenie się segmentu „A” drugiej cyfry itd. Taka technika
wyświetlania nosi nazwę multipleksowania i wymaga, aby wyświetlacz był „przemiatany” z taką częstotliwością, aby ludzkie oko nie zauważyło migotania – zwykle 50 Hz lub więcej. Dwukropek ma własną anodę oznaczoną na schemacie „UC”. Doprowadzono do niej napięcie +5 V, natomiast katoda za pośrednictwem rezystora ograniczającego prąd jest dołączona do PB4. Łatwo domyślić się, że w takiej sytuacji wystarczy poziom niski na wyprowadzeniu PB4, aby dwukropek zaświecił się. Układ scalony zegara RTC PCF8583 jest dobrze znany Czytelnikom EP. Ma on interfejs I2C i jest dołączony do wyprowadzeń PC5 (SCL) i PC4 (SDA) mikrokontrolera płytki Arduino. Przyciski są dołączone do PC1 (SW1) oraz PC2 (SW2) i zasilane przez rezystory zamontowane na płytce. Ich przyciśnięcie powoduje zwarcie wyprowadzenia do masy, co łatwo testuje się w programie. Na płytce jest też zamontowany piszczek, którego można użyć np. jako sygnalizatora alarmu. Steruje się nim za pomocą wyprowadzenia PB5, którego wyzerowanie powoduje głośną sygnalizację dźwiękową.
Maszyna stanów Długo zastanawiałem się na tym, w jaki sposób wykonać funkcję obsługi wyświetlacza. Zwykle robiłem ją z użyciem proceduELEKTRONIKA PRAKTYCZNA 9/2013
Klocki dla Arduino Listing 1. Uproszczony wygląd pętli głównej programu obsługi zegara //główna pętla programu void loop() { /*program ma 6 stanów, pętla jest wykonywana nieskończenie, więc można użyć instrukcji „for”, która będzie wykonywana w nieskończonej pętli poprawnie numerując stany: - stan 0: obsługa klawiszy i nastaw, - stan 1: odczyt zegara RTC, - stan 2...5: wyświetlanie poszczególnych cyfr. Numery stanów zawiera zmianna „numer_stanu”, są one rozpatrywane w klauzuli switch-case. */ for (numer_stanu = 0; numer_stanu < 6; numer_stanu++) { switch (numer_stanu) { //obsługa klawiszy case 0: . . break //odczyt zegara case 1: . . break //wyświetlenie cyfry 1 (pierwsza od prawej) case 2: wyswietl_LED(1); break; //wyświetlenie cyfry 2 case 3: wyswietl_LED(2); break; //wyświetlenie cyfry 3 case 4: wyswietl_LED(3); break; //wyświetlenie cyfry 4 case 5: wyswietl_LED(4); break; //wyświetlenie cyfry 4 (pierwsza od lewej) default: break; } } }
ry obsługi przerwania któregoś z timerów, co było bardzo wygodne. Wystarczy wywoływać ją z pewną częstotliwością, pobierać w niej zawartość bufora do wyświetlania i wyświetlać znak po znaku. Zapewnia to „płynność” obsługi i jednakową jasność świecenia wszystkich znaków (przy jednakowym natężeniu prądu płynącego przez segmenty zależy ona przede wszystkim od czasu świecenia cyfry). Jednak Arduino IDE w swojej podstawowej wersji, bez bibliotek rozszerzeń, nie pozwala na użycie przerwań timerów do czegoś innego, niż odmierzanie opóźnień w funkcji delay i podobnych. Dlatego jako swego rodzaju ćwiczenie postano-
wiłem zastosować nieco zapomnianą technika programowania – utworzyć w programie maszynę stanów. Nie wdając się nadmiernie w szczegóły można powiedzieć, że maszyna stanów przyjmuje sekwencyjnie określone stany, w których są realizowane pewne czynności. Na potrzeby tego przykładu programowania wykonałem procedurę, która przyjmuje 6 stanów, ponumerowanych od 0 do 5 i umieściłem ją w pętli głównej programu. Uproszczona wersję tej procedury zamieszczono na listingu 1. Ze względu na obsługę różnych wariantów wyświetlania jest ona dosyć obszerna – jej pełną wersję można znaleźć
w materiałach dodatkowych, natomiast tu pokazano tylko tyle, aby zrozumieć zasadę działania. Za numerowanie i przez to zmianę stanów jest odpowiedzialna pętla for(numer_stanu = 0; numer_stanu < 6; numer_stanu++);. Jest ona wykonywana w nieskończonej pętli loop przypominającej pętlę while (1) znaną z języka C, więc za każdym razem, po zakończeniu iteracji, jest wywoływana na nowo i zmienna numer_stanu ponownie przyjmuje wartości z zakresu 0…5. Poszczególnym wartościom zmiennej numer_stanu odpowiada czynność wykonywana przez program obsługi. I tak, gdy zmienna ma wartość: • 0, to są odczytywane przyciski, • 1, to jest odczytywany licznik czasu zegara RTC, • 2, to jest wyświetlana pierwsza cyfra od lewej, • 3, to jest wyświetlana druga cyfra od lewej, • 4, to jest wyświetlana trzecia cyfra od lewej, • 5, to jest wyświetlana czwarta cyfra od lewej. Tu pętla for kończy pracę i loop wymusza jej ponowny przebieg. W ten sposób stany są zmieniane cyklicznie i nieprzerwanie. Taka implementacja maszyny stanów powoduje, że CPU spędza w poszczególnych stanach tyle czasu, ile potrzebuje – maszyna pracuje asynchronicznie, ponieważ czasy trwania poszczególnych stanów są niezdefiniowane, a przez to również czas przejścia od stanu do stanu. Może to wpłynąć na jasność świecenia poszczególnych cyfr. Przyjrzyjmy się jednak temu, co ma do wykonania nasza maszyna. Stan numer 0 to obsługa przycisków. Przy normalnym użytkowaniu zegara, mikrokontroler szybko „dowie się” za pomocą instrukcji if, że żaden z przycisków nie jest wciśnięty i przejdzie do kolejnego stanu. Jeśli będziemy w trybie ustawiania zegara, to musimy zgodzić się na pewne kompromisy, ale prędkość obsługi przycisków i tak nadal będzie bardzo duża.
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2013
73
NOTATNIK KONSTRUKTORA Stan numer 1 odpowiada za odczyt liczników czasu zegara RTC. Przy stosunkowo dużej szybkości pracy interfejsu I2C odczyt zegara zajmuje bardzo mało czasu i jego wpływ na świecenie cyfr, podobnie jak obsługi przycisków, jest pomijalnie mały. Stany numer 2…5 odpowiadają za obsługę wyświetlania poszczególnych cyfr. Jest ono realizowane za pomocą tej samej funkcji o nazwie wyświetl_LED(), której argumentem jest numer wyświetlanej cyfry. Samą funkcję umieszczono na listingu 2. W tym momencie dosyć jest zauważyć, że na jej końcu dodano instrukcję delay(5), której zadaniem jest wydłużenie czasu wyświetlania każdej cyfry. Można zaryzykować twierdzenie, że czasy obsługi stanów 0 i 1 jest pomijalnie mały w porównaniu z czasem obsługi stanów 2…5 i nie wpływa na jasność świecenia cyfr. To twierdzenie okazało się słuszne również w praktyce.
Zegarek z sekundnikiem Opisaną maszynę stanów zastosowano w przykładowym programie do obsługi zegara. Cały program przykładowy jest dostępny w pliku Obsluga_4xLED.ino w materiałach dodatkowych do artykułu na serwerze FTP. Program jest opatrzony licznymi komentarzami, co ułatwi samodzielną analizę. W artykule skupimy się jedynie na opisaniu najważniejszych aspektów. Każdy program w środowisku Arduino rozpoczyna się od zdefiniowania funkcji wyprowadzeń oraz nadania im poziomów początkowych. W środowisku Arduino IDE służy do tego specjalna funkcja void setup(), w której określa się funkcje poszczególnych bitów portów I/O i bloków peryferyjnych. Jest to o tyle wygodne, że podczas analizowania programu można szybko zorientować się odnośnie do funkcji pełnionych przez poszczególne wyprowadzenia. Zmusza też programistę do zachowania pewnego „porządku” w programie. Ważną częścią programu obsługi zegara jest tablica dokonująca translacji cyfry na kod wyświetlacza 7-segmentowego. Wykonałem ja niejako w dwóch krokach, chociaż oczywiście można było uprościć deklarację kosztem jej czytelności. W kroku pierwszym są zdefiniowane wszystkie bity odpowiedzialne za świecenie pojedynczych segmentów. Na przykład, świeceniu segmentu „A” odpowiada bit numer 0, więc jego definicję można zapisać binarnie „11111110” lub szesnastkowo „0xFE”. Podobnie segment „B”, który jest dołączony do bitu numer 1 – „0xFD”. Ponieważ są to liczby stałe i nie zmieniają się podczas pracy programu, to można je zdefiniować za pomocą dyrektywy #define. Właściwą tablicę konwersji liczb na kod wyświetlacza 7-segmentowego należy umieścić w pamięci programu (Flash). W Arduino służy można posłużyć się w tym celu
74
Rysunek 1. Sposób skopiowania bibliotek do folderu programu Listing 2. Procedura wyświetlająca poszczególne znaki (numer znaku jest przekazywany w argumencie wywołania funkcji)
//konwersja i wyświetlenie liczby na LED, liczby są w zmiennej globalnej //bufor_led; argumentem funkcji jest numer wyświetlanej pozycji void wyswietl_LED(byte numer_pozycji) { //wyłączenie wszystkich cyfr PORTB = PORTB | 0x0F; //konwersja liczby na znak do wyświetlenia, wyświetlenie znaku //argument numer pozycji jest o 1 większy od indeksu tablicy, //więc pomniejszamy go o 1 //bufor_led zawiera liczby do wyświetlania, tablica wzorce_znaków //pod numerem indeksu zawiera odpowiednie rozmieszczenie segmentów //do wyświetlenia PORTD = wzorce_znakow[bufor_led[numer_pozycji-1]]; PORTB = PORTB & anody_cyfr[numer_pozycji-1]; delay(5); }
instrukcją const służącą do definiowania stałych. Tablica o nazwie wzorce_znaków zawiera 11 bajtów, których pozycje odpowiadają konwertowanym cyfrom. I tak, na pozycji 0 umieściłem wzorzec znaku „0”, a na pozycji 9 wzorzec znaku „9”. Na pozycji 10 (przy-
pomnijmy, że indeks w tablicy zaczyna się od 0) umieszczono kod wyłączający wszystkie segmenty, którego użyto do wygaszania zera nieznaczącego. Teraz łatwo zauważyć, dlaczego tablice wzorców znaków definiowano dwuetapo-
Listing 3. Fragment maszyny stanu odpowiedzialnej za odczyt czasu, zależnie od zmiennej tryb_wyswietlania
//odczyt zegara case 1: p.get_time(); //wyświetlenie czasu, tryb 0 if (tryb_wyswietlania == 0) { bufor_led[3]= p.minute % 10; bufor_led[2] = p.minute / 10; bufor_led[1]= p.hour % 10; bufor_led[0] = p.hour / 10; if (bufor_led[0] == 0) bufor_led[0] = 10; //wyłączanie zera nieznaczącego if (p.second%2 == 0) digitalWrite(pb4, HIGH); //sterowanie dwukropkiem (PB4) else digitalWrite(pb4, LOW); } else //wyświetlenie sekund, tryb 1 if (tryb_wyswietlania == 1) { bufor_led[3] = p.second % 10; bufor_led[2] = p.second / 10; bufor_led[1] = bufor_led[0] = 10; digitalWrite(pb4, LOW); } else //wyświetlanie w czasie nastaw, tryb 3 if (tryb_wyswietlania == 3) { bufor_led[3] = tmpminuty % 10; bufor_led[2] = tmpminuty / 10; bufor_led[1] = tmpgodziny % 10; bufor_led[0] = tmpgodziny / 10; } break;
ELEKTRONIKA PRAKTYCZNA 9/2013
Klocki dla Arduino wo. Poszczególne wiersze są reprezentowane przez iloczyn logiczny stałych definiujących zaświecanie się segmentów. W ten sposób jest bardzo łatwo modyfikować wygląd znaków i wyszukiwać ewentualne błędy. Kody załączenia poszczególnych anod również zawarto w 4-bajtowej tablicy o nazwie anody_cyfr. Tu przypuszczalnie również można było zaoszczędzić kilka bajtów, ale z doświadczenia wiem, że mając do dyspozycji tablicę z kodami załączającymi anody jest łatwo zmieniać kolejność wyświetlania cyfr lub modyfikować program do użycia na innej płytce, z innymi połączeniami pomiędzy wyświetlaczem a mikrokontrolerem. Funkcja wyświetlająca znak (list. 2) jako argument przyjmuje numer pozycji wyświetlacza. Poszczególne znaki do wyświetlenia są umieszczane w pamięci RAM, w zmiennej tablicowej o nazwie bufor_led. Aby wyświetlić znak wystarczy na odpowiedniej pozycji bufora umieścić liczbę z zakresu 0…10 (10 = zgaszenie wyświetlacza). Ponieważ pozycje znaków są numerowane od 1 (pierwszy z prawej) do 4 (pierwszy z lewej), natomiast indeks tablicy rozpoczyna się od 0, to znak do konwersji jest pobierany spod indeksu o jeden mniejszego bufor_led[numer_pozycji-1]. Następnie stanowi on indeks tablicy wzorce_znaków i po pobraniu odpowiedniego wzorca jest zapisywany do rejestru PORTD. Podobnie kod załączenia cyfry jest pobierany z tablicy anody_cyfr spod indeksu numer_pozycji-1 za pomocą iloczynu bitowego (&) zmienia poziom na odpowiednim wyprowadzeniu portu B. Do obsługi interfejsu I2C oraz układu PCF8583 użyto bibliotek dostępnych na stronie Arduino. Są to PCF8583.h oraz Wire.h. Pliki źródłowe bibliotek należy skopiować do katalogu, w którym jest zainstalowane środowisko Arduino, do folderu Libraries. Dla biblioteki Wire.h należy utworzyć podkatalog /Wire, natomiast dla PCF8583.h – /PCF8583. Sposób zagnieżdżenia katalogów dla bibliotek pokazano na rysunku 1. Dołączenie bibliotek do programu głównego
odbywa się za pomocą dyrektywy #include. Zalecam użycie plików dostępnych w materiałach dodatkowych, ponieważ te pobrane przeze mnie ze strony Arduino wymagały pewnych modyfikacji – nie chciały bezbłędnie kompilować się w najnowszym środowisku Arduino IDE ze względu na błędne deklaracje typów zmiennych. Maszyna stanów utworzona dla potrzeb programu obsługi zegara musi rozróżniać trzy tryby pracy. Są to: • tryb pracy normalnej, w którym mogą być wyświetlane sekundy (licznik pobierany z RTC), • tryb pracy normalnej, w którym jest wyświetlane wskazanie godzin i minut (liczniki pobierane z RTC), • tryb nastaw, w którym są wyświetlane zmienne służące do wykonania nastaw (aktualizowane za pomocą naciśnięć przycisków SW1/SW2). • Tryby pracy są rozróżniane za pomocą zmiennej tryb_wyswietlania, która może mieć następujące wartości: • 0 – wyświetlanie liczników godzin i minut (normalny tryb pracy zegara), • 1 – wyświetlanie licznika sekund, • 3 – wyświetlanie zmiennych tmpgodziny i tmpminuty służących do wprowadzenia nastaw czasu zegara. Numer aktualnego trybu pracy zawarty w zmiennej tryb_wyswietlania jest zmieniany po naciśnięciu przycisku SW1 (przełączanie zegar/sekundnik) lub SW2 (po wejściu w tryb ustawiania zegara). Na listingu 3 pokazano fragment maszyny stanów z pętli głównej odpowiedzialny za wyświetlanie odpowiednich zmiennych, zależnie od stanu zmiennej tryb_wyswietlania. Jak łatwo zauważyć, do bufora wyświetlacz LED wpisywane są zmienne zależnie od wartości tryb_wyswietlania. Podobnie do wyświetlania, od trybu, w którym pracuje zegar jest uzależniona obsługa przycisków SW1 i SW2, jednak zasada działania jest zbliżona do procedury z list. 3 i składa się głównie z rozpatrywania licz-
nych warunków, więc pominiemy ją w tym opisie. Z punktu widzenia tego opisu istotna jest jedynie wiedza, w jakim celu wprowadzono różne tryby wyświetlania. Do obsługi zegara służą przyciski SW1 i SW2. Przycisk SW1 w trybie wskazywania czasu służy do przełączania wyświetlania pomiędzy zegarem a sekundnikiem. Przycisk SW2 powoduje wejście w tryb nastaw zegara, a w tym trybie służy do zmiany „w górę” minut, godzin oraz uruchomienia odmierzania czasu. Przycisk SW1 w trybie nastaw powoduje przejście od pozycji do pozycji, od minut do oczekiwania na start odmierzania czasu. Aby ustawić zegar należy: • nacisnąć SW2, • nacisnąć SW2 tyle razy, aby wyświetlany licznik minut był zgodny z oczekiwaniami, • nacisnąć SW1 i przejść w ten sposób do licznika godzin, • nacisnąć SW2 tyle razy, aby wyświetlany licznik godzin był zgodny z oczekiwaniami, • nacisnąć SW1, aby przejść do oczekiwania na uruchomienie licznika zegara, • nacisnąć SW2, aby zapisać nastawę i uruchomić licznik zegara RTC, co jest sygnalizowane krótkim sygnałem dźwiękowym. Ustawianie zegara nie jest wykonywane zbyt często i dlatego wykonano je „na skróty”, jak najprościej, godząc się na pewien kompromis pomiędzy estetyką a funkcjonalnością.
Podsumowanie Program źródłowy jest przykładem zastosowania AVT1616 i AVT5272 i może być dowolnie wykorzystywany i modyfikowany na zasadach licencji GPL. Analizując jego kod można znaleźć odpowiedzi na pytania odnośnie do sposobu obsługi układu zegara RTC oraz wyświetlacza LED.
Jacek Bogusz, EP
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2013
75
PODZESPOŁY
Sensory MEMS
w ofercie STMicroelectronics – przegląd oferty MEMS-y rewolucyjnie zmieniły nasz świat, umożliwiając ogromnej liczbie otaczających nas urządzeń „samodzielnie” orientować się w przestrzeni. Sensory bazujące na technologii MEMS są stosowane zarówno we współczesnych pojazdach, systemach nawigacyjnych, budownictwie, sprzęcie AGD i RTV, jak i konsolach dla graczy, robotyce, automatyce, smartfonach czy zegarkach naręcznych. STMicroelectronics jest firmą, która jako jedna z pierwszych zauważyła możliwości oferowane przez technologię MEMS i wykorzystała je w praktyce, dzięki czemu dziś jest liderem rynku sensorów tego typu. Oferta produkcyjna firmy STMicroelectronics w zakresie sensorów MEMS (Micro Electro-Mechanical Systems) należy do jednej z najbardziej kompleksowych, pośród dostępnych na rynku. Obecnie jedynie ta firma oferuje zarówno wieloosiowe akcelerometry i żyroskopy, cyfrowe sensory pola magnetycznego (elektroniczne kompasy), czujniki ciśnienia oraz mikrofony do aplikacji audio – wszystkie wykonane w technologii MEMS. Atutami sensorów MEMS oferowanych przez STMicroelectronics są także ich łatwa dostępność w naszym kraju oraz niskie ceny, które umożliwiają stosowanie tych elementów także w projektach niskobudżetowych. W artykule przedstawiamy przegląd cech i możliwości wybranych sensorów MEMS produkowanych przez STMicroelectronics (ry-
76
Rysunek 1. Zestawienie grup sensorów MEMS produkowanych przez STMicroelectronics sunek 1), który pozwoli się naszym Czytelnikom szybko i wygodnie zorientować jak je dobierać do własnych aplikacji.
Akcelerometry Akecelerometry są największą, najdłużej produkowaną i najpopularniejszą – głównie dzięki uniwersalności funkcjonalnej - grupą sensorów oferowanych przez STMicroelectronics. Producent oferuje obecnie 22 typy sensorów 3D, wyposażonych w wyjścia analogowe lub zintegrowane z przetwornikiem A/C, który komunikuje się ELEKTRONIKA PRAKTYCZNA 9/2013
Sensory MEMS Programowy filtr Kalmana dla klientów STMicroelectronics Inżynierowie firmy STMicroelectronics wraz z poszerzeniem oferty czujników MEMS opracowali biblioteki programowe realizujące funkcję filtru Kalmana, ułatwiające stosowanie sensorów w praktycznych aplikacjach. Dzięki temu oferowane przez ST żyroskopy i czujniki przyspieszenia można dość łatwo wykorzystać w aplikacjach sterujących realnymi, złożonymi obiektami dynamicznymi (jak na przykład quadrocoptery), co bez zastosowania tak zaawansowanej filtracji praktycznie nie gwarantowało sukcesu.
Zestaw iNEMO (STEVAL-MKI062V2) Dostępne są (niezbędna wcześniejsza rejestracja pod adresem http://goo.gl/YmMSZD) bezpłatnie biblioteka iNEMO Engine Lite umożliwia obsłużenie zarówno wieloosiowych czujników przyspieszenia jak i czujników geomagnetycznych, minimalizując wpływy zakłóceń odczytów wynikających z jakości otoczenia na uzyskane wyniki. Wersja Lite bibliotek jest udostępniana przez producenta w wersji źródłowej dla mikrokontrolerów STM32. Jest ona użyta m.in. w zestawie ewaluacyjnym iNEMO (STEVAL-MKI062V2). W wyniku obliczeń wykonywanych przez bibliotekę iNEMO Engine Lite programista uzyskuje „czyste” (po programowej filtracji Kalmana) informacje o wartości kwaternionów (obiekty matematyczne, które służą do reprezentowania rotacji i orientacji w przestrzeni 3D), wykrywane są rotacje i obliczane ich prędkości, obliczane jest także przyspieszenie liniowe, z którym porusza się czujnik. W wersji Lite biblioteka obsługuje czujniki z częstotliwością do 100 Hz, a jej implementacja w mikrokontrolerze STM32 wymaga 7 kB pamięci Flash i 5 kB pamięci SRAM. z otoczeniem za pomocą interfejsu I2C lub SPI. Dostępne są sensory o zakresach pomiarowych od ±2g aż do ±400 g, co pozwala dobrać element odpowiedni dla aplikacji w taki sposób, aby uzyskać maksymalną rozdzielczość i czułość pomiaru. Akcelerometry z wbudowa-
nymi przetwornikami A/C zapewniają rozdzielczość od 8 do 16 bitów, w zależności od typu dane z toru konwersji mogą być buforowane w FIFO lub nie. Na rysunku 2 pokazano schemat blokowy akcelerometru z trzema wyjściami analogowymi LIS332AR, a na rysunku 3 schemat blokowy akcelerometru zintegrowanego z 16-bitowym przetwornikiem A/C H3LIS331DL (sensor o maksymalnym zakresie pomiarowym ±400 g), który jest dostępny dla zewnętrznego mikrokontrolera poprzez interfejs I2C lub SPI (użytkownik może wybrać tryb jego pracy). Akcelerometry oferowane przez STMicroelectronics ewoluują, przy czym szczególnie łatwe do zauważenia są trzy trendy: • zmniejszanie wymiarów obudowy – najnowsza generacja (LIS2) ma wymiary 2 mm×2 mm×1 mm, uchodząca do niedawna za ultra miniaturową poprzednia generacja (LIS3xxx) ma wymiary 3 mm×3 mm×1 mm, • zmniejszania poboru mocy w trybach realizacji pomiaru, czego przykładami może być m.in.: akcelerometr z 12-bitowym przetwornikiem LIS3DH pobierający zaledwie 2 mA podczas realizacji pomiarów z częstotliwością 1 Hz i 11 mA podczas realizacji pomiarów z częstotliwością 50 Hz, • zwiększania możliwości funkcjonalnych sensorów, co polega na integracji w ich logice programowalnych detektorów podwójnego puknięcia, wykrywania ruchu, wbudowywania czujnika temperatury, czy też integracji w strukturach akcelerometrów programowalnych maszyn stanów (jak np. w LIS3DSH), które można wykorzystać do generowania przerwań sprzętowych na bazie sekwencji wydarzeń zdefiniowanych przez użytkownika (graf przejść takiego automatu pokazano na rysunku 4).
Rysunek 2. Schemat blokowy 3-osiowego sensora LIS332AR, wyposażonego w trzy napięciowe wyjścia analogowe
Rysunrk 3. Schemat blokowy 3-osiowego sensora z wbudowanym przetwornikiem A/C (H3LIS331DL), wyposażonym w przełączany interfejs komunikacyjny SPI/I2C ELEKTRONIKA PRAKTYCZNA 9/2013
Rysunek 4. Graf przejść programowalnego automatu zintegrowanego w akcelerometrze LIS3DSH, który można wykorzystać do generacji przerwania w przypadku wystąpienia zadanej sekwencji wydarzeń
77
PODZESPOŁY
Rysunek 5. Sposób działania sensora położenia FC30 Rysunek 7. Schemat blokowy czujnika kompasowego zintegrowanego z akcelerometrem (obydwa 3D) - LSM303DLHC oferują rozdzielczość konwersji każdego kanału wynoszącą 16 bitów, podobnie do wcześniej przedstawionych akcelerometrów dostęp do danych można uzyskać za pomocą interfejsu I2C lub SPI (do wyboru, w zależności od preferencji użytkownika – rysunek 6). Tendencje rozwojowe w rodzinie żyroskopów oferowanych przez STMicroelectronics są podobne do wspomnianych przy okazji akcelerometrów: zmniejszane są ich wymiary (domyślny trend to wymiary 4×4×1 mm oraz 3×3×1 mm), zwiększa się także liczba funkcji pomocniczych integrowanych w obudowach sensorów (jak na przykład czujnik temperatury, konfigurowalny bufor FIFO dla danych), a także minimalizacja poboru energii – zarówno poprzez zabiegi technologiczne zmniejszające prądy upływu jak i rozwiązania układowe zmniejszające pobór prądu podczas normalnej pracy sensora. Osobliwym przypadkiem w rodzinie akcelerometrów oferowanych przez STMIcroelectronics jest 3-osiowy sensor FC30, który wykrywa swoje położenie względem powierzchni Ziemi dwustanowo w każdej osi (6 pozycji) jak pokazano na rysunku 5. Sposób działania tego sensora predestynuje go m.in. do sterowania wyświetlaniem obrazu na wyświetlaczu LCD w urządzeniach mobilnych oraz innych aplikacjach, w których ma znaczenie jednoznaczne określenie położenia obiektu względem powierzchni Ziemi bez konieczności wykonywania obliczeń. Prezentowany element można wykorzystać także do wykrywania podwójnych puknięć, co zwiększa funkcjonalność docelowego urządzenia bez konieczności aplikowania dodatkowych układów logicznych lub mikrokontrolera.
Żyroskopy Firma STMicroelectronics szybko rozwinęła rodzinę produkowanych przez siebie żyroskopów MEMS, obecnie liczy ona 21 typów sensorów, zarówno 1-/2- jak i 3-osiowych. Producent oferuje żyroskopy o zakresach pomiarowych od ±30o/s do ±2000o/s, w zależności od typu mogą być wyposażone w wyjścia analogowe lub mają zintegrowane „pokładowe” przetworniki A/C. Tak wyposażone żyroskopy
Rysunek 6. Schemat blokowy 3-osiowego żyroskopu L3GD20
78
e-kompasy W skład rodziny kompasowych czujników MEMS oferowanych przez STMicroelectronics wchodzą obecnie dwa rodzaje elementów: • 3-osiowe czujniki pola magnetycznego zintegrowane z 3-osiowymi akcelerometrami – tworzące rodzinę LSM303xxx, charakteryzujące się zakresem pomiarowym pola magnetycznego od ±1,3 do ±16 Gs i zakresem pomiaru przyspieszenia od ±2 g do ±16 g, w zależności od typu sensora. Schemat blokowy czujnika tego typu (LSM303DLHC) pokazano na rysunku 7. • 3-osiowy czujnik pola magnetycznego bez żadnych dodatkowych funkcji, czego przykładem jest jedyny w ofercie STMicroelectronics sensor tego typu oznaczony symbolem LIS3MDL. Wszystkie prezentowane czujniki kompasowe mają cyfrowy interfejs SPI/I2C lub wyłącznie I2C (LSM303DLHC), są oferowane w ultra miniaturowych obudowach o wymiarach 2×2×1 mm (LIS3MDL oraz LSM303C), 3×3×1 mm (LSM303D) lub 3×5×1 mm (LSM303DLHC). Rozdzielczość konwersji wyników pomiarów wynosi do 16 bitów.
Czujniki ciśnienia Gorącą nowością w ofercie STMicroelectronics są MEMS-owe czujniki ciśnienia. Obecnie produkowany jest jeden typ takiego sensora – LPS331 – pozwalający dokonywać pomiarów ciśnienia powie-
Rysunek 8. Schemat blokowy czujnika ciśnienia LPS331AP ELEKTRONIKA PRAKTYCZNA 9/2013
Sensory MEMS
Rysunek 9. Mikrofony z wyjściami cyfrowymi mogą pracować w konfiguracjach stereofonicznych
Rysunek 10. Schemat aplikacyjny analogowego mikrofonu MEMS trza w zakresie 260-1260 mbar z maksymalną rozdzielczością 24 bitów (co daje wartość kwantu 20 mbar). Schemat blokowy ilustrujący budowę LPS331 pokazano na rysunku 8. Jak widać jest to układ zaawansowany konstrukcyjnie, bowiem wynik odczytywany poprzez interfejs SPI/I2C jest poddawany obróbce obliczeniowej, w skład której wchodzi nie tylko eliminacja błędów wynikających z warunków pomiarów, ale także składowa temperatury, która wpływa na parametry mostka pomiarowego Wheatstone’a. Maksymalna częstotliwość odczytu danych wynosi 25 Hz, a płytka czujnikowa jest w stanie wytrzymać przeciążenia ciśnieniowe o wartości do 20-krotności zakresu pomiarowego. Wymiary obudowy LPS331AP wynoszą 3×3×1 mm, pobór prądu w trybie o niskiej rozdzielczości konwersji (kwant pomiaru 160 mbar) przy częstotliwości powtarzania pomiarów 1 Hz wynosi zaledwie 5,5 mA. Producent planuje wdrożenie w najbliższym czasie drugiego sensora oznaczonego symbolem LPS25H, którego parametry i cechy funkcjonalne są bardzo podobne do LPS331AP, ale wymiary mniejsze: wynoszą zaledwie 2,5×2,5×1 mm.
Mikrofony Wykorzystując opracowane przez siebie zaawansowane technologie MEMS producent wdrożył do produkcji rodzinę mikrofonów dla aplikacji audio, w której są dostępne elementy z wyjściem analogowym (napięciowym) lub cyfrowym (PDM). Mikrofony z wyjściami cyfrowymi (np. MP34Dx01 lub MP45DT02) mogą pracować w konfiguracji stereofonicznej (rysunek 9), mikrofony z wyjściami analogowymi są aplikacyjnymi odpowiednikami mikrofonów pojemnościowych zintegrowanych z przedwzmacniaczami (rysunek 10). Charakterystyki częstotliwościowe mikrofonów zależą od typu: są dostępne modele o paśmie analogowym od 100 Hz do 10 kHz (MP33AB01) oraz od 20 Hz do 20 kHz (MP34DT01/DB01) i czułości od –38 dBFS do –26 –38 dBFS. W standardowej ofercie są dostępne mikrofony z otworami powietrznymi od spodu obudowy (bottom port) lub w jej górnej części (top port), co znajduje odzwierciedlenie w środkowej części oznaczenia typu (np. MP34DT oznacza mikrofon MEMS w obudowie 3×4 mm, z wyjściem cyfrowym i otworem od góry). ELEKTRONIKA PRAKTYCZNA 9/2013
Rysunek 11. Przegląd mikrofonów MEMS firmy STMicroelectronics i planowanych wdrożeń (górna część rysunku - mikrofony cyfrowe, dolna - mikrofony analogowe) Producent w szybkim tempie rozwija rodziny mikrofonów MEMS, opracowując szereg rozwiązań poprawiających ich parametry: szerokość pasma, liniowość charakterystyki przenoszenia, wymiary obudowy, zmniejszenie poboru mocy, wartość odstępu sygnału od szumu, poziom przesterowania sygnałem akustycznym AOP (Acoustic Overload Point), na rysunku 11 pokazano planowane przez STMicroelectronics w najbliższym czasie wdrożenia w tym zakresie.
Czujniki zintegrowane Firma STMicroelectronics dostrzegając konieczność zwiększania integracji sensorów MEMS wprowadziła do produkcji układy z serii iNEMO z serii LSM330, w których zintegrowano struktury akcelerometru LIS3DH oraz żyroskopu L3GD20, które umieszczono w trzech typach obudów LGA o wymiarach 3,5 mm×3 mm×1 mm (LSM330), 3 mm×5,5 mm×1 mm (LSM330D) oraz 4 mm×5 mm×1,1 mm (LSM330DLC). Zaawansowaną alternatywą dla sensorów LSM330 jest nowy w ofercie producenta zintegrowany sensor 9DoF (degrees of freedom), o nazwie LSM9DS0, składający się z trzech sensorów MEMS 3D: • akcelerometru, • czujnika pola magnetycznego, • żyroskopu.
79
PODZESPOŁY
Rysunek 12. Schemat aplikacyjny nowego sensora 9DoF z oferty STMicroelectronics - LSM9DS0
Fotografia 14. Wygląd zestawu STM32F3DISCOVERY, w którym zastosowano dwa sensory MEMS: żyroskop L3GD20 oraz kompas z akcelerometrami LSM303DLHC
Producent sensorów prezentowanych w artykule nie zostawił konstruktorów sam-na-sam z problemami związanymi z obróbką uzyskanych danych. Przygotował zarówno wspomniane wcześniej biblioteki z filtrem Kalmana, aplikację umożliwiającą rejestrację danych na komputerze poprzez wirtualny port COM, dostępne są także kompletne sterowniki dla Windows 8 oraz Androida/Linuksa, co pozwala na łatwą i szybką integrację czujników w komputerach bazujących na tych systemach operacyjnych.
Fotografia 13. Wygląd zestawu STEVAL-MKI119V1
grafia 13), w którym zastosowano dwa sensory tworzące zespół 9DoF: żyroskop L3GD20 oraz kompas z akcelerometrami LSM303DLHC. Interesującym – zarówno ze względu na możliwości, jak i cenę – jest zestaw STM32F3DISCOVERY (fotografia 14), w którym zastosowano mikrokontroler z rodziny STM32F3 (rdzeń Cortex-M4F) i sensory MEMS: LSM303DLHC i L3GD20, podobnie jak w zestawie STEVAL-MKI119V1. Producent przygotował także zestawy dla konstruktorów zainteresowanych mikrofonami MEMS: STEVAL-MKI116V1 (z MP34DB01), STEVAL-MKI117V1 (z MP34DT01), STEVAL-MKI117V2 (z MP45DT02), dla których interesująca alternatywą jest STM32F4DISCOVERY (fotografia 15) z mikrofonem MP45DT02.
Podsumowanie Co do tego, że współczesna elektronika bez sensorów MEMS funkcjonować nie może, nie mają żadnych wątpliwości nie tylko elektronicy, ale także szerokie rzesze użytkowników systemów nawigacyjnych, smartfonów, tabletów, notebooków, pralek, lodówek i wielu innych urządzeń powszechnego użytku. Łatwy do zaobserwowania trend integracji funkcjonalnej sensorów, szybkiej poprawy ich parametrów, a także coraz niższe ceny, umożliwiają ich stosowanie w coraz bardziej banalnych aplikacjach, które jeszcze kilkanaście lat temu nie istniały lub ich funkcjonalność była znacząco słabsza niż obecnie. Precyzyjne MEMS-y cierpliwie zdobywają nowe obszary aplikacyjne, zapewniając wygodę, komfort i bezpieczeństwo. O tym co będziemy mogli za ich pomocą robić w przyszłości decyduje wyłącznie wyobraźnia konstruktorów, a tej – na szczęście – nie brakuje!
Piotr Zbysiński, EP Nowy sensor ma zintegrowany 16-bitowy przetwornik A/C, komunikujący się z otoczeniem za pomocą interfejsu I2C lub SPI, wspomaganego przez wyjścia przerwań. Dane przetwarzane w torze A/C mogą przesyłane za pomocą 32-poziomowego bufora FIFO. Podstawowy schemat aplikacyjny sensora LSM9DS0 pokazano na rysunku 12.
Zestawy ewaluacyjne z sensorami MEMS Z myślą o konstruktorach lubiących samodzielnie zweryfikować katalogowe obietnice, producent sensorów prezentowanych w artykule przygotował zestawy narzędziowe i ewaluacyjne, pozwalające szybko rozpocząć własne badania. Przykładem takiego jest bazujący na mikrokontrolerze z rodziny STM32 zestaw STEVAL-MKI119V1 (foto-
80
Fotografia 15. Wygląd zestawu STM32F4DISCOVERY z mikrofonem MP45DT02 ELEKTRONIKA PRAKTYCZNA 9/2013
CharakterystykaNOTATNIK urządzeń wielkich częstotliwości KONSTRUKTORA
Charakterystyka urządzeń wielkich częstotliwości (1) Zagadnienia wstępne
Przyrządy pomiarowe wielkich częstotliwości opisuje wiele parametrów charakteryzujących ich działanie. Ponieważ technologia bezprzewodowa nieustannie się zmienia, inżynierowie muszą regularnie projektować oraz testować nowe elementy wielkich częstotliwości i urządzenia, których tworzenie może wykraczać poza ich dotychczasowe doświadczenia. Poniższy, trzyczęściowy artykuł został napisany w celu przybliżenia podstawowych oraz bardziej zaawansowanych parametrów urządzeń w.cz., a dokładniej głównych parametrów generatora oraz analizatora sygnałów. W części 1 opisano zagadnienia, takie jak zakres częstotliwości, pasmo chwilowe, prędkość strojenia, szum fazowy oraz napięciowy współczynnik fali stojącej. W częściach 2 oraz 3 omówiono punkt kompresji jednodecybelowej, zniekształcenia intermodulacyjne trzeciego rzędu, zakres dynamiczny oraz rozdzielczość pasma. W artykule skupimy się na następujących zagadnieniach dotyczących generowania oraz analizy sygnałów wielkiej częstotliwości: • zakres częstotliwości, • pasmo chwilowe, • prędkość przestrajania, • szumy fazowe, • napięciowy współczynnik fali stojącej (VSWR).
Zakres częstotliwości Zakres częstotliwości jest prawdopodobnie najważniejszym parametrem przyrządów pomiarowych w.cz. Dla przykładu, system testujący komunikację w standardzie WiFi wymaga pracy na częstotliwościach do 2,5 GHz, a przyrząd przeprowadzający analizę urządzenia pracującego na 900 MHz musi być zdolny do pracy na takiej częstotliwości. Na maksymalny zakres częstotliwości przyrządu może wpływać wiele komponentów, włączając w to mieszacze, filtry wejściowe oraz oscylatory lokalne (LO). Mimo tego, konfiguracja urządzenia do pracy na danej częstotliwości odbywa się głównie poprzez dostrajanie LO. Chociaż niektóre narzędzia wykorzystują wiele LO połączonych szeregowo, na rysunku 1 zaprezentowano nieskomplikowany schemat zawierający tylko jeden oscylator. Sygnał z LO jest mieszany z wejściowym sygnałem w.cz., co pomaga przekonwertować go do sygnału o częstotliwości pośredniej (IF). Ta sama technika syntezy jest wykorzystywana także w generatorach sygnału w.cz. ELEKTRONIKA PRAKTYCZNA 9/2013
Synteza częstotliwości jest realizowana za pomocą generatora sterowanego napięciowo (VCO) albo YIG (z rezonatorem ferrimagnetycznym). W przeszłości urządzenia w.cz. wykorzystywały układ bazowany na YIG. Jest on oscylatorem sterowanym prądowo, mającym niewielki szum fazowy oraz szeroki zakres częstotliwości (20 GHz i wyższych). Niestety, to rozwiązanie pochłania zbyt duże ilości energii oraz jest zbyt kosztowne. Dodatkowo, przestrajanie YIG z jednej częstotliwości na drugą wymaga dłuższego czasu, niż w przypadku zastosowania innych metod. W związku z powyższym, rozwiązanie oparte o VCO stało się zdecydowanie bardziej po-
Dodatkowe informacje: National Instruments Poland Sp. z o.o. Salzburg Center ul. Grójecka 5, 02-025 Warszawa tel: +48 22 328 90 10, faks: +48 22 331 96 40 e-mail: [email protected], http://poland.ni.com Infolinia: 800 889 897
pularne. Zakres częstotliwości jego pracy jest co prawda mniejszy, ale za to czas strojenia jest znacznie krótszy.
Pasmo chwilowe Termin pasmo chwilowe opisuje maksymalną, ciągłą szerokość pasma sygnału w.cz., którą urządzenie może wygenerować bądź pobrać. Na przykład, wektorowy generator sygnałów może generować sygnał o częstotliwości środkowej 2,45 GHz, a pasmo chwilowe może być szerokie jedynie na 20 MHz. Oznacza to, że urządzenie może pobierać w trybie ciągłym 20 MHz pasma sygnału w.cz. bez przestrajania oscylatora. Pasmo chwilowe jest w znacznej mierze zdefiniowane poprzez analogowe elementy wejściowe i wyjściowe systemu. Aby dobrze zrozumieć znaczenie pasma chwilowego warto poznać podstawową architekturę urządzeń w.cz. Obecna technologia nie jest w stanie próbkować sygnałów operujących na częstotliwości rzędu gigaherców. Aby ominąć ten problem wykorzystuje się połączenie kilku urządzeń (oscylatory lokalne, mieszacze oraz filtry), które umożliwia
Rysunek 1. Zakres częstotliwości jest zdefiniowany przez lokalny oscylator (LO)
Rysunek 2. Pasmo chwilowe jest zależne od filtra oraz przetwornika analogowo – cyfrowy (ADC)
81
NOTATNIK KONSTRUKTORA Tabela 1. Czas strojenia oscylatora lokalnego typu YIG Dokładność 1% zadanego skoku 0,01% zadanego skoku 1 ppm zadanego skoku
Czas ustalania Maksymalnie 10 ms Maksymalnie 20 ms Maksymalnie 30 ms
przeniesienie sygnału do częstotliwości pośredniej lub podstawowej. Rysunek 2 przedstawia bardzo uproszczony schemat wektorowego analizatora sygnałów. Jak pokazano, wektorowy analizator sygnału konwertuje część widma sygnału w.cz. do niższych częstotliwości, które są obsługiwane przez przetwornik A/C. Pasmo chwilowe urządzeń w.cz. jest zależne od dwóch głównych elementów: • zastosowanych filtrów, • częstotliwości próbkowania oraz pasma przetwornika ADC. Znaczenie pasma chwilowego urządzenia jest względne i zależy od wymagań poszczególnych aplikacji. Przykładowo, generowanie wąskiego pasma sygnału FM wymaga jedynie 200 kHz przepustowości, natomiast generowanie oraz analiza sygnału takiego, jak np. IEEE 802.11g (WiFi), już co najmniej 20 MHz. Inne aplikacje, jak na przykład testowanie maski widma, mogą być wykonywane zdecydowanie szybciej, jeśli pasmo chwilowe jest znacząco większe od częstotliwości badanego sygnału. W przypadku, gdyby test ten wymagał szerszego pasma chwilowego niż może zapewnić wykorzystywany sprzęt, konieczne jest przestrajanie częstotliwości środkowej pasma w celu pobierania informacji sekcja po sekcji.
Prędkość przestrajania Prędkość przestrajania definiuje czas niezbędny dla LO do przejścia z jednej częstotliwości środkowej na drugą z określoną dokładnością. Jest on bezpośrednio zależny od czasu regulacji LO. W standardowych systemach, podczas zmiany częstotliwości pracy, zazwyczaj występuje nieznaczne przesterowanie, po czym po pewnym czasie częstotliwość stabilizuje się na wartości zadanej. W większości przypadków czas strojenia jest funkcją zmiany częstotliwości. Im większa zmiana, tym więcej czasu zajmuje ustabilizowanie się na nowej wartości. Tabela 1 przedstawia czas strojenia dla oscylatora opartego na rezonatorze YIG. Prędkość przestrajania jest wyjątkowo ważnym parametrem, szczególnie w aplikacjach takich jak zautomatyzowane testy produkcyjne urządzeń 802.11g. Ponieważ standard ten definiuje funkcjonowanie urządzenia na jednym z 14 kanałów pracujących w częstotliwości między 2.4 GHz a 2.48 GHz, przyrządy pomiarowe w.cz. przeprowadzające test muszą wykonywać operacje w szerokim zakresie częstotliwości. Im szybciej syg-
82
Rysunek 3. Porównanie idealnej oraz zakłóconej częstotliwości nośnej nał zostanie przełączony z jednej stacji na inną, tym szybciej proces weryfikacji urządzenia jest przeprowadzany.
Szum fazowy Szum fazowy opisuje krótkoterminową stabilność częstotliwości urządzenia w.cz. Jest Rysunek 4. Szum fazowy występujący na LO zostaje on spowodowany przez niewiel- przeniesiony na sygnał częstotliwości pośredniej kie, chwilowe odchyłki fazy LO i skutkuje pojawieniem się sygnału na częZnaczenie szumu fazowego zależy stotliwościach sąsiadujących z nośną. w dużym stopniu od aplikacji docelowej. Skutki szumu fazowego można w prosty Wysokie wymagania stawiane są przy desposób przedstawić analizując konkretny tekcji pobocznych sygnałów niskiej mocy, sygnał w domenie częstotliwości. Rysunek 3 o częstotliwości bliskiej do sygnału zadaprezentuje dwie symulowane częstotliwonego. Przy wykorzystaniu LO o znacznym ści nośne – idealną oraz zakłóconą szumem poziomie szumu fazowego, zakłócenia te są fazowym. Lewy wykres ilustruje generację wzmacniane w wynikowym sygnale częstopojedynczego tonu, co w idealnym przypadtliwości pośredniej, co zaprezentowano na ku można zaobserwować jako pojedynczy rysunku 4. W tym szczególnym przypadku, pik na precyzyjnie określonej częstotliwoszumy fazowe obu sygnałów nakładają się ści. Inny wynik przedstawiono na prawym na siebie, co znacznie utrudnia identyfikację wykresie, gdzie szum fazowy spowodował danego sygnału pobocznego. rozszerzenie się sygnału na sąsiednie częstoWizualizacja demodulacji, za pomocą tliwości. diagramów konstelacji, stanowi alternatywSzum fazowy określa się poprzez pomiar ny sposób prezentacji wpływu szumu fazoamplitudy sygnału na częstotliwościach wego. Sygnał zawierający znaczący szum znajdujących się na różnych odległościach fazowy charakteryzuje się niewielkimi, okreod nośnej. Wykres znajdujący się po prawej sowymi rotacjami diagramu konstelacji. Na stronie na rys. 3, prezentuje pomiar szumu rysunku 5 porównano sygnał idealny (lewy fazowego na poziomie –95 dBc odległego diagram), modulowany za pomocą kwadrao 1 kHz od nośnej oraz –146 dBc, odległego turowego kluczowania fazy (4-PSK) z cztereo 10 kHz. ma symbolami oznaczonymi czarnymi krop-
Rysunek 5. Diagram konstelacji prezentujący rotację w przypadku obecności szumu fazowego ELEKTRONIKA PRAKTYCZNA 9/2013
Charakterystyka urządzeń wielkich częstotliwości kami z sygnałem zawierającym szum fazowy (po prawej stronie). Szum fazowy wpływa na realne pomiary zniekształcając wartość EVM (Error Vector Magnitude) oraz zwiększając współczynnik BER (Bit Error Rate).
Napięciowy współczynnik fali stojącej (VSWR) Napięciowy współczynnik fali stojącej (VSWR) jest ściśle powiązany z teorią linii długich, a jego znaczenie wzrasta wraz ze wzrostem zakresu częstotliwości pracy urządzenia. W skrócie, parametr ten mierzy odbicia sygnału występujące na skutek niedopasowań impedancji na linii transmisyjnej. W idealnym świecie impedancja przyrządów pomiarowych w.cz. (zazwyczaj jest to 50 V), jest zgodna z impedancją przewodów oraz testowanych urządzeń. Niestety, liczne niedoskonałości, jak na przykład niesymetryczne ścieżki czy różnice w wykonaniu poszczególnych elementów, wprowadzają zmiany w impedancji ścieżki, wynikiem czego powstają odbicia wpływające na amplitudę oraz dokładność fazy sygnału. Na amplitudę sygnału odbitego wpływają zarówno właściwości wykorzystanych materiałów, jak i częstotliwość pracy. Niedopasowanie impedancji na linii transmisyjnej skutkuje bezpośrednio pogorszeniem VSWR, który okazuje się bardziej problematyczny na wyższych częstotliwościach. Przykładowo, VSWR o wartości 1:1 oznacza idealnie dopasowany system, a VSWR o poziomie 1,1:0,9 oznacza, że do 10% wartości amplitudy zostaje odbite w linii transmisyjnej.
ELEKTRONIKA PRAKTYCZNA 9/2013
Rysunek 6. Wpływ VSWR na amplitudę i fazę sygnału Ponieważ VSWR zależy także od właściwości materiału, jego wartość może być wyliczona na podstawie współczynnika odbicia G zgodnie z poniższym równaniem: VSWR istotnie wpływa na testowany sygnał, ponieważ powoduje zniekształcenie jego amplitudy oraz fazy. Co więcej, w zależności od fazy odbicia VSWR, wynikowa amplituda może być większa lub mniejsza niż oryginalna. Rysunek 6 prezentuje wpływ odbić VSWR na kształt sygnału. Odbicie o fazie przesuniętej w stosunku do oryginalnej powoduje efekt tłumienia, w wyniku czego sygnał wynikowy ma amplitudę mniejszą od oryginalnej. W większości przypadków VSWR jest redukowany przez zastosowanie wewnętrznych lub zewnętrznych tłumików, a zatem zwiększenie poziomu referencyjnego urządzenia redukuje VSWR poprzez wewnętrzne tłumienie. VSWR jest ważnym parametrem, gdyż w znacznym stopniu wpływa na amplitudę
sygnału. Niektóre aplikacje, jak na przykład charakterystyka filtru w.cz., wymagają możliwie największej dokładności amplitudowej. Jako, że filtr w.cz. jest charakteryzowany za pomocą pomiaru strat w amplitudzie sygnału wymuszającego, dokładność tego pomiaru dla sygnału wymuszającego oraz analizowanego urządzenia jest krytyczna.
Wnioski Specyfikacja urządzeń wielkich częstotliwości, część 1 prezentuje podstawowe informacje dotyczące istotnych parametrów urządzeń w.cz. Należy podkreślić, że wiele z opisanych wartości dotyczy wszystkich urządzeń w.cz., a zatem są powszechnie wykorzystywane w trakcie procesu projektowania. Kolejny artykuł z tej trzyczęściowej serii skupia się na charakterystyce właściwości generatorów w.cz., łącznie z tolerancją częstotliwości, liniowością, wyjściem mocy, poziomem 1 dB kompresji oraz intermodulacją trzeciego rzędu.
83
PREZENTACJE
IQRF
Complete technology for mesh networks Smarter Wireless. Simply.
Technical Guide
technologia bezprzewodowa, która przełamuje bariery Domy inteligentne, transmisja danych, zdalne włączanie oświetlenia, to tylko niektóre z przykładów zastosowania nowoczesnej technologii transmisji bezprzewodowej opracowanej przez IQRF. Typowo, urządzenia komunikujące się drogą radiową umożliwiają zdalne sterowanie z zastosowaniem jednego z czterech, wymienionych niżej wariantów. Poszczególne rodzaje sterowania różnią się możliwościami, mogą również różnić się zakresem aplikacji: Połączenie układu radiowego z mikrokontrolerem pracującym pod kontrolą oprogramowania specjalne utworzonego na potrzeby danej aplikacji. Moduł radiowy, za pomocą którego jest obsługiwana strona sprzętowa transmisji radiowej. Zwalnia to konstruktora z konieczności opracowywania i uruchamiania toru radiowego, ale najczęściej nie rozwiązuje problemów związanych protokołem transmisyjnym. Moduł radiowy z systemem operacyjnym. Dzięki postępowi technicznemu stało się możliwe implementowanie systemów operacyjnych w modułach radiowych – jest to rozwiązanie kapitalne z punktu widzenia konstruktora, ponieważ zwalnia go od konieczności opracowywania protokołu komunikacyjnego tym samym oszczędzając czas i wysiłek. System operacyjny modemu dba o poprawność transmisji, retransmisję, łączenie modułów w sieć itp. Pozostaje jedynie adresować i przesyłać pakiety. Podstawowe właściwości technologii opracowanej przez IQRF: • Inteligentne moduły radiowe do dwukierunkowej transmisji danych, zdalnego sterowania itp. • Praca w paśmie ISM – 868 MHz (EU) lub 916 MHz (US). • Zasięg aż do 700 m w terenie niezabudowanym. • System operacyjny autorstwa IQRF. • Łatwe tworzenie sieci typu „krata” (mesh). • Duża niezawodność, odporność sieci i przeprowadzanej transmisji danych na zaburzenia. • Możliwość ustawienia mocy nadajnika. • Ekstremalnie mały pobór energii ze źródła zasilania. • Niewielkie wymiary. • Przystępna cena modułów transceiverów. • Wyjątkowo łatwe zastosowanie za pomocą protokołu DPA (direct peripheral adressing).
84
Moduł radiowy z inteligentną nadbudową. Takie rozwiązania oprócz toru radiowego i mikrokontrolera pracującego pod kontrolą systemu operacyjnego, zawierają również inteligentne układy peryferyjne, czujniki itp. Ułatwia to ich stosowanie w specyficznych aplikacjach. Na rysunku 1 pokazano przewidywany czas do wytworzenia gotowego wyrobu zależnie od rodzaju zastosowanego rozwiązaDodatkowe informacje: SOS electronic nia, natomiast na rysunku 2 poziomy wieul. Tatarkiewicza 17, 92-753 Łódź dzy i umiejętności wymagane do zaaplikotel.: +48 42 6484576 faks: +48 42 6484576 wania poszczególnych rozwiązań. e-mail: [email protected] Technologia opracowana przez firmę www.soselectronic.pl IQRF pozwala na użycie trzeciej i czwartej walną mocą toru radiowego, a ustawienie z wymienionych możliwości. Dla więki połączenie sieci IQMESH przebiega auszości użytkowników prawdopodobnie tomatycznie, dosłownie na „jedno kliknięnajciekawszy będzie wariant, który można cie“. W takie sieci transmisja danych przezastosować praktycznie natychmiast – co biega na zasadzie przekazywania pakietów ważne – przy minimalnym wysiłku, a to za od modułu do modułu, aż dana informacja sprawą protokołu DPA (Direct Peripheral dotrze do transceivera docelowego (Node). Adressing). Dzięki temu można tworzyć sieci o prakDPA to protokół pozwalający na zbutycznie nieograniczonym zasięgu. dowanie i sterowanie pracą dużych sieci przewodowych lub bezprzewodowych oraz dwustronną transmisję danych bez konieczności tworzenia klasycznego oprogramowania. Ramka protokołu DPA składa się z 4 bajtów (3+1) zawierających adres w sieci (NAdr), numer układu peryferyjnego (PNum), komendę specyficzną dla danego układu peryferyjnego (PCmd) – np. włączenie LED i ewentualnie również 4. bajt – dane (do 58 bajtów/1 pakiet). Dla różnych układów peryferyjnych można zdefiniować Rysunek 1. Przewidywany czas do wytworzenia profil sprzętowy HWP (Hardware gotowego wyrobu zależnie od rodzaju Profile), który dokonuje translacji zastosowanego rozwiązania pakietu DPA na sterowanie funkcją danego urządzenia. Na przykład, po naciśnięciu przycisku może być wysłany pakiet do urządzenia docelowego, z informacją załączającą oświetlenie. Podstawą całego systemu opracowanego przez IQRF są miniaturowe moduły transceiverów RF, które pracują w paśmie ISM z wykorzystaniem częstotliwości 868 MHz (alternatywnie 916 MHz). Jednocześnie charakteryzują się przy Rysunek 2. Poziomy wiedzy i umiejętności tym bardzo małym poborem ener- wymagane do zaaplikowania poszczególnych gii ze źródła zasilania, programo- rozwiązań ELEKTRONIKA PRAKTYCZNA 9/2013
PREZENTACJE
Nowe podzespoły dzięki nanotechnologii Contrans TI zaprasza na seminarium, które poświęcamy nowościom w naszej ofercie. Skupimy się na najnowszych rozwiązaniach opartych na nanokrystalicznych materiałach magnetycznych i aplikacjach przetwarzania energii. Zapraszamy także do odwiedzenia naszego stoiska, gdzie prezentujemy szeroką gamę podzespołów elektronicznych a szczególnie produkty z ofert firm Vacuumcschmelze, Thinking oraz Hitachi. Nasze seminarium rozpocznie się w czwartek, 19 września, o godz. 12.00. Nanomateriały magnetyczne szansą na większą efektywność filtrów, dławików, transformatorów Wiele trudnych i kłopotliwych zagadnień w technice elektronicznej daje się lepiej rozwiązać dzięki postępowi technologii materiałów. Szczególna rola w otwieraniu nowych możliwości przypada kolejnym odmianom nanomateriałów. Stwarzają one możliwości poprawy parametrów komponentów elektronicznych przynosząc poprawę efektywności ich wykorzystania. W seminarium przedstawiono krótko przykładowe nanomateriały i korzyści z ich zastosowania w szeroko rozumianej
technice. Następnie na tle potrzeb i oczekiwań współczesnej elektroniki scharakteryzowano nanomateriały magnetyczne, ich cechy i walory szczególnie istotne dla zastosowań w elektronice w aplikacjach przetwarzania energii, filtracji i pomiarowych.
Omówiono właściwości materiału Vitroperm wytwarzanego przez firmę Vacuumschmelze. Jego własności porównano z tradycyjnymi materiałami ferrytowym w szerokim zakresie wykonań, obejmującym rdzenie do transformatorów i filtrów, dławiki i przekładniki prądowe. Z ekspozycją produktów firmy Vacuumschmelze obejmującą rdzenie nanokrystaliczne do aplikacji przetwarzania energii i filtracji, przekładniki i czujniki prądowe oraz transformatory sygnałowe mogą się Państwo zapoznać na naszym stoisku nr 80 w hali A. Ponadto, zaprezentujemy produkty firmy Thinking Electronic Industrial, w tym warystory, gazowe ochronniki przeciwprzepięciowe, termistory, czujniki temperatury i resetowalne bezpieczniki polimerowe oraz przemysłowe kondensatory elektrolityczne firmy Hitachi.
REKLAMA
Zapraszamy do zapoznania się z ofertą techniczno-handlową w czasie 26. Międzynarodowych Energetycznych Targów Bielskich
ENERGETAB 2013 Hala A, Stoisko 80
tel. 71 325 26 21...24, faks 71 325 44 39 ELEKTRONIKA PRAKTYCZNA 9/2013
85
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. Port szeregowy USART
Mikrokontrolery STM32F051 są wyposażone w sterownik transmisji szeregowej USART, który może służyć do transmisji zarówno asynchronicznej, jak i synchronicznej. Użyty w trybie asynchronicznym, może on np. sterować interfejsem RS232. Na płytce DISCOVERY nie ma translatorów poziomów RS232, jednak własności elektryczne i logiczne STM32F05x umożliwiają współpracę z interfejsem RS232 bez użycia translatora, o ile transmisja odbywa się w warunkach laboratoryjnych – na małą odległość i bez zakłóceń. Do połączenia mikrokontrolera z interfejsem RS232C komputera PC potrzebny będzie tylko jeden rezystor o wartości od 47 do 100 kV. Przedstawiony poniżej projekt oprogramowania powstał przez modyfikację projektu BtnBlink. Nosi on nazwę USART1.
Zaprogramowanie modułu USART
Przed zaprogramowaniem modułu USART należy określić parametry transmisji. Wybierzemy szybkość 9600 bit/s, format 8-bitowy bez parzystości, z jednym bitem stopu. Wartość, która posłuży do zaprogramowania szybkości transmisji, zdefiniujemy jako wyrażenie preprocesora. Ponieważ nie użyjemy układu translatora poziomów RS232C, zaprogramujemy odwracanie poziomów napięć na liniach RX i TX. W celu zaprogramowania modułu USART należy: • Włączyć moduł poprzez ustawienie bitu USART1EN w rejestrze APB2ENR. • Włączyć port GPIOA. • Wybrać funkcję AF 1 (RX i TX USART1) dla wyprowadzeń 10 i 9 portu GPIOA. • Włączyć ściąganie w dół dla linii RX • Ustawić linie 10 i 9 portu GPIOA jako AF, pozostawiając funkcje interfejsu SWD dla linii 14 i 13. • Ustawić podzielnik szybkości transmisji w rejestrze BRR modułu USART1. • Włączyć odwracanie polaryzacji linii RX i TX – bity TXINV i RXINV rejestru CR2.
86
ELEKTRONIKA PRAKTYCZNA 9/2013
• Włączyć przerwanie odbioru danych, zezwolenie na nadawanie i odbiór oraz cały układ USART1 w rejestrze CR1 – musi to być ostatnia czynność podczas programowania rejestrów modułu USART. • Włączyć przerwanie USART1 w module NVIC – rejestr ISER[0]. Ponieważ w projekcie użyjemy przerwania modułu USART, należy je oprogramować. Jedynym włączonym źródłem tego przerwania będzie odebranie danej. Procedura obsługi przerwania USART1 odczytuje odebrany znak i poddaje go prostemu przetwarzaniu. Małe litery są zamieniane na wielkie i odwrotnie, a odebranie kodu CR powoduje, poprzez ustawienie zmiennej mchange, zmianę trybu świecenia diod. Po przetworzeniu znak zostaje odesłany z powrotem. Podczas wysyłania znaku do PC nie jest sprawdzana gotowość nadajnika USART. W naszym przykładzie nie ma to znaczenia, gdyż przy nadawaniu z komputera PC znaków wprowadzanych przez użytkownika w programie terminala nie ma możliwości przepełnienia bufora nadajnika interfejsu USART mikrokontrolera znakami odsyłanymi zwrotnie. Nie jest to jednak uniwersalny sposób programowej obsługi nadawania, który może być zastosowany w każdej sytuacji. Poprawne nadawanie danych z użyciem przerwań zostanie zaprezentowane w następnym przykładzie.
Połączenie modułu DISCOVERY z komputerem
W celu umożliwienia komunikacji modułu z komputerem PC należy poprowadzić trzy połączenia – masy oraz dwóch linii danych. Ponieważ zasilamy moduł STM32F0 z komputera, masa jest już połączona przez port USB. Do nawiązania transmisji wystarczy więc wykonać połączenia linii danych z komputera do modułu i z modułu do komputera. Wyjście danych mikrokontrolera – linię 9 portu GPIOA – łączymy bezpośrednio z wejściem danych komputera PC – linią 2 złącza DB9. Wejście danych mikrokontrolera – linię 10 portu GPIOA – łączymy przez rezystor szeregowy 100 kV z wyjściem danych komputera PC – linią 3 złącza DB9. Podczas wykonywania połączeń
Krok po kroku Kursy EP
32 bity jak najprościej (3)
Krok po kroku Kursy EP
Listing /* */
1. Najprostszy przykład obsługi USART STM32F0DISCOVERY tutorial USART1 + TIM3 PWM blinker with table-driven init and blink mode switching gbm, 12’2012
#include „stm32f0xx.h” //======================================================================== // defs for STM32F05x chips #define GPIO_MODER_OUT 1 #define GPIO_MODER_AF 2 #define GPIOA_MODER_SWD (GPIO_MODER_AF << (14 << 1) | GPIO_MODER_AF << (13 << 1)) // keep SWD pins #define GPIO_PUPDR_PU 1 #define GPIO_PUPDR_PD 2 #define TIM_CCMR2_OC3M_PWM1 #define TIM_CCMR2_OC4M_PWM1
0x0060 // OC3M[2:0] - PWM mode 1 0x6000 // OC4M[2:0] - PWM mode 1
typedef __IO uint32_t * __IO32p; //======================================================================== // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT #define BUTTON_BIT 0
GPIOA
#define BLUE_LED_PWM TIM3->CCR3 #define GREEN_LED_PWM TIM3->CCR4 //======================================================================== #define SYSCLK_FREQ HSI_VALUE #define BAUD_RATE 9600 #define BLINK_PERIOD #define BTN_ACK_PERIOD
50 50
// * 10 ms // * 10 ms
// PWM constants #define PWM_FREQ 400 // Hz #define PWM_STEPS 80 #define PWM_CLK SYSCLK_FREQ #define PWM_PRE (PWM_CLK / PWM_FREQ / PWM_STEPS) #define LED_MAX (PWM_STEPS - 1) #define LED_DIM 1 #define LED_OFF 0 //======================================================================== struct init_entry_ { volatile uint32_t *loc; uint32_t value; }; static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================== void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================== static const struct init_entry_ init_table[] = { {&RCC->APB2ENR, RCC_APB2ENR_USART1EN}, // USART1 clock enable // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN}, // GPIOC, GPIOA {&GPIOA->AFR[1], 1 << (2 << 2) | 1 << (1 << 2)}, // set USART pins 10 - RX, 9 - TX {&GPIOA->PUPDR, GPIO_PUPDR_PD << (10 << 1)}, // set pulldn on PA10 { &GPIOA->MODER, GPIOA_MODER_SWD | GPIO_MODER_AF << (10 << 1) | GPIO_MODER_AF << (9 << 1) }, // set UART pins as AF { &LED_PORT->MODER, GPIO_MODER_AF << (GREEN_LED_BIT << 1) | GPIO_MODER_AF << (BLUE_LED_BIT << 1) }, // set LED pins as AF {&RCC->AHBENR, RCC_AHBENR_GPIOAEN}, // GPIOA // USART1 setup {(__IO32p)&USART1->BRR, (SYSCLK_FREQ + BAUD_RATE / 2) / BAUD_RATE}, // {&USART1->CR2, USART_CR2_TXINV | USART_CR2_RXINV}, // Invert ext. lines {&USART1->CR1, USART_CR1_RXNEIE | USART_CR1_TE | USART_CR1_RE | USART_CR1_UE}, // enable // PWM timer setup - TIM3 {&RCC->APB1ENR, RCC_APB1ENR_TIM3EN}, // TIM3 {(__IO32p)&TIM3->PSC, PWM_PRE - 1}, // prescaler {(__IO32p)&TIM3->ARR, PWM_STEPS - 1}, // period // blue - CH3, green - CH4 {(__IO32p)&TIM3->CCMR2, TIM_CCMR2_OC4M_PWM1 | TIM_CCMR2_OC4PE | TIM_CCMR2_OC3M_PWM1 | TIM_CCMR2_OC3PE}, // PWM mode 1, buffered preload {(__IO32p)&TIM3->CCER, TIM_CCER_CC4E | TIM_CCER_CC3E}, // enable CH3, 4 output {(__IO32p)&TIM3->DIER, TIM_DIER_UIE}, // enable update interrupt {(__IO32p)&TIM3->CR1, TIM_CR1_ARPE | TIM_CR1_CEN}, // auto reload, enable // interrupts and sleep {&NVIC->ISER[0], 1 << USART1_IRQn | 1 << TIM3_IRQn}, // enable interrupts {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================== int main(void) { writeregs(init_table); __WFI(); // go to sleep }
ELEKTRONIKA PRAKTYCZNA 9/2013
87
uint32_t pwmval; TIM3->SR = ~TIM_SR_UIF;
// clear interrupt flag
if ((++ tdiv & 3) == 0) { bstate = (bstate << 1 & 0xf) | (BUTTON_PORT->IDR >> BUTTON_BIT & 1); if (blue_led_timer) { if (-- blue_led_timer == 0) blue_target = LED_DIM; } else if (bstate == 1 || mchange) { // button pressed or CR received - change blink mode if (++ blink_mode > BM_OFF) blink_mode = BM_SLOW; blue_led_timer = BTN_ACK_PERIOD; blue_target = LED_MAX; USART1->TDR = blink_mode + ‚0’; mchange = 0; }
}
if (-- blink_timer == 0) { blink_timer = blink_periods[blink_mode]; on_time = blink_timer >> 1; green_target = LED_DIM; } else if (blink_timer == on_time) green_target = LED_MAX;
if ((pwmval = BLUE_LED_PWM) != blue_target) BLUE_LED_PWM = pwmval < blue_target ? pwmval + 1 : pwmval - 1; if ((pwmval = GREEN_LED_PWM) != green_target) GREEN_LED_PWM = pwmval < green_target ? pwmval + 1 : pwmval - 1;
} //======================================================================== void USART1_IRQHandler(void) { if (USART1->ISR & USART_ISR_RXNE) // data received { uint8_t c; c = USART1->RDR; if (c == ‚\r’) mchange = 1; else if ((c >= ‚A’ && c <= ‚Z’) || (c >= ‚a’ && c <= ‚z’)) c ^= ‚A’ ^ ‚a’; USART1->TDR = c;
} } //========================================================================
należy zachować szczególną uwagę – błędne podłączenie wyjścia danych mikrokontrolera do niewłaściwej linii złącza DB9 może spowodować trwałe uszkodzenie mikrokontrolera.
Obsługa nadajnika USART z użyciem przerwań
Poprzedni przykład (listing 1) pokazuje dość prostą i nienadającą się do szerszego zastosowania metodę nadawania danych przez moduł USART. W kolejnym projekcie zaprezentujemy nadawanie ciągów znaków przy użyciu przerwania zgłaszanego przy gotowości nadajnika. W każdym projekcie urządzenia nadającego dane musimy zadbać o to, by strumień danych nie przekraczał możliwości nadajnika. Nasz program będzie zliczał naciśnięcia przycisku. Po każdym naciśnięciu wartość licznika będzie wysyłana do PC przez interfejs UART w postaci 8-cyfrowej liczby szesnastkowej zakończonej sekwencją przejścia do nowego wiersza CR+LF. Każde
88
ELEKTRONIKA PRAKTYCZNA 9/2013
naciśnięcie przycisku będzie więc powodowało transmisję 10 bajtów. Przesyłane dane można będzie oglądać przy użyciu programu terminala. Ponieważ z zastosowanego wcześniej algorytmu obsługi przycisku wynika, że można zarejestrować maksymalnie 25 naciśnięć w ciągu sekundy, przy szybkości transmisji 9600 bit/s nie zachodzi obawa nasycenia nadajnika. Aby obsługa transmisji była uniwersalna, zastosujemy dla transmitowanych danych bufor cykliczny, pomimo że nie jest on niezbędny w naszym zastosowaniu, w którym długość przesyłanego bloku danych jest stała. Program powstanie przez modyfikację poprzedniego przykładu użycia USART. Gotowy projekt nosi nazwę USART1cnt.
Procedury obsługi nadawania
Zaczynamy od sekwencji inicjującej USART1. Tym razem nie będziemy używali przerwania odbiornika. Musimy za to oprogramować nadawanie danych przy użyciu przerwania nadajnika.
Krok po kroku Kursy EP
Listing 1. c.d. //======================================================================== static _Bool mchange = 0; //======================================================================== void TIM3_IRQHandler(void) { static uint8_t blink_timer = BLINK_PERIOD; static enum {BM_SLOW, BM_FAST, BM_OFF} blink_mode = BM_SLOW; static uint8_t bstate = 0; static uint8_t blue_led_timer = 0, on_time = 0; static const uint8_t blink_periods[] = {100, 50, 1}; static uint8_t tdiv = 0; static uint8_t blue_target = LED_DIM, green_target = LED_DIM;
Krok po kroku Kursy EP
W programie zdefiniujemy bufor nadawanych znaków u1_outbuf[] oraz dwa indeksy – wskaźniki znaków wstawianych i pobieranych z bufora – u1_obiptr i u1_ oboptr. Gdy bufor jest pusty, oba wskaźniki są równe. Przerwanie nadajnika będzie włączane tylko wtedy, gdy w buforze znajdą się dane do nadawania. Procedura obsługi przerwania USART1 jest wywoływana, gdy interfejs jest gotowy na przyjęcie danej do nadawania i jest włączone przerwanie nadajnika. Procedura najpierw oblicza przyszłą wartość wskaźnika danych pobieranych. Jeżeli po wysłaniu kolejnego znaku bufor zostałby opróżniony, przerwanie nadajnika jest wyłączane. Następnie znak z bufora jest ładowany do rejestru nadajnika oraz jest modyfikowany wskaźnik pobieranych danych. Procedura wstawienia znaku do bufora USART1_put sprawdza, czy w buforze jest miejsce, a następnie wstawia znak do bufora, przesuwa wskaźnik wstawiania i włącza przerwanie nadajnika. W przypadku zapełnienia bufora procedura zwraca wartość 1, sygnalizującą błąd. Procedura nie czeka w takim przypadku na zwolnienie miejsca w buforze. Procedura wysyłania cyfry szesnastkowej puthexdigit zamienia wartość tetrady na jej reprezentację szesnastListing /* */
kową w kodzie ASCII, a następnie wstawia ją do bufora przy użyciu funkcji USART1_put.
Procedura obsługi przerwania timera
W procedurze zadeklarowano zmienną count – licznik zliczający naciśnięcia przycisku. Procedura obsługi timera w przypadku wykrycia naciśnięcia przycisku inkrementuje licznik i wstawia do bufora nadawczego jego reprezentację znakową, zakończoną sekwencją końca wiersza. Równocześnie jest zaświecana niebieska dioda, sygnalizująca naciśnięcie przycisku (listing 2).
Zliczanie czasu i transmisja USART z użyciem DMA
Kolejny program będzie transmitował dane przez USART korzystając z modułu bezpośredniego dostępu do pamięci, czyli bez udziału oprogramowania w transmisji każdego bajtu. Tam razem program będzie pełnił rolę prostego timera, odliczającego czas w sekundach. Naciśnięcie przycisku umieszczonego na płytce będzie powodowało wyzerowanie i restart timera. Co jedną sekundę bieżąca wartość timera będzie transmitowana przez USART – można ją wyświetlić na PC korzystając z programu termi-
2. Obsługa zliczania przycisku i przesyłania danych przez UART STM32F0DISCOVERY tutorial USART1 interrupt-driven Tx gbm, 02’2013
#include „stm32f0xx.h” //======================================================================== // defs for STM32F05x chips #define GPIO_MODER_OUT 1 #define GPIO_MODER_AF 2 // keep SWD pins #define GPIOA_MODER_SWD (GPIO_MODER_AF << (14 << 1) | GPIO_MODER_AF << (13 << 1)) #define GPIO_PUPDR_PU 1 #define GPIO_PUPDR_PD 2 #define TIM_CCMR2_OC3M_PWM1 #define TIM_CCMR2_OC4M_PWM1
0x0060 // OC3M[2:0] - PWM mode 1 0x6000 // OC4M[2:0] - PWM mode 1
typedef __IO uint32_t * __IO32p; //======================================================================== // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT #define BUTTON_BIT 0
GPIOA
#define BLUE_LED_PWM TIM3->CCR3 #define GREEN_LED_PWM TIM3->CCR4 //======================================================================== #define SYSCLK_FREQ HSI_VALUE #define BAUD_RATE 9600 #define BTN_ACK_PERIOD
25
// * 10 ms
// PWM constants #define PWM_FREQ 400 // Hz #define PWM_STEPS 80 #define PWM_CLK SYSCLK_FREQ #define PWM_PRE (PWM_CLK / PWM_FREQ / PWM_STEPS) #define LED_MAX (PWM_STEPS - 1) #define LED_DIM 1 #define LED_OFF 0 //======================================================================== struct init_entry_ { volatile uint32_t *loc; uint32_t value; }; static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================== void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch
ELEKTRONIKA PRAKTYCZNA 9/2013
89
if (u1_obiptr == next_optr) USART1->CR1 &= ~USART_CR1_TXEIE; // nothing more to send, disable int USART1->TDR = u1_outbuf[u1_oboptr]; u1_oboptr = next_optr;
} } //======================================================================== static _Bool UART1_put(uint8_t c) { uint32_t next_iptr = (u1_obiptr + 1) % U1OBSIZE; if (next_iptr == u1_oboptr) return 1; // buffer full - signal overflow u1_outbuf[u1_obiptr] = c; u1_obiptr = next_iptr; USART1->CR1 |= USART_CR1_TXEIE; return 0; // ok
} //======================================================================== static void puthexdigit(uint8_t v) { v &= 0xf; UART1_put(v + (v <= 9 ? ‚0’ : ‚A’ - 10)); } //======================================================================== void TIM3_IRQHandler(void) { static uint8_t bstate = 0; static uint8_t blue_led_timer = 0; static uint8_t tdiv = 0; static uint8_t blue_target = LED_DIM; static uint32_t counter = 0; uint32_t pwmval; TIM3->SR = ~TIM_SR_UIF;
// clear interrupt flag
if ((++ tdiv & 3) == 0) { // 100 Hz if ((bstate = (bstate << 1 & 0xf) | (BUTTON_PORT->IDR >> BUTTON_BIT & 1)) == 1) { int i; // button pressed - increment counter blue_led_timer = BTN_ACK_PERIOD; blue_target = LED_MAX;
90
ELEKTRONIKA PRAKTYCZNA 9/2013
Krok po kroku Kursy EP
Listing 2. c.d. } //======================================================================== static const struct init_entry_ init_table[] = { // clock control {&RCC->APB1ENR, RCC_APB1ENR_TIM3EN}, {&RCC->APB2ENR, RCC_APB2ENR_USART1EN}, // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN}, // GPIOC, GPIOA {&GPIOA->AFR[1], 1 << (2 << 2) | 1 << (1 << 2)}, // set USART pins 10 - RX, 9 - TX {&GPIOA->PUPDR, GPIO_PUPDR_PD << (10 << 1)}, // set pulldn on PA10 {&GPIOA->MODER, GPIOA_MODER_SWD | GPIO_MODER_AF << (10 << 1) | GPIO_MODER_AF << (9 << 1) }, // set UART pins as AF {&LED_PORT->MODER, GPIO_MODER_AF << (GREEN_LED_BIT << 1) | GPIO_MODER_AF << (BLUE_LED_BIT << 1) }, // set LED pins as AF {&RCC->AHBENR, RCC_AHBENR_GPIOAEN}, // GPIOA // USART1 setup {(__IO32p)&USART1->BRR, (SYSCLK_FREQ + BAUD_RATE / 2) / BAUD_RATE}, {&USART1->CR2, USART_CR2_TXINV | USART_CR2_RXINV}, // Invert ext. lines {&USART1->CR1, USART_CR1_TE | USART_CR1_RE | USART_CR1_UE}, // enable // PWM timer setup - TIM3 {(__IO32p)&TIM3->PSC, PWM_PRE - 1}, // prescaler {(__IO32p)&TIM3->ARR, PWM_STEPS - 1}, // period // blue - CH3, green - CH4 {(__IO32p)&TIM3->CCMR2, TIM_CCMR2_OC4M_PWM1 | TIM_CCMR2_OC4PE | TIM_CCMR2_OC3M_PWM1 | TIM_CCMR2_OC3PE}, // PWM mode 1, buffered preload {(__IO32p)&TIM3->CCER, TIM_CCER_CC4E | TIM_CCER_CC3E}, // enable CH3, 4 output {(__IO32p)&TIM3->DIER, TIM_DIER_UIE}, // enable update interrupt {(__IO32p)&TIM3->CR1, TIM_CR1_ARPE | TIM_CR1_CEN}, // auto reload, enable // interrupts and sleep {&NVIC->ISER[0], 1 << USART1_IRQn | 1 << TIM3_IRQn}, // enable interrupts {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================== int main(void) { writeregs(init_table); __WFI(); // go to sleep } //======================================================================== // UART1 output buffer #define U1OBSIZE 32 static uint8_t u1_outbuf[U1OBSIZE]; static uint8_t u1_obiptr = 0, u1_oboptr = 0; //======================================================================== void USART1_IRQHandler(void) { if (USART1->ISR & USART_ISR_TXE) // ready to send { uint32_t next_optr = (u1_oboptr + 1) % U1OBSIZE;
Krok po kroku Kursy EP
Listing 2. c.d. counter ++;
}
}
for (i = 7; i >= 0; i --) puthexdigit(counter >> (i * 4)); UART1_put(‚\r’); UART1_put(‚\n’);
if (blue_led_timer) { if (-- blue_led_timer == 0) blue_target = LED_DIM; }
if ((pwmval = BLUE_LED_PWM) != blue_target) BLUE_LED_PWM = pwmval < blue_target ? pwmval + 1 : pwmval - 1; } //========================================================================
nala. Program, powstały przez modyfikację poprzedniego przykładu, jest zawarty w projekcie UART1dma.
Oprogramowanie modułu USART i DMA
Moduł USART1 jest inicjowany podobnie jak w poprzednim przykładzie. Wprowadzono jedną istotną zmianę – przed finalnym uaktywnieniem USART w rejestrze CR modułu jest ustawiony bit włączający zgłaszanie żądania DMA przez nadajnik. Na początku sekwencji inicjującej jest włączany moduł DMA – wymaga to ustawienia odpowiedniego bitu w rejestrze AHBENR modułu RCC. Sterownik bezpośredniego dostępu do pamięci, zrealizowany w STM32F05x, dysponuje pięcioma kanałami transmisji. Z nadajnikiem USART1 jest związany kanał 2; programując moduł DMA będziemy używali rejestrów tego kanału, dostępnych w postaci struktury poprzez wskaźnik DMA1_Channel2. Listing /* */
Do jednorazowego zainicjowania modułu DMA potrzebne są dwa zapisy rejestrów adresów. Ponieważ specyfikowanie adresów jako stałych typów numerycznych generuje ostrzeżenie w ANSI C, zapisy te zostały umieszczone w funkcji main. Pełne programowanie modułu DMA do współpracy z nadajnikiem USART1 wymaga łącznie czterech operacji: • Ustawienia adresu początkowego bufora w pamięci, z którego będą pobierane dane, w rejestrze CMAR. • Ustawienia adresu rejestru danych nadajnika USART w rejestrze CMAR. • Ustawienia liczby transmitowanych bajtów w rejestrze CNDTR. • Ustawienia trybu transmisji oraz uaktywnienia kanału DMA poprzez zapis do rejestru sterującego kanału CCR bitów: inkrementacji adresu pamięci - MINC, kierunku transmisji – z pamięci do modułu peryferyjnego DIR oraz aktywacji kanału EN.
3. Obsługa DMA oraz UART STM32F0DISCOVERY tutorial USART1 with DMA Tx + TIM3 timer & PWM blinker gbm, 02’2013
#include „stm32f0xx.h” //======================================================================== // STM32F05x #define GPIO_MODER_OUT 1 #define GPIO_MODER_AF 2 #define GPIOA_MODER_SWD (GPIO_MODER_AF << (14 << 1) | GPIO_MODER_AF << (13 << 1)) // keep SWD pins #define GPIO_PUPDR_PU 1 #define GPIO_PUPDR_PD 2 #define TIM_CCMR2_OC3M_PWM1 #define TIM_CCMR2_OC4M_PWM1
0x0060 // OC3M[2:0] - PWM mode 1 0x6000 // OC4M[2:0] - PWM mode 1
typedef __IO uint32_t * __IO32p; //======================================================================== // STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT #define BUTTON_BIT 0
GPIOA
#define BLUE_LED_PWM TIM3->CCR3 #define GREEN_LED_PWM TIM3->CCR4 //======================================================================== #define SYSCLK_FREQ HSI_VALUE #define BAUD_RATE 9600 #define BTN_ACK_PERIOD 25 // * 10 ms // PWM constants #define PWM_FREQ 400 // Hz #define PWM_STEPS 80 #define PWM_CLK SYSCLK_FREQ #define PWM_PRE (PWM_CLK / PWM_FREQ / PWM_STEPS) #define LED_MAX (PWM_STEPS - 1) #define LED_DIM 1 #define LED_OFF 0 //======================================================================== struct init_entry_ { volatile uint32_t *loc; uint32_t value; };
ELEKTRONIKA PRAKTYCZNA 9/2013
91
uint32_t pwmval; TIM3->SR = ~TIM_SR_UIF;
// clear interrupt flag
if ((++ tdiv & 3) == 0) { // 100 Hz int i; _Bool upd_time = 0; if ((bstate = (bstate << 1 & 0xf) | (BUTTON_PORT->IDR >> BUTTON_BIT & 1)) == 1) { // button pressed - clear timer for (i = 0; i < 6; i ++) time[i] = ‚0’; sdiv = 0; upd_time = 1; blue_target = LED_MAX; blue_led_timer = BTN_ACK_PERIOD; } else if (blue_led_timer && -- blue_led_timer == 0) blue_target = LED_DIM; if (++ sdiv == 100) { sdiv = 0; // increment time for (i = 5; i >= 0 && ++ time[i] > ‚9’; i --) time[i] = ‚0’; upd_time = 1; green_target = LED_MAX; } else if (sdiv == 50)
92
ELEKTRONIKA PRAKTYCZNA 9/2013
Krok po kroku Kursy EP
Listing 3. c.d. static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================== void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================== static const struct init_entry_ init_table[] = { // clock enable {&RCC->APB1ENR, RCC_APB1ENR_TIM3EN}, {&RCC->APB2ENR, RCC_APB2ENR_USART1EN}, { &RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN | RCC_AHBENR_FLITFEN | RCC_AHBENR_SRAMEN | RCC_AHBENR_DMA1EN }, // port setup {&GPIOA->AFR[1], 1 << (2 << 2) | 1 << (1 << 2)}, // USART pins 10 - RX, 9 - TX {&GPIOA->PUPDR, GPIO_PUPDR_PD << (10 << 1)}, // pulldn on PA10 { &GPIOA->MODER, GPIOA_MODER_SWD | GPIO_MODER_AF << (10 << 1) | GPIO_MODER_AF << (9 << 1) }, // UART pins as AF { &LED_PORT->MODER, GPIO_MODER_AF << (GREEN_LED_BIT << 1) | GPIO_MODER_AF << (BLUE_LED_BIT << 1) }, // set LED pins as AF // USART1 setup {(__IO32p)&USART1->BRR, (SYSCLK_FREQ + BAUD_RATE / 2) / BAUD_RATE}, // {&USART1->CR2, USART_CR2_TXINV | USART_CR2_RXINV}, // Invert TX & RX {&USART1->CR3, USART_CR3_DMAT}, // enable Tx DMA {&USART1->CR1, USART_CR1_TE | USART_CR1_RE | USART_CR1_UE}, // enable // DMA init moved to main() to avoid ANSI C warnings // PWM timer setup - TIM3 {(__IO32p)&TIM3->PSC, PWM_PRE - 1}, // prescaler {(__IO32p)&TIM3->ARR, PWM_STEPS - 1}, // period // blue - CH3, green - CH4 { (__IO32p)&TIM3->CCMR2, TIM_CCMR2_OC4M_PWM1 | TIM_CCMR2_OC4PE | TIM_CCMR2_OC3M_PWM1 | TIM_CCMR2_OC3PE }, // PWM mode 1, buffered preload {(__IO32p)&TIM3->CCER, TIM_CCER_CC4E | TIM_CCER_CC3E}, // enable CH3, 4 output {(__IO32p)&TIM3->DIER, TIM_DIER_UIE}, // enable update interrupt {(__IO32p)&TIM3->CR1, TIM_CR1_ARPE | TIM_CR1_CEN}, // auto reload, enable // interrupts and sleep {&NVIC->ISER[0], 1 << TIM3_IRQn}, // enable interrupts {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================== static uint8_t time[8] = „000000\r\n”; //======================================================================== int main(void) { writeregs(init_table); DMA1_Channel2->CMAR = (uint32_t)time; DMA1_Channel2->CPAR = (uint32_t)&USART1->TDR; __WFI(); // go to sleep } //======================================================================== void TIM3_IRQHandler(void) { static uint8_t bstate = 0; static uint8_t blue_led_timer = 0; static uint8_t tdiv = 0; static uint8_t blue_target = LED_DIM, green_target = LED_DIM; static uint8_t sdiv = 0;
Krok po kroku Kursy EP
Listing 3. c.d. green_target = LED_DIM;
}
if (upd_time) { // init DMA for time string transfer DMA1_Channel2->CCR = 0; // disable DMA1_Channel2->CNDTR = sizeof(time); // no. of items // increment memory adress, mem->periph, enable DMA1_Channel2->CCR = DMA_CCR_MINC | DMA_CCR_DIR | DMA_CCR_EN; }
if ((pwmval = BLUE_LED_PWM) != blue_target) BLUE_LED_PWM = pwmval < blue_target ? pwmval + 1 : pwmval - 1; if ((pwmval = GREEN_LED_PWM) != green_target) GREEN_LED_PWM = pwmval < green_target ? pwmval + 1 : pwmval - 1;
} //========================================================================
Z powodu wymagań standardu ANSI języka C zapis rejestrów adresowych kanału DMA następuje w funkcji main – umieszczenie go w tablicy inicjowania peryferiali spowodowałoby wygenerowanie przez kompilator ostrzeżeń o użyciu stałych wbrew standardowi. Moduł DMA po zakończeniu transmisji zachowuje początkowe wartości rejestrów adresowych, ale wymaga zapisu długości bloku danych przed każdą transmisją. Dodatkowo, rejestr długości bloku może być zapisany tylko wówczas, gdy kanał jest nieaktywny, a kanał nie deaktywuje się samoczynnie po zakończeniu transmisji bloku. Z tych powodów w procedurze obsługi przerwania timera, w miejscu, gdzie następuje uaktywnienie kanału i rozpoczęcie transmisji, znalazła się sekwencja trzech instrukcji: • deaktywacji kanału – zapis 0 do CCR, • zapisu długości bloku do CNDTR, • powtórnej aktywacji kanału – zapis słowa sterującego do CCR.
Obsługa przerwania timera
Przerwanie timera generującego przebiegi PWM sterujące diodami jest zgłaszane tak samo, jak we wcześniejszych projektach, z częstotliwością 400 Hz. Jego obsługa obejmuje kilka czynności, wykonywanych z różnymi częstotliwościami: • płynną modyfi kację wypełnień PWM dla diod – 400 Hz; • reakcję na przycisk zerowania timera – 100 Hz;
• zliczanie czasu w timerze programowym i błyskanie zieloną diodą – 1 Hz. W celu uniknięcia konwersji wartości timera z postaci binarnej na reprezentację znakową, wartość ta jest przechowywana w postaci znakowej, w tablicy znakowej timer[]. Tablica ta, o długości 8 bajtów, zawiera na pozycjach 0…5 sześć cyfr timera, a na pozycjach 6 i 7 – sekwencję końca wiersza, przesyłaną wraz z wartością timera przez łącze szeregowe. Blok reakcji na naciśnięcie przycisku jest wywoływany, tak jak poprzednio, w co czwartym przerwaniu. W bloku tym jest sprawdzany stan przycisku oraz inkrementowany jest licznik sdiv zliczający setne części sekundy. Przy naciśnięciu przycisku zerowany jest timer odliczający sekundy oraz licznik setnych części sekundy. Dodatkowo jest zaświecana niebieska dioda; jej wygaszanie rozpoczyna się po upływie ¼ sekundy po naciśnięciu przycisku. Po osiągnięciu przez licznik setnych wartości 100 jest on zerowany oraz następuje inkrementacja timera programowego. Inkrememtacja ta jest wykonywana w prostej pętli for(). Zarówno inkrementacja, jak i wyzerowanie licznika kończy się ustawieniem zmiennej logicznej upd_time, co w dalszej części przerwania timera powoduje zainicjowanie transmisji całego bufora timera programowego przez USART. Omawiany przykład pokazano na listingu 3.
Grzegorz Mazur [email protected]
ELEKTRONIKA PRAKTYCZNA 9/2013
93
Łatwa inicjalizacja systemowa procesora serii Piccolo F2802x Inicjalizacja procesora serii Piccolo F2802x jest dosyć skomplikowana. Zastosowanie biblioteki driverlib z pakietu programowego controlSUITE znacznie ułatwia wykonanie tego zadania. Zaprezentowane w artykule postępowanie pozwala na dokładne zapoznanie się z inicjowaniem systemowym procesorów serii Piccolo F2802x z użyciem biblioteki driverlib w środowisku programowym CCSv5. Do tworzenia w środowisku CCSv5 programów przeznaczonych dla procesorów rodziny TMS320Piccolo F2802x fi rmy Texas Instruments potrzebny jest pakiet programowy controlSUITE tej fi rmy. Zawiera on oprogramowanie „fi rmware”, biblioteki, opisy zestawów sprzętowych oraz projekty przykładowe dla wszystkich serii procesorów rodziny C2000. Projekty przykładowe pakietu controlSUITE zwierają na początku kodu programu sekwencję inicjalizacji systemowej układu procesorowego serii Piccolo F2802x.
Konfiguracja sprzętowa i programowa
Do wykonania ćwiczenia potrzebny jest komputer z zainstalowanym (darmowym) oprogramowaniem: • Środowisko Code Composer Studio v5.4.0 (Maj 2013) fi rmy Texas Instruments [1, 13, 15]. Umożliwia tworzenie w środowisku CCSv5 programów przeznaczonych dla procesorów serii Piccolo TMS320F2802x. • Pakiet programowy controlSUITEv3.2.1 (Czerwiec 2013) fi rmy Texas Instruments [2, 13, 15]. Zawiera oprogramowanie „fi rmware”, biblioteki, opisy zestawów sprzętowych oraz projekty przykładowe dla wszystkich serii procesorów rodziny C2000. Platforma sprzętowa wymaga tylko jednego elementu: • Zestaw ewaluacyjny C2000 Piccolo LaunchPad fi rmy Texas Instruments z układem procesorowym TMS320F28027 Piccolo fi rmy Texas Instruments (zawiera kabel USB-A USB-mini) [10, 12] W folderze C:\home_dir komputera zostanie utworzony nowy folder work_SYS. Wymagane są prawa dostępu (zapisu i modyfi kacji) dla tej ścieżki dyskowej. Możliwe jest umieszczenie foldera home_dir na innym wolumenie dyskowym z prawami dostępu.
Cel ćwiczenia
Celem ćwiczenia jest praktyczne poznanie inicjalizowania systemowego układu procesorowego serii Piccolo F2802x przy użyciu biblioteki driverlib pakietu programowego controlSUITEv3 oraz środowiska Code Composer Studio v5. Zastosowano przykładowy projekt Example_F2802xGpioSetup z tego pakietu pracujący na zestawie ewaluacyjnym C2000 Piccolo LaunchPad. Ćwiczenie jest zorganizowane tak, że działania są wykonywane w kolejnych punktach i krokach uzupełnionych o opisy. Ćwiczenie umożliwia: poznanie organizacji plików nagłówkowych projektu oraz poznanie budowy
94
ELEKTRONIKA PRAKTYCZNA 9/2013
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 • „C2000 Piccolo LanuchPad (5) - Łatwa obsługa szyny I2C”, EP 07/2013 i inicjalizowania: układu generacji sygnału zegarowego, modułu CPU Watchdog, układu obsługi przerwań i modułu PIE oraz kalibracji oscylatorów wewnętrznych i modułu ADC.
Opisy
Dane techniczne i parametry elektryczne układu procesorowego serii Piccolo F2802x są zamieszczone w dokumencie Texas Instruments [3] a istotne informacje na temat błędnego działania układu procesorowego serii Piccolo F2802x zawiera errata [4]. Opis układu generacji sygnału zegarowego, modułu CPU Watchdog, obsługi przerwań, modułu PIE oraz modułu GPIO układu procesorowego serii Piccolo F2802x jest zamieszczony w dokumencie TMS320x2802x Piccolo System Control and Interrupts [5]. Procedura Device_cal jest umieszczona w pamięci Boot ROM układów procesorowych serii F2802x i jest opisana w dokumencie TMS320x2802x Piccolo Boot ROM Reference Guide [7]. Opis opis zestawu ewaluacyjnego C2000 Piccolo LaunchPad jest zamieszczony w dokumencie LAUNCHXL-F28027 C2000 Piccolo LaunchPad Experimenter Kit, User’s Guide [10]. Opis oprogramowania „fi rmware” pakietu programowego controlSUITEv3 jest zamieszczony w dokumencie F2802x Firmware Development Package USER’S GUIDE v. 210 [8]. Opis biblioteki driverlib pakietu programowego controlSUITEv3 jest zamieszczony w dokumencie F2802x Peripheral Driver Library USER’S GUIDE v. 210 [9]. Dokładne omówienie budowy układu procesorowego serii Piccolo F2802x jest zamieszczone w książce: Henryk A. Kowalski, „Procesory DSP dla praktyków”, BTC, Warszawa, 2011 [13]
Krok po kroku Kursy EP
C2000 Piccolo LanuchPad (6)
Krok po kroku Kursy EP
Dokładne omówienie inicjowania układu procesorowego serii Piccolo F2802x jest zamieszczone w książce: Henryk A. Kowalski, „Procesory DSP w przykładach”, BTC, Warszawa, 2012 [15]. Dokładne omówienie zestawu ewaluacyjnego C2000 Piccolo LaunchPad jest zamieszczone w artykule: Henryk A. Kowalski, „Zestaw ewaluacyjny C2000 Piccolo LaunchPad”, EP 01/2013 [12]. Dokładne omówienie środowiska CCSv5 oraz pakietu controlSUITEv3 jest zamieszczone w artykule: Henryk A. Kowalski, „C2000 Piccolo LanuchPad (2) – Łatwe programowanie z pakietem controlSUITE”, EP 03/2013 [13].
Model programowy procesora serii Piccolo F2802x
Pakiet programowy „firmware” (F2802x Firmware Development Package) dostarcza wsparcia dla dwóch modeli programowania układów procesorowych serii F2802x Piccolo. Jest to: model bezpośredniego dostępu do rejestrów (header files) oraz model drajwerów programowych (library). Każdy z tych modeli może być zastosowany osobno lub łącznie. Opis jest zamieszczony w dokumentach [8, 9] dostępnych w ścieżce \doc pakietu programowego „firmware”. Biblioteka driverlib modelu drajwerów programowych dostarcza API do sterowania modułami peryferyjnymi. Drajwery programowe zapewniają kontrolę nad modułami i nie wymagają bezpośredniego dostępu do ich rejestrów. Model może nie udostępniać wszystkich możliwości funkcjonalnych modułu peryferyjnego. Opis modelu jest zamieszczony w dokumentach [8, 9] dostępnych w ścieżce \doc pakietu programowego „firmware”. Zastosowanie w programie modelu drajwerów programowych wymaga dołączenia do projektu biblioteki driverlib.lib. Na początku programu należy włączyć pliki nagłówkowe drajwerów modułów, które będą w programie używane. Następnie należy zainicjować wskazanie (handle) na strukturę dla tego modułu. Potem można już używać funkcji obsługi tego modułu. Metody obsługi modułów peryferyjnych układów procesorowych serii Piccolo F2802x udostępniane przez bibliotekę driverlib są bardzo podobne dla wszystkich modułów.
Podłączenie i skonfigurowanie zestawu C2000 Piccolo LaunchPad
Po zainstalowaniu środowiska CCSv5 [1, 13] można pierwszy raz dołączyć zestaw ewaluacyjny C2000 Piccolo LaunchPad [10, 12] kablem USB do wolnego portu USB komputera. System Windows automatycznie rozpoznaje układ. Zostaną zainstalowane sterowniki systemu Windows dla emulatora XDS100v2 [15]. 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 [12]: • Założone zwory JP1 („3V3”), JP3 („5V”) i JP2 („GND”). Oznacza to zasilanie układu procesorowego Piccolo F28027 z gniazdka 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 układu procesorowego Piccolo F28027 z pamięci Flash.
• Przełącznik S4 („Serial”) skonfigurowany w pozycji do góry (ON). Oznacza to dołączenie portu UART układu procesorowego Piccolo F28027 do układu emulatora, a tym samym do wirtualnego portu COM na komputerze PC. Zestaw ewaluacyjny jest dostarczany z wpisanym do pamięci Flash układu procesorowego Piccolo F28027 programem przykładowym Example_F2802xLaunchPadDemo. Program automatycznie zaczyna pracować po dołączeniu zestawu do portu USB [12].
Uruchamianie środowiska CCSv5
Po uruchomienia środowiska CCSv5 pokazywane jest okno edycyjne Workspace Launcher ustawiania lokalizacji foldera roboczego. 1. W oknie Workspace należy wpisać ścieżkę dla lokalizacji folderu (workspace) roboczego projektu. Można ją też wskazać przy użyciu standardowego przycisku Browse systemu Windows. Odznaczenie (wyłączenie) opcji Use this as the default and do not ask again oznacza pracę z osobnym folderem roboczym. Folder z projektem można umieścić w folderze roboczym. Ale nie odwrotnie. Przy ponownym uruchomieniu środowiska CCSv5 pokazywana jest w oknie Workspace Launcher ścieżka lokalizacji folderu roboczego używana przy ostatnim zamknięciu CCSv5. W oknie Workspace wpisz ścieżkę i nazwę foldera roboczego. Powinna być ona krótka i musi być zlokalizowana na dysku w miejscu, dla którego są uprawnienia dostępu (zapisu). Dla indywidualnej pracy proponowana jest ścieżka . Dla tego ćwiczenia proponowana jest nazwa foldera /work_SYS. Można umieścić folder home_dir na innym wolumenie dyskowym z prawami dostępu. 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 w prawym dolnym rogu okna. Przy uruchamianiu środowiska sprawdzana jest w sieci dostępność aktualizacji. Środowisko CCSv5 przy pierwszym uruchamianiu może pobierać sporo aktualizacji. Może to trwać dosyć długo i należy koniecznie poczekać przed rozpoczęciem dalszej pracy na zakończenie inicjalizacji środowiska i pokazanie okna Welcome lub Home. Jeśli zostały wykryte i pobrane z sieci nowe lub aktualniejsze komponenty to wyświetlane jest okno wyboru komponentów do aktualizacji. Po kliknięciu przycisku Finish wyświetlane jest okno informacyjne. Zainstalowanie nowych komponentów wymaga zamknięcia i ponownego uruchomienia środowiska CCSv5.
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 w 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 tylko dokumen-
ELEKTRONIKA PRAKTYCZNA 9/2013
95
Zastosowanie projektu Example_ F2802xGpioSetup
2. Dla pracy z rodziną układów procesorowych Piccolo F2802x rozwiń w oknie TI Resource Explorer drugą pozycję controlSUITE. Następnie rozwiń w tym oknie drzewo controlSUITE device_support f2802x v210 f2802x_examples. Potem kliknij na nazwę wybranego projektu Example_F2802xGpioSetup. W prawym oknie zostanie wyświetlona instrukcja jak krok po kroku zbudować i uruchomić projekt.
Krok1: Importowanie projektu Example_F2802xGpioSetup do CCSv5
Krok1 umożliwia zaimportowanie wybranego projektu do CCSv5. 3. W oknie TI Resource Explorer kliknij na odnośnik kroku 1. Po poprawnym wykonaniu importowania w oknie Project Explorer pojawia się drzewo projektu i w oknie TI Resource Explorer pokazywany jest zielony znaczek na prawo od linii nazwy kroku. Projekt Example_F2802xGpioSetup został zaimportowany z kopiowaniem projektu i pliku Example_2802xGpioSetup.c do foldera roboczego projektu.
Krok2: Budowanie projektu Example_F2802xGpioSetup
Krok2 umożliwia wykonanie budowania wybranego projektu. 4. W oknie TI Resource Explorer 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 pokazywany jest w oknie TI Resource Explorer zielony znaczek na prawo od linii nazwy kroku. Kliknięcie na odnośnik kroku 2 powoduje automatyczne budowanie projektu – podobnie jak po przyciśnięciu przycisku Build . Powinno to spowodować zapisanie wszystkich plików ze zmianami przed rozpoczęciem budowania projektu. 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_F2802xGpioSetup zostało zakończone poprawnie. Został utworzony wynikowy plik binarny Example_2802xGpioSetup.out (zobacz okno Console). Zostały jednak zgłoszone cztery ostrzeżenia (zobacz okno Problems). Na razie są one nieistotne.
96
ELEKTRONIKA PRAKTYCZNA 9/2013
Krok3: Definiowanie konfiguracji sprzętowego systemu docelowego
Krok3 umożliwia zdefiniowanie konfiguracji sprzętowej systemu docelowego dla projektu. Na początku pole Connection pokazuje typ „none”. 6. W oknie TI Resource Explorer kliknij na odnośnik kroku 3. W oknie dialogowym Debugger Configuration rozwiń listę wyboru. 7. Wybierz pozycję Texas Instruments XDS100v2 USB Emulator. Kliknij OK. W oknie TI Resource Explorer pole Connection pokazuje teraz typ Texas Instruments XDS100v2 USB Emulator. Zielony znaczek 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_F2802xGpioSetup
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 [12]. 8. W oknie TI Resource Explorer kliknij na odnośnik kroku 4. Kliknięcie na odnośnik kroku 4 powoduje automatyczne rozpoczęcie sesji debugowej – podobnie jak po przyciśnięciu przycisku Debug . Postęp działania środowiska CCSv5 można obserwować na pasku stanu w prawym dolnym rogu okna. Może to trwać dosyć długo i należy koniecznie poczekać przed rozpoczęciem dalszej pracy na zakończenie ładowania kodu i pokazania się okna perspektywy CCS Debug.
Wgląd w projekt Example_ F2802xGpioSetup
9. Zauważ, że praca programu została zatrzymana na pierwszej linii kodu funkcji main(). 10. Otwórz okno Disassembly z menu View Disassembly. W tym oknie można dokładnie zobaczyć jak naprawdę pracuje układ procesorowy Piccolo F28027. Najpierw trzeba poprawić program projektu Example_F2802xGpioSetup. Aplikacja czasu rzeczywistego nie może kończyć swojego wykonania. W praktyce oznacza to iż funkcja main() musi na końcu zawierać pętlę nieskończoną. Może ona być dodana po ostatnim „użytkowym” kodzie jak jest to zrobione np. w innym projekcie przykładowym Example_F2802xLEDBlink pakietu controlSUITE. 11. Przed końcem kodu funkcji main() dodaj pętlę for(;;){ asm(„ NOP”); } 12. Wykonaj samo budowanie projektu (bez ponownego startowania sesji debugowej). Przełącz się na perspektywę CCS Edit. Kliknij na przycisk Build . Nie używaj przycisku Debug .
Krok po kroku Kursy EP
tację pakietu. Aby dodać dostęp do przykładowych projektów należy na dole strony Home kliknąć na odnośnik Configure Resource Explorer. W oknie dialogowym Package Configuration trzeba kliknąć na Add. Następnie trzeba wskazać folder C:\ti\controlSUITE i kliknąć OK. Nazwa controlSUITE pojawi się w oknie wyboru. 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.
Krok po kroku Kursy EP
Tab. 1. Rejestry układu oscylatora, układu PLL, układu włączania sygnałów zegarowych modułów peryferyjnych, układu sterowania trybu niskiego poboru prądu (LPM) oraz modułu CPU Watchdog układów procesorowych serii Piccolo TMS320F2802x. [5] Nazwa XCLK PLLSTS CLKCTL PLLOCKPRD INTOSC1TRIM INTOSC2TRIM LOSPCP PCLKCR0 PCLKCR1 LPMCR0 PCLKCR3 PLLCR SCSR WDCNTR WDKEY WDCR BORCFG (1) Wszystkie rejestry
Adres 0x0000 7010 Rejestr 0x0000 7011 Rejestr 0x0000 7012 Rejestr 0x0000 7013 Rejestr 0x0000 7014 Rejestr 0x0000 7016 Rejestr 0x0000 701B Rejestr 0x0000 701C Rejestr 0x0000 701D Rejestr 0x0000 701E Rejestr 0x0000 7020 Rejestr 0x0000 7021 Rejestr 0x0000 7022 Rejestr 0x0000 7023 Rejestr 0x0000 7025 Rejestr 0x0000 7029 Rejestr 0x985 Rejestr mają ochronę EALLOW
Opis(1) sterujący XCLKOUT/XCLKIN stanu PLL sterujący zegara okresu stabilizacji sygnału PLL trymowania wewnętrznego oscylatora 1 trymowania wewnętrznego oscylatora 2 preskalera zegara LSPCLK sterujący 0 włączania zegarów modułów peryferyjnych. sterujący 1 włączania zegarów modułów peryferyjnych. sterujący modułu LPM sterujący 3 włączania zegarów modułów peryferyjnych. sterujący PLL sterujący i stanu systemu zegara modułu CPU Watchdog klucza modułu CPU Watchdog sterujący modułu CPU Watchdog konfiguracyjny modułu BOR
13. Na pytanie czy załadować plik wynikowy kodu przyciśnij przycisk Yes. Poczekaj na załadowanie programu. Przełącz się na perspektywę CCS Debug.
Pliki nagłówkowe projektu
Na początku pliku Example_2802xGpioSetup.c włączany jest plik nagłówkowy DSP28x_Project.h. #include “DSP28x_Project.h” // Device Headerfile and Examples Include Files Plik DSP28x_Project.h znajduje się w ścieżce C:\TI\ controlSUITE\device_support\f2802x\v210. W pliku DSP28x_Project.h znajduje się wywołanie następnych dwóch plików nagłówkowych #include “F2802x_Device.h” // DSP2802x Headerfile Include File #include “f2802x_common/include/F2802x_ Examples.h” // DSP2802x Examples Include File Główny plik definicyjny projektu F2802x_Device.h znajduje się w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210 W pliku jest wykonywany wybór typu układu procesorowego (DSP28027PT) oraz definiowane są symbole i typy stosowane w całym projekcie. Drugi plik nagłówkowy DSP2802x_Examples.h znajduje się w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210\ f2802x_common\include Plik zawiera na początku definicje symboli używanych do inicjacji rejestrów PLLCR i DIVSEL modułu PLL układu procesorowego serii Piccolo F2802x. Te ustawienia określają częstotliwość zegara systemowego układu procesorowego. Plik określa też parametr CPU_RATE = 16.667L będący wartością okresu zegara systemowego wyrażoną w ns dla częstotliwości SYSCLKOUT = 60 MHz. W pliku definiowany jest wskaźnik Device_cal na funkcję kalibracji oscylatorów wewnętrznych i modułu ADC. Na koniec definiowana jest funkcja opóźnienia DELAY_US(A) wyskalowana w mikrosekundach.
List.1 #include #include #include #include #include #include
Zmienna wskazująca strukturę opisu myCLK myPLL
myWdog
“f2802x_common/include/clk.h” “f2802x_common/include/flash.h” “f2802x_common/include/gpio.h” “f2802x_common/include/pie.h” “f2802x_common/include/pll.h” “f2802x_common/include/wdog.h”
Dalej w pliku Example_2802xGpioSetup.c włączane są pliki nagłówkowe obsługi modułów peryferyjnych z zastosowaniem modelu drajwerów programowych (bilioteka driverlib) użyte w projekcie (list.1). Pliki znajdują się w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210\f2802x_common\include. Każdemu plikowi nagłówkowemu odpowiada plik kodu *.c o tej samej nazwie.
Moduł CPU Watchdog
Układy procesorowe serii Piccolo F2802x posiadają moduł CPU Watchdog [5, 14]. Moduł CPU Watchdog posiada 8-bitowy licznik zliczający do góry z użyciem sygnału zegarowego OSCCLK. Gdy licznik osiągnie wartość maksymalną (wystąpi przepełnienie) moduł generuje wyjściowy impuls - poziom niski sygnałów /WDSRT oraz /XRS o długości 512 cykli zegara OSCCLK. Jeśli jest włączone zgłaszanie przerwania od modułu CPU Watchdog to zamiast tego generowany jest tylko sygnał /WDINT. Moduł CPU Watchdog może także wyprowadzać procesor z trybu obniżonego poboru mocy. Dodatkowo procesory serii Piccolo F2802x posiadają moduł NMI Watchdog. Należy zwrócić uwagę, że moduł NMI Watchdog jest innym modułem niż CPU Watchdog. Moduł CPU Watchdog jest bardzo istotny w aplikacjach czasu rzeczywistego. Ma on dosyć prostą budowę. Toteż metody jego obsługi udostępniane przez bibliotekę driverlib są dosyć łatwe do opisania. Deklaracje dla obsługi modułu CPU Watchdog znajdują się w pliku nagłówkowym wdog.h w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210\ f2802x_common\include Funkcje biblioteczne obsługi modułu CPU Watchdog znajdują się z pliku źródłowym wdog.c w ścieżce
ELEKTRONIKA PRAKTYCZNA 9/2013
97
98
ELEKTRONIKA PRAKTYCZNA 9/2013
Krok po kroku Kursy EP
List.2 C:\TI\controlSUITE\de//! \brief Defines the watchdog (WDOG) object typedef struct _WDOG_Obj_ vice_support\f2802x\v210\ { f2802x_common\source volatile uint16_t SCSR; //!< System Control & Status Register volatile uint16_t WDCNTR; //!< Watchdog Counter Register 14. W pliku Example_ volatile uint16_t rsvd_1; //!< Reserved F2802xGpioSetup.c odvolatile uint16_t WDKEY; //!< Watchdog Reset Key Register volatile uint16_t rsvd_2[3]; //!< Reserved szukaj linię (62) kodu volatile uint16_t WDCR; //!< Watchdog Control Register } WDOG_Obj; WDOG_Handle myWDog; Przyciśnij klawisz List.3 Ctrl, najedź kursorem WDOG_Handle WDOG_init(void *pMemory, const size_t numBytes) na nazwę typu WDOG_Handle i klik{ WDOG_Handle wdogHandle; nij na nią lewym klawiszem myszy. if(numBytes < sizeof(WDOG_Obj)) return((WDOG_Handle)NULL); Wskazanie na strukturę WDOG_Obj // assign the handle (jako nowy typ WDOG_Handle) jest zdewdogHandle = (WDOG_Handle)pMemory; return(wdogHandle); finiowane w pliku wdog.h } // end of WDOG_init() function typedef struct WDOG_Obj * WDOG_ Handle; Struktura WDOG_Obj opisu modułu CPU Watchdog 20. Kliknij na przycisk pracy krokowej Step Into na jest zdefiniowana w pliku wdog.h . Jest to zdefiniowanie pasku narzędziowym okna Debug. nowego typu (list.2). Struktura obejmuje wszystkie reWyświetlany jest komunikat. Problem jest spowodowajestry sterujące modułu CPU Watchdog układów proceny wygenerowaniem biblioteki driverlib w lokalizasorowych serii Piccolo F2802x (patrz tab.1). Pomiędzy cji innej niż standardowa ścieżka pakietu controlSUrejestrami modułu znajdują się obszary nieistotne deklaITE. Można doraźnie zaradzić problemom dostępu. rowane jako rsvd_x. 21. Kliknij na przycisk Locate File. Wskaż ścieżkę 15. W oknie edycyjnym wróć do pliku głównego ExamC:\ti\controlSUITE\device_support\f2802x\v210\ ple_F2802xGpioSetup.c. f2802x_common\source Dalej w na początku funkcji main() jest definiowaDefinicja funkcji WDOG_init jest zamieszczona na zmienna myWdog typu WDOG _Handle określająca w pliku wdog.c (list.3). główny wskazanie (handle) na strukturę opisu dla moPo wywołaniu funkcji WDOG_init można w oknie dułu CPU Watchdog Variables zobaczyć aktualne wartości argumentów tego WDOG_Handle myWDog; wywołania (rysunek 1). 16. Przyciśnij klawisz Ctrl i najedź kursorem na nazwę 22. Kliknij kilka razy na przycisk pracy krokowej Step funkcji WDOG_init. Gdy nazwa jest podkreślona Over aż wykonanie powróci do pliku głównego. kliknij na nią lewym klawiszem myszy. Zostanie Zmienna myWDog w rezultacie wywołania funkcji otworzony plik z deklaracją tej funkcji z krótkim WDOG_init przyjmuje wartość adresową 0x00007022 opisem praktycznie identycznym z opisem (rysunek 2, porównaj z tab. 1). w dokumentacji. Teraz można używać funkcji obsługi modułu CPU Funkcja WDOG_init realizuje inicjowanie zmiennej Watchdog z biblioteki driverlib. Każda funkcja obsługi myWDog. Deklaracja funkcji WDOG_init jest zamieszmodułu CPU Watchdog wymaga podania wskazania na czona w pliku wdog.h strukturę opisu modułu CPU Watchdog jako pierwszy Wywołanie funkcji WDOG_init jest zamieszczone argument wywołania. Następne argumenty zależą od reana początku programu w linii lizowanej funkcjonalności. myWDog = WDOG_init((void *)WDOG_BASE_ Linia (74) wywołania funkcji WDOG_disable w proADDR, sizeof(WDOG_Obj)); gramie głównym projektu wygląda następująco Wywołanie funkcji WDOG_init jest zrealizowane WDOG_disable(myWDog); z argumentami będącymi zdefiniowanymi dwoma wartościami. Adres w przestrzeni danych określający początek obszaru adresowego rejestrów sterujących i danych modułu CPU Watchdog jest zamieszczony w pliku wdog.h #define WDOG_BASE_ADDR (0x00007022) Druga wartość podaje liczbę bajtów struktury opisu modułu CPU Watchdog. Uwaga, dla procesorów serii Piccolo F2802x bajt ma rozmiar słowa, czyli 16 bitów. 17. W oknie edycyjnym wróć do pliku głów- Rysunek 1. Stan perspektywy CCS Debug po wywołaniu funkcji nego Example_F2802xGpioSetup.c. WDOG_init 18. Zauważ przypadkową zawartość zmiennych pokazywanych w oknie Variables. 19. Przejdź do linii 71 kodu w pliku głównym z wywołaniem funkcji WDOG_init. Kliknij kilka razy na przycisk pracy krokowej Step Over na pasku naRysunek 2. Ustawienie wartości adresowej zmiennej rzędziowym okna Debug. myWDog po wywołaniu funkcji WDOG_init
Krok po kroku Kursy EP
23. Zobacz deklarację funkcji WDOG_disable. Przyciśnij klawisz Ctrl i najedź kursorem na nazwę funkcji WDOG_disable. Gdy nazwa jest podkreślona kliknij na nią lewym klawiszem myszy. Deklaracja funkcji WDOG_disable jest zamieszczona w pliku wdog.h 24. Przejdź do linii (74) kodu w pliku głównym z wywołaniem funkcji WDOG_disable. Kliknij kilka razy na przycisk pracy krokowej Step Over na pasku narzędziowym okna Debug. 25. Kliknij na przycisk pracy krokowej Step Into na pasku narzędziowym okna Debug. Definicja funkcji WDOG_disable jest zamieszczona w pliku wdog.c (list.4). Wykonanie funkcji WDOG_disable powoduje wpisanie jedynki do bitu WDDIS(WDCR[6]) czyli zablokowanie działania modułu CPU Watchdog. Można to zobaczyć w oknie Registers po rozwinięciu zestawu rejestrów SYSCTRL. Opis rejestrów jest zamieszczony w tab.1. 26. Kliknij kilka razy na przycisk pracy krokowej Step Over aż wykonanie powróci do pliku głównego.
List.4 void WDOG_disable(WDOG_Handle wdogHandle) { WDOG_Obj *wdog = (WDOG_Obj *)wdogHandle; uint16_t regValue = wdog->WDCR; // set the bits regValue |= WDOG_WDCR_WDDIS_BITS; ENABLE_PROTECTED_REGISTER_WRITE_MODE; // store the result wdog->WDCR = regValue | WDOG_WDCR_WRITE_ENABLE; DISABLE_PROTECTED_REGISTER_WRITE_MODE; return; } // end of WDOG_disable() function
Inicjowanie układu generacji zegara systemowego
Układy procesorowe serii Piccolo F2802x posiadają dwa wewnętrzne oscylatory (INTOSC1 i INTOSC2), wewnętrzny oscylator dla zewnętrznego kwarcu oraz moduł PLL [5, 14]. Blok dostarcza sygnały zegarowe dla rdzenia układu procesorowego oraz sterowanie dla modułu LPM (obniżonej mocy), modułu CPU Watchdog, NMI Rysunek 3. Układ generowania sygnału zegarowego dla Watchdog i CPU Timer2 (rysunek 3). Oscylatory weukładów procesorowych serii Piccolo F2802x [11] wnętrzne INTOSC1 i INTOSC2 nie wymagają elementów zewnętrznych. Struktura CLK_Obj opisu układu generacji zegara Są cztery sposoby generowania sygnału zegarowesystemowego obejmuje wszystkie rejestry sterujące tego go OSCCLK dla układów procesorowych serii Piccolo modułu układów procesorowych serii Piccolo F2802x F2802x [14]: (patrz tab.1). 1. Oscylator wewnętrzny INTOSC1 (10 MHz): Pozwala Wskazanie na strukturę CLK_Obj (jako nowy typ) jest na dostarczenie zegara dla modułu CPU Watchdog, zdefiniowane w pliku clk.h rdzenia i licznika CPU TIMER2. typedef struct CLK_Obj *CLK_Handle; 2. Oscylator wewnętrzny INTOSC2 (10 MHz): Pozwala Następnie jest definiowana zmienna myCLK typu na dostarczenie zegara dla modułu CPU Watchdog, CLK_Handle określająca główny wskazanie (handle) na rdzenia i licznika CPU TIMER2. strukturę dla układu generacji zegara systemowego 3. Oscylator dla zewnętrznego rezonatora kwarcowego: CPU_Handle myCpu; Układ wewnętrznego oscylatora układów procesoFunkcja CLK_init realizuje inicjowanie zmiennej rowych serii Piccolo F2802x umożliwia generację myCLK. Deklaracja funkcji CLK_init jest zamieszczona sygnału zegarowego OSCCLK z zastosowaniem zew pliku clk.h. Każda funkcja obsługi układu generacji zewnętrznego rezonatora kwarcowego. Jest on dołączagara systemowego wymaga podania wskazania na strukny do wyprowadzenia X1 oraz X2 układu procesoturę opisu CLK_Obj jako pierwszy argument wywołania. rowego. Wyprowadzenia X1 i X2 są dostępne tylko Następne argumenty zależą od realizowanej funkcjonalw większej obudowie. ności. 4. Zewnętrzny sygnał zegarowy dołączony do wejścia Linia wywołania funkcji CLK_setOscSrc w programie XCLKIN. Wejście XCLKIN jest multipleksowane pogłównym projektu wygląda następująco między wyprowadzeniami GPIO19 lub GPIO38 ukła//Select the internal oscillator 1 as the clock source du procesorowego. CLK_setOscSrc(myClk, CLK_OscSrc_Internal); Deklaracje dla obsługi układu generacji zegara syDefinicja wartości wyliczanych dla drugiego argustemowego znajdują się w pliku nagłówkowym clk.h mentu jest zdefiniowana w pliku clk.h (list. 5). w ścieżce C:\TI\controlSUITE\device_support\f2802x\ Wykonanie funkcji CLK_setOscSrc z agrumentem v210\f2802x_common\include CLK_OscSrc_Internal powoduje wybranie oscylatora Funkcje biblioteczne obsługi List.5 układu generacji zegara systemowego //! \brief Enumeration to define the clock oscillator source typedef enum znajdują się z pliku źródłowym clk.c { w ścieżce C:\TI\controlSUITE\device_ CLK_OscSrc_Internal=(0 << 0), //!< Denotes an internal oscillator source CLK_OscSrc_External=(1 << 0) //!< Denotes an external oscillator source support\f2802x\v210\f2802x_common\ } CLK_OscSrc_e; source
ELEKTRONIKA PRAKTYCZNA 9/2013
99
List.6 //! \brief Sets the phase lock loop (PLL) divider and multiplier //! \param[in] pllHandle The phase lock loop (PLL) object handle //! \param[in] clkMult The clock multiplier value //! \param[in] divSelect The divide select value void PLL_setup(PLL_Handle pllHandle, const PLL_Multiplier_e clkMult, const PLL_DivideSelect_e divSelect);
100
ELEKTRONIKA PRAKTYCZNA 9/2013
Krok po kroku Kursy EP
wewnętrznego INTOSC1 (10MHz) jako źródło sygnału zegarowego OSCCLK. Układ generacji sygnałów zegarowych, po włączeniu zasilania układu procesoro- Rysunek 4. Generowanie systemowego sygnału zegarowego SYSCLKOUT oraz sygnału wego serii Piccolo XCLKOUT układów procesorowych serii Piccolo F2802x [5]. Zacienione pola wskazują F2802x lub wyko- ustawienia domyślne naniu sprzętowej operacji RESET, jest domyślnie konfigurowany następu30. Na pytanie czy załadować plik wynikowy kodu przyjąco (rysunek 4): ciśnij przycisk Yes. Poczekaj na załadowanie progra• Sygnał na wejście PLL jest podawany z generatora mu. Przełącz się na perspektywę CCS Debug. wewnętrznego INTOSC1 (10 MHz) 31. Dołącz sondę oscyloskopu do sygnału XCLKOUT (złą• Układ PLL jest wyłączony cze J1.7 zestawu ewaluacyjny C2000 Piccolo Launch• Dzielnik układu PLL jest ustawiony na dział przez 4 Pad). co oznacza, że systemowy sygnał zegarowy SYSCL32. Kliknij na przycisk Reset CPU na pasku narzędzioKOUT jest ustawiony na 2.5 MHz wym okna Debug. • Dzielnik podziału sygnału wyjściowego XCLKOUT 33. Przyciśnij przycisk RESET (S2) na płytce zestawu jest ustawiony na dział przez 4. C2000 Piccolo LaunchPad. • Sygnał wyjściowy XCLKOUT nie jest podawany na wyprowadzenie układu procesorowego Linia wywołania funkcji CLK_setOscSrc w programie nic nie zmienia, bo i tak domyślnie jest wybrany oscylator wewnętrzny INTOSC1. Linia wywołania funkcji PLL_setup w programie głównym projektu wygląda następująco // Setup the PLL for x12 /2 which will yield Rysunek 5. Stan perspektywy CCS Debug po wykonaniu 60Mhz = 10Mhz * 12 / 2 sprzętowej operacji RESET PLL_setup(myPll, PLL_Multiplier_12, PLL_DivideSelect_ClkIn_by_2); Funkcja PLL_setup realizuje inicjowanie modułu PLL. Deklaracja funkcji PLL_setup jest zamieszczona w pliku pll.h (list.6). Wykonanie funkcji PLL_setup powoduje ustawienie mnożnika modułu PLL na 12 i podzielnika na 2. W rezultacie sygnał zegarowy OSCCLK=10 MHz daje systemowy sygnał zegarowy SYSCLKOUT=60 MHz. Rysunek 6. Stan perspektywy CCS Debug po wykonaniu 27. Skonfiguruj wyprowadzenie GPIO18 jako operacji Restart poprzedzonej sprzętową operacją RESET sygnał wyjściowy XCLKOUT. Za linią kodu CLK_disableAdcClock(myClk); wstaw nową linię kodu GPIO_setMode(myGpio, GPIO_Number_18, GPIO_18_Mode_XCLKOUT); 28. Zmień wartość podzielnika dla sygnału wyjściowego XCLKOUT na podział przez jeden. Wstaw kolejną nową linię kodu CLK_setClkOutPreScaler(myClk, CLK_ClkOutPreScaler_SysClkOut_by_1); Rysunek 7. Sygnał XCLKOUT układu procesorowego 29. Wykonaj samo budowanie projektu (bez ponownego F28027 Piccolo po uruchomieniu programu startowanie sesji debugowej). Przełącz się na perpoprzedzonego sprzętową operacją RESET – praca spektywę CCS Edit. Kliknij na przycisk Build . Nie z ustawieniami domyślnymi rejestrów serujących modułu PLL oraz podzielnika sygnału XCLKOUT. używaj przycisku Debug .
Krok po kroku Kursy EP
34. Kliknij na przycisk Reset CPU na pasku narzędziowym okna Debug. W ten sposób została wykonana sprzętowa operacja RESET układu procesorowego F28027 Piccolo bez utraty programu wpisanego do pamięci RAM i bez wychodzenia ze środowiska CCSv5 (rysunek 5). 35. Wykonaj ponowne uruchomienie programu. Kliknij na przycisk Restart . Praca programu zostanie zatrzymana na pierwszej linii kodu funkcji main() (rysunek 6). 36. Wykonaj program do linii z wywołaniem funkcji CLK_setClkOutPreScaler. Zaznacz tą linię, kliknij na nią lewym klawiszem myszy. 37. Kliknij prawym klawiszem na zaznaczoną linię (poza tekstem kodu) i wybierz pozycję Run to Line. Program zostanie uruchomiony i zatrzymany na zaznaczonej linii kodu. 38. Zobacz na oscyloskopie przebieg sygnału XCLKOUT. Układ generacji zegara systemowego i moduł PLL pracuje z ustawieniami domyślnymi (x12, /4). Podzielnik sygnału wyjściowego XCLKOUT ma domyślne ustawienie podziału przez cztery (/4) Dlatego sygnał wyjściowy ma częstotliwość XCLKOUT=10MHz/4/4= 625kHz (rysunek 7). 39. Wykonaj zaznaczoną linię kodu. Kliknij na przycisk pracy krokowej Step Over na pasku narzędziowym okna Debug. Zobacz na oscyloskopie przebieg sygnału XCLKOUT (rysunek 8). Zmiana podzielnika sygnału wyjściowego na jeden daje sygnał XCLKOUT=10MHz/4= 2.5MHz 40. Wykonaj dwie następne linie kodu (razem z wywołaniem funkcji PLL_setup). Kliknij dwa razy na przycisk pracy krokowej Step Over na pasku narzędziowym okna Debug. 41. Zobacz w oknie Registers zmianę ustawienia rejestru sterującego PLLSTS modułu PLL (rysunek 9). 42. Zobacz na oscyloskopie przebieg sygnału XCLKOUT (rysunek 10). Wykonanie ustawienia modułu PLL na generowanie systemowego sygnału zegarowego SYSCLKOUT= 10MHz * 12/2 = 60MHz daje sygnał wyjściowy XCLKOUT=60MHz. 43. Wykonaj ponowne uruchomienie programu. Kliknij na przycisk pracy krokowej Restart na pasku narzędziowym okna Debug. Praca programu zostanie zatrzymana na pierwszej linii kodu funkcji main(). 44. Zobacz w oknie Registers brak zmiany zawartości rejestrów PLLSTS i CLKCTL modułu PLL. Nie ma też zmiany zawartości rejestru XCLK ustawienia podzielnika sygnału XCLKOUT. 45. Zobacz na oscyloskopie przebieg sygnału XCLKOUT. Sygnał wyjściowy XCLKOUT dalej ma 60MHz. Po wykonaniu ponownego uruchomienia programu przez debuger układ procesorowy F28027 Piccolo rozpoczął pracę z poprzednio ustawioną częstotliwością systemowego sygnału zegarowego. W tym przypadku jest SYSCLKOUT = 10MHz * 12/2 = 60MHz oraz sygnał wyjściowy XCLKOUT=60MHz. 46. Kliknij na przycisk Reset CPU na pasku narzędziowym okna Debug. 47. W ten sposób została wykonana debugowa operacja RESET układu procesorowego F28027 Piccolo bez utraty programu wpisanego do pamięci RAM. Zobacz w oknie Registers zmianę zawartości rejestru XCLK ustawienia podzielnika sygnału XCLKOUT
Rysunek 8. Sygnał XCLKOUT układu procesorowego F28027 Piccolo po uruchomieniu z ustawieniami domyślnymi rejestrów serujących modułu PLL oraz ze zmienionym podzielnikiem sygnału wyjściowego XCLKOUT na jeden
Rysunek 9. Stan perspektywy CCS Debug po skonfigurowaniu modułu PLL na pracę z maksymalną częstotliwością systemowego sygnału zegarowego. XCLKOUT = SYSCLKOUT (rys. 5). Została ustawiona wartość domyślna. Zobacz w oknie Registers brak zmiany zawartości rejestrów PLLSTS i CLKCTL modułu PLL. 48. Wykonaj ponowne uruchomienie programu. Kliknij na przycisk pracy krokowej Restart na pasku narzędziowym okna Debug. Praca programu zostanie zatrzymana na pierwszej linii kodu funkcji main().
Rysunek 10. Sygnał XCLKOUT układu procesorowego F28027 Piccolo po skonfigurowaniu modułu PLL na pracę z maksymalną częstotliwością systemowego sygnału zegarowego oraz z podzielnikiem sygnału wyjściowego XCLKOUT ustawionym na jeden.
Rysunek 11. Sygnał XCLKOUT układu procesorowego F28027 Piccolo po wykonaniu debugowej operacji RESET. Podzielnik sygnału wyjściowego XCLKOUT jest ustawiony na domyślny podział przez cztery.
ELEKTRONIKA PRAKTYCZNA 9/2013
101
Kalibracja oscylatorów wewnętrznych INTOSC1 i INTOSC2 oraz modułu ADC
Procedura Device_cal jest umieszczona w pamięci Boot ROM układów procesorowych serii F2802x [7, 14]. Procedura Device_cal() wykonuje kalibrację oscylatorów wewnętrznych INTOSC1 i INTOSC2 oraz modułu ADC. Wartości do kalibracji są pobierane z pamięci OTP. Kalibracja jest wykonywana automatycznie podczas normalnego wykonania procedury bootowania i nie jest potrzebna żadna akcja wykonywana przez użytkownika. Jeśli jednak zostanie pominięta inicjalizacja wykonywana z pamięci Boot ROM (np. w środowisku CCS) to kalibracja musi być wykonana przez program użytkownika. Błąd inicjalizacji układu procesorowego powoduje, że oscylatory i moduł ADC będą pracować z parametrami poza specyfikacją. Programowe wywołanie procedury Device_cal() w kodzie użytkownika jest wykonywane w kilku krokach: • Utwórz wskaźnik do funkcji Device_cal(). Jest to realizowane poprzez deklarację procedury.
Rys.12 Kod procedury Device_cal kalibracji oscylatorów wewnętrznych INTOSC1 i INTOSC2 oraz modułu ADC.
102
ELEKTRONIKA PRAKTYCZNA 9/2013
• Włącz zegar modułu ADC (w rejestrze PCLKR0) • Wywołaj funkcję wskazywaną przez Device_cal. • Wyłącz zegar modułu ADC (w rejestrze PCLKR0) Funkcje CLK_enableAdcClock(myClk) oraz CLK_ disableAdcClock(myClk) z biblioteki driverlib stosowane są do włączania i wyłączania sygnału zegarowego modułu peryferyjnego ADC. Wywołanie procedury Device_cal w programie głównym projektu wygląda następująco CLK_enableAdcClock(myClk); (*Device_cal)(); CLK_disableAdcClock(myClk); Deklaracja procedury Device_cal jest zamieszczona w pliku F2802x_Examples.h w ścieżce C:\TI\controlSUITE\device_support\f2802x\v210\ f2802x_common\include // The following pointer to a function call calibrates the ADC and internal oscillators #define Device_cal (void (*)(void))0x3D7C80 Procedura Device_cal jest zrealizowana w języku asemblerowym rodziny procesorów C2000 (rys.12).
Obsługa przerwań i modułu PIE
CPU procesorów rodziny TMS320C2000 obsługuje tylko 16 przerwań maskowalnych z przypisanymi priorytetami sprzętowymi INT1-INT14, DLOGINT oraz RTOSINT. Procesor posiada wiele modułów peryferyjnych dlatego CPU nie może bezpośrednio obsłużyć wszystkich tych przerwań. Do tego służy specjalny moduł - sterownik przerwań układów peryferyjnych PIE (Peripheral Interrupt Expansion). Procesory rodziny TMS320C2000 posiadają moduł PIE, który multipleksuje przerwania generowane przez wiele modułów peryferyjnych i dołącza je do niewielu przerwań rdzenia CPU procesora. Dokładny opis działania modułu PIE jest zamieszczony w [5, 14]. W dalszej części programu wykonywana jest podstawowa inicjalizacja układu przerwań i modułu PIE: • Wywołanie funkcji PIE_disable(myPie) powoduje wyłączenie modułu PIE – sterownika przerwań układów peryferyjnych. • Wywołanie funkcji PIE_disableAllInts(myPie); powoduje zablokowanie obsługi przerwań należących do wszystkich 12-tu grup przerwań peryferalnych. • Wywołanie funkcji CPU_disableGlobalInts(myCpu); pwoduje globalne wyłączenie obsługi przerwań procesora. • Wywołanie funkcji CPU_clearIntFlags(myCpu); powoduje wyzerowanie wszystkich pozycji znacznika przerwań CPU. • Wywołanie funkcji PIE_ setDebugIntVectorTable(myPie); powoduje wypełnienie wektorów przerwań w tablicy wektorów przerwań PIE adresami domyślnych procedur obsługi. • Wywołanie funkcji PIE_enable(myPie); powoduje włączenie modułu PIE. Aby użyć przerwań trzeba jeszcze włączyć globalną obsługę przerwań. Dalej znajduje się również fragment kodu dla konfiguracji budowania projektu z użyciem pamięci Flash. Ustawiana jest wartość zmiennej _FLASH i kod sekcji pamięci przepisywany jest z pamięci Flash do pamięci RAM. Uruchamianie przykładowych programów pakietu programowego controlSUITEv3 umożliwia pozna-
Krok po kroku Kursy EP
49. Ponownie wykonaj program do linii z wywołaniem funkcji CLK_setClkOutPreScaler. Zaznacz tą linię, kliknij na nią lewym klawiszem myszy. 50. Kliknij prawym klawiszem na zaznaczoną linię (poza tekstem kodu) i wybierz pozycję Run to Line. Program zostanie uruchomiony i zatrzymany na zaznaczonej linii kodu. 51. Zobacz na oscyloskopie przebieg sygnału XCLKOUT (rysunek 11). Sprawdź częstotliwość sygnału. Po wykonaniu debugowej operacji RESET układ procesorowy F28027 Piccolo rozpoczął pracę z poprzednio ustawioną częstotliwością systemowego sygnału zegarowego. W tym przypadku jest SYSCLKOUT = 10MHz * 12/2 = 60MHz oraz sygnał wyjściowy XCLKOUT=60MHz. Jednak zmienił się podzielnik sygnału XCLKOUT w rejestrze XCLK na podział przez cztery. Dlatego XCLKOUT = 60MHz/4=15MHz. Wartość domyślna jest wpisywana do rejestrów sterujących modułu PLL (PLLCR i PLLSTS) tylko podczas operacji RESET układu procesorowego spowodowanej przez zewnętrzny sygnał /XRS lub moduł CPU Watchdog. Operacja RESET układu procesorowego wymuszona przez emulator sprzętowy (przez port JTAG) lub moduł wykrywania zaniku sygnału zegarowego (NMI Watchdog) nie powoduje zmiany zawartości rejestrów sterujących modułu PLL. Ale ustawia wartość domyślną innych rejestrów sterujących, np. modułu GPIO oraz podzielnika dla sygnału XCLKOUT. Zawartość rejestru XCLK z polem bitowym podzielnika dla sygnału XCLKOUT oraz ustawienia portów GPIO nie jest zmieniania podczas ponownego uruchamiania programu (polecenie Restart).
Krok po kroku Kursy EP
nie sposobów programowania układów procesorowych Piccolo F2802x. Przedstawione postępowanie pokazuje typowy sposób działania projektu dla większości instalacji środowiska programowego. Jednak mogą występować różnice zachowania się środowiska dla instalacji na różnych komputerach.
Henryk A. Kowalski [email protected] Bibliografia [1] Code Composer Studio, strona produktu http://www. ti.com/ccs [2] controlSUITE Getting Started Guide (Rev. B), SPRUGU2B , 09 June 2011 [3] TMS320F28027, TMS320F28026, TMS320F28023, TMS320F28022, TMS320-F28021, TMS320F280200, Piccolo Microcontrollers, Data Sheet, SPRS523I, 31 Jul 2012 [4] TMS320F28027, TMS320F28026, TMS320F28023, TMS320F28022, TMS320-F28021, TMS320F280200, Piccolo MCU, Silicon Errata, SPRZ292J, 31 Jan 2012 [5] TMS320x2802x Piccolo System Control and Interrupts, SPRUFN3D, 13 Feb 20013 [6] TMS320x2802x, 2803x Piccolo Analog-to-Digital Converter (ADC) and Comparator, SPRUGE5F, 31 Dec 2011
[7] TMS320x2802x Piccolo Boot ROM Reference Guide (Rev. A), ), SPRUFN6A, 28 Oct 2009 kod źródłowy w ramach pakietu controlSUITE w ścieżce C:\TI\controlSUITE\libs\utilities\boot_rom\2802x [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] LAUNCHXL-F28027 C2000 Piccolo LaunchPad Experimenter Kit, User’s Guide, SPRUHH2, 25 Jul 2012 [11] C2000 Piccolo Workshop, Workshop Guide and Lab Manual, December 2010, Texas Instruments [12] Henryk A. Kowalski,”Zestaw ewaluacyjny C2000 Piccolo LaunchPad”, Elektronika Praktyczna 01/2013 [13] Henryk A. Kowalski„C2000 Piccolo LanuchPad (1) – Pierwszy program w środowisku programowym CCSv5”, Elektronika Praktyczna 02/2013 [14] Henryk A. Kowalski, Procesory DSP dla praktyków, BTC, Warszawa, 2011 http://ii.pw.edu.pl/kowalski/dsp/ book/ [15] Henryk A. Kowalski, Procesory DSP w przykładach, BTC, Warszawa, 2012 http://ii.pw.edu.pl/kowalski/dsp/ book/
ELEKTRONIKA PRAKTYCZNA 9/2013
103
Rozpoczęcie pracy
W artykule pokazujemy krok po kroku jak rozpocząć pracę z opartymi na rdzeniu ARM Cortex-M3 mikrokontrolerami z rodziny Precision32 firmy Silicon Labs. Utworzenie oprogramowania dla mikrokontrolera to jeden z głównych elementów procesu projektowania i budowania systemu wbudowanego. Nim jednak schematy blokowe, opis, notacja UML bądź inne formy określające funkcjonalność oprogramowania staną się kodem wynikowym wykonywanym przez mikrokontroler, programistę czeka wiele zadań, które musi wykonać. Należą do nich: • Wykonanie szablonu projektu w środowisku programistycznym. • Wykonanie kodu konfiguracyjnego włączającego zasoby mikrokontrolera i ustawiającego parametry ich pracy. • Wykorzystanie zasobów mikrokontrolera do zaimplementowania algorytmów i mechanizmów realizujących ustaloną funkcjonalność. W kolejnych rozdziałach niniejszego artykułu szczegółowo opisujemy jak przy wykorzystaniu dostępnych narzędzi zrealizować wymienione wyżej zadania na przykładzie wykonania od początku kompletnej aplikacji.
Oprogramowanie narzędziowe
W celu opisania wyżej wymienionych zagadnień użyta zostanie pewna grupa narzędzi sprzętowych i programistycznych. Pierwszym narzędziem sprzętowym jest programator/debuger USB Debug Adapter firmy Silicon Labs. Został on opisany w artykule „Narzędzia dla Precision32 (1)” w EP 12/2012. Drugim narzędziem sprzętowym jest płytka uruchomieniowa z mikrokontrolerem z rodziny Precision32. Jej projekt został przedstawiony w artykule „Płytka uruchomieniowa z mikrokontrolerem Precision32” w bieżącym numerze Elektroniki Praktycznej.
Pierwszym z narzędzi programistycznych jest program komputerowy Silicon Labs Precision32 AppBuilder. Za jego pomocą, przy wykorzystaniu graficznego interfejsu użytkownika, programista może wygenerować kod konfiguracyjny dla mikrokontrolera. Drugim narzędziem programistycznym jest środowisko Keil MDK-ARM służące do tworzenia oprogramowania. Oba narzędzia zostały opisane w artykule „Narzędzia dla Precision32 (2)” w EP 2/2013. Trzecim z narzędzi programistycznych jest oprogramowanie w postaci kodu źródłowego dla Precision32, które nosi nazwę Precision32 SDK (Software Development Kit). Przedstawiono je w artykule „Narzędzia dla Precision32 (3)” w EP 6/2013.
Instalacja narzędzi programistycznych
Program Precision32 AppBuilder i oprogramowanie Precision32 SDK są częścią pakietu Precision32 Development Suite. Dlatego, aby móc z nich korzystać, jest konieczne zainstalowanie całego pakietu. W pakiecie Precision32 Development Suite, oprócz Precision32 AppBuilder i Precision32 SDK znajdują się jeszcze następujące narzędzia: Precision32 IDE, Precision32 Utilities, SiLabs 32-bit SDK oraz USB to UART Bridge Driver (opcjonalny) (rysunek 1). Plik instalacyjny pakietu można pobrać ze strony internetowej firmy Silicon Labs o adresie http://goo. gl/fC4EGm. Kolejnym potrzebnym narzędziem programistycznym jest środowisko do tworzenia oprogramowania. Mogłoby nim być Precision32 IDE, które zostało zainstalowane jako jeden z elementów pakietu Precision32 Development Suite, jednak ze względu na fakt, iż większą funkcjonalność oferują IDE komercyjne wybrano pakiet ARM-MDK firmy Keil. Pakiet ten można pobrać ze strony internetowej firmy Keil o adresie http://goo.gl/H0xFJe.
Korzystanie z programu Precision32 AppBuilder
Rysunek 1. Elementy składowe pakietu Precision32 Development Suite
104
ELEKTRONIKA PRAKTYCZNA 9/2013
W pierwszej kolejności wykorzystany zostanie program AppBuilder. Dzięki niemu stworzony zostanie projekt konfiguracji mikrokontrolera. Na bazie tego projektu zostanie stworzony projekt programistyczny, który zawierał będzie pliki z kodem źródłowym realizującym wybraną konfigurację. Kod źródłowy wykorzystuje gotowe funkcje z bibliotek si32Hal będących częścią oprogramowania Precision32 SDK (Software Development Kit). Po włączeniu programu AppBuilder należy utworzyć nowy projekt. Można to zrobić na trzy sposoby (rysunek 2):
Krok po kroku Kursy EP
Mikrokontrolery Precision32 (1)
Krok po kroku Kursy EP
Rysunek 4. Zakładka „Peripherals” programu AppBuilder służąca do skonfigurowania i włączenia peryferiów mikrokontrolera
rzenia oprogramowania dla którego zostanie wygenerowany projekt programistyczny, rodzaju kompilatora oraz ścieżki na dysku, gdzie znajduje się oprogramowanie Precision32 SDK. W przypadku naszego projektu pola te zostały wypełnione w sposób, jaki pokazano na rysunku 3. Po zaakceptowaniu ustawień projekt zostanie stworzony, a następnie AppBuilder otworzy go do edycji. Do nawigacji po projekcie służy drzewo projektu, które znajduje się w lewym górnym oknie programu AppBuilder. Za jego pomocą należy przejść do zakładki Peripherals (rysunek 4). Składają się na nią trzy okna. W prawym, górnym oknie programu AppBuilder o nazwie Toolbox jest dostępna lista peryferiów mikrokontrolera. Dwukrotne kliknięcie na dowolny zasób spowoduje przeniesienie go do znajdującej się w środkowym oknie Default Mode Peripherals listy peryferiów, które zostaną włączone. Pojedyncze kliknięcie na wybrane peryferium z tej listy spowoduje wyświetlenie w prawym dolnym oknie Properties dostępnych dla niego parametrów pracy, które użytkownik może ustawić. Następnie za pomocą drzewa projektu należy przejść do zakładki Clock Control (rysunek 5). Główne okno tej zakładki (Default Mode Clock Control) przedstawia schemat dystrybucji sygnału zegarowego w mikrokontrolerze. Schemat ten składa się z bloków reprezentujących źródła sygnału zegarowego, dzielniki sygnału zegarowego i listę sygnałów zegarowych taktujących peryferia. Przy wykorzystaniu dostępnych na schemacie opcji oraz opcji dodatkowych, w prawym dolnym oknie Properties, użytkownik ma w jednym miejscu dostęp do wszystkich ustawień dotyczących sygnałów zegarowych mikrokontrolera. Po zakończeniu konfigurowania sygnałów zegarowych można przejść do konfigurowania wyprowadzeń mikrokontrolera. Do tego celu służą zakładki drzewa projektu o nazwie Crossbar0, Crossbar1 i PB4 (rysunek 6). Główne okno każdej z tych zakładek udostępnia listę wyprowadzeń mikrokontrolera oraz ich graficzne rozmieszczenie w obudowie układu. Użytkownik wybierając dane wyprowadzenie ma możliwość wybrania dla niego (w prawym dolnym oknie Properties) trybu pracy. Pozwala to na elastyczne przyporządkowanie według potrzeb wyprowadzeń do wyjść i wejść peryferiów. Warto zauważyć, że niezależnie od tego, która zakładka jest w danej chwili aktywna (Peripherals, Clock Control, Crossbar0, Crossbar1, PB4), to zawsze pozostają widoczne dwa okna programu. Pierwsze z nich, usytuowane z lewej strony, przedstawia listę plików, które zostaną wygenerowane wskutek działania programu
Rysunek 5. Zakładka „Clock Control” programu AppBuilder służąca do skonfigurowania sygnałów zegarowych mikrokontrolera
Rysunek 6. Zakładka „Crossbar0” programu AppBuilder służąca do skonfigurowania trybu pracy wyprowadzeń mikrokontrolera
Rysunek 2. Trzy sposoby na stworzenie nowego projektu w programie AppBuilder
Rysunek 3. Okno konfiguracyjne nowego projektu w programie AppBuilder • Wybierając z menu opcji File, a następnie New Project. • Poprzez naciśnięcie ikony nowego projektu, która jest umieszczona pod menu. • Poprzez naciśnięcie New Project w panelu Start Page. Wyświetlone zostanie nowe okno konfiguracyjne projektu, w którym należy uzupełnić pola dotyczące: grupy mikrokontrolerów, modelu w danej grupie, rewizji modelu, wersji używanego oprogramowania Precision32 SDK, nazwy projektu, miejsca zapisania projektu na dysku twardym komputera, nazwy środowiska do two-
ELEKTRONIKA PRAKTYCZNA 9/2013
105
Rysunek 8. Wygenerowany na bazie projektu programu AppBilder projekt programistyczny w środowisku Keil MDK-ARM AppBilder. Pliki te są aktualizowane na bieżąco podczas edycji projektu w programie AppBuilder, dzięki czemu użytkownik w każdej chwili może otworzyć wybrany plik i mieć wgląd w jego zawartość, która odzwierciedla aktualną konfigurację. Drugie okno o nazwie Error list jest umieszczone na samym dole AppBuilder. Zgodnie z nazwą to okno wyświetla informacje dotyczące błędów i ostrzeżeń dotyczących konfiguracji. Przykładowo, gdy
106
ELEKTRONIKA PRAKTYCZNA 9/2013
Szymon Panecki Wydział Elektroniki, Politechnika Wrocławska [email protected] Literatura [1] www.silabs.com AN670: Getting started with the Silicon Labs Precision32 AppBuilder [2] www.silabs.com AN719: Precision32 IDE and AppBuilder detailed tutorial and walkthrough
Krok po kroku Kursy EP
Rysunek 7. Okno „Export Source” programu AppBuilder służąca do wygenerowania plików z kodem źródłowym
użytkownik wybierze przetwornik A/C jako peryferium, które ma zostać włączone, program AppBuilder poprzez okno Error list zwróci uwagę na potrzebę włączenia sygnału zegarowego dla tego peryferium. Gdy praca nad projektem w programie AppBuilder zostanie zakończona (peryferia zostaną włączone i skonfigurowane, sygnały zegarowe odpowiednio ustawione oraz każde z używanych wyprowadzeń uzyska tryb i parametry pracy), można przystąpić do wygenerowania kodu źródłowego dla mikrokontrolera. Aby to uczynić, należy wybrać z menu opcji File, a następnie Export Source. Appbuilder otworzy okno Export Source (rysunek 7), w którym należy wybrać środowisko programistyczne, kompilator oraz ścieżkę docelową, pod którą zapisane zostaną pliki z kodem źródłowym. Po zaakceptowaniu (przycisk OK) pliki zostaną wygenerowane. Jeśli w oknie Export Source zaznaczono opcję Open After Export, projekt programistyczny zostanie automatycznie otworzony w środowisku programistycznym (rysunek 8). Teraz programista może przystąpić do zaimplementowania algorytmów i mechanizmów realizujących ustaloną funkcjonalność aplikacji. Najwygodniejszym sposobem na zrealizowanie tego zadania jest wykorzystanie służących do sterowania peryferiami funkcji z dołączonych do projektu bibliotek si32Hal (są to te same biblioteki, które zostały wykorzystane do stworzenia kodu konfiguracyjnego w programie AppBuilder). Gdy kod źródłowy zostanie już uzupełniony o powyższe fragmenty, należy go skompilować. Następnie można już przystąpić do wgrania kodu wynikowego do pamięci mikrokontrolera w celu jego wykonania lub debugowania.
Tytuł
9/2013
•
wrzesień
ELEKTRONIKA PRAKTYCZNA 1/2009
•
Nr 9 (92)
107
Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 AUTOMATYKA I MECHATRONIKA
Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 Tworzenie programów Środowisko projektowe Totally Integrated Automation Portal firmy Siemens, w skrócie nazywane TIA Portal, oferuje wszystkie funkcje potrzebne do wykonania zadań automatyzacji w jednej platformie, łączącej różne oprogramowanie. TIA Portal jest pierwszym współdzielonym środowiskiem pracy integrującym rozwiązania techniczne różnych systemów SIMATIC udostępnianych w jednolitej strukturze. Dlatego też TIA Portal po raz pierwszy umożliwia niezawodną i wygodną współpracę różnych systemów. Wszystkie wymagane pakiety oprogramowania, od konfiguracji sprzętowej, przez programowanie, aż do wizualizacji procesów są dostępne w jednym, zintegrowanym środowisku projektowym. ELEKTRONIKA PRAKTYCZNA 9/2013
Ładowanie biblioteki bloków kodu W tej części, zostanie omówione ładowanie biblioteki globalnej „ProgLib_ColorFillingStation”. Biblioteka ta zawiera bloki kodu i tabele zmiennych potrzebne dla przykładowego projektu. Biblioteka ta jest dostępna w spakowanym pliku w formacie ZIP na stronie internetowej pod pozycją „Getting Started S7-1500/TIA V12” (http://goo.gl/ Mpzq7V)”. Przed zaimportowaniem biblioteki do projektu, spakowany plik należy rozpakować. Biblioteki globalne są używane do przechowywania elementów, które mogą być ponownie użyte w innych projektach. Biblioteki globalne należy tworzyć jawnie. W standardowym pakiecie są dostarczone następujące biblioteki: • „Buttons and Switches”: biblioteka ta oferuje duży wybór przełączników i przycisków. Foldery dzielą przełączniki i przyciski na kategorie. Można przykładowo znaleźć obiekt „System diagnostics indicator” (Wskaźnik diagnostyczny systemu) w folderze „DiagnosticsButtons” (Przyciski diagnostyczne). Obiektu „System diagnostics indicator” używa się do diagnostyki systemu lub układu w instalacji.
109
AUTOMATYKA I MECHATRONIKA Uwaga! Biblioteka jest chroniona przed zapisem! Opcja „Open as read-only” w oknie dialogowym „Open global library” jest domyślnie włączona. Aby otworzyć bibliotekę bez ochrony przed zapisem, pole wyboru tej opcji należy odznaczyć. • „Monitoring and Control objects”: biblioteka ta udostępnia obiekty do sterowania i monitorowania pracy maszyn, jak również odpowiednie wskaźniki sygnalizacyjne, przyciski i przełączniki.
Tworzenie programu Pierwsze kroki wyglądają następująco: 1. Klikamy zakładkę „Libraries”. 2. Klikamy przycisk „Open global library”. 3. Wybieramy plik „ProgLib_ColorFilling Station” z katalogu, który zawiera folder rozpakowanego pliku biblioteki i klikamy przycisk „Open”.
3. Klikamy „Yes”, aby potwierdzić usunięcie bloku. W wyniku tych czynności zostanie automatycznie wygenerowany blok programu „Main [OB1]”.
Kopiowanie bloków programu
Wykonanie tych kroków powoduje, że biblioteka globalna „ProgLib_ColorFillingStation” jest otwarta (jak na obrazku poniżej).
W tej części omówimy wstawienie do projektu bloków programu z biblioteki globalnej „ProgLib_ColorFillingStation”. Kolejno należy wykonać czynności: 1. Kliknąć pozycję biblioteki globalnej „ProgLib_ColorFillingStation”. 2. Kliknąć folder „Master copies”, a następnie „Programm_blocks”. 3. Przeciągnąć blok programu, który ma być importowany, z biblioteki globalnej do folderu „Programm_blocks”. 4. W przypadku innych bloków postępować jak opisano w punktach 2 i 3. W wyniku tych czynności bloki programu zostały umieszczone w folderze projektu o tej samej nazwie.
Usuwanie bloku programu Main [OB1] Bloki organizacyjne (OB) tworzą interfejs pomiędzy systemem operacyjnym CPU a programem użytkownika. Bloki te są wywoływane przez system operacyjny. W projekcie automatyzacji musi być dostępny przynajmniej jeden OB cykliczny. Przebieg czynności wygląda następująco: 1. W drzewie projektu otwieramy folder „Program blocks”, a następnie klikamy blok programu „Main [OB1]”. 2. Klikamy prawym przyciskiem myszy aby otworzyć menu kontekstowe, a następnie klikamy pozycję „Delete”.
110
Kopiowanie tabel zmiennych W tej części omówimy wstawienie do projektu tabeli zmiennych z biblioteki globalnej „ProgLib_ColorFillingStation”. Kolejność czynności powinna być następująca: ELEKTRONIKA PRAKTYCZNA 9/2013
Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 1. W drzewie projektu otwieramy folder „PLC tags”. 2. Otwieramy folder „PLC_tags”. 3. Przeciągamy tabele zmiennych, które mają być importowane, z biblioteki globalnej do folderu „PLC tags”. 4. W przypadku innych tabeli zmiennych postępować jak opisano w punkcie 3. W wyniku tych czynności tabele zmiennych zostały umieszczone w folderze projektu o tej samej nazwie.
2. Z list rozwijanych wybieramy typ interfejsu PG/PC, interfejs i połączenie z podsiecią. 3. Z kompatybilnych urządzeń w podsieci wybieramy CPU i klikamy przycisk „Load”.
Kompilacja projektu W tej części omówimy kompilację projektu „Color_Filling_Station”. Kolejność czynności powinna być następująca: 1. W drzewie projektu wybieramy CPU „Color_Mixing_CPU”. 2. Klikamy prawym przyciskiem myszy aby otworzyć menu kontekstowe, a następnie wybrać „Compile” > „Hardware and software (only changes)”.
W wyniku tych czynności projekt został skompilowany i jest gotowy do załadowania. Po kompilacji otworzyć blok programu „Main”. Wszystkie bloki danych instancji zostały utworzone, a bloki danych zaktualizowane.
Załadowanie projektu do CPU W tej części omówimy załadowanie (wgranie) projektu „Color_Filling_Station” do CPU. Jeśli po dokonaniu ustawień w oknie dialogowym „Extended download to device” pożądany CPU nie został wyświetlony, to należy kliknąć opcję „Show all compatible devices”. Kolejność czynności powinna być następująca: 1. Otwieramy menu kontekstowe CPU i wybrać „Download to device” > „Hardware and software (only changes)”. ELEKTRONIKA PRAKTYCZNA 9/2013
W wyniku tych czynności projekt został załadowany (wczytany) do CPU.
Tomasz Starak
111
Artykuł powstał na podstawie dokumentacji firmy Siemens.
4. Potwierdzamy w dwóch oknach dialogowych „Assign IP address”, klikając odpowiednio przyciski „Yes” i „OK”. 5. W oknie dialogowym „Load preview” wybieramy alternatywny wpis dla wszystkich wpisów ustawionych na „No action” w liście rozwijanej i potwierdzamy niewybrane opcje. 6. Klikamy przycisk „Load”. 7. Potwierdzamy opcję „Start all” i klikamy przycisk „Finish”.
MT-W-17S-11-9240
AUTOMATYKA I MECHATRONIKA
• idealnie dokładna i szybka nastawa czasów (z dokładnością do 0,1 s)
• dwucyfrowy wyświetlacz LCD • programowanie tylko dwoma przyciskami • możliwość nastawienia trzech czasów T1, T2, T3
• uniwersalne napięcie zasilania: 12...240 V AC/DC • maksymalna moc łączeniowa AC1: 16 A / 250 V AC
Przekaźniki NEED w sieci ModBus
M
Dzia³ Sprzeda¿y tel. 68 47 90 822, 850; [email protected]; www.relpol.c
Przekaźnik NEED jest opracowanym w firmie Relpol S.A. przekaźnikiem programowalnym, który może zastąpić skomplikowane połączenia przekaźnikowe lub stycznikowe. Urządzenie to jest swobodnie programowalne, co oznacza, że w dowolnym czasie można korygować, zmieniać istniejący program w pamięci sterownika bez zmiany układów peryferyjnych całego sterowania, co w przypadku tradycyjnego sterowania przekaźnikowego, praktycznie było niemożliwe. Duże możliwości i doskonałe parametry w połączeniu z funkcjonalnością przekaźnika programowalnego pozwalają zaoszczędzić czas projektowania, a przede wszystkim obniżają koszt wdrażanych aplikacji.
Dodatkowe informacje:
Relpol S.A. ul. 11 Listopada 37, 68-200 Żary tel. 68 47 90 822, 850 www.relpol.com.pl, [email protected]
112
Aplikacje wdrożone z wykorzystaniem sterowania w oparciu o przekaźniki NEED, działające bezawaryjnie od kilku lat, potwierdzają doskonałą jakość i solidność ich wykonania. NEED znalazł zastosowanie w przemysłowych układach sterownia maszynami oraz w rozdziale energii (układy SZR), sterowaniu elektrowni wiatrowych i w automatyce domowej. Jak każdy podobny produkt, także NEED ma swoje ograniczenia sprzętowe i programowe, ale jego możliwości są wystarczające dla mniej lub bardziej skomplikowanych układów sterowania. To co wyróżnia te przekaźniki od innych to przede wszystkim: • Duża obciążalność przekaźników wyjściowych (10 A przy 250 V AC). • Specjalna karta pamięci do programowania przekaźnika bez komputera. • Specjalne wejścia cyfrowo-analogowe do pomiaru napięcia trójfazowego 400V (wersja AC). • Rozpoznawanie prawidłowego kierunku wirowania i asymetrii faz L1, L2, L3 (wersja AC). • Dwa języki programowania LAD i STL w dedykowanym oprogramowaniu PC NEED. • Duża szerokość „drabinki” przy programowaniu LAD (do 13 elementów w jednej gałęzi). • Możliwość zapisywania i odczytu struktury programu wraz z nazwami symbolicznymi
Zapraszamy na Targi Energetab Bielsko-Biała 17-19 września hala A, stoisko 14
Połączenie przekaźnika NEED w sieci MODBUS W dzisiejszych czasach nawet małe i proste układy sterowania nie mogą obyć się bez sieci przemysłowych. Jedną z najprostszych, a jednocześnie bardzo często wykorzystywanych jest sieć MODBUS. Do połączenia sieciowego przekaźników NEED służy specjalny konwerter NEED-MODBUS.
Tabela 1. Dane techniczne konwertera NEED-MODBUS Napięcie zasilania Maksymalna moc Wilgotność względna Temperatura pracy Napięcie izolacji Stopień ochrony konwertera Stopień ochrony zacisków Wymiary z konektorami Montaż
10…30 V AC lub DC 2 VA 20%...95% -10°C…+60°C 3 kV DC IP-43 wg DIN 40050/EC 529 IP-20 wg DIN 40050/EC 529 52×92,2×58 mm szyna DIN 35 mm
ELEKTRONIKA PRAKTYCZNA 9/2013
Przekaźniki NEED w sieci ModBus Tabela 2. Zasoby przekaźnika NEED udostępnione w sieci ModBus Adres rejestru 1
Maksymalna Funkcja ilość rejestrów
Opis
3,4
2
Status
2
3,4
12
Wersja oprogramowania
3
3,4
5
Zegar RTC
4
3,4
6
Wejścia analogowe
5
3,4
2
Wejścia binarne
6
3,4
2
Wyjścia binarne
7
3,4
5
Markery
8…39
3,4
14
Timery
40…48
3,4
8
Liczniki
49
3,4
2
Zegary
50…62
3,4
8
Komparatory
63
3,4
2
Kierunek faz
64
3,4
2
Aktualna wartość szybkiego licznika Odczyt
65…96
3,4
10
Odczyt ustawień timerów
97
3,4
10
Odczyt ustawień liczników
98…113
3,4
18
Odczyt ustawień komparatorów
114
3,4
4
Odczyt ustawień szybkiego licznika Zmiana trybu pracy
1
16
2
Zmiana statusu pracy Zapis ustawień
2
16
5
Zapis ustawień zegara RTC
3
16
4…18
Zapis ustawień timerów
4
16
3…10
Zapis ustawień liczników
5
16
3…10
Zapis ustawień komparatorów
6
16
4
Zapis ustawień szybkiego licznika
Przekaźnik NEED 8 wejść/4 wyjścia, wersja z wyświetlaczem ELEKTRONIKA PRAKTYCZNA 9/2013
Konwerter ma własne oprogramowanie konfiguracyjne oraz mikroprzełączniki do ustawiania adresu urządzenia oraz prędkości transmisji, takie możliwości pozwalają użytkownikowi na zmianę nastaw konwertera bez użycia komputera lub bardziej komfortową pracę z dedykowanym oprogramowaniem i śledzenia przepływu informacji czy ewentualnych błędów. Cztery diody LED znajdujące się w konwerterze informują Użytkownika o stanie połączeń od strony NEEDa i od strony sieci z rozróżnieniem odczytu, zapisu lub przesłanej błędnej ramki ModBus. Odczyt danych następuje „w locie” po otrzymaniu zapytania od strony ModBus RTU, a dany rejestr modułu wysyła przypisane mu polecenie do przekaźnika NEED i po otrzymaniu od niego odpowiedzi wysyła te dane po stronie ModBus. Takie rozwiązanie zapewnia dostęp do aktualnych danych. Wybór wysyłanych poleceń dokonywany jest przy pomocy adresu rejestru ModBus, od którego rozpoczyna się obsługa danej funkcji ModBus. Konwerter łączymy z przekaźnikiem NEED za pomocą kabla RS232 z wtyczką DB9 np. NEED-PC-15B, a od strony sieci ModBus przez zaciski. Od strony urządzeń sieciowych mamy do dyspozycji dwa rodzaje standardów: RS232 lub RS485. Zasilanie konwertera realizowane jest napięciem stałym lub zmiennym o potencjale 10…30 V. Konwerter NEED-MODBUS jest przeznaczony do odczytu danych z przekaźników programowalnych NEED i udostępniania ich wartości przy użyciu protokołu ModBus RTU. Dodatkowo, użytkownik ma możliwość wysyłania komend sterujących do przekaźnika oraz może modyfikować ustawienia zegara RTC. Konwerter od strony COM1 (NEED) pracuje jako NEED Master, natomiast od strony COM2 (sieć) jako urządzenie typu ModBus RTU Slave. Parametry techniczne konwertera umieszczono w tabeli 1. Za pomocą protokołu ModBus, przekaźnik NEED może wymieniać dane z innymi uczestnikami tej sieci np. sterownikami PLC, panelami operatorskimi, przemiennikami częstotliwości i sterownikami pól w rozdzielniach średniego napięcia CZIP-PRO produkcji RELPOL Polon. W tabeli 2 wymieniono zasoby przekaźnika udostępnione w sieci ModBus. Konwerter NEED-MODBUS otwiera nowe możliwości zastosowania przekaźników programowalnych NEED i zwiększa ich zastosowanie w aplikacjach automatyki przemysłowej lub domowej. Zastosowanie coraz tańszych paneli dotykowych w połączeniu z przekaźnikami NEED realizuje większą ich funkcjonalność i znacznie zwiększa komfort pracy Użytkownika a połączenie z innymi urządzeniami pozwala na szeroką skalę stosowania.
Waldemar Bukalski
113
T E M AT N U M E R U DYSKI TWARDE DO AUTOMATYKI
AUTOMATYKA I MECHATRONIKA
Kompendium przemysłowych dysków Flash
Dodatkowe informacje: CSI Computer Systems for Industry ul. Balicka 12a/b3, 30-149 Kraków tel. 12 637 13 55, fl[email protected], www.csi.pl
Każdy komputer przemysłowy jest bezużyteczny bez systemu operacyjnego. System ten zaś musimy zainstalować na dysku. Wybór odpowiedniego dysku jest wbrew pozorom szalenie istotny, gdyż przed pojawieniem się dysków SSD wykorzystujących pamięć Flash był to najsłabszy i potencjalnie najbardziej narażony na uszkodzenia element komputera. Nowoczesne nośniki SSD Flash Industrial Grade zbudowane na pamięciach typu SLC (Single Level Cell) powodują, że najsłabszych ogniw w komputerze należy szukać już poza dyskiem. Dyski SSD SLC umożliwiają pracę w temperaturach od -40°C do +85°C (jest to nieprzekraczalna bariera dla większości HDD), mają kilkadziesiąt razy większą odporność na wibracje i udary, co umożliwia ich zastosowanie w aplikacjach mobilnych, także MTBF jest kilka razy większy. Niezawodność i pewność pracy 24/7 dysków SSD SLC jest bardzo wysoka, żywotność kilkadziesiąt razy wyższa od tanich komercyjnych rozwiązań SSD na pamięciach MLC (Multi Level Cell)/TLC (Triple Level Cell). również pobór energii jest dużo niższy niż w przypadkach dysków wirujących, co ma istotne znaczenie w aplikacjach zasilanych bateryjnie. Bardzo krótkie czasy dostępu do danych w połączeniu z wysokimi transferami dla dużych i małych plików, wielokrotnie przekraczającymi najlepsze osiągi dysków wirujących HDD powodują, że zastosowanie nośnika SSD Flash w przemyśle jest oczywiste. Pozostaje więc tylko dobór odpowiedniego formatu mechanicznego dysku do wybranej uprzednio płyty komputerowej spośród poniżej przedstawionych dostępnych w sprzedaży dysków.
SSD 2,5” Dyski w formacie 2,5’’ to obok karty CompactFlash (CF) najpopularniejsze nośniki w komputerach przemysłowych, w których nie ma slotu na CF – np. w coraz popularniejszych mini-ITX oraz w klasycznych ATX. Jest to dość popularny nośnik systemo-
114
Zalety
Wady
Zalety
Wady
Najszerszy zakres dostępnych pojemności (do 240GB w SLC, do 512GB w MLC/TLC) Wysokie transfery, sięgające obecnie do 500MB/s Różne interfejsy komunikacyjne (PATA, SATA, SAS) Możliwość montażu w wielu dostępnych na rynku wymiennych kieszeniach Bezproblemowy w konfiguracji i coraz popularniejszy w przemyśle interfejs SATA
Duże wymiary (w stosunku do innych nośników systemowych) Połączenie kablowe narażone na uszkodzenie w przypadku wysokich drgań
Małe wymiary Nośnik łatwo wymienny Bardzo mały pobór mocy poniżej 1 W (interfejs PATA) Nośnik najbardziej odporny na trudne warunki pracy (zapylenie, wibracje i udary) Pojemności już od 32 MB Solidne złącze z prowadnicą po całej długości nośnika Łatwe do masowego klonowania systemu operacyjnego w przypadku większych ilości poprzez tani czytnik na USB
Nie każdy nowy komputer ma interfejs CF i PATA Ograniczona technologicznie pojemność do 32 GB (SLC)
ne są standardowo w złącze CF. W zależności od modelu transfery osiągają już do ok. 50 MB/s, co jest wystarczające dla pracy każdego systemu operacyjnego. Wymiary to: 42,8×36,4×3,3 mm (wymiary dla Typ I; Typ II nie jest już produkowany)
mSATA
wy, lecz gdy mamy do dyspozycji slot CF to format 2,5” jest bardziej odpowiedni dla gromadzonych przez urządzenie danych razem z CF pełniącym rolę nośnika systemu operacyjnego (względy bezpieczeństwa, ewentualnego szybkiego serwisowania itp.). Wymiary wynoszą: 100×70×7 (9,5) mm
Dysk w postaci karty miniPCIe standardu JEDEC MO-300A (standardowy) i MO-300B (mSATA mini) pojawił się w 2011 roku wraz z nową serią procesorów Intel Atom. Nowy chipset umożliwia obsługę sygnałów SATA w gnieździe miniPCIe. Jest to bardzo zwarte rozwiązanie, mocowane horyzontalnie do płyty głównej za pomocą dwóch wkrętów (wystaje tylko około 1 cm ponad powierzchnią płyty głównej). Wymiary to: 51×30×3,65 mm – MO-300A oraz
CompactFlash Najbardziej zwarty nośnik, bardzo popularny w przemyśle od ponad 20 lat. Prawie wszystkie komputery embedded i jednopłytkowe (m.in. PC/104, 3,5’’, 5,25’’) wyposażoELEKTRONIKA PRAKTYCZNA 9/2013
Kompendium przemysłowych dysków Flash Zalety
Wady
Zalety
Wady
Kompaktowe rozwiązanie, 2 rozmiary do wyboru Wysokie transfery do 500MB/s (dla SATA III) Pojemności do 64 GB (SLC) i 256 GB (MLC/TLC) Duże perspektywy dla rozwoju tego standardu dysku w nowych komputerach embedded
Obecnie tylko do nowych modeli komputerów (obsługa mSATA przez chipset) Trudno spotykane zewnętrzne czytniki USB- mSATA
Małe wymiary Nośnik łatwo wymienny Wysokie transfery (ponad 100MB/s) Interfejs SATA
Słabe wsparcie przez producentów komputerów dla tego standardu Złącze SATA w standardzie CFast – potrzebna przejściówka mechaniczna na standardowe SATA, na razie trudno dostępne czytniki/adaptery
27×30×3,65 mm dla MO-300B (mSATA mini)
Slim SATA Slim SATA, czyli JEDEC MO-297A, to mały dysk SSD. Podobnie jak mSATA jest to dysk typu embedded (tylko około 1,5 razy większy od CompactFlash). Ma on standardowe złącze SATA jak w dyskach 2,5”/3,5” oraz 4 otwory montażowe, przez co dysk ten
Zalety
Wady
Szeroki zakres pojemności od 2 GB do 64 GB (SLC) i do 256 GB (MLC/TLC). Małe wymiary, montaż przy pomocy 4 wkrętów Standardowe złącze SATA Duże transfery jak w SSD 2,5” Popularne w rozwiązaniach terminalowych
Trudniejsze w montażu niż 2,5” ze względu na potrzebę przygotowania otworów montażowych w obudowie + kołki dystansowe (2,5” mają gotowe zatoki w obudowach)
może być zamontowany solidnie do kompaktowej obudowy, gdzie nie ma miejsca na wersję 2,5”, a mamy do dyspozycji tylko złącze SATA. Wykorzystywany jest także jako tani nośnik o małej pojemności stosowanej w komputerach typu Thin Client w terminalach komputerowych, dedykowany do przechowywania systemu operacyjnego. Wymiary to: 54×39×3,33 mm (dla złącza 4 mm)
CFast Jest to kolejny nowy standard w komputerach przemysłowych. CFast to w skrócie karta CompactFlash z interfejsem SATA. Jej wymiary są takie same jak w przypadku CF, podobnie też i zalety. Jednakże mała ilość dostępELEKTRONIKA PRAKTYCZNA 9/2013
nych na rynku urządzeń ze złączem CFast (słabe wsparcie producentów komputerów dla tego standardu) skutecznie ogranicza jej popularność. Jednakże rozwój wsparcia w kierunku interfejsu SATA w nowych chipsetach daje nadzieję na wzrost popularności wymiennego nośnika na SATA. Wymiary wynoszą: 42,8×36,4×3,6 mm
SD/microSD Karty w standardzie SD i microSD są coraz popularniejszym rozwiązaniem w systemach bazujących na mikrokontrolerach, gdzie interfejs komunikacyjny pełni SPI lub SD IO (1- lub 4-bitowy). Minimalizacja linii przesyłowych i miniaturowe wymiary świetnie sprawdzają się w przypadku aplikacji opartych o system Android i Windows CE / Mobile ze względu na niskie wymagania odnośnie pamięci dyskowej. Wykorzystywane są także w sterownikach jako nośniki magazynujące dane i wszelkiego rodzaju tabletach, jako dyskietka i w wielu komputerach zbudowanych wokół procesorów typu ARM. Prze-
Zalety
Wady
Bardzo małe wymiary, najmniejsze nośniki ze wszystkich Pojemności od 128 MB do 16 GB (SLC) Proste w programowaniu interfejsy komunikacyjne do wyboru (SD IO i SPI) Standardowo (w SD) przełącznik Lock (Write Protect)
Nośnik tylko na systemy mobilne (Android, Windows CE) Złącze nie jest przemysłowe
mysłowe karty SD są wykonane inaczej niż komercyjne – zabudowywane są w szczelnej kapsule chroniącej komponenty elektroniczne przed działaniem czynników zewnętrznych (IP67). Wymiary to: 32×24×2,1 mm (SD/SDHC) oraz 15×11×1 mm (microSD)
Mniej popularne, stopniowo wycofywane z użytku rodzaje PCMCIA ATA (PC Card) Karty PCMCIA ATA były popularnymi nośnikami w urządzeniach projektowanych
pod koniec lat 90. ubiegłego wieku. Niestety ze względu na coraz mniejszą ilość urządzeń wyposażonych w sloty kart PCMCIA i przechodzenie na CF, SD lub USB nośnik ten stopniowo przestaje być używany. Karta PCMCIA ATA to standardowy nośnik typu ATA zabudowany w postaci karty PCMCIA. Interfejs ATA jest taki sam jak w dyskach 2,5”, 3,5” czy kartach CF, natomiast pojemności wynoszą od 32 MB do 16 GB.
3,5” Dyski SSD w formacie 3,5” praktycznie nie są produkowane ze względu na wystarczające rozmiary standardu 2,5” i łatwość adaptacji 2,5” w zatoce 3,5” przy takim samym złączu interfejsu SATA. Wraz z końcem produkcji dysków HDD 3,5” zakończyła się pewna epoka w starszych komputerach przemysłowych i wystąpiły trudności w przypadku serwisowania starych dysków. W komputerach z zatokami 3,5” stosuje się pasywne adaptery CF->IDE o odpowiednich wymiarach i ze standardowym złączem IDE (40 pinów + zasilanie 4 piny, czyli tzw. Molex) oraz odpowiedni przemysłowy CompactFlash. Jest to ten sam interfejs pod względem elektrycznym i takie same tryby pracy (lub możliwość wyboru w zależności od zastosowanego CF).
DOM – Disk On Module Popularny niegdyś DOM jest obecnie stopniowo wycofywany z ofert kolejnych producentów ze względu na rosnącą popularność SATA kosztem PATA oraz łatwość programowania nośników CF. Wiele komputerów przemysłowych także uległo miniaturyzacji i często zamiast niezależnego złącza PATA jest tylko podstawka pod CF plus złącza SATA, co dyskwalifikuje wersje DOM w standardzie PATA. Interfejs PATA jest uzależniony od rozmiarów złącza PATA na płycie głównej (40 pin + osobne zasilanie FDD jak w HDD 3,5” lub 44 piny jak w HDD 2,5”). Jednakże DOM-y ze złączem SATA nie są w ogóle standaryzowane – każdy producent ma dyski podobne, ale nie jednolite wymiarowo. Z jednej strony ułatwia to w ogóle dobór dysku do projektów mocno niestandardowych (np. ograniczenie rozmiarami obudowy), ale z drugiej utrudnia zastosowanie w komputerach narażonych na drgania i wibracje ze względu na niewielkie i mało stabilne mechanicznie dodatkowe złącze zasilania (łatwo się wypina). Istnieją też wersje DOM z SATA, gdzie wolnymi pinami interfejsu SATA poprowadzone jest zasilanie, jednakże ogranicza to ich zastosowanie dodatkowo do komputera budowanego od podstaw według własnego projektu. Pojemności wynoszą od 128 MB do 16 GB.
Marcin Malinowski Product Manager Dział dysków SSD i kart pamięci Flash Artykuł ukazał się w magazynie APA
115
T E M AT N U M E R U DYSKI TWARDE DO AUTOMATYKI
AUTOMATYKA I MECHATRONIKA
SSD czy HDD?
Wytrzymałe pamięci dla przemysłu Dyski twarde (Hard Disk Drives, HDD) i pamięci SDD (Solid State Drive) zwykle stosuje się jako pamięci masowe w komputerach i innych urządzeniach cyfrowych, rejestratorach wideo, odtwarzaczach przenośnych i w systemach nawigacji. Coraz częściej jednak znajdują one zastosowanie również w aplikacjach przemysłowych. Technologie te otwierają nowe możliwości dla zarządzania usługami i produkcją. Pozostaje tylko pytanie – HDD czy SSD? W dysku twardym dane są zapisywane na wirującym „talerzu”. Ich odczyt odbywa się za pomocą ruchomej głowicy. Wydajność dysku twardego zależy więc przede wszystkim od elementów mechanicznych. Dla zachowania właściwego pozycjonowania głowicy i odpowiedniej prędkości obrotowej talerzy potrzebne są ciągłe korekcje. Im szybsza ma być reakcja elementu mechanicznego, tym większa musi być siła lub energia dostarczona do wytworzenia jego ruchu. SSD to elektroniczny nośnik pamięci, który nie zawiera elementów mechanicznych. Nie występuje tu zatem znany z HDD czas szukania i opóźnienia związane z prędkością obrotową talerzy. Największymi zaletami technologii SSD jest prędkość pracy – wyższa przepustowość nominalna oraz większa liczba operacji wejścia/wyjścia na sekundę (Input/ Output per Second, IOPS). Ze względu na brak ruchomych elementów dyski SSD są ciche. Może to być korzystne w zastosowaniach, w których
116
ważną rolę odgrywa niski poziom hałasu generowanego przez urządzenie. Minusem jest jednak fakt, że każda operacja kasowania i zapisu skraca żywotność komórek pamięci dysku SSD. W przemyśle jest to często ważny argumentem przeciwko zastosowaniu dysku SSD. Praca w środowisku przemysłowym obejmuje często zapis dużej ilości danych transakcyjnych, wymuszających dużą liczbę fizycznych operacji zapisu. Dyski HDD przewyższają SSD również pod względem pojemności, choć pojemność SSD będzie rosnąć w miarę dalszego rozwoju tej technologii. Dyski HDD górują nad dyskami SSD również pod względem niższych kosztów na GB — jest to więc nadal bardziej popularna technologia. W urządzeniach narażonych na wysokie przeciążenia i wibracje, o niewielkich wymiarach i małym ciężarze i/lub wymagających dużych przepływności, dyski SSD są niezastąpione, Dlatego obie te technologie w najbliższych latach będą koegzystowały. ELEKTRONIKA PRAKTYCZNA 9/2013
Committed to excellence
CATALOGUE
Wytrzymałe pamięci dla przemysłu PROCUREMENT
Aplikacje w przemyśle stawiają wysokie wymagania zarówno dyskom SSD, jak i HDD. Te surowe wymogi mogą spełnić tylko niektóre produkty.
MASSQUOTATION PRODUCT CHANGE NOTIFICATION
HDD Przemysłowe HDD są przeznaczone do zastosowania w dziedzinach wymagających dużej wydajności w różnych, czasem skrajnych warunkach. Warunki te mogą różnić się od siebie w zależności od otoczenia, w którym pracuje system. Można jednak wyróżnić pewne charakterystyczne i decydujące o przydatności dysku cechy w danym zastosowaniu. Dane zapisane na dysku muszą być udostępnione niezawodnie i bez przerw w pracy, pomimo że mają one zużywające się elementy mechaniczne. Do takich wymagań należy również (na przykład) praca przez 24 godziny na dobę, 7 dni w tygodniu. Dyski HDD, w przeciwieństwie do ludzi, nie mają przerw w pracy. Muszą działać stale i niezawodnie. Dlatego Toshiba skonstruowała dyski HDD z funkcją 24×7. Poprzez zastosowanie specjalnej, wzmocnionej konstrukcji, dyski te pozwalają na ciągłą pracę przez 24 godziny. Oczywiście, zaimplementowano w nich specjalne algorytmy energooszczędne, które przy małym obciążaniu systemu pozwalają na całkowite wyłączenie dysku lub jego spowolnienie, oszczędzając energię i mechanikę dysku. Dyski HDD z serii High Durability produkcji Toshiby są przeznaczone do systemów przemysłowych, w których jest wymagana duża liczby operacji zapisu i odczytu. Dyski te mają przewidzianą o wiele większą liczbę cykli od dysków standardowych. Ponadto, są one wyposażone w specjalną technologię antywibracyjną. Dzięki temu uzyskują najlepszą w branży tolerancję na wibracje, zapewniającą przy tym niezwykłą bezawaryjność i wydajność w macierzach dyskowych. Do głównych cech przemysłowego dysku twardego należy możliwość pracy w ekstremalnych warunkach otoczenia. Dysk Toshiba MK1060GSCX o pojemności 100 GB może pracować w trybie ciągłym 24×7 (Low Duty Cycle) w zakresie temperatury od -15 do +70°C (mierzonej na powierzchni obudowy) na wysokości od -300 m do 5.650 m. W wielu systemach przemysłowych występują silne wibracje. Są one często dużo większe od dopuszczalnych wibracji dla sprzętu powszechnego użytku albo dysk jest używany w systemach mobilnych. Dlatego też, aby umożliwić działanie dysków HDD w takich systemach, powstały modele o podwyższonej odporności na wibracje, spełniające wymagane warunki niezawodności. W wersjach przemysłowych HDD znajdują się również modele o zmniejszonym zużyciu energii oraz o zmniejszonej emisji hałasu, co może decydować o zastosowaniu HDD w aplikacji.
e-commerce made easy Rutronik 24 is the modular Internet platform for the procurement of electronic components. The business processes are thereby simplified substantially. The advantages of faster Online orders combine with customized advice to meet your needs. We thereby do not replace our service, quite the opposite: we complement it.
Jeśli ze względu na wymagania dotyczące prędkości lub wymiarów wybór padnie na dysk SSD, dostępne są również modele zaprojektowane specjalnie dla sektora przemysłowego. Toshiba wprowadziła na rynek serię THNSNFxxxGzzS – pierwszy na świecie dysk SSD w technologii NAND 19 nm. Dyski z tej serii łączą w sobie pojemność wynoszącą do 512 GB z prędkością odczytu do 524 Mb/s i zapisu do 461 Mb/s. Aby ekstremalny wzrost prędkości transmisji danych nie odbywał się kosztem integralności danych, dyski THNSNF są wyposażone w funkcję QSBC (Quadruple Swing-By Code). Stworzona przez firmę Toshiba niezwykle wydajna metoda ECC (Error Correction Code) chroni dane przed błędami odczytu. Seria THNSNF ma również funkcję „Data Corrupt Protection” – dodatkową ochronę, która zabezpiecza dane przy wewnętrznych transferach na wypadek nieoczekiwanej przerwy w zasilaniu lub w przypadku błędnego zapisu danych W wypadku awarii funkcji zapisu zintegrowano w napędzie tryb „read only mode” umożliwiający dostęp do zapisanych danych. Obie technologie znajdują zastosowanie do aplikacji, w których kluczowe znaczenie mają wysoka niezawodność, funkcjonalność i jakość przechowywanych danych przy znakomitej wydajności w warunkach przemysłowych.
REKLAMA
SSD
Waldemar Batke Senior Marketing Manager Storage Rutronik Elektronische Bauelemente GmbH ELEKTRONIKA PRAKTYCZNA 9/2013
www.rutronik24.com
117
T E M AT N U M E R U DYSKI TWARDE DO AUTOMATYKI
AUTOMATYKA I MECHATRONIKA
Nośniki pamięci w urządzeniach automatyki przemysłowej W automatyce przemysłowej wysoka jakość i niezawodność podzespołów odpowiedzialnych za ciągłość pracy kluczowego urządzenia jest bardzo ważna. Awaryjność nawet małego i pozornie mało znaczącego elementu może skutecznie zatrzymać produkcję na wiele godzin a nawet i dni. A jak wiadomo każdy przestój generuje niepotrzebny i często bardzo wysoki koszt. Poniżej przedstawię najważniejsze problemy, które występują w nośnikach elektronicznych i czym różnią się rozwiązania dedykowane do automatyki przemysłowej w stosunku do rozwiązań przeznaczonych do elektroniki użytkowej. Nośniki danych są takimi jednymi z mniejszych podzespołów, które są wykonane wedug popularnych i zunifikowanych standardów mechanicznych i mają dość często swoje tańsze odpowiedniki w postaci produktów komercyjnych. Tak jest np. z kartami pamięci: SD i CF mają w komercyjnym masowym kanale sprzedaży swoje odpowiedniki pełniące rolę nośników danych w aparatach cyfrowych czy kamerach, karty microSD w telefonach komórkowych/smartfonach/ odtwarzaczach mp3 i innych. Dyski SSD zaś mają swoje tańsze klony w notebookach, ultrabookach czy komputerach stacjonarnych. Jednakże w erze nieustannej optymalizacji kosztów produkcyjnych w produktach masowych kluczowym czynnikiem jest cena i okresowość wymiany na nowsze rozwiązanie, bez znaczenia czy dotychczasowe nam jeszcze działa czy nie, ma ono iść w odstawkę i zostać zastąpione nowszym, bo tego wymagają ogólnie przyjęte „trendy”. Żywotność tego typu sprzętu jest więc z góry obliczana na etapie projektowania – „optymalizowania” – pod tą właśnie okresowość wymiany, zazwyczaj niedługo po standardowym 2-letnim okresie gwarancyjnym. Nośniki pamięci są tego idealnym przykładem. Cena za 1 GB w ciągu ostatnich lat bardzo spadła i obecnie można za kilkanaście złotych kupić już kartę pamięci SD/ microSD 4 GB. Niestety, niska cenę uzyskuje się kosztem jakości. Kilka lat temu dane były zdecydowanie luźniej upakowane w poszczególnych warstwach komórek pamięci, technologia np. 56 nm dawała bardzo dużą pewność wytwarzania kości pamięci NAND Flash cechujących się dużą żywotnością
118
(ilością cykli programowania) oraz długim czasem przechowywania raz zapisanych danych (Data Retention). Pamięci w technologii właśnie ponad 50 nm cechowały odpowiednio: dla pamięci komercyjnych MLC – 10 tys. cykli programowania na komórkę, dla pamięci przemysłowych SLC – 100 tys. cykli. Parametr Data Retention dla obu wynosił 10 lat. To wszystko dawało wysoką pewność korzystania z któregokolwiek typu kości NAND Flash w mniej wrażliwym systemie i jego optymalizację cenową. W ciągu ostatnich 3…4 lat sytuacja ta uległa bardzo dynamicznej zmia-
nie. Warstwa wytwarzania komórek pamięci w skutek coraz większych oczekiwań rynku (coraz niższa cena za 1 GB) zaczęła się robić coraz cieńsza. Ponad to producenci zaczęli upakowywać więcej bitów danych w jednej komórce pamięci – technologia MLC to 2 bity na komórkę zapisane jednocześnie (2^2) technologia TLC, czyli inaczej MLC X3 to już 3 bity danych na komórkę (2^3). W stosunku do SLC (2^1) jest to naprawdę duża różnica, jeśli weźmiemy pod uwagę, że jednocześnie warstwa wytwarzania nieustannie się zmniejsza zaczyna robić się po prostu niepewnie. W tabeli 1 pokazano ewolucję w liczbie cykli programowania (zapis/kasowanie) pamięci Flash na przykładzie poszczególnych typów kości NAND Flash. Z dotychczasowych 10 tysięcy cykli kasowania na komórkę zrobiło się ich już tylko kilkaset i tyle też mają obecnie produkowane USB pendrive oraz najtańsze nośniki kart pamięci. Nowe SSD proponowane przez producentów liderujących w komercyjnym kanale dystrybucji, jakie wchodzą do produkcji w połowie 2013 są budowane także na kościach TLC, co oznacza, że niebawem typo-
Rysunek 1. Zasada działania mechanizmu Power Protector ELEKTRONIKA PRAKTYCZNA 9/2013
Nośniki pamięci w urządzeniach automatyki przemysłowej Tabela 1. Ewolucja liczby cykli programowania (zapis/kasowanie) pamięci Flash na przykładzie pamięci NAND Flash Typ NAND Flash
5Xnm
3Xnm
SLC
100,000
100,000
MLC TLC
10,000 2,500
5,000 1,250
2Xnm 30,000/ 60,000 3,000 500~750
wy dysk SSD w komputerze stacjonarnym w sam raz dożyje razem z takim komputerem momentu wymiany go na nowszy bardziej zaawansowany lub też po prostu na urządzenie o innej architekturze wraz ze zmieniającymi się preferencjami użytkownika (np. tablet bądź terminal do pracy w chmurze). Technologia wytwarzania ma także mocny wpływ na to jak wygląda odporność nośnika na wpływ warunków środowiskowych, dotychczas mających niewielki wpływ na poprawność pracy nośnika. Im cieńsza warstwa tym większa wrażliwość na zmieniające się temperatury. W przypadku pamięci TLC istnieje bardzo duże ryzyko, że dane zapisane i odczytywane w dwóch różniących się od siebie o kilkadziesiąt stopni temperaturach będą trudne do odczytania i nastąpi ich degradacja. Warto też dodać, że pamięci MLC (X2) stopniowo odchodzą do lamusa na rzecz tańszych TLC, na które jest bardzo duże zapotrzebowanie u masowego odbiorcy. To wszystko mocno zniekształca przegląd nośników przeznaczonych do przemysłu właśnie ze względu na skojarzenia z produktami komercyjnymi. Im dłużej użytkownik skupia się wyłącznie na porównywaniu pojemności obu nośników a nie zrozumieniu ich kluczowych cech i sposobu działania tym trudniej zapewnić mu odpowiedni poziom niezawodności w swojej maszynie. Technologia produkcji pamięci Flash to jeden z ważniejszych problemów, ale z punktu widzenia automatyki przemysłowej dochodzą jeszcze kolejne interesujące unikalne cechy, które są potrzebne, aby ten (wybrany już wysokiej jakości) nośnik pracował poprawnie w zmieniających się bądź nie zawsze stabilnych warunkach otoczenia. Jednym z nich jest wysoka odporność na niestabilność napięcia zasilania i jego stały poziom w czasie. W przypadku spadków zasilania, jakie następują np. w momencie włączania skokowego odbiorników dużej mocy bądź niestabilnego zasilacza, spadków w sieci lokalnego zasilania itp. nośniki powinny cechować się zabezpieczeniami, które będą chroniły zapisywane dane przed uszkodzeniem np. aktualnie zapisywanego słowa logicznego (często kończącego jakiś istotny fragment danych) albo też chroniły MBR przed uszkodzeniem. Taką technologią jest chyba najbardziej popularna obecnie PoELEKTRONIKA PRAKTYCZNA 9/2013
wer Protector, którą implementuje w swoich rozwiązaniach firma ATP. Jest to inteligentny system zarządzania zasilaniem, jakie nośnik zapewnia swojej elektronice na wejściu, aby na wypadek spadku zasilania zareagować odpowiednio szybko uwalniając energię zmagazynowaną w podręcznych kondensatorach i podtrzymać tym samym pracę nośnika przez krótki okres czasu, tak aby kontroler mógł zakończyć zapis słowa logicznego i zablokować samoczynnie dalszy zapis do czasu powrotu zasilania wejściowego do poprawnej wartości. Na rysunku 1 pokazano na niebiesko poziom napięcia dysku oraz na pomarańczowo poziom napięcia na wejściu układu Power Protector. Napięcie to za Power Protectorem jest dopasowywane do właściwego poziomu dla samego już dysku. Przykładowo: dysk realnie wewnątrz pracuje przy 3,3 V, zasilanie na wejściu nośnika jest 5 V i na wejściu Power Protector jest także 5 V, jeśli zasilanie na wejściu spada np. do 4 V i dalej (poniżej wartości tolerancji ±10%), to Power Protector zadziała. Z pozoru mało ważne i – porównując do kosztu całego systemu – relatywnie tanie elementy elektroniczne mogą często okazać się najdroższymi elementami w urządzeniu gdyż ich awaria
i związany z nią przestój wygeneruje straty niewspółmierne do ich wartości. Warto więc postawić na rozwiązania technologicznie uzasadnione gdyż niewielki nakład finansowy na wysokiej jakości nośniki danych na pamięciach NAND Flash SLC na początku inwestycji ochroni nas przed nieprzewidzianymi i przede wszystkim niepotrzebnymi wydatkami.
Marcin Malinowski Product Manager – Pamięci Flash CSI Computer Systems for Industry
REKLAMA
119
INFO
Nowe centrum projektowe online firmy RS Components dla projektów open-source Open Source Design Centre jako centrum informacji dla inżynierów tworzących projekty przy użyciu podzespołów typu open-source
RS Components, marka handlowa firmy Electrocomponents plc (LSE:ECM), dystrybutora produktów z zakresu elektroniki, automatyki i utrzymania ruchu, utworzyła centrum projektowe Open Source Design Centre, kompleksową bezpłatną platformę do tworzenia układów open-source, dostępną na stronie designspark.com, przeznaczonej dla projektantów elektroniki. Open Source Design Centre to rzetelne źródło informacji na temat projektowania open-source w jednym, łatwym w obsłudze portalu. Oferuje wiarygodne informacje na temat zagadnień takich, jak wytyczne dotyczące licencji open-source czy porady na temat zarządzania sprzętem i oprogramowaniem. Celem centrum jest edukowanie inżynierów w dziedzinie projektowania open-source, zachęcanie ich do tworzenia tego typu projektów i udzielanie im niezbędnej pomocy w tym zakresie. Firma RS Components stworzyła Open Source Design Centre we współpracy z Andrew Backiem, wiodącym ekspertem w dziedzinie podzespołów open-source i jednym z założycieli Open Source Hardware User Group (OSHUG), czołowej grupy sprzętowej open-source w Wielkiej Brytanii, utworzonej w 2010 roku. „Podzespoły open-source do niedawna stanowiły najniższą półkę w branży projektowania układów elektronicznych, ale wraz
z rosnącymi możliwościami związanymi z przemysłem, edukacją i eksperymentowaniem zainteresowanie nimi nieustannie rośnie” — mówi Andrew Back. „Dzięki współpracy z firmą RS uzyskujemy dostęp do ogromnej globalnej bazy inżynierów na stronie designspark.com, z których wielu będzie kluczowymi graczami w przekształcaniu podzespołów open-source w popularne komponenty elektroniczne.” „Rosnąca popularność projektów open-source stała się szczególnie widoczna w ciągu ostatnich 12 miesięcy, wraz z wprowadzeniem na rynek nowych wersji ekonomicznych płytek uruchomieniowych, takich jak Arduino czy BeagleBone. Również Raspberry Pi stworzył ogromny popyt na tego typu platformy na całym świecie” — mówi David Tarrant, Head of Community Development w RS Components. „Firma RS to zaufane źródło informacji na temat nowych projektów i technologii dla inżynierów. Nasze nowe centrum projektowe Open Source Design Centre gromadzi kluczowe
informacje, które będą wspierać użytkowników na wszystkich etapach cyklu badań, rozwoju i projektowania”. RS Components i Allied Electronics to marki handlowe grupy Electrocomponents plc, dystrybutora podzespołów i komponentów elektronicznych oraz produktów dla działów utrzymania ruchu. Za pośrednictwem przedstawicielstw w 32 krajach grupa oferuje ponad 550 000 produktów, zaopatrując ponad milion klientów poprzez sprzedaż internetową i katalogową. RS realizuje dziennie około 44 000 zamówień. Firma oferuje produkty z zakresu elektroniki, automatyki i sterowania, techniki pomiarowej, elektryki i mechaniki od 2500 wiodących producentów. Grupa Electrocomponents jest notowana na Londyńskiej Giełdzie Papierów Wartościowych i w zeszłym roku finansowym do 31 marca 2013 osiągnęła dochody w wysokości 1,24 mld funtów. Więcej informacji: www.rspoland.com.
Firma Conrad Electronic przejmuje SOS electronic s.r.o. Firma Conrad wzmocniła swoją pozycję na rynku usług B2B poprzez przejęcie SOS electronic, dystrybutora komponentów elektronicznych prowadzącego działalność w 4 krajach europejskich, z naciskiem na kraje Europy Środkowo-Wschodniej. Przejęcie stanowi istotną i integralną część strategii dostaw B2B firmy Conrad, która przewiduje m.in. znaczne poszerzenie gamy produktów świadczenie usług pod kątem MRO oraz CEM. SOS electronic jest dystrybutorem oferującym klientom szeroki asortyment 200 000 półprzewodników, podzespołów pasywnych i elektromechanicznych, sprzętu lutowni-
120
czego oraz urządzeń pomiarowych. Komentując nową inwestycję, Holger Ruban, Dyrektor ds. Dostaw B2B w firmie Conrad powiedział: „Grupa Conrad z pewnością skorzysta z 22-letniego doświadczenia rynkowego SOS electronic oraz wiedzy każdego z naszych nowych współpracowników. Przewidujemy współdziałanie zwłaszcza w dziale marketingu, sprzedaży i zakupów. Przejęcie to zwiększa nasze możliwości w zakresie wejścia w nowe segmenty rynku, takie jak np. CEM. Powiększenie naszej firmy pozwoli nam na przyspieszenie tempa realizacji naszej nowej strategii Dostaw B2B dotyczącej rozszerzenia oferty produktowej.”
SOS electronic pozostanie firmą niezależną. W związku z tym nazwa oraz cel jej funkcjonowania pozostaną niezmienione. Nie planuje się również zwolnień pracowniczych związanych z podjętymi decyzjami. Istniejące relacje z klientami firmy SOS electronic nie ulegną zmianie. Celem Conrad Electronic jest dbanie o ich kontynuację i rozwój. Niemiecka firma rodzinna Conrad od 1923 roku zajmuje się produktami z dziedziny elektroniki, a także świadczeniem profesjonalnych usług w zakresie ich dystrybucji. Grupa Conrad zatrudnia ponad 3900 pracowników i posiada oddziały lokalne ELEKTRONIKA PRAKTYCZNA 9/2013
INFO oraz partnerów dystrybucyjnych w 17 krajach Europy. Produkty firmy Conrad docierają do klientów w 150 krajach na całym świecie. Stale rosnący asortyment sklepu uwzględnia aktualną i kompleksową ofertę wiodących producentów, a także marek własnych. Wybór produktów obejmuje komponenty elektroniczne, szeroką gamę narzędzi oraz najnowsze urządzenia elektroniczne, komputery i produkty z zakresu technologii komunikacji. Conrad Electronic to silny oraz stale rozwijający się partner, zarówno dla przedsiębiorstw, jak i klientów indywidualnych. Produkty i kompleksowe usługi znajdujące się w ofercie firmy Conrad dostępne są w lokalnych oraz internetowych punktach sprzedaży. Zamówienia są realizowane drogą elektroniczną oraz przez własną lokalną sieć sprzedawców. Jakości usług firmy Conrad zaufało wiele wiodących firm należących do różnorodnych branż rynkowych. Więcej informacji: www.conrad.pl
Ericsson i STMicroelectronics kończą transakcję rozdzielenia ST-Ericsson Ericsson i STMicroelectronics ogłosiły dziś zamykanie transakcji rozdzielenia ST-Ericsson. To następstwo ogłoszonej 18 marca 2013 roku strategicznej decyzji o zakończeniu działalności joint-venture. Ericsson przejmuje działy związane z projektowaniem, rozwojem i sprzedażą wielomodowych modemów LTE, współpracujące z technologią 2G, 3G, i 4G. Ponad 1800 pracowników dołączyło do firmy Ericsson. Natomiast STMicroelectronics przejmuje wszystkie pozostałe produkty ST-Ericsson, poza wspomnianymi modemami LTE oraz systemem GNSS (Global Navigation Satellite System), który został sprzedany firmie zewnętrznej. ST przejmuje również infrastrukturę służącą do montażu i testowania. 1000 pracowników dołączyło do STMicroelectronics. Obie firmy zgodziły się podzielić po równo kosztami wygaszania aktywności ST-Ericsson. „Witamy zespół około 1800 ekspertów, którzy dołączyli do Ericssona. Wciąż widzimy ogromną wartość w wielomodowych modemach LTE, ponieważ są one niezwykle istotne do realizacji naszej wizji 50 mld urządzeń połączonych z siecią. Ten rynek ma duży potencjał i Ericsson skupi się obecnie na dostarczaniu jak najlepszych modemów na rynek oraz będziemy blisko pracować z klientami, by zintegrować modemy z ich produktami.” – powiedział Douglas Gilstrap, Senior Vice President and Chief Strategist w firmie Ericsson W czwartym kwartale 2012 roku, Ericsson zastrzegł w budżecie 3,3 mld SEK, które były potrzebne na sfinansowanie rozdzielenia i zamknięcia aktywności ST-Ericsson. Ericsson to największy na świecie dostawca technologii i usług dla operatorów telekomunikacyjnych, oferuje społeczeństwu sieciowemu efektywne rozwiązania działające w czasie rzeczywistym, które pozwalają nam wszystkim swobodniej studiować, pracować i żyć w zróżnicowanych społecznościach na całym świecie. Oferta firmy obejmuje usługi, oprogramowanie i infrastrukturę teleinformatyczną dla operatorów telekomunikacyjnych i firm z innych branż. Obecnie ponad 40 procent światowego ruchu mobilnego przechodzi przez sieci firmy Ericsson. Obsługujemy sieci klientów, z których korzystają ponad 2 miliardy abonentów. Firma działa w 180 krajach i zatrudnia ponad 100000 pracowników. Założona w 1876 r., ma centralę w Sztokholmie. Firma Ericsson jest notowana na giełdzie NASDAQ OMX w Sztokholmie i NASDAQ w Nowym Jorku. Więcej informacji: • www.twitter.com/ericsson_poland • www.youtube.com/ericssonpolska • www.facebook.com/ericssonpolska
próbkujący sygnał w czasie rzeczywistym. Oscyloskop tego typu znajdzie zastosowanie przy opracowywaniu szerokopasmowych sieci do transmisji danych umożliwiając bezpośrednie obserwowanie i analizę sygnałów. „Zbudowanie oscyloskopu o paśmie 100 GHz, który próbkuje sygnał w czasie rzeczywistym jest jednym z wielu kamieni milowych osiągniętych przez firmę Teledyne LeCroy,” – powiedział Tom Reslewic, dyrektor generalny działu firmy Teledyne zajmującego się urządzeniami do pomiaru wielkości środowiskowych oraz elektronicznym sprzętem pomiarowym – „taki przyrząd pomiarowy umożliwia obserwowanie nowych zjawisk, otwiera kanały dla nowych odkryć i toruje drogę do ogromnej poprawy w dziedzinie pomiaru sygnałów o wielkiej częstotliwości.” Demonstrację przeprowadzano w oddziale firmy, w Teledyne Scientific Company w miejscowości Thousand Oaks. Teledyne LeCroy i Teledyne Scientific ogłosiły również zakończenie prac nad REKLAMA
Firma Teledyne LeCroy zademonstrowała pierwszy na świecie oscylopskop o paśmie 100 GHz! Teledyne LeCroy, firma zależna od Teledyne Technologies Incorporated, zademonstrowała pierwszy na świecie 100 GHz oscyloskop ELEKTRONIKA PRAKTYCZNA 9/2013
121
INFO układem scalonym wykonanym na bazie fosforku indu (InP) oraz ogłosiły przygotowania do jego produkcji seryjnej w Teledyne Scientific’s InP. Opracowany w kooperacji układ scalony jest pierwszym, niedrogim układem scalonym wykonanym w tej technologii i przewidzianym do budowania kolejnych generacji szybkich oscyloskopów. Firma Teledyne zakupiła LeCroy Corporation w sierpniu 2012 r. z myślą o opracowywaniu i produkcji oscyloskopów o bardzo szerokim paśmie. „Jesteśmy bardzo zadowoleni z faktu, że 100 GHz oscyloskop został opracowany w mniej niż rok po przejęciu firmy Teledyne LeCroy,” – powiedział Robert Mehrabian, członek zarządu, prezes i dyrektor generalny firmy Teledyne – „Wykonanie nowego układu scalonego w technologii InP we współpracy z Teledyne Scientific i zademonstrowanie go tego samego dnia ilustruje wszechstronność naszych ekspertów od technologii i nasze zaangażowanie w proces podniesienia jakości oscyloskopów na jeszcze wyższy poziom. Technologia InP jest zaawansowanym procesem wytwarzania układów półprzewodnikowych, który zapewnia większą częstotliwość graniczną układów scalonych, które mogą być mimo tego wytwarzane za pomocą dobrze znanych metod. Firma Teledyne jest liderem w technologii InP, mającym możliwość opracowywania i wytwarzania układów. Więcej informacji: NDN, 02-784 Warszawa, ul. Janowskiego 15, tel./faks: 022-641-15-47, tel.: 022-641-61-96, e-mail: [email protected]. pl, www.ndn.com.pl.
Zasilacze z serii LCM z regulacją prądu i interfejsem DALI LCM-40 LCM60 LCM-40DA LCM60DA o nowe zasilacze przeznaczone do zasilania oświetlenia LED o mocy 40 W i 60 W, które mają możliwość ustawienia prądu wyjściowego za pomocą przełącznika. Urządzenia z serii LCM-40 i LCM-60 mają wbudowaną funkcję ściemniania (sterowaną sygnałem 0…10 V DC lub PWM), natomiast modele LCM-40DA oraz LCM-60DA mają wbudowany interfejs DALI oraz funkcję ściemniania wyzwalaną włącznikiem. Wbudowana aktywna funkcja korekcji mocy pozwala osiągnąć wysoki współczynnik mocy (PF≥0,98) przy zachowaniu sprawności dochodzącej do 90%. Wbudowane zabezpieczenia chronią przez zwarciem, przepięciem oraz przegrzaniem. Do chłodzenia zasilaczy wystarczy otwarty obieg powietrza i nie jest wymagane zewnętrzne źródło chłodzenia. Mimo to, wbudowane dodatkowe wyjście 12 V/50 mA umożliwia np. podłączenie wentylatora. Urządzenia zamknięte są w szczelnej izolowanej obudowie, posiadającej stopień ochrony IP20. W celu zwiększenia żywotności we wszystkich urządzeniach zastosowano funk-
122
cje kompensacji temperatury przy wykorzystaniu zewnętrznych termistorów typu NTC. Zasilacze wyróżniają się bardzo niskim poborem mocy w stanie bez obciążenia <1 W. Dzięki spełnianiu szeregu norm dotyczących oświetlenia zasilacze serii LCM-40(DA) oraz LCM-60(DA) świetnie nadają się do instalacji oświetleniowych LED. Wszystkie zasilacze wspomnianych serii posiadają możliwość synchronizacji do 10 jednostek oraz objęte są 3-letnią gwarancją. Więcej informacji: Elmark Automatyka Sp. z o.o., 05-075 Warszawa – Wesoła, ul. Niemcewicza 76, tel.: 022-773-79-37, e-mail: [email protected], www.elmark.com.pl
Agilent Technologies otrzymuje nagrodę Global Growth Leadership w dziedzinie oscyloskopów
Firma Agilent Technologies otrzymała od Frost & Sullivan nagrodę Global Growth Leadership w dziedzinie oscyloskopów. Przeprowadzona przez Frost & Sullivan niezależna analiza rynku oscyloskopów wskazała na znaczący wzrost pozycji rynkowej firmy Agilent w ciągu ostatnich dwóch lat, znacznie przekraczający wskaźniki dla pozostałych uczestników rynku. W tym samym okresie czasu firmy konkurencyjne albo traciły swoje udziały rynkowe, albo nie rosły one z podobną dynamiką. „Można wymienić cztery czynniki, które wpłynęły na wzrost znaczenia rynkowego firmy Agilent: innowacyjność produktów najwyższej klasy, umiejętność efektywnego adresowania oferty na rynki mid- i mainstream, wysoka jakość i niezawodność produktów oraz bardzo dobra strategia dystrybucji,” – powiedział Jessy Cavazos, kierownik sekcji przemysłowej Frost & Sullivan – „nasze badania wskazują na to, że Agilent poczynił znaczące postępy w dziedzinie oscyloskopów w ciągu ostatnich trzech lat, co zaowocowało imponującym wzrostem udziału rynkowego o ponad 8,5 punktów procentowych. Jest to wynikiem silnego zaangażowania firmy w badania i rozwój, co przełożyło się na wprowadzenie do oferty wielu innowacyjnych produktów dla różnych segmentów rynku oscyloskopowego.”
„Jesteśmy naprawdę zadowoleni z otrzymanego wyróżnienia” – powiedział Jay Alexander, wiceprezes i dyrektor generalny oddziału oscyloskopów i protokołów komunikacyjnych firmy Agilent. „Światowy rynek oscyloskopów jest dziś niezwykle konkurencyjny. Czujemy zobowiązanie do dostarczania innowacyjnych produktów o najwyższej jakości, jednocześnie stale reagując na potrzeby klientów. To właśnie dlatego, począwszy od 2002 roku, inżynierowie uczynili Agilent najszybciej rozwijającym się producentem oscyloskopów na świecie.” Wszystkie produkowane przez Agilent oscyloskopy, począwszy od wersji ekonomicznych po modele najwyższej klasy są objęte 3-letnią gwarancją. Dodatkowe informacje: • www.agilent.com/find/OscilloscopesAward_ backgrounder • www.agilent.com/find/Oscilloscopes
Firma Premier Farnell podpisała ogólnoświatową umowę franczyzową z firmą XMOS Firma Premier Farnell ogłosiła podpisanie nowej, ogólnoświatowej umowy franczyzowej z firmą XMOS, liderem w dziedzinie mikrokontrolerów wielordzeniowych. Umowa obejmuje dystrybucję zróżnicowanej architektury xCORE firmy XMOS. Unikatowa technologia xCORE jest stosowana w całej gamie uniwersalnych i łatwych w użyciu mikrokontrolerów o deterministycznej charakterystyce oraz o szerokiej gamie zastosowań pod względem skali działalności klienta, stopnia skomplikowania projektu i rodzaju segmentów rynkowych, takich jak urządzenia audio, motoryzacja, przemysł czy produkty konsumpcyjne. Szerokie możliwości wielokanałowego marketingu firmy Premier Farnell zostaną wykorzystane do promowania zróżnicowanej technologii firmy XMOS oraz rozszerzania i wzbogacania oferty produktów dla społeczności projektantów na całym świecie. Architektura mikrokontrolerów xCORE, będąca własnością firmy XMOS, zapewnia sprzętową charakterystykę pracy i jednocześnie umożliwia programowanie, podobnie jak standardowe mikrokontrolery. Używanie tej architektury jest niezwykle proste dzięki pakietowi bezpłatnych narzędzi do projektowania zapewniających każdej osobie ze znajomością języka programowania C dostęp do całkowicie nowego poziomu wydajności i szybkości reakcji. Dzięki dużej szybkości reakcji architektura xCORE umożliwia realizację wielu funkcji przy użyciu oprogramowania, podczas gdy w przypadku innych rodzajów architektury, na przykład programowego interfejsu Ethernet czy USB, realizacja tych funkcji wymaga użycia rozwiązań sprzętowych. Bezpłatne aplikacje narzędziowe umożliwiają użytkownikom ELEKTRONIKA PRAKTYCZNA 9/2013
INFO programową konfigurację własnego, dostosowanego mikrokontrolera. Mike Furnival, wiceprezes firmy XMOS ds. sprzedaży i marketingu, powiedział: „Z przyjemnością nawiązujemy współpracę z dystrybutorem o tak ugruntowanej pozycji. Umożliwi nam to dotarcie do większej liczby klientów na całym świecie oraz wprowadzenie naszej doskonałej technologii na naprawdę szeroki rynek”. Z kolei Marianne Culver, kierownik ds. globalnego zarządzania łańcuchem dostaw oraz dostawcami w firmie Premier Farnell, stwierdziła: „Ta umowa potwierdza zaufanie, jakie pokładamy w technologii xCORE. Jesteśmy przekonani, że będzie to początek bardzo pomyślnej, strategicznej relacji biznesowej z młodą, sprawną i innowacyjną firmą”. Więcej informacji: http://www.element14.com/community/ groups/xmos
Precyzyjny, 12-bitowy digitizer przetwarzający sygnały gigahertzowe w czasie rzeczywistym
Wielofunkcyjny moduł czasowy RIF-T3-24UC to wielofunkcyjny, wtykowy moduł czasowy, który umożliwia „przekształcenie“ przekaźnika z serii Rifline w przekaźnik czasowy. Moduł ma trzy funkcje czasowe: opóźnione załączenie, odmierzanie nastawionego czasu działania i generatora impuslów. Ponadto, ma 4 zakresy czasowe między 0,5 s i 100 min. Wybór podstawowego zakresu czasowego i funkcji czasowej umożliwiają przełączniki DIP, a dokładne ustawienie realizowane jest poprzez potencjometr. Monitorowania stanu łączeniowego i wskazanie nieprawidłowych ustawień umożliwia dioda LED. We wtykowy moduł czasowy, pracujący z napięcie wejściowym 24 V AC/ DC mogą być wyposażone gniazda przekaźnikowe od RIF-1 do RIF 4 nowego systemu przekaźników Rifline. Więcej informacji: https://www.phoenixcontact.com
REKLAMA
Firma Agilent Technologies zaprezentowała kartę dwukanałowego digitizera U5303A na szynę PCIe, charakteryzującego się 12-bitową rozdzielczością, szybkością próbkowania do 3,2 GS/s i wewnętrznym przetwarzaniem sygnałów w czasie rzeczywistym. Zapewnia on nieosiągalną wcześniej wierność odwzorowania sygnałów analogowych, dożą efektywną liczbę bitów i bardzo mały poziom szumów. Nowy digitizer oferuje znakomite osiągi przy małych rozmiarach: szerokość pasma od DC do 1,8 GHz, współczynnik ENOB równy 9,1 na częstotliwości 100 MHz, stosunek sygnału do szumu 58 dB oraz bardzo szybki transfer danych zapewniany przez 8-ścieżkowy interfejs PCIe 2.0. W rezultacie, U5303A nadaje się idealnie do aplikacji komercyjnych, przemysłowych i wojskowych. Jego potencjalne zastosowania obejmują medyczne systemy przetwarzania obrazu, monitorowanie środowiska, aplikacje analityczne z pomiarem czasu
przelotu cząstek, nieniszczące ultradźwiękowe badania struktur i radary. U5303A to uniwersalny digitizer dający użytkownikom możliwość przetwarzania sygnału w czasie rzeczywistym wewnątrz układu programowalnego Xilinx serii Virtex-6. Służy do tego opracowany przez Agilent zestaw FPGA Development Kit for High-Speed Digitizers. Oprogramowanie to dostarcza narzędzia pozwalające wykorzystać pełną pojemność i szybkość układu FPGA oraz znakomite parametry zapewniane przez digitizer przy szybkościach próbkowania rzędu kilku GSps. “Model U5303A, łączący w sobie dużą rozdzielczość i precyzję przetwarzania sygnałów jest jednym z najlepszych produktów w swojej klasie,” powiedział Didier Lavanchy, kierownik do spraw operacyjnych oddziału szybkich digitizerów w firmie Agilent. “Przy jego opracowywaniu wykorzystano innowacje po raz pierwszy zaprezentowane na karcie 12-bitowego digitizera AXIe, laureata konkursu 2013 Best in Test magazynu Test & Measurement World.” Model U5303A rozszerza ofertę urządzeń na szynę PCIe i kart szybkich digitizerów, obejmującą również karty formatów AXIe i PXIe. Jego integrację w komputerach PC ułatwia obszerny zestaw dostarczanych przez producenta sterowników. Więcej informacji: www.agilent.com/find/U5303A
ELEKTRONIKA PRAKTYCZNA 9/2013
123
PREZENTACJE
Innowacyjna platforma zaopatrzeniowa elhurt.com.pl Jeśli porównamy sklepy internetowe oferujące komponenty elektroniczne z tradycyjnymi zakupami od dystrybutorów, z całą pewnością możemy stwierdzić, że sklepy internetowe mają wszystkie zalety zaopatrzenia w tradycyjny sposób i dodatkowo kilka zalet, które wynikają ze specyfiki Internetu i zakupów dokonywanych za jego pomocą. Oszczędność czasu, możliwość zakupu w najniższych cenach, szeroki asortyment produktów dostępny w jednym miejscu to najważniejsze zalety zakupów w sklepach internetowych. Firma Elhurt wdrożyła innowacyjną platformę zaopatrzeniową w komponenty elektroniczne. Serwis dostępny pod adresem www.elhurt.com.pl jest alternatywą dla działów zaopatrzenia oraz konstruktorów urządzeń elektronicznych, którzy dotychczas zaopatrywali się w sposób tradycyjny. Platforma oferuje nowe, niespotykane dotychczas na polskim rynku podejście do zakupu komponentów elektronicznych. Wymieńmy kilka podstawowych powodów, dla których warto przyjrzeć się nowej platformie: 1. Najszerszy asortyment części elektronicznych w Europie. Liczba produktów wielokrotnie przewyższa asortyment oferowany przez inne firmy dystrybucyjne. W ramach nowego serwisu
124
Klient ma dostęp do około pół miliona komponentów elektronicznych, których oferta jest stale rozszerzana. 2. Ceny hurtowe niezależnie od zamawianej ilości. Oferta platformy www. elhurt.com.pl, w odróżnieniu od serwisów internetowych firm katalogowych, jest skierowana głównie do działów zaopatrzenia. Niezależnie od zamawianej liczby komponentów, mają one możliwość zakupu podzespołów w konkurencyjnych cenach hurtowych. 3. Oferta produktów uszeregowana zgodnie z oznaczeniami producentów. Zakupy na platformie www. elhurt.com.pl dają możliwość wyboru konkretnego producenta i gwarancję nabycia produktów zgodnie ze stosowanym przez niego oznaczeniem. Dzięki temu Klient dokładnie wie, jaki komponent otrzyma. 4. Łatwość zarządzania swoimi zamówieniami i rozliczeniami. Po zarejestrowaniu się w systemie Klient otrzymuje dostęp do historii swoich
Dodatkowe informacje: Elhurt Sp. z o.o. ul. Galaktyczna 35 A, 80-299 Gdańsk tel. +48 58 554 08 00 do 04 fax +48 58 554 08 06 e-mail: [email protected], www.elhurt.com.pl
zamówień, faktur i salda rozliczeń z ostatnich 12 miesięcy. Historię zamówionych produktów można przeszukiwać za pomocą wyszukiwarki. Istnieje przy tym możliwość składania powtórnych zamówień na podstawie historii oraz tworzenia własnych list zakupowych. 5. Podział na partie dostaw z gwarancją utrzymania ceny. Platforma udostępnia możliwość rozbicia zamówienia na kilka dostaw. Niezależnie od liczby dostaw, zakup komponentów jest dokonywany w cenach liczonych dla całkowitej liczby komponentów we wszystkich dostawach. 6. Oferowane produkty pochodzą wyłącznie od producentów lub ich autoryzowanych dystrybutorów. W ofercie prezentowanej na platformie znajdują się komponenty pochodzące z wiarygodnych źródeł, a więc od producentów lub ich autoryzowanych dystrybutorów. 7. Narzędzie zaopatrzeniowe tylko dla firm. Platforma Elhurtu jest narzędziem przeznaczonym dla służb utrzymania ruchu, firm zajmujących się produkcją urządzeń elektronicznych oraz konstruktorów urządzeń elektronicznych. Serwis nie obsługuje klientów indywidualnych (sprzedaży detalicznej).
ELEKTRONIKA PRAKTYCZNA 9/2013
Ogłoszenia i reklamy hurtowni, sklepów, importerów, producentów, dealerów, itp. są płatne. Cena podstawowego modułu (35 x 20 mm) wynosi 66 zł + VAT. Koszt minimalnej ramki dla ogłoszeń o wielkości 3 modułów wynosi 198 zł + VAT. Moduły można łączyć zarówno w pionie jak i w poziomie. Maksymalna szerokość ogłoszenia to 5 modułów, wysokość 12 modułów. Rabaty stosujemy wyłącznie dla reklam powyżej 8 modułów: 4-6 emisji 10%, 7-11 emisji 15% i od 12 emisji 25%. Oferta specjalna: • publikacja fragmentów cennika w ramce o wielkości: 8 modułów w pionie cena 264 zł + VAT, 9 modułów w poziomie 305 zł + VAT • rabat specjalny dla firm poszukujących pracowników wynosi 25% (wyłącznie dla dużych reklam). Wszelkich informacji udziela Grzegorz Krzykawski, tel. 22 257 84 60, e-mail: [email protected]. Reklamy do tej rubryki mogą być przygotowane przez Zamawiają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śli krój czcionek nie jest rzeczą dużej wagi. Małe reklamy mogą być przygotowane w redakcji (gratis) na podstawie odręcznego szkicu lub maszynopisu. Opracowania te nie będą jednak wówczas uzgadniane z Zamawiającym przed oddaniem do druku. Redakcja nie odpowiada za treść reklam i ogłoszeń zamieszczonych w Elektronice Praktycznej
http://www.maszczyk.pl e-mail: [email protected]
„MASZCZYK” 05-071 Sulejówek-Miłosna ul. Mickiewicza 10 tel. (22) 783-45-20 fax (22) 783-90-85 kom. 602-726-086
Obudowy urządzeń przenośnych
Obudowy na szynę
z-89F 5,34 zł
z-100F 6,77 zł
Obudowy hermetyczne
Obudowy pilotów
z-56 4,98 zł
p-7 2,49 zł
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
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: [email protected]
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.
Nie przegap!
interesujących materiałów w siostrzanym czasopiśmie We wrześniowym wydaniu
Elektroniki dla Wszystkich
Książkowy świetlik
między innymi:
Lampowy wzmacniacz słuchawkowy OTL Wzmacniacze lampowe cieszą się popularnością, a jeszcze większe zainteresowanie wzbudzają wzmacniacze beztransformatorowe, tzw. OTL (Output TransformerLess). Czy i Ty wykonasz tego rodzaju wzmacniacz? Sterownik CNC. CNC to Computerized Numerical Control, czyli komputerowe sterowanie urządzeń numerycznych. Artykuł przedstawia fragment systemu CNC – uniwersalny sterownik silników krokowych, który może znaleźć szereg rozmaitych zastosowań. Ultracap, Supercap, czy może EDLC? Pierwsza część artykułu, prezentującego wcześniejsze i obecne przykłady kondensatorów o małych rozmiarach i zaskakującej pojemności. Elementy te są już na tyle popularne i tanie, że koniecznie trzeba je bliżej poznać i polubić. PLL. Choć układy PLL (Phase Locked Loop) są od dawna bardzo często wykorzystywane, jednak dla wielu elektroników pętla fazowa nadal jest zagadką. Zapoznaj się z historią, ideą oraz różnymi realizacjami PLL. PKE – Najprawdziwszy termostat W ósmym wykładzie kursu zapoznasz się z kolejnymi kluczowymi zagadnieniami, w tym z problemem jakości zasilania i z zakłóceniami. A może masz pomysł na ciekawy artykuł lub projekt? Nauczysz się też praktycznie wykorzystywać Skonstruowałeś urządzenie, dobroczynne dodatnie sprzężenie zwrotne. które jest godne zaprezentowania szerszej publiczności? Ponadto w numerze Możesz napisać artykuł edukacyjny? � Książkowy świetlik � Zasilacz płytek stykowych, czyli jak zasilić Chcesz podzielić się doświadczeniem? EdW09 W takim razie zapraszamy do współpracy na łamach � Przetwornica impulsowa z inspiracji PKE Elektroniki dla Wszystkich. Kontakt: [email protected] � Elektryzator ogrodzenia � Warsztatowe patenty – Sieciowy panel EdW możesz zamówić w sklepie internetowym AVT zasilający � Warsztatowe patenty – Organizer http://www.sklep.avt.pl, telefonicznie 22 257 84 50, � Dbajmy o nasze kumputery! fax: 22 257 84 55, listownie lub za pomocą e-maila: � Szkoła Konstruktorów – Zaproponuj mniej [email protected] Do kupienia także w Empikach lub bardziej skomplikowanego robota lub i wszystkich większych kioskach z prasą. dowolny układ, związany z robotyką. Na wszelkie pytania czeka także Dział Prenumeraty � Szkoła Konstruktorów – „Kosmiczny” układ tel. 22 257 84 22, [email protected] elektroniczny CENA 12zł
(w tym 5% VAT)
• NAKŁAD: 14 990 egz.
www.elportal.pl
INDEKS 333 62X
ISSN 1425-1698
9 /2013 WRZESIEŃ •
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.
Tytuł
Bestsellery dla elektroników
kod zamówienia
KS–130300
Jak naprawić sprzęt elektroniczny. Poradnik dla nieelektronika W tym praktycznym przewodniku urodzony spec od elektroniki dzieli się sprawdzonymi technikami i bezcennymi obserwacjami. Ta książka pokazuje, jak naprawić wszelkiego rodzaju urządzenia tranzystorowe - od nowoczesnych gadżetów cyfrowych, po hołubione analogowe produkty czasów minionych – i przedłużyć im życie. Zaczniesz od wyboru niezbędnych narzędzi oraz przyrządów pomiarowych i zorganizowania warsztatu. Następnie poznasz wszystkie elementy i dowiesz się, jak tworzą obwody, bloki i sekcje w urządzeniu. Potem nauczysz się je rozbierać, diagnozować jego niedomagania, wymieniać elementy i z powrotem je składać. Przykłady z życia pomogą Ci w zrozumieniu omawianych tematów. Znajdziesz tu też porady i triki dotyczące konkretnych urządzeń, takich jak odtwarzacze dysków optycznych, komputery i rejestratory wideo. Michael Geier, stron: 360 cena: 59 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
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ł
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
Dowolną książkę z kompletnej biblioteki 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
129
Kity AVT Kod
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
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
EP10/04 EP11/94 EP10/94 EP11/08 EdW2/97 EdW8/97 EdW2/98 EdW2/00 EdW9/00 EdW3/01 EdW7/04 EdW5/08
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
75 29
125 37
14
40
52
10
43
53
10
29
38
11
33
44
11
67
90
AVT AVT AVT AVT AVT
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
12
67
94
15
23
32
8
80
94
8
22
38
AVT 705
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
Cena PLN z VAT (23%)
A
B
C
EdW1/05 EdW3/05 EP8/95 EP12/07 EP6/10
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
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
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 1745 AVT 1746 AVT 1747 AVT 1748 AVT 5416 AVT 5417 AVT 5415
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.
Dla domu, samochodu, wypoczynku i zabawy
Układy uP, uC i do PC AVT 1462 AVT 1610
Nazwa
AVT 5412 AVT 5413 AVT 5414 AVT 1775 AVT 1772 AVT 1773 AVT 1771
Miniaturowy moduł przekaźników z RS485 Wzmacniacz o mocy 20 W z układem LM1875 Wzmacniacz słuchawkowy z układem TPA6111 Zabezpieczenie akumulatora ołowiowego DAMP – wzmacniacz klasy D o mocy 10 W Zasilacz warsztatowy Miernik panelowy do zasilacza symetrycznego Moduły rozszerzeń dla Raspberry Pi: RaspbPI_DIO16 - płytka cyfrowych portów I/O Moduły rozszerzeń dla Raspberry Pi: RaspbPI_HUB - 4-portowy HUB USB zgodny z Raspberry PI Moduły rozszerzeń dla Raspberry Pi: RaspbPI_DCM - Sterownik silników prądu stałego Miniaturowy konwerter USB/UART z układem FT230XS Płytka uruchomieniowa z mikrokontrolerem Precision32 Xbee Mini – radiowa łączność bezprzewodowa LiPo PWR – mikroprzetowornica 3 V/5 V 500 mA
EP7/13
18
34
49
EP7/13
8
36
48
EP7/13
6
EP7/13
5
24
EP9/13
8
28
EP9/13
28
EP9/13
24
EP9/13
9
EP9/13
14
EP9/13
9
EP9/13
8
EP9/13
14
EP9/13
7
EP9/13
6
36
59
22
34
Pełna oferta oraz prezentacje techniczne kitów i modułów są dostępne na stronie: sklep.avt.pl 130
ELEKTRONIKA PRAKTYCZNA 9/2013 Niniejsze ogłoszenie jest informacją handlową i nie stanowi oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
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 października 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 grudnia 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)
Prenumerata to komfort na którym oszczędzasz! Zaprenumeruj Elektronikę Praktyczną we wrześniu, a otrzymasz – do wyboru: koszulkę z logotypem EP lub płytę Diany Krall „Glad Rag Doll” z jazzowymi standardami
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 sierpnia – mailem ([email protected]), 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 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: [email protected]
WYKAZ FIRM DZIAŁ OGŁASZAJĄCYCH SIĘ W TYM NUMERZE ELEKTRONIKI PRAKTYCZNEJ AKSOTRONIK ............................... 126 ARMEL ......................................... 125 ASTAT ............................................ 19
Elektronika Praktyczna 10/2013 Kolejne gigabajty narzędzi niezbędnych do pracy konstruktora, czyli NIEZBĘDNIK ELEKTRONIKA na DVD. Tylko dla prenumeratorów EP.
BNS ............................................. 127 BORNICO ......................................... 8 CONTRANS TI ................................. 85 CSI ............................................... 119 DELTA ......................................... 127 ELHURT .......................................... 13 ELMARK AUTOMATYKA ............... 121 ELMAX......................................... 126 ELPIN ........................................... 126 ELPOD.......................................... 125 EVATRONIX .................................... 39 FARNELL....................................... 134 FERYSTER ................................. 10, 83 FUJITSU COMPONENTS EUROPE B.V. .. ...................................................... 15 GAMMA ........................................ 83 GTB SOLARIS ................................ 125 HUMA ................................... 83, 126 KRADEX ....................................... 125 KRISTECH ..................................... 127 LC ELEKTRONIK .............................. 12 MASZCZYK............................. 83, 125 MICROCHIP .................................... 11 NATIONAL INSTRUMENTS .............. 41 NDN ........................................ 3, 133 PIEKARZ ................................. 83, 128 PYFFEL ......................................... 125
Time-ek – sterownik czasowy.
Gdy wyjeżdżamy na kilka dni lub nawet tygodni musimy rozwiązać problem podlewania kwiatów, karmieniem rybek itp., a często mamy obawy, że puste mieszkanie, może stać się celem włamywaczy. Za miesiąc zaprezentujemy urządzenie, które pomoże rozwiązać takie problemy.
Cyfrowy generator sygnału prostokątnego
Za miesiąc przyrząd dla elektroników – eksperymentatorów szukających niedrogiego i użytecznego wyposażenia dla swojej pracowni. Generuje on falę prostokątną o poziomach napięć zgodnych z TTL i cyfrowo ustalanej częstotliwości oraz wypełnieniu.
Cyfrowy zasilacz modeli kolejki
Za miesiąc cyfrowy regulator obrotów wraz z zasilaczem umożliwia płynną regulację prędkości jazdy modeli kolejki elektrycznej w przód i tył dowolnego producenta (PIKO, ROCCO) dla silników prądu stałego do 12 V.
Płytka interfejsu użytkownika dla Raspberry Pi
Za miesiąc płytka, która umożliwia rozszerzenie GPIO Raspberry PI o wyświetlacz LCD zgodny z HD44780, pięcioprzyciskową klawiaturę, zegar czasu rzeczywistego RTC oraz wyprowadzenie magistrali I2C i interfejsu szeregowego.
QWERTY ........................................ 10 RELPOL ........................................ 107 RENEX ........................................... 83 RK SYSTEM .................................... 75 RS COMPONENTS ............................ 9 RUTRONIK .................................... 117 SEMICON ....................................... 55 SOS ................................................. 2 ST MICROELECTRONICS ...................... ................................ 5, 45, 57, 59, 61 TELMATIK .................................... 125 TESPOL .......................................... 33 TRANSFER ELEKTRONIK ................ 125 UNISYSTEM.................................... 17 WOBIT .................... 73, 83, 123, 126 Reklamy 132 stron internetowych na str. 83
ELEKTRONIKA PRAKTYCZNA 9/2013
13 Niezbędnik EP 9/20 7 ika: więcej na str. Niezbędnik elektron
CDEP 9/2013 Dodatkowe materiały do artykułów: • 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 AN Dodatkowe materiały oraz poprzednie części do artykułów: • C2000 Piccolo LaunchPad • STM32 jak najprościej Dane wymagane do logowania na serwerze FTP Elektroniki Praktycznej: host: ftp://ep.com.pl • user: 41650 • pass: 742qofb6 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.
OFERTA ROKU! RIGOL
®
Model Pasmo analogowe Liczba kanałów
DS2072 70 MHz 2 2 GSa/s (praca jednokanałowa), 1 GSa/s (praca dwukanałowa) 14 Mpkt (standard), 56 Mpkt (opcja) 50 000 wfms/s ≤ ±25 ppm ≤ ±5 ppm/rok 2 ns/dz do 1000 s/dz (1 MΩ ±1%) II (16 pF ±3 pF) 500 μV/dz do 10 V/dz ±2% pełnej skali 20 MHz maks. 65 000 ramek (standardowo)
Funkcje matematyczne
A+B, A-B, AxB, A/B, FFT, funkcje zaawansowane, operacje logiczne Vpp, Vamp, Vmax, Vmin, Vtop, Vbase, Vavg, Vrms, przerost, przedrost, obszar, obszar okresu, częstotliwość, okres, czas narastania i opadania, +Width, -Width, +Duty, -Duty, opóźnienie A→B zbocza narastającego, opóźnienie A→B zbocza opadającego, przesunięcie fazy A→B zbocza narastającego, przesunięcie fazy A→B zbocza opadającego USB Host (obsługa USB-GPIB), USB Device, LAN(LXI), wyjście AUX (Trig Out, Pass/Fail) 8” (203 mm) TFT LCD, 800 (poziomo) x RGB x 480 (pionowo) pikseli, 256 poziomów jasności 361,6 mm x 179,6 mm x 130,8 mm 3,9 kg ±0,2 kg (bez opakowania) 350 MHz sonda pasywna RP3300: 2 komplety
Ń Ź O D W ! W Z Ę A D T R A R P Z I S FE O
Maksymalna częstość próbkowania Maks. pojemność pamięci Częstość odświeżania przebiegów Dokładność podstawy czasu Dryft podstawy czasu Zakres podstawy czasu Impedancja wejściowa Czułość odchylania pionowego Dokładność wzmocnienia DC Ogranicznik pasma Rejestracja w czasie rzeczywistym, Odtwarzanie, analiza przebiegów Standardowe tryby wyzwalania
Opcjonalne funkcje wyzwalania
Dekodowanie standardowe Dekodowanie opcjonalne magistral szeregowych
Edge, Pulse Width, Slope, Video, Pattern, Runt, SetupHold, RS232, I2C, SPI Windows, Nth Edge, HDTV, Delay, Time out, Duration, USB magistrala równoległa RS232, I2C, SPI
Pomiary automatyczne
Interfejsy komunikacyjne
Ekran
Wymiary (Sz. x Wys. x Gł.) Waga
Sondy pomiarowe w standardzie
Próbkowanie 1GSa/s, Pamiêæ 1Mpunkt a j c o " Przy zakupie n m o o DS1052E Pr telef w promocji PC5000a a n " ®
02-784 Warszawa, ul. Janowskiego 15 tel./fax (22) 641-15-47, 644-42-50 http://www.ndn.com.pl e-mail: [email protected]
WIĘCEJ ZA MNIEJ Konkurencyjne ceny na produkty nawijane na szpule 50,000 produktów w opakowaniach gotowych do użycia w produkcji Śledzenie produktu wg DATY i numeru PARTII dla ponad 60,000 produktów Dedykowany Zespół Ekspertów do przygotowywania ofert cenowych SPRAWDŹ OFERTĘ PRODUKTOWĄ I CENY
www.farnell.com/pl