|
rx9sym
|
|
STM32F407 и I2S, DMA01.07.2012, 19:20. Показов 12670. Ответов 5
Метки нет (Все метки)
Здравствуйте!
1) написал инициализацию I2S для STM32F407 и получил странный результат - мне нужно, чтобы процессор генерил сигнал тактирования (MCK - мастер клок) для аудиокодека. Генерация идет (на выходе МСК, 63 нога есть сигнал с частотой 5644800 Гц ) только в режиме, когда контроллер мастер-приемник. А вот когда он мастер-передатчик генерации нет. В даташите ничего про это не нашел, почему так? И еще - не совсем понял про режим полного дуплекса для I2S - можно ли (а может и нужно!?) считывать данные с соответствующего регистра данных SPI? 2) Настраиваю ДМА контроллер и непонятно что такое за параметры MBURST и PBURST. Из описания смутно понял, что они используются когда пишешь из периферии в память не постоянно (например по одному байту из SPI), а пачками -по 4, 8, 16 и т.д. байт. Прав ли я? При работе ДМА ставится ли ядро процессора под ХОЛД или нет? Привожу код инициализации I2S: void I2S_init (void) { /*Настройка I2S частота дискретизации 22050Гц f(VCO clock) = f(PLLI2S clock input) * (PLLI2SN / PLLM) f(PLL I2S clock output) = f(VCO clock) / PLLI2SR */ RCC->AHB1ENR|=RCC_AHB1ENR_GPIOCEN;//включил GPIOC GPIOC->MODER|=GPIO_MODER_MODER6_1;//выход AF GPIOC->AFR[0]|=0x05000000;//AF5-MCKI2S RCC->AHB1ENR|=RCC_AHB1ENR_GPIOBEN;//включил GPIOB GPIOB->MODER|=GPIO_MODER_MODER12_1;//выход AF GPIOB->MODER|=GPIO_MODER_MODER13_1;//выход AF GPIOB->MODER|=GPIO_MODER_MODER14_1;//выход AF GPIOB->MODER|=GPIO_MODER_MODER15_1;//выход AF GPIOB->AFR[1]|=0x55550000;//AF5-I2S/SPI RCC->PLLI2SCFGR=0;//обнуляю RCC->PLLI2SCFGR|=PLLI2SN(429);// RCC->PLLI2SCFGR|=PLLI2SR(4);// RCC->CR|=RCC_CR_PLLI2SON;//Включил PLL I2S #ifndef SIMULATOR while ((RCC->CR&RCC_CR_PLLI2SRDY)!=RCC_CR_PLLI2SRDY) ;//пока заработает PLL #endif RCC->APB1ENR|=RCC_APB1ENR_SPI2EN;//включил Spi2 SPI2->I2SCFGR|=SPI_I2SCFGR_I2SMOD;//включил I2S SPI2->I2SCFGR|=SPI_I2SCFGR_DATLEN_0;//24бит данные SPI2->I2SCFGR|=SPI_I2SCFGR_CHLEN;//32бит длина данных SPI2->I2SPR=I2SDIV(9);// SPI2->I2SPR|=I2SODD(1);// SPI2->I2SCFGR|=I2SCFG(3);//Режим Мастер - применик SPI2->I2SPR|=I2SMCKOE(1);//выход Мастер клока SPI2->I2SCFGR|=SPI_I2SCFGR_I2SE;//включил SPI } Прошу ответить на мои вопросы. |
|
| 01.07.2012, 19:20 | |
|
Ответы с готовыми решениями:
5
stm32f407+ADC+DMA. Проблема с DMA stm32f407 1-wire+DMA STM32F407 USART2 DMA |
|
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
|
|
| 02.07.2012, 08:28 | |
|
Что мешает посмотреть пример к библиотеке периферии? Ее разработчики уже все за вас продумали и сделали, осталось приложить минимум усилий для встраивания примеров в свой проект.
0
|
|
|
rx9sym
|
|
| 02.07.2012, 22:32 | |
|
Мне непонятно, может ли I2S STM32F407 работать в фулл дуплекс в режиме Master-recieve?
|
|
|
rx9sym
|
|
| 15.07.2012, 23:02 | |
|
Режим работы I2S2 - Master RX, I2S2ext-slave TX, Fs=22050, длина посылки - 32 бита, длина информации - 24 бит, протокол Филипс.
Не могу ни как понять, почему с кодека периодически читаю 0xFFFE или что-то около того. Видимо Мастер приемник несинхронно принимает биты. Кодек cs4221. К сожалению нет осциллографа, чтобы посмотреть обмен. Периферия настроена правильно - много раз перепроверял. Ни у кого не было такой проблемы? Уже и не знаю что делать... |
|
|
rx9sym
|
|
| 21.08.2012, 22:35 | |
|
Все-таки решил описать то, что проделал. Может кому-то будет полезным.
Как написано в Еррата, при применении полнодуплексного I2S, слайв нужно включать после мастера, причем так, чтобы включение совпало с сигналом WS I2S, иначе будет рассинхронизация, информация будет со сдвигом приниматься. Второе, информацию, принимаемую в виде близком к 0xFFFFFF я поначалу считал за неверную. Однако вчитавшись в даташит на кодек и описание I2S, понял, что это значения АЦП, в комплиментарном виде. Возникает дополнительная масса вопросов по обработке этой информации и собственно кодеку: 1) Нужно ли эти данные переводить в нормальный вид (из инт в ансигнед инт) или при цифровой фильтрации этого делать не нужно? 2) у кодека есть ряд параметров, суть которых мне не понятна, объясните пожалуйста: - soft ramp step rate, измеряется в количестве шагов на такт - это по сути скорость АЦП или ЦАП? - zero cross level - это что? как указано в даташите это имееет отношение к Soft ramp control. |
|
|
rx9sym
|
|
| 21.08.2012, 22:36 | |
|
Пока не могу разобраться, почему частота дискретизации реальная не соответствует теоритической. при этом частоты всех сигналов в норме.
|
|
| 21.08.2012, 22:36 | |
|
Помогаю со студенческими работами здесь
6
Глюки SD карточки - STM32F407 + SDIO-DMA
[РЕШЕНО] STM32F407+LSM303C, STM32F407 (дискавери) STM32F4Discovery - ADC DMA и FSMC DMA USART2(RX+IDLE+DMA)+USART3(TX DMA) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|