Čeština / English
Login

Aplikace / Digitální rozhraní TLV320AIC23B

Autor: Karel Slaný ()

Abstrakt: Práce s digitálním rozhraním kodeku TLV320AIC23B

Update: 14.10.2009

1. Popis aplikace

V FPGA je pomocí BRAM paměti realizován kruhový buffer o kapacitě 512 32-bitových položek. Kruhový buffer je připojený ke kodeku TLV320AIC23B. V této aplikaci je buffer využit jako drát - tzn. slouží pouze k propojení digitálního výstupu na digitální vstup kodeku.

Obslužná aplikace pracuje s audio vstupem JP6 a výstupem JP7.

2. Návrh aplikace (MCU)

2.1. Podporované funkce

Audio kodek TLV320AIC23B se skládá ze dvou částí - analogové (obsahuje zesilovače, mixer) a digitální (obsahuje A/D a D/A sigma delta převodník a dále digitální seriové rozhraní). Analogová část umožňuje vynechat digitální část (bypass) pro účely testování. Aktivace digitálního rozhraní se provádí pomocí příkazu DSP_ON, bypass poté pomocí BYPASS_DSP. Pokud neslyšíte zvuk ani po zadání příkazu BYPASS_DSP, ujistěte se, že jste správně zapojili linkový vstup.

Příkazem DSP_ON se přes SPI rozhraní v kodeku aktivují A/D a D/A převodníky, nastaví se komunikační protokol na DSP režim, nastaví se vzorkovací frekvence a bitová šířka slova.

Příkaz BYPASS_DSP deaktivuje digitální převodníky a v kodeku aktivuje analogový bypass, který propojí analogový vstup s analogovým výstupem.

V obou předchozích režimech je aktivní výstup JP7.

Příkazem MUTE se v sobou režimech ztlumí hlasitost výstupu na minimum. Příkazem RESTORE se obnoví původní hlasitost výstupu.

2.2. Práce s DA převodníkem

Konfigurace kodeku

Konfigurace kodeku se provádí pomocí rozhraní SPI. K zápisu konfiguračního slova se používá funkce codec_SPI_write(reg, content), kde reg je sedmibitová adresa konfiguračního registru a content je devítibitový obsah registru.

Popis funkce a registrů lze najít v souborech mcu/libs/codec/audio_codec.h a mcu/libs/codec/audio_codec.c.

V ukázkové aplikaci se DSP režim kodeku aktivuje posloupností následujících příkazů:

term_send_str("codec setup: reset\n");
codec_SPI_write(RST_REG, 0);
term_send_str("codec setup: analog path control\n");
codec_SPI_write(ALOG_PATH_CTRL, ST_disable | DAC_on | BYP_off | INSEL_line | MICM_on | MICB_off);
term_send_str("codec setup: digital interface format\n");
// LRP_on must be set, MSB must be available after LRCIN/CLRCOUT falling edge
codec_SPI_write(DTAL_IFACE_FMAT, MS_master |  LRSWAP_off | LRP_on | IWL_16bit | FOR_DSP);
term_send_str("codec setup: sample rate format\n");
codec_SPI_write(SRATE_CTRL, CLKOUT_full | CLKIN_full | USB_ADC48k_DAC48k | CLKMOD_USB);
term_send_str("codec setup: digital interface activation\n");
codec_SPI_write(DTAL_IFACE_ACT, ACT_on);
term_send_str("codec setup: line-in left and right\n");
codec_SPI_write(LINE_IN_VOL_L, LRS_off | LIM_off | (LIV_GAIN_Z));
codec_SPI_write(LINE_IN_VOL_R, RLS_off | LIM_off | (LIV_GAIN_Z));
term_send_str("codec setup: headphone left and right\n");
codec_SPI_write(HPHONE_OUT_VOL_L, LZC_on | (LHV_GAIN_Z - 0));
codec_SPI_write(HPHONE_OUT_VOL_R, RZC_on | (RHV_GAIN_Z - 0));
term_send_str("codec setup: digital path control\n");
codec_SPI_write(DTAL_PATH_CTRL, DACM_off | DEEMP_disabled | ADCHP_on);
term_send_str("codec setup: power control\n");
codec_SPI_write(PWR_DWN_CTRL, CODEC_ON | CODEC_CLK_on | CODEC_OSC_on |
                              CODEC_OUT_on | CODEC_DAC_on | CODEC_ADC_on | CODEC_MIC_off | CODEC_LINE_on);

3. Zprovoznění aplikace

  1. Před spuštěním kodeku se ujistěte, že propojka J3, J4 je aktivní a J2 neaktivní.

  2. Do konektoru JP7 zapojte sluchátka a do JP6 zdroj signálu (např. MP3 přehrávač).

  3. Přeložte aplikaci.

  4. Naprogramujte MCU a FPGA a spusťte terminálový program.

    Nyní byste měli ve sluchátkách slyšet zvuk přicházející na linkový vstup JP6.

Zobrazeno: 3016x Naposledy: 6.6.2023 00:51:19