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

 
 
> GPIO by DMA LPC2468 + ext SRAM, Оценка потенциальной возможности по захвату данных
mempfis_
сообщение Dec 29 2013, 14:06
Сообщение #1


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

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Всем добрый день.
У меня есть отладочная платка с 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), которые могут позволить решить данную задачу.
Заранее всем спасибо за ответы.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SyncLair
сообщение Dec 30 2013, 11:34
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Как то я портировал всю библиотеку перифириную с LPC1768 на LPC2468. В итоге получил приемлимую для меня систему которая настраивается на оба процессора путём условной компиляции. Так вот по поводу DMA, сам я его ни разу не использовал но чисто формально садапировал и исходник с DMA -- если есть желание то проверяйте. Во время портирования запомнил, что DMA каналов и устройств что поддерживают DMA в LPC2468 гораздо меньше.

В частности если я не ошибаюсь в 1768 GPIO может работать через DMA, и довольно не хило -- где то видел примеры.

Похожая с вашим случаем задача по чтению 8 битных данных у меня есть для работы с NAND FLASH.
На LPC2468 она решается через интерфейс static RAM, которого вроде нет в 1768. Буду переходить на LPC1768 в новых разработках планирую всё-таки использовать GPIO через DMA при чтении с NAND FLASH. В итоге, советую Вам если будете использовать LPC1768 подключайте через GPIO, если ипользуете LPC2468 то через static RAM. В любом случае процессоры весьма похожи друг на друга.







--------------------
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 30 2013, 12:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



В двух текущих проектах на LPC1778 и в одном на LPC1758 у меня используется программно-эмулируемый UART на связке GPIO+DMA с event-ами от таймера.
Всё работает прекрасно.
И ранее также использовал связку GPIO+DMA с event-ами от таймера.
Но будьте осторожны при высокочастотных запросах! На LPC до семейства LPC177x/8x нельзя изменить приоритет доступа к шине AHB устройств, и у CPU он выше чем у GPDMA.
Так что если используете высокочастотные запросы к DMA (уже на сотнях кГц), то ваш протокол обмена через линии GPIO должен быть устойчив к потерям отдельных событий
активации DMA (т.е. - некоторые запросы к DMA не будут отрабатываться из-за того что шина занята более приоритетным bus master-ом - CPU).
Сам с этим сталкивался при работе GPDMA+SSP на частотах SSP == 10...30МГц.
Go to the top of the page
 
+Quote Post



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

 


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


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