AVR32 AT32 und I2S Mikrofon

OP #3777744
Lesenswert?
• ▲
▼
Guten Tag
ich habe folgendes Projekt:
Ich möchte ein Mikrofon mit einer I2S Schnittstelle an einen AT32UC3A 
anbinden. Das Mikrofon ist Slave und kann nur senden.
Jetzt versuche ich schon seit längerem, die SSC bei dem AT32 zu 
aktivieren.
Zum testen habe ich erst einmal die I2S als Master eingestellt und 
sendet (1 Byte). Dieses habe ich mit einem Oszi auf dem Clock-Ausgang 
erst einmal gemessen und funktioniert.

Hier meine Init-Funktion:
1
//init ssc Sound
2
void init_ssc(void){
3
  
4
  //map gpio pins
5
  static const gpio_map_t SSC_GPIO_MAPPING =
6
  {
7
    {AVR32_SSC_TX_CLOCK_0_PIN, AVR32_SSC_TX_CLOCK_0_FUNCTION },  // TX-Clock.
8
    {AVR32_SSC_TX_DATA_0_PIN, AVR32_SSC_TX_DATA_0_FUNCTION},  // TX-Data.
9
    {AVR32_SSC_TX_FRAME_SYNC_0_PIN, AVR32_SSC_TX_FRAME_SYNC_0_FUNCTION},  // TX-Frame-Sync.
10
    {AVR32_SSC_RX_CLOCK_0_PIN, AVR32_SSC_RX_CLOCK_0_FUNCTION },  // RX-Clock.
11
    {AVR32_SSC_RX_DATA_0_PIN, AVR32_SSC_RX_DATA_0_FUNCTION},  // RX-Data.
12
    {AVR32_SSC_RX_FRAME_SYNC_0_PIN, AVR32_SSC_RX_FRAME_SYNC_0_FUNCTION}  // RX-Frame-Sync.
13
    
14
  };
15
  
16
  // Assign I/Os to SSC
17
  gpio_enable_module(SSC_GPIO_MAPPING, sizeof(SSC_GPIO_MAPPING) / sizeof(SSC_GPIO_MAPPING[0]));
18

19
  //enable the clock for the spi controller
20
  sysclk_enable_pba_module(SYSCLK_SSC);
21
  
22
  
23
  
24
  ssc_i2s_init(SSC_Adr,  //Pointer SSC
25
        11025,    //sample_frequency The sample frequency given in Hz
26
        8,      //data_bit_res Number of significant data bits in an I2S channel frame
27
        8,      //frame_bit_res Total number of bits in an I2S channel frame
28
        SSC_I2S_MODE_STEREO_OUT,  //mode I2S-mode
29
        12000000);        //pba_hz The clock speed of the PBA bus in Hz
30
        
31
        
32
}

In der MAIN-Schleife habe ich folgendes eingearbeitet:
1
    //testen I2S SSC Schnittstelle
2
    ssc_i2s_transfer(SSC_Adr,0x01);
3
    
4
    ssc_status = ssc_i2s_get_status(SSC_Adr);

Der ssc_status liefert ein TXEN zurück, also Senden aktiviert.

So, senden als Master funktioniert und jetzt will ich eigentlich nur 
lesen.
hier die umgeschriebene Quelle:
1
  ssc_i2s_init(SSC_Adr,  //Pointer SSC
2
        22000,    //sample_frequency The sample frequency given in Hz
3
        8,      //data_bit_res Number of significant data bits in an I2S channel frame
4
        8,      //frame_bit_res Total number of bits in an I2S channel frame
5
        SSC_I2S_MODE_STEREO_IN,  //mode I2S-mode
6
        12000000);        //pba_hz The clock speed of the PBA bus in Hz
Ich habe den Mode auf STEREO_IN gesetzt und der Clock wird ausgegeben. 
Aber wie komme ich an das gelesene Byte/Word dran. Es gibt keine 
vorgegebene Funktion in der AtmelStudio Bibliothek.
Wer kann helfen?

mfg edmu

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.