Чтение из порта DMA Arduino DUE

poskotinov_av
Offline
Зарегистрирован: 20.12.2014

Возможно ли чтение (параллельных 8 бит данных) из порта в RAM (массив) с помощью DMA с синхронизацией по внешнему CLOCK сигналу?

boban_
Offline
Зарегистрирован: 09.10.2013

Можно.

 

Как - написание обработки:

1) Чтение состояния CLOCK

2) если ДА то чтение состояния 8 портов

3) обработка (запись в массив)

PS

CLOCK это 2 или 3 вывод (использует прерывание)

 

poskotinov_av
Offline
Зарегистрирован: 20.12.2014

как реализовать с помощию DMA?

опросом порта - не получается т.к. низкая скорость чтения.

Нужна скорость более 10Mhz 

Datak
Offline
Зарегистрирован: 09.10.2014

boban_ пишет:
Можно.

Как - написание обработки:

...

Да, можно и так, только DMA обычно подразумевает обращение к памяти без участия процессора.

Программный DMA - это уже не DMA. :)

Datak
Offline
Зарегистрирован: 09.10.2014

poskotinov_av пишет:
как реализовать с помощию DMA?

Нужна скорость более 10Mhz

Так опять же, смотрите PDF на контроллер. Там все такие основные фичи-полезняшки на первой же странице перечисляются. Только, боюсь, не будет там такого.

По-моему, при таких запросах, один шаг остался до внешней микросхемы ОЗУ. :)
Или, удобнее даже не ОЗУ, а FIFO. Только не слишком дешёвые они...

-------

Upd: Наврал я кажется. Гугл что-то всё же выдаёт, по поводу DMA и Arduino DUE. 

poskotinov_av
Offline
Зарегистрирован: 20.12.2014

Подскажите как реализовать ч/з DMA чтение данных из порта REG_PIOC_PDSR и складыванием их в массив.

Объясните как этот DMA вообще работает.

std
Offline
Зарегистрирован: 05.01.2012

Присоединяюсь к вопросу, интересует что можно сделать на Atmega128