Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с графическими ЖКИ на контроллере KS0108 и аналогах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн мар 23, 2026 22:53:52

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 286 ]     ... , , , 10, , , ...  
Автор Сообщение
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вс май 15, 2011 01:20:54 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб фев 07, 2009 19:21:25
Сообщений: 346
Рейтинг сообщения: 0
яж на предыдущей страничке описывал порядок подачи сигналов для инициализации дисплея, попробуйте его.

_________________
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вс май 15, 2011 13:25:33 
Открыл глаза

Зарегистрирован: Вс окт 05, 2008 13:54:36
Сообщений: 42
Рейтинг сообщения: 0
shurikss123 писал(а):
приветик всем!
Вопрос в студию, заказал недавно диспл wg12864A (part no. WG12864A-CFH-T#N) с RGB подсветкой а теперь когда он пришёл, рву волосы в частности не могу найти на него даташит, с схемой на 22 пина везде на 20 пинов, некто не подскажет что за фигня, как его подключать как посветкой управлять?

У меня точно такой же дисплей недавно появился.
С подсветкой там очень здорово сделано - вся обвязка у них уже собрана на плате, потому она управляется чисто логикой.
Управляется так: 19-ю ножку сажаешь на +5 и забываешь. 20, 21 и 22 пины - это R, G и B. Подаёшь на ножку 0 и подсветка зажигается. Например, для жёлтого цвета подаешь на 19 +5; на 20 и 21 - 0; 22 - NC или +5.
Ну или можно наоборот управлять, хозяин - барин)
Пины 1-18 должны быть как в даташите.

