Полная версия этой страницы:
AVR и Siemens M55
Alexsys
Aug 22 2006, 07:23
Господа, а нет ли у кого информации про дисплеи LPH9135-1 и LPH8731-1 ??? Вообще у них тоже по десять выводов, как и у LPH88xxxx, может и интерфейс одинаков. Оба дисплея были выворочены из телефонов Simens.
Nanobyte
Aug 22 2006, 08:48
2
skripach Что-то медленно у Вас читается MMC. Вы используете PIC? Может быть, AVR с его аппаратным SPI справится с чтением MMC и записью в дисплей побыстрее? Кроме того, как писал ранее
Alexey Belyaev, нужно сначала рисовать картинку в памяти дисплея, а затем давать команду на отрисовку, смена изображения будет производиться мгновенно.
http://electronix.ru/forum/index.php?showt...6563&st=34#2
Alexsys А Сименсы какие?
invertor79
Aug 22 2006, 09:51
Никто не пробовал запитывать дисплей S65 от +3В а не +2,9В (не настолько же он нежный)? 2,9В какое-то нестандартное напряжение... или может лучше +2,85В поставить (в выборе компонентов могу только на продукцию TI ориентироваться) ?
Alexsys
Aug 22 2006, 10:04
LPH9135-1 из Siemens AX72
LPH8731-1 из Siemens MC60 (у C60 вроде такой же)
Nanobyte
Aug 22 2006, 12:11
Цитата(invertor79 @ Aug 22 2006, 13:51)

Никто не пробовал запитывать дисплей S65 от +3В а не +2,9В (не настолько же он нежный)?
Я пробовал питать LCD S65 и Mega16 от 78L03. Mega работает нормально, хотя она и без L. Удобство в том, что не требуется согласовывать уровни Меги и LCD.
На немецких форумах, посвященных мобильниковским LCD, народ также пишет о работоспособности LCD при питании 3,6в.
http://www.mikrocontroller.net/forum/read-...load=yes#243641
skripach
Aug 22 2006, 13:33
Nanobyte я вывожу картинку на экран побитово(прочитал 1 бит с ММС и тутже отправил на экран) так што применение аппаратного SPI наверное не поможет. А по поводу сначало рисовать, а потом выводить на экран, то при выводе статичных картинок это поможет(но надо знать соответствующие комманды (если они есть)), но я думаю над тем как выводить видео.
invertor79 у меня экран питается от двух аккумуляторов, на них написано 1,2 В; тоесть в сумме 2,4 В все работает.
Nanobyte
Aug 22 2006, 19:42
Цитата(skripach @ Aug 22 2006, 17:33)

... при выводе статичных картинок это поможет(но надо знать соответствующие комманды (если они есть)), но я думаю над тем как выводить видео.
Вывод видео как раз и требует быстрой смены картинки на экране, поэтому и нужно готовить её в памяти дисплея. В самих телефонах ведь всё работает (на глаз - 15 fps), значит необходимо оптимизировать чтение/запись SPI. При разрешении 132*176 потребуется прочитать/записать 371712 битов. При тактовой частоте 16 мГц и удвоенной SCK это можно сделать за ~23 mS, т.е. получается ~43 fps. Конечно, нужно ещё время на передачу команд в MMC и LCD, но резервы, как видится, есть.
А команды прорисовки изображения есть, конечно, ведь телефоны это делают. Есть куча подходящих DS на контроллеры, многие команды совпадают с известными, но ...Никак не могу вплотную заняться S65, очень тяжёлый проект завершаю.
skripach
Aug 22 2006, 20:49
Nanobyte вы пишите что для вывода видео нужна быстрая смена картинки и для этого надо сначала писать в память, но ведь на это тоже нужно время.
Nanobyte
Aug 22 2006, 20:56
Ну так выше и был приведён примерный расчёт времени на передачу, резерв есть, и неплохой.
Spider
Aug 23 2006, 02:03
у меня ATmega128 тактована от 20Mhz и SPI в sck/2. Всё равно видна отрисовка. Даже маленького квадратика.
Nanobyte
Aug 23 2006, 05:24
Но ведь телефоны это как-то делают! Изображение меняется, как в телевизоре, мгновенно.
Spider
Aug 23 2006, 07:17
Цитата(Nanobyte @ Aug 23 2006, 12:24)

