Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дисплеи OLED на S6E63D6
Форум разработчиков электроники ELECTRONIX.ru > Поставщики компонентов для электроники > Компоненты > Средства индикации
fiim
Привет всем! Я пытаюсь освоить такой дисплей.
Если записывать данные в ОЗУ дисплея, то эти изменения сразу видны на экране,
т.е. экран непрерывно обновляется читая данные из своего ОЗУ.
Нет ли в этих дисплеях команды остановки обновления,
чтобы можно было сперва записать кучу данных в ОЗУ,
а потом единожды обновить по новым данным экран?
С уважением! rolleyes.gif
sonycman
Тоже собираюсь поработать с дисплеем на этом контроллере.
Не подскажете, в режиме SPI обязательно с каждым 16 битным словом данных дёргать CS и передавать байт ID (как показано в даташите), или достаточно одного ID и потом просто битовый поток данных?

Какая последняя доступная версия даташита на этот контроллер?
fiim
Вот, не знаю, я пытаюсь использовать параллельный интерфейс, а SPI не пробовал.
У меня ПДФ на контроллер версия 1.10
sonycman
Цитата(fiim @ Mar 22 2010, 20:16) *
Вот, не знаю, я пытаюсь использовать параллельный интерфейс, а SPI не пробовал.
У меня ПДФ на контроллер версия 1.10

У меня тоже даташит 1.10 - значит, он последний.

А чем управляете дисплеем, каким контроллером?
Какой ширины используете параллельную шину?
Какова получается макс. скорость записи?

У меня по SPI на 10 мегабитах заливка всего дисплея занимает на глаз около 0.2 секунды (16 битный цвет).
Слишком медленно, имхо...
Надо будет тоже в параллель идти.

По поводу Вашего вопроса - может быть, стоит воспользоваться чтением регистра статуса?
Он должен указывать текущую позицию "луча", таким образом можно синхронизироваться и начать вывод в GRAM пропустив "луч" дисплея вперёд...

Но в этом случае скорость записи должна быть такой, чтобы успеть передать весь кадр быстрее, чем дисплей начнёт формирование следующего кадра.
Например, если кадровая частота дисплея 60 Гц, то надо уложиться в 1/60 секунды - 16 миллисекунд, что соответствует скорости в ~73 мегабита для 16 битного цвета...
fiim
Нет, конечно это недостижимо, да и нет смысла: если я смог бы сформировать картинку настолько быстро, то не было бы необходимости задерживать обновление экрана.
Может народу не совсем понятно, зачем мне это надо? Поясню. Вот, вы, положим, выводите на экран картинку в качестве фона. Сверху на этом фоне пишете цифру, которая постоянно меняется. Т.е. чтобы написать новую цифру, вам необходимо перерисовать весь фон(цифра в этот момент "затирается"), а сверху написать заново измененную цифру. Из за этого получается мигание цифры, а этого быть конечно не должно. Выйти из этого положения можно с помощью внешнего ОЗУ на 153кБайта-очень не хочется его городить. Опять же дорого.
Я использую 16бит ширину. Скорости мне хватает, получается примерно 10 кадров в секунду. Можно и быстрее(~15 раз в сек), но это если картинку из ОЗУ читать, а не с флэшки.
sonycman
А почему бы сразу при печати не выводить картинку в места, где у цифр должен быть цвет фона?
Пропустите этап "стирания", то есть объедините его вместе с текстом в одну операцию.

Как у вас работает процедура печати, какой цвет присваивается пикселям, которые должны быть фоновыми под текстом?
fiim
Если под цифрой просто какой-то цвет, то и проблем нет))
А вот если под цифрами сложная картинка, скачанная с компьютера 320х240, тады ой!
Представьте картинку на весь экран-какую-нибудь фотографию. А на ней, положим, три цифры в разных местах: одна в верхнем левом углу, другая посреди экрана, и третья в нижнем правом. Для каждой цифры надо читать свой кусочек картинки. Т.е. если печатать цифры вместе с картинкой, то выбрать необходимые пикселы из картинки очень сложно, т.к. чтение картинки с флэш идет с кучей разных прерываний и с использованием ДМА. Вот если бы картинка была просто на ОЗУ, то проблем было бы меньше. Да где ж взять 153кБайта ОЗУ?))
sonycman
Цитата(fiim @ Mar 24 2010, 18:46) *
Да где ж взять 153кБайта ОЗУ?))

