Pelatihan AVR

19 Februari 2011

AIC23 Audio Codec pada DSK6455

pada modul DSK (development starter kit) 6455 terdapat beberapa modul tambahan yang digunakan untuk menjadi fitur tambahan. dan modul yang akan di bahas kali ini adalah mengenai modul audio codec (coder decoder) yang bertipe AIC23 (TLV320AIC23).

pada DSK6455, untuk pengaksesan AIC23 Codec terdapat 2 cara (tergantung pada DSK). biasanya digunakan 2 McBSP (multichannel buffered serial port) yaitu McBSP 0 dan 1. untuk McBSP0 untuk jalur control dan McBSP1 untuk jalur data. namun pada konfigurasi DSK yang lain dapat juga jalur kontrol biasanya digunakan I2C (inter integrated circuit).
untuk mendownload datasheetnya bisa di download disini

unutk pengaksesan dan setting dari AIC23 codec bisa dilakukan pada register kontrol seperti pada gambar di bawah ini

dan jika telah ditentukan nilai pada register di atas, maka nilai tersebut dapat dimasukkan untuk setting codec seperti di bawah ini

DSK6455_AIC23_Config configline = {
    
    
0x001f, // 0 DSK6455_AIC23_LEFTINVOL Left line input channel volume          0x001f, // 1 DSK6455_AIC23_RIGHTINVOL Right line input channel volume
          0x00d8, // 2 DSK6455_AIC23_LEFTHPVOL Left channel headphone volume
          0x00d8, // 3 DSK6455_AIC23_RIGHTHPVOL Right channel headphone volume
          0x0011, // 4 DSK6455_AIC23_ANAPATH Analog audio path control
          0x0001, // 5 DSK6455_AIC23_DIGPATH Digital audio path control
          0x0000, // 6 DSK6455_AIC23_POWERDOWN Power down control
          0x0043, // 7 DSK6455_AIC23_DIGIF Digital audio interface format
          0x00a2, // 8 DSK6455_AIC23_SAMPLERATE Sample rate control
          0x0001 // 9 DSK6455_AIC23_DIGACT Digital interface activation
          };
tipe variabel bentukan yang digunakan yaitu DSK6455_AIC23_Config
karena tipe bentukannya berupa array, maka diperulakan pointer, sehingga ketika menggunakannya digunakan '&'

contoh program pada AIC23

// persiapan variabel
int sampel=512;
Int16 terimakiri[sampel],terimakanan[sampel];
Int16 keluarkiri[sampel],keluarkanan[sampel];
DSK6455_AIC23_CodecHandle hCodecline;
int i; 


/* inisialisasi modul pada DSK6455 */
DSK6455_init();
 

hCodecline = DSK6455_AIC23_openCodec(0, &configline);
/* perhatikan pada penggunaan codec handle diatas, digunakan tanda '&' untuk pointer karena bentuknya array. pada prosedur diatas digunakan opencodec untuk membuka path dan menginisialisasi CODEC*/

while (1)
          {
          for (i=0; i<512;i++) {

                    while (!DSK6455_AIC23_read32(hCodecline,(Uint32 *)&terimakiri[i]));
                    // untuk mengambil data hasil kuantisasi pada AIC23 codec
                    while(!DSK6455_AIC23_write32(hCodecline,keluarkiri[i]));
                    // untuk mengeluarkan data yang akan diubah dalam bentuk analog 
                    while (!DSK6455_AIC23_read32(hCodecline,(Uint32 *)&terimakanan[i]));
                    while(!DSK6455_AIC23_write32(hCodecline,keluarkanan[i])); 
                    // secara default, urutan pengambilan dan pengeluaran data selalu dimulai dari left channel diikuti dengan right channel 
                    }; 
          // proses buffering dan pemindahan buffer 
          for (i=0;i<512;i++) { 
                    keluarkiri[i]=terimakiri[i];  
                    keluarkanan[i]=terimakanan[i]; 
                    }; 
          }


1 komentar:

baldwynuher mengatakan...

Blue Titanium Aero Aero Blue Titanium Aero Blue Titanium
Blue Titanium Aero titanium curling iron Blue Titanium Aero Blue Titanium Aero Blue Titanium titanium nitride gun coating Aero titanium plate Blue Titanium Aero Blue Titanium Aero Blue Titanium titanium uses Aero apple watch stainless steel vs titanium Blue Titanium Aero Blue Titanium