Полная версия этой страницы:
AVR и Siemens M55
QuickWitted
Jan 16 2008, 05:05
Цитата(bodja74 @ Jan 15 2008, 23:36)

Предлагаю кому не лень и не жалко повыкладывать свои библиотеки и куски кода ,можно будет сделать некий минипроект по этой тематике и выложить на вебстраничку для последователей.
+1
Со схемами если можно...
Могу разместить страничку по этой теме на моём сайте...
Stalker27
Jan 17 2008, 13:10
Собрал следующий проект
http://hobbyelektronik.org/VB/gLCD/S1D15G14/index.htm. Проблема в том, что на экране ни чего не появляется. Возможно ли определить работоспособность дисплея? В чем может быть проблема?
Cyber_RAT
Jan 18 2008, 06:53
Определить работоспособность дисплея со 100 процентной вероятностью можно только вставив его в заведомо рабочий телефон.
to bodja74. жду с нетерпением... как раз подхожу к стадии своего проекта когда нужно формировать пачку картинок для меню и заставок....
yarunt
Jan 18 2008, 11:04
Цитата(Stalker27 @ Jan 17 2008, 16:10)

Собрал следующий проект
http://hobbyelektronik.org/VB/gLCD/S1D15G14/index.htm. Проблема в том, что на экране ни чего не появляется. Возможно ли определить работоспособность дисплея? В чем может быть проблема?
Может сам дисплей виноват ,были случаи инвертирования бита соманды.
Если есть мега 8 можно проверить этими хексами.
Подключатся к ней так
CLK-portd1
DATA-portd2
CS-portd3
RESET-portd6
Работает даже на частоте внутреннего генератора 1мгц
На дисплее должны быть 3 полосы основных цветов.
Stalker27
Jan 18 2008, 12:18
Цитата(yarunt @ Jan 18 2008, 14:04)

Если есть мега 8 можно проверить этими хексами.
У меня есть ATMega16, нет ли хекса под него? Дисплей куплен в магазине, и проверить я его не могу вставив в телефон. Кстати, может у кого есть исходник для LPH88 под CodeVisionAVR?
yarunt
Jan 18 2008, 12:49
Цитата(Stalker27 @ Jan 18 2008, 15:18)

У меня есть ATMega16, нет ли хекса под него? Дисплей куплен в магазине, и проверить я его не могу вставив в телефон. Кстати, может у кого есть исходник для LPH88 под CodeVisionAVR?
Под атмегу16.
Ножки также назначены
Stalker27
Jan 18 2008, 13:30
Цитата(yarunt @ Jan 18 2008, 15:49)

Под атмегу16.
Ножки также назначены
А почему не к аппаратному SPI? Быстрей же вроде должно работать. У кого-нибудь есть хоть какой исходник CodeVisionAVR?
NN1317
Jan 18 2008, 19:33
народ, просвятите...
у меня в данный момент нет возможности измерить, но вопрос меня волнует. сколько жрет подсветка дисплея? и каким максимальным напряжением ее питать? я пробовал 9 вольт, вроде нормально, но скока ей надо действительно?
и еще - кто пользовался микрухами-повышалками напряжения. сколько жрет такая микруха в рабочем состоянии(т.е. когда дисплей подключен)? и при каком примерном напряжении питания микросхемы это измерялось.
SashaGubov
Jan 19 2008, 17:15
Цитата(NN1317 @ Jan 18 2008, 23:33)

народ, просвятите...
у меня в данный момент нет возможности измерить, но вопрос меня волнует. сколько жрет подсветка дисплея? и каким максимальным напряжением ее питать? я пробовал 9 вольт, вроде нормально, но скока ей надо действительно?
и еще - кто пользовался микрухами-повышалками напряжения. сколько жрет такая микруха в рабочем состоянии(т.е. когда дисплей подключен)? и при каком примерном напряжении питания микросхемы это измерялось.
только что подключил LM3519 (20мА-само ограничивает, регулеровка по ШИМ) прекрасно работает
ЗЫ: а если не подключать Reset будет дисплейчик работать?
NN1317
Jan 19 2008, 17:39
а какое входное/выходное напряжение?
SashaGubov
Jan 19 2008, 17:50
Цитата(NN1317 @ Jan 19 2008, 21:39)

