Pull to refresh

Comments 3

Спасибо за статью!
А аппаратный SPI не использовали просто потому, что эксперименты с GPIO шли или были ещё причины?
Ой, там целая куча причин, и все — личные.

Первое — в следующей статье я покажу, что мне крайне невыгодна реально высокая скорость SPI. Я в ПЛИС автомат построил такой, который не терпит высокой скорости. А более крутой — не хотелось тратить время на разработку.

Дальше — я играл в SPI и даже в SDIO на разновидности FX3 по имени FX3S. Там работа была возможна только через хитрый API. Как я уже отметил, API у Кипарисов уж чересчур хитрый. Наверняка можно и напрямую через порты, но не хотелось тратить время на изучение.

Опять же, когда я просил товарища развести мне плату — не было времени детально разбираться и указывать настоящие SPI ноги (я до сих пор не знаю, какие именно нужны были бы, и есть ли они у FX3 без S). Тем более, что на тот момент у меня ещё не было видения, как я буду управлять ПЛИСкой со стороны FX3. Про SPI придумалось во время проекта на базе Litex, когда я играл в переходники «что угодно в WISHBONE». Именно тогда я подумал, что почему бы не сделать свой SPI в AVALON_MM?

В общем, управляющие ноги на плате выбраны по принципу «А почему бы и нет?». Сейчас я работаю на уже готовой плате. Так что на ней — только через GPIO и программную шину.

Итого, технических причин нет. Все — глубоко личные. Для моей задачи хватит этого, тратить время на ненужное — нет этого самого времени, а к статье это относится всё равно чисто, как вспомогательная вещь. Так что статью про Vendor команды вполне не стыдно было написать и с таким уровнем SPI.

А для моей задачи — я уже в этой статье писал, что «я не проверяю статуса, ведь я знаю, что всё работает медленно, так что точно успеет отработать». И перейдя с TCL на С++ и USB3, я продолжаю говорить то же самое. Теперь гарантированная задержка возникает в SPI. Удобно! Для данной конкретной задачи, разумеется.
Есть причины. Если GPIF работает в 32-битном режиме, то SPI нельзя использовать — архитектурное ограничение FX3. Так что есть целесообразность реализации программного SPI для FX3. Единственная беда в том, что делитель клока для GPIO слишком большой, поэтому не получается переключать порт в ручном режиме на высокой скорости. Частота в 500КГц — уже удача. То, что автору удалось её поднять до 4МГц это реально успех, спасибо ему за это. Сам предложенную в статье идею с ускорением не проверял ещё, хотя есть один свой проект на FX3, где это очень даже будет полезно.
Sign up to leave a comment.

Articles