Но ведь телефоны это как-то делают! Изображение меняется, как в телевизоре, мгновенно.
как я уже говорил телефоны это делают не так как предложили немцы. У немцев 3 разных протокола на 3 дисплея. На практике все 3 дисплея одинакого работают на одном и том же аппарате. т.к. у дисплея нет обратной связи -> телефон не может выбрать протокл работы под тот или иной. Значит телефон работает с дисплеем иначе.
Nanobyte
Aug 23 2006, 10:36
Речь не идёт о трёх немецких протоколах. Судя по всему (и туманным намёкам в DS) у дисплея 2 страницы видеоRAM, сканирование идёт из одного, а заполняется в это время другой.
А вот насчет SPI-сниффера, похоже родной SPI-SLAVE использовать не удастся, т.к. максимальная скорость приёма Fclk/4. Тогда тактовая AVR должна быть минимум 40 мГц (или 52 мГц). Придётся лепить на дискретной логике и внешнем RAM.
Alexsys
Aug 23 2006, 11:44
Господа, а можно ли где-то оптом закупать дисплеи, используемые в сотовиках???
По поводу моего предыдущего вопроса насчет дисплеев LPH9135-1 из Siemens AX72 и LPH8731-1 из Siemens MC60. Хочу добавить, что у обоих дисплейчиков по десять контактов в ряд как и у некоторых рассмотренных выше. У LPH8731-1 есть еще один дополнительный контакт, но он находится в сторонке и ни с чем на плате телефона не соединяется.
Цитата(Alexsys @ Aug 23 2006, 15:44)

Господа, а можно ли где-то оптом закупать дисплеи, используемые в сотовиках???
www.megaopt.ru
Spider
Aug 23 2006, 13:39
Цитата(Alexsys @ Aug 23 2006, 18:44)

У LPH8731-1 есть еще один дополнительный контакт, но он находится в сторонке и ни с чем на плате телефона не соединяется.
это такой с подстроечным резистором? Так вот что у меня валяется!
skripach
Aug 23 2006, 14:03
Я читал на форуме (не помню каком), человек писал что в телефоне на дисплей информацию выводит ARM на 105 МГЦ. Поэтому я думая надо искать контроллер побыстрее. Если даже картинку писать в память, а потом выводить на экран, то от этого быстрее не будет потомушто на запись в память тоже время нужно.
Nanobyte
Aug 23 2006, 14:44
Цитата(skripach @ Aug 23 2006, 18:03)

...Если даже картинку писать в память, а потом выводить на экран, то от этого быстрее не будет потомушто на запись в память тоже время нужно.
Выше я приводил расчёты времени для передачи в дисплей. Запас есть, и неплохой. А вот для формирования этой картинки, похоже AVR слабоват. Можно, конечно, поставить 2 буфера RAM, заполнять один и выводить из другого, но это сильно усложняет схему. Лучший способ, наверное, это поставить отдельную дешевую MMC, в которой и хранить готовые сложные изображения, а простые рисовать самому в памяти.
skripach
Aug 23 2006, 16:01
Как писал Alexey Belyaev на отрисовку даже маленького квадратика уходит много времкни, т.е. если даже не читать с карты ММС, а просто заполнять форму например 60х60 любым цветом, то даже на 20 Мгц это происходит не мгновенно, видно как последовательно заполняются пиксели.
P.S. Я имел ввиду писать картинку в память экрана, а потом соответствующей командой выводить на экран.
Nanobyte
Aug 23 2006, 17:28
Цитата(skripach @ Aug 23 2006, 20:01)

