Дисплей от Siemens S65

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Сообщение ELcat »

Ну почему же? Памяти таки действительно две - одна на самом стекле (на TFT сруктурах), а вторая в контроллере. Допустим засылаем картинку, она отображается, засылаем команду 0x0040 -чёрный экран, затем команду 0x0000 и мгновенно появляется засланная ранее картинка. Как это объяснить, как не фоновой страницей памяти?
Реклама
Встал на лапы
Сообщения: 94
Зарегистрирован: Ср авг 01, 2007 13:32:33

Сообщение Fighter »

если б страниц было 2 - можно было бы оставив одну картинку на экране, рисовать вторую в память...
а тут либо белый либо черный экран и все.
Просто счетчик адреса защелкивает белый или черный цвет и обновляет TFT пока не включат отображение из памяти... а память там одна.. (эти дисплеи делались для мобильников - никто туда и бита лишнего не засунет, чтобы не удорожать конечный девайс).
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

объяснить элементарно: получив команду "черный экран" контроллер перестает выводить данные из своего ОЗУ, а вместо этого выводит то, что соответствует черным пикселам, т.е. какое-то константное значение. повторяю - в даташите нет упоминания о нескольких страницах памяти!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва

Сообщение Fasterpast »

Экранчик на самом деле рассчитан на работу с внешним контроллером (как и есть в мобиле), который уже реализует несколько слоёв памяти, синхронизацию кадров для видео и пр. Интересно, а есть ли такой контроллер не в QFN корпусе....
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Пт авг 01, 2008 08:43:08

Сообщение Antibiotic »

На ПЛИС + небольшая микрушка памяти можно реализовать я думаю. Тем более что SPI это просто сдвиговый регистр.. на ПЛИС сляпать проблем нет. Как-то однажды пробовал сделать контроллер SPI -> VGA на вот этом железе http://www.starterkit.ru/html/index.php ... view&id=14 Но 512к памяти очень мало для моей задумки было.. А для дисплея от сименса я думаю вполне хватит и даже на 2 страницы наверно.
Поправьте если ошибаюсь
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Сообщение ELcat »

А можно етот самый даташит, дайте ссылочку, пожалуйста. На ПЛИСке конечно можно, область экрана занимает около 47 кБ, если памяти выделить побольше, то можно даже заставить ПЛИСку аппаратно решать 2D задачи, векторную графику рисовать, можно даже Open GL если вы законченный маньяк :) . Но ПЛИСка в которой будет хотяб уже 64 кБ по цене весить будет + паябельность корпуса под вопросом.
Реклама
Родился
Сообщения: 13
Зарегистрирован: Чт июн 11, 2009 19:53:21
Откуда: г. тверь

Сообщение sersne »

Где можно купить s65 именно ls020.
самый обычный человек
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ELcat писал(а):можно даже Open GL если вы законченный маньяк
сочетание AVR и OpenGL должно сопровождаться словами конченый маньяк :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Пт авг 01, 2008 08:43:08

Сообщение Antibiotic »

Паябельность на грани конечно но припаять можно. А можно купить вышеозначеный кит(что я и сделал) и на нем построить. Ведь скорее всего все это для самообразования и приобретения навыков. Так что кит сослужит свою службу не только в этом проекте. Ну а ели покупать кит не хочется, то можно попробовать сделать ЛУТ для ПЛИСки.. не такая уж она и дорогая на самом деле. Ещё один плюс в том что питание у неё 3.3 ваольта а значит ненужно согласовывать уровни с дисплеем
Родился
Сообщения: 13
Зарегистрирован: Чт июн 11, 2009 19:53:21
Откуда: г. тверь

Сообщение sersne »

пробывал купить на сайте www.sv72.ru но от них пока нет ответа
самый обычный человек
Мучитель микросхем
Аватара пользователя
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва

Сообщение Fasterpast »

sersne писал(а):Где можно купить s65 именно ls020.
На разборках телефонов. Хотя именно ls020 стали попадаться всё реже..
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса

Сообщение demonchik »

всем котам МЯУ !
не подскажете как на текст наложить какую то область с каким либо цветом. все это нужно для выделения пункта текстового меню. только вариант закрашивать область а потом выводить текст не предлагайте, пожалуйста.
радиоэлектроника - жизнь моя...
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва

Сообщение Fasterpast »

