|
ARM + 4.3" LCD + OV7660 CMOS Cam, порекомендуйте оптимальную связку |
|
|
|
Jul 28 2010, 04:51
|

embedder
  
Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911

|
Цитата(Ivan Kuznetzov @ Jul 27 2010, 22:48)  Интересует подобная связка. Надо просто с камеры изображение гнать на LCD где-то с 10-15fps (видео-зеркало-заднего-вида) с возможностью по SCCB(I2C) интерфейсу CMOS камеры подстраивать яркость, цветность, изображение в негативе делать.
Дисплей MI0240(ILI9320) c 16-и битной шиной оказался маловат (3.2") хотя и достаточно шустер в режиме 16-битной шины
Вопросы собственно такие: 1) Какой порекомендуете дисплей брать (надо не менее 4.2") и с какой шиной ? 2) Какой МК брать для разжовывания этого всего (я склоняюсь пока к STM32F107 какому-нибудь, и ног много и 70 мегагерц все-таки) 3) Модуль CMOS OV7660 мне нравится, но законченных камерок с оптикой я на этом чипе я не встречал (может кто тоже чего подскажет или ткнет носом?)
P.S. Вообще копаясь в инете не нашел чтобы с STM32 сопрягали дисплеи с разрешением более 320х240... посмотрите сайт starterkit.ru, там есть и платы с LCD и платы с контроллерами к которым они соединяются. Там же из схем к платам можно много почерпнуть.
--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
|
|
|
|
|
Aug 5 2010, 10:39
|
Группа: Участник
Сообщений: 5
Регистрация: 2-06-05
Пользователь №: 5 678

|
Цитата(Ivan Kuznetzov @ Jul 27 2010, 21:48)  Интересует подобная связка. Надо просто с камеры изображение гнать на LCD где-то с 10-15fps (видео-зеркало-заднего-вида) с возможностью по SCCB(I2C) интерфейсу CMOS камеры подстраивать яркость, цветность, изображение в негативе делать. P.S. Вообще копаясь в инете не нашел чтобы с STM32 сопрягали дисплеи с разрешением более 320х240... Китайцы предлагают вот такой остроумный вариант http://www.egochina.net.cn/e-shop/ebay/dat...9328_ov7670.rar правда немного с другой камерой.
|
|
|
|
|
Aug 5 2010, 22:33
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Цитата(wanderer @ Aug 5 2010, 16:39)  Китайцы предлагают вот такой остроумный вариант http://www.egochina.net.cn/e-shop/ebay/dat...9328_ov7670.rar правда немного с другой камерой. спасибо, видел такое, только там дисплей маловат... посоветуйте, может есть в природе "большие" (от 4") дисплеи на ili932x и 16 битной шине?
--------------------
Разработчик
|
|
|
|
|
Aug 6 2010, 17:14
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Цитата(goodwin @ Aug 6 2010, 22:59)  Кетайский нафигатор (4.3", вынь ЦЕ ) за 3700 целковых и камера заднего вида к нему за 800 выйдут намного дешевле, чем осуществлять собственные телодвижения... А то и камера+ЖКИ монитор заднего вида могут сгодиться... эхх.. все бы ничего, но необходимы еще и эффекты типа высококонтрастное изображение/негатив-позитив/возможность регулировки цветности/гаммы. Все это есть в цмос камерках, особенно понравилась омни-вижн. Также склоняюсь в сторону TCM8240MD от тошибы, получил ее тут недавно. Мож кто поделится кодом инициализации для неё? Цитата(proba @ Aug 6 2010, 05:21)  лучще посмотрите SH7262 от ренесас, все в одном чипе. в качестве камеры исползовал MT9V032, лензы от Sunex. 1) проц весьма интересен, 144МГц - эт сурьезно а. но походу у него нету внутренней флеши - готовый приерчик бы - чтобы было за что зацепиться как это все оживлять б. какая к нему среда разработки нужна, хотелось бы что-нибудь типа иара  2) камера MT9V032 понравилась, а. особенно то, что питается едиными 3.3 родными вольтами б. в стерео объединяется )) в. кода инициализации пока не нашол, к сожалению (( г. как с доставаемостью самой камеры и оптики и где вообще эту оптику для таких чип-камер брать?
Сообщение отредактировал Ivan Kuznetzov - Aug 6 2010, 17:16
--------------------
Разработчик
|
|
|
|
|
Aug 6 2010, 21:04
|
Местный
  
Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526

|
1.a. флеш деиствително нет, но и аналогичных процессорах арм9 тоже нет, можно боотит с сериал флеш. 1.b компилеры- ренесасовскии хев, иар, фрееваре кпит. 2. камерами такое дело что и омни и аптина (микрон) только по нда выдают даташит. мт9v032 в принципе и без доп инит картинку выдает. разницы между мт9v032 и 022 почти нет, об последнем инфы гораздо болще, напр http://www.analog.com/static/imported-file..._258r262006.pdf
|
|
|
|
|
Dec 19 2010, 12:21
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Цитата(proba @ Aug 6 2010, 07:21)  лучще посмотрите SH7262 от ренесас, все в одном чипе. в качестве камеры исползовал MT9V032, лензы от Sunex. Извините, а можно поподробней, где можно опитку Sunex достать у нас? Цитата(ClockworkOrange @ Sep 17 2010, 13:53)  OV7660, MT9V032, TCM8240MD..
- а где Вы вообще достаёте в России подобные сенсоры? (и линзы к ним) через оф диллера, промэлектронику
--------------------
Разработчик
|
|
|
|
|
Dec 20 2010, 02:00
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Есть проект с камерой OV7670 -> AL422B FIFO -> ILI9325 LCD 8bit. Каждый байт с камеры стробируется PCLK сигналом. Два байта = 1 пиксел в формате RGB565. До настоящего момента я использовал дисп, который может работать в 8и битном режиме, на контроллере ILI9325, сейчас хочу использовать SSD1963, который не может работать по шине 8 бит в режиме RGB565, но может работать в режиме 16 бит RGB565. Вопрос, что поставить между камерой и диспом, чтобы две 8и битовые посылки преобразовать в 16 бит слово? Может какую-нибудь жесткую логику чтоли...
Сообщение отредактировал Ivan Kuznetzov - Dec 20 2010, 02:30
Эскизы прикрепленных изображений
--------------------
Разработчик
|
|
|
|
|
Dec 24 2010, 05:11
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 9-09-08
Из: РФ
Пользователь №: 40 076

|
Цитата(Ivan Kuznetzov @ Dec 20 2010, 08:00)  Вопрос, что поставить между камерой и диспом, чтобы две 8и битовые посылки преобразовать в 16 бит слово? Может какую-нибудь жесткую логику что-ли... OMAP3530.
|
|
|
|
|
Feb 7 2011, 14:04
|

Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798

|
Всем привет! Помогите с проблемой, пожалуйста! Собрал схему "видеоглазка" на базе (STM32) + (ALTERA EPM3032) + (SSD1963 LCD) +(MT9V111) 1) Контроллер: STM32 2) Дисплей на SSD1963, подключен к STM32 через FSMC и работает отлично! (картинки из флеш грузит) 3) По прерыванию от кадрового импульса, STM32 задает "окошко" в LCD и посылает команду на запись, затем переводит шину FSMC контроллера STM32 в Z состояние (конфигурирую как обычные GPIO на INPUT_FLOATING) 4) Выставляю пин OE в высокое состояние, тем самым подключая ПЛИСину к дисплею 5) ПЛИСина начинает прокачивать RGB565 поток с камеры распределяя его на 16 бит шину дисплея и дергая ножкой WR 6) И так до следующего VSYNC Дак вот, когда ПЛИС не подключена к шине - все идет нормально - на дисплее "окошко" с помехами - типа данных нет. Подключаю линии [7..0] с ПЛИС к шине диспа - после пары кадров происходит сбой, дисп заливается белым цветом, по-видимому дисп ловит какую-то помеху. Подключаю линии [15..8] с ПЛИС к общей шине - на диспе появляется картинка с искаженными цветами и геометрией Проблема в том, что с альтеры по-видимому идет помеха по линиям D[7..0]... Прилагаю свою чудо-схему и код: Прерывание по VSYNC: Код void EXTI4_IRQHandler(void) // Обработчик прерывания по VSYNC { if(EXTI_GetITStatus(EXTI_Line4) != RESET) { GPIO_ResetBits(GPIOC, GPIO_Pin_0); // 1) Запрещам ПЛИСину по входу OE LCD_TO_STM32(); // 2) GPIO STM32 на FSMC LcdSetArea(0,0,479,271); //Задаем окно LCD GRAM WriteCommand(0x2C); // разрешение на запись GRAM LCD_TO_CPLD(); // 3) GPIO STM32 в Z-состояние GPIO_SetBits(GPIOC, GPIO_Pin_0); // 4) Подключаем ПЛИС к LCD входом OE EXTI_ClearITPendingBit(EXTI_Line4); } } Конфигурация порта STM32 для работы с ПЛИС: Код void LCD_TO_CPLD(void) { GPIO_InitTypeDef GPIO_InitStructure; /* SRAM Data lines configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOE, &GPIO_InitStructure); /* SRAM Address lines configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOF, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5; GPIO_Init(GPIOG, &GPIO_InitStructure); /* NOE and NWE configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_Init(GPIOD, &GPIO_InitStructure); /* NE3 configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIOG, &GPIO_InitStructure); /* NBL0, NBL1 configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_Init(GPIOE, &GPIO_InitStructure); //-------------- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_11 | GPIO_Pin_12; // RD# pin to HIGH GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_ResetBits(GPIOD,GPIO_Pin_12); //CS low GPIO_SetBits(GPIOD,GPIO_Pin_4); //RD high GPIO_SetBits(GPIOD,GPIO_Pin_11); //RS to data Ноги на FSMC STM32: Код void LCD_TO_STM32(void) { GPIO_InitTypeDef GPIO_InitStructure; /* SRAM Data lines configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOE, &GPIO_InitStructure); /* SRAM Address lines configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOF, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5; GPIO_Init(GPIOG, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13; GPIO_Init(GPIOD, &GPIO_InitStructure); /* NOE and NWE configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5; GPIO_Init(GPIOD, &GPIO_InitStructure); /* NE3 configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIOG, &GPIO_InitStructure); /* NBL0, NBL1 configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_Init(GPIOE, &GPIO_InitStructure); }
Сообщение отредактировал Ivan Kuznetzov - Feb 7 2011, 14:11
Эскизы прикрепленных изображений
--------------------
Разработчик
|
|
|
|
|
Apr 12 2011, 21:29
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146

|
Цитата(Ivan Kuznetzov @ Feb 8 2011, 19:29)  Может проблема в том что MAX3000 это LVTTL? Возможно у вас проблема с метастабильностью плисины, т.е. ПЛИС не синхронизирована с тактовой частотой и процессором.
|
|
|
|
|
Apr 17 2011, 17:40
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 24-11-07
Пользователь №: 32 645

|
stm32f207 и овцы целы и волки сыты. В наличие к примеру в компэле. Сама сложит RGB565 в регистр и по дма отправит куда скажешь. Ядро при этом обращать внимание на это не будет, так как все аппаратно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|