Только работать я его пока не заставил((
Кто-нибудь пробовал его согласовывать с 3.3-вольтовой логикой?
Я уже дошёл то такого изврата (см. вложение), но он молчит.
Да, знаю, что есть специальные микросхемы, но у меня вся кухня на белой макетке, а они все smd.
Вроде ещё есть схема с диодом и резитором на каждую ногу, но я так ничего не понял.

Да, кстати, ещё один вопрос: в даташите на сайте Winstar указано, что высокий уровень - это 0, а низкий - это +5, однако в этой статье логические уровни используются стандартные и всё там работает. Кому верить?)


Вложения:
Комментарий к файлу: Попытка согласования 3.3 и 5В
power1.png [10.9 KiB]
Скачиваний: 852
Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Ср июн 22, 2011 22:02:48 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср июн 22, 2011 20:41:57
Сообщений: 84
Откуда: Харьков
Рейтинг сообщения: 0
Уважаемый lexmulya :dont_know: подскажите как мне вывести графику(выделено цветом), как не пробовал рисует 8 полос, по полосе на страницу! WG12864A .


register unsigned char i;

void WriteCom(byte Com, byte CS)
{
SetBit(LCD_COM,CS);
ClrBit(LCD_COM,LCD_RS);
ClrBit(LCD_COM,LCD_RW);
#asm;
nop
nop
nop
#endasm;
LCD_DB=Com;
SetBit(LCD_COM,LCD_E);
#asm;
nop
nop
nop
#endasm;
ClrBit(LCD_COM,LCD_E);
delay_ms(1);
ClrBit(LCD_COM,(LCD_CS1+LCD_CS2));
SetBit(LCD_COM,LCD_E);
delay_ms(1);
}

void WriteData(byte data, byte CS)
{
SetBit(LCD_COM,CS);
SetBit(LCD_COM,LCD_RS);
ClrBit(LCD_COM,LCD_RW);
#asm;
nop
nop
nop
#endasm;
LCD_DB=data;
SetBit(LCD_COM,LCD_E);
#asm;
nop
nop
nop
#endasm;
ClrBit(LCD_COM,LCD_E);
delay_ms(1);
ClrBit(LCD_COM,(LCD_CS1+LCD_CS2));
SetBit(LCD_COM,LCD_E);
delay_ms(1);
}

/*Координаты LCD*/
void WriteXY(byte x,byte y, byte CS)
{
WriteCom(0xb8+y,CS);
WriteCom(0x40+x,CS);
}
void wpixXY(byte x, byte y, byte CS)
{


WriteCom(0xb8 | y,CS);
WriteCom(0x40 | x,CS);

}
/*Иницилизация LCD*/
void init_lcd(void)
{
WriteXY(0,0,(LCD_CS1+LCD_CS2));
WriteCom(0xb8,(LCD_CS1+LCD_CS2));
WriteCom(0x40,(LCD_CS1+LCD_CS2));
WriteCom(0xc0,(LCD_CS1+LCD_CS2));
WriteCom(0x3f,(LCD_CS1+LCD_CS2));
}
/*Очистить LCD*/
void clear(void)
{
unsigned char x,y;
for(x = 0;x < 64;x++)
{
for(y = 0;y < 8;y++)
{
WriteXY(x,y,(LCD_CS1+LCD_CS2));
WriteData(0,(LCD_CS1+LCD_CS2));
}
}
}
/*заполнить LCD*/
void clearz(void)
{
unsigned char x,y;
for(x = 0;x < 64;x++)
{
for(y = 0;y < 8;y++)
{
WriteXY(x,y,(LCD_CS1+LCD_CS2));
WriteData(0xff,(LCD_CS1+LCD_CS2));
}
}
}
/**/
byte gotoxy(byte x, unsigned y)
{
unsigned char CS, textCS;

if(x < 10)
{
CS=LCD_CS1;
textCS=0;
}
else
{
CS=LCD_CS2;
textCS=64;
}
WriteXY(x*6-textCS+4,y,CS); //

return CS;
}
/**/
void putc (byte data, byte inv)
{
unsigned char textL, CS=gotoxy(textx,texty);

if(data < 0x90)
{
textL=0x20;
}
else
{
textL=0x60;
}


WriteData((sym[data-textL][0])^inv,CS);
WriteData((sym[data-textL][1])^inv,CS);
WriteData((sym[data-textL][2])^inv,CS);
WriteData((sym[data-textL][3])^inv,CS);
WriteData((sym[data-textL][4])^inv,CS);
WriteData(0^inv,CS);
if(textx < 19){ textx++; textx = xk;} else {textx=0; if(texty < 8) texty++; texty = yk;
if(texty == 8){texty = 0;} }


}

/*Функция вывода строки из флеш памяти*/
void LCD_PUTSF(byte x, byte y, flash byte str[]){
byte i=0;
xk = textx;
yk = texty;
//Пока не конец строки выводим символы
while(str[i])
{
x++;
textx = x;
texty = y;
putc(str[i],in);
i++;
}
textx = xk;
texty = yk;
}
/*Функция которая ресует на экране 1 пиксел*/
void LCD_PUT_PIXEL(byte x, byte y){
//Обьявляем переменные
byte bite;
byte page;
byte data, data2;
//Выход если точка лежит вне экрана
if((x>127)|(y>63)) return;
//Выбираем кристалл
if(x>=64){
ClrBit(LCD_COM, LCD_CS1);
SetBit(LCD_COM, LCD_CS2);
x=x-64;
page = 0b00010000;
}
else{
ClrBit(LCD_COM, LCD_CS2);
SetBit(LCD_COM, LCD_CS1);
page = 0b00100000;
}
y/8;
x%8;
wpixXY(x, y, page);

WriteData(0b00000001, page);


}
/*Функция вывода прямой по алгоритму Брезенхома.
Подробно ее описывать не буду т.к. по ней лучше почитать в интернете*/
void LCD_LINE(byte x1, byte y1, byte x2, byte y2){
int dx,
.
.
.
и так рисуем линию:

void prog(void)
{
byte korX = 0;
byte korY = 0;
clear();
while(1)
{
if(PINA.7 == 0){
if(korX == 127){korX = 0; korY++;}else{korX++;}
if(korY == 63){korY = 0; }
//delay_ms(100);
//clearz();
LCD_PUT_PIXEL(korX, korY);

//
//LCD_CIRCLE(63, 63, 63);

//
}
}
}
void
.
.
.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Чт июн 30, 2011 05:42:13 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
Binary писал(а):
Только работать я его пока не заставил((
Кто-нибудь пробовал его согласовывать с 3.3-вольтовой логикой?


У STM32 есть пины толерантные к 5В, поэтому никаких проблем с подключением нет.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Пн июл 11, 2011 22:51:22 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Пн окт 25, 2010 20:47:04
Сообщений: 271
Откуда: Казахстан, Астана
Рейтинг сообщения: 0
В общем погонял я его попробовал, и сказал тфу. если честно его не везде можно использовать, медленный(очень), и те кто задумал делать на нем осциллограф, лучше не надо ничего не увидите на макс, его скорости.

_________________
Изображение
Мастер на все руки, кручу, кручу, кручу и матерюсь
Повелитель паяльной станции, лома, и пинцета!!!


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт июл 12, 2011 08:26:53 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
shurikss123 писал(а):
В общем погонял я его попробовал, и сказал тфу. если честно его не везде можно использовать, медленный(очень), и те кто задумал делать на нем осциллограф, лучше не надо ничего не увидите на макс, его скорости.


Вы бы тогда еще конкретные цифры привели. Какую максимальную скорость прорисовки экрана удалось получить? а скорость вывода 1 байта? да не плохо бы еще и свои исходники показать для этих случаев.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт июл 12, 2011 09:28:41 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Пн окт 25, 2010 20:47:04
Сообщений: 271
Откуда: Казахстан, Астана
Рейтинг сообщения: 0
это есть в даташите и этих скоростей добился, еще если взять врямя на чтение, то дольще так что без чтения статуса прорисовка медленная, пробывалось все это на готовых данных которые не надо получать и читать....... , а если взять, на T6963 с чтением статуса, то его скорость явно превышает в несколько раз, несмотря на то что его временные задержки в 1,5 раза ниже.

_________________
Изображение
Мастер на все руки, кручу, кручу, кручу и матерюсь
Повелитель паяльной станции, лома, и пинцета!!!


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт июл 12, 2011 10:11:59 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
А по конкретней? Просто сам периодически работаю с этим дисплеем, перерисовки страничек не замечаю. Флаг занятости проверяю.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт июл 12, 2011 14:12:59 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Пн окт 25, 2010 20:47:04
Сообщений: 271
Откуда: Казахстан, Астана
Рейтинг сообщения: 0
BerZerK-ku писал(а):
А по конкретней? Просто сам периодически работаю с этим дисплеем, перерисовки страничек не замечаю. Флаг занятости проверяю.

делаю так два рисунка на одном одна половина на другом другая и в цикл рисовать по очереди и смотрите на его тормоза

_________________
Изображение
Мастер на все руки, кручу, кручу, кручу и матерюсь
Повелитель паяльной станции, лома, и пинцета!!!


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт июл 12, 2011 20:51:34 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб фев 07, 2009 19:21:25
Сообщений: 346
Рейтинг сообщения: 0
я анимировонную картинку на этот индикатор выводил. скорости его для быстрого вывода явно нехватет, а как статический индикатор, он очень даже хорош

_________________
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт июл 12, 2011 21:22:12 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 4
Зарегистрирован: Пн окт 25, 2010 20:47:04
Сообщений: 271
Откуда: Казахстан, Астана
Рейтинг сообщения: 0
воть воть а люди на нем осцылы делают, а другие удивляются :shock: я тут дrлал недавно под усилитль был сильно удивлен скорости контролера HD44780 весчь :kill:
http://www.youtube.com/watch?v=mEDGD_PjpcA

_________________
Изображение
Мастер на все руки, кручу, кручу, кручу и матерюсь
Повелитель паяльной станции, лома, и пинцета!!!


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Чт июл 14, 2011 11:43:30 
Родился

Зарегистрирован: Чт июл 14, 2011 11:21:51
Сообщений: 4
Рейтинг сообщения: 0
Здравствуйте! Купил дисплей wg12864c, с контроллером NT7608, с ks даташиты полностью совпадают. подключил все, провожу инициализацию по инструкции на 8 странице - дисплей не темнеет. Перепробовал уже все возможные варианты, с разными задержками... при опросе дисплея показывает только статус сброса, при этом корректно, т.е. что на ноге сброса - то от и возвращает. при этом бит on/off всегда в нуле равно как и бизи. Расскажите пожалуйста по порядку для чего каждая строка инициализации? То есть для чего его несколько раз сбрасывать при установке cs и rs, rw??? длительные задержки как то влияют на чтение команд? то есть если я между 1 и 0 на Е делаю задержку аж целых 20 миллисекунд он это скушает??? Какие у вас были проблемы при запуске дисплея и как вы их решали??? контраст подключен и работает. Подсветка не подключена.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Чт июл 14, 2011 13:46:33 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
shurikss123 писал(а):
делаю так два рисунка на одном одна половина на другом другая и в цикл рисовать по очереди и смотрите на его тормоза
Присмотрелся к дисплею по внимательнее, действительно недостатков хватает.
SkyFly писал(а):
Расскажите пожалуйста по порядку для чего каждая строка инициализации?
Я делаю это так:
Код:
uchar Init_lcd(void)
{   
        // инициализация дисплея
       // возвращает 0 в конце
       // вызов раз в 200 мкс

   static uchar delay = 0;
   static uchar step = 0;
   
   if (step > 1)
   {   
      if (CheckFlag())
         return step;
   }
   
   switch(step)
   {
     case 0:
      {
         step = 1;
         StBit(PORT_RST, LCD_RST); // установим RST
         delay = 25;
      }
      break;
     case 1:
      {
         if (delay > 0)  // небольшая пауза после установки сигнала RST
            delay--;
         else
            step = 2;
      }
      break;
     case 2:
      WriteLCD(COM, 0xb8, LCD_CS); // установка 0-ой страницы
      step++;
      break;   
     case 3:
      WriteLCD(COM, 0x40, LCD_CS); // установка 0-ой строчки
      step++;
      break;
     case 4:
      WriteLCD(COM,0xc0,LCD_CS); //  верхняя 0-ая строка
      step++;
      break;
     case 5:
      WriteLCD(COM,0x3f,LCD_CS); // включение дисплея
      step = 0;
      break;   
   }
   
   return step;
}

static bool CheckFlag(void)
{
    // Проверка флага занятости
    // false - занято, true - норм 
   
    uchar data;
   
    CrBit(PORT_RS, LCD_RS);
    DDRA = 0;
    StBit(PORT_CS, LCD_CS);
    StBit(PORT_RW, LCD_RW);
    _NOP();
    _NOP();
    StBit(PORT_E, LCD_E);
    _NOP();
    _NOP();
    data = PINA;
    CrBit(PORT_E, LCD_E);
   _NOP();
    //_delay_us(2);   
    CrBit(PORT_CS, LCD_CS);
    StBit(PORT_E, LCD_E);
    DDRA=0xff;
   
    return (data & 0x80);
}



Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Чт июл 14, 2011 16:39:04 
Родился

Зарегистрирован: Чт июл 14, 2011 11:21:51
Сообщений: 4
Рейтинг сообщения: 0
А можно просто последовательность действий? ))


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Чт июл 14, 2011 17:04:42 
Родился

Зарегистрирован: Чт июл 14, 2011 11:21:51
Сообщений: 4
Рейтинг сообщения: 0
Хм, заметил что он в ответ всегда возвращает то, что я ему только что отправил...
Может ли быть проблема в подключении?? Могут ли там быть какие то паразитные емкости которые мешают спаду 1 в 0???? Я подключал напрямую выводы контроллера к дисплею. Может надо через резистор или посадить все ноги через резистор на землю что бы разряжались?


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Пт июл 15, 2011 00:35:51 
Родился

Зарегистрирован: Чт июл 14, 2011 11:21:51
Сообщений: 4
Рейтинг сообщения: 0
Ссссори, заработало. ) Всему виной некачественное изготовление платы, подкорачивали дорожки к D1 D2. ))


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Вт сен 06, 2011 17:11:11 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср июн 22, 2011 20:41:57
Сообщений: 84
Откуда: Харьков
Рейтинг сообщения: 0
Спасибки что подсказали :wink: немного потужился немного разобрался.. но все таки графику не рисует

