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

 
 
 
Reply to this topicStart new topic
> I2S и SPI
n_Nice
сообщение Apr 27 2011, 06:52
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 27-04-11
Пользователь №: 64 641



Добрый день!
Не так давно пришлось заняться микроконтроллерами, а именно arm7 lpc2378!
То что я зелёный в этой сфере это мягко сказано, но задача чёткая - состоит в стыковке I2S и SPI!
Пожалуйста помогите с направлением отчего оттолкнуться в плане кода(кусочки кода или функции, желательно с подробным описанием)
отдельно находил код для SPI(на другие мк) и I2S(но для USB) разобраться не получилось в них!
заранее спасибо!
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Apr 27 2011, 07:41
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(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, И т.д. и т.п. Под реализацией должна стоять целая концепция, а не просто "задача в стыковке".

Сообщение отредактировал KnightIgor - Apr 27 2011, 07:51
Go to the top of the page
 
+Quote Post
evg123
сообщение Apr 27 2011, 14:07
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282



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).
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Apr 27 2011, 16:26
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
но задача чёткая - состоит в стыковке I2S и SPI

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

К слову, SPI и I2S не имеют ничего общего.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Apr 27 2011, 16:41
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



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

Производители чипов, почему-то, имеют иное мнение на этот счет. Например, ST, у которого SPI и I2S есть различные режимы одного и того же периферийного устройства. SPI и I2S имеют хотя бы и то общее, что являются параллельно-последовательными преобразователями с выделенной линией тактирования.
Go to the top of the page
 
+Quote Post
Arischenko Ivan
сообщение Apr 27 2011, 20:42
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 29-10-06
Пользователь №: 21 768



Ключевые слова для поиска : Sample Code Bundle lpc24xx

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

Также полезно посмотреть примеры которые поставляются совместно с Keil и uVision.
Go to the top of the page
 
+Quote Post
Paramedic
сообщение May 4 2011, 08:23
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



В общем случае I2S можно подружить с SPI , делал так. Но в каждом конкретном случае могут быть ограничения - нужно смотреть конкретные временные параметры обоих интерфейсов.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 13:00
Рейтинг@Mail.ru


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