У меня в функции вывода текста можно выбирать цвет фона, при выборе пункта я просто меняю цвет фона и вывожу тот же текст...
Можно конечно написать ф-ию, которая будет "закрашивать" фон вокруг текста,н о это будет по сути то же самое.
Других нормальных вариантов нет, ибо память дисплея нечитаема, а памяти МК на то чтобы держать картинку - не хватит...
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Пт авг 01, 2008 08:43:08

Сообщение Antibiotic »

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

void LCD_PutChar(int x, int y, char c, int rot, long m_wColor, long m_wBackColor)
{
char h,ch,p,mask;

  
  send_cmd(0xEF90);

  if(rot)
  {
    send_cmd(0x0500);
    send_cmd(0x0800+x);
    send_cmd(0x0A00+y);
    send_cmd(0x0900+x+CHAR_W-1);
    send_cmd(0x0B00+y+CHAR_H-1);
  }
  else
  {
    send_cmd(0x0504);
    send_cmd(0x0800+y);
    send_cmd(0x0A00+x);
    send_cmd(0x0900+y+CHAR_H-1);
    send_cmd(0x0B00+x+CHAR_W-1);
  }
  
  for(h=0; h<CHAR_H; h++) // every column of the character
  {
    if(rot)
      ch=ascii_tab[c-32][h];  
    else
      ch=ascii_tab[c-32][CHAR_H-h-1];
      mask=0x80;
      for(p=0; p<CHAR_W; p++)  // write the pixels
      {
        if(ch & mask)
        {
          send_data(m_wColor);                
        }
        else
        {
          send_data(m_wBackColor);
        }
        mask=mask/2;
      }
  }
Встал на лапы
Аватара пользователя
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса

Сообщение demonchik »

ух.... хлопцы! спасиб! выручили :))
радиоэлектроника - жизнь моя...
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 219
Зарегистрирован: Вт сен 18, 2007 16:41:16
Откуда: Украина, г. Запорожье

Сообщение alex2103 »

Или лыжи не едут, или совсем не могу понять куда цепляется вывод RESET LS020. На схемах у всех он заведен в МК, но в прошивках никто им не дергает...
Подскажите как надо?
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса

Сообщение demonchik »

я вот так их подключаю

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

// MK  - LCD            DDRB   |     PORTB
// PB0 - RS             1      |      1
// PB1 - //             0      |      0
// PB2 - CS             1      |      1
// PB3 - DAT (MOSI)     1      |      0
// PB4 - Reset          1      |      1
// PB5 - CLK            1      |      0
// PB6 - //             0      |      0
// PB7 - //             0      |      0
//                             |
// HEX                  3D     |      15
//
а дергается этот вывод RESET при инициализации дисплея. я прикрепил файл. смотрите. если надо, выкину весь проект мой :))
Вложения
s65_lib.h
(4.27 КБ) 626 скачиваний
радиоэлектроника - жизнь моя...
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса

Сообщение demonchik »

дергается именно здесь

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

void lcd_init(void)
{
int i;
               //RS=1 Command
               //RS=0 DATA 
  RESET=0;       
  CS=0;
  
  delay_ms(5);
  
  RS=1;
  RESET=1;
  
  delay_ms(50);
  for (i=0;i<12;i++) lcd_c(INIT1[i])
  ;
  delay_ms(7);
  for (i=0;i<20;i++) lcd_c(INIT2[i]);
  
  delay_ms(50);
  for (i=0;i<1;i++) lcd_c(INIT3[i]);
  
  delay_ms(5);
  
  fill_screen(bgcolor); // очищаем экран от мусора
  
  CS=1;
  
} 
радиоэлектроника - жизнь моя...
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 219
Зарегистрирован: Вт сен 18, 2007 16:41:16
Откуда: Украина, г. Запорожье

Сообщение alex2103 »

Спасибо большое. Посмотрел еще несколько проектов...вроде стало прояснятся :) За ваш исходник спасибо :beer:

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

если надо, выкину весь проект мой
а что за проект? Интересно было бы посмотреть!
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса

Сообщение demonchik »

я там пытаюсь сделать текстовое меню. оно там в исходнике есть(точннее только функция выделения пункта и то тестовое). но так чтоб посмотреть и разобраться - годится.
Вложения
S65.rar
(116.78 КБ) 440 скачиваний
радиоэлектроника - жизнь моя...
Контактная информация:
Ответить

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