Ну, если у Вас такие большие картинки - ставьте ОЗУ smile.gif

Или ищите дисплей с несколькими страницами видеопамяти - не думаю, что на S6E63D6 можно что-то замутить...
fiim
Дисплей с несколькими страницами видеопамяти - было бы хорошее решение.
Я знаю такие дисплеи только НЕ цветные.
Может быть кто подскажет есть ли такие цветные?
fiim
Даа, кажется никто не подскажет. Ну, ничего, у меня вроде и без этого получается сделать цифирь поверх картинки. Только очень сложно получается, и медленнее работает, чем могло бы..
sonycman
Цитата(fiim @ Mar 26 2010, 21:37) *
Даа, кажется никто не подскажет. Ну, ничего, у меня вроде и без этого получается сделать цифирь поверх картинки. Только очень сложно получается, и медленнее работает, чем могло бы..

Наверное, подгружаете картинку с флешки? wink.gif

У Вас чистый синий цвет (RGB: 0x00 0x00 0xff) как выглядит? У меня кажется несколько светловатым.
Использую вот такие настройки гаммы (дисплей WEGO320240BCNN11XX00):
Код
    _WriteRegister(AMR_GAMMA_TBC_R, 0x2580);
    _WriteRegister(AMR_GAMMA_TBC_G, 0x2780);
    _WriteRegister(AMR_GAMMA_TBC_B, 0x3380);
    _WriteRegister(AMR_GAMMA_CTRL_R_12, 0x1d18);
    _WriteRegister(AMR_GAMMA_CTRL_R_34, 0x1f11);
    _WriteRegister(AMR_GAMMA_CTRL_G_12, 0x2419);
    _WriteRegister(AMR_GAMMA_CTRL_G_34, 0x1a14);
    _WriteRegister(AMR_GAMMA_CTRL_B_12, 0x211a);
    _WriteRegister(AMR_GAMMA_CTRL_B_34, 0x2013);


Сегодня запустил "родной" бустер питания матрицы 4.6 и -4.4 вольт - NCP5810.
Потребление огромное - при общем питании дисплея и бустера от 3.3 вольт и полностью залитым белым экране ток достигает 400 ма!! cranky.gif
Этот дисплей однозначно не для мобильных девайсов...
fiim
Ой-йёй! Чет многовато кушает! Наверно очень большой дисплей? У меня РРТ9999 кушает 30 ма при засветке наполовину.
Яркость цветов надо подбирать в зависимости от напряжения бустера. Я подбирал сам методом втыка. Получилось так:
_WriteRegister(AMR_GAMMA_TBC_R, 0x3А00);
_WriteRegister(AMR_GAMMA_TBC_G, 0x3А00);
_WriteRegister(AMR_GAMMA_TBC_B, 0x3А00);
_WriteRegister(AMR_GAMMA_CTRL_R_12, 0x3932);
_WriteRegister(AMR_GAMMA_CTRL_R_34, 0x2С0D);
_WriteRegister(AMR_GAMMA_CTRL_G_12, 0x3932);
_WriteRegister(AMR_GAMMA_CTRL_G_34, 0x2С0D);
_WriteRegister(AMR_GAMMA_CTRL_B_12, 0x3932);
_WriteRegister(AMR_GAMMA_CTRL_B_34, 0x2С0D);
Как видите,я не очень заморачивался , подобрал 1 цвет и сделал два других такими же..
Да, запихал несколько картинок на флешку и читаю аттудава. Сейчас вожусь с тачпанелью wacko.gif
sonycman
Цитата(fiim @ Mar 27 2010, 22:14) *
Ой-йёй! Чет многовато кушает! Наверно очень большой дисплей? У меня РРТ9999 кушает 30 ма при засветке наполовину.
Яркость цветов надо подбирать в зависимости от напряжения бустера. Я подбирал сам методом втыка.

