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

 
 
> Как организовать взаимодействие между модулями
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



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

 


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


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