... даже на 20 Мгц это происходит не мгновенно, видно как последовательно заполняются пиксели.
Тогда совсем что-то непонятно. Сколько времени требуется AVR чтобы переслать 7200 байтов по SPI ? Значит, сам дисплей тормозит. Блин, сдам проект, займусь разборками с S65 вплотную.
skripach
Aug 23 2006, 18:03
Вот и я тоже несовсем понимаю в чем дело по расчетам должно быть быстрее, а на практике!!!
Пробывал на 4 Мгц и тут же на 12 Мгц, на глаз на 12 Мгц в три раза быстрее. А по поводу что экран тормозит так у меня сразу после вывода картинки должен загорется контрольный светодиод и загорается точно после вывода картинки.
Nanobyte
Aug 23 2006, 18:27
2
skripach Я так понял, что Вы программируете PIC. Может быть, Вам попробовать перенести проект на кристалл, в котором есть аппаратный SPI? Всё-таки он будет пошустрее программного. Здесь, на форуме, недавно была дискуссия на эту тему:
http://electronix.ru/forum/index.php?showt...18587&st=0#А то что-то совсем чудеса получаются.
skripach
Aug 23 2006, 18:56
Сейчас как раз этим занимаюсь, сделал макетку с новым PICом, куча аппаратных интерфейсов но всё теже 20 Мгц, может ситуация прояснится. Поднимал вапрос относительно быстрого процессора на сайте MICROCHIP, там меня отправили на
http://www.ubicom.com/ они производят контроллеры с тактовой частотой 50-100 Мгц и 4-х уровневой конвееризацией, т.е. одна инструкция за один такт.
Nanobyte
Aug 23 2006, 19:42
Тогда, может быть, первым делом попробуете просто залить экран каким-либо цветом, не связываясь с MMC ? Сразу все станет ясно с быстродействием дисплея.
skripach
Aug 23 2006, 22:33
Из документации (скриншот ниже) следует что мах. частота SPI порта 5Мгц т.е. 5 миллионов бит можно передать за секунду, а размер картинки 2973696 бит, почти 3 миллиона бит. Из этого вывод: картинку на 20 Мгц можно вывести чуть бустрее чем за секунду.
P.S. Это для PICa, но для AVR думаю будет также.
Alexsys
Aug 24 2006, 06:35
Цитата(Alexey Belyaev @ Aug 23 2006, 17:39)

это такой с подстроечным резистором? Так вот что у меня валяется!

Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3
Nanobyte
Aug 24 2006, 06:50
Цитата(skripach @ Aug 24 2006, 02:33)

... а размер картинки 2973696 бит, почти 3 миллиона бит. Из этого вывод: картинку на 20 Мгц можно вывести чуть бустрее чем за секунду.
Чего-то я не пойму. 132*176*16=371712. Размер картинки ~0.4 млн. бит.
Цитата(skripach @ Aug 24 2006, 02:33)

P.S. Это для PICa, но для AVR думаю будет также.
Для AVR при 20 мГц будет 20 мБит/с.
Nanobyte
Aug 24 2006, 08:14
А-а-а блин.
Запустил я его !!! По крайней мере инициализируется, на экране красивый мусор. Подводные грабли были в том, что резисторная схема согласования уровней никуда не годится. Запитал Mega16 и дисплей от одного питания 3.3в и всё заработало!
avesat
Aug 24 2006, 09:18
skripach
Aug 24 2006, 15:42
Извиняюсь, был неправ. Все равно медленно.
Spider
Aug 24 2006, 17:43
Цитата(Nanobyte @ Aug 24 2006, 15:14)

А-а-а блин.
Запустил я его !!! По крайней мере инициализируется, на экране красивый мусор. Подводные грабли были в том, что резисторная схема согласования уровней никуда не годится. Запитал Mega16 и дисплей от одного питания 3.3в и всё заработало!

Я это делал срежствами 74LVC245ADW. Запитывая её от 3.3 получаем на выходе правильные 3.3
Цитата(Alexsys @ Aug 24 2006, 13:35)