а какое входное/выходное напряжение?
входное 3.3 , а выходное тестер отказывается мерять, на 50% где-то 15 вольт
NN1317
Jan 19 2008, 18:18
на 50% чего?!
SashaGubov
Jan 19 2008, 19:18
скважности шима
NN1317
Jan 19 2008, 20:56
ясна, спасибо. я просто приглядываюсь к батарее для мелкого девайса который хочу собрать.
yarunt
Jan 21 2008, 09:57
Цитата(Stalker27 @ Jan 18 2008, 16:30)

А почему не к аппаратному SPI? Быстрей же вроде должно работать. У кого-нибудь есть хоть какой исходник CodeVisionAVR?
А потому что SPI нужен 9 бит
Stalker27
Jan 21 2008, 10:55
Переделал исходник для дисплеев LPH88 с WinAvr на CodeVisionAVR, но не уверен в правильности. Проверьте пожалуйста у кого есть такой.
Cyber_RAT
Jan 22 2008, 14:12
Вроде где-то видел, но не могу вспомнить где...
как сделать чтобы изображение залить в дисплей а потом вывести сразу? (не в синхронизации дело, просто чтобы черный экран - а потом сразу Бац

ибо некрасиво менюшки рисуются

)
Выкладываю свою библиотеку для IAR под МЕГУ 16. в main.h можно поменять тактовую частоту и тип контроллера, SPI аппаратный, схема подключения описана в s65.h после комментария "Разряды управления". Это все работает!
Cyber_RAT
Jan 23 2008, 06:38
нашел...
1.инициализируем.
2. команду в дисплей 0х00, 0х40 (все черным залито) (если экран у нас белый а текст черный, то 0х00, 0х80 - это зальет все белым)
3. выводим картинку на экран
4. команду в дисплей 0х00, 0х00 (БАЦ

и картинка на экране)
по крайней мере у меня софтовый SPI и иначе видно как картинка заполняется...
yarunt
Jan 23 2008, 08:51
Цитата(Cyber_RAT @ Jan 23 2008, 10:38)

