13
ЦСП TMS320C67x Работа с периферией

ЦСП TMS320C67x Работа с периферией

  • Upload
    flo

  • View
    59

  • Download
    2

Embed Size (px)

DESCRIPTION

ЦСП TMS320C67x Работа с периферией. ЦСП TMS320C67x: работа с периферией. ЦСП TMS320C67x: работа с периферией. - PowerPoint PPT Presentation

Citation preview

Page 1: ЦСП TMS320C67x Работа с периферией

ЦСП TMS320C67xРабота с периферией

Page 2: ЦСП TMS320C67x Работа с периферией

ЦСП TMS320C67x: работа с периферией

Page 3: ЦСП TMS320C67x Работа с периферией

Периферия представляет собой специализированные аппаратные ресурсы, расположенные на кристалле ЦСП и предназначенные для организации взаимодействия микросхемы ЦСП с внешними устройствами.

Состав периферийных устройств часто определяет его выбор для применения в тех или иных системах.

ЦСП TMS320C67x: работа с периферией

Page 4: ЦСП TMS320C67x Работа с периферией

Сигнальный процессор TMS320C6701 содержит на кристалле следующие основные узлы периферии:

интерфейс внешней памяти (EMIF)

контроллер начальной загрузки по каналам прямого доступа в память

хост-порт (HPI)

многоканальные буферизированные последовательные порты (McBSP)

таймеры

схему фазовой автоподстройки частоты для тактового генератора (PLL)

интерфейс JTAG-эмулятора

ЦСП TMS320C67x: работа с периферией

Page 5: ЦСП TMS320C67x Работа с периферией

Рассмотрим работу с периферией на примере организации следующей системы:

ЦСП TMS320C67x: работа с периферией

Page 6: ЦСП TMS320C67x Работа с периферией

Требуются:

конфигурация кодека

конфигурация McBSP

конфигурация прерываний

ЦСП TMS320C67x: работа с периферией

Page 7: ЦСП TMS320C67x Работа с периферией

Конфигурация кодека

выполняется с помощью специальной типовой программы

ЦСП TMS320C67x: работа с периферией

Page 8: ЦСП TMS320C67x Работа с периферией

Конфигурация McBSP

ЦСП TMS320C67x: работа с периферией

Page 9: ЦСП TMS320C67x Работа с периферией

Конфигурация прерываний подразумевает:

глобальное разрешение прерываний,

разрешение требуемого прерывания (от McBSP),

создание таблицы векторов прерываний,

создание функции обработки прерывания.

ЦСП TMS320C67x: работа с периферией

Page 10: ЦСП TMS320C67x Работа с периферией

//sine_intr.c Sine generation using sin() function

#include <math.h>#include "dsk6713_aic23.h" // codec support

Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate

#define DSK6713_AIC23_INPUT_MIC 0x0015#define DSK6713_AIC23_INPUT_LINE 0x0011Uint16 inputsource=DSK6713_AIC23_INPUT_MIC; // select input

#define SAMPLING_FREQ 8000#define PI 3.14159265358979

float frequency = 1000.0;float amplitude = 10000.0;float theta_increment;float theta = 0.0;

ЦСП TMS320C67x: работа с периферией

Page 11: ЦСП TMS320C67x Работа с периферией

interrupt void c_int11(){ theta_increment = 2*PI*frequency/SAMPLING_FREQ; theta += theta_increment; if (theta > 2*PI) theta -= 2*PI; output_left_sample((short)(amplitude*sin(theta))); return;}

void main(){ comm_intr(); while(1);}

ЦСП TMS320C67x: работа с периферией

Page 12: ЦСП TMS320C67x Работа с периферией

void c6713_dsk_init() //dsp-peripheral initialization{DSK6713_init(); //call BSL to init DSK-EMIF,PLL)

hAIC23_handle=DSK6713_AIC23_openCodec(0,&config);//handle(pointer) to codecDSK6713_AIC23_setFreq(hAIC23_handle, fs); //set sample rateDSK6713_AIC23_rset(hAIC23_handle, 0x0004, inputsource);// choose mic or line inMCBSP_config(DSK6713_AIC23_DATAHANDLE,&AIC23CfgData);//interface 32 bits toAIC23

MCBSP_start(DSK6713_AIC23_DATAHANDLE, MCBSP_XMIT_START | MCBSP_RCV_START | MCBSP_SRGR_START | MCBSP_SRGR_FRAMESYNC, 220);//start data channel again}

void output_left_sample(short out_data)//for output from left chan{ AIC_data.uint=0; //clear data structure AIC_data.channel[LEFT]=out_data; //data from Left channel –

>data structure

if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE));//if ready to transmit

MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint);//output left channel}

ЦСП TMS320C67x: работа с периферией

Page 13: ЦСП TMS320C67x Работа с периферией

if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE));//if ready to transmit

MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint);//output left channel}

ЦСП TMS320C67x: работа с периферией