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

 
 
> Как организовать взаимодействие между модулями
COMA
сообщение Mar 15 2010, 11:47
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



Добрый день,

Пишу периферию для NIOS.
Задача периферийного блока - по SPI выдавать данные в несколько SPI ЦАПов.

Прикрепленное изображение


Алгоритм работы блока такой:
Процессорное ядро по прерыванию от таймера кладет в FIFO набор выборок
для ЦАПов, устанавливает бит начала передачи и выходит из прерывания.
Блок по этому биту начинает передавать данные в ЦАПы по SPI выбирая
нужный чипселектом.

Блок работает следующим образом.
Ждет разрешающий бит (флаг) от NIOS.
Выставляет 1-й SS.
Читает данные из FIFO. Выход FIFO подключен непосредственно к
сдвиговому регистру SPI.
Модуль "control" начинает передачу сигналом на линии "go" и ждет
завершения передачи по линии "done".
Модуль "spi_master" по сигналу "go" фиксирует значение из FIFO в
сдвиговом регисте, и начинает передачу.
Окончания передачи передается по линии "done".
Далее модуль "control" выставляет следующий SS, читает из FIFO, так далее до
завершения передачи во все ЦАПы,
Завершение обмена фиксирует флагом (битом) в управляющем регистре периферийного блока.

Собственно вопрос по взаимодействию между модулями.
Модуль "control" должен дать команду на выдачу модулю "spi_master" по
линии "go", и дождаться окончания передачи по линии "done".
Каким сигналом (способом) передавать? Держать на линии go всегда лог. 1 и убирать
его когда придет сигнал "done"?
Или передавать стробами длительностью 1 период тактового сигнала?

Если уровнем, то как организовать правильность снятия сигналов?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vadimuzzz
сообщение Mar 15 2010, 12:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



я делал похожий проект и сигнал "go" вел себя так:
Цитата(COMA @ Mar 15 2010, 17:47) *
Или передавать стробами длительностью 1 период тактового сигнала?

еще у меня было маскируемое прерывание на окончание передачи (когда done в 1 взводится), но у вас это, наверное, не нужно
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:42
Рейтинг@Mail.ru


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