-
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ł
Najnowsze wątki z tej grupy
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
Najnowsze wątki
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją
- 2025-01-04 Zbieranie danych przez www
- 2025-01-04 reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- 2025-01-04 w Nowym Roku 2025r
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=
- 2025-01-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-04 Warszawa => System Architect (Java background) <=
- 2025-01-04 Wrocław => Application Security Engineer <=
- 2025-01-04 Chrzanów => Specjalista ds. public relations <=
- 2025-01-04 Katowice => Key Account Manager (ERP) <=