Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DMA на параллельный порт
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
digital
Бывают процессоры с DMA на параллельный порт (что бы по стробу копировала содержимого порта)?

По моему ARM7 умеют цеплять на DMA только последовательные интерфейсы и АЦП.



Спасибо
_dem
в поиск, недавно обсуждалось
digital
Цитата
в поиск, недавно обсуждалось


наверное это
http://electronix.ru/forum/index.php?showt...mp;#entry316093


получается, проблема, не имеет простого решения. sad.gif
aaarrr
Цитата(digital @ Dec 12 2007, 15:52) *
получается, проблема, не имеет простого решения. sad.gif

Если Вы хотите подключить ITU-656 поток, то возьмите уж лучше Blackfin.
_dem
Цитата
получается, проблема, не имеет простого решения


внешний парралельно-последовательный конвертер - вот самое простое решение (на ПЛИС, или буферах, к примеру)

более простого нет
PrSt
Цитата(digital @ Dec 12 2007, 01:38) *
Бывают процессоры с DMA на параллельный порт (что бы по стробу копировала содержимого порта)?
По моему ARM7 умеют цеплять на DMA только последовательные интерфейсы и АЦП.

смотрите в сторону Blackfin
он такое умеет как на вход так и на выход на перефирии PPI
обсуждалось на этом сайте ( поиском пробегитесь ) и на моем сайте : http://projects.org.ua/forum.phpbb2ru/view...php?p=1319#1319


.
AlexandrY
Есть, конечно.

STR912 таким образом читает из видеокамер с интерфесом 656.
Только на цифре 7 не надо зацикливаться.

Цитата(digital @ Dec 12 2007, 04:08) *
Бывают процессоры с DMA на параллельный порт (что бы по стробу копировала содержимого порта)?

По моему ARM7 умеют цеплять на DMA только последовательные интерфейсы и АЦП.
Спасибо
digital
Цитата
STR912 таким образом читает из видеокамер с интерфесом 656.


ST так вполне себе читают из камеры полингом smile.gif Using the VS6724-based camera module

ps к слову пример с DMA то-же есть


__ramfunc void getImageFromCamera(char buffer[]){
//VSYNC log.1 - frame valid
//wait for the valid frame
do{
SIGNALS = GPIO3->DR[0x3FC];
}while((SIGNALS & VSYNC)); //wait for the falling edge of VSYNC
do{
SIGNALS = GPIO3->DR[0x3FC];
}while(!(SIGNALS & VSYNC)); //wait for the rising edge of VSYNC

PCLKedge = 0;
pixel = 0;
while(1){

while(1){
SIGNALS = GPIO3->DR[0x3FC];
if(SIGNALS & PCLK)
if(!PCLKedge)
break;
if(!(SIGNALS & PCLK))
PCLKedge = 0;
}//wait for the rising edge of PCLK

PCLKedge = 1;
buffer[pixel] = GPIO9->DR[0x3FC];
pixel++;
if(pixel > QCIF)
break;
};
};
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.