Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: I2S и SPI
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
n_Nice
Добрый день!
Не так давно пришлось заняться микроконтроллерами, а именно arm7 lpc2378!
То что я зелёный в этой сфере это мягко сказано, но задача чёткая - состоит в стыковке I2S и SPI!
Пожалуйста помогите с направлением отчего оттолкнуться в плане кода(кусочки кода или функции, желательно с подробным описанием)
отдельно находил код для SPI(на другие мк) и I2S(но для USB) разобраться не получилось в них!
заранее спасибо!
KnightIgor
Цитата(n_Nice @ Apr 27 2011, 08:52) *
Добрый день!
Не так давно пришлось заняться микроконтроллерами, а именно arm7 lpc2378!
То что я зелёный в этой сфере это мягко сказано, но задача чёткая - состоит в стыковке I2S и SPI!
Пожалуйста помогите с направлением отчего оттолкнуться в плане кода(кусочки кода или функции, желательно с подробным описанием)
отдельно находил код для SPI(на другие мк) и I2S(но для USB) разобраться не получилось в них!
заранее спасибо!


А в чем же "четкость" задачи "стыковка I2S и SPI"? Невозможно дать ответ, не понимая, что нужно конткретно.
Если говорить о самих интерфейсах, то оба указанных весьма похожи. Например, в контроллерах STM32 (Cortex-M3) оба интерфейса реализуются одной и той же аппаратной периферией.

Дать примеры кода также сложно, т.к. код будет зависеть от задачи: откуда данные, с какой скорость, что работает "рядом" еще. В общем и целом оба интерфейса есть преобразование параллельного кода в последовательный. Периферии имеют регистр данных DR (8 и/или 16 бит), записью в который инициируется передача (и, кстати, прием тоже) данных. Записывать в DR/считывать из него можно лишь, если установлены соответствующие флаги готовности в регистрах статуса SR. Транзакции (прием-передачи) можно осуществлять либо в синхронных циклах ожидания, либо по прерыванием, в том числе с привлечением DMA, И т.д. и т.п. Под реализацией должна стоять целая концепция, а не просто "задача в стыковке".
evg123
I2S похож на SPI, только более продвинутый. Первый шаг - надо определить можно ли в вашем ARM-е настроить SPI в режиме I2S. Прочтите главы мануала, посвящённые SPI. (Например, техасовский порт McBSP, который присутствует во всех ихних DSP/DSC может настраиваться как SPI или как I2S или ещё возможно много разных вариантов).
Но что касается ARM-7 - у меня, однако, сомнение, что ARM-7 так сможет. Например техасовский CortexM3 ( бывший Luminary ) - не поддерживает такого: даёт только SPI в восьми или шестнадцатибитном режиме. (SPI - это стандарт дефакто, а I2S достаточно редкий протокол от Analog Devices для кофидеков). Второй шаг - проверить возможно ли прибор, который выдаёт I2S - включить в режим SPI (это более реально) . Если аппаратно это невозможно, то нечего париться - программно вы задачу не решите. Надо брать Xilinx, на нём реализовывать интерфейс (который выдаёт прибор, как я понимаю - I2S), стыковать с контроллером и подключать к прибору. Контроллер получит доступ к кофидеку или к тому что там у вас есть. Подойдёт любая CPLD-шка (cool runner или Max2).
DpInRock
Цитата
но задача чёткая - состоит в стыковке I2S и SPI

Обратите эту четкость в камень и гррохните постановщика задачи по голове. Возможно, это его чуток подлечит.

К слову, SPI и I2S не имеют ничего общего.
KnightIgor
Цитата(DpInRock @ Apr 27 2011, 18:26) *
К слову, SPI и I2S не имеют ничего общего.

Производители чипов, почему-то, имеют иное мнение на этот счет. Например, ST, у которого SPI и I2S есть различные режимы одного и того же периферийного устройства. SPI и I2S имеют хотя бы и то общее, что являются параллельно-последовательными преобразователями с выделенной линией тактирования.
Arischenko Ivan
Ключевые слова для поиска : Sample Code Bundle lpc24xx

В частности полезна ссылка
"базовый" код ссылка

Также полезно посмотреть примеры которые поставляются совместно с Keil и uVision.
Paramedic
В общем случае I2S можно подружить с SPI , делал так. Но в каждом конкретном случае могут быть ограничения - нужно смотреть конкретные временные параметры обоих интерфейсов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.