Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-сен-16 19:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3 Все  След.
Автор Сообщение
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 08:05 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
1. Ошибка при настройке DMA.
Оказывается есть отличие в DMA канале 8-11 между ВН34 м ВН44.
Для первого по сбросу он включен, а для второго(44) уже выключен.
Отсюда и проблема в присланном примере. Если использовать функцию из HAL,
то в этой функции канал DMA предварительно выключается (туда пишется 0).
2. Пример, который я прислал вам, прислали когда-то мне :) Но там реально неверный адрес камеры.
Камера на плате ВН44 работает даже если её и не программировать. Сейчас я поставил адрес 0х42 и реально
имею доступ к регистрам.
3. В примере из камеры берется картинка 640х480 (по умолчанию), но на LCD выводится только прямоугольник 480х272.
Но к камере есть возможность настроить нужный размер. Сейчас читаю док на камеру и попробую это сделать.

4. при настройках канала DMA от камеры, нужно указывать то разрешение, которое дает камера.
при настройках канала LCD - размеры экрана LCD (или меньшие). Если размеры не совпадают, то
- либо процессором сжимать-расжимать картину
- либо на LCD выводить меньший прямоугольник изображения (в примере так и делалось).
Но лучше конечно настроить камеру на нужный размер. Тогда можно напрямую использовать общий видеобуфер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 09:10 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
Анисимов Александр писал(а):
BY_man писал(а):
Разобрался с полярность. Необходимо было в камере выставить битик, который превратит HREF в HSYNC.
Теперь на дисплей выводится "что-то" (какие-то полосы, которые реагируют на освещение).
Видимо тут проблема как раз с выводом сиганала с камеры 640х480 в дисплей меньшего разрешения.

Скорее всего замена HREF на HSYNC это неверно.
Я попробовал и у меня действительно картинка реагирует только на освещение.
Но без установки бита 6 в СОМ10 я вижу на экране свою рожу (пока в неважном качестве).
Если на плате вдруг есть инверсия каких-то сигналов, то тогда нужно пробовать биты 4,3,1

Картинку можно обрезать до нужного размера прямо на камере
write_camera_reg(0x18, 0x4D); // stop H 480
write_camera_reg(0x1A, 0x47); // stop V 272
Можно как-то шкалировать из 640х480, но пока не разобрался.
Настройка RGB565 у меня такая
write_camera_reg(0x12, 0x04); // COM7
write_camera_reg(0x40, 0xD0); // COM15

При программировании каналов DMA 4-й параметр ставьте равным 4.
Это количество слов на которое наращивается адрес при переходе от одной линии к другой.
В данном случае это означает непрерывность данных.

Еще положительным моментом будет сделать видеобуфер во внутренней памяти.
480х272 RGB565 это как раз один модуль памяти ВН34.
Из внутренней памяти трафик 16 байт на 300 МГц, а из внешней 2 байта на 100 МГц
(с вычетом RAS+CAS и др. )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 12:57 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
BY_man писал(а):
Скорее всего замена HREF на HSYNC это неверно.

Странно. Без этого бита интерфейс камеры не начинает принимать данные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 13:20 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
Я уже сам запутался. Согласно документа на интерфейс, для старта захвата нужно два условия:
1. наличие VS & HS оба высокие
2. затем оба низкие.
Но такое возможно если HREF это HSYNC.
HREF активен (высокий) только когда передаются данные (VS в нуле). Это и нужно для интерфейса.
НЕ понимаю почему у меня работает с HREF, а с HSYNC не работает.
Вроде бы интерфейсы в ВН44 и ВН34 одинаковы.
Если только у меня на плате на процессор подается HSYNC = VSYNC OR HREF.
Тогда всё ОК.

Еще есть один момент.
Из дока на камеру в RGB565 первым идет старший байт, а вторым младший.
Интерфейс же считает, что первый младший , а второй старший.
В доке есть ODD и EVEN. Но с чего начинать считать - с нуля или 1 ? :)
Пробовал переставлять байты - только хуже :)
Картинка отличная, но с цветами что-то не так.


