Полная версия этой страницы:
FPGA+ARM=SPI
uragan90
Apr 26 2010, 08:39
При разработке измерительного прибора встала задача организовать интерфейс связи EP1C3T144 c LPC2368. К FPGA краме АРМа подключены два ацп и статическая память K6R4016. ПЛИС читает значения складывает в память на высокой скорости, а потом не спеша отдает данные МК для последующей обработки. Шина 8бит данные идет с ПЛИС на АРМ, а вот управление всякого рода счетчиками регистров, синхронизацией и т.д. не знаю как наладить! Может есть какой то универсальный интерфейс для моей задачи типа SPI I/O допустим 8бит данные+ 4SPI? Извените если что с ПЛИСоми только начал разбираться.
Kuzmi4
Apr 26 2010, 08:44
У этого арма куча интерфейсов, а вы какие именно из них завели в плису?
Как вариант, если есчё на стадии разработки ПП, можно взять 1 уарт и конфигурить всю лабуду неспеша.
uragan90
Apr 26 2010, 08:55
Дело в том что я еще на стадии обдумывания прибора (осциллограф). Можно было бы просто линий накидать сколько надо и все, но тут дело в том что надо унифицировать шину. Как сделать ума неприложу?!
Kuzmi4
Apr 26 2010, 09:06
То есть вы хотите по одной и той же шине и конфигурить и считывать данные ??
С быстрых интерфейсов у этого арма только USB и Ethernet. К USB присоседиться для плиса трудновато, как вариант RMII
Кстати,
ЭТО смотрели ?
И зачем вам 5В срамина ??
Цитата(uragan90 @ Apr 26 2010, 11:39)

Шина 8бит данные идет с ПЛИС на АРМ, а вот управление всякого рода счетчиками регистров, синхронизацией и т.д. не знаю как наладить!
По той же шине. Шина адреса есть? Декодировать разные устройства по адресу. А уже из ПЛИС, если надо, наружу вывести управляющие сигналы.
uragan90
Apr 26 2010, 09:41
Будет карта памяти на ней образы конфигурации плис и мк взависимости от задачи меняет радикально прошивку плис. Это помимо того что кроме 8бит данных и еще какойто дуплексной шины, но какой вот в чем вопрос.
Цитата(uragan90 @ Apr 26 2010, 12:41)

Будет карта памяти на ней образы конфигурации плис и мк взависимости от задачи меняет радикально прошивку плис. Это помимо того что кроме 8бит данных и еще какойто дуплексной шины, но какой вот в чем вопрос.
А почему 8бит данных шина не может быть дуплексной?
skripach
Apr 26 2010, 10:11
Может шину внешней памяти надо узать а?
uragan90
Apr 26 2010, 11:21
Понимаете тут надо так плис дает такт и читает данные с ацп, заносит в внешнюю память заполняя ее, счетчик регистра памяти каждый раз обновляется. Затем плис сообщает о заполнении и мк подключается на прием данных получает доступ к счетчику регистра памяти. Еще и тригер там и много чего еще, и тут вопрос к шине как при достаточной скорости сделать чтоб шина была двунаправленая и самодостаточна и изменяя прошивку плис, мк принцип действия не менялся?
Костян
Apr 26 2010, 11:23
Цитата(Kuzmi4 @ Apr 26 2010, 07:06)

С быстрых интерфейсов у этого арма только USB и Ethernet. К USB присоседиться для плиса трудновато, как вариант RMII
Неправда, ARM и ПЛИС легко объединяются, если последний подключается к первому по интерфейсы статической памяти. Кроме того, ПЛИС войдет в этом случае в адресное пространство ядра.
Нужно каждому устройству внутри ПЛИС - счетчику, памяти и др. - назначить свой адрес. Завести шину адреса (я вместо шины адреса завел один сигнал ALE, по которому защелкивал адрес с той же шины данных). Декодировать адрес для каждого устройства. Объединить с сигналами чтения и записи. И тогда можно по той же шине читать или писать все, что нужно.
uragan90
Apr 26 2010, 13:49
Ок! Но чуточку бы поподробней, а то я еще начинающий в плис! Как сделать чтоб и адрес принимала и отдавала на чтение мк? Тут чтото не понял! Тоесть когда передает плис данные мк слушается плис, а когда мк адрес устройства шлет плис молчит и слушает внимательно, да?
Главный (мастер) - микроконтроллер. От него идут сигналы WR_n и RD_n. Когда активен WR, ПЛИС принимает по шине данных и записывает в свои внутренние регистры. Когда активен RD, ПЛИС выдает свое на шину данных. Одновременно, конечно, не возможно