2. команду в дисплей 0х00, 0х40 (все черным залито) (если экран у нас белый а текст черный, то 0х00,
А если предидущую картинку не надо затирать?
Stalker27
Jan 23 2008, 09:14
Цитата(zaw @ Jan 22 2008, 23:38)

Выкладываю свою библиотеку для IAR под МЕГУ 16. в main.h можно поменять тактовую частоту и тип контроллера, SPI аппаратный, схема подключения описана в s65.h после комментария "Разряды управления". Это все работает!
А под какой контроллер?
NN1317
Jan 23 2008, 09:41
2Stalker27: ЫЫЫ. читай внимательнее.
Cyber_RAT
Jan 23 2008, 10:23
Цитата(yarunt @ Jan 23 2008, 10:51)

А если предидущую картинку не надо затирать?
ну если не надо предыдущую затирать, то значит обновлять нужно меньше... и прорисуется все быстрее... я когда вывожу несколько цифр так как выше не делаю
Stalker27
Jan 23 2008, 12:12
Цитата(NN1317 @ Jan 23 2008, 12:41)

2Stalker27: ЫЫЫ. читай внимательнее.
Не микроконтроллер, а контроллер дисплея(LS020, LPH88 или L2F50), в s65.h не указано.
yarunt
Jan 23 2008, 14:16
Цитата(Cyber_RAT @ Jan 23 2008, 10:38)

нашел...
1.инициализируем.
2. команду в дисплей 0х00, 0х40 (все черным залито) (если экран у нас белый а текст черный, то 0х00, 0х80 - это зальет все белым)
3. выводим картинку на экран
4. команду в дисплей 0х00, 0х00 (БАЦ

и картинка на экране)
по крайней мере у меня софтовый SPI и иначе видно как картинка заполняется...
Я так понял,что мы имеем
$0040-очищаем дисплей в чорный
$0080-очищаем дисплей в белый
$0000-получаем засветку экрана ,но я непойму у меня это конец инициализации и загружается один раз. После эту команду отключить уже не могу
Andrew_KMR
Jan 23 2008, 18:02
Доброго здоровья всем!
**** У меня вопрос немного не по теме, может кто работал с Multi Media Card (MMC) ****
Не могу разобраться с адресацией, подскажите плиз!
Выдал команду CMD17 для чтения блока данных, далее следует 32 бита адреса, а
в чем указать его, в блоках (по 512 байт) или в байтах от общего объема карты?
И где там младший, а где старший байт адреса?
yarunt
Jan 23 2008, 20:18
Цитата(Andrew_KMR @ Jan 23 2008, 21:02)

Доброго здоровья всем!
**** У меня вопрос немного не по теме, может кто работал с Multi Media Card (MMC) ****
Не могу разобраться с адресацией, подскажите плиз!
Выдал команду CMD17 для чтения блока данных, далее следует 32 бита адреса, а
в чем указать его, в блоках (по 512 байт) или в байтах от общего объема карты?
И где там младший, а где старший байт адреса?

Значит сразу надо перейти на секторную работу с карточкой,и сектора умножать на 512.Пролучившийся результат вставлять в 32 битный регистр,с право младший бит.После
прочитать 512 байт увеличить сектор на один и умножить на 512 ,вставить и снова считать и тд.
Andrew_KMR
Jan 24 2008, 04:25
Цитата(yarunt @ Jan 23 2008, 23:18)

Спасибо за ответ!
А если я в четырех байтах адреса просто буду плюсовать по 512 тоже самое получится?
Вот не знаю как реализовать арифметику...
два регистра сложить могу, а тут их три!
Ведь младший насколько я понял всегда будет = 0
-------------------------------------------------
; Константа 0x0200 -> 512 Dec
; 0x00 уходит в самый младший байт адреса
; 0x02 плюсуем к младшему байту адреса
ldi temp,0x02
add Low_byte,temp
clr temp
adc Medium_byte,temp
-------------------------------------------------
Два регистра складываю с констанотой
Cyber_RAT
Jan 24 2008, 07:03
я делал вычисление адреса так...
zh:zl - номер сектора на ММС
r16,r17,r18,r19 - адрес
clr r19 - так как кратно 512 - то всегда будет = 0
mov r18,zl
mov r17,zh ;т.е. мы сдвинули уже на 8 т.е. умножили на 256
clr r16
lsl r18 - сдвигом умножаем еще на 2 (256*2)
rol r17
rol r16
получаем в итоге адрес кратный 512.. а работаю с секторами от 1 до N
yarunt: у меня 0х00 0х00 восстанавливает экран... т.е. была картинка, дали 0х00 0х40 - все стало черным, даем 0х00 0х00 - опять та же картинка на экране
yarunt
Jan 24 2008, 07:13
Цитата(Andrew_KMR @ Jan 24 2008, 08:25)

Спасибо за ответ!
А если я в четырех байтах адреса просто буду плюсовать по 512 тоже самое получится?
Вот не знаю как реализовать арифметику...
два регистра сложить могу, а тут их три!
Ведь младший насколько я понял всегда будет = 0
-------------------------------------------------
; Константа 0x0200 -> 512 Dec
; 0x00 уходит в самый младший байт адреса
; 0x02 плюсуем к младшему байту адреса
ldi temp,0x02
add Low_byte,temp
clr temp
adc Medium_byte,temp
-------------------------------------------------
Два регистра складываю с констанотой
Точно, только забыл надо перед каждым прочтением сектора 17 команду повторять.
Умножить можно так или 9 раз сдвинуть регистр в лево ,или переставлять 3в4,2в3,1в2,1затереть и раз сдвинуть в лево регистр
Плюсовать ло 512байт нет смысла ,когда работеш с большими масивами
Цитата(Stalker27 @ Jan 23 2008, 12:14)

А под какой контроллер?
LS020B8 - То что написано на приклеенной к дисплею бумажке!
Andrew_KMR
Jan 25 2008, 10:26
Спасибо!
С адресацией разобрался!
Толь вот еще есть Erase Group и Write Protect Group, смутно понимаю
для чего они и можно ли писать и читать по их адресам или это служебная область?
Еще интересно, кто как высчитывает размер карты и оставшееся свободное место?
Про регистр CSD знаю, он у меня почему-то читается в 18 байт, а не в 16...
Может у кого есть более подробное описание к MMC или SD картам?
Или ссылки какие...
Премного благодарен за ответы!
Qwertty
Jan 25 2008, 10:54
Цитата(Andrew_KMR @ Jan 25 2008, 13:26)

Спасибо!
С адресацией разобрался!
Толь вот еще есть Erase Group и Write Protect Group, смутно понимаю
для чего они и можно ли писать и читать по их адресам или это служебная область?
Еще интересно, кто как высчитывает размер карты и оставшееся свободное место?
Про регистр CSD знаю, он у меня почему-то читается в 18 байт, а не в 16...
Может у кого есть более подробное описание к MMC или SD картам?
Или ссылки какие...
Премного благодарен за ответы!

Работа с MMC|SD описана у elm-chan. Там же есть файловая система, простая быстрая и непрожорливая. Без файловой системы карточка это большая свалка битов/байтов/килобайтов...
http://elm-chan.org/fsw/ff/00index_e.html
Cyber_RAT
Jan 30 2008, 13:35
смотрю библиотеки выложенные в форуме и во многих написано такое (в процедуре стирания экрана):
Код
ldi r24,0x09
rcall lcd_wrcmd
ldi r24,0x84
rcall lcd_wrcmd
ldi r24,0x0B
rcall lcd_wrcmd
ldi r24,0xB0
rcall lcd_wrcmd
//передаём 0xFF 0xB6B1 раз(если кол-во раз равно 0xB580,как по Using_the_Siemens_S65.pdf,экран заполняется не полностью??)
однако почему-то выводя фонт 8 на 14 задают х=7 а у=13 а тут задают 132 и 176...
Экран очищается полностью - просто нужно 131 и 175 задавать и не слать несколько лишних сот байт. (что тоже занимает пусть немного, но времени при стирании экрана).
p.s. может кто подскажет какой-нибудь заоптимизированный на скокрость алгоритм софтварного SPI ?
Зверюга
Feb 3 2008, 13:26
Господа, а как насчет FPS?
Я пока никаких сложных картинок не выводил на дисплей, а FPS измерял очищая экран. У меня получилось 10.
Работаю с ATmega32 на частоте 16 МГц, SPI настроен так:
SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);
SPSR = (1<<SPI2X);
Причем, когда убираю флаг двойной скорости SPI и когда ставлю его, скорость не меняется. Может что-то с SPI намудрено?
Кто до скольки разгонял?
Andrew_KMR
Feb 3 2008, 22:30
Возникла идея!
Если нет осцилографа, а нужно посмотреть обмен данными по SPI, использовать MMC
как промежуточный буфер. Ведь скорость у MMC до 25МГц!
Выдаем команду на запись блока и переключаем карту на изучаемое устройство, после
записи 512 байт увидим занятость карты после чего прочтем данные.
Правда паузы между посылками не увидим...
Как думаете, прокатит такой вариант, скажем для изучения нового дисплея?
Чтобы хоть инициализацию выловить.
InvisibleFed
Feb 4 2008, 00:22
Вопрос по LCD (хоть и не сименс). Заметил, что многие современные телефоны то Nokia имеют LCD с почти одинаковым интерфейсом (не SPI). Причем это не зависит от разрешения и количества цветов.
Вот, например.Дана распиновка, а описание интерфейса я так и не нашел. Точно такой же интерфейс используется в более современных N71, N73, N93 с 240x320 TFT, и еще в куче нокий. Что за зверь? С чем его едят? Найти доку на оглашенный там Epson тоже не удалось.
Cyber_RAT
Feb 4 2008, 12:18
Судя по картинке обыкновенный паралельный интерфейс (8 линий данных, выбор команда/данные, сброс, чтение/запись и тд), а вот что там за команды должны бегать - знает производитель этого контроллера и спецы из НОКИЯ (и делиться обычно никто не хочет этой информацией).
Поэтому либо искать по инету - может где найдется даташит, или цеплять снифер на дисплей в телефоне и разбираться.
InvisibleFed
Feb 4 2008, 12:27
Хорошо, коды команд я допустим не знаю, но сам принцип обмена? когда подавать команды, когда данные? Пример есть может от известного LCD?
Cyber_RAT
Feb 5 2008, 06:35
Об этом и написано в даташите на этот контроллер... а если не важно для какого LCD посмотрите на сайте МЭЛТ-а у них примеры инициализации и работы с их ЖКИ есть прямо на сайте.
вот например ЖКИ 128х64 точки
http://www.gaw.ru/html.cgi/txt/lcd/lcm/mel...f/MT-12864J.htm
Qwertty
Feb 5 2008, 08:36
Вообще из разъема можно очень много узнать. В этом конкретном случае имеем 8-ми биную шину, вход выбора соманды/данные (0-команды, 1 - данные), и два строба - для записи и для чтения.
Народ, кто знает относительно дешовый но более крупный дисплей ,с известным протоколом инициализации
InvisibleFed
Feb 8 2008, 10:05
Сегодня притарил с убитый Siemens C75. Предварительно глянул сервис-мануал на него - сигналы пуля в пулю как у S65. Не ясно че конкретно за контроллер - на нем есть только маркировка "M 5 39 01333 D 031A". Внешне очень похож на три рассматриваемых дисплея от S65, но другой (другое расположение элементов на гибкой плате, контакты по середине). Кто пытал такого? Сам скоро тоже займусь.
Nanobyte
Feb 8 2008, 12:30
Цитата(yarunt @ Feb 8 2008, 13:03)

