Sprawozdanie z projektu MARM Część druga Specyfikacja końcowa Prowadzący: dr. Mariusz Suchenek Autor: Dawid Kołcz Data: 01.02.16r.
1. Temat pracy: Układ diagnozujący układ tworzony jako praca magisterska. 2. Opis układu: Układ jest niezbędny do prawidłowego procesu prototypowania układu, będącego częścią akceleratora XFEL. Zadaniem płytki będzie komunikacja z przetwornikami D/A protokołem I2C niezbędna do uruchomienia płytki. Urządzenie będzie miało możliwość nastaw wartości wysyłanych do zewnętrznych DACów przy pomocy przycisków i wyświetlacza graficznego, ewentualnie z karty pamięci. Dodatkowo układ będzie rejestrował wartości napięć monitorujących poprawną pracę układu, dane będą wyświetlane w czasie rzeczywistym oraz zapisywane na karcie pamięci. Układ potrzebuje również napięcia zewnętrznego wystawianego z wewnętrznego DACa. Wartość napięcie będzie odczytywane z pliku znajdującego się na kracie pamięci. 3. Implementowane peryferia: a. Wyświetlacz graficzny po SPI b. Zewnętrzny DAC po I2C c. Karta pamięci z biblioteką fatfs (odczyt i zapis plików). d. Wewnętrzny ADC z DMA e. Zapis napięć z wewnętrznego ADC do pliku. f. Ustawianie GPIO na potrzeby kalibracji. 4. Urządzenie wykonawcze: Projekt zostanie zrealizowany na płytce dydaktycznej STM32F4 DISCOVERY z wyświetlaczem graficznym ze sterownikiem ST7565R. Zewnętrzny DAC to układ firmy Analog Devices AD5338R.
5. Realizacja Na potrzeby projektu została użyta płytka ewaluacyjna STM32F4 Discovery połączona przy pomocy taśmy przewód do niezbędnych peryferii. z wyświetlaczem opartym na sterowniku HD44780. Wyjścia DAC i ADC zostały uruchomione bez dodatkowych buforów wyjściowych. Wyświetlacz HD44780 nie wymagał dodatkowego konwertera stanów logicznych a. Wyświetlacz W projekcie został użyty wyświetlacz 2 x 16 znaków oparty na sterowniku HD44780. Użyty sterownik nie wymagał translatora stanów logicznych i poprawnie działał przy logice 3,3V. Komunikacja została skonfigurowana ręcznie i zawarta w dedykowanej bibliotece. Transmisja jest zbliżona do UART. b. Karta pamięci SD Komunikacja z kartą pamięci w logice 3,3V jest oparta na interfejsie SPI. W projekcie jest wykorzystywany wbudowany w mikrokontroler i sterowany za pomocą bibliotek dostarczonych przez producenta. Złącze kart pamięci znajduje się na oddzielnej płytce wykonanej jako projekt potrzebny w innym projekcie. c. Przetwornik Analogowo-Cyfrowy W projekcie został wykorzystany 12 bitowy wbudowany przetwornik. Konfiguracja została wykonana przy pomocy bibliotek CMSIS dostarczonych przez producenta mikrokontrolera. Przetwornik pracuje z maksymalną rozdzielczością i opóźnieniem 5 taktów zegara. Dane są przesyłane przy pomocy kanału DMA. d. DMA Kanał DMA został skonfigurowany tak, aby przesyłać dane odczytywane z przetwornika analogowo cyfrowego i zapisywać w pamięci bez użycia rdzenia mikrokontrolera. Docelowo dane są zapisywane na karcie pamięci.
e. Przetwornik Cyfrowo-Analogowy Jako przetwornik DAC użyty został wbudowany w mikrokontroler 12 bitowy układ. Konfiguracja wykonana została przy pomocy dostarczonych przez producenta bibliotek CMSIS. Dane są podawane bezpośrednio, gdyż układ ma podawać napięcie referencyjne zmieniane tylko na żądanie użytkownika. DAC wykorzystuje licznik TIM6 do synchronicznego wystawiania wartości na wyjście. f. I2C Protokół I2C wykorzystujący wbudowaną bibliotekę CMSIS w projekcie jest ustawiony w standardową konfigurację urządzenia głównego(master). Wykorzystywane będzie głównie do wysyłania danych po magistrali do zewnętrznego przetwornika DAC. g. Liczniki W projekcie do symulowania zależności czasowych użyto specjalizowanego licznika i dedykowanej do niego biblioteki SysTick. Dzięki licznikowi możliwe jest sterowanie opóźnieniem pomiędzy wykonywanymi czynnościami m.in. wystawianiem stanów logicznych przy komunikacji z wyświetlaczem. Wykorzystywany jest też licznik TIM 6 do wyzwalania przetwornika DAC. Szczegółowe opisy peryferii i możliwych konfiguracji można znaleźć w notach katalogowych mikrokontrolera STM32F407VG. Sposoby implementacji i użytkowania bibliotek są opisane w przejrzysty sposób w książce Marka Galewskiego STM32. Aplikacje i ćwiczenia w języku C
6. Zasada działania Układ jest wykorzystywany przy prototypowaniu pracy magisterskiej prowadzonej pod kierownictwem dr Krzysztofa Czuby. Głównym celem projektu jest inicjalizacja i sterowanie zewnętrznym dwu kanałowym przetwornikiem cyfrowo analogowym oraz odczyt dwóch napięć wolnozmiennych(90% czasu DC, ewentualne dryfty). Wyświetlacz ma za zadanie informowanie o prawidłowej pracy programu oraz w celach informacyjnych wyświetlać wartości odczytane z przetworników. Dane z ADC powinny być przesyłane przez DMA do karty pamięci i zapisywane w pliku tekstowym. Zapis danych na kartę pamięci jest głównym celem projektu, ze względu na fakt długoterminowych testów płytki. Jedyną czynnością niezbędną do prawidłowej pracy układu jest włączenie zasilania i włożenie karty pamięci do gniazda. Układ ma automatycznie od momentu włączenia zapisywać dane na karcie pamięci. 7. Stan projektu Każdy z podpunktów był stopniowo implementowany. Czynności zostały wyszególnione poniżej: Uruchomienie licznika SysTick Włączenie przerwań zewnętrznych i implementacja debouncing u Wykorzystanie wyświetlacza z możliwością użycia prostego menu Uruchomienie ADC bezpośrednio oraz z DMA. Uruchomienie DAC z bezpośrednią transmisją danych Implementacja komunikacji I2C z przetwornikiem DAC Uruchomienie SPI do komunikacji z kartą SD Implementacja automatu stanów do obsługi karty pamięci W związku ze znacznym późnieniem wykonania urządzenia wykonawczego do projektu i pracy magisterskiej, nie jest możliwe oddanie projektu w pełni funkcjonalnego.