Jump to content
    

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

Добрый день! 

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

Спасибо.

Share this post


Link to post
Share on other sites

On 11/24/2018 at 12:11 PM, Yaroslav said:

Добрый день! 

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

Спасибо.

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

Share this post


Link to post
Share on other sites

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

SPIStormStandardProtocols_Full.png

Share this post


Link to post
Share on other sites

19 часов назад, gosha-z сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

3 часа назад, andrew_b сказал:

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

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

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

Share this post


Link to post
Share on other sites

On 11/24/2018 at 4:11 PM, Yaroslav said:

Добрый день! 

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

Спасибо.

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

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

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

 

Share this post


Link to post
Share on other sites

43 minutes ago, Bad0512 said:

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

 

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

Share this post


Link to post
Share on other sites

3 hours ago, alexadmin said:

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

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

Share this post


Link to post
Share on other sites

1 minute ago, Bad0512 said:

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

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

Share this post


Link to post
Share on other sites

3 часа назад, alexadmin сказал:

 

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

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

Share this post


Link to post
Share on other sites

1 minute ago, Yaroslav said:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...