Народ, кто знает относительно дешовый но более крупный дисплей ,с известным протоколом инициализации
Может, этот подойдёт:
http://www.qsl.net/dk7nt/lcd7650/lcd7650index.html
Цитата(Nanobyte @ Feb 8 2008, 16:30)

Этот на 5 мм шире ls020. Мне бы раза в два крупнее
Nanobyte
Feb 11 2008, 19:39
Цитата(yarunt @ Feb 8 2008, 22:33)

Этот на 5 мм шире ls020. Мне бы раза в два крупнее
Может, один из этих подойдёт:
http://www.tdmegalit.ru/monitors.php
Cyber_RAT
Feb 18 2008, 19:18
bodja74:
Осмелюсь еще одну вещь попросить от вашего конвертера.
если картинку выводить на повернутый индикатор (176х132), и в конвертере тоже так ее преобразовывать, то картинка выводится снизу вверх...
т.е. исходная
1111111111
2222222222
3333333333
4444444444
................
а на индикаторе
..............
4444444444
3333333333
2222222222
1111111111

т.е. или конвертить под 132 на 176 и выводить по другому, или выводить наоборот начиная с последней строки картинки, а это лишние телодвижения контроллера. И если не сложно такую вещь в бинарничек (может кому полезно будет) добивать картинку до 512 байтной кратности (для записи на ММС блока картинок, чтобы оперировать секторами) и еще добавить сохранение картинок в один файл последовательным массивом - одна за другой.
p.s. и самая раздражающая вещь - по умолчанию стоит bmp - и хоть ты тресни. При открытии новой картинки приходится выбирать каждый раз если они не в bmp... может лучше сразу фильр на bmp, jpg, gif (и возможность потом выбрать уже конкретно то что надо?)
Andrew_KMR
Mar 12 2008, 19:59
Цитата(bodja74 @ Jan 15 2008, 20:36)

