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

SPI с несколькими Slave

Есть задача разработать SPI связь с несколькими чипами. Нужно получать их айди и выводить на дисплей 16х2. Могли бы вы порекомендовать рабочий исходник SPI для Xilinx? Язык VHDL.

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


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

Драйвер SPI в общем-то простая штука: преобразование из параллельного вида в последовательный и обратно. Пишется максимум за несколько часов.

 

Вывод на дисплей -- отдельный модуль, с SPI не связанный.

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


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

Есть задача разработать SPI связь с несколькими чипами. Нужно получать их айди и выводить на дисплей 16х2. Могли бы вы порекомендовать рабочий исходник SPI для Xilinx? Язык VHDL.

В атачменте модуль. Взят тут: https://opencores.org/project/spi/overview

Допилено:

- переведён на AXI шину

- проверен

- исправлены баги.

 

Дарю.

axi_spi128_v1_00_a.zip

 

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


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

Драйвер SPI в общем-то простая штука: преобразование из параллельного вида в последовательный и обратно. Пишется максимум за несколько часов.

 

Я могу сделать преобразователь Serial To Parallel и обратно.Но я не понимаю архитектуру как SPI будет взаимодействовать с дисплеем. Могли бы вы поподробнее рассказать как бы вы такое делали?

 

В атачменте модуль. Взят тут: https://opencores.org/project/spi/overview

Допилено:

- переведён на AXI шину

- проверен

- исправлены баги.

 

Дарю.

axi_spi128_v1_00_a.zip

 

Спасибо. Пока что это сложно для меня.

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


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

Я могу сделать преобразователь Serial To Parallel и обратно.Но я не понимаю архитектуру как SPI будет взаимодействовать с дисплеем. Могли бы вы поподробнее рассказать как бы вы такое делали?
А что здесь такого сложного? Считанные по SPI данные подаём на вход модуля управления дисплеем. Возможно, потребуется какое-то преобразование.

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


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

А что здесь такого сложного? Считанные по SPI данные подаём на вход модуля управления дисплеем. Возможно, потребуется какое-то преобразование.
Кто будет управлять дисплеем? Автомат на ПЛИС? Проц на плис? Внешний проц?

 

 

Да и какая плис стоит?

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


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

Кто будет управлять дисплеем? Автомат на ПЛИС? Проц на плис? Внешний проц?

 

 

Да и какая плис стоит?

 

Плис Xilinx XC6SLX45-2. Будет автомат скорее всего.

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


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

Плис Xilinx XC6SLX45-2. Будет автомат скорее всего.
Места немеряно можно и проц запихать :)))

 

Читаем доку на микросхемы узнаём последовательность байт/слов для того чтобы получить ID

Читаем доку на дисплей узнаём последовательность байт/слов для того чтобы отобразить нечто.

 

Соответственно вычитываем ID.

Преобразовываем ID и символы дисплея (коды символов)

Загружаем коды символов в дисплей.

 

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


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

Будет автомат скорее всего.

Если хотите автомат, то рекомендую сделать не один автомат, а два или три.

Нижний - фильтрует принятый фронт клока или данных от дребезга. это если возможны колебательности или дребезгт в линии.

Средний передавать/принимать слово, путем запуска "нижнего".

Верхний - ведет обмен, формирует массивы данных и указатели и запускает средний.

 

При таком раскладе будет значительно легче проектировать и отлаживаться.

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


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

для примера, можете использовать такое описание (я переиспользовал старый проект - названия файлов лень было поменять)

sim_DAC_AD5724.7z

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


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

для примера, можете использовать такое описание (я переиспользовал старый проект - названия файлов лень было поменять)

 

Большое спасибо. Я понимаю ваш код, потому что мне знакомо 3 Process Notation. Буду ковырять.

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


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

Большое спасибо. Я понимаю ваш код, потому что мне знакомо 3 Process Notation. Буду ковырять.

Команды для инициализации хранятся в блочной памяти и поочередно читаются и подаются на дисплей... Блочная память инициализируется изначально....

Там есть симуляция... RTL viewer тоже поможет понять...

 

Будут вопросы пишите...

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


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

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

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

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

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

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

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

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

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

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