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

    

3 - проводный SPI Vivado

Добрый день! 

Необходимо сконфигурировать с помощью zynq ацп и цап, имеющий только 3 - х проводный spi. Axi-quad SPI работает только в 4-х проводном. Может кто сталкивался, как это можно сделать?

Спасибо.

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


Ссылка на сообщение
Поделиться на другие сайты
On 11/24/2018 at 12:11 PM, Yaroslav said:

Добрый день! 

Необходимо сконфигурировать с помощью zynq ацп и цап, имеющий только 3 - х проводный spi. Axi-quad SPI работает только в 4-х проводном. Может кто сталкивался, как это можно сделать?

Спасибо.

Смотрите внимательно настройки ядра qspi - оно работает в одно-, двух- и 4-х канальном режиме. Если ничего не помогает - читайте даташит по ядру.

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


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

Одно-, двух- и 4-х канальные режимы используют и MISO и MOSI линии. Мне нужен именно трех проводный SPI, где и чтение и запись осуществляются по одной линии 

SPIStormStandardProtocols_Full.png

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


Ссылка на сообщение
Поделиться на другие сайты
19 часов назад, gosha-z сказал:

Дурацкий вопрос: а чем PSный SPI не устроил?

В PSном SPI я тоже не нашел способа решения проблемы 3-х проводного SPI.

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


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

сделайте на 3х пинах гпио - дергайте ими в нужной последовательности

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


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

SPI вещь простая. Хоть ведущий, хоть ведомый. Хоть 3-, хоть 4-проводный. Упражнение для начинающих. Давно бы сами написали.

Или вам принципиально нужно с интерфейсом AXI?

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


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, andrew_b сказал:

SPI вещь простая. Хоть ведущий, хоть ведомый. Хоть 3-, хоть 4-проводный. Упражнение для начинающих. Давно бы сами написали.

Или вам принципиально нужно с интерфейсом AXI?

Желательно, но не обязательно. Думал, может есть какой-то уже готовый способ для этого

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


Ссылка на сообщение
Поделиться на другие сайты
On 11/24/2018 at 4:11 PM, Yaroslav said:

Добрый день! 

Необходимо сконфигурировать с помощью zynq ацп и цап, имеющий только 3 - х проводный spi. Axi-quad SPI работает только в 4-х проводном. Может кто сталкивался, как это можно сделать?

Спасибо.

Увы, решения на стандартных корках не существует. Варианта два :

1. Вы смиряетесь с тем, что у вас нет чтения из регистров от слова "совсем" и как-то живёте с этим дальше.

2. Вы используете режим GPIO и там уже реализуете "софтверно" нужный протокол. У программистов это называется по-моему bit bang.

 

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


Ссылка на сообщение
Поделиться на другие сайты
43 minutes ago, Bad0512 said:

Увы, решения на стандартных корках не существует. Варианта два :

 

У меня написан простенький модуль, который разбирает протокол и сам преобразует два сигнала в один двунаправленный. Естественно это работает если формат транзакций одинаковый у всех устройств на данной шине. Вот почему Xilinx не сделает поддержку 3-проводного SPI в своем контроллере, с учетом что сейчас куча периферии с ним - ума не приложу.

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


Ссылка на сообщение
Поделиться на другие сайты
3 hours ago, alexadmin said:

У меня написан простенький модуль, который разбирает протокол и сам преобразует два сигнала в один двунаправленный. Естественно это работает если формат транзакций одинаковый у всех устройств на данной шине.

Вот в этом как раз и есть основная проблема. У всех этих мелких SPI-ных устройств протоколы чуть-чуть отличаются (где-то длина слова нестандартная, где-то полярность чипселекта инверсная и т.п.). Поэтому можно конечно написать корку и потом "допиливать" её под каждого конкретного "зверька". Но (ИМХО) это не самый простой путь, много времени скушает отладка. Я обычно иду по второму пути (GPIO и управление всем этим делом из софта) - благо таблички регистров для этих мелких устройств как правило небольшие по размеру.

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


Ссылка на сообщение
Поделиться на другие сайты
1 minute ago, Bad0512 said:

Вот в этом как раз и есть основная проблема. У всех этих мелких SPI-ных устройств протоколы чуть-чуть отличаются (где-то длина слова нестандартная, где-то полярность чипселекта инверсная и т.п.). Поэтому можно конечно написать корку и потом "допиливать" её под каждого конкретного "зверька". Но (ИМХО) это не самый простой путь, много времени скушает отладка. Я обычно иду по второму пути (GPIO и управление всем этим делом из софта) - благо таблички регистров для этих мелких устройств как правило не большие по размеру.

Ну там всех параметров-то полярность клока, чип-селекта, позиция r/w бита да длина адреса. На практиче последние года два параметры менять не приходилось. Вроде даже у TI и Analog'а все совпало.

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


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, alexadmin сказал:

 

У меня написан простенький модуль, который разбирает протокол и сам преобразует два сигнала в один двунаправленный. Естественно это работает если формат транзакций одинаковый у всех устройств на данной шине. Вот почему Xilinx не сделает поддержку 3-проводного SPI в своем контроллере, с учетом что сейчас куча периферии с ним - ума не приложу.

С использованием IOBUF и изменяющимся по счетчику T-состоянием? 

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


Ссылка на сообщение
Поделиться на другие сайты
1 minute ago, Yaroslav said:

С использованием IOBUF и изменяющимся по счетчику T-состоянием? 

Да, типа того.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти