Цитата(rx9cim @ Jul 4 2012, 21:26)

И еще заметил следующее - при приеме данных с АЦП на пин I2S_SDext я принимаю в SPI->DR какой-то мусор - постоянно меняющиеся произвольные значения. Формат длины - 32 бита, формат передачи - 24 бит. Считываю два раза. Оба раза мусор. С чем это может быть связано?
Прошу помочь ответами на мои вопросы. Дальше не знаю куда двигаться...
А зачем считывать SPI->DR, если данные принимаются I2Sext?
Цитата(Allregia @ Jul 3 2012, 12:23)

P.S. А как народ определяет при 32-х (24) битной работе, какой канал и какой 16-битное слово из 32 надо грузить?
По прерываниям понятно, а вот с ДМА не очень понятно.
Инициализируете канал DMA, потом запускаете I2S. Все получается вполне предсказуемо.
Цитата(rx9cim @ Jul 3 2012, 19:33)

Вопрос по I2S - посмотрел примеры инициализации от ST и понял, что в фулл дуплекс I2S работает только слэйвом? т.е. не может выдавать сигнал тактирования? Рытаюсь настроить работу с аужио кодеком и считываю постоянно нули из SPI DR.
Просто в full duplex используется дополнительный блок I2Sext, который действительно всегда слейв (или по отношению к ведущему SPI, или же к внешнему источнику).
Цитата(rx9cim @ Jul 3 2012, 21:04)

Точнее может ли I2S в режиме Master-recieve работать в полном дуплексе?
Может.