Всем добрый день. У меня есть отладочная платка с LPC2468 и есть внешний источник 8битных данных - камера. Данные могут поступать с выбранной мною частотой (зависит от частоты тактирования камеры). Я попробовал считывать данные напрямую с порта и сохранять их во внешнюю SRAM. Получил порядка 700000 считываний в секунду при условии что процессор занимается только тем, что захватывает данные и сохраняет их в память.
У меня возникла идея - если DMA способна выполнять транзакции memory-memory, могу ли я настроить DMA-контроллер данного процессора так, чтобы он автоматически с GPIO выполнил скажем 640*480 транзакций считывания во внешнюю SRAM без участия процессора. Я бегло просмотрел описание DMA - если я всё правильно понял, то он может выполнять чтение с одного адреса без автоинкремента и отправлять данные на другой адрес с автоинкрементом с шириной данных 8 бит. Насколько это применимо к GPIO (каждый порт GPIO ведь имеет свой адрес) и внешней SRAM (в моём случае 512к 8бит 10nS). Если данный процессор не сможет сохранять данные во внешнюю SRAM используя DMA, то во внутреннюю SRAM он наверняка сможет это сделать? Также есть ли возможность задать период выборки с GPIO - например инициировать DMA-транзакцию по какому-либо таймеру? Кто работал с DMA этого процессора подскажите насколько реализуема данная затея? Данный процессор выбран только из-за того, что есть под рукой отладочная плата. Вообще я тесно работаю ещё с LPC17xx и Freescale Kinetis KL15 - но с ихними DMA я тоже не работал. Возможно кто подскажет другие доступные ARM-процессоры (не DPS, а именно ARM), которые могут позволить решить данную задачу. Заранее всем спасибо за ответы.
|