Здравствуйте!
Как у Вас обстоят дела с конвертером?
Я тут мастерю SPI-сниффер на двух 74HC595A, для чтения до 16 бит данных.
Контроллер Mega128, в качестве буфера использую ОЗУ контроллера 4кБ, кварц 20 МГц.
Если у кого имеются наработки в данном направлении буду рад пообщаться!
Cyber_RAT
Mar 13 2008, 06:56
на немецком форуме появилась последовательность команд для шутдауна индикатора ls020xxxx
на
http://brne.narod.ru/siemens-s65.html - стартовая (расписана по регистрам, и powerOFF) только пока не проверял. (тоже для ls020)
bodja74
Mar 13 2008, 11:30
Цитата(Cyber_RAT @ Feb 18 2008, 23:18)

bodja74:
Осмелюсь еще одну вещь попросить от вашего конвертера.
если картинку выводить на повернутый индикатор (176х132), и в конвертере тоже так ее преобразовывать, то картинка выводится снизу вверх...
т.е. исходная
У меня считывание с верхней левой точки вправо и по строкам вниз.Если перевернутый экран то или править прогу для МК или переворачивать картинку в редакторе,сохранять и потом через конвертор.
Пока так ,потом может сканирование снизу вверх.
Цитата
может лучше сразу фильр на bmp, jpg, gif (и возможность потом выбрать уже конкретно то что надо?)
Да ,попрравим.
По поводу памяти думаю сделать програмульку типа менеджера ,чтобы собирать картинки в один файл бинарника ну + еще пару служебных байт .Но пока ориентируюсь на 25F2048 и 25F4096 (последнюю пока купить не могу) ,загрузчики для этих микрух я уже выкладывал.
Цитата
Я тут мастерю SPI-сниффер на двух 74HC595A, для чтения до 16 бит данных.
Контроллер Mega128, в качестве буфера использую ОЗУ контроллера 4кБ, кварц 20 МГц.
Если у кого имеются наработки в данном направлении буду рад пообщаться!
Похоже у этого экрана вывод данных идет двухстороний ,тоесть в обе стороны как в МК некоторых семейств.Так что ,здесь нужно будет еще определяться в какую сторону бегут данные.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.