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

 
 
> ARM7 или Cortex-Mx SDIO SLAVE возможно ли ?, возможно ли сделать SDIO в режиме Slave?
detonator
сообщение May 14 2012, 19:50
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 13-05-09
Пользователь №: 49 010



Может задача показаться немного страной и у многих появится идея решить её по другому.
( право каждого! Но не хотел бы чтобы тема была раскрыта и не укатилась в полёте мыслей участников в “тамтарары”. )

Давно просматривая возможность межпроцессорного взаимодействия на скоростях выше 25 МегаБайт в секунду.
Есть задумка реализовать это на интерфейсе SDIO сейчас воткнутом почти во всех микроконтроллерах. В режимах 4 или 8 битной шины такие скорости реализовать возможно.

Но не нашел контроллера ( приоритет ARM7/Cortex-Mx из за цены ) где возможно SDIO настроить на приём! Вывод CLK у всех интерфейсов настраивается как выход.
( Нюансы программной часть сейчас более тщательно просматриваю. )

Подскажите, пожалуйста, возможно ли настроить в микроконтроллере блок SDIO на приём?
Допускается обход стандартного алгоритма протокольной части. То есть возможно не придерживаться заложенного в стандарте этапов инициализацию , пересылку команд, и гнать просто данные в любом направлении ! Не важно данные идут от мастера к ведомому или на оборот.
Если есть предложения как возможно реализовать и на чем пишите, жду с нетерпением sm.gif.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrey Vasilyev
сообщение Feb 15 2013, 04:24
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 5-12-08
Из: Санкт-Петербург
Пользователь №: 42 220



В STM32 можно триггерить выдачу/прием данных с GPIO через DMA посредством event-ов, повешенных, например, на событие захвата таймера. А таймер можно сконфигурировать так, чтобы событие возникало по определенной ножке.
Таким образом, можно соединить на двух процессорах некоторый набор ног одного GPIO-порта (лучше, если с нулевого пина до 7 или до 15-го), а также ногу таймеров, и на передающей стороне через таймер триггерить передачу данных из SRAM на ноги GPIO, сконфигурировав также ногу таймера на вывод импульсов в соответствующее время, а на принимающей стороне ногу таймера сконфигурировать на генерацию event-а для запуска DMA, вычитывающего данные в соответствующий момент времени с GPIO в SRAM.
Коряво, но быстро и без участия ядра процессора.
Впрочем, все равно это получается хак, не переносимый на другие семейства процессоров. Да и за реализуемость не поручусь - сам я подобного не делал, и мало ли что я неправильно понял в документации.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 15 2013, 06:56
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Andrey Vasilyev @ Feb 15 2013, 10:24) *
В STM32 можно триггерить выдачу/прием данных с GPIO через DMA посредством event-ов, повешенных, например, на событие захвата таймера...
Я писал как раз о подобном, только - применительно к LPC sm.gif
Это реализуемо. Засада может быть только в задержках DMA: на LPC17x и других семействах LPC, до LPC177x приоритет доступа к шине у CPU (фиксирован), соответственно (имхо) из-за этого DMA может частенько подтормаживать (у меня были проблемы с этим на SSP на максимальных частотах, а здесь нужна ещё большая скорость DMA). На LPC177x можно режить проблему, повысив приоритет GPDMA через регистр арбитража доступа к шине.
На других процессорах придётся пустить сигнал обратной синхронизации (кроме сигнала строба данных (CS) передатчик->приёмник) - подтверждение приёмник->передатчик. На каждое чтение слова. Он будет идти с частотой строба, но сдвинут по фазе относительно него. И этот сигнал заводить на вход CLK таймера передатчика, генерящего события для TX-DMA.

Если-же приоритет доступа к шине у DMA-контроллера и нет проблем с задержками доступа к шине от DMA, то можно вообще обойтись одним импульсом сигнала синхронизации от TX и одним - готовности от RX, а дальше - слать данные блоком, внутри синхронизируя DMA-каналы от таймеров, не выводя сигналы таймеров наружу. И так - до некоторого размера блока, зависящего от разности частот задающих генераторов двух CPU (погрешности частоты генераторов). Далее - опять синхронизация и новый блок. Я почти так когда-то делал - работало стабильно wink.gif
А если 2 CPU работают от одного генератора - так вообще халва wink.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- detonator   ARM7 или Cortex-Mx SDIO SLAVE возможно ли ?   May 14 2012, 19:50
- - aaarrr   Цитата(detonator @ May 14 2012, 23:50) По...   May 14 2012, 20:17
- - KRS   Цитата(detonator @ May 14 2012, 23:50) По...   May 14 2012, 20:22
|- - aaarrr   Цитата(KRS @ May 15 2012, 00:22) А как че...   May 14 2012, 20:30
|- - KRS   Цитата(aaarrr @ May 15 2012, 00:30) Прово...   May 14 2012, 20:41
|- - aaarrr   Цитата(KRS @ May 15 2012, 00:41) или все ...   May 14 2012, 20:44
|- - KRS   Цитата(aaarrr @ May 15 2012, 00:44) Именн...   May 14 2012, 21:50
|- - aaarrr   Цитата(KRS @ May 15 2012, 01:50) а еще дв...   May 14 2012, 21:55
- - detonator   Спасибо за быстрый ответ. наблюдение - тема укатил...   May 15 2012, 04:06
|- - izerg   Вы не рассматриваете возможность реализации двумя ...   May 15 2012, 05:47
|- - aaarrr   Цитата(detonator @ May 15 2012, 08:06) ку...   May 15 2012, 08:30
- - detonator   Уже рассматривал! вопрос в финансовой части. (...   May 15 2012, 06:28
- - Altemir   detonator А нельзя просто по параллельному интерфе...   May 15 2012, 09:28
- - detonator   Altemir EMC занят на одном и возможно на втором ...   May 15 2012, 12:44
- - Tano   To detonator. Ну что-то получилось? Просматриваю т...   Feb 9 2013, 09:32
|- - jcxz   По-моему это задача реализации сферического коня в...   Feb 9 2013, 09:55
- - Andrey Vasilyev   Цитата(jcxz @ Feb 15 2013, 10:56) Я писал...   Feb 22 2013, 18:24
- - jcxz   Дело было уже давно и возможно я что-то путаю, но ...   Feb 24 2013, 10:14


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

 


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


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