juvf 10 4 июля, 2013 Опубликовано 4 июля, 2013 · Жалоба Помогите ..... понят что-ли... Есть уарт в ниосе. Хочу попробовать по ДМА складывать приемные байты в ОЗУ. Возможно ли такое организовать в связке альтеровских корок NIOS2 + DMA +UART? По идее уарт приняв байт должен сформировать запрос ДМА. Дма контроллер по запросу от уарта должен вычитать приемный буфер уарта и положить байт в ОЗУ с инкриментом адреса ОЗУ. При определённых условиях, например при получении 200 байт ДМА должен сформировать прерывание. Вроде всё просто, классическая схема. Но не могу найти в уарте сигнал запрос дма. ps quartus 11.0, qsys Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Копейкин 0 4 июля, 2013 Опубликовано 4 июля, 2013 (изменено) · Жалоба Я так понимаю, запроса DMA нет. Реализован механизм записи/чтения данных Avalon-MM мастером по готовности UART. И, дополнительно, при создании UART можно включить генерацию End Of Packet по количеству байт. EOP может, если разрешено, завершить трансфер в SG-DMA. Изменено 4 июля, 2013 пользователем Копейкин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 4 июля, 2013 Опубликовано 4 июля, 2013 · Жалоба емнип юарт сам по себе запросов формировать и не будет. Вызывается dma rx chan с указанием коллбэка завершения. А дольше гуляете, коллбек вызовется когда будет принято заданное количество слов. Там все очень просто, но нельзя забывать о разрядности, а также о накладных расходах на дма, у альтеровцев хорошо выходят только фпга, а с процами и дма они уже поняли, прще и лучше купить ядро у АРМ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Помогите ..... понят что-ли... Есть уарт в ниосе. Хочу попробовать по ДМА складывать приемные байты в ОЗУ. Возможно ли такое организовать в связке альтеровских корок NIOS2 + DMA +UART? По идее уарт приняв байт должен сформировать запрос ДМА. Дма контроллер по запросу от уарта должен вычитать приемный буфер уарта и положить байт в ОЗУ с инкриментом адреса ОЗУ. При определённых условиях, например при получении 200 байт ДМА должен сформировать прерывание. Вроде всё просто, классическая схема. Но не могу найти в уарте сигнал запрос дма. ps quartus 11.0, qsys Решал подобную задачу следующим образом: 1. Написал протокол для UART 2. Из модуля протокола вывел сигнал о заполнении буфера для приема битов 3. По этому сигналу порисходит инкрементация адреса в блоке памяти, куда я складываю байты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться