Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: NIOS2 + DMA +UART
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
juvf
Помогите ..... понят что-ли...

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

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

ps quartus 11.0, qsys
Копейкин
Я так понимаю, запроса DMA нет.
Реализован механизм записи/чтения данных Avalon-MM мастером по готовности UART.
И, дополнительно, при создании UART можно включить генерацию End Of Packet по количеству байт.
EOP может, если разрешено, завершить трансфер в SG-DMA.
DASM
емнип юарт сам по себе запросов формировать и не будет. Вызывается dma rx chan с указанием коллбэка завершения. А дольше гуляете, коллбек вызовется когда будет принято заданное количество слов.

Там все очень просто, но нельзя забывать о разрядности, а также о накладных расходах на дма, у альтеровцев хорошо выходят только фпга, а с процами и дма они уже поняли, прще и лучше купить ядро у АРМ
Alexey_Rostov
Цитата(juvf @ Jul 4 2013, 14:16) *
Помогите ..... понят что-ли...

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

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

ps quartus 11.0, qsys


Решал подобную задачу следующим образом:
1. Написал протокол для UART
2. Из модуля протокола вывел сигнал о заполнении буфера для приема битов
3. По этому сигналу порисходит инкрементация адреса в блоке памяти, куда я складываю байты
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.