Sunday, November 24, 2013

Generator i oscyloskop na LPC2138

Witam.

Chciałbym przedstawić mój nowy projekt generator i oscyloskop. Z racji tego, że nie posiadam ani oscyloskopu ani generatora, postawiłem zrobić te dwa urządzenia, początkowo miałem to zrobić na Atmedze 32, ale z racji, że ostatnio zacząłem przygodę z ARM, a w wykorzystanym ARM jest przetwornik cyfrowo analogowy, dzięki któremu mogłem w prosty sposób zrobić generator, wybór właśnie padł na ARM. Konstrukcja przede wszystkim opiera się na zestawie uruchomieniowym ZL9ARM z wykorzystaniem mikrokontrolera LPC2138.

Generator
Teraz kilka słów na temat generatora. Generator potrafi generować przebiegi sinusoidalne, prostokątne i trójkątne, z możliwością regulacji współczynnika wypełnienia w zakresie 1-99%. Zakres generowanych częstotliwości wynosi od 1 Hz do 100 kHz. Na wyjściu generatora mamy przebieg o amplitudzie 3.3V. Do zrobienia generatora użyłem oczywiście wewnętrznego przetwornika cyfrowo analogowego.

Oscyloskop
Oscyloskop powstał przy użyciu wewnętrznego przetwornika analogowo cyfrowego, posiada takie właściwości jak:
-podstawę czasu od 50us/dz do 500ms/dz
-podziałka napięcia od 1V/dz do 50V/dz
-detekcja sygnału DC/AC
-obliczanie częstotliwości i współczynnika wypełnienia
-wyświetlanie napięcia
Wszystkie obliczenia dotyczące sygnału wejściowego są tylko na podstawie wartości z przetwornika ADC, dlatego pomiar częstotliwości jak i współczynnika nie zawsze jest dokładny. Oscyloskop na podstawie wyników z przetwornika ADC robi detekcję sygnału i w przypadku sygnału AC obliczana jest częstotliwość i współczynnik wypełnienia, oraz wyliczana maksymalna wartość napięcia. Natomiast w przypadku przebiegu DC wyliczana średnia wartość napięcia. Tor wejściowy oscyloskopu to zwykły dzielnik napięcia, od którego zależy przede wszystkim zakres napięć wejściowych, należy również pamiętać, że im większy zakres tym gorsza dokładność pomiaru napięcia. Przy obecnych wartościach rezystorów zakres napięć wejściowych wynosi do około ±30V.

Wyświetlacz
Do wyświetlania użyłem wyświetlacza LCD ze sterownikiem KS0108.

Sterowanie
Sterowanie zarówno oscyloskopu jak i generatora odbywa się przy użyciu 5 klawiszy, które są w zestawie uruchomieniowym, natomiast wprowadzanie danych dla generatora odbywa się przez RS232 z wykorzystaniem terminala.

Oprogramowanie
Całość została napisana w języku C.

Film
Na filmie pokazane są 3 różne przebiegi, jak i pomiar napięcia z transformatora. Na moim kanale youtube można zobaczyć wcześniejsze próby na Atmedze 32. Na filmie można zauważyć, że oprócz generatora i oscyloskopu są jeszcze inne funkcje jak wyświetlanie czasu, daty, temperatury, ale to taki dodatek do całości, który nie odnosi się do głównej funkcjonalności.


Podsumowanie
Reasumując do projektu użyłem zestawu uruchomieniowego, wyświetlacz LCD ze sterownikiem KS0108, paru rezystorów służących jako dzielnik napięcia do toru wejściowego oscyloskopu. Do pozostałej funkcjonalności którą można zobaczyć na głównym ekranie użyłem jako RTC: PCF8583, termometr DS18B20 i pamięć EEPROM ATMEL24C256 służącą do przechowania konfiguracji.
Oczywiście jest to dość prosta konstrukcja, ale do moich prostych zastosowań jest wystarczająca :)

Uwagi, propozycje i opinie są mile widziane.

2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. Hi Michal,

    I really like your LPC2138 ARM-7 based LCD scope and Function Generator project and really appreciate if you share the project's schematic and code. I have worked on LPC2114 for some time. My email is: javed8051@gmail.com
    Have a nice day!

    ReplyDelete