Цитата(Alexey Belyaev @ Aug 23 2006, 17:39)

это такой с подстроечным резистором? Так вот что у меня валяется!

Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3
Он самый. Спасибо за консутльтацию
Nanobyte
Aug 26 2006, 17:12
Сегодня, наконец-то полностью запустил отображение на экране S65, и вот что выяснилось: у меня дисплей типа L2F50, и с ним работает ТОЛЬКО предназначенная для него версия программы. Собрал схемку на М128, которую предлагают немцы, пробовал грузить в Мегу варианты программ для L2F50, LS020 и LPH88. С чужими версиями программ дисплей даже не инициализируется.
Похоже, что протоколы разные, и телефон эти дисплеи как-то различает.
Теперь вопрос к знатокам С. Прилагаемая программа написана на Си, и я никак не могу расковырять последовательности команд, чтобы переписать программу на ASM. Просьба сообщить, на какой версии языка эта программа написана и, по возможности, откомпилировать её с выходом ASM-кода. Пытался я дисассемблировать HEX, но такая ерунда получается. Буду крайне признателен за разъяснения и ASM-код.
Нажмите для просмотра прикрепленного файла
Spider
Aug 26 2006, 18:12
Цитата(Nanobyte @ Aug 27 2006, 00:12)

Похоже, что протоколы разные, и телефон эти дисплеи как-то различает.
ты сам то как это себе видишь? Есть вероятность конечно 4ого протокола - общего.
zltigo
Aug 26 2006, 18:23
Цитата(Nanobyte @ Aug 26 2006, 20:12)

чтобы переписать программу на ASM. Просьба сообщить, на какой версии языка эта программа написана
Там и "программы" почти и нет, переписывание на АSM практически ничего не даст. Сам "C" абсолютно нетральный - просто скомпилить любым компилятором и слинковать объектник будет разумно. Конкретно используемый компилятор (avr-gcc) виден в makefile. Если интересуют "команды", то книжку по "C" самое начало почитать и будет понятно.
Nanobyte
Aug 26 2006, 19:07
2
Alexey Belyaev:
Возможны следующие варианты:
1) Какой-то общий протокол.
2) Возможно, какая-либо линия, или несколько, двунаправленная (во время RESET, к примеру).
3) Наиболее вероятно, измеряют входное сопротивление линий. Что-то типа определения скорости при подключении к USB. Кстати, у супернемцев на форуме, этот вопрос обсуждается.
4) Почти невероятно - какой-либо датчик (сенсор) на телефоне. Схему пока подробно не рассматривал.
По поводу Display ID - по всей видимости, отвечает программе главный процессор, а для него важно разрешение и глубина цвета, поэтому ID и одинаковый.
Главное, разница есть, и управлять дисплеем приходится по разному.
2
zltigoКниги я, конечно, почитаю. Но может быть, Вам или кому-либо сделать ASM-листинг будет проще?
Мне-же придётся доставать С, ставить его, пытаться разобраться с его командами и т.д. То-ли дело, кристалльно чистый и понятный ASM (IMHO, конечно)

(Кстати, мои поздравления с юбилеем Вашего счётчика сообщений

)
zltigo
Aug 26 2006, 20:22
Цитата(Nanobyte @ Aug 26 2006, 22:07)

Книги я, конечно, почитаю.
Право дело это стоит сделать, тем более там для начала реально все требуется по минимуму и читать всегда проще, чем писать.
Цитата
Но может быть, Вам или кому-либо сделать ASM-листинг будет проще?
Я просто под AVR не пишу, но думаю, что кто-нибудь откликнится, поскольку работы на несколько минут. Хотя для ознакомления ЛУЧШЕ изучать что-либо на высокорувневом языке а по неоткомментированному ASM листингу
после компилятора. Вы жаловались на чушь после дизассемблера, так почему Вы рассчитываете увидеть что-то отличающееся от него?
Цитата
Кстати, мои поздравления с юбилеем Вашего счётчика сообщений