Последний раз редактировалось BY_man 2019-июн-06 13:48, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 13:48 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
BY_man писал(а):
Картинку можно обрезать до нужного размера прямо на камере
write_camera_reg(0x18, 0x4D); // stop H 480
write_camera_reg(0x1A, 0x47); // stop V 272
Можно как-то шкалировать из 640х480, но пока не разобрался.
Настройка RGB565 у меня такая
write_camera_reg(0x12, 0x04); // COM7
write_camera_reg(0x40, 0xD0); // COM15


Попробовал прошкалировать до QVGA (320x240):
Код:
  // HREF --> HSYNC
  CamWriteReg(COM10, 0x40);

  // Selects QVGA RGB mode
  CamWriteReg(COM7, 0x14);

  // rgb565 mode
  CamWriteReg(COM15, 0xD0);

  // scaling enable
  CamWriteReg(COM3, 0x06);
  CamWriteReg(COM14, 0x19);

  CamWriteReg(0x72, 0x11);
  CamWriteReg(0x73, 0xf1);
  CamWriteReg(HSTART, 0x16);
  CamWriteReg(HSTOP, 0x04);
  CamWriteReg(HREF, 0x24);
  CamWriteReg(VSTART, 0x02);
  CamWriteReg(VSTOP, 0x7a);
  CamWriteReg(VREF, 0x0a);


При это коде использую 4 параметр в халовской функции такой:
Код:
// (LcdGetBufWigth()  = 480
// PICTURE_XSIZE = 320
delta = ((LcdGetBufWigth() - PICTURE_XSIZE) / 2) + 4;


Вот что выходит:
Изображение на дисплее отшкалировалось. Но картинки себя всё равно не вижу.


Вложения:
photo_2019-06-06_13-41-20.jpg
photo_2019-06-06_13-41-20.jpg [ 194.66 КБ | Просмотров: 336 ]


Последний раз редактировалось Анисимов Александр 2019-июн-06 13:57, всего редактировалось 2 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 13:55 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
С ДМА понятно. Вы при отгрузке с видеокамеры после каждой строки делаете дырку до размера 480.
В этом случае ДМА канал для LCD грузит полные 480х272.
В режиме 320х240 можно проще. В LCD есть режим где внутри основного окна 480х272 можно
задать окно меньшего размера - например, 320х240. Тогда не нужны будут дырки.

Интерфейс требует чтобы HSYNC был как HSYNC когда VSYNC равен 1, т.е. когда нет данных.
Но он требует чтобы HSYNC был равен HREF когда передаются данные.
Прием данных с HSYNC возможен только если HSYNC активен только во время передачи данных.
Согласно картинке из дока на видеокамеру, HSYNC шире чем HREF , а это значит, что кроме полезных
данных будет приниматься и мусор. Этот мусор нужно будет отрезать и готовить картинку.
Либо нужно как-то научиться управлять HSYNC.

В регистре COM6 есть бит 7. Попробуйте использовать режим HREF с установленным битом 7.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 14:06 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
BY_man писал(а):
Еще есть один момент.
Из дока на камеру в RGB565 первым идет старший байт, а вторым младший.
Интерфейс же считает, что первый младший , а второй старший.
В доке есть ODD и EVEN. Но с чего начинать считать - с нуля или 1 ? :)
Пробовал переставлять байты - только хуже :)
Картинка отличная, но с цветами что-то не так.


В COM3[6] похоже можно свопнуть мсб и лсб :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 14:18 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
Анисимов Александр писал(а):
В COM3[6] похоже можно свопнуть мсб и лсб :)

Это не то. Тогда биты будут задом наперед.
Мне нужно свопнуть байты. Но нигде в камере такого не нашел.
Делал процессором.
rep_swp: r1:0 = Q[j0+0];;
r1:0 = permute(r1:0,0x67452301);;
if nlc0e, jump rep_swp; Q[j0+=4] = r1:0;;
Но результат хуже чем без свопа :)
Одни загадки. Сейчас хочу озадачить тех кто делал плату.
Может признаются в каких-нибудь грехах :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 14:23 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
BY_man писал(а):
Картинку можно обрезать до нужного размера прямо на камере
write_camera_reg(0x18, 0x4D); // stop H 480
write_camera_reg(0x1A, 0x47); // stop V 272
Можно как-то шкалировать из 640х480, но пока не разобрался.
Настройка RGB565 у меня такая
write_camera_reg(0x12, 0x04); // COM7
write_camera_reg(0x40, 0xD0); // COM15