А адрес - защелкнуть. Он и останется в регистре (назовем регистр адреса) ПЛИС.
uragan90
Apr 26 2010, 14:28
Чтото в этом есть! Круто!! А как быть с прошивкой плис через мк?
Цитата(uragan90 @ Apr 26 2010, 17:28)

А как быть с прошивкой плис через мк?
У меня была ПЛИС ACEX, у которой был режим параллельной конфигурации. У Cyclone есть только serial режимы. Поэтому нужно использовать интерфейс SPI.
Можно использовать ту же SPI и для обмена данными, тоже передавать адрес, направление передачи, потом данные. И тогда параллельная шина не понадобится. Только с выводами ПЛИС разобраться. Они будут разные при конфигурации и при работе.
uragan90
Apr 26 2010, 18:57
Блин. Опять плохо понял! Какой SPI там же жтаг разве нет? Объясните поподробней если возможно, я буду примного благодарен! Как конфигурировать и работать по одной шине?
EvgenyNik
Apr 26 2010, 20:18
uragan90, прочтите вдумчиво режим конфигурирования ПЛИС - passive serial (PS), тогда и поймёте, что незачем городить jtag там, где можно обойтись аппаратным SPI АРМа.
Задействовать SRAMовский интерфейс ARMа под общение с ПЛИС можно, но здесь надо смотреть - если работа у ПО с внешней памятью насыщенная, то могут возникнуть тормоза. Хотя, всё относительно, ибо параллельная шина может выйграть за счёт работы сразу словом на той же частоте.
Изучите свой ARM на наличие интерфейсов (SPI, SSC, PPI и т.п.) и их особенностей. Отдельно отметьте - что (проц или ПЛИС) выгоднее сделать источником тактовой для последовательного интерфейса, иногда это даёт различие раза в 2 по максимальной частоте передачи/приёма.
uragan90
Apr 29 2010, 09:23
Спасибо вам огромное всем откликнувшимся!!! Попробую с этим разобраться! Суть понял!!!!
uragan90
May 10 2010, 15:52
Вот, может кому пригодится реализация такого интерфейса!
http://forum.xdevs.com/viewtopic.php?f=16&t=448
FAE_SKV
May 12 2010, 06:14
Цитата(uragan90 @ Apr 26 2010, 12:39)

При разработке измерительного прибора встала задача организовать интерфейс связи EP1C3T144 c LPC2368. К FPGA краме АРМа подключены два ацп и статическая память K6R4016. ПЛИС читает значения складывает в память на высокой скорости, а потом не спеша отдает данные МК для последующей обработки. Шина 8бит данные идет с ПЛИС на АРМ, а вот управление всякого рода счетчиками регистров, синхронизацией и т.д. не знаю как наладить! Может есть какой то универсальный интерфейс для моей задачи типа SPI I/O допустим 8бит данные+ 4SPI? Извените если что с ПЛИСоми только начал разбираться.
Есть более простой способ. Посмотри ПЛИС Актел SmartFusion.
http://actel.ru/products/fpga/smartfusion.html. Внутри ARM процессор, ПЛИС и аналоговый блок с двумя АЦП и входными аналоговыми операционными усилителями. Как мне кажется, эта ПЛИС для этой задачи как раз подойдет.
uragan90
May 12 2010, 07:10
Дружище! Вы што? Этот камень наверно стоит как арбитальная станция?
FAE_SKV
May 12 2010, 07:27
Цитата(uragan90 @ May 12 2010, 11:10)

Дружище! Вы што? Этот камень наверно стоит как арбитальная станция?
Ну, если орбитальная станция стоит тыщи полторы рубликов за штуку, то да.
uragan90
May 12 2010, 07:53
Спасибо! Крутой камушек, ничего не скажешь, если его ставить то платка будет маленькая!! Но мне как начинающиму в плис, наверно такой не потянуть?!
FAE_SKV
May 12 2010, 08:21
Цитата(uragan90 @ May 12 2010, 11:53)

Спасибо! Крутой камушек, ничего не скажешь, если его ставить то платка будет маленькая!! Но мне как начинающиму в плис, наверно такой не потянуть?!
Вся разработка ведется в графическом редакторе. Особых знаний и не нужно. Кликай по квадратикам, да расставляй галочки. Если наловчиться, то проект можно за полчаса собрать и отладить. Внутри стандартный ARM-овский процессор.
uragan90
May 12 2010, 08:45
Не, пусть это будет версия 2.0......
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.