реклама на сайте
подробности

 
 
> NIOS2 + DMA +UART
juvf
сообщение Jul 4 2013, 11:16
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Помогите ..... понят что-ли...

Есть уарт в ниосе. Хочу попробовать по ДМА складывать приемные байты в ОЗУ. Возможно ли такое организовать в связке альтеровских корок NIOS2 + DMA +UART?

По идее уарт приняв байт должен сформировать запрос ДМА. Дма контроллер по запросу от уарта должен вычитать приемный буфер уарта и положить байт в ОЗУ с инкриментом адреса ОЗУ. При определённых условиях, например при получении 200 байт ДМА должен сформировать прерывание. Вроде всё просто, классическая схема. Но не могу найти в уарте сигнал запрос дма.

ps quartus 11.0, qsys
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Копейкин
сообщение Jul 4 2013, 13:20
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134



Я так понимаю, запроса DMA нет.
Реализован механизм записи/чтения данных Avalon-MM мастером по готовности UART.
И, дополнительно, при создании UART можно включить генерацию End Of Packet по количеству байт.
EOP может, если разрешено, завершить трансфер в SG-DMA.

Сообщение отредактировал Копейкин - Jul 4 2013, 13:21
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 4 2013, 16:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



емнип юарт сам по себе запросов формировать и не будет. Вызывается dma rx chan с указанием коллбэка завершения. А дольше гуляете, коллбек вызовется когда будет принято заданное количество слов.

Там все очень просто, но нельзя забывать о разрядности, а также о накладных расходах на дма, у альтеровцев хорошо выходят только фпга, а с процами и дма они уже поняли, прще и лучше купить ядро у АРМ
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Sep 14 2013, 07:44
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(juvf @ Jul 4 2013, 14:16) *
Помогите ..... понят что-ли...

Есть уарт в ниосе. Хочу попробовать по ДМА складывать приемные байты в ОЗУ. Возможно ли такое организовать в связке альтеровских корок NIOS2 + DMA +UART?

По идее уарт приняв байт должен сформировать запрос ДМА. Дма контроллер по запросу от уарта должен вычитать приемный буфер уарта и положить байт в ОЗУ с инкриментом адреса ОЗУ. При определённых условиях, например при получении 200 байт ДМА должен сформировать прерывание. Вроде всё просто, классическая схема. Но не могу найти в уарте сигнал запрос дма.

ps quartus 11.0, qsys


Решал подобную задачу следующим образом:
1. Написал протокол для UART
2. Из модуля протокола вывел сигнал о заполнении буфера для приема битов
3. По этому сигналу порисходит инкрементация адреса в блоке памяти, куда я складываю байты
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 04:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01288 секунд с 7
ELECTRONIX ©2004-2016