Дык, у меня аппликуха от производителя, все параметры инициализации оттуда.
А напруги бустера в даташите жёстко заданы.
Дисплей не особо большой - 2.8 дюйма.
Но потребление вроде соответствует опять же указанному в даташите - там 400mw для 30% включенных пикселей.
Насколько я понял, мощность дана для напряжения бустера - 9 вольт (4.6 + 4.4)...

А что за РРТ9999? Что-то в поисковике не нашёл sad.gif
fiim
biggrin.gif Не нашли, потому что скопировали из моего текста, а у меня русскими буквами было написано))) Попробуйте еще раз, тока аглицкими))
PPT9999-A003-08-Q
Вы не экспериментируете? Я из даташита беру только принцип. Значения в проге менять легче, чем напряжение бустера.
У меня тоже 2,8. Вместе с управляющим контроллером(stm32f103VC -48MHz)кушает 70ма.
Да, извиняюсь, это потребление дано в цепи +5В, до стабилизаторов, а дальше, в цепи 3.3В оно конечно больше, наверно около 120, я не мерил.
Но мне кажется, что у Вас все в порядке, просто у Вас настройка регистров на максимум, а мне для экспериментов достаточно гораздо меньшей яркости.
Я сейчас больше занимаюсь программой, нежели подбором цветов и яркости.
sonycman
Цитата(fiim @ Mar 28 2010, 16:18) *
Вы не экспериментируете? Я из даташита беру только принцип. Значения в проге менять легче, чем напряжение бустера.
У меня тоже 2,8. Вместе с управляющим контроллером(stm32f103VC -48MHz)кушает 70ма.
Да, извиняюсь, это потребление дано в цепи +5В, до стабилизаторов, а дальше, в цепи 3.3В оно конечно больше, наверно около 120, я не мерил.

У меня тоже по 5 вольтам, около 100 ма потребляет LPC1768 на 100 МГц + KS8721, и почти 400 дисплей - это максимум.

Так Вы засветите весь дисплей белым цветом - сколько "кушать" будет?

Цитата
Но мне кажется, что у Вас все в порядке, просто у Вас настройка регистров на максимум, а мне для экспериментов достаточно гораздо меньшей яркости.

Ну, судя по значениям регистров гаммы - 0x3f00 - у Вас гораздо выше яркость, чем у меня.

ЗЫ: да, с Вашими параметрами гаммы мой дисплей стал кушать ещё на 100 ма больше!
Приведите, пожалуйста, полностью процедуру инициализации?
Может, я там где-то накосячил?

Или у Вас напряжения бустера (AR_VDD и AR_VSS) сильно отличаются от +4.6 и -4.4...
fiim
Ничего Вы не накосячили, процедура из ПДФ в чистом виде, только значения другие- Вы их видели. Просто у меня бустер с меньшим напряжением:не спалите там чего-нибудь у себя так доверяя чужому коду!) Разобрал ради Вас всю конструкцию(чтобы ток померить по-нормальному), перерезал дорожку и чуть не замкнул схему забыв подложить под экран изолятор)) засветил полностью экран белым и подобрал яркость, чтобы хватало ярким днем.
И мне тооже не понравился ток моей схемы))) 215ма!!! Правда это вместе с stm32, но все равно я считаю много!
sonycman
Спасибо за труды! smile.gif

А какие напряжения бустеров Вы используете? Если меньшие, то это объясняет меньший ток, и завышенные параметры яркости в Вашем случае...

А я просто стараюсь всё делать согласно документации производителя.
Инициализацию, рекомендованную WinStar, если нужно, выложу позже (сейчас на работе), но она весьма короткая, и не повторяет полностью огромную "портянку" из даташита на S6E63D6.

Видимо, сотни миллиампер для OLEDов - это норма. Обратная, так сказать, сторона их впечатляющей картинки smile.gif

ЗЫ: вот моя инициализация, основанная на примере WinStar:
Код
    _SetIndex(AMR_SELECT_8BIT_IF);
    _WriteRegister(AMR_RGB_IF_CONTROL, 0);
    _WriteRegister(AMR_ENTRY_MODE, 0x110);
    _WriteRegister(AMR_POWER_GEN_3, 0xf);    //5 volt VGH
    _WriteRegister(AMR_POWER_GEN_4, 0xf);    //-5 volt VGL
    _WriteRegister(AMR_OSCILLATOR_CONTROL, 0x1f);    //default (x1) oscillator frequency
    _WriteRegister(AMR_GAMMA_TBC_R, 0x2580);    //Gamma settings
    _WriteRegister(AMR_GAMMA_TBC_G, 0x2780);
    _WriteRegister(AMR_GAMMA_TBC_B, 0x3380);
    _WriteRegister(AMR_GAMMA_CTRL_R_12, 0x1d18);
    _WriteRegister(AMR_GAMMA_CTRL_R_34, 0x1f11);
    _WriteRegister(AMR_GAMMA_CTRL_G_12, 0x2419);
    _WriteRegister(AMR_GAMMA_CTRL_G_34, 0x1a14);
    _WriteRegister(AMR_GAMMA_CTRL_B_12, 0x211a);
    _WriteRegister(AMR_GAMMA_CTRL_B_34, 0x2013);
    _WriteRegister(AMR_STANDBY, 0);    //Stand by off
    Pause(150);
    ClearWholeScreen(RGB_BLACK);
    SetPin(lcd_pen_pin);
    _WriteRegister(AMR_DISPLAY_CONTROL_1, 0x1);    //    Display on
fiim
Напряжения у меня +3.3 и -3.2В. Но с ними яркость на пределе, так что позже сделаю побольше.
Хорошо, что инициализация здесь вообще не нужна, если устраивают дефолтные настройки.
Т.е. не особенно задумываешься, правильно ли запустил дисплей. Меня волнует другое: при 100% белых пикселей по экрану движутся полосы- явно это связано с питанием, только непонятно какой кондер надо увеличить. И еще: если я запитываю от USB, и контакт в разъеме шевелить, то дисплей сбоит.
sonycman
Цитата(fiim @ Mar 30 2010, 20:15) *
Меня волнует другое: при 100% белых пикселей по экрану движутся полосы- явно это связано с питанием, только непонятно какой кондер надо увеличить.

Это плохое качество силового питания.
Такие дисплеи требуют высокоточных стабилизаторов, так как малейшие пульсации\просадки напряжения становятся видны на экране.
У меня с установкой NCP5810 эта проблема ушла smile.gif
fiim
NCP5810 стоит больше 100 руб + обвязка -дороговато, и корпус неудобный, как Вы его паяли(?), но видимо никуда не денешься
sonycman
Цитата(fiim @ Mar 31 2010, 12:48) *
NCP5810 стоит больше 100 руб + обвязка -дороговато, и корпус неудобный, как Вы его паяли(?), но видимо никуда не денешься

Есть ещё TPS65130, но корпус тоже QFN, обвязки в два раза больше, 25 выводов и по току слабее.
NCP5810 по всем параметрам лучше, проще с обвязкой и пинов всего 12.

Паяется легко - я сам первый раз запаивал такой корпус, получилось с первого раза безо всяких проблем.
Просто на плате сделал контактные площадки подлиннее - так, чтобы выступали за корпус на 1 мм.
Чтобы удобно было паяльником каждый пин пропаять.
Плюс сделал отверстие 1.5 мм в центральном паде под корпусом, чтобы капнуть припоем с другой стороны платы.

Сначала прихватил несколько пинов паяльником, потом прогрел микросхему феном с t=260 градусов в течении 10 секунд, чтобы припой под корпусом схватился.
Потом ещё раз хорошенько выводы паяльником, и каплю припоя через отверстие на thermal pad.

Результаты оправдали ожидания.

А с линейными стабилизаторами + инвертор у меня так и не получилось полностью избавиться от шумов.

ЗЫ: сбавил немного у себя яркость гаммой - белый цвет не намного стал темнее, зато ток упал с 390 до 240 ма при залитом белым цветом дисплее!
Так и оставлю, наверное.
fiim
Есть еще LT3471, ног даже меньше, но обвязки немножко больше, так что думаю Ваш вариант лучший.
Феном я никогда не паяю, боюсь перегреть, тем более вокруг еще куча элементов. даже контроллер(0.5мм) и коннектор(0.3)паял паяльником
А то что большой ток -это не страшно, потому что реально белый экан никогда не бывает. Реальная картинка кушает в 2-3 раза меньше, поэтому потребление иногда получается даже меньше чем у TFT со светодиодной подсветкой, а качество картинки действительно лучше.
sonycman
Дисплеи OLED, в отличие от ЖК, имеют ограниченный срок службы, яркость свечения пикселей тоже снижается.
Поэтому актуально отключать дисплей, когда в нём нет необходимости.

