LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM Strona 1 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004
1.Budowa przetwornika ADC procesora sygnałowego F/C240 Procesor sygnałowy F/C240 posiada 16 wejściowych kanałów analogowych. Kanały te podzielone są na 2 grupy po 8 wejść. Wejścia te przyłączone są do 2 multiplekserów (po 8 kanałów do jednego) do których wyjścia przyłączone są jednostki S&H oraz 10 bitowe przetworniki ADC. Schematyczną budowę torów przetważania ADC przedstawiono na poniższym rysunku: Po zakończeniu przetwarzania wynik kierowany jest do dwupoziomowych kolejek FIFO z których wynik może być odczytywany przez program użytkownika. Przybliżony czas pojedyńczego przetwarzania wynosi 6μs ( 6*10-6 - maksymalna teoretyczna częstotliwość przetwarzania ~167kHz możliwa do uzyskania tylko w trybie ciągłego przetwarzania ). Wynik przetwarzania można opisać wzorem: 2.Obsługa przetwornika ADC procesora sygnałowego F/C240 Obsługę przetwornika ADC można podzielić na kilka części ściśle związanych z budową programu w którym obrabiamy wyniki przetwarzania ADC: inicjalizacja wpis odpowiednikach wartości do rejestrów konfiguracyjnych ADCTRL1 i ADCTRL2 Strona 2 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004
Wyzwalanie przetwarzania może odbywać się programowo, sprzętowo lub automatycznie (jeśli przetworniki pracują w trybie ciągłym). Odczyt wyników przetwarzania może być wyzwalana przez zakończenie przetwarzania i generowanie specjalnego przerwania lub odbywać się w funkcji obsługi innego przerwania (np. zegarowego). Obróbka wyników przetwarzania np. filtorwanie, sterowanie itp. - odbywa się najczęściej w tej samej funkcji co odczyt wyników przetwarzania. Rejestr ADCTRL1 pozwala wybrać kanały przetwornika (ustawić odpowiednio multiplekser) i wyzwolić przetwarzanie oraz zdefiniować Opis: bit 15 Soft bit konfiguracyjny używany tylko w czasie pracy z emulatorem: 0 Zatrzymanie pracy natychmiast gdy bit 14 = 0. 1 Zakończeniu konwersji przed zatrzymaniem pracy emulatora. bit 14 Free - bit konfiguracyjny używany tylko w czasie pracy z emulatorem: 0 Praca zależna od ustawienia bitu 15. 1 Kontynuuj pracę po zatrzymaniu pracy emulatora. bit 13 ADCIMSTART bit powodujący natychmiastowy start konwersji: 0 Brak reakcji - normalna praca. 1 Natychmiast rozpocznij konwersję. bit 12 ADC2EN bit włączania/wyłączania 2 przetwornika ADC. Bit buforowany po zmianie ustawienia efekt jest widoczny dopiero przy następnej konwersji: 0 Przetwornik ADC2 zablokowany (zawartość odpowiedniej kolejki FIFO nie będzie się zmieniać). 1 Przetwornik ADC2 odblokowany. bit 11 ADC1EN bit włączania/wyłączania 1 przetwornika ADC. Bit buforowany po zmianie ustawienia efekt jest widoczny dopiero przy następnej konwersji: 0 Przetwornik ADC1 zablokowany (zawartość odpowiedniej kolejki FIFO nie będzie się zmieniać). 1 Przetwornik ADC1 odblokowany. bit 10 ADCCONRUN bit umożliwiający włączenie trybu ciągłej pracy przetworników ADC. Strona 3 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004
Bit buforowany po zmianie ustawienia efekt jest widoczny dopiero przy następnej konwersji: 0 Brak reakcji - normalna praca. 1 Tryb pracy ciągłej włączony. bit 9 ADCINTEN odblokowanie przerwania, bit definiujący żądanie obsługi przerwania gdy bit 8 = 1: 0 Brak reakcji - normalna praca. 1 Wystąpi żądznie obsługi przerwania gdy bit 8 = 1. bit 8 ADCINTFLAG bit flagi przerwania ADC występuje gdy choć jedno zdarzenie przerwanie wystąpiło. Bit niebuforowany: 0 Zdarzenie żądania obsługi przerwania nie wystąpiło. 1 Zdarzenie żądania obsługi przerwania wystąpiło. bit 7 ADCEOC bit określa stan procesu konwersacji. Bit niebuforowany: 0 Konwersja została zakończona. 1 Konwersja trwa. bity 6 do 4 ADC2CHSEL wybór kanału dla przetwornika ADC2 (ustawienie multipleksera). Bit buforowany po zmianie ustawienia efekt jest widoczny dopiero przy następnej konwersji. 000 Kanał 8. 001 Kanał 9. 010 Kanał 10. 011 Kanał 11. 100 Kanał 12. 101 Kanał 13. 110 Kanał 14. 111 Kanał 15. bity 3 do 1 ADC1CHSEL wybór kanału dla przetwornika ADC2 (ustawienie multipleksera). Bit buforowany po zmianie ustawienia efekt jest widoczny dopiero przy następnej konwersji. 000 Kanał 0. 001 Kanał 1. 010 Kanał 2. 011 Kanał 3. 100 Kanał 4. 101 Kanał 5. 110 Kanał 6. 111 Kanał 7. bit 0 ADCSOC Bit powodujący start przetwornika ADC. Bit buforowany po zmianie ustawienia efekt jest widoczny dopiero przy następnej konwersji. 0 Brak reakcji. Strona 4 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004
1 Rozpocznij konwersie. Rejestr ADCTRL2 Opis: bity 15 11 bity zastrzeżone. Bit 10 ADCEVSOC bit wiążący pracą przetworników ADC z menadżerem zdarzeń (EV). Kiedy bit jest ustawiony na 1 wtedy praca Przetwornika jest zsynchronizowana z sygnałami z EV w ten sposób, że EV może rozpoczynać konwersję automatyczne wykożystując jako sygnał wyzwalający zegary (1,2 lub 3) lub sygnał z detektora sygnałów - wejścia CAP4 procesora. Wybór sygnału pobudzającego zależy od ustawień GPTCON i CAPCON. 0 Praca przetworników (start przetwarzania) nie jest powiązana z sygnałami z EV. 1 Praca przetworników (start przetwarzania) jest powiązana z sygnałami z EV. bit 9 ADCEXTSOC bit konfiguracyjny służący do synchronizacji przetworników ADC z zewnętrznym sygnałem sterującym. Gdy bit jest ustawiony zbocze rosnące sygnału uruchamia przetwarzanie. 0 Brak wpływu sygnału na wejściu ADCSOC procesora na pracę przetworników. 1 Sygnał na wejściu ADCSOC procesora może wyzwalać przetwarzanie. bit 8 bit zastrzeżone. bity 7 6 ADCFIFO2 bity informujące o stanie kolejki FIFO2. Kolejka ta przechowuje dwa ostatnie stany konwersji, zawsze istnieje możliwość odczytania z kolejki tylko 2 ostatnich wyników, należy pamiętać, że odczyt powoduje cofanie licznika kolejki i zmianę stanu bitów ADCFIFO2. 00 Kolejka FIFO2 jest pusta 01 Kolejka FIFO2 zawiera jeden wynik przetwarzania. 10 Kolejka FIFO2 zawiera dwa wyniki przetwarzania. 11 Kolejka FIFO2 zawiera dwa wyniki przetwarzania i następny wynik konwersji został skierowany do kolejki, najstarszy wynik zostanie utracony. bit 5 bit zastrzeżone. bity 4 3 ADCFIFO1 bity informujące o stanie kolejki FIFO1. Kolejka ta przechowuje dwa ostatnie stany konwersji, zawsze istnieje możliwość odczytania z kolejki tylko 2 ostatnich wyników, należy pamiętać, że odczyt powoduje cofanie licznika kolejki i zmianę stanu bitów ADCFIFO1. 00 Kolejka FIFO1 jest pusta Strona 5 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004
01 Kolejka FIFO1 zawiera jeden wynik przetwarzania. 10 Kolejka FIFO1 zawiera dwa wyniki przetwarzania. 11 Kolejka FIFO1 zawiera dwa wyniki przetwarzania i następny wynik konwersji został skierowany do kolejki, najstarszy wynik zostanie utracony. bity 2 0 ADCPSCALE ta grupa bitów definiuje preskaler sygnału taktującego przetwornik ADC w stosunku do głównego sygnału taktującego (zwykle 10MHz, uwaga nie jest to sygnał taktujący jądro procesora 20MHz). 000 preskaler 4 001 preskaler 6 010 preskaler 8 011 preskaler 10 100 preskaler 12 101 preskaler 16 110 preskaler 20 111 preskaler 32 3.Budowa i obsługa przetwornika DAC modułu C240 EVM Moduł C240 EVM został wyposażony w czterokanałowy 12 bitowy przetwornik analogowo cyfrowy, połączony z procesorem sygnałowym za pomocą programowalnych układów GAL. Otrzymano w ten sposób mapowanie kanałów przetwornika DAC w przestrzeni adresowej I/O procesora. Wpisując wartości, które mają być przetworzone na sygnały analogowe (napięciowe) pod odpowiednie adresy pamięci I/O a następnie rozkaz wymuszający przetwarzanie również pod odpowiedni adres pamięci uzyskujemy przetworzenie cyfrowo-analogowe. Adresy w przestrzeni I/O: 0000h adres pod który wpisujemy wartość która ma zostać przetworzona na sygnał analogowy w przetworniku DAC0. 0001h adres pod który wpisujemy wartość która ma zostać przetworzona na sygnał analogowy w przetworniku DAC1. 0002h adres pod który wpisujemy wartość która ma zostać przetworzona na sygnał analogowy w przetworniku DAC2. 0003h adres pod który wpisujemy wartość która ma zostać przetworzona na sygnał analogowy w przetworniku DAC3. 0004h jeśli pod ten adres wpiszemy jakąkolwiek wartość rozpocznie się proces konwersji wartości cyfrowych na wartości analogowe Uwaga! Przy pracy z przetwornikami ADC i DAC należy pamiętać o długości słowa przetwornika. Przetwornik ADC procesorów seri x24x są 10 bitowe, przetwornik DAC modułu C240EVM jest 12 bitowy. Strona 6 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004
Literatura dodatkowa: 1. TMS320F/C240 DSP Controllers Peripheral Library SPRU161C.PDF rozdział 7 2. TMS320C240 DSP Controlers Evaluation Module Technical Reference SPRU248B rozdział 5.3 (w spisie treści rozdział przez pomyłkę oznaczono jako 5.5) Strona 7 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004