Страница 40 из 44

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Сб апр 13, 2013 14:41:21
Stalkerk750
Спасибо большое! Попробую рассчитать функцию.)

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Сб май 04, 2013 23:46:23
IvanVoyan
Доброго времени суток! Подскажите пожалуйста по поводу экрана с телефона Siemens C75 LPH9157-2 с зеленым текстолитом
Пытаюсь его включить и вывести пиксель, как в одном из примеров кода в данной теме, но реакции никакой
Отмечу, что не подключаю выводы подсветки экрана, т.к. по опыту работы с другими ЖКИ знаю, что даже без подсветки должно быть видно изображение
Вот мой код, написан на C, в pnotepad[WinAVR]:
Спойлер

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

#include <avr/io.h>
#include <util/delay.h>

#define uint unsigned int
#define uchar unsigned char

#define RST  PB1
#define RS   PB0
#define CS   PB2
#define CLK  PB3
#define DATA PB5

#define cmd 0
#define dat 1




void sendToLcd(uint SendType, uchar sendData)
{
  int i;

  if (SendType==cmd)
   {PORTB &=~(1<<RS);}
    else
   {PORTB |=(1<<RS);}
  _delay_ms(20);
  for (i = 7; i >= 0; i--)
    {
	
	  if ((sendData >> i) & 1)
	   {PORTB |=(1<<DATA);}    
      else
       {PORTB &=~(1<<DATA);}
	   _delay_ms(20);
      PORTB |=(1<<CLK);
	  _delay_ms(20);
      PORTB &=~(1<<CLK);
    }
  _delay_ms(5);
}

void lcdInit(void) {
 PORTB &=~(1<<RST);
 _delay_ms(2500);
 PORTB |=(1<<RST);
 sendToLcd(cmd, 0x01);
 sendToLcd(cmd, 0x36); //Memory Access Control
 sendToLcd(dat, 0x80); 
 sendToLcd(cmd, 0x11); //Sleep out
 sendToLcd(cmd, 0x3a); //Interfase pixel format--
 sendToLcd(dat, 0x02); //8bit/pixel
 sendToLcd(cmd, 0x29); //Display ON 
}

void putPixel(uchar x, uchar y, uchar color) {
  sendToLcd(cmd, 0x2a);
  sendToLcd(dat, y);
  sendToLcd(dat, 132);
  sendToLcd(cmd, 0x2b);
  sendToLcd(dat, x);
  sendToLcd(dat, 176);
  sendToLcd(cmd, 0x2c);
  PORTB |=(1<<RS);
  sendToLcd(dat, color);

}

