Anleitung - HAW Hamburg
Transcription
Anleitung - HAW Hamburg
HAW Hamburg Fakultät TI Technik und Informatik Department Informations- und Elektrotechnik Labor für Signalverarbeitung Praktikum Digitale Signalverarbeitung Digital Signal Processing Lab Nutzung der DC-Signal-Ein- und Ausgänge DSK6713 Die Ein- und Ausgänge des DSK-Boards sind nicht für Gleichspannungen geeignet. Über die Mini-DINBuchse „DC IN – OUT“ auf dem Board kann ein Adapterkästchen angeschlossen werden, über das auch Gleichspannung verarbeitet werden kann, z.B. zur Aufnahme von Sprungantworten. Versuchsaufbau Das Adapterkästchen ist mit einem separaten Kabel über die DIN-Buchse (Anschluß an Labortisch) mit den benötigten Spannungen zu versorgen und wird über den Mini-DIN-Stecker mit dem DSK-Board verbunden. Hinweis: Der Blindstecker, der in der Klinkenbuchse (MIC_IN) auf der DSK-Platine steckt, ist für die Nutzung notwendig und darf nicht herausgezogen werden! Ein- und Ausgabe der Signale Genutzt werden der Eingang „DC IN“ (ein Kanal) und die Ausgänge „DC OUT“, „left“ und „right“ über die BNC-Buchsen auf dem Adapterkästchen. Diese sind auf dem Board mit MIC_IN und HEADPHONE verbunden. Der Eingang MIC_IN wird fünffach verstärkt, daher darf der Signalpegel nur ein Fünftel betragen! Dem Ausgangssignal ist ein Offset von 3,3 V /2 überlagert. Erklärung: Der CODEC AIC23 arbeitet im Bereich 0 bis 3,3 V. Das Eingangssignal wird im Adapterkästchen mit einem entsprechenden Offset versehen. Programmanpassung in CCS Um Signale über MIC_IN zu lesen, müssen folgende Registerinhalte geändert werden: config.regs[4] = 0x14; // Mic boost OFF config.regs[5] = 0x1; // ADC HP Filter OFF (wrong in docu C6713dskinit.h !!) Diese beiden Zeilen werden entweder in main() direkt hinter DSK6713_init(); eingefügt oder, wenn die Initialisierung ausgelagert ist, in der in das Projekt eingebundenen c6713dskinit.c. Kup 24.11.2010 1/2 Beispiel für die Änderung main(): void main() { IRQ_globalDisable(); //disable interrupts DSK6713_init(); //call BSL to init DSK-EMIF,PLL) config.regs[4] = 0x14; config.regs[5] = 0x1; // Mic boost OFF // ADC HP Filter OFF (wrong in docu C6713dskinit.h!!) hAIC23_handle=DSK6713_AIC23_openCodec(0, &config);//handle(pointer) to codec DSK6713_AIC23_setFreq(hAIC23_handle, fs); //set sample rate MCBSP_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 CODECEventId= MCBSP_getXmtEventId(DSK6713_AIC23_DATAHANDLE);//McBSP1 Xmit IRQ_map(CODECEventId, 5); IRQ_reset(CODECEventId); IRQ_globalEnable(); IRQ_nmiEnable(); IRQ_enable(CODECEventId); IRQ_set(CODECEventId); while(1); //map McBSP1 Xmit to INT5 //reset codec INT5 //globally enable interrupts //enable NMI interrupt //enable CODEC eventXmit INT5 //manually start the first interrupt //infinite loop } _________________________________________________________________________________ Beispiel für die Änderung in der c6713dskinit.c im Projektordner: […] void c6713_dsk_init() { DSK6713_init(); config.regs[4] = 0x14; config.regs[5] = 0x1; //dsp-peripheral initialization //call BSL to init DSK-EMIF,PLL) // Mic boost OFF // ADC HP Filter OFF (wrong in docu C6713dskinit.h!!) hAIC23_handle=DSK6713_AIC23_openCodec(0, &config); //handle(pointer) to codec DSK6713_AIC23_setFreq(hAIC23_handle, fs); //set sample rate MCBSP_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 } […] Kup 24.11.2010 2/2