реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> STM32F407 Непонятки с SAI
Allregia
сообщение Apr 30 2016, 13:43
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Коллеги, просветите по поводу этого SAI - пытаюсь перелезть на него с обычного I2S (который в SPI).
Непонятнки с семплрейтом, получается что при внешнем клоке 512фс, можно получить на выходе только 48 и 96, при вкл. делителе, и 384 при выключенном? Т.е. 192 получить вообще не получается, а 384 вроде как оверспек (для L4).
В I2S на F4 это без проблем.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 30 2016, 17:58
Сообщение #32


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(Allregia @ Apr 30 2016, 16:43) *
Коллеги, просветите по поводу этого SAI - пытаюсь перелезть на него с обычного I2S (который в SPI).
Непонятнки с семплрейтом, получается что при внешнем клоке 512фс, можно получить на выходе только 48 и 96, при вкл. делителе, и 384 при выключенном? Т.е. 192 получить вообще не получается, а 384 вроде как оверспек (для L4).
В I2S на F4 это без проблем.


Убедитесь, что в вашей версии заголовочных файлов значения битов, определяющих делитель, соответствуют документации (в старых версиях была ошибка).
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 30 2016, 19:47
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Версии 2-х месячной давности годятся?
Но вообще, я вручную пишу в делитель 1 для 48 и 0 для 96, при NoDiv=0, соотв. деление на 2 и на 1.
Что надо записать, чтобы получить 192?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение May 1 2016, 00:48
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Должно быть так:
Код
#define  SAI_xCR1_MCKDIV                  ((uint32_t)0x00F00000)        /*!<MCKDIV[3:0] (Master ClocK Divider)  */
#define  SAI_xCR1_MCKDIV_0                ((uint32_t)0x00100000)        /*!<Bit 0  */
#define  SAI_xCR1_MCKDIV_1                ((uint32_t)0x00200000)        /*!<Bit 1  */
#define  SAI_xCR1_MCKDIV_2                ((uint32_t)0x00400000)        /*!<Bit 2  */
#define  SAI_xCR1_MCKDIV_3                ((uint32_t)0x00800000)        /*!<Bit 3  */


Цитата
RM0090, SAI xConfiguration register 1 (SAI_xCR1) (chapter 29.17.1).
MCKDIV[3:0] value description:

0000: Divides by 1 the master clock input.
Otherwise, The Master clock frequency is calculated accordingly to the following formula:
MCLK_x = SAI_CK_x / (MCKDIV[3:0] * 2)


Меньше уже не сделать...
А какая частота (и откуда берется) и какой формат?

Сообщение отредактировал Genadi Zawidowski - May 1 2016, 00:50
Go to the top of the page
 
+Quote Post
Allregia
сообщение May 1 2016, 05:26
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Genadi Zawidowski @ May 1 2016, 01:48) *
Меньше уже не сделать...


В том-то и дело!
Непонятно, зачем они вместо I2S в SPI сделали это SAI, с кучей дополнительных возможностей, но допустили при этом такие досадные элементарные промахи!
Я теперь даже не знаю как быть в одном из проектов. Попытаюсь поставить туда Ф4, на нем все работает, но не уверен что получится, все было расчитано под Л4.

Цитата
А какая частота (и откуда берется) и какой формат?


Я писал выше - клок 512фс, т.е 24.576мгц. Формат - самый стандартный I2S, bclk/lrclk=64.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 2nd July 2025 - 06:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016