Камера + ATmega -> USB

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Камера + ATmega -> USB

Сообщение VenomXP »

Доброго времени суток, завалялась у меня как-то камера от мобильного телефона, 8-битная шина данных, управление по i2c(TWI). Идея такая. Собираем USB-HID-Data, неоднократно здесь обсуждавшийся, читаем данные с камеры по порту и отправляем их в комп где уже будет производится их обработка, встал вопрос, для того чтобы запомнить один кадр требуется (120х120х2)/1024=29кБайт ОЗУ, которой к сожалению в контроллере не имеется, а отправлять сразу в реальном времени не получится так как скорость у программно реализованного USB интерфейса очень мала и он просто напросто захлебнется, примерно до 10Мб/с на частоте макс частоте поступают данные с камеры, это где-то 25-30 fps. Как можно более правильно и удобно решить эту проблему?
Даташит - библия моя...
Изображение
Реклама
Аватара пользователя
Antibiotic
Открыл глаза
Сообщения: 70
Зарегистрирован: Пт авг 01, 2008 08:43:08

Сообщение Antibiotic »

Этакая вэб-камера получается. И сразу напрашивается вопрос - зачем?
8 бит данных с камеры это да.. но кадр обычно идет в формате RGB565
(RRRRRGGGGGGBBBBB) - 16 бит - 2 байта. т.е кдр за 2 такта. камера тактируется где то на 20 МГц... люди делали вывдо на экран от мобилки.. мега 128 на 20 МГц еле успевала просто перегонять данные из порта в SPI ... а вам нужно ещё рулить памятю(которую придется скорее всего регенерировать, а это процессорное время), а ведь вам ещё нужно и USB обслуживать. ИМХО АВР тут врятли поможет.. если только поставить на управление камерой.. но для этого мега не нужна. думаю нужно смотреть в сторону ПЛИС
Реклама
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Можно взять какую-нибудь Мегу с поддержкой внешней памяти типа ATmega8515 и микросхему статической памяти на 32кб к ней присобачить (плюс еще регистр-защелку для формирования адреса на СОЗУ) Если все взять СМД довольно компактно получится.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Аватара пользователя
HeoH
Открыл глаза
Сообщения: 75
Зарегистрирован: Пт июл 20, 2007 12:49:45
Откуда: Novosibirsk
Контактная информация:

Сообщение HeoH »

с FPGA попробуйте
<o> ёшкин кот
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Я все что не в DIP или без ног называю СМД - поди запомни все эти FPGA, PLCC...
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Реклама
Аватара пользователя
HeoH
Открыл глаза
Сообщения: 75
Зарегистрирован: Пт июл 20, 2007 12:49:45
Откуда: Novosibirsk
Контактная информация:

Сообщение HeoH »

кошка - DIP, человек - DIP, рыба - SMD, цветок - SMD...
[url]http://ru.wikipedia.org/wiki/ПЛИС[/url]
<o> ёшкин кот
Реклама
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

ПЛИС сразу нет, еще не до рос до этого. Не в том смысле что маленький, а в том что архитектура другая, все другое, изучение займет время, у нас вот через полгода в универе будут тока читать курс по ним, там и попробуем, а сейчас рыпаться я не хочу, ибо самому сложнее изучать.

Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
Даташит - библия моя...
Изображение
Аватара пользователя
Antibiotic
Открыл глаза
Сообщения: 70
Зарегистрирован: Пт авг 01, 2008 08:43:08

Сообщение Antibiotic »

5 сек.. большую память надо однако
Аватара пользователя
DrWatson
Опытный кот
Сообщения: 890
Зарегистрирован: Вт янв 20, 2009 14:49:08
Откуда: Гондурас, Мурманск

Сообщение DrWatson »

Почему бы и нет. Главное чтобы контроллер справлялся со считыванием данных с камеры в плане скорости. А с USB дело давно на потоке.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

Antibiotic писал(а):5 сек.. большую память надо однако
Не на 5 секунд, а раз в 5 секунд один кадр.
Даташит - библия моя...
Изображение
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

Сообщение maglev »

VenomXP писал(а):Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
Если потратить некоторое количество времени и сил - сработает. Получим откровенно хреновую картинку. Это учебное задание, надеюсь? Потому как практический смысл нулевой.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Сообщение BCluster »

