Перейти к содержанию
    

SPI на MAXII

В системе MAXII на частоте 120MHz и медленный процессор 16MHz таковая.

Процессор должен записать данные 8 бит по определённому адресу и cpld должна передать его дальше по SPI.

Т.е. преобразовать параллельный код в последовательный.

Только в одну сторону начиная с младшего бита по нарастающему фронту spi клока. Приём не нужен.

Вот "наваял" в блок схеме нечто , вроде работает.  Опыта не шибко много.

Подскажите, не слишком ли перемудрил? делают ли так в принципе?

А может кто чего посоветует как лучше или правильнее сделать надо/можно.

В аттаче сама схема и временная диаграмма. Имена сигналов вроде должны быть интуитивно понятны.

WRSPI - выход дешифратора адреса активная 1 (на схеме не показал дабы не загромождать)

nWR - сигнал записи процессора (запись по нарастающему фронту) 

На времянке имитируется запись процессором данных : 0x45

 

spi.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в чём сомнения? Схема синхронная. Если успевает до следующего обращения то всё отлично. Правда не вижу сигнал CS для устройства но возможно он не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, MegaVolt said:

А в чём сомнения? Схема синхронная. Если успевает до следующего обращения то всё отлично. Правда не вижу сигнал CS для устройства но возможно он не нужен.

Спасибо. мне просто нужен был взгляд со стороны.

Задача то вроде простейшая, а элементов для её реализации как-то вроде много пришлось использовать.

Вот и засомневался не слишком ли намудрил. 

CS не нужен - он формируется процессором отдельно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работает и чудненько. Правила для ПЛИС не нарушает и отлично. А вылизывать схему экономя триггер во времена ПЛИС уже как то и не принято без веских на то оснований.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, MegaVolt said:

Работает и чудненько. Правила для ПЛИС не нарушает и отлично. А вылизывать схему экономя триггер во времена ПЛИС уже как то и не принято без веских на то оснований.

Ясно.

Еще вопрос вдогонку :

возможно ли реализовать синхронную схему не на делённой на два тактовой частоте, а на полной?

Т.е. что бы частота SPIS была равна входной частоте CLK поступающей на плис.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не вижу проблем. На то схема и синхронная чтобы все процессы происходили через 1 такт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

46 minutes ago, MegaVolt said:

Не вижу проблем. На то схема и синхронная чтобы все процессы происходили через 1 такт.

А я не понимаю как SPIS (частота spi колка) может быть равна CLK (входной частоте на плис).

Ведь в таком случае придётся использовать какой-то разрешающий элемент перед пином SPIS.

На входы которого должна поступать входная частота и сигнал разрешения.

А это уже асинхронщина.

Или я чего не так понимаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не скажу про MAXII, но у ПЛИС Xilinx есть ODDR выходной буфер. Он позволяет вывести частоту, поданную на его вход clk в прямом или инвертированном виде.

Посмотрите, вдруг и у Intel подобное есть...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, zombi сказал:

А я не понимаю как SPIS (частота spi колка) может быть равна CLK (входной частоте на плис).

Как верно уже предложили можно использовать DDR триггер который работает по двум фронтам и имеет два входа. На один подаётся 0 на второй 1.

Если же такой возможности нет то есть несколько вариантов.:

1. Завести внутри кристалла удвоенную частоту. И отталкиваясь от неё всё сделать.

2. Вывести наружу клок. Хотя это вроде как и криминал но как по мне так путь от глобального буффера до выхода из кристалла будет вполне фиксированным. Опять же не знаю скоростные параметры вашего кристалла. При необходимости подвинуть данные относительно клока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...