void main( void )
{PORTB |= 0xFF;
 _delay_ms(10);
 lcdInit();
 _delay_ms(10);
 putPixel(100,100,128);

}

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Вс май 05, 2013 22:38:50
lawr
Чтобы дисплей с благодарностью воспринимал и отображал информацию, линия CS (chip select) перед посылкой sendToLcd должна сбрасываться, а по ее окончании - устанавливаться.
Где-то в этой теме есть поправка к приведенному примеру.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Пт май 10, 2013 02:09:39
IvanVoyan
И снова ничего не вышло :(
Подключаю дисплей с телефона Siemens C75 LPH9157-2 (зеленый текстолит) к ATmega8, мегу питаю от 5в, экран от 3.3в, подсветку экрана не включаю, так как сломан блок 12В.
Дисплей абсолютно никак не реагирует на все мои старания. Подключил к телефону - работает на ура. На макетке на выводы кинул светодиоды - замигали на ура, насколько зрением улавливаю, логика работы правильная.
Частота мк 1Мгц
Ниже приведу полный код программы на C:

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

#include <avr/io.h>
#include <util/delay.h>

#define uint unsigned int
#define uchar unsigned char

#define RST  PB1
#define RS   PB0
#define CS   PB2
#define CLK  PB3
#define DATA PB5

#define cmd 0
#define dat 1




void sendToLcd(uint SendType, uchar sendData)
{
  int i;
  PORTB &=~(1<<CS);
  if (SendType==cmd)
   {PORTB &=~(1<<RS);}
    else
   {PORTB |=(1<<RS);}
  for (i = 0; i <= 7; i++)
    {
	
	  if ((sendData >> i) & 1)
	   {PORTB |=(1<<DATA);}    
      else
       {PORTB &=~(1<<DATA);}
	   _delay_ms(20);
      PORTB |=(1<<CLK);
	  _delay_ms(20);
      PORTB &=~(1<<CLK);
    }
  PORTB |=(1<<CS);
}

void send16ToLcd(uint sendData)
{
  int i;
  PORTB &=~(1<<CS);
  PORTB |=(1<<RS);
  for (i = 0; i <= 15; i++)
    {
	
	  if ((sendData >> i) & 1)
	   {PORTB |=(1<<DATA);}    
      else
       {PORTB &=~(1<<DATA);}
	   _delay_ms(20);
      PORTB |=(1<<CLK);
	  _delay_ms(20);
      PORTB &=~(1<<CLK);
    }
  PORTB |=(1<<CS);
}

void lcdInit(void) {
 PORTB |= 0x00;
 PORTB &=~(1<<RST);
 _delay_ms(2500);
 PORTB |=(1<<RST);
 sendToLcd(cmd, 0x01);
 sendToLcd(cmd, 0x36); //Memory Access Control
 sendToLcd(dat, 0x80); 
 sendToLcd(cmd, 0x11); //Sleep out
 sendToLcd(cmd, 0x3a); //Interfase pixel format--
 sendToLcd(dat, 0x55); //16bit/pixel
 sendToLcd(cmd, 0x29); //Display ON 
}

void putPixel(uchar x, uchar y, uint color) {
  sendToLcd(cmd, 0x2a);
  sendToLcd(dat, y);
  sendToLcd(dat, 132);
  sendToLcd(cmd, 0x2b);
  sendToLcd(dat, x);
  sendToLcd(dat, 176);
  sendToLcd(cmd, 0x2c);
  PORTB |=(1<<RS);
  send16ToLcd(color);

}

void main( void )
{DDRB |= 0xFF;
 _delay_ms(10);
 lcdInit();
 _delay_ms(10);
 putPixel(100,100,128);

}
***Пробовал отсылать сигнал по линии данных начиная и со старшего и с младшего(как обычно, откуда вытекает вопрос, а как же все-таки нужно?) бита, реакции никакой. Просьба опытных котов подсказать.
******Все выводы экрана подключаю напрямую к мк, безо всяких диодов, резисторов и кондеров.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Пт май 10, 2013 14:19:15
Foks
IvanVoyan писал(а):******Все выводы экрана подключаю напрямую к мк, безо всяких диодов, резисторов и кондеров.
Ээ? И при этом МК от 5 В питается? Хорошо, если дисплей еще живой.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Пт июн 14, 2013 17:26:36
MyxoMop
Озадачился подключением дисплейчика от С75. Я так понял там режим передачи данных задан уже хардварно на самом дисплее? И какой режим там используеца 3-Pin SPI Interface или 4-Pin Serial Interface?
Также немного по распиновке непонятно
1 - RS
2 - reset
3 - CS
4 - V_Sync
5 - Clk
6 - Dat
7 - 2.9V
8 - GND
9 - +Vboos
10 - -Vboos

Не пойму, что за ноги RS и V_Sync?
+Vboos и -Vboos это подсветка 12V?

Изображение

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Сб июн 15, 2013 08:41:40
srg320
MyxoMop
V_Sync - выход синхроимпульсов, врядли когда нибудь пригодиться
RS - выбор команда/данные, и благодаря наличию этого вывода становиться намного проще использовать аппаратный SPI 8-битный

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Пн июн 17, 2013 11:06:47
MyxoMop
srg320
Да, спасибо. Я уже тоже сам нашёл. Судя по наличию вывода RS используется 4-Pin Serial Interface.

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

Pin description
---------------------------------------------------------
#	Name	Function
---------------------------------------------------------
1	RS	Low=CMD, High=DATA
2	~RST	Reset input, active low
3	~CS	Chip select, active low
4	SYNC	External frame synchorization input, unused by default
5	CLK	SPI Clock-in signal (High-to-Low)
6	DATA	SPI Data-in signal (MSB first)
7	VCC	Power supply, normally 2.9V (I tested with 3.3V)
8	GND	Ground
9	LED+	Backlight voltage, approx. 12V (depends on required current)
10	LED-	Backlight common pin

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Вт июн 18, 2013 19:46:28
Chettuser
Вопрос к тем кто юзал от Nokia 1100/2300. Сколько светодиодов обеспечивают подсветку дисплея?
Если имеется в виду те 2 что на шлейфе, то что то яркость маловата :oops: Может хитрости какие есть? Брал модулем с металлической "мордой" и пластиковой рамкой куда вставляется дисплей.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Сб июн 22, 2013 20:30:04
Chettuser
Подскажите - чем могут в принципе отличаться оригинальные и китайские дисплеи? Командами? И если да - то какими как правило?
Как вы находите такие отличия?

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Пн июл 29, 2013 23:30:07
neibery
А к Arduino кто-нибудь цеплял LPH9157-2 ?

Решил попробовать, пока безуспешно.
Может кто подскажет в чем ошибся ?


Подключал к Arduino Nano вот так:
Изображение

Код вот:

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

#define PIN_RS   7
#define PIN_RESET 8
#define PIN_CS    9
#define PIN_CLK  13
#define PIN_DAT  11

#define LCD_C     LOW
#define LCD_D     HIGH

void LcdWrite(boolean dc, byte data)
{
  if(dc == HIGH) digitalWrite(PIN_RS, dc);
  else
  {
    digitalWrite(PIN_CS, HIGH);
    digitalWrite(PIN_RS, dc);
    digitalWrite(PIN_CS, LOW); 
  }
  digitalWrite(PIN_CLK, LOW);
  shiftOut(PIN_DAT, PIN_CLK, MSBFIRST, data);
}

void LcdInitialise(void)
{
  pinMode(PIN_RS, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);
  pinMode(PIN_CS, OUTPUT);
  pinMode(PIN_CLK, OUTPUT);
  pinMode(PIN_DAT, OUTPUT);
  digitalWrite(PIN_RS, LOW);
  digitalWrite(PIN_CS, HIGH);
  digitalWrite(PIN_RESET, LOW);
  delay(500);
  digitalWrite(PIN_RESET, HIGH);
  delay(500);      
  LcdWrite(LCD_C, 0x01 );  
  delay(20); 
  LcdWrite(LCD_C, 0x36 );  
  LcdWrite(LCD_D, 0x80 );  
  LcdWrite(LCD_C, 0x11 );
  delay(20);  
  LcdWrite(LCD_C, 0x3a ); 
  LcdWrite(LCD_D, 0x55 );
  delay(20); 
  LcdWrite(LCD_C, 0x29 );
}

void setup() 
{                
  LcdInitialise();
}

void loop() 
{
}

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Чт окт 17, 2013 20:48:24
Panda_Y2K
Кто в курсе, подскажите. Дисплей от nokia2100 96х65
инициализация проходит как для pcf8812 и как для pcd8854
вывожу подряд символы из таблицы
Спойлер

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

flash const byte FontLookup [][5] =
{
    { 0x00, 0x00, 0x00, 0x00, 0x00 },   /* space */
    { 0x00, 0x00, 0x2f, 0x00, 0x00 },   /* ! */
    { 0x00, 0x07, 0x00, 0x07, 0x00 },   /* " */
    { 0x14, 0x7f, 0x14, 0x7f, 0x14 },   /* # */
    { 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   /* $ */
    { 0xc4, 0xc8, 0x10, 0x26, 0x46 },   /* % */
    { 0x36, 0x49, 0x55, 0x22, 0x50 },   /* & */
    { 0x00, 0x05, 0x03, 0x00, 0x00 },   /* ' */
    { 0x00, 0x1c, 0x22, 0x41, 0x00 },   /* ( */
    { 0x00, 0x41, 0x22, 0x1c, 0x00 },   /* ) */
    { 0x14, 0x08, 0x3E, 0x08, 0x14 },   /* * */
    { 0x08, 0x08, 0x3E, 0x08, 0x08 },   /* + */
    { 0x00, 0x00, 0x50, 0x30, 0x00 },   /* , */
    { 0x10, 0x10, 0x10, 0x10, 0x10 },   /* - */
    { 0x00, 0x60, 0x60, 0x00, 0x00 },   /* . */
    { 0x20, 0x10, 0x08, 0x04, 0x02 },   /* / */
    { 0x3E, 0x51, 0x49, 0x45, 0x3E },   /* 0 */
    { 0x00, 0x42, 0x7F, 0x40, 0x00 },   /* 1 */
    { 0x42, 0x61, 0x51, 0x49, 0x46 },   /* 2 */
    { 0x21, 0x41, 0x45, 0x4B, 0x31 },   /* 3 */
    { 0x18, 0x14, 0x12, 0x7F, 0x10 },   /* 4 */
    { 0x27, 0x45, 0x45, 0x45, 0x39 },   /* 5 */
    { 0x3C, 0x4A, 0x49, 0x49, 0x30 },   /* 6 */
    { 0x01, 0x71, 0x09, 0x05, 0x03 },   /* 7 */
    { 0x36, 0x49, 0x49, 0x49, 0x36 },   /* 8 */
    { 0x06, 0x49, 0x49, 0x29, 0x1E },   /* 9 */
    { 0x00, 0x36, 0x36, 0x00, 0x00 },   /* : */
    { 0x00, 0x56, 0x36, 0x00, 0x00 },   /* ; */
    { 0x08, 0x14, 0x22, 0x41, 0x00 },   /* < */
    { 0x14, 0x14, 0x14, 0x14, 0x14 },   /* = */
    { 0x00, 0x41, 0x22, 0x14, 0x08 },   /* > */
    { 0x02, 0x01, 0x51, 0x09, 0x06 },   /* ? */
    { 0x32, 0x49, 0x59, 0x51, 0x3E },   /* @ */
    { 0x7E, 0x11, 0x11, 0x11, 0x7E },   /* A */
    { 0x7F, 0x49, 0x49, 0x49, 0x36 },   /* B */
    { 0x3E, 0x41, 0x41, 0x41, 0x22 },   /* C */
    { 0x7F, 0x41, 0x41, 0x22, 0x1C },   /* D */
    { 0x7F, 0x49, 0x49, 0x49, 0x41 },   /* E */
    { 0x7F, 0x09, 0x09, 0x09, 0x01 },   /* F */
    { 0x3E, 0x41, 0x49, 0x49, 0x7A },   /* G */
    { 0x7F, 0x08, 0x08, 0x08, 0x7F },   /* H */
    { 0x00, 0x41, 0x7F, 0x41, 0x00 },   /* I */
    { 0x20, 0x40, 0x41, 0x3F, 0x01 },   /* J */
    { 0x7F, 0x08, 0x14, 0x22, 0x41 },   /* K */
    { 0x7F, 0x40, 0x40, 0x40, 0x40 },   /* L */
    { 0x7F, 0x02, 0x0C, 0x02, 0x7F },   /* M */
    { 0x7F, 0x04, 0x08, 0x10, 0x7F },   /* N */
    { 0x3E, 0x41, 0x41, 0x41, 0x3E },   /* O */
    { 0x7F, 0x09, 0x09, 0x09, 0x06 },   /* P */
    { 0x3E, 0x41, 0x51, 0x21, 0x5E },   /* Q */
    { 0x7F, 0x09, 0x19, 0x29, 0x46 },   /* R */
    { 0x46, 0x49, 0x49, 0x49, 0x31 },   /* S */
    { 0x01, 0x01, 0x7F, 0x01, 0x01 },   /* T */
    { 0x3F, 0x40, 0x40, 0x40, 0x3F },   /* U */
    { 0x1F, 0x20, 0x40, 0x20, 0x1F },   /* V */
    { 0x3F, 0x40, 0x38, 0x40, 0x3F },   /* W */
    { 0x63, 0x14, 0x08, 0x14, 0x63 },   /* X */
    { 0x07, 0x08, 0x70, 0x08, 0x07 },   /* Y */
    { 0x61, 0x51, 0x49, 0x45, 0x43 },   /* Z */
    { 0x00, 0x7F, 0x41, 0x41, 0x00 },   /* [ */
    { 0x55, 0x2A, 0x55, 0x2A, 0x55 },   /* "Yen" */
    { 0x00, 0x41, 0x41, 0x7F, 0x00 },   /* ] */
    { 0x04, 0x02, 0x01, 0x02, 0x04 },   /* ^ */
    { 0x40, 0x40, 0x40, 0x40, 0x40 },   /* _ */
    { 0x00, 0x01, 0x02, 0x04, 0x00 },   /* ' */
    { 0x20, 0x54, 0x54, 0x54, 0x78 },   /* a */
    { 0x7F, 0x48, 0x44, 0x44, 0x38 },   /* b */
    { 0x38, 0x44, 0x44, 0x44, 0x20 },   /* c */
    { 0x38, 0x44, 0x44, 0x48, 0x7F },   /* d */
    { 0x38, 0x54, 0x54, 0x54, 0x18 },   /* e */
    { 0x08, 0x7E, 0x09, 0x01, 0x02 },   /* f */
    { 0x0C, 0x52, 0x52, 0x52, 0x3E },   /* g */
    { 0x7F, 0x08, 0x04, 0x04, 0x78 },   /* h */
    { 0x00, 0x44, 0x7D, 0x40, 0x00 },   /* i */
    { 0x20, 0x40, 0x44, 0x3D, 0x00 },   /* j */
    { 0x7F, 0x10, 0x28, 0x44, 0x00 },   /* k */
    { 0x00, 0x41, 0x7F, 0x40, 0x00 },   /* l */
    { 0x7C, 0x04, 0x18, 0x04, 0x78 },   /* m */
    { 0x7C, 0x08, 0x04, 0x04, 0x78 },   /* n */
    { 0x38, 0x44, 0x44, 0x44, 0x38 },   /* o */
    { 0x7C, 0x14, 0x14, 0x14, 0x08 },   /* p */
    { 0x08, 0x14, 0x14, 0x18, 0x7C },   /* q */
    { 0x7C, 0x08, 0x04, 0x04, 0x08 },   /* r */
    { 0x48, 0x54, 0x54, 0x54, 0x20 },   /* s */
    { 0x04, 0x3F, 0x44, 0x40, 0x20 },   /* t */
    { 0x3C, 0x40, 0x40, 0x20, 0x7C },   /* u */
    { 0x1C, 0x20, 0x40, 0x20, 0x1C },   /* v */
    { 0x3C, 0x40, 0x30, 0x40, 0x3C },   /* w */
    { 0x44, 0x28, 0x10, 0x28, 0x44 },   /* x */
    { 0x0C, 0x50, 0x50, 0x50, 0x3C },   /* y */
    { 0x44, 0x64, 0x54, 0x4C, 0x44 }    /* z */
};

Спойлер

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

for (i=0; i<80; i++)
 {
    for (j = 0; j<5; j++)
        LcdSend(FontLookup[i][j], LCD_DATA);

    LcdSend(0x00, LCD_DATA);
    };
Выодит вот так
СпойлерИзображение
Выводит снизу (экран перевернутый, пришлось перевернуть символы), но переворачивает не все и в отдельной области выводит не правильно. Че это?????

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Пт окт 18, 2013 12:57:13
drakon
Panda_Y2K, попробуйте установить курсор в (0;0), затем медленно отправить 780 байт 0xFF, узнаете алгоритм зарисовки, можно будет копать дальше.
p.s
Спойлервы же тут http://vrtp.ru/index.php?showtopic=1120 ... E9&st=1410 писали что все ок.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Ср ноя 20, 2013 21:49:42
nibiluk
Есть ли у кого библиотека lph8731-3c, для подключения к Arduino ? Если было, то ткните носом плиз, или куда копать ?
P.S. Arduino только начал осваивать.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Ср ноя 20, 2013 22:34:36
BigallS
nibiluk писал(а):Есть ли у кого библиотека lph8731-3c, для подключения к Arduino ....
А поискать по форуму не пробовали почему именно библиотеку к "магическому Arduino" на ней какой МК стоит - AVR первая же страница поиска по LPH8731 http://radiokot.ru/forum/search.php?key ... 1%81%D0%BA показывает нам сообщение
"Bonio" на исходник.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Ср ноя 20, 2013 22:37:37
drakon
nibiluk, а что мешает переделать обычную библиотеку под ардуино?
поменяйте макросы в начале и настройте нужные пины на выход.

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Ср ноя 20, 2013 23:34:30
nibiluk
Спасибо. Знать бы только как это сделать. Попробую вникать.

индикаторы от сотовых телефонов.

Добавлено: Вт янв 21, 2014 18:25:25
nikol77
http://translate.yandex.ru/translate?sr ... n-ru&ui=ru
lcda511.jpg
(53.42 КБ) 1223 скачивания
bf4_lcd.jpg
(10.76 КБ) 976 скачиваний
подскажите можно ли приспособить индикаторы от сотовых телефонов в качестве дисплея в дозиметрах.Дозиметры на PIC 12F629 и PIC 16F84 .Дисплеи BF 4 от Алкатель и LPH 7396 от Нокиа .

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Ср янв 22, 2014 00:57:24
nibiluk
У 629-го ног не хватит и на дозиметр и на ЖКИ, а вобще приспособить то можно, но вот кто код для этого писать будет ?

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Добавлено: Ср фев 12, 2014 11:03:11
P@shok
Всем доброго времени суток , я новечек и прошу сильно не пинать за глупые вопросы.
У меня есть дисплейчик и вот не могу на него найти распиновку и датащит.
Помогите чем сможете . в инете такой контроллер искал и не нашол.
надпись со шлейфа (FPC2125A-V0)
Может к то знает про этого китайца.
Пишу на СИ , хочу прицепить его к меге 16 или 32 .