(7) Mikrokontrolery MSP430: obsługa ADC

W artykule przedstawiamy podstawy obsługi przetwornika A/C wbudowanego w mikrokontrolery MSP430FR5739. Prezentowany przykład został zrealizowany na bazie modułu startowego LaunchPad MSP-EXP430FR5739, który wyposażono w mikrokontroler z pamięcią FRAM.

Galeria zdjęć zestawu MSP-EXP430FR5739 jest dostępna pod adresem.

W mikrokontrolerach MSP430FR5739 pomiarami analogowo/cyfrowymi zarządza moduł ADC10 w wersji B. Parametry pracy modułu są konfigurowane przy pomocy 10 rejestrów sterujących. Opis rejestrów sterujących pracą modułu ADC10_B pokazano w tabeli 1.

Tab 1. Rejestry konfiguracyjne

Rejestr

Funkcja

ADC10CTL0

 

     parametry pracy modułu ADC10_B

(tryby pracy, sposób taktowania pomiaru, metody wyzwalania pomiaru, forma prezentacji wyniku pomiaru, itd.)

ADC10CTL1

ADC10CTL2

ADC10LO

komparator analogowy

(próg dolny , próg górny)

ADC10HI

ADC10MCTL0

 parametry pracy modułu ADC10_B

(kanały pomiarowe, potencjały referencyjne)

ADC10MEM0

wynik pomiaru

ADC10IE

obsługa przerwań

(źródła przerwań, flagi przerwań, rejestr wektora przerwań)

ADC10IFG

ADC10IV

* szczegółowy opis rejestrów zamieszczono w materiałach dołączonych do artykułu

 

Konfigurując pracę modułu ADC10_B należy pamiętać, że niektóre bity sterujące z rejestrów konfiguracyjnych można modyfikować wyłącznie, gdy bit zezwolenia na konwersję ENC jest wyzerowany.

 

Przetwornik A/C, moduł ADC10_B

Przetwornik A/C zainstalowany w module ADC10_B może pracować z rozdzielczością 8, albo 10 bitów. Maksymalna prędkość pomiarów to 200 000 próbek na sekundę. Obsługiwanych jest 16 kanałów pomiarowych: 12 zewnętrznych oraz 4 wewnętrzne. Pomiary mogą być wyzwalane programowo, bądź w sposób sprzętowy (przy pomocy zegarów). Moduł przetwornika obsługuje 4 tryby pracy oraz posiada wbudowane mechanizmy oszczędzania energii. Źródło sygnału zegarowego taktującego konwersję konfigurowane jest programowo (częstotliwość sygnału regulowana jest za pomocą dwóch preskalerów). Napięcie referencyjne może być podane „z zewnątrz”, albo z wewnętrznego generatora napięcia REF. Moduł ADC10_B wyposażono w układ komparatora analogowego, który pozwala wykryć zmianę napięcia na wejściu analogowym. Przetwornik może być obsługiwany w trybie przerwań (obsługiwanych jest 6 typów przerwań).

Najważniejszym, a zarazem centralnym elementem modułu ADC10 jest 10-bitowy rdzeń SAR. Poza rdzeniem, główne bloki funkcjonalne przetwornika tworzą: moduł próbkowania S/H, multiplekser analogowy, bufor napięć referencyjnych, moduł komparatora analogowego. Budowę przetwornika pokazano na rysunku 1.

 

Rys. 1. Schemat blokowy modułu ADC10_B 

Rys. 1. Schemat blokowy modułu ADC10_B

 

Tryby pracy                                      

Moduł ADC10_B może pracować w jednym z czterech trybów:

  1. pomiar napięcia na jednym kanale
  2. pomiar napięcia na kilku kanałach (grupa kanałów)
  3. cykliczny pomiar napięcia na jednym kanale
  4. cykliczny pomiar napięcia na kilku kanałach (grupa kanałów)

Tryb pracy przetwornika konfiguruje bit ADC10CONSEQx z rejestru ADC10CTL1. Konfigurację trybu pracy przetwornika pokazano w tabeli 2.

Tab. 2. Tryby pracy przetwornika

Rejestr

Bit

Opis

 

 

ADC10CTL1

ADC10CONSEQ_0

pojedynczy pomiar napięcia na jednym kanale

ADC10CONSEQ_1

pojedynczy pomiar napięcia dla grupy kanałów

ADC10CONSEQ_2

cykliczny pomiar napięcia na jednym kanale

ADC10CONSEQ_3

cykliczny pomiar napięcia dla grupy kanałów

 

Kanały pomiarowe

W MSP430FR5739 dostępnych jest 16 kanałów pomiarowych. Kanały pomiarowe wybiera multiplekser analogowy konfigurowany za pomocą bitu ADC10INCHx z rejestru ADC10MCTL0. Konfigurację kanałów pomiarowych pokazano w tabeli 3.

Tab. 3. Kanały pomiarowe

Rejestr

Bit

Opis

 

 

 

 

 

 

 

 

 

 

 

ADC10MCTL0

ADC10INCH_0

kanał pomiarowy A0

ADC10INCH_1

kanał pomiarowy A1

ADC10INCH_2

kanał pomiarowy A2

ADC10INCH_3

kanał pomiarowy A3

ADC10INCH_4

kanał pomiarowy A4

ADC10INCH_5

kanał pomiarowy A5

ADC10INCH_6

kanał pomiarowy A6

ADC10INCH_7

kanał pomiarowy A7

ADC10INCH_8

kanał pomiarowy A8

ADC10INCH_9

kanał pomiarowy A9

ADC10INCH_10

kanał pomiarowy A10

ADC10INCH_11

kanał pomiarowy A11

ADC10INCH_12

kanał pomiarowy A12

ADC10INCH_13

kanał pomiarowy A13

ADC10INCH_14

kanał pomiarowy A14

ADC10INCH_15

kanał pomiarowy A15

 

Do pobrania

O autorze