У вас этот код выводит хоть какую - нибудь картинку?
При таких настройках получается, что дельта для Y = 4?
Прикрепил фотку с картинкой как у меня выглядит дисплей при таких настройках))

BY_man писал(а):
В регистре COM6 есть бит 7. Попробуйте использовать режим HREF с установленным битом 7

Попробовал при настройках с шкалингом на qbga rgb565.
Пока глухо. Дисплей также кажет какие-то полосы в выделенной для qvga области


Вложения:
photo_2019-06-06_13-41-20.jpg
photo_2019-06-06_13-41-20.jpg [ 147.1 КБ | Просмотров: 334 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 15:05 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
а как картинку вставить здесь ? :)

У меня точно такая же картинка если HREF поменять на HSYNC.
Но если не менять, то ОК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 15:12 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
BY_man писал(а):
а как картинку вставить здесь ? :)

У меня точно такая же картинка если HREF поменять на HSYNC.
Но если не менять, то ОК.


Вложения:
Capture.PNG
Capture.PNG [ 14.05 КБ | Просмотров: 331 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 15:14 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
А у меня если HREF НЕ менять на HSYNC, то не начинается приём данных и регистр статуса интерфейса камеры говорит, что "нет новых данных в буфере" :( :( :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 15:17 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
Анисимов Александр писал(а):
А у меня если HREF НЕ менять на HSYNC, то не начинается приём данных и регистр статуса интерфейса камеры говорит, что "нет новых данных в буфере" :( :( :(

Сейчас узнал почему у меня работает хотя не должно было.
У меня инфа от ВН34. В ВН44 для старта нужно чтобы VSYNC сначала был в 1,
а затем VSYNC & HSYNC (HREF) были в нуле. Поэтому у меня работает когда режим HREF.
Осталось придумать как запустить это на ВН34.

Пытался настройками внутри видеокамеры сделать из HSYNC точное подобие HREF.
Но пока не получается.

PS. те, кто делал плату вроде без греха. Никаких инвертирующих доп элементов нет.


Последний раз редактировалось BY_man 2019-июн-06 15:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 15:19 
Не в сети

Зарегистрирован: 2019-апр-23 17:27
Сообщения: 60
Откуда: НИЯУ МИФИ
BY_man писал(а):
Анисимов Александр писал(а):
А у меня если HREF НЕ менять на HSYNC, то не начинается приём данных и регистр статуса интерфейса камеры говорит, что "нет новых данных в буфере" :( :( :(

Сейчас узнал почему у меня работает хотя не должно было.
У меня инфа от ВН34. В ВН44 для старта нужно чтобы VSYNC сначала был в 1,
а затем VSYNC & HSYNC (HREF) были в нуле. Поэтому у меня работает когда режим HREF.
Осталось придумать как запустить это на ВН34.

Записал CamWriteReg(COM10,0x06); и появилась картинка!!!!!

Правда какая-то не RGB и кверх ногами относительно дисплея.
Она какая-то серая


BY_man писал(а):
Сейчас узнал почему у меня работает хотя не должно было.

:lol: :lol: :lol:


Вложения:
photo_2019-06-06_13-41-20.jpg
photo_2019-06-06_13-41-20.jpg [ 65.45 КБ | Просмотров: 330 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Видеоинтерфейс
СообщениеДобавлено: 2019-июн-06 15:25 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 199
Откуда: Миландр
у меня тоже с цветами проблема. как-то всё к черно-белому тяготит :)
В данном случае проинвертирован VSYNC.
В этом случае одновременно с VSYNC==1 будет менятся HREF==1 и стартовая комбинация сработает.
Как только VSYNC станет равным 0 (нет передачи данных) внутри интерфейса включится
флаг приема. Когда пойдет новая картинка (VSYNC в 1, но это безразлично) то по HREF всё
начнет приниматься.
Вроде это решение :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3 Все  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB