Дисплеи от мобильных телефонов- осцилограммы работы

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

SubDia писал(а):Вы документацию на CP2102 смотрели? Там черным по белому написано: " Baud rates: 300 bps to 1 Mbits"

Как начал с ним заниматься конечно скачал даташит. Я чип этот полтора года назад купил, тогда мне всё, что выше программного USB (со скоростью 6400 бод) было за счастье, потому что устройство было не ради видео.

Кислый писал(а):в полудюплексном режиме он работает до 2М

Попробую, если сработает - уже лучше, хотя получается внештатный режим. Как атмега8 на 3 вольта и 16мгц :)

Кислый писал(а):Baud Rates: up to 2 Mbps

Я понял откуда эта цифра взялась, на той странице ведь не про CP2102 конкретно, а про линейку чипов, начал глядеть их отличия, нашёл что CP2104 по даташиту даёт эти самые up to 2 Mbps.

SubDia писал(а):Avarges, видимо, все же рассчитывал на все 12М

Ага, в следующий раз буду внимательнее. Хотел не глядя купить AT91USB или ARM7, теперь сначала почитаю даташит - на какой скорости они с USB дадут работать.

SubDia писал(а):Ну допустим. А что с синхронизацией? Как осуществлять тактирование HC165-й?

Глупая идея, конечно. Мне лишь бы в магазин за более мощным чипом не ехать :)))
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение SubDia »

Avarges писал(а):Мне лишь бы в магазин за более мощным чипом не ехать

Знакомая ситуация. :))) :))) Самому нужно съездить за кварцевым генератором на радиорынок, а я в отпуске, и последние несколько дней дальше магазина в соседнем доме не хожу. =)
Что ж, желаю удачи в экспериментах.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

Удалось поднять FPS при выводе видео на дисплей, на неожиданную для себя величину: с 12.8 кадров в секунду до 17.9. Поэтому продолжу писать про оптимизацию алгоритма, может кому-то потом пригодится.

Вот тут

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

   // Отправляем в дисплей пикселы в любом количестве
   // рисуются они попиксельно слева направо и сверху вниз
   // когда кадр отрисуется то начинает рисоваться следующий поверх
   Send_to_lcd( DAT, color ); // Вывод первого пиксела
   Send_to_lcd( DAT, color ); // второго
   Send_to_lcd( DAT, color ); // третьего


Вот сама процедура Send_to_lcd

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

void Send_to_lcd (char RS, char data) {
   unsigned char mm;
   
   byte_to_send = data;
   LCD_CLK=0;
   LCD_DATA=0;
   if ((RS_old != RS) || (!RS_old && !RS)) { // проверяю старое значение RS и тут  (мол если прутся одни команды то дергаем CS)
      LCD_CS=1;
      LCD_RS=RS;
      LCD_CS=0;
   }
   for (mm = 0; mm < 8; mm++) { //собсно цикл передачи данных
      LCD_DATA = (byte_to_send >> 7);
      LCD_CLK=1;  // защелкиваю в дисплей
      byte_to_send = (byte_to_send << 1);
      LCD_CLK=0;  //  готовлю к следующей защелке
   }
   RS_old=RS;  // запоминаю значение RS
   LCD_DATA = 0;
}


Пикселы идут всегда с первым параметров для процедуры Send_to_lcd( DAT, ...
сразу можно убрать проверку эту " if ((RS_old != RS) || (!RS_old && !RS))", вместо этого один раз перед выводом пикселов:

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

   // Обнуление
   LCD_CLK=0;
   LCD_DATA=0;
   
   // Сообщаем что данные пойдут
   LCD_CS=1;
   LCD_RS=1;
   LCD_CS=0;


Дальше лучше процедуру Send_to_lcd вообще не использовать, потому что каждый вызов процедуры это RCALL и RET команды, по даташиту 3 и 4 машинных такта теряем на каждый пиксел. Поэтому лучше сразу вытащить вывод пиксела прямо в код:

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

   
unsigned char mm, cc, color;
...
      cc = color;
      for (mm = 0; mm < 8; mm++) { //собсно цикл передачи данных
         LCD_DATA = 0;
         if (cc > 127) { LCD_DATA = 1; }

         LCD_CLK=1;  // защелкиваю в дисплей
         cc = (cc << 1);
         LCD_CLK=0;  //  готовлю к следующей защелке
      }


Но после этого всего я получил только 12.8 FPS, а 17.9 после того как последний кусок превратил в прямой код (без цикла):

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

      LCD_DATA = 0;
      if ((cc & 128) == 128) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 64) == 64) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 32) == 32) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 16) ==16) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 8) == 8) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 4) == 4) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 2) == 2) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;
      LCD_DATA = 0;
      if ((cc & 1) == 1) { LCD_DATA = 1; }
      LCD_CLK=1;
      LCD_CLK=0;


Подглядывал как WinAVR это компилирует в ассемблер, в файле .lss получается красивый код на базе SBRC, SBI, CBI команд.
И вот такой код уже даёт 17.9 FPS на том же самом видео из Терминатора-2.
Аватара пользователя
Кислый
Поставщик валерьянки для Кота
Сообщения: 2095
Зарегистрирован: Чт апр 08, 2010 18:50:01
Откуда: Краснодар
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Кислый »

госпола.. а загляните в описалово к mpeg. там передается не сама катринка, а приращение. там где его нет или оно очень маленькое - его просто аннулируют и вставляют биты пропуска.. попробуйте на примере того же 3gp
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: ЖК и камеры от мобилок

Сообщение SubDia »

Побаловалссо тут маленько с камерой от Siemens C-72.

Изображение

В правой части платы, конечно, бардак - там я временно устанавливал ПЛИС (был проведен ряд неудачных экспериментов).
Камерой управляет ARM-контроллер STM32F100C4T6B. Камера у Семена C-72 собрана на сенсоре PO2030N (это девайс от PixelPlus). Этот же сенсор установлен в CF75. Из полезных особенностей отмечу возможность включения в VGA, QVGA и QQVGA режимах разрешения (640х480, 320х240 и 160х120).
Картинку вывожу на дисплей от Nokia 6100 (контроллер Epson S1D15G10) разрешением 130х130 точек.
Вот изображение, сделанное при тусклом освещении (пыльная лампочка 60 Вт, висящая далеко в углу))). Свет от настолки на качество съемки здесь не влияет, т.к. не падает на камеру.

Изображение
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
VDLab
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср июн 29, 2011 14:16:22
Откуда: __.DP.UA

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение VDLab »

Кислый писал(а):госпола.. а загляните в описалово к mpeg. там передается не сама катринка, а приращение. там где его нет или оно очень маленькое - его просто аннулируют и вставляют биты пропуска.. попробуйте на примере того же 3gp

А мужики то не знали...
И что это дает? То, что весь ключевой кадр нужно держать в памяти, на ходу распаковывать и, сравнивая с ключевым, восстанавливать исходный...Тут все как прежде, АРМ не всякий, и не при любом разрешении справится. Это MPEG1, с современными форматами все куда интереснее, в малобюджетных решениях типа MP4-плееров производители продвигают свои форматы, оптимизированные под конкретный чип, в более дорогих решениях типа КПК и смартфонов, все зависит от мощности процессора и качества софтового кодека. Короче, Меге, да и простеньким АРМам, здесь делать нечего.
[color=#FFBF00]На любой вопрос даю любой ответ[/color]
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Кислый, вроде уже обсуждали недавно что контроллер не потянет распаковку mpeg. Как передается картинка в таком формате думаю тоже все знают. Я уже писал насчет формата mjpeg. Он попроще намного и с ним еще можно поэксперементировать. Правда контроллер лучше помощнее брать
З.Ы. В любом случае какойбы небыл формат к нему еще декодер нужно писать
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

VDLab писал(а):весь ключевой кадр нужно держать в памяти

А если допустим засылать отличия мелкими квадратами, вместе с координатами? Естественно не mpeg, а свой кодек написать. Жалко нет прозрачного пиксела или мы его ещё не нашли.
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение SubDia »

О, mpeg1.. на пятом курсе этот формат отправил меня на пересдачу по Основам телевидения. :))) Ну да ладно.
Avarges писал(а):если допустим засылать отличия мелкими квадратами

Я думаю, что разницы не будет. Просто будет больше телодвижений для контроллера. Возможно, ошибаюсь.
Avarges писал(а):Жалко нет прозрачного пиксела или мы его ещё не нашли.

Его не существует. :)
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
VDLab
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср июн 29, 2011 14:16:22
Откуда: __.DP.UA

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение VDLab »

SubDia писал(а):
Avarges писал(а):если допустим засылать отличия мелкими квадратами

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

Не ошибаетесь, а разница будет только в том, что все будет еще медленнее и печальнее, это ж придется распаковав текущий "квадрат" подгружать соответствующий участок ключевого кадра, а это немалая потеря времени. Да и засылаются они именно "мелкими квадратами", внимательно посмотрев на экран телевизора, особенно при просмотре содержимого с невысоким битрейтом это отчетливо видно.
Последний раз редактировалось VDLab Сб ноя 05, 2011 20:55:41, всего редактировалось 1 раз.
[color=#FFBF00]На любой вопрос даю любой ответ[/color]
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

А зачем ключевой кадр подгружать, я же и говорю, что рисовать поверх, потому и непомешал бы "прозрачный пиксел" (автоинкремент без рисования пиксела). На малодвижущейся картинке определенно будет выгода. Вообще лучше бы посмотреть что в себе 3gp несёт кроме ZIP сжатия и как там инженеры мобильников выкручиваются, перед ними та же задача стояла.
Аватара пользователя
VDLab
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср июн 29, 2011 14:16:22
Откуда: __.DP.UA

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение VDLab »

Подгружать его как раз и нужно потому, что "прозрачный пиксел" - это виртуальное понятие, реализуемое за счет вычислительных средств МК.
Да и не в этом дело. Подгружать как раз и придется те участки, которые требуется изменить. Ведь чтобы вычислить разницу нужно знать, что было в оригинале...
Короче, не пытайтесь изобрести велосипед.
А инженеры мобильников начали встраивать запись видео в своих телефонах только после того, как вычислительная мощность процессоров, встраиваемых в них, позволила на лету сжимать и расжимать видео этого формата, опять же, разработанного под относительно слабенькие процы телефонов того времени.
[color=#FFBF00]На любой вопрос даю любой ответ[/color]
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

Ладно, бог с ним, со сжатием - будет у меня что-то помощнее атмеги8, поиграюсь.

Кстати, FPS ещё удалось поднять с 17.9 до 21.6, оптимизацией оптимизированного кода.
Аватара пользователя
Dotoro22
Встал на лапы
Сообщения: 100
Зарегистрирован: Пт окт 28, 2011 19:45:23

Re: ЖК и камеры от мобилок

Сообщение Dotoro22 »

Круто)
какой фрейм рейт?
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: ЖК и камеры от мобилок

Сообщение SubDia »

Эх, как я надеялся не услышать этот вопрос ни от кого. :)
Фреймрейт весьма и весьма фиговенький. Я не проводил точного измерения, но примерно около 5 кадров в секунду. Поясню почему. Во-первых, максимальная тактовая частота контроллера - 24 МГц. Во-вторых, дисплей с последовательной шиной данных. В-третьих, дисплей не способен воспринимать 16-битные данные, вследствие чего мне приходится проделывать определенный алгоритм преобразования принятых от камеры данных. А именно прием первых четырех байт данных от камеры (это данные двух пикселей - по 16 бит на каждый) и преобразование четырех байт в 3 байта 12-битных данных. Отсюда и низкая скорость.
Сейчас хочу попытаться запустить дисплей от Nokia N71 (320x240). Проблема в том, что я сломал разъем, но попробую приладить на тонких проводках. У дисплея параллельная шина данных, а также способность воспринимать 16-битный цвет, то есть необходимость преобразования отпадает - можно будет транслировать данные от камеры прямо на дисплей.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

А почему собственно сразу ARM всплывает когда речь идёт о этих дисплеях?
Ведь есть например PIC18F2550 на 48МГц работает, USB аппаратный - должен с запасом потянуть.

Одно но, если на этих 48МГц будет 48MIPS, то есть в 3 раза быстрее можно будет на порт выставлять данные. А то мало ли что означают эти 48 МГц, может микрочиповцы такие же хитропопые, как разработчики CP2102 у которых 12Mbit означают реально в 12 раз меньше :)
Пока читаю даташит, слово "MIPS" не ищется в нём.
Аватара пользователя
VDLab
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср июн 29, 2011 14:16:22
Откуда: __.DP.UA

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение VDLab »

Avarges писал(а):А почему собственно сразу ARM всплывает когда речь идёт о этих дисплеях?

Потому что это самая распространенная архитектура среди современных МК и МП, которые смогут осилить работу с видео. Есть, конечно же, МК и других архитектур.
Ведь есть например PIC18F2550 на 48МГц работает, USB аппаратный - должен с запасом потянуть.

Одно но, если на этих 48МГц будет 48MIPS, то есть в 3 раза быстрее можно будет на порт выставлять данные. А то мало ли что означают эти 48 МГц, может микрочиповцы такие же хитропопые, как разработчики CP2102 у которых 12Mbit означают реально в 12 раз меньше :)
Пока читаю даташит, слово "MIPS" не ищется в нём.

У 8-битных ПИКов машинный цикл составляет 4 такта, поэтому на 48МГц у него максимальная производительность 12 MIPS.
А 12Мбит/сек не будет ни с одним МК, потому как в эти 12мегабит входит и служебные данные, поэтому скорость полезного потока может лишь в большей или меньшей степени приближаться к этой цифре, эта степень зависит не только от мощности МК но и от качества софтовой части.
Реально на этих МК добивались скорости полезных данных что то около 700-800 кБайт/сек.
[color=#FFBF00]На любой вопрос даю любой ответ[/color]
Chettuser

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Chettuser »

А чем не устраивает PIC24/PIC32? Уже не 8 бит. PIC32 даже с ядром MIPS.
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Ключевой кадр полюбому нужно подгужать рано или поздно. mpeg кодеки все работают с ключевыми кадрами. Без этого никак. А вот как часто подргружать ключевой кадр это уже другой вопрос. Альфа канал (прозрачный пиксель) это не что иное как вычесление предыдущего пиксела с следующим посредством значения альфа. Тоесть это тоже функция а следовательно трата времени. в 3gp тоже используются ключевые кадры. Сам ключевой кадр тоже сжат и на его распаковку тоже нужно время
Chettuser, pic32 вроде на 40 мгц работает если не ошибаюсь. С этим контроллером думаю можно поигратся. К томуже у него вроде встроенный аудиовыход уже есть. Мне кажется на таком контроллере можно уже думать насчет распаковки видео. Только ненужно изобретать велосипед насчет декодера. Декодер видео лучше сдереть готовый. Это уже давно придумано до нас. Остальное - дело техники
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
Avarges
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вт дек 22, 2009 02:24:50
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Avarges »

Атмега8 имеет показатель 16MIPS, а PIC18F2550 получается только 12MIPS, если так, то он не подходит конечно.
Ответить

Вернуться в «Периферия»