background image

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 

background image

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 

background image

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 

background image

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 

background image

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 

background image

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 

background image

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