что вас всех так тянет на программный усб? Если программный медленный почему не использовать аппаратный?
TechMike
Прорезались зубы
Сообщения: 247
Зарегистрирован: Сб дек 15, 2007 23:00:54
Откуда: Moscow
Контактная информация:

Сообщение TechMike »

Если по делу, то см. вот тут:
http://electronix.ru/forum/index.php?sh ... 47633&st=0

На том форуме не одна такая тема есть, был даже где-то исходник.
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

maglev писал(а):
VenomXP писал(а):Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
Если потратить некоторое количество времени и сил - сработает. Получим откровенно хреновую картинку. Это учебное задание, надеюсь? Потому как практический смысл нулевой.
Да нет, эт так желание такое. Че она без дела валяется. :))
BCluster писал(а):что вас всех так тянет на программный усб? Если программный медленный почему не использовать аппаратный?
Нет у меня контроллера с аппаратным USB, ну если только at91sam7s128, но он не для этой цели был куплен.
TechMike писал(а):Если по делу, то см. вот тут:
http://electronix.ru/forum/index.php?sh ... 47633&st=0

На том форуме не одна такая тема есть, был даже где-то исходник.
Благодарю вас.
Даташит - библия моя...
Изображение
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

а почему не берете в расчет FT232? (преобразователь USB-RS232)
Ставим плюсы: )
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

ibiza11 писал(а):а почему не берете в расчет FT232? (преобразователь USB-RS232)
По простой причине, мне не надо RS232 интерфейс, да и с ним мороки больше, а тут у меня напрямую данные придут. И еще я недолюбливаю их(FT232), был опыт небольшой, спалил пару штук, даже не смотрю теперь в их сторону, да и тем более, я по Линуксом.
Даташит - библия моя...
Изображение
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Вот драйвера на все платформы для данной микросхемы. виртуальный RS232 шустрее будет программного USB.
Ставим плюсы: )
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Сообщение BCluster »

VenomXP, при всем уважении, но вы в корне не правы. фтди отличные микросхемы - и там совершенно необязательно Virtual Com, там есть драйвера D2XX... Ну вообщем посмотрите в эту сторону. Программный усб это игрушки, не более, он крайне медленный и неправильный. Насчет линукса - замечательно все, там есть драйвера под линукс. А софт для линукса вы напишете?
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

ibiza11 писал(а):Вот драйвера на все платформы для данной микросхемы. виртуальный RS232 шустрее будет программного USB.
Благодарю.
BCluster писал(а):VenomXP, при всем уважении, но вы в корне не правы. фтди отличные микросхемы - и там совершенно необязательно Virtual Com, там есть драйвера D2XX... Ну вообщем посмотрите в эту сторону. Программный усб это игрушки, не более, он крайне медленный и неправильный. Насчет линукса - замечательно все, там есть драйвера под линукс. А софт для линукса вы напишете?
Да а в чем проблема написать под линь. Там все гораздо прозаичнее чем в винде.
Даташит - библия моя...
Изображение
Аватара пользователя
VenomXP
Грызет канифоль
Сообщения: 293
Зарегистрирован: Пн дек 24, 2007 07:09:09
Контактная информация:

Сообщение VenomXP »

Так начнем с того что я немного передумал проект, но это не суть, вобщем такая небольшая трабла, ну может это конечно я туплю, на дворе ночь а мы кодим :))) , дык вот, мне нужна работа с IO, почесал лапой репу, сел разбираться и писать, получилось такое.

Код: Выделить всё

...
uchar   usbFunctionRead(uchar *data, uchar len)
{
	DDRB = 0x00;
	
	data[0] = PORTB;

       return len;
}

uchar   usbFunctionWrite(uchar *data, uchar len)
{
	DDRB = 0xFF;
	
	PORTB = data[0];

	retern 1;
}
...
Но мне кажется где то здесь кроется ошибка, хотя все выглядет прозаично. Да кстати тип девайса HID-Data, делается на ATtiny2313 на 20 МГц'ах.

Код: Выделить всё

    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x80,                    //   REPORT_COUNT (128)
Даташит - библия моя...
Изображение
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»