/*Функция которая ресует на экране 1 пиксел*/
void LCD_PUT_PIXEL(byte x, byte y){
//Обьявляем переменные
byte bite, page, data = INV, data2;

if((x>127)|(y>63)) return;// Выход если точка лежит вне экрана

if(x>=64){ x = x - 64; data2 = 0b00010000;} else{data2 = 0b00100000;} //Выбираем кристалл


page = y/8; //page-номер страницы
bite = y%8; //bite-Номер байта который нам предстоит вывести

WriteXY(x, page, data2); // координаты вывода информации на LCD.

//Читаем байт с LCD(2 цикла т.к. в первом мусор)
//data = ReadData(); //????????
//data = ReadData();

data = data |(1<<bite);
WriteXY(x, page, data2);
WriteData(data, data2);


}


как я понял проблема с //data = ReadData();
функция не работает если раз комментировать рисует два квадратика и полоску и нефига больше.
в таком виде теряется часть пикселов (затераються)..


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Пт сен 09, 2011 16:17:45 
Родился

Зарегистрирован: Пт фев 04, 2011 11:42:18
Сообщений: 18
Рейтинг сообщения: 0
На сайте MCS Electronics есть интересный для меня проект AN #148 - LCD display with touchscreen and AVR. Подскажите пожалуста кто знает тип дисплея с функцией тачскрин-а на базе контроллера KS0108.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Пн сен 19, 2011 10:53:59 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
WG12864A-TGH-T#N010 со встроенной температурной компенсацией и сенсорной панелью.


Вернуться наверх
 
 Заголовок сообщения: Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог
СообщениеДобавлено: Сб окт 01, 2011 17:48:24 
Открыл глаза

Зарегистрирован: Чт сен 29, 2011 13:54:53
Сообщений: 74
Рейтинг сообщения: 0
Помогите. Не могу включить. пин 5 (мон. выключен) в статусе не гаснет.

даю VH на RST,CH1
команду 3F и ничего....


movlf b'01000000',WGDL
bcf WG_RS
bcf WG_RW
nop
nop
bsf WG_E
pause 0x10
bcf WG_E

_________________
Поговорим в скайпе fl.ua.aaa.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 286 ]     ... , , , 10, , , ...  

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y