Rapatup & Plibnik

USB-видео граббер для БК-0010

10 сентября 2011г.

Существование этого проекта оправдано тем, что в БК нету PAL-кодера и, подключив ее к композитному входу монитора, телевизора, или ТВ-тюнера нельзя получить цветную картинку. USB-фреймграббер позволяет получать четкое изображение, пиксель к пикселю, в полном цвете, без каких либо модификаций самой БК.

Система позволяет оцифровывать в реальном времени изображение с БК-0010 и передавать его в компьютер через USB-порт. Для захвата полноцветной картинки требуется только один выход синхросмеси. Оцифровывается каждое второе поле, в остальное время идет передача данных. Таким образом, картинка обновляется приблизительно 24.5 раза в секунду (у БК не совсем стандартная развертка).

Реализация

Проект построен на базе ChipKIT MAX32, Arduino-совместимой платы на базе микроконтроллера PIC32MX795F512 семейства PIC32. Внешние детали требуются только для приведения композитного видеосигнала к LVTTL уровням. Кроме того, требуется один провод для соединения выхода CLK одного SPI модуля на вход другого. В текущей версии не получилось подобрать параметры усилителя так, чтобы видеосигнал всегда был одинаково стабилен. Если на экране преобладает белый (красный), картинка может начать мерцать, или пропасть. Эту проблему можно решить применением быстрого компаратора в аналоговой части схемы.

Видеосигнал поступает на вход компаратора, который настроен на выделение синхроимпульсов и на вход MOSI одного из модулей SPI, который работает в ведомом режиме. Срабатывание компаратора запускает таймер, который, отсчитав время начала строки, запускает оба модуля SPI и контроллер DMA, который перекачивает данные из ведомого SPI в буфер. Один из модулей SPI настроен в режиме frame master и служит только для генерации 12МГц pixel clock-а. Второй модуль, ведомый, принимает видеосигнал в качестве данных, которые тактируются клоком от первого модуля. После завершения оцифровки одной строки, весь цикл начинается заново и так продолжается пока не будет оцифрован весь кадр. Когда оцифровка кадра завершена, результат передается в компьютер через USB. Программа-хост реализует Custom HID через библиотеку libusb и рисует картинку через libSDL и OpenGL. Декодирование цвета происходит в компьютере.



В этом видео можно видеть проблему с уровнем сигнала, которая обостряется по мере того, как заполняется экран. Подбором деталей схемы удалось ситуацию немного исправить, но не решить полностью. Требуется более полноценный видеоусилитель на входе.
...



Сорцы и схемы

Схема «материнской» платы доступна на сайте chipKit'a: [link]
Схема «шилда» в формате Eagle: [link]
Сорскод для PIC32: [link]
Сорскод для OSX и Linux: [link]



—-—
Address of this page: http://sensi.org/~svo/bkvideo/
All Rights Reserved
Copyright © 2011 Viacheslav Slavinsky  svofski on gmail
Sun Sep 11 03:27:20 MSD 2011