Mikrosystemy Pomiarowe i Procesory Sygnałowe

Podobne dokumenty
Ćw. 1 Wprowadzenie: Obsługa mikroprocesorowych modułów, podstawy techniki programowania, obsługa operacji WE/WY

Systemy Pomiarowe Wielkości Fizycznych Ćw. 9. Ćw.9 Badanie mikroprocesorowego przetwornika A/C

Mikrosystemy Pomiarowe i Procesory Sygnałowe

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

Ćw. 12. Akwizycja sygnałów w komputerowych systemach pomiarowych ( NI DAQPad-6015 )

Ćw. 10 Badanie toru przetwarzania C/A w mikrokontrolerach analogowych

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

Start Bity Bit Stop 1 Bit Par Rys. 1

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Parametryzacja przetworników analogowocyfrowych

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Przetworniki AC i CA

projekt przetwornika inteligentnego do pomiaru wysokości i prędkości pionowej BSP podczas fazy lądowania;

Podstawy budowy wirtualnych przyrządów pomiarowych

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

8-bitowe mikrokontrolery ADuC firmy Analog Devices w układach pomiarowych

Wejścia analogowe w sterownikach, regulatorach, układach automatyki

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Przetwarzanie A/C i C/A

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

dokument DOK wersja 1.0

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

1.2. Architektura rdzenia ARM Cortex-M3...16

Uśrednianie napięć zakłóconych

Wstęp Architektura... 13

Pomiary Elektryczne Wielkości Nieelektrycznych Ćw. 7

Rejestratory Sił, Naprężeń.

Przetwarzanie AC i CA

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Program ćwiczenia: SYSTEMY POMIAROWE WIELKOŚCI FIZYCZNYCH - LABORATORIUM

Politechnika Warszawska

Architektura mikrokontrolera MCS51

Państwowa Wyższa Szkoła Zawodowa

Architektura mikrokontrolera MCS51

Zastosowania mikrokontrolerów w przemyśle

Szkolenia specjalistyczne

Instytut Teleinformatyki

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Generator przebiegów pomiarowych Ex-GPP2

POMIARY WYBRANYCH PARAMETRÓW TORU FONICZNEGO W PROCESORACH AUDIO

Oprogramowanie Systemów Pomiarowych

Laboratorium Procesorów Sygnałowych

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

1 Badanie aplikacji timera 555

E-TRONIX Sterownik Uniwersalny SU 1.2

1. Zasilacz mocy AC/ DC programowany 1 sztuka. 2. Oscyloskop cyfrowy z pomiarem - 2 sztuki 3. Oscyloskop cyfrowy profesjonalny 1 sztuka

1. Opis. 2. Wymagania sprzętowe:

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

ĆWICZENIE nr 3. Badanie podstawowych parametrów metrologicznych przetworników analogowo-cyfrowych

Pomiary napięć i prądów zmiennych

TECHNIKA MIKROPROCESOROWA

Zakres wymaganych wiadomości do testów z przedmiotu Metrologia. Wprowadzenie do obsługi multimetrów analogowych i cyfrowych

Katedra Metrologii i Systemów Diagnostycznych Laboratorium Metrologii II. 2013/14. Grupa: Nr. Ćwicz.

ZAAWANSOWANY TIA. Spis treści

WZMACNIACZ OPERACYJNY

ASTOR IC200ALG320 4 wyjścia analogowe prądowe. Rozdzielczość 12 bitów. Kod: B8. 4-kanałowy moduł ALG320 przetwarza sygnały cyfrowe o rozdzielczości 12

Mini Modbus 1AI. Moduł rozszerzający 1 wejście analogowe, 1 wyjście cyfrowe. Wyprodukowano dla

MIKROPROCESORY architektura i programowanie

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

Karta katalogowa V E3XB. Moduł wejść/wyjść Snap. 18 (podzielone na dwie grupy) Typ wejść

Programowanie mikrokontrolerów. 8 listopada 2007

LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

E REJESTRACJA I WIZUALIZACJA

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

Laboratoryjny multimetr cyfrowy Escort 3145A Dane techniczne

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Instytut Teleinformatyki

Imię i nazwisko (e mail) Grupa:

Badanie właściwości multipleksera analogowego

Instrukcja użytkownika ARSoft-WZ1

Instrukcja do oprogramowania ENAP DEC-1

Konfiguracja i programowanie PLC Siemens SIMATIC S7 i panelu tekstowego w układzie sterowania napędami elektrycznymi. Przebieg ćwiczenia

2. Architektura mikrokontrolerów PIC16F8x... 13

SDM-8AO. Moduł rozszerzający 8 wyjść analogowych. wyprodukowano dla

INSTRUKCJA OBSŁUGI systemu pomiarowego

Przetworniki analogowo - cyfrowe CELE ĆWICZEŃ PODSTAWY TEORETYCZNE Zasada pracy przetwornika A/C

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Instytut Teleinformatyki

1. Opis płyty czołowej multimetru METEX MS Uniwersalne zestawy laboratoryjne typu MS-9140, MS-9150, MS-9160 firmy METEX

RS485 MODBUS Module 8AI

Laboratorium Elektroniczna aparatura Medyczna

MPI-8E 8-KANAŁOWY REJESTRATOR PRZENOŚNY

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

MIKROKONTROLERY I MIKROPROCESORY

LABORATORIUM Komputery przemysłowe i systemy wbudowane

ĆWICZENIE LABORATORYJNE. TEMAT: Badanie wzmacniacza różnicowego i określenie parametrów wzmacniacza operacyjnego

RS485 MODBUS Module 8AI

OPIS STEROWNIKA 821B USB

Przetwornik analogowo-cyfrowy

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Mikrokontrolery w mechatronice. Wykład 4

Transkrypt:

