LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
IoT

Półprzewodnikowy detektor piorunów AS3935 i Kinetis L (na płytce FRDM-KL25Z)

 

 

 

W artykule omówiono aspekty dotyczące implementacji programowej czujnika AS3935 w systemie. Do stworzenia systemu testowego i demonstracyjnego posłużono się modułem z czujnikiem AS3935, płytką FRDM-KL25Z z mikrokontrolerem Kinetis L oraz zestawem AS3935 Demo Kit.

Układ AS3935 firmy Austria Microsystems to jedyne obecne na rynku jednoukładowe rozwiązanie umożliwiające wykrywanie piorunów. W pierwszym artykule dotyczącym tego czujnika opisany został opracowany przez producenta zestaw AS3935 Demo Kit. W drugim artykule omówione zostały aspekty dotyczące sprzętowej implementacji czujnika w systemie. W ramach trzeciego, zamykającego cały cykl artykułu pokazujemy jak obsłużyć ten czujnik za pomocą mikrokontrolera.

 

Platforma sprzętowa

Platforma sprzętowa tworząca system testowy i demonstracyjny składa się z trzech elementów. Pierwszym z nich jest moduł z czujnikiem AS3935. Wybrano do tego celu moduł MOD-1016 firmy Embedded Adventures. Drugim elementem platformy jest płytka z mikrokontrolerem. Jest to płytka FRDM-KL25Z z mikrokontrolerem Kinetis L. Ostatnim elementem platformy jest generator impulsów elektromagnetycznych, które pod względem charakterystyki są takie same jak impulsy elektromagnetyczne towarzyszące emisji pioruna. Rolę generatora tych impulsów pełni płytka Lightning Emulator należąca do zestawu AS3935 Demo Kit.

Aby mikrokontroler z płytki FRDM-KL25Z mógł się komunikować z czujnikiem z modułu MOD-1016, oba elementy systemu muszą zostać połączone interfejsem komunikacyjnym. Może to być interfejs I2C lub SPI, gdyż oba są zintegrowane zarówno w mikrokontrolerze Kinetis L, jak i czujniku AS3935. Wybrany został interfejs I2C. Schemat połączenia płytki FRDM-KL25Z i modułu MOD-1016 zaprezentowano na rysunku 1. Zdjęcie całej platformy sprzętowej pokazano na rysunku 2.

 

Rys. 1. Schemat połączenia płytki FRDM-KL25Z i modułu MOD-1016

Rys. 1. Schemat połączenia płytki FRDM-KL25Z i modułu MOD-1016

 

Rys. 2. Zdjęcie wykorzystanej platformy sprzętowej

Rys. 2. Zdjęcie wykorzystanej platformy sprzętowej

 

Tab. 1. Spis przyporządkowanych sobie wyprowadzeń FRDM-KL25Z i MOD-1016 wraz z opisem ich funkcji

Nazwa wyprowadzenia modułu MOD-1016 Nazwa wyprowadzenia mikrokontrolera Kinetis L Funkcja linii sygnałowej
GND GND Masa (napięcie 0 V)
SDA PTC9 Linia sygnału zegarowego interfejsu I2C
SCL PTC8 Linia sygnału danych interfejsu I2C
IRQ PTB3 Linia przerwania od czujnika AS3935
VCC P3V3 Zasilanie (napięcie 3,3 V)

 

Budowa wewnętrzna układu AS3935

Schemat budowy wewnętrznej układu AS3935 pokazano na rysunku 3.

 

  Rys. 3. Schemat budowy wewnętrznej układu AS3935 [1]

Rys. 3. Schemat budowy wewnętrznej układu AS3935 [1]

 

Omawianie tego schematu warto zacząć od bloku o nazwie AFE ( Analog Front End ), gdyż to od niego zaczyna się cały proces detekcji piorunów. Blok AFE poprzez wyprowadzenia INP oraz INN podłączony jest do zewnętrznego obwodu antenowego RLC. Antena ta odbiera z otaczającej przestrzeni fale elektromagnetyczne i zamienia je na sygnał elektryczny, który następnie przekazuje do AFE. Blok AFE odpowiada za wzmocnienie i zdemodulowanie tego sygnału.

Przetworzony przez AFE sygnał trafia do grupy bloków analizy. W nich zaimplementowany jest algorytm interpretujący sygnał. Pierwszy blok analizy to Signal Validation. Blok ten dokonuje oceny kształtu sygnału i na podstawie tej czynności określa źródło jego pochodzenia. Jeśli sygnał pasuje do wzorca, zostaje on zaklasyfikowany jako sygnał towarzyszący emisji pioruna. W przeciwnym wypadku  sygnał zaklasyfikowany zostaje jako zakłócenie wygenerowane przez nieznane źródło. W obu przypadkach blok Signal Validation zgłosi przerwanie na wyprowadzeniu IRQ. Dodatkowo jeśli wynikiem klasyfikacji jest emisja pioruna, sygnał przekazywany jest do kolejnych dwóch bloków: Energy Calculation i Statistical Distance Estimation. Pierwszy z nich odpowiada za obliczenie wartości energii pioruna. Drugi natomiast na bazie danych statystycznych określa odległość czujnika AS3935 do czoła burzy.