Как лучше это сделать - просто подавать команду DISPLAY OFF, или идти дальше - устанавливать режим StandBy и выключать напряжения ArVDD/ArVSS?
fiim
Не знаю, не подскажу. Наверно это зависит от того насколько вы хотите уменьшить потребление.
Я думаю уменьшение яркости со временем будет заметно если использовать настройки на максимум, а если вместо 400ма использовать 240, то вряд ли.smile.gif
Я так понял, что у Вас дисплей используется с отдельной эвалбордой? как вы его крепите? уменя он пока болтается, не хочу его пока жестко закреплять, т.к. часто приходится снимать, чтобы что-нибудь померять на плате
sonycman
Цитата(fiim @ Apr 1 2010, 19:34) *
Не знаю, не подскажу. Наверно это зависит от того насколько вы хотите уменьшить потребление.
...
Я так понял, что у Вас дисплей используется с отдельной эвалбордой? как вы его крепите?

Да, пока просто буду сбрасывать бит display_on, а там видно будет.

Дисплей у меня крепится проволочными скобами, просто прижат немного к плате и всё. Для отладки пойдёт.

А часто отсоединять его я бы не советовал - коннектор весьма невысокого качества, да и изнашивается шлейф...
fiim
А почему Вы взяли именно ОЛЕД? Ведь он действительно проблемнее чем ТФТ?
sonycman
Цитата(fiim @ Apr 3 2010, 16:59) *
А почему Вы взяли именно ОЛЕД? Ведь он действительно проблемнее чем ТФТ?

А Вы?

Потому что картинка лучше.
Взял для себя, что нибудь сделаю на нём.

До этого поработал с двухцветным простым ОЛЕДом - остался всем доволен.
Но там подключение гораздо проще.
fiim
Я тоже ради картинки. Но это подключение.. эта куча кондеров и т.д....
Не знаю, если осилю сделать по-нормальному, тогда буду доволен, но сейчас хочется бросить и взять простой ТФТ)))
sonycman
Цитата(fiim @ Apr 3 2010, 20:47) *
Я тоже ради картинки. Но это подключение.. эта куча кондеров и т.д....
Не знаю, если осилю сделать по-нормальному, тогда буду доволен, но сейчас хочется бросить и взять простой ТФТ)))

Я предварительно отладочную плату сделал специальную, с бустером и со всем необходимым.
Чтобы цивильно было.
Иначе с такой "дурой" никак smile.gif
Artem_v
Добрый день

сейчас начал проект на STM32F103 c дисплеем на S6E63D6.
Подскажите, можно где-то найти библиотеку на С на инициализацию и элементарный вывод на этот дисплей?
fiim
Добрый день! Поищите в поиске "application_note_for_am2" там все что надо есть
Alexey_Sev
Использовал ли кто дисплей от Samsung S8000? Там такой же контроллер? есть ли его распиновка? Он меня купил ценой 23дол. А может есть что-то похожее но с более доступной информацией по сходной цене?
искал "application note for am2" но ничего не нашел. Можно линк на исходники? Так же хотелось бы взглянуть и на схему включения данных индикаторов.
Абырвалг
Привет!

Кто осваивал дисплеи на S6E63D6, приведите, пожалуйста, инициализацию регистров этого контроллера дисплея. Интересуют больше всего настройки питальников.

Дело в том, что раньше мы применяли дисплеи Ampire AE240320UOFET-00H и они работали хорошо. Правда без подкручивания настроек не обошлось. Сейчас проблема с их приобретением, взяли на пробу CMEL C0283QGLZ-T. Они одинаковые по параметрам, но с дефолтными настройками последний индикатор не работает вовсе. Методом проб и ошибок подобрал настройки так, чтобы дисплей работал более менее. Но светится он значительно тусклее ампировского.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.