Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F405 I2S
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Allregia
В одном устройстве предполагается исползовать STM32F405 и его порт I2S в фулдуплексе.
Но к содалению я или слепой, или в референс-мануале о нем почни ничего.
Т.е. расписано что такое "есть", но я не нашел ни одноо упоминания о фулдуплексе и вообще о ножках I2Sx_extSD в описании регистров.
Как этот фулдуплекс сконфигурировать? Может есть какие-то дополнительный мануалы? Буду рад если кто ткнет на них линком (хотя я вроде на сайте ST уже все пересмотрел).

Может просто достаточно настроить в альтенкативных функциях ножек сами эти extSD, и все ?
vptr
на сайте stm, есть STM32F4xx_DSP_StdPeriph_Lib_V1.0.0 ( http://www.st.com/internet/com/SOFTWARE_RE...dperiph_lib.zip ), там примеры и библиотека под всю периферию. Есть там файл библиотеки stm32f4xx_spi.c, в котором сказано
Код
  To configure I2S full duplex you have to:
  *            
  *          1. Configure SPIx in I2S mode (I2S_Init() function) as described above.
  *          
  *          2. Call the I2S_FullDuplexConfig() function using the same strucutre passed to  
  *             I2S_Init() function.
  *            
  *          3. Call I2S_Cmd() for SPIx then for its extended block.
  *          
  *          4. To configure interrupts or DMA requests and to get/clear flag status,
  *             use I2Sxext instance for the extension block.

а в примере (I2S/I2S_TwoBoards/DataExchangePolling/main.c) сделанном под эту библиотеку - есть код для Master full Duplex configuration
Allregia
Спасибо, вроде стало понятно. НУ что им стоилио в даташите/реф.мане чуть поподробнее написать?!

А еще небольшой вопрос - в отличие от F1, где если периферию включил, там она пин и заняла, в F4 на каждй пин стоит мультиплексор 16х1 )оставим на их совести, что большую часть входов они не использовали, самки собаки).
Ь.е. если мне к примеру нуждна какая-то перефирия. но не вся, я могу просто не включать мультиплексор на этот пин и использовать его как I/O или с другой периферией?
Проще наверное на примере:
RB4 - SPI1_MISO, SPI3_MISO
RB5 - SPI1_MOSI, SPI3_MOSI

RA7 - SPI1_MOSI,

Мне нужны одновременно оба SPI, но один 2-х сторонний, и один только на передачу.
Я включаю SPI1, SPI2, и конфигурирую пины так:
RB4 - SPI3_MISO
RB3 - SPI3_MOSI
RA7 - SPI_MISO,

Т.е. RB4 и RB5, которые при включении SPI1 должны были бы быть его, бьудут относится не к нему а к SPI3.

Или мне нужен UART только на прием, его ножку TxD можно ведь и как I/O или еще как использовать? В F1 был бы нельзя.

Я прав?

И еще раз по поводу I2S - в одном устройстве нужен фулдуплекс, а вот в другом интереснее - там нужен только мастер-прием, но проблема в том, что I2S3_SD это занят SPI1_MOSI, a RC12 занят другим. Но свободен PB14, который I2S3ext_SD.
Сработает ли такой трюк - настраиваем I2S3 в фулдуплексе на мастер-передачу, I2S3ext при этом получается приемник.
И - не отдаем ему ногу с I2S3_SD а используем ее с другой переферией.
Т.е. из фулдуплекса я использую только мастер-прием, причем по линии extSD, одним словом - обмануть I2S подсунув ему extSD вместо SD, проигнорировав фулдуплекс.
Будет работать, как Вы думаете?

P.S. Я в командировке, так что попробовать сейчас-же на реальном железе не могу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.