Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА:

VGA 11 года 7 мес. назад #3238

С общей работой устройства опять ничего неясно :) Но микрушка действительно шикарная :) Как то собирал подобное на CD4066. Я делал переключатель для нескольких ядер МК между памятью и шиной. Потом плюнул и впихнул всё в одну CPLD..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3241

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20

wowa пишет: С общей работой устройства опять ничего неясно :)

В устройстве просто работают два master-а, управляющие одной шиной, на которой находятся "внешние модули" (slave). Кроме этих переключателей и логики для сигнала ожидания больше ничего нет. :)
Это эксперимент, я хочу лишь проверить можно ли наладить между ними работу.
Позже я планирую заменить FPGA на какой-нибудь DMA контроллер, но на чем его сделать - ничего не могу придумать. Циклону-1 тяжеловато справиться с этой задачей.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

VGA 11 года 7 мес. назад #3242

Значит надо брать не цыклон :) Я думаю что надо брать новее микросхемы. Они есть с верхней частотой до 600 МГц. И вообще для этого надо сторить не ДМА - а арбитр/контролер шины. Потом будет достаточно настроить приоритет и у устройства должны будут быть сигналы для работы с шиной. Можно для быстрых устройств сделать фифо данных. Я бы на вашем месте не выдумывал велосипед.. Изучите что предлагают на opencores.org/

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3243

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20

wowa пишет: Значит надо брать не цыклон :) Я думаю, что надо брать новее микросхемы. Они есть с верхней частотой до 600 МГц. И вообще для этого надо сторить не ДМА - а арбитр/контролер шины. Потом будет достаточно настроить приоритет и у устройства должны будут быть сигналы для работы с шиной. Можно для быстрых устройств сделать фифо данных. Я бы на вашем месте не выдумывал велосипед.. Изучите что предлагают на opencores.org/

Я смотрел в сторону MAX10, но их в продаже нет (?). А насчет того, что не надо строить DMA - это дело имело обратный ход. :) МК отлично работал на шине, но с большими потоками данных (пересылки с одного устройства на другое) слабо справлялся, поэтому я решил поставить DMA, а этот арбитр - уже следствие.
Сигналы для работы с шиной - есть, у МК - это бит адреса и сигнал ожидания, а у второго - это три свободных пина.
Насчет FIFO, в планах подключить FPGA через FIFO к DMA.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

VGA 11 года 7 мес. назад #3244

Я тут быстро взглянул на даташит SAM4C - у него ведь есть уже ДМА!!! Так используйте его!!! ДМА и арбитр шины недолжны как бы друг-другу мешать вообще.. ДМА должен перед передачей запросить приоритет и как получит - вперёд!!! Посылать данные. Хуже тут то что МК не предназначен для работы в режиме мультимастер. Из за этого и все эти костыли. Незнаю естли есть смысл делать из этого что-то аж так универсальное.. Если бы мне ОЧЕНЬ нужно бы было такое :) я бы делал шину которая бы имела минимально 2 потока внутри самой шины. И переключать их какраз можно той интересной микросхемой. Такой CROSSBAR бы мог по желанию мастера соеденить напрямую с нужным слейвом. И количество паралельных шин = количеству мастров в системе. Можно сделать 4 и думаю зватит с запасом. Сделать только арбитр который проследит за конфликтами...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3245

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20

wowa пишет: Я тут быстро взглянул на даташит SAM4C - у него ведь есть уже ДМА!!! Так используйте его!!! ДМА и арбитр шины недолжны как бы друг-другу мешать вообще.. ДМА должен перед передачей запросить приоритет и как получит - вперёд!!! Посылать данные. Хуже тут то что МК не предназначен для работы в режиме мультимастер. Из за этого и все эти костыли. Незнаю естли есть смысл делать из этого что-то аж так универсальное.. Если бы мне ОЧЕНЬ нужно бы было такое :) я бы делал шину которая бы имела минимально 2 потока внутри самой шины. И переключать их какраз можно той интересной микросхемой. Такой CROSSBAR бы мог по желанию мастера соеденить напрямую с нужным слейвом. И количество паралельных шин = количеству мастров в системе. Можно сделать 4 и думаю зватит с запасом. Сделать только арбитр который проследит за конфликтами...

Нет, не DMA, а PDC, хотя разницы в названии почти нет. Однако, тот DMA, который вы нашли, работает только с UART, SPI...но не с внешней шиной SMC контроллера. :) Там даже операции память-память невозможны, только: периферия-память, память-периферия. Хоть убейся. :)
Насчет мультимастера, это не такая проблема, мультиплексор все возьмет на себя, а остальное на апчхи.
В случае с crossbar-ом необходимы мультиплексоры на каждого подчиненного?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3247

Да.. корявое ДМА.. Хотя в СТМ32 есть на больших чипах адаптер на внешнюю шину и с поддержкой ДМА..
В той микрушке нехватает только прямого соединения А1-А2 и В1-В2, а так это практически полный всенаправленный крест. Можно её взять и соеденить например А1 и А2 прямо и использовать как одну половинку креста.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3248

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20

wowa пишет: Да.. корявое ДМА.. Хотя в СТМ32 есть на больших чипах адаптер на внешнюю шину и с поддержкой ДМА..
В той микрушке нехватает только прямого соединения А1-А2 и В1-В2, а так это практически полный всенаправленный крест. Можно её взять и соеденить например А1 и А2 прямо и использовать как одну половинку креста.

Да, да. Я именно так и сделал: соединил B2 и A2, таким образом получил мост между ПЛИС и МК.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3266

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Очень большую роль играет латентность устройств в моих проектах с этим МК.
Если, к примеру, память/ПЛИС может отдавать данные с частотой 100MHz, то я успешно настраиваю это в контроллере внешней шины. Однако, если данные приходят с задержкой - пусть - в одно чтение (часто бывает), то приходится понижать частоту работы в 2 раза! Иначе при единичном запросе будут ошибки. Контроллер внешней шины не умеет учитывать этот параметр.
У многих STM и ATSAM есть некий арбитр шины внутри - MATRIX.

The Bus Matrix implements a multi-layer AHB, based on the AHB-Lite protocol, that enables parallel access paths
between multiple AHB masters and slaves in a system, thus increasing the overall bandwidth. The Bus Matrix
interconnects AHB masters to AHB slaves. The normal latency to connec t a master to a slave is one cycle except
for the default master of the accessed slave wh ich is connected directly (zero cycle latency).

Я никогда не использовал эту вещь, может ли она мне помочь в данной проблеме? Я нахожу некоторые регистры, в которых есть параметр "латентность".

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

VGA 11 года 7 мес. назад #3267

Шины в СТМ не имеют прямого выхода наружу. И насколько известно там латентность зависит от скорости самой памяти. Все сигналы там внутренние.. И никак их менять по скорости нельзя.. Ну.. почти нельзя :) можно там покрутить настройки системы тактирования... Но обычно потом там поплывут частоты везде.. И нужно будет много чего пересчитывать.. Параметр латентности нужно учитывать при работе с данными и менять его нельзя. Это из за того что каждую шину можно тактировать по отдельности..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от wowa.
Время создания страницы: 0.152 секунд
Работает на Kunena форум