Спасибо! Правда это уже повторный юбилей :-), поскольку несколько сот сообщений на счетчике слетели при "атаке" :-(
Nanobyte
Aug 26 2006, 20:49
Цитата(zltigo @ Aug 27 2006, 00:22)

... Хотя для ознакомления ЛУЧШЕ изучать что-либо на высокорувневом языке а по неоткомментированному ASM листингу после компилятора. Вы жаловались на чушь после дизассемблера, так почему Вы рассчитываете увидеть что-то отличающееся от него?
Дело в том, что у супернемцев некоторые проекты выложены с полупереваренным исходником С - на ASM. Компилятор оставляет все комментарии, разобраться довольно просто. Мне-же просто не хочется изучать очередной язык, за ненадобностью. Ну не нужен мне С ! Пробовал я изобразить из себя компилятор, дисплей инициализируется, показывает цветные точки ... и всё. А вот рабочую программу корявить будет не в пример легче.
А что касается счётчика сообщений, то модератор восстанавливает его по Вашей просьбе (я это делал в разделе "Стать своим")
Alexsys
Aug 28 2006, 05:54
2 Alexey Belyaev
Цитата(Alexsys @ Aug 24 2006, 13:35)

Цитата(Alexey Belyaev @ Aug 23 2006, 17:39)

это такой с подстроечным резистором? Так вот что у меня валяется!

Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3
А его ты запускать в ближайшее время не планируешь??? И интересно, что это за дополнительный контакт???
Spider
Aug 28 2006, 06:02
Цитата(Alexsys @ Aug 28 2006, 12:54)

2 Alexey Belyaev
Цитата(Alexsys @ Aug 24 2006, 13:35)

Цитата(Alexey Belyaev @ Aug 23 2006, 17:39)

это такой с подстроечным резистором? Так вот что у меня валяется!

Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3
А его ты запускать в ближайшее время не планируешь??? И интересно, что это за дополнительный контакт???
кто бы знал как... А контак видимо технологический, в телефоне не используется.
Nanobyte
Aug 29 2006, 05:52
Установил я WinAVR-2005214, пытаюсь компилировать программу для S65. В ответ на команду make вываливает сообщение:
> "make.exe" all
-------- begin --------
process_begin: CreateProcess((null), avr-gcc --version, ...) failed.
make (e=2): Системе не удается найти указанный файл.
make.exe: *** [gccversion] Error 2
> Process Exit Code: 2
Когда принудительно указал путь для make.exe, то сообщает следующее:
> "make.exe" allmake.exe: *** No rule to make target `all'. Stop.
> Process Exit Code: 2
Что-бы это значило? Замучился я с ним. Прошу подсказки у знающих.
Spider
Aug 29 2006, 05:57
Нужно прописать в PATH пути до WinAVR
что-то типа того: C:\WinAVR\bin;C:\WinAVR\utils\bin;
явное указание путей не помогает.
Я иногда делаю так:
compile.bat:
Код
set AVR=c:/winavr
PATH=.;%AVR%/bin;%AVR%/utils/bin
make -f makefile %*
Nanobyte
Aug 29 2006, 15:03
Промучился я с WinAVR еще 2 часа, даже скачал неовейшую версию WinAVR-20060421 (23 мБ, однако), но вид всё тот-же - сбоку. Кучу путей ему прописал, вроде всё находит, но ответ:
> "make.exe" allmake.exe: *** No rule to make target `all'. Stop.
> Process Exit Code: 2
Причём, make clean проходит. Стирается целый список файлов, пишет ОК.
Может, ошибка в Makefile? Просматривал его, генерировал с помощью MFile - та же ерунда.
Где-же грабли? Здесь, на форуме, искал похожее, но ... Придётся, наверное, всё-таки дисассемблировать HEX
Spider
Aug 29 2006, 15:11
Моя аська в контакте. Пиши - разберёмся. или аттач то что пытаешься собрать - опять же разберёмся.
Nanobyte
Aug 29 2006, 15:19
2 Alexey Belyaev
Пытаюсь откомпилировать всё ту-же программу для L2F50 (в этой теме, мой пост, #82). Нужен выходной файл на ASM. Буду очень признателен за помощь.
Spider
Aug 29 2006, 15:32
Цитата(Nanobyte @ Aug 29 2006, 22:19)

2 Alexey Belyaev
Пытаюсь откомпилировать всё ту-же программу для L2F50 (в этой теме, мой пост, #82). Нужен выходной файл на ASM. Буду очень признателен за помощь.
Вот что у меня получилось. Не знаю что вы там делали, но у меня получилось собрать с первого раза.
make всё сделал. для примера приложены 3 файла.
set.txt - Результат работы set>set.txt
log.txt и log2.txt результат "make"
воля.
Я НИЧЕГО НЕ ПРАВИЛ.
Nanobyte
Aug 29 2006, 16:10
Спасибо вам ОГРОМНОЕ,
Alexey, это именно то, что мне надо
У меня, по всей видимости, WinAVR косо стоит, а ещё вероятнее - я пока не умею с ним работать
Попробую разобраться, результаты сообщу, конечно!
Sam_Gold
Aug 31 2006, 01:13
Подключил дисплей от S65(LS020) к аппаратному SPI. Инициализация проходит, задаю область экрана для вывода. Начинаю рисовать- все ok. Перехожу в другую обасть, начинаю рисовать- выводит в прежнюю, в то самое место где только что остановился. Помогите сменить координаты!
...
Init_S65_Display();
AT91F_PIO_SetOutput(AT91C_BASE_PIOA,D_C);
Delay(1000000);
Send_SPI(0xEF);
Send_SPI(0x90);
Send_SPI(0x05);
Send_SPI(0x04);
Send_SPI(0x08);
Send_SPI(40);
Send_SPI(0x09);
Send_SPI(110);
Send_SPI(0x0A);
Send_SPI(10);
Send_SPI(0x0B);
Send_SPI(165);
Delay(1000);
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,D_C);
Delay(100000);
for (i=0;i<4000;i++){ Send_SPI(0x07); Send_SPI(0x70); }
AT91F_PIO_SetOutput(AT91C_BASE_PIOA,D_C);
Delay(100000);
Send_SPI(0xEF);
Send_SPI(0x90);
Send_SPI(0x05);
Send_SPI(0x04);
Send_SPI(0x08);
Send_SPI(10);
Send_SPI(0x09);
Send_SPI(50);
Send_SPI(0x0A);
Send_SPI(10);
Send_SPI(0x0B);
Send_SPI(50);
Delay(1000);
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,D_C);
Delay(100000);
for (i=0;i<2000;i++){ Send_SPI(0xf0); Send_SPI(0x00); }
...
Цитата(Nanobyte @ May 28 2006, 11:15)

А вы не могли бы, dexter_khm, кратко описать дисплей? Хотя бы число выводов, а ещё лучше, прикрепить здесь его фотографии. Может, что и найду.
А не удастся ли дать наводку по такому вот зверю от C65 или чего-то подобного? Маркировка следующая (130 на 130 точек):
CG130130-S602D-03
BH 04273_29112_0
Отдельно надпись в углу S602DA (это, видимо, контроллер). Интерфейс по пинам похож на интерфейс S65-го дисплея (схема телефона есть), но найти информацию по нему не удалось, даже о том, кто производитель контроллера дисплея (не говоря о даташите). Маркировка не похожа на те три варианта, что упоминаются у немцев на сайте.
Валяется, жалко дисплейчик - хочется задействовать.
skripach
Sep 1 2006, 22:26
Sam_Gold попробуйте поменять местами координаты X b Y. Я использовал только одну команду выделения области, так вот в ней у немцев перепутаны местами координаты.
Sam_Gold
Sep 2 2006, 22:42
skripach, смена координат результатов не дала

Не могли бы Вы на своем устройстве попробовать вывести изображение в различные области, несколько раз сменив при этом координты?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.