Na działanie bloków analizy wpływ ma kilka dodatkowych bloków. Są nimi: Watchdog, Noise Floor Level Generation oraz Noise Floor Evaluation. Blok Watchdog monitoruje poziom sygnału na wyjściu modułu AFE i w przypadku przekroczenia określonej wartości tego sygnału aktywuje blok Signal Validation. Blok Noise Floor Level Generation na bazie sygnału wyjściowego z bloku AFE określa poziom szumu sygnału. Poziom ten jest porównywany z ustawioną dopuszczalną wartością progową szumu. Zadanie to realizuje blok Noise Floor Evaluation. Jeśli poziom zmierzonego szumu przekroczy wartość progową, Noise Floor Evaluation za pomocą bloku Signal Validation zgłosi przerwanie na wyprowadzeniu IRQ .

Trzy bloki schematu AS3935 odpowiadają za realizację komunikacji układu AS3935 ze światem zewnętrznym. Blok SPI to kontroler interfejsu komunikacyjnego SPI. Blok I2C to z kolei kontroler interfejsu komunikacyjnego I2C. Blok I2C_ADD pozwala zmienić adres układu AS3935 w magistrali komunikacyjnej I2C. Domyślny 7-bitowy adres czujnika firmy Austria Microsystems ma postać 0-0-0-0-0-a1-a0. Ustalając na wyprowadzeniu a1 i a0 poziom logiczny napięcia na wartość 0 lub 1 uzyskać można odpowiednio wartość 0 lub 1 bitów a1 i a0. Zatem możliwe do uzyskania wartości adresu i2C układu AS3935 to 0, 1, 2 lub 3.

Kolejny blok na schemacie układu AS3935 to Voltage Regulator. Jak łatwo się domyślić jest to regulator napięcia. W przypadku nieaktywnego regulatora napięcia (wyprowadzenie EN_VREG podłączone do masy) czujnik firmy Austria Microsystems może być zasilany napięciem o wartości od 2,4 do 3,6 V. Jeśli taki poziom napięcia nie jest w systemie dostępny, można aktywować zintegrowany w AS3935 regulator (poprzez podłączenie wyprowadzenia EN_VREG do ok. 5 V), który je wytworzy wewnątrz układu. W warunkach, gdy regulator napięcia jest włączony, układ AS3935 można zasilać napięciem o wartości od 2,4 do 5,5 V.

Na schemacie czujnika AS3935 obecne są również bloki sygnału zegarowego.  Układ firmy Austria Microsystems wykorzystuje dwa zintegrowane oscylatory RC: SRCO (System RCO) oraz TRCO (Timer RCO). Pierwszy z nich generuje sygnał o częstotliwości 1,1 MHz, drugi natomiast o częstotliwości 32,768 kHz.

Ostatni nieomówiony dotychczas blok to Register. Reprezentuje on rejestry układu AS3935. Czujnik firmy Austria Microsystems dysponuje 50 8-bitowymi rejestrami, przy czym do konfiguracji i obsługi układu wykorzystywanych jest pierwszych 9 z nich, a więc są to rejestry umieszczone w pamięci układu od adresu 0x00 do 0x08. Mapę wszystkich rejestrów czujnika przedstawiono na rysunku 4. Opis pól rejestrów zamieszczono w tabeli 2.

 

Rys. 4. Mapa rejestrów układu AS3935 [1] 

Rys. 4. Mapa rejestrów układu AS3935 [1]

 

SZYMON PANECKI urodził się 17 lutego 1985 roku w Milanówku. Tytuł inżyniera Elektroniki i Telekomunikacji, a następnie magistra inżyniera na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał kolejno w roku 2008 i 2010. Ponadto tytuł inżyniera Informatyki na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał w roku 2011. Szymon Panecki jest doświadczonym elektronikiem-konstruktorem, który w trakcie swojej zawodowej kariery koncentruje się na definiowaniu i projektowaniu (zarówno w warstwie sprzętowej jak i programowej) systemów wbudowanych opartych na mikrokontrolerach z rdzeniem ARM od różnych producentów, w tym przede wszystkim Infineon Technologies (rodzina XMC1000 i XMC4000), STMicroelectronics (STM32 i STR7), Freescale Semiconductor (Kinetis L) oraz Silicon Labs (EFM32 i Precision32). Obszarem jego szczególnego zainteresowania są systemy wykorzystujące czujniki środowiskowe (wilgotności, ciśnienia, temperatury) oraz przemysłowe i motoryzacyjne interfejsy komunikacyjne, głównie CAN. Szymon Panecki od wielu lat współpracuje z czasopismem "Elektronika Praktyczna" oraz portalem Mikrokontroler.pl, na łamach których publikuje liczne artykuły dotyczące swoich projektów, jak również nowości produktowych firm z branży półprzewodnikowej.