eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32 - nie działa I2S ?STM32 - nie działa I2S ?
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
    sfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
    From: "Michał Lankosz" <m...@t...pl>
    Newsgroups: pl.misc.elektronika
    Subject: STM32 - nie działa I2S ?
    Date: Sat, 20 Jun 2009 23:35:34 +0200
    Organization: TP - http://www.tp.pl/
    Lines: 85
    Message-ID: <h1jlap$b21$1@nemesis.news.neostrada.pl>
    NNTP-Posting-Host: 80.51.142.201
    X-Trace: nemesis.news.neostrada.pl 1245534362 11329 80.51.142.201 (20 Jun 2009
    21:46:02 GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Sat, 20 Jun 2009 21:46:02 +0000 (UTC)
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
    X-RFC2646: Format=Flowed; Original
    User-Agent: Hamster/2.1.0.11
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:565848
    [ ukryj nagłówki ]

    Witajcie.

    Mam sobie STM32F103VCT6. Zachciało mi się zrobić układ, w którym interfejs
    audio mikrokontrolera będzie pracował w trybie:
    slave transmitter,
    packet frame 32-bit,
    data format 16-bit (extended) lub 24-bit,
    right justified.

    Niestety paczki danych wyjściowych wpadają losowo w stosunku do sygnału word
    select za każdym uruchomieniem programu lub chwilowego zaniku bitclock. Bity
    danych trzymają się jedynie zegara. Wygląda to tak, jakby interfejs SPI/I2S
    olewał sygnał WS tylko odliczał sobie takty zegara (po 32 cykle). Tak samo
    jest dla SPI2 jak i SPI3. Master transmitter działa jak powinien.

    Czy ktoś przerabiał ten temat? Nie wiem, czy coś źle konfiguruję, czy procek
    zwalony, a może kompilator. Opierałem się o przykłady z ST.

    Oto kawałki konfigurujące sam interfejs. Jeśli ktoś chce mogę podesłać cały
    kod testowy. Używam pakietu Raisonance v.7.

    main()
    ...
    GPIO_Configuration();
    /* INICJALIZACJA I2S */
    I2S_InitStructure.I2S_Standard = I2S_Standard_LSB; // right justified
    I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16bextended; //16-bit
    in 32-bit packets
    I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Disable;
    I2S_InitStructure.I2S_AudioFreq = I2S_AudioFreq_48k;
    I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;

    /* I2S2 configuration */
    I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;
    I2S_Init(SPI2, &I2S_InitStructure);

    /* I2S3 configuration */
    I2S_InitStructure.I2S_Mode = I2S_Mode_SlaveTx;
    I2S_Init(SPI3, &I2S_InitStructure);

    /* Enable the I2S2 RxNE interrupt */
    SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_TXE, ENABLE);

    /* Enable the I2S3 RxNE interrupt */
    SPI_I2S_ITConfig(SPI3, SPI_I2S_IT_TXE, ENABLE);

    /* Enable the I2S2 */
    I2S_Cmd(SPI2, ENABLE);

    /* Enable the I2S3 */
    I2S_Cmd(SPI3, ENABLE);

    while(1);

    void GPIO_Configuration(void)
    ...
    /* INICJALIZACJA GPIO */
    /* Disable the JTAG interface and enable the SWJ interface */
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

    /* Configure SPI2 pins: CK, WS and SD ---------------------------------*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    /* Configure SPI3 pins: CK and SD ------------------------------------*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; // CK - wejście
    na 'siłę'
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    /* Configure SPI3 pins: WS -------------------------------------------*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; // WS - wejście
    na 'siłę'
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    ....

    Michał


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: