Камера + ATmega -> USB
- VenomXP
- Грызет канифоль
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
- Контактная информация:
Камера + ATmega -> USB
Доброго времени суток, завалялась у меня как-то камера от мобильного телефона, 8-битная шина данных, управление по i2c(TWI). Идея такая. Собираем USB-HID-Data, неоднократно здесь обсуждавшийся, читаем данные с камеры по порту и отправляем их в комп где уже будет производится их обработка, встал вопрос, для того чтобы запомнить один кадр требуется (120х120х2)/1024=29кБайт ОЗУ, которой к сожалению в контроллере не имеется, а отправлять сразу в реальном времени не получится так как скорость у программно реализованного USB интерфейса очень мала и он просто напросто захлебнется, примерно до 10Мб/с на частоте макс частоте поступают данные с камеры, это где-то 25-30 fps. Как можно более правильно и удобно решить эту проблему?
Даташит - библия моя...


- Реклама
- Antibiotic
- Открыл глаза
- Сообщения: 70
- Зарегистрирован: Пт авг 01, 2008 08:43:08
Этакая вэб-камера получается. И сразу напрашивается вопрос - зачем?
8 бит данных с камеры это да.. но кадр обычно идет в формате RGB565
(RRRRRGGGGGGBBBBB) - 16 бит - 2 байта. т.е кдр за 2 такта. камера тактируется где то на 20 МГц... люди делали вывдо на экран от мобилки.. мега 128 на 20 МГц еле успевала просто перегонять данные из порта в SPI ... а вам нужно ещё рулить памятю(которую придется скорее всего регенерировать, а это процессорное время), а ведь вам ещё нужно и USB обслуживать. ИМХО АВР тут врятли поможет.. если только поставить на управление камерой.. но для этого мега не нужна. думаю нужно смотреть в сторону ПЛИС
8 бит данных с камеры это да.. но кадр обычно идет в формате RGB565
(RRRRRGGGGGGBBBBB) - 16 бит - 2 байта. т.е кдр за 2 такта. камера тактируется где то на 20 МГц... люди делали вывдо на экран от мобилки.. мега 128 на 20 МГц еле успевала просто перегонять данные из порта в SPI ... а вам нужно ещё рулить памятю(которую придется скорее всего регенерировать, а это процессорное время), а ведь вам ещё нужно и USB обслуживать. ИМХО АВР тут врятли поможет.. если только поставить на управление камерой.. но для этого мега не нужна. думаю нужно смотреть в сторону ПЛИС
- DrWatson
- Опытный кот
- Сообщения: 890
- Зарегистрирован: Вт янв 20, 2009 14:49:08
- Откуда: Гондурас, Мурманск
Можно взять какую-нибудь Мегу с поддержкой внешней памяти типа ATmega8515 и микросхему статической памяти на 32кб к ней присобачить (плюс еще регистр-защелку для формирования адреса на СОЗУ) Если все взять СМД довольно компактно получится.
- Если вы такие умные, то почему тогда строем не ходите?
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
ἓν οἶδα ὅτι οὐδὲν οἶδα (с) Σωκράτης
- Реклама
- VenomXP
- Грызет канифоль
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
- Контактная информация:
ПЛИС сразу нет, еще не до рос до этого. Не в том смысле что маленький, а в том что архитектура другая, все другое, изучение займет время, у нас вот через полгода в универе будут тока читать курс по ним, там и попробуем, а сейчас рыпаться я не хочу, ибо самому сложнее изучать.
Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
Даташит - библия моя...


- Antibiotic
- Открыл глаза
- Сообщения: 70
- Зарегистрирован: Пт авг 01, 2008 08:43:08
- maglev
- Потрогал лапой паяльник
- Сообщения: 316
- Зарегистрирован: Пт апр 17, 2009 22:45:42
- Откуда: Minsk
- Контактная информация:
Если потратить некоторое количество времени и сил - сработает. Получим откровенно хреновую картинку. Это учебное задание, надеюсь? Потому как практический смысл нулевой.VenomXP писал(а):Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
-
TechMike
- Прорезались зубы
- Сообщения: 247
- Зарегистрирован: Сб дек 15, 2007 23:00:54
- Откуда: Moscow
- Контактная информация:
Если по делу, то см. вот тут:
http://electronix.ru/forum/index.php?sh ... 47633&st=0
На том форуме не одна такая тема есть, был даже где-то исходник.
http://electronix.ru/forum/index.php?sh ... 47633&st=0
На том форуме не одна такая тема есть, был даже где-то исходник.
- VenomXP
- Грызет канифоль
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
- Контактная информация:
Да нет, эт так желание такое. Че она без дела валяется.maglev писал(а):Если потратить некоторое количество времени и сил - сработает. Получим откровенно хреновую картинку. Это учебное задание, надеюсь? Потому как практический смысл нулевой.VenomXP писал(а):Идея такая, допустим раз в 5 секунд читаем с камеры кадр забиваем его во внешнюю память на 32к - как раз то что надо, а потом уже медленно это дело, ни на что не отвлекаясь отправляем данные из памяти по USB в комп. Как думаете сработает?
Нет у меня контроллера с аппаратным USB, ну если только at91sam7s128, но он не для этой цели был куплен.BCluster писал(а):что вас всех так тянет на программный усб? Если программный медленный почему не использовать аппаратный?
Благодарю вас.TechMike писал(а):Если по делу, то см. вот тут:
http://electronix.ru/forum/index.php?sh ... 47633&st=0
На том форуме не одна такая тема есть, был даже где-то исходник.
Даташит - библия моя...


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


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


- VenomXP
- Грызет канифоль
- Сообщения: 293
- Зарегистрирован: Пн дек 24, 2007 07:09:09
- Контактная информация:
Так начнем с того что я немного передумал проект, но это не суть, вобщем такая небольшая трабла, ну может это конечно я туплю, на дворе ночь а мы кодим
, дык вот, мне нужна работа с IO, почесал лапой репу, сел разбираться и писать, получилось такое.Но мне кажется где то здесь кроется ошибка, хотя все выглядет прозаично. Да кстати тип девайса HID-Data, делается на ATtiny2313 на 20 МГц'ах.
Код: Выделить всё
...
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;
}
...Код: Выделить всё
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x80, // REPORT_COUNT (128)Даташит - библия моя...




