Принцип работы и приемы программной конфигурации модуля АЦП цифрового сигнального процессора TMS320F2812

Страницы работы

Содержание работы

Цель работы: изучить принцип работы и приемы программной конфигурации модуля АЦП цифрового сигнального процессора TMS320F2812.

Порядок выполнения лабораторной работы №4

Часть I

1. Создание проекта.

1.1 В Code Composer Studio создали новый проект Lab6.pjt. Скопировали из папки c:\tidcs файл lab6.c в папку с созданным проектом. Добавили lab6.c в проект.

1.2 Добавили в проект следующие файлы: C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\F2812_EzDSP_RAM_lnk.cmd

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd\F2812_Headers_nonBIOS.cmd

C:\ti\c2000\cgtools\lib\rts2800_ml.lib

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_PieCtrl.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_PieVect.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_DefaultIsr.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_Adc.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_usDelay.asm

1.3 Включили в проект заголовочные файлы: Project →  Build Options, в закладке Compiler выбирали Preprocessor и в поле Include Search Path (-i) ввели: C:\tidcs\C28\dsp281x\v100\DSP281x_headers\include;..\include.

1.4 Задали глубину стека: Project → Build Options → Linker → Stack Size: 0x400.

2. Инициализация системы (подпрограмма “InitSystem()”).

2.1 Разрешили работу сторожевого таймера, установили коэффициент деления 64 (регистр WDCR), сбросили сторожевой таймер (регистр SCSR).

void InitSystem(void)

{

EALLOW;

SysCtrlRegs.WDCR= 0x00AF;

2.2 Настроили ЦСП на частоту 150 МГц (регистр PLLCR), в предделитель высокоскоростного таймера занесли 2.

SysCtrlRegs.PLLCR.bit.DIV = 10;

SysCtrlRegs.HISPCP.all = 0x1;

2.3 Разрешили тактирование модуля АЦП и Менеджера Событий (регистр PCLKCR).

SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;

3. Инициализация портов (подпрограмма “Gpio_select()”).

3.1 Настроили все выводы на работу в качестве портов (регистр GPxMUX).

3.2. Настроили порты A, D, E, F, G на ввод (регистр GPxDIR).

3.3 Настроили линии порта GPIOB15 – GPIOB8 на ввод, а GPIOB7 – GPIOB0 на вывод.

3.4 Сбросили биты регистров GPxQUAL в ноль.

void Gpio_select(void) {

EALLOW;

GpioMuxRegs.GPAMUX.all = 0x0;      // all GPIO port Pin's to I/O

GpioMuxRegs.GPBMUX.all = 0x0;

GpioMuxRegs.GPDMUX.all = 0x0;

GpioMuxRegs.GPFMUX.all = 0x0;

GpioMuxRegs.GPEMUX.all = 0x0;

GpioMuxRegs.GPGMUX.all = 0x0;

GpioMuxRegs.GPADIR.all = 0x0;        // GPIO PORT  as input

GpioMuxRegs.GPBDIR.all = 0x00FF;// GPIO Port B15-B8 input , B7-B0 output

GpioMuxRegs.GPDDIR.all = 0x0;        // GPIO PORT  as input

GpioMuxRegs.GPEDIR.all = 0x0;        // GPIO PORT  as input

GpioMuxRegs.GPFDIR.all = 0x0;         // GPIO PORT  as input

GpioMuxRegs.GPGDIR.all = 0x0;        // GPIO PORT  as input

GpioMuxRegs.GPAQUAL.all = 0x0;    // Set GPIO input qualifier values to zero

GpioMuxRegs.GPBQUAL.all = 0x0;

GpioMuxRegs.GPDQUAL.all = 0x0;

GpioMuxRegs.GPEQUAL.all = 0x0;

EDIS;

}

4. Инициализация модуля Менеджера Событий.

4.1 Запретили выходы сравнения и выбрали полярность выходов сравнения принудительный низкий уровень (регистр GPTCONA)

EvaRegs.GPTCONA.bit.TCMPOE = 0;

EvaRegs.GPTCONA.bit.T1PIN = 0;

4.2 В регистре T1CON выбрали: непрерывный режим счета вверх, синхронизация от внутреннего источника, запрещаем режим сравнения, разрешаем работу GP таймера 1, задаем коэффициент деления 128.

EvaRegs.T1CON.bit.FREE = 0;                                   // Stop on emulation suspend

EvaRegs.T1CON.bit.SOFT = 0;                                   // Stop on emulation suspend

EvaRegs.T1CON.bit.TMODE = 2;                               // Continuous up count mode

EvaRegs.T1CON.bit.TPS = 7;                                      // prescaler = 128

EvaRegs.T1CON.bit.TENABLE = 1;                            // enable GP Timer 1

EvaRegs.T1CON.bit.TCLKS10 = 0;                             // internal clock

EvaRegs.T1CON.bit.TCLD10 = 0;                               // Compare Reload when zero

EvaRegs.T1CON.bit.TECMPR = 0;                              // Disable Compare operation

Похожие материалы

Информация о работе