Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR и Siemens M55
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
Alexsys
Господа, а нет ли у кого информации про дисплеи LPH9135-1 и LPH8731-1 ??? Вообще у них тоже по десять выводов, как и у LPH88xxxx, может и интерфейс одинаков. Оба дисплея были выворочены из телефонов Simens.
Nanobyte
2 skripach Что-то медленно у Вас читается MMC. Вы используете PIC? Может быть, AVR с его аппаратным SPI справится с чтением MMC и записью в дисплей побыстрее? Кроме того, как писал ранее Alexey Belyaev, нужно сначала рисовать картинку в памяти дисплея, а затем давать команду на отрисовку, смена изображения будет производиться мгновенно.
http://electronix.ru/forum/index.php?showt...6563&st=34#
2 Alexsys А Сименсы какие?
invertor79
Никто не пробовал запитывать дисплей S65 от +3В а не +2,9В (не настолько же он нежный)? 2,9В какое-то нестандартное напряжение... или может лучше +2,85В поставить (в выборе компонентов могу только на продукцию TI ориентироваться) ?
Alexsys
LPH9135-1 из Siemens AX72
LPH8731-1 из Siemens MC60 (у C60 вроде такой же)
Nanobyte
Цитата(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
Nanobyte я вывожу картинку на экран побитово(прочитал 1 бит с ММС и тутже отправил на экран) так што применение аппаратного SPI наверное не поможет. А по поводу сначало рисовать, а потом выводить на экран, то при выводе статичных картинок это поможет(но надо знать соответствующие комманды (если они есть)), но я думаю над тем как выводить видео.

invertor79 у меня экран питается от двух аккумуляторов, на них написано 1,2 В; тоесть в сумме 2,4 В все работает.
Nanobyte
Цитата(skripach @ Aug 22 2006, 17:33) *
... при выводе статичных картинок это поможет(но надо знать соответствующие комманды (если они есть)), но я думаю над тем как выводить видео.

Вывод видео как раз и требует быстрой смены картинки на экране, поэтому и нужно готовить её в памяти дисплея. В самих телефонах ведь всё работает (на глаз - 15 fps), значит необходимо оптимизировать чтение/запись SPI. При разрешении 132*176 потребуется прочитать/записать 371712 битов. При тактовой частоте 16 мГц и удвоенной SCK это можно сделать за ~23 mS, т.е. получается ~43 fps. Конечно, нужно ещё время на передачу команд в MMC и LCD, но резервы, как видится, есть.

А команды прорисовки изображения есть, конечно, ведь телефоны это делают. Есть куча подходящих DS на контроллеры, многие команды совпадают с известными, но ...Никак не могу вплотную заняться S65, очень тяжёлый проект завершаю.
skripach
Nanobyte вы пишите что для вывода видео нужна быстрая смена картинки и для этого надо сначала писать в память, но ведь на это тоже нужно время.
Nanobyte
Ну так выше и был приведён примерный расчёт времени на передачу, резерв есть, и неплохой.
Spider
у меня ATmega128 тактована от 20Mhz и SPI в sck/2. Всё равно видна отрисовка. Даже маленького квадратика.
Nanobyte
Но ведь телефоны это как-то делают! Изображение меняется, как в телевизоре, мгновенно.
Spider
Цитата(Nanobyte @ Aug 23 2006, 12:24) *
Но ведь телефоны это как-то делают! Изображение меняется, как в телевизоре, мгновенно.

как я уже говорил телефоны это делают не так как предложили немцы. У немцев 3 разных протокола на 3 дисплея. На практике все 3 дисплея одинакого работают на одном и том же аппарате. т.к. у дисплея нет обратной связи -> телефон не может выбрать протокл работы под тот или иной. Значит телефон работает с дисплеем иначе.
Nanobyte
Речь не идёт о трёх немецких протоколах. Судя по всему (и туманным намёкам в DS) у дисплея 2 страницы видеоRAM, сканирование идёт из одного, а заполняется в это время другой.
А вот насчет SPI-сниффера, похоже родной SPI-SLAVE использовать не удастся, т.к. максимальная скорость приёма Fclk/4. Тогда тактовая AVR должна быть минимум 40 мГц (или 52 мГц). Придётся лепить на дискретной логике и внешнем RAM.
Alexsys
Господа, а можно ли где-то оптом закупать дисплеи, используемые в сотовиках???

По поводу моего предыдущего вопроса насчет дисплеев LPH9135-1 из Siemens AX72 и LPH8731-1 из Siemens MC60. Хочу добавить, что у обоих дисплейчиков по десять контактов в ряд как и у некоторых рассмотренных выше. У LPH8731-1 есть еще один дополнительный контакт, но он находится в сторонке и ни с чем на плате телефона не соединяется.
acex2
Цитата(Alexsys @ Aug 23 2006, 15:44) *
Господа, а можно ли где-то оптом закупать дисплеи, используемые в сотовиках???


www.megaopt.ru
Spider
Цитата(Alexsys @ Aug 23 2006, 18:44) *
У LPH8731-1 есть еще один дополнительный контакт, но он находится в сторонке и ни с чем на плате телефона не соединяется.

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

Выше я приводил расчёты времени для передачи в дисплей. Запас есть, и неплохой. А вот для формирования этой картинки, похоже AVR слабоват. Можно, конечно, поставить 2 буфера RAM, заполнять один и выводить из другого, но это сильно усложняет схему. Лучший способ, наверное, это поставить отдельную дешевую MMC, в которой и хранить готовые сложные изображения, а простые рисовать самому в памяти.
skripach
Как писал Alexey Belyaev на отрисовку даже маленького квадратика уходит много времкни, т.е. если даже не читать с карты ММС, а просто заполнять форму например 60х60 любым цветом, то даже на 20 Мгц это происходит не мгновенно, видно как последовательно заполняются пиксели.

P.S. Я имел ввиду писать картинку в память экрана, а потом соответствующей командой выводить на экран.
Nanobyte
Цитата(skripach @ Aug 23 2006, 20:01) *
... даже на 20 Мгц это происходит не мгновенно, видно как последовательно заполняются пиксели.

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


Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3
Nanobyte
Цитата(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
А-а-а блин. w00t.gif
Запустил я его !!! По крайней мере инициализируется, на экране красивый мусор. Подводные грабли были в том, что резисторная схема согласования уровней никуда не годится. Запитал Mega16 и дисплей от одного питания 3.3в и всё заработало! w00t.gif
avesat
схемы мобильных телефонов
http://yasikgsm.narod.ru/schematics.html
skripach
Извиняюсь, был неправ. Все равно медленно.
Spider
Цитата(Nanobyte @ Aug 24 2006, 15:14) *
А-а-а блин. w00t.gif
Запустил я его !!! По крайней мере инициализируется, на экране красивый мусор. Подводные грабли были в том, что резисторная схема согласования уровней никуда не годится. Запитал Mega16 и дисплей от одного питания 3.3в и всё заработало! w00t.gif

Я это делал срежствами 74LVC245ADW. Запитывая её от 3.3 получаем на выходе правильные 3.3

Цитата(Alexsys @ Aug 24 2006, 13:35) *
Цитата(Alexey Belyaev @ Aug 23 2006, 17:39) *

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


Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3

Он самый. Спасибо за консутльтацию smile.gif
Nanobyte
Сегодня, наконец-то полностью запустил отображение на экране S65, и вот что выяснилось: у меня дисплей типа L2F50, и с ним работает ТОЛЬКО предназначенная для него версия программы. Собрал схемку на М128, которую предлагают немцы, пробовал грузить в Мегу варианты программ для L2F50, LS020 и LPH88. С чужими версиями программ дисплей даже не инициализируется.
Похоже, что протоколы разные, и телефон эти дисплеи как-то различает.
Теперь вопрос к знатокам С. Прилагаемая программа написана на Си, и я никак не могу расковырять последовательности команд, чтобы переписать программу на ASM. Просьба сообщить, на какой версии языка эта программа написана и, по возможности, откомпилировать её с выходом ASM-кода. Пытался я дисассемблировать HEX, но такая ерунда получается. Буду крайне признателен за разъяснения и ASM-код.

Нажмите для просмотра прикрепленного файла
Spider
Цитата(Nanobyte @ Aug 27 2006, 00:12) *
Похоже, что протоколы разные, и телефон эти дисплеи как-то различает.

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

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

2 zltigo
Книги я, конечно, почитаю. Но может быть, Вам или кому-либо сделать ASM-листинг будет проще?
Мне-же придётся доставать С, ставить его, пытаться разобраться с его командами и т.д. То-ли дело, кристалльно чистый и понятный ASM (IMHO, конечно) smile.gif (Кстати, мои поздравления с юбилеем Вашего счётчика сообщений cheers.gif )
zltigo
Цитата(Nanobyte @ Aug 26 2006, 22:07) *
Книги я, конечно, почитаю.

Право дело это стоит сделать, тем более там для начала реально все требуется по минимуму и читать всегда проще, чем писать.
Цитата
Но может быть, Вам или кому-либо сделать ASM-листинг будет проще?

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

Спасибо! Правда это уже повторный юбилей :-), поскольку несколько сот сообщений на счетчике слетели при "атаке" :-(
Nanobyte
Цитата(zltigo @ Aug 27 2006, 00:22) *
... Хотя для ознакомления ЛУЧШЕ изучать что-либо на высокорувневом языке а по неоткомментированному ASM листингу после компилятора. Вы жаловались на чушь после дизассемблера, так почему Вы рассчитываете увидеть что-то отличающееся от него?

Дело в том, что у супернемцев некоторые проекты выложены с полупереваренным исходником С - на ASM. Компилятор оставляет все комментарии, разобраться довольно просто. Мне-же просто не хочется изучать очередной язык, за ненадобностью. Ну не нужен мне С ! Пробовал я изобразить из себя компилятор, дисплей инициализируется, показывает цветные точки ... и всё. А вот рабочую программу корявить будет не в пример легче.

А что касается счётчика сообщений, то модератор восстанавливает его по Вашей просьбе (я это делал в разделе "Стать своим")
Alexsys
2 Alexey Belyaev

Цитата(Alexsys @ Aug 24 2006, 13:35) *
Цитата(Alexey Belyaev @ Aug 23 2006, 17:39) *

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


Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3


А его ты запускать в ближайшее время не планируешь??? И интересно, что это за дополнительный контакт???
Spider
Цитата(Alexsys @ Aug 28 2006, 12:54) *
2 Alexey Belyaev

Цитата(Alexsys @ Aug 24 2006, 13:35) *

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

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


Может быть и да. Прилагаю экскизик, красным отмечены подстроечник и этот самый дополнительный контакт. Маркировка на нем LPH8731-1 63332893 V3


А его ты запускать в ближайшее время не планируешь??? И интересно, что это за дополнительный контакт???

кто бы знал как... А контак видимо технологический, в телефоне не используется.
Nanobyte
Установил я 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
Нужно прописать в 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
Промучился я с 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 sad.gif
Spider
Моя аська в контакте. Пиши - разберёмся. или аттач то что пытаешься собрать - опять же разберёмся.
Nanobyte
2 Alexey Belyaev
Пытаюсь откомпилировать всё ту-же программу для L2F50 (в этой теме, мой пост, #82). Нужен выходной файл на ASM. Буду очень признателен за помощь.
Spider
Цитата(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
Спасибо вам ОГРОМНОЕ, Alexey, это именно то, что мне надо a14.gif
У меня, по всей видимости, WinAVR косо стоит, а ещё вероятнее - я пока не умею с ним работать blush.gif
Попробую разобраться, результаты сообщу, конечно!
Sam_Gold
Подключил дисплей от S65(LS020) к аппаратному SPI. Инициализация проходит, задаю область экрана для вывода. Начинаю рисовать- все ok. Перехожу в другую обасть, начинаю рисовать- выводит в прежнюю, в то самое место где только что остановился. Помогите сменить координаты! help.gif

...
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); }
...
osnwt
Цитата(Nanobyte @ May 28 2006, 11:15) *
А вы не могли бы, dexter_khm, кратко описать дисплей? Хотя бы число выводов, а ещё лучше, прикрепить здесь его фотографии. Может, что и найду.

А не удастся ли дать наводку по такому вот зверю от C65 или чего-то подобного? Маркировка следующая (130 на 130 точек):

CG130130-S602D-03
BH 04273_29112_0

Отдельно надпись в углу S602DA (это, видимо, контроллер). Интерфейс по пинам похож на интерфейс S65-го дисплея (схема телефона есть), но найти информацию по нему не удалось, даже о том, кто производитель контроллера дисплея (не говоря о даташите). Маркировка не похожа на те три варианта, что упоминаются у немцев на сайте.

Валяется, жалко дисплейчик - хочется задействовать.
skripach
Sam_Gold попробуйте поменять местами координаты X b Y. Я использовал только одну команду выделения области, так вот в ней у немцев перепутаны местами координаты.
Sam_Gold
skripach, смена координат результатов не далаsad.gif Не могли бы Вы на своем устройстве попробовать вывести изображение в различные области, несколько раз сменив при этом координты?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.