WYKAZ ĆWICZEŃ LABORATORYJNYCH Mikrosystemy Pomiarowe i Procesory Sygnałowe ET-DI 1. Omówienie zasad pracy w laboratorium. Wprowadzenie do obsługi minimodułów bazujących na mikrokontrolerach typu ADuC8xx i ADuC70xx (architektura minimodułów, włączanie, obsługa, translator, konsolidator, programowanie i uruchamianie). 2. Kalibracja mikroprocesorowych przetworników A/C (AduC812) 3. Badanie 24-bitowego przetwornika Σ-Δ mikrokonwertera (ADuC824) 4. Mikrosystem szybkiego przetwarzania A/C w trybie DMA (ADuC831) 5. Skalowanie wyników pomiarowych 24-bitowego przetwornika Σ-Δ mikrokonwertera (ADuC834 - pomiar temperatury PT-100)

Wprowadzenie: Obsługa mikroprocesorowych modułów, podstawy techniki programowania, obsługa operacji WE/WY Problemy teoretyczne: Podstawy architektury mikrokontrolerów i mikrokonwerterów pamięć programu, pamięć danych, interfejs komunikacyjny RS-232, moduły programowanych liczników/dzielników, system przerwań. języki programowania mikrokontrolerów analogowych, środowisko programowe, emulatory programowe i sprzętowe obsługa operacji WE/WY, przechwytywanie strumieni danych przy pomocy terminala Program ćwiczenia: 1. Uruchomić mikrokomputer PC system operacyjny WINDOWS XP i zalogować się w systemie jako użytkownik student (bez hasła). 2. W folderze C:\MikroSYS\ założyć unikalny folder dla studenckiej grupy laboratoryjnej (tylko w tym folderze można dokonywać zapisów i modyfikacji własnych plików). 3. Zapoznać się z podstawowymi własnościami mikrokonwerterów ADuc8xx (pliki: AduC8xx.pdf): multiplekser kanałów analogowych, układ T-H, przetwornik A/C, napięcie referencyjne przetwornika, metody transferu danych uzyskiwanych z przetwornika, kanał monitorowania temperatury układu mikrokonwertera, pamięć (organizacja pamięci programu, pamięci danych, pamięci zewnętrznej, rodzaje pamięci, procesor rdzeniowy 8051, podstawowe własności, zegar systemowy, liczniki/dzielniki, porty WE/WY, moduły dodatkowe, zasilanie, urządzenia peryferyjne (moduły transmisji szeregowej, transmisji I 2 C, moduł nadzorcy systemu, moduł kontrolera zasilania), zastosowania modułu mikrokonwertera. 4. Zapoznać się z modułem typu EVAL-KIT ADuC8xx (zasilanie, konfigurowanie pamięci, podłączanie zewnętrznych analogowych sygnałów testowych: sinus, trójkąt, prostokąt)

t 0 1 2 3 4 5 6 7 khz x(t) y(t) U DC A x Reg. f x x1 x10 x100 x1000 oscyloskop Generator / Częstościomierz moduł ADuC831 AI7 AI6 AI5 AI4 AI3 AI2 AI1 AI0 Sensor temp. U REF A GND T/H rdzeń 8051/52 A/C U REF 2.5V RAM zewn. 2kB mikrokomputer UART RS232 Rys. 1. Schemat blokowy układu testowania przetwornika A/C modułu mikrokonwertera ADuC8xx. (a) SW1 & SW3 zwolnione (b) wciśnij SW3 (c) wciśnij SW1 SW1 (RESET=0) SW3 (PSEN=1) SW1 (RESET=0) SW3 (PSEN=0) SW1 (RESET=1) SW3 (PSEN=1) (d) zwolnij SW1 (e) zwolnij SW3 SW1 (RESET=0) SW3 (PSEN=0) SW1 (RESET=0) SW3 (PSEN=1) Rys. 2. Zasada wprowadzenia modułu ADuC8xx w tryb ładowania programu użytkownika (SW1-RESET, SW3-Serial_Download kolejność wciskania i zwalnia przycisków). 5. Uruchomić program komunikacyjny HyperTerminal (ADuC8xx.ht), dostosować port oraz parametry transmisji do współpracy z minimodułem: - kanał komunikacyjny COM1: parametry transmisji (prędkość transmisji- 9600bitów/sek, 8 bitów danych, parzystość/brak, 1 bit stopu, brak sterowania przepływem danych, bufor FIFO z zapewnioną zgodnością z UART em 16550. - konfiguracja terminala ANSI. 6. Uruchomić i zapoznać się z obsługą pakietu programowego μvision2 do edycji, kompilowania, konsolidowania i uruchamiania aplikacji użytkownika w środowisku C- Keil (GS51.pdf) 7. W środowisku μvision2 zweryfikować parametry przetwarzania projektu (kompilacja, konsolidacja, hex-konwersja) stosując poniższe parametry: - opcje kompilacji C51 CD SB DB OE ROM(Small) Large - opcje konsolidacji BL51 NOOL RS(256) PL(68) PW(78) CO(0)

8. Załadować i uruchomić własny projekt Cw1_8xx.uv2 zawierający pojedynczy moduł programu Cw1_8xx.c. W pliku źródłowym ustalić sekcje: definicji typu mikrokroprocesora zakresu dostępnych zasobów pamięci RAM/ROM zmiennych predefiniowanych zmiennych globalnych programu procedur WE/WY (#include <stdio.h>) aktywowania kanału komunikacynego np.: CFG831=0x11; // Uaktywnij pamiec 2kB pamieci RAM jako XDATA // KONFIGURACJA portu transmisji szeregowej - UART T3CON=0x085; // specjalizowany licznik L3 T3FD= 0x08; // szybkość transmisji 9600baud SCON = 0x052; printf("%ctestowanie PRZETWORNIKA A/C \n", 0x0C); 9. Przeprowadzić proces załadowania opracowanego modułu programowego (downloading) *.hex przy pomocy programu WSD.EXE (ustalić parametry downloadingu związane z parametrami kanału komunikacyjnego oraz zakresu procedur czyszczenia pamięci FlashEE). 10. Przetestować działanie: procedury restartu mikrokonwertera (wciśnięcie przycisku RESET), instrukcji scanf i wprowadzanie danych w zapisie: tekstowym i całkowitoliczbowym w postaci dziesiętnej i heksadecymalnej, instrukcji printf i wyprowadzanie danych w zapisie: tekstowym i całkowitoliczbowym w postaci dziesiętnej i heksadecymalnej, obsługi przycisku kontrolnego INT0 (powiązać działanie przycisku zobsługą przerwania sprzętowego) obsługi jednobitowych wskaźników typu LED

Rys. 3. Schemat blokowy mikrokonwertera AduC 831. f sampl sygnał wyzwalający przetwornik A/C Rys. 4. Schemat blokowy zegara/licznika-l2 pracującego w 16-bitowym trybie auto-przeładowania i generującego sygnał wyzwalania przetwornika A/C.

Przykładowy program obsługi mikrokonwertera: (kolorem szarym zaznaczono linie źródłowe związane z zadawaniem częstości próbkowania) #include <ADuC831.h> // predefiniowane symbole ADuC831 #include <stdio.h> #define SENSTEMP 8 // kanal 8 #define DMASTOP 15 // DMA-> STOP #define DZ 18 // dzielnik Licznika2, zadawanie częstotliwości próbkowania // ZMIENNE DEFINIOWANE W WEWNETRZNEJ PAMIECI RAM idata int xdata *ptr; idata int num; bdata bit C; sbit P32 = P3^2; // linia INT0 = Port3.2 - przelacznik Int0 sbit LED = P3^4; // dioda LED idata unsigned char ch; // numer przetwarzanego kanalu xdata int DMASTART[1024]; // segment pamieci dla przeslan DMA // Procedura obslugi przerwania generowanego sygnalem ADCI z przetw. ADC void end_of_adc(void) interrupt 6 { // int_6*8+3 = 51dec = 33hex = ADCI TR2=0; // zakoncz wyzwalanie przetwornika C=0; // zeruj wskaznik // Procedura obslugi przerwania generowanego sygn. zewnetrznym INT0 // W obsludze tego przerwania realizujemy pomiar temperatury void interrupt_0 () interrupt 0 { int T; ADCCON1 = 0x80; ADCCON2 = SENSTEMP; for (T=0; T<100; T++) ; SCONV = 1; while (!ADCI); T=((ADCDATAH & 0x0F) * 256) + ADCDATAL; ADCCON1=0x00; printf ( "\ntemperatura binarnie = %u bit",t ); // wlaczenie zasilania przetwornika // wlaczenie sensora temp. // opoznienie programowe // rozkaz pojedynczej konwersji // oczekiowanie na zakonczeniu konwersji SCCONV<=0 // odbior wyniku przetwarzania // wylaczenie zasiolania przetwornika // wyswietlenie binarnej wartosci wyniku przetwarzania A/C main() { int i, DMACOUNT; CFG831=0x11; // Uaktywnij pamiec 2kB pamieci RAM jako XDATA // KONFIGURACJA portu transmisji szeregowej - UART T3CON=0x085; // specjalizowany licznik L3 T3FD= 0x08; // szybkość transmisji 9600baud SCON = 0x052; printf("%ctestowanie PRZETWORNIKA A/C \n", 0x0C); printf("\nwprowadz numer kanalu przetwarzania A/C (0-15):?"); // Numer przetwarzaniego kanalu scanf ("%bd", &ch); ch&=0xf; // liczba: od 0 do 14 printf("\npodaj liczbe probek sygnalu pomiarowego DMACOUNT:?"); // Liczba próbek mierzonego sygnału scanf ("%u", &DMACOUNT); printf("\nwybrales kanal nr=%bd i N=%d probek sygnalu badanego", ch, DMACOUNT); // PRE-KONFIGURACJA zewnetrznej RAM dla DMA w pojedynczym kanale for(i=0; i<dmacount; i++) DMASTART[i] = ch << 12; DMASTART[i]=DMASTOP << 12; // Zancznik konca bloku danych pomiarowych: Stop DMA for (i=0; i<=dmacount; i++) { // Wydruk kontrolny prekonfigurowanego obszaru RAM if (i % 8 ==0) printf("\n"); printf("%3d=%04x ", i, DMASTART[i] ); // KONFIGURACJA ADC dla konwersji typu DMA... DMAL=0; // adres inicjujacy kanal operacji DMA DMAH=0; DMAP=0; // koniecznie w takim porzadku: DMAL, DMAH, DMAP) TL2,TH2=0; // Fsys=11059200Hz

RCAP2L=0x10000-DZ; RCAP2H=(0x10000-DZ)>>8; ADCCON1=0x9E; ADCCON2=0x40; C=1; EA=1; EADC=1; TR2=1; // Tosc=12/Fosc -> 1.085us // okres probkowania = T2 =(DZ*1.085us) // [RCAP2H,RCAP2L]= 65536 - DZ // tryb zasilania -> normaly // tryb przesylania danych -> DMA // wyzwalanie przetwornika -> Timer2 // lokany wskaznik warunku // globalne zezwolenie obslugi przerwan // zezwolenie obslugi przerwan przetwornika ADC // zezwolenie na prace licznika L2 // Trwa konwersja i przesylanie danych DMA // kiedy transmisja DMA jest kompletna, przetwornik ADC generuje // przerwanie i zeruje bit C while (C); // wynik przetwarzania ADC jest juz dostepny w RAM EA=0; // wstrzymana obsluga przerwan - globalnie EADC=0; // wstrzymana obsluga przerwan od przetwornika A/C ADCCON1=0x00; // zasilanie przetwornika wylaczone for(i=0; i<=dmacount; i++) { // wydruk kontrony zawartosci pamieci RAM if (i % 8== 0) printf("\n"); printf("%3d=%04x ", i, DMASTART[i] ); // wydruk kontrolny w postaci slupka danych for(i=0; i<=dmacount; i++) printf("\n%4u ", DMASTART[i] & 0x0FFF ); printf("\n"); IT0=1; // zezwolenie na obsluge przerwania 0 EA=1; // zezwolenie na obsluge przerwan EX0=1; // zezwolenie na obsluge przerwania zewnetrznego INT0 (przycisk) printf("\nczekam na INT0\n"); while(1) { for (i=0; i<30000; i++) ; LED = ~LED ; // KONIEC // Test przetwarzania w trybie pojedynczej konwersji A/C // opoznienie programowe // negacja stanu wysterowania diody LED na przeciwny (panel hyperterminala) PRZYKŁADOWE WYNIKI TESTOWANIE PRZETWORNIKA A/C Wprowadz numer kanalu przetwarzania A/C (0-15):?0 Podaj liczbe probek sygnalu pomiarowego DMACOUNT:?128 Wybrales kanal nr=0 i N=128 probek sygnalu badanego 0=0000 1=0000 2=0000 3=0000 4=0000 5=0000 6=0000 7=0000 8=0000 9=0000 10=0000 11=0000 12=0000 13=0000 14=0000 15=0000... 112=0000 113=0000 114=0000 115=0000 116=0000 117=0000 118=0000 119=0000 120=0000 121=0000 122=0000 123=0000 124=0000 125=0000 126=0000 127=0000 128=F000 0=05C9 1=0535 2=04A7 3=0424 4=03AB 5=033F 6=02E4 7=029D 8=0262 9=0236 10=021B 11=020A 12=0220 13=0242 14=0271 15=02B1... 120=038C 121=0400 122=0482 123=050E 124=05A1 125=0639 126=06D3 127=0000 128=F000... 1154 1294 1441 1593 1747... Czekam na INT0 Temperatura binarnie = 1064 bit Temperatura binarnie = 1064 bit Temperatura binarnie = 1064 bit...

Przykłady inicjalizacji portów transmisji szeregowej dla wybranych typów mikrokontrolerów analogowych #ifdef ADuC831 CFG831=0x01; // Uaktywnij pamiec 2kB pamieci RAM jako XDATA T3CON=0x085; // KONFIGURACJA portu transmisji szeregowej - UART T3FD=0x08; SCON=0x052; #endif #ifdef ADuC812 // KONFIGURACJA portu transmisji szeregowej - UART SCON = 0x52; // 8bit, nieparzystosc, 1 bit stopu TMOD = 0x20; // konfiguracja Timer1.. TH1 = 0xFD; //..dla predkosci transmisji 9600[b/s] (baud) TR1 = 1; #endif #ifdef ADuC834 CFG834=0x01; // Uaktywnij pamiec 2kB pamieci RAM jako XDATA T3CON = 0x82; T3FD = 0x12; SCON = 0x52; #endif #ifdef ADuC824 RCAP2H=0xFFh; // config UART for 9830baud RCAP2L=-5; // (close enough to 9600baud) TH2=0xFFh; TL2=-5; SCON=0x52h; T2CON=0x34h; #endif

Ćw. 2 Kalibracja mikroprocesorowych przetworników A/C (AduC812) 1. Zapoznać się z dokumentacją techniczną mikrokonwertera dotyczącą procedur kalibracji przetwornika A/C: a. podstawowe własności modułu przetwarzania A/C przetwornika (ADC CIRCUIT INFORMATION str.12-18 dokumentacji technicznej AduC812.pdf), b. uwaga techniczna C005.pdf 2. Zapoznać się z procedurami kalibracji w pliku 812cal.asm: a. procedura kalibracji przesunięcia zera: CALZEROSCALE b. procedura kalibracji wzmocnienia (skalowania): CALFULLSCALE c. procedury pomocnicze kalibracji: CONV10ZS d. program kalibracji przetwornika AduC812 -> 812cal00.c 3. W środowisku programowym μvision51 (C-Keil 5.20) przygotować program kalibracji przetwornika 812cal00.asm. 4. Przeprowadzić procedury kalibracji zera w kanale pomiarowym 1 napięcie 0V (V REF-) zrealizować zakładając zworkę J1: 3-4 5. Przeprowadzić procedury kalibracji wzmocnienia w kanale pomiarowym 1 napięcie pełnej skali uzyskamy wykonując zworkę J1: 3 21. 6. Zapoznać się z metodami wykorzystania procedur kalibracji w programach użytkownika: a. generacja aktualnych współczynników kalibracji i zapamiętanie ich w nieulotnej pamięci Flash/EE b. procedura przepisania współczynników kalibracji po restarcie systemu z obszaru Flasz/EE c. przeprowadzić pomiary testowych sygnałów z wykorzystaniem aktualnych współczynników kalibracji (program DMA.c) 7. Przy pomocy kalibratora technicznego (Celmet model C405) przeprowadzić skalowanie i werefikację charakterystyki statycznej dla wartości napięcia; 0,5000V 1,0000V, 1,5000V, 2,0000V, 2,4500V. Określić błąd przetwarzania wykorzystując dane katalogowe modułu przetwornika A/C. Rys. Schemat złącza sygnałowego pakietu testowego AduC812

Ćw. 3. Badanie 24-bitowego przetwornika Σ-Δ mikrokonwertera (ADuC824) 1. Zapoznać się z dokumentacją techniczną mikrokonwertera ADuC824 opisującą budowę przetworników, zasadniczego 24-bitowego i pomocniczego 16-bitowego, zestaw rejestrów i znaczenie bitów sterujących i kontrolnych: ADSTAT rejestr statusu przetwornika ADCMODE rejestr trybu pracy przetwornika AD0CON rejestr sterujący przetwornika głównego AD1CON rejestr sterujący przetwornika pomocniczego SF rejestr filtru decymującego Sinc3 (kontrola szybkości przetwarzania) ICON rejestr sterujący źródła prądowego ADC0L/M/H 24-bitowy rejestr rezultatu przetwarzania przetwornika głównego ADC1L/H 16-bitowy rejestr rezultatu przetwarzania przetwornika pomocniczego OF0L/M/H 24-bitowy współczynnik kalibracji przesunięcia zera przetw. głównego OF1L/H 16-bitowy współczynnik kalibracji przesunięcia zera przetw. pomocniczego GN0L/M/H 24-bitowy współczynnik kalibracji wzmocnienia przetw. głównego GN1L/H 16-bitowy współczynnik kalibracji wzmocnienia przetw. pomocniczego Zaznaczyć w sprawozdaniu charakterystyczne bity słów kontrolnych przetwornika. Narysować i szczegółowo opisać charakterystykę torów pomiarowych przetwornika głównego i pomocniczego. Przedstawić istotne (wybrane) parametry metrologiczne torów przetwarznia A/C i C/A. Rys. 1. Schemat funkcjonalny mikrokonwertera ADuC824. 2. Zapoznać się z metodą i sposobem podłączanie sygnałów pomiarowych do mikrokonwertera (wejście różnicowo-napięciowe, sygnały unipolarne i bipolarne, zewnętrzne i wewnętrzne zwarcie obwodów wejściowych). 3. Zapoznać się z możliwościami konfiguracji pracy mikrokonwertera przy wykorzystaniu przełącznika DIP-S1 na płytce EvalBoard (dokumentacja: 824EvalGuide_B.pdf)

4. Zapoznać się z techniką zadawania częstości próbkowania w torach przetwarzania A/C (rejestr SF filtr decymujacy Sync3) i przeanalizować sposoby określania częstotliwości próbkowania sygnałów pomiarowych. 5. Zapoznać się z działaniem programu WASP. Dokonać weryfikacji zmian parametrów programu WASP dotyczących: wyboru trybu pracy przetworników, wyboru źródeł referencyjnych, ustawienia multiplekserów sygnałów wejściowych, wyboru zakresu pomiarowego (wzmocnienie toru pomiarowego). 5. Zrealizować kilka serii pomiarów dla: wewnętrzne/zewnętrzne źródło referencyjne, tryb unipolarny/bipolarny pracy przetwornika, mała/duża szybkość próbkowania. W oparciu o zebrane wyniki dokonać oceny pracy przetworników głównego i pomocniczego. 6. Przeanalizować działanie programu 824uart.c : #include <aduc824.h> #include <stdio.h> sbit LED=P3^4; // linia P3.4 steruje diodą LED // void end_of_adc(void) interrupt 6 { LED=!LED; printf("\n%02bx%02bx%02bx",ad0h, AD0M, AD0L); RDY0=0; //==================================================================== void main() { // KONFIGURACJA UART... RCAP2H=0xFF; RCAP2L=-5; TH2=0xFF; TL2=-5; SCON=0x52; T2CON=0x34; // config UART for 9830baud // (close enough to 9600baud) // KONFIGURACJA PRZETWORNIKA ADC I START KONWEERSJI.. SF=200; // 6.8266667Hz ADC szybkosc przetwarzania AD0CON=0x45; // Vref - ext, AIN1-AIN2, bipolar, ±640mV 0100 0101 EADC=1; // zezwolenie zglaszania przerwan przetwornikow ADC EA=1; // zezwolenie obslugi przerwan ADMODE=0x23; // ciagly tryb konwersji // OCZEKIWANIE NA PRZERWANIE... while (1) ; 7. Zapoznać się demonstracyjnym układem do pomiaru temperatury otoczenia z czujnikiem RTD. Zaproponować algorytm obsługi przetwornika do pomiaru temperatury.

Rys. 2. Panel sterujący programu WSAP.

Ćw. 4 Mikrosystem szybkiego przetwarzania A/C w trybie DMA (ADuC831) Problemy teoretyczne: Podstawy architektury mikrokontrolerów i mikrokonwerterów pamięć programu, pamięć danych, interfejs komunikacyjny RS-232, moduły programowanych liczników/dzielników, system przerwań. Teoria próbkowania i kwantowania sygnałów analogowych. Zasada działania przetwornika A/C z równoważeniem wagowym (sukcesywna aproksymacja). Program ćwiczenia: 11. Uruchomić mikrokomputer PC system operacyjny WINDOWS ME w trybie użytkownika student (bez hasła). 12. W folderze C:\KSP\ założyć unikalny folder dla studenckiej grupy laboratoryjnej (tylko w tym folderze można dokonywać zapisów i modyfikacji własnych plików). 13. Zapoznać się z podstawowymi własnościami mikrokonwertera ADuC812 (plik ADuC812.pdf): multiplekser kanałów analogowych, układ T-H, przetwornik A/C, napięcie referencyjne przetwornika, metody transferu danych uzyskiwanych z przetwornika, kanał monitorowania temperatury układu mikrokonwertera, pamięć (organizacja pamięci programu, pamięci danych, pamięci zewnętrznej, rodzaje pamięci, procesor rdzeniowy 8051, podstawowe własności, zegar systemowy, liczniki/dzielniki, porty WE/WY, moduły dodatkowe, zasilanie, urządzenia peryferyjne (moduły transmisji szeregowej, transmisji I 2 C, moduł nadzorcy systemu, moduł kontrolera zasilania), zastosowania modułu mikrokonwertera. 14. Zapoznać się z modułem typu EVAL-KIT ADuC812 (zasilanie, konfigurowanie pamięci przez ustawianie zworek, podłączanie sygnałów testowych: sinus, trójkąt, prostokąt) (plik 812pcb.pdf) AI7 AI6 AI5 AI4 AI3 AI2 AI1 AI0 8 Sensor temp. moduł ADuC812 T/H U REF rdzeń 8051/52 A/C RAM zewn. 32kB mikrokomputer Gen LK7 UART RS232 Rys. 3. Schemat blokowy układu testowania przetwornika A/C modułu mikrokonwerttera ADuC812. 15. Uruchomić program komunikacyjny HyperTerminal (ADuC812.ht), dostosować port oraz parametry transmisji do współpracy z minimodułem: - kanał komunikacyjny COM1: parametry transmisji (prędkość transmisji- 9600bitów/sek, 8 bitów danych, parzystość/brak, 1 bit stopu, brak sterowania przepływem danych, bufor FIFO z zapewnioną zgodnością z UART em 16550.

- konfiguracja terminala ANSI. 16. Uruchomić i zapoznać się z obsługą pakietu programowego μvision2 do edycji, kompilowania, konsolidowania i uruchamiania aplikacji użytkownika w środowisku C- Keil 6.20 (GS51.pdf) 17. Załadować i uruchomić wzorcowy projekt fast.uv2 zawierający pojedynczy moduł programu fast.c. Zapoznać się z postacią źródłową programu. Przedstawić algorytm programu w formie grafu, wskazać fragmenty kodu odpowiedzialne za przygotowanie modułu do konwersji A/C i wyjaśnić znaczenie parametrów przekazywanych do rejestrów wewnętrznych mikrokonwertera. 18. Dokonać modyfikacji programu fast.c tak, aby częstość próbkowania sygnałów analogowych wynosiła x=hz (x-wartość podana przez prowadzącego laboratorium); liczbę próbek mierzonych wielkości ustalić każdorazowo na wartość N=256. W sprawozdaniu przeprowadzić analizę doboru częstości próbkowania związaną z doborem odpowiednich wartości dzielnika częstotliwości systemowej zegara/licznika L2 (Częstotliwość zegara systemowego rdzenia wynosi Fclk=11059200Hz) zwrócić uwagę na lokalizację kompilowanych plików i jej wyników. 19. Określić w szybkość bitową przetwornika, częstość próbkowania i czas konwersji przetwornika A/C. 20. W środowisku μvision2 przeprowadzić realizację projektu (kompilacja, konsolidacja, hex-konwersja) stosując poniższe parametry: - opcje kompilacji C51 CD SB DB OE ROM(Small) Large - opcje konsolidacji BL51 NOOL RS(256) PL(68) PW(78) CO(0) 21. Dokonać zmiany konfiguracji pamięci programu minimodułu przy pomocy zworki LK3 (PSEN Pulldown) pozycja zwarta i przy pomocy programu HyperTerminal (na pulpicie skrót: AduC812.ht) załadować binarną wersję przygotowanego programu (fast.hex) do pamięci programu (typ Flash/EE) mikrokontrolera (proces down-loadingu). zewrzeć zworkę LK3, wcisnąć przycisk RESET minimodułu minimoduł zgłasza się komunikatem na pulpicie HyperTerminala: ADuC812 krl wysłać plik fast.hex do minimodułu (zakładka Transfer -> Wyślij plik tekstowy... -> Nazwa_pliku (fast.hex), podczas transmisji każdy poprawnie przetransmitowany rekord potwierdzany jest wyświetleniem znaku. Rozewrzeć zworkę LK3, wcisnąć przycisk RESET minimodułu - uruchomienie załadowanego programu. 22. Przy pomocy programu HyperTerminal odebrać i zarejestrować do plików tekstowych wyniki przetwarzania. Zrealizować 3 procesy rejestracji dla kanału pomiarowego Ain=0 dla sygnałów analogowych uzyskiwanych z generatora minimodułu: LK7 (1-2) przebieg piłokształtny, LK7 (3-4) przebieg prostokątny, LK7 (5-6) przebieg sinusoidalny. Do rejestrowania wyników pomiarów wykorzystać funkcję Transfer/Przechwyć tekst/plik.txt programu Hyperterminala. 23. Opracować wyniki pomiarów poprzez przeniesienie danych ze schowka HyperTerminala np. do aplikacji EXCEL, dokonać konwersji wyników z postaci binarnej do wielkości fizycznej (napięcie, temperatura), wyniki przedstawić w postaci graficznej w jednostkach fizycznych wielkości mierzonych (napięcie [V] lub [mv], czas [s], [ms] lub [μs]). Na podstawie przeprowadzonych pomiarów dokonać oceny podstawowych parametrów mierzonych sygnałów (amplituda, wartość średnia, wartość skuteczna, wartość maksymalna, czas obserwacji, okres, częstotliwość, współczynnik wypełnienia).

24. Zarejestrować kilka pomiarów temperatury wewnętrznego czujnika temperatury mikrokonwertera (kolejne wciśnięcia przyciski INT pakietu minimodułu). Dokonać konwersji binarnego wyniku przetwarzania do wielkości fizycznej temperatury mierzonej w stopniach Celsjusza (niezbędne dane do przeprowadzenia konwersji związane z budową czujnika temperatury przedstawiono na rys. 3 - dokumentacja ADuC812.pdf). Przeprowadzić analizę uzyskanych wyników pomiaru. Rys. 4. Charakterystyka przetwarzania przetwornika A/C mikrokonwertera ADuC812. [ C] -3mV/ C 25 C 600mV U [mv] Rys. 5. Parametry wewnętrznego czujnika temperatury mikrokonwertera AduC812. 25. Zrealizować procedurę restartu mikrokonwertera (wciśnięcie przycisku RESET) z jednoczesnym podtrzymywaniem wciśniętego przycisku INT. Zaobserwować w wersji źródłowej programu realizowane dodatkowe ścieżki pobierania 4 bajtów z pamięci Flash/EE do rejestrów ADCOFS i rejestru ADCGAIN (rejestry kalibracji przetwornika). 26. Powtórzyć p.14 pomiarów, porównać i przeanalizować uzyskane wyniki. 27. Zaproponować algorytmy pomiarowe obliczania wartości średniej i skutecznej napięcia dla N-próbek sygnału cyfrowego. Literatura: 1. Z.Kulka, A.Libura, M.Nadachowski: Przetworniki analogowo-cyfrowe i cyfrowoanalogowe. WKiŁ, Warszawa 1987 2. Rudy van de Plassche: Scalone przetworniki analogowo-cyfrowe i cyfrowo-analogowe. WKiŁ, Warszawa 2001. 3. ADuC812, MicroConwerter TM, Multichannel 12-Bit ADC with Embedded FLASH MCU, Analog Devices, Rev.0, (plik: ADuC812.pdf) 4. MicroConverterTM QuickStartTM, Applications Board User, ADuC812 52PQFP applications board user guide, V3, (plik: 812pcb.pdf)

Pomiary wartości DC/RMS DC wartość średnia Poziom DC sygnału analogowego dla sygnału analogowgo RMS wartość skuteczna dla sygnału cyfrowego dla sygnału analogowego dla sygnału cyfrowego FFT transformata Fouriera

Rys. 6. Schemat blokowy mikrokonwertera ADuC 812. 2 f sampl sygnał wyzwalający przetwornik A/C Rys. 5. Schemat blokowy zegara/licznika-l2 pracującego w 16-bitowym trybie auto-przeładowania i generującego sygnał wyzwalania przetwornika A/C. Rys.6. Fragment schematu ilustrujący połączenia demonstracyjnego obwodu do pomiaru temperatury wraz z przełącznikiem DIP-S1.

Przykładowy program obsługi mikrokonwertera: (kolorem szarym zaznaczono linie źródłowe związane z zadawaniem częstości próbkowania) #include <ADuC812.h> // predefiniowane symbole ADuC812 #include <stdio.h> #define SENSTEMP 8 // kanal 8 #define DMASTOP 15 // DMA-> STOP #define DZ 18 // dzielnik Licznika2 #define DMACOUNT 256 // liczba przeslan DMA z przetwornika A/C // ZMIENNE DEFINIOWANE W WEWNETRZNEJ PAMIECI RAM idata int xdata *ptr; idata int num; bdata bit C; sbit P32 = P3^2; // linia INT0 = Port3.2 - przelacznik Int0 sbit LED = P3^4; // dioda LED idata unsigned char ch; // numer przetwarzanego kanalu xdata int DMASTART[ DMACOUNT + 1]; // rezerwacja bufora pamieci dla przeslan DMA // Procedura obslugi przerwania generowanego sygnalem ADCI z przetw. A/C void end_of_adc(void) interrupt 6 { // int_6*8+3 = 51dec = 33hex = ADCI TR2=0; // zakoncz wyzwalanie przetwornika C=0; // zeruj wskaznik // Procedura obslugi przerwania generowanego sygn. zewnetrznym INT0 // W obsludze tego przerwania realizujemy pomiar temperatury void interrupt_0 () interrupt 0 { int T; ADCCON1 = 0x6C; // wlaczenie zasilania przetwornika ADCCON2 = 0x00 SENSTEMP; // wlaczenie sensora temp. ADCCON3 = 0; SCONV = 1; // rozkaz pojedynczej konwersji while (!ADCI); // oczekiowanie na zakonczeniu konwersji SCCONV<=0 T=((ADCDATAH & 0x0F) * 256) + ADCDATAL; // odbior wyniku przetwarzania // tu pojawia sie komunikat ostrzezenia podczas kompilacji... // kto wie dlaczego?? printf ("\ntemperatura binarnie = %u bit",t ); main() { int i; // program analizuje stan przycisku INT0 // jesli wcisniety - to pobranie wspolczynnikow kalibracji uzytkownika // jesli nie wcisniety - to pobranie wspolczynnikow kalibracji producenta if (P32==0) { EADRL=0; // wskaznik segmentu pamieci Flash/EE ECON=1; // czytaj dane ze strony 0 do EDATA1,2,3,4 ADCOFSL=EDATA1; // wpisz nowe wspolczynniki kalibracji A/C... ADCOFSH=EDATA2; ADCGAINL=EDATA3; ADCGAINH=EDATA4; ch=0; // tu wybieramy Nr kanalu do przetwarzania A/C // KONFIGURACJA portu transmisji szeregowej - UART SCON = 0x52; // 8bit, nieparzystosc, 1 bit stopu TMOD = 0x20; // konfiguracja Timer1.. TH1 = 0xFD; //..dla predkosci transmisji 9600[b/s] (baud) TR1 = 1; // PRE-KONFIGURACJA zewnetrznej RAM dla DMA for(i=0; i<dmacount; i++) DMASTART[i] = ch << 12; DMASTART[i]=DMASTOP << 12; // Stop DMA // identyfikator cwiczacej grupy printf("%claboratorium KSP\n", 0x0C); // weryfikacja pre-konfigurowanego obszaru RAM for (i=0; i<=dmacount; i++) {

if (i % 8 ==0) printf("\n"); printf("%3d=%04x ", i, DMASTART[i] ); // KONFIGURACJA ADC dla konwersji typu DMA... DMAL=0; // adres inicjujacy kanal operacji DMA DMAH=0; DMAP=0; // koniecznie w takim porzadku: DMAL, DMAH, DMAP) TL2=0; TH2=0; // OKRESLENIE CZESTOSCI PROBKOWANIA // Fsys=11059200Hz // Tosc=12/Fosc -> 1.085us RCAP2L=0x10000-DZ; RCAP2H=(0x10000-DZ)>>8; ADCCON2=0x40; // tryb przesylania danych -> DMA ADCCON1=0x62; // tryb zasilania -> normaly // Uruchomienie sprzetu... system przerwan, licznik L2 C=1; // lokany wskaznik EA=1; // globalne zezwolenie obslugi przerwan EADC=1; // zezwolenie obslugi przerwan przetwornika ADC TR2=1; // zezwolenie na prace licznika L2 // Teraz trwa konwersja i przesylanie danych bezposrednio do RAM // kiedy transmisja DMA jest kompletna, przetwornik ADC generuje // przerwanie i zeruje bit C while (C); // nieskonczona petla??? // wynik przetwarzania ADC jest juz dostepny w RAM // okres probkowania = 2 * T2 =2*(DZ*1.085us) // [RCAP2H,RCAP2L]= 65536 - DZ EA=0; EADC=0; // wstrzymana obsluga przerwan - globalnie // wstrzymana obsluga przerwan od przetwornika A/C ADCCON1=0x20; // zasilanie przetwornika wylaczone // wydruk kontrolny zawartosci pamieci RAM for(i=0; i<=dmacount; i++) { if (i % 8== 0) printf("\n"); printf("%3d=%04x ", i, DMASTART[i] ); printf("\n"); // wydruk kontrolny w postaci slupka danych for(i=0; i<=dmacount; i++) printf("\n%4u ", DMASTART[i] & 0x0FFF ); printf("\n"); // i jeszcze na koniec... IT0=1; // zezwolenie na obsluge przerwania 0 EA=1; // zezwolenie na obsluge przerwan EX0=1; // zezwolenie na obsluge przerwania zewnetrznego INT0 (przycisk) // mruganie diody LED while(1) { for (i=0; i<10000; i++) ; LED = ~LED ; // KONIEC PRZYKŁADOWE WYNIKI (panel hyperterminala) LABORATORIUM KSP 0=1000 1=1000 2=1000 3=1000 4=1000 5=1000 6=1000 7=1000 8=1000 9=1000 10=1000 11=1000 12=1000 13=1000 14=1000 15=1000 16=1000 17=1000 18=1000 19=1000 20=1000 21=1000 22=1000 23=1000 24=1000 25=1000 26=1000 27=1000 28=1000 29=1000 30=1000 31=1000 Temperatura binarnie = 804 bit Temperatura binarnie = 807 bit Temperatura binarnie = 814 bit Temperatura binarnie = 812 bit

Ćw. 5 Skalowanie wyników pomiarowych 24-bitowego przetwornika Σ-Δ mikrokonwertera (ADuC834 - pomiar temperatury PT-100 Układ demonstracyjny do pomiaru temperatury - czujnik RTD (resistive temperature detectors) zakres pracy (-200 C do +800 C), duża dokładność przykł. RTD Klasy B wg normy IEC: 100Ω±0.12% w 0 C, Klasa A: ±0.15% w 0 C współczynnik temp. zmian rezyst.: R100 R0 gdzie: R 100 rezystancja w 100 C 100 R R 0 rezystancja w 0 C 0 α=0,00385 C -1 w normach amerykańskich α=0,003 92 Ω/ Ω/ C jako jednostkę podaje się też α [Ω/ Ω/ C] do obliczeń stosuje się wartość dokładną: α = 0,00385055 C -1 Konwersja rezystancji na temperaturę: 2 R0 1 A B C 100 3 R t wg Keithley 2 3 R t R 1 A B C wg PN-EN 6-751+A1+A2 0 100 dla temp. > 0 C przyjmuje się wsp. C=0 R R 2 A B t 0 1 W układach pom. gdzie R t jest określane poprzez I R i U R : 2U R IRR0 IR, U R 2 2 I R [ A A 4BU I R / I R ] W układach pom. gdzie R t jest określane bezpośrednio: 2 A A 4BRt R0 1 R t R 0 Współczynniki Callendar-Van Duser wielomianu R t=f( ) wsp. Standard temperaturowy A [C -1 ] B[C -2 ] C * [C -3 ] lub [C -4 ] (α) DIN 43760 0,003850 3,9080 10-3 -5,8019 10-7 -4,2735 10-12 American 0,003911 3,9692 10-3 -5,8495 10-7 -4,2325 10-12 ITS-90 0,003926 3,9848 10-3 -5,8700 10-7 -4,0000 10-12 PN-EN 60751 0,00385055 3,9083 10-3 -5,7750 10-7 -4,1830 10-12 * dla temp. > 0 C przyjmuje się wsp. C=0 2B R R 0 R 0

AVDD ADuC83x IEXC1 Źródło prądowe AIN1 R t AIN2 MUX BUF PGA PRIMARY 24-BIT Δ ADC R REF REFIN+ REFIN- External V REF Detect Rys. 3. Pomiar rezystancji z wykorzystaniem napięcia referencyjnego jako wartości proporcjonalnej do prądu. Procedura obliczenia wartości rezystancji R t: W aplikacji ADuC824, ADuc834 R REF=5,62kΩ±0.1% R t DR 2 REF N Termistory Równanie Steinhart-Hart a: 1 A BlnR Cln 3 [ K] t R t gdzie: A, B, C wsp. określone przez producenta Rys. 4. Fragment schematu ilustrujący połączenia demonstracyjnego obwodu do pomiaru temperatury wraz z przełącznikiem DIP-S1.

P1.2/DAC/IEXC1 P1.3/IEXC/AIN5 1 I2PIN 0 1 I1PIN 0 IEXEC1 IEXEC2 200µA 200µA I2EN I1EN P1.7/DAC/AIN4 1 0 BUF 12-bit DAC P1.4/AIN1 P1.5/AIN2 P1.6/AIN3 AIN1 AIN2 AIN3 AIN4 AIN3 AIN2 AIN2 AIN2 + - BUF PGA Rys. 5. Model programowy obwodów wejściowych mikrokonwerterów Σ/Δ.