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

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.

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


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

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-состоянием? 

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

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


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

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

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

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

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

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

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

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

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

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