Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SPI с несколькими Slave
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
AlexeyK
Есть задача разработать SPI связь с несколькими чипами. Нужно получать их айди и выводить на дисплей 16х2. Могли бы вы порекомендовать рабочий исходник SPI для Xilinx? Язык VHDL.
andrew_b
Драйвер SPI в общем-то простая штука: преобразование из параллельного вида в последовательный и обратно. Пишется максимум за несколько часов.

Вывод на дисплей -- отдельный модуль, с SPI не связанный.
MegaVolt
Цитата(AlexeyK @ Aug 14 2018, 01:39) *
Есть задача разработать SPI связь с несколькими чипами. Нужно получать их айди и выводить на дисплей 16х2. Могли бы вы порекомендовать рабочий исходник SPI для Xilinx? Язык VHDL.

В атачменте модуль. Взят тут: https://opencores.org/project/spi/overview
Допилено:
- переведён на AXI шину
- проверен
- исправлены баги.

Дарю.
Нажмите для просмотра прикрепленного файла
AlexeyK
Цитата(andrew_b @ Aug 14 2018, 07:50) *
Драйвер SPI в общем-то простая штука: преобразование из параллельного вида в последовательный и обратно. Пишется максимум за несколько часов.


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

Цитата(MegaVolt @ Aug 14 2018, 10:56) *
В атачменте модуль. Взят тут: https://opencores.org/project/spi/overview
Допилено:
- переведён на AXI шину
- проверен
- исправлены баги.

Дарю.
Нажмите для просмотра прикрепленного файла


Спасибо. Пока что это сложно для меня.
andrew_b
Цитата(AlexeyK @ Aug 14 2018, 12:02) *
Я могу сделать преобразователь Serial To Parallel и обратно.Но я не понимаю архитектуру как SPI будет взаимодействовать с дисплеем. Могли бы вы поподробнее рассказать как бы вы такое делали?
А что здесь такого сложного? Считанные по SPI данные подаём на вход модуля управления дисплеем. Возможно, потребуется какое-то преобразование.
MegaVolt
Цитата(andrew_b @ Aug 14 2018, 12:05) *
А что здесь такого сложного? Считанные по SPI данные подаём на вход модуля управления дисплеем. Возможно, потребуется какое-то преобразование.
Кто будет управлять дисплеем? Автомат на ПЛИС? Проц на плис? Внешний проц?


Да и какая плис стоит?
AlexeyK
Цитата(MegaVolt @ Aug 14 2018, 13:36) *
Кто будет управлять дисплеем? Автомат на ПЛИС? Проц на плис? Внешний проц?


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


Плис Xilinx XC6SLX45-2. Будет автомат скорее всего.
MegaVolt
Цитата(AlexeyK @ Aug 14 2018, 15:14) *
Плис Xilinx XC6SLX45-2. Будет автомат скорее всего.
Места немеряно можно и проц запихать sm.gif))

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

Соответственно вычитываем ID.
Преобразовываем ID и символы дисплея (коды символов)
Загружаем коды символов в дисплей.
iosifk
Цитата(AlexeyK @ Aug 14 2018, 15:14) *
Будет автомат скорее всего.

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

При таком раскладе будет значительно легче проектировать и отлаживаться.
Maverick
для примера, можете использовать такое описание (я переиспользовал старый проект - названия файлов лень было поменять)
AlexeyK
Цитата(Maverick @ Aug 15 2018, 17:19) *
для примера, можете использовать такое описание (я переиспользовал старый проект - названия файлов лень было поменять)


Большое спасибо. Я понимаю ваш код, потому что мне знакомо 3 Process Notation. Буду ковырять.
Maverick
Цитата(AlexeyK @ Aug 15 2018, 22:50) *
Большое спасибо. Я понимаю ваш код, потому что мне знакомо 3 Process Notation. Буду ковырять.

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

Будут вопросы пишите...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.