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

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

Ага. Есть АЦП, с которого данные считываются автономным блоком, далее автономный блок передает данные через mm_bridge в SDRAM, потом Nios читает данные из SDRAM. Так?

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


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

Ага. Есть АЦП, с которого данные считываются автономным блоком, далее автономный блок передает данные через mm_bridge в SDRAM, потом Nios читает данные из SDRAM. Так?

 

точно

 

и передавайте эти данные на дисплей)

 

только учтите... если у вас прога выполняется из SDRAM вам надо разделить память для программы и данных АЦП

 

делается это в BSP editor linker script (установите размер sdram меньше), остальная часть под данные АЦП

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


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

Есть автономный блок который читает данные из АЦП в свою внутреннюю память.

 

Дальше есть варианты:

 

- ниос может через авалон считать данные из этого блока себе в регистры и работать с ними, в том числе положить в память.

- Либо специальный ДМА контроллер может данные из этого автономного блока положить в память, откуда их может забрать ниос или другие блоки.

Функции ДМА можно встроить в функции блока.

- Можно сделать выделенный банк 2 портовой памяти в который с разных сторон ходят автономный блок и ниос

 

это все вариации распределения ресурсов в зависимости от задачи.

 

 

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


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

точно

Для начала как подружить автономным блок с mm_bridge? Вот считал я данные с АЦП, они лежат в каком-то регистре, как их отправить на этот mm_bridge?

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


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

Для начала как подружить автономным блок с mm_bridge? Вот считал я данные с АЦП, они лежат в каком-то регистре, как их отправить на этот mm_bridge?

 

почитайте про Avalon шину, и все поймете

 

как написал Golikov A. надо сделать простенький DMA

c одной стороны блок АЦП, с другой Avalon шина

 

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


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

Есть автономный блок который читает данные из АЦП в свою внутреннюю память.

 

Дальше есть варианты:

 

- ниос может через авалон считать данные из этого блока себе в регистры и работать с ними, в том числе положить в память.

- Либо специальный ДМА контроллер может данные из этого автономного блока положить в память, откуда их может забрать ниос или другие блоки.

Функции ДМА можно встроить в функции блока.

- Можно сделать выделенный банк 2 портовой памяти в который с разных сторон ходят автономный блок и ниос

 

это все вариации распределения ресурсов в зависимости от задачи.

Допустим блок есть и читает он данные из АЦП, только что вы подразумеваете под внутренней памятью? АЦП оцифровывает целый кадр изображения размером 800x600 точек и каждый пиксель кодируется 8-ю битами. Внутренней памяти на кадровый буфер не хватит. Поэтому автономный блок должен быстренько считать данные о первом пикселе (один байт), быстренько отправить этот байт в кадровый буфер номер 1 в SDRAM, и заново читать АЦП - уже второй пиксель, и так до конца первого кадра. Затем второй кадр читается уже во второй буфер в SDRAM, а первый кадр выводится на монитор.

 

Для реализации такого наверно более подходит вариант со специальным ДМА контроллером.

 

почитайте про Avalon шину, и все поймете

А есть про неё что-нибудь на русском языке?

 

как написал Golikov A. надо сделать простенький DMA

c одной стороны блок АЦП, с другой Avalon шина

Имеете в виду это: АЦП->автономный блок->Avalon шина->DMA->SDRAM

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


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

Допустим блок есть и читает он данные из АЦП, только что вы подразумеваете под внутренней памятью? АЦП оцифровывает целый кадр изображения размером 800x600 точек и каждый пиксель кодируется 8-ю битами. Внутренней памяти на кадровый буфер не хватит. Поэтому автономный блок должен быстренько считать данные о первом пикселе (один байт), быстренько отправить этот байт в кадровый буфер номер 1 в SDRAM, и заново читать АЦП - уже второй пиксель, и так до конца первого кадра. Затем второй кадр читается уже во второй буфер в SDRAM, а первый кадр выводится на монитор.

 

Для реализации такого наверно более подходит вариант со специальным ДМА контроллером.

 

 

А есть про неё что-нибудь на русском языке?

 

 

Имеете в виду это: АЦП->автономный блок->Avalon шина->DMA->SDRAM

 

АЦП->автономный блок->FIFO->DMA->Avalon шина->mm_bridge->SDRAM

 

FIFO лучше сделать с байтовым входом и 32битным выходом

 

P.S. на русском такие доки лучше не читать

 

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


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

Ну при таком раскладе только DMA,

FIFO авалоновское наверное не обязательно, если только его будет легче подружить с DMA контроллером, он тоже готовый имеется в системе ниос. Но я не думаю, что будет легче. Потому что для пихания в FIFO придется авалон поддержать в том же объеме что и для работы с ДМА.

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


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

Имеется проект на NiosII c SDRAM. В SDRAM организован кадровый буфер. Поставлена задача считать данные с АЦП, записать данные в SDRAM и затем отобразить их на мониторе. Возник вопрос каким образом тактировать АЦП и считывать данные с него? Просто через PIO? Какой способ эффективнее для решения такой задачи?

Доброе утро!

Тему прочитал, но не совсем понял в каком месте необходим НИОС? Там у вас какая-то обработка? Или задача стоит просто как

Поставлена задача считать данные с АЦП, записать данные в SDRAM и затем отобразить их на мониторе.
Если так, то попробуйте взглянуть тут https://habrahabr.ru/post/283488/ . Тут чисто "аппаратно" реализовано Камера ->SDRAM(два буфера один пишем, другой читаем)->VGA.

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


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

Тему прочитал, но не совсем понял в каком месте необходим НИОС?

Решил использовать ниос, потому что там есть готовый контроллер SDRAM и на данный момент вывод изображения из буфера SDRAM уже работает.

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


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

так SDRAM контроллер есть и без ниоса, он то тут причем:)

В MegaWizarde видел только для DDR SDRAM, или вы имеете ввиду где нибудь скачать?

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


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

В MegaWizarde видел только для DDR SDRAM, или вы имеете ввиду где нибудь скачать?

Могу поделиться самым примитивным SDR SDRAM контроллером. Проверялся на памяти SDRAM MT48LC4M16A2-75 Micron. Правда он написан на VHDL мною пол года назад, и скорее всего написан очень криво с кучей недостатков и непонятно как он вообще работает. Однако он работает :laughing:

Изменено пользователем Flip-fl0p

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


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

У Альтеры был бесплатный контроллер SDR SDRAM, вроде даже с исходниками. Плюс, описание в аппноте. Поищите на сайте или на фтп.

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


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

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

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

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

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

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

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

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

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

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