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

 
 
> Передача данных из SPI в SPI, Подскажите как лучше
prussta
сообщение Mar 31 2015, 06:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 1-02-12
Из: Екатеринбург
Пользователь №: 70 003



Всем доброго времени суток! Подскажите, как лучше организовать систему. Система в целом выглядит так: Есть софт процессор NiosII - он выполняет основные задачи: отвечает на запросы пользователя, принимает какие-то данные, обрабатывает их, выдает ответы и прочее. Также есть два SPI: SPI1 - он принимает данные из вне как только вся система запустилась и SPI2 в который мне нужно эти данные (определенное количество) выплюнуть (этот SPI от Ethernet платки). Получается, что мне нужно постоянно гнать данные из SPI1 в SPI2. Причем, иногда мне нужно в этот поток данных добавлять еще байт своих данных. Как это можно организовать с минимальным участием проца? Чтобы он успевал делать свою основную работу и меньше отвлекался на эту передачу? Может есть какая-то переферия для таких задач? Подскажите куда посмотреть? Частота работа Niosa 100MГц, а данные на SPI1 приходят с частотой 24Мгц.
Пока у меня рисуется стандартный вариант: по прерыванию на прием по SPI1 я через DMA записываю поступившие данные в память, как только пришло необходимое кол-во байт, выставляю флаг. И в основном цикле программы по этому флагу отправляю эти данные в SPI2.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prussta
сообщение Apr 3 2015, 11:10
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 1-02-12
Из: Екатеринбург
Пользователь №: 70 003



Цитата
У вас есть допустим 2 FIFO. 1-ая (FIFO1) заполняется процессором в режиме DMA, а вторая с порта SPI1 (FIFO2).


Dmitriyspb, а как вы предлагаете с порта SPI1 заполнять FIFO2? Есть варианты его заполнения без участия процессора? Даже если использовать DMA, то получается, что надо при приходе данных в регистр SPI1 нужно вызывать ф-ию alt_dma_rxchan_prepare(...), чтобы DMA передал эти данные в FIFO2 . Можно ли как-нибудь это обойти? В идеале хотелось бы так настроить передачу, чтобы данные приходя в SPI1 сразу бы записывались в FIFO2, и проц при этом не беспокоить.
Go to the top of the page
 
+Quote Post
GAYVER
сообщение Apr 3 2015, 11:45
Сообщение #3


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

Группа: Свой
Сообщений: 139
Регистрация: 3-04-13
Пользователь №: 76 333



Цитата(prussta @ Apr 3 2015, 14:10) *
Dmitriyspb, а как вы предлагаете с порта SPI1 заполнять FIFO2? Есть варианты его заполнения без участия процессора? Даже если использовать DMA, то получается, что надо при приходе данных в регистр SPI1 нужно вызывать ф-ию alt_dma_rxchan_prepare(...), чтобы DMA передал эти данные в FIFO2 . Можно ли как-нибудь это обойти? В идеале хотелось бы так настроить передачу, чтобы данные приходя в SPI1 сразу бы записывались в FIFO2, и проц при этом не беспокоить.


вы настоящий программист sm.gif. не проще сделать отдельный контроллер, реализующий запись SPI1->FIFO2, который снимет с процессора эту задачу? SPI протокол известен, скорость записи в фифо гораздо выше скорости SPI. все сведется к сдвиговому регистру, собирающего слова от SPI, и выставляющим строб записи для фифо как только это слово будет собрано
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- prussta   Передача данных из SPI в SPI   Mar 31 2015, 06:12
- - Dmitriyspb   Цитата(prussta @ Mar 31 2015, 09:12) Всем...   Mar 31 2015, 06:37
- - prussta   Цитата2) простенький блочек, который соберет в куч...   Mar 31 2015, 07:11
|- - Dmitriyspb   Цитата(prussta @ Mar 31 2015, 10:11) я пр...   Mar 31 2015, 07:19
|- - prussta   Цитата(Dmitriyspb @ Mar 31 2015, 13:19) М...   Mar 31 2015, 07:26
|- - Dmitriyspb   Цитата(prussta @ Mar 31 2015, 10:26) Так ...   Mar 31 2015, 07:46
|- - prussta   Ах, вот оно что! Спасибо, Дмитрий, за разъясне...   Mar 31 2015, 08:54
|- - Dmitriyspb   Цитата(prussta @ Mar 31 2015, 11:54) Я пр...   Mar 31 2015, 09:02
|- - prussta   Цитата(Dmitriyspb @ Mar 31 2015, 15:02) С...   Mar 31 2015, 09:40
- - prussta   Да, подобное и нужно)) контроллер этот как реализо...   Apr 5 2015, 08:40
- - GAYVER   с фифошкой никогда плотно не работал, но на скорую...   Apr 6 2015, 07:49
- - Dmitriyspb   Цитата(prussta @ Apr 5 2015, 11:40) Да, п...   Apr 6 2015, 08:24
- - prussta   Цитата(Dmitriyspb @ Apr 6 2015, 14:24) Дл...   Apr 6 2015, 11:28
- - Dmitriyspb   Цитата(prussta @ Apr 6 2015, 14:28) Я так...   Apr 6 2015, 11:57
- - GAYVER   а ведь действительно, если работать по прерыванию ...   Apr 7 2015, 07:17


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:04
Рейтинг@Mail.ru


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