|
|
  |
AVR и Siemens M55 |
|
|
|
May 29 2010, 14:27
|
Группа: Новичок
Сообщений: 4
Регистрация: 28-05-10
Из: Ярославская область
Пользователь №: 57 601

|
Доброго времени суток. Есть пара вопросов по дисплею LPH88 : я так понимаю в этом дисплее нет режима 8 битного цвета? и по поводу инициализации, на одном из сайтов встретил вот такую инициализацию: lcd_comtype(0x02); lcd_comdat(0x04, 0x00); lcd_comtype(0x0C); lcd_comdat(0x00, 0x01); delay_ms(40); lcd_comtype(0x03); lcd_comdat(0x00, 0x0C); lcd_comtype(0x0E); lcd_comdat(0x2D, 0x1F); delay_ms(40); lcd_comtype(0x0D); lcd_comdat(0x06, 0x16); delay_ms(40); lcd_comtype(0x01); lcd_comdat(0x02, 0x15); lcd_comtype(0x05); lcd_comdat(0x00, 0x30); lcd_comtype(0x07); lcd_comdat(0x00, 0x37); CSpuls();
хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца?
|
|
|
|
|
May 31 2010, 07:34
|

Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 28-07-07
Из: Кишинев
Пользователь №: 29 434

|
Цитата(leon013 @ May 29 2010, 17:27)  Есть пара вопросов по дисплею LPH88 .... на одном из сайтов встретил вот такую инициализацию: ...... хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца? Здесь много раз обсуждали LPH88. Воспользуйтесь поиском. Рекомендую искать через google.com (т.е. заходите на google и набираете: site:http://electronix.ru lph88)
|
|
|
|
|
Jun 8 2010, 13:46
|
Группа: Участник
Сообщений: 7
Регистрация: 14-02-06
Пользователь №: 14 333

|
Добрый день, видел в ветке, что кто-то разобрался с инициализацией на контроллере L2F50 и перевел в асм, если не сложно выложите алгоритм, в теме этого нет.
|
|
|
|
|
Jun 10 2010, 07:58
|
Группа: Участник
Сообщений: 7
Регистрация: 14-02-06
Пользователь №: 14 333

|
С инициализацией понятно, работают также команды выключения и включения дисплея (но как-то странно, работают, если их передать как данные 1 байт). Кто подскажет вывод пикселя для L2F50. На какой-то странице есть кусок из примера от кранца, так он не рабочий!!! У кого L2F50, выбросили его чтоли? Описания вообще никакого, но кто-то ведь выводил изображение, поделитесь, пож-та.
Сообщение отредактировал Alet - Jun 10 2010, 08:24
|
|
|
|
|
Jun 10 2010, 10:37
|
Группа: Участник
Сообщений: 7
Регистрация: 14-02-06
Пользователь №: 14 333

|
Все, извиняюсь, все заработало, будем копать дальше))
|
|
|
|
|
Jun 13 2010, 19:07
|
Группа: Участник
Сообщений: 7
Регистрация: 14-02-06
Пользователь №: 14 333

|
Инициализация взята у кранца, только переписал под асм. Сначала использовал встроенный SPI, но на нем же висел программатор, когда отлаживал, подумал, что может влияет программатор и переделал на софт. SPI, если есть желание разбираться с моим кодом, велком, а так если есть вопросы, всегда пож-та ))) Кстати, для L2F50 есть команды включения и выключения дисплея, после инициализации делаю так, выключаю, записываю в память картинку, включаю, все сразу показывает, т.е. не показывает момент прорисовки, а так скорость хотелось бы побыстрее, но пока и такого хватает, делать что-то кроме меню для AVR пока нет надобности. Код display_init: cbi PORTA,D_RESET; Вывод RESET в 0 sbi PORTA,D_CS; CS=1 на время сброса sbi PORTB,D_RS ; RS=1 rcall del10ms ; Задержка 10 мс sbi PORTA,D_RESET; Вывод RESET в 1 rcall del35ms ; Задержка 35 мс cbi PORTA,D_CS; CS=0 ldi tmp,$BC ; Посылаем команду $BC - Data Control (data handling in RAM) rcall lcd_cmd ldi tmp,$2A rcall lcd_dat ; 0x2A=565 mode, 0x0A=666mode, 0x3A=444mode rcall cs_pulse ; Дергаем CS
ldi ZL,low(INIT1*2) ldi ZH,high(INIT1*2) lpm mov tmp,r0 rcall lcd_cmd ; Посылаем команду $CA - Display Control clr bitcount START_INIT1: inc bitcount adiw ZL,1 lpm mov tmp,r0 rcall lcd_dat cpi bitcount,$09 ; 9 байт данных послано breq STOP_INIT1 jmp START_INIT1 STOP_INIT1: ; ldi ZL,low(INIT2*2) ldi ZH,high(INIT2*2) lpm mov tmp,r0 rcall lcd_cmd ; Посылаем команду $CB - pulse set for 64 gray scale clr bitcount START_INIT2: inc bitcount adiw ZL,1 lpm mov tmp,r0 rcall lcd_dat ldi tmp,$00 rcall lcd_dat cpi bitcount,$1D ; 29 байт данных + 29 байт $00 послано breq STOP_INIT2 jmp START_INIT2 STOP_INIT2: ; ldi ZL,low(INIT3*2) ldi ZH,high(INIT3*2) clr bitcount START_INIT3: inc bitcount lpm mov tmp,r0 rcall lcd_dat ldi tmp,$01 rcall lcd_dat adiw ZL,1 cpi bitcount,$22 ; 34 байта данных + 34 байта $01 послано breq STOP_INIT3 jmp START_INIT3 STOP_INIT3: ; ldi ZL,low(INIT4*2) ldi ZH,high(INIT4*2) lpm mov tmp,r0 rcall lcd_cmd ; Посылаем команду $CC - pulse set for 16 gray scale clr bitcount START_INIT4: inc bitcount adiw ZL,1 lpm mov tmp,r0 rcall lcd_dat cpi bitcount,$0F ; 15 байт данных послано breq STOP_INIT4 jmp START_INIT4 STOP_INIT4: ; ldi tmp,$CD ; Set for gray scales rcall lcd_cmd ldi tmp,$00 rcall lcd_dat
; ldi tmp,$D0 ; Oscillator select ; rcall lcd_cmd ; ldi tmp,$00 ; rcall lcd_dat
ldi tmp,$94 ; Display out of sleep (no parameter) rcall lcd_cmd
; rcall del7ms
ldi tmp,$15 ; Column address setting rcall lcd_cmd ldi tmp,$08 rcall lcd_dat ldi tmp,$01 rcall lcd_dat ldi tmp,$8B rcall lcd_dat ldi tmp,$01 rcall lcd_dat
ldi tmp,$75 ; Page address setting rcall lcd_cmd ldi tmp,$00 rcall lcd_dat ldi tmp,$8F rcall lcd_dat
ldi tmp,$AA ; Area scroll setting rcall lcd_cmd ldi tmp,$00 rcall lcd_dat ldi tmp,$AF rcall lcd_dat ldi tmp,$AF rcall lcd_dat ldi tmp,$03 rcall lcd_dat
ldi tmp,$AB ; Scroll start setting rcall lcd_cmd ldi tmp,$00 rcall lcd_dat
sbi PORTB,D_RS
ldi tmp,$AF ; Display ON (no parameter) rcall lcd_cmd
sbi PORTA,D_CS ; CS=1 ;ret ;====================== Инициализация закончена ========================================
; Далее очищаем экран или сразу выводим картинку и т.п.
;------------------------------------------------------- cs_pulse: ; Импульс CS sbi PORTA,D_CS cbi PORTA,D_CS ret ;====================== Подпрограммы ================================================ lcd_write: ; Запись байта данных в дисплей L2F50126 clr tmp2 send_SPI: inc tmp2 sbi PORTA,D_DATA rol tmp brcs send_SPI_1 cbi PORTA,D_DATA send_SPI_1: sbi PORTA,D_CLK cbi PORTA,D_CLK cpi tmp2,$08 brne send_SPI ret ;------------------------------------------------------- lcd_cmd: ; Запись команды в дисплей cbi PORTB,D_RS ; RS=0 - команда, RS=1 - данные для L2F50126 rcall lcd_write ldi tmp,$00 rcall lcd_write sbi PORTB,D_RS ret ;------------------------------------------------------- lcd_dat: ; Запись данных в дисплей rcall lcd_write ldi tmp,$00 rcall lcd_write ret ;-------------------------------------------------------
.CSEG INIT1: .DB 0xCA,0x4C,0x01,0x53,0x00,0x02,0xB4,0xB0,0x02,0x00 INIT2: .DB 0xCB,0x11,0x27,0x3C,0x4C,0x5D,0x6C,0x78,0x84,0x90,0x99,0xA2,0xAA,0xB2,0xBA,0xC0, 0xC7,0xCC,0xD2,0xD7,0xDC,0xE0,0xE4,0xE8,0xED,0xF0,0xF4,0xF7,0xFB,0xFE INIT3: .DB 0x01,0x03,0x06,0x09,0x0B,0x0E,0x10,0x13,0x15,0x17,0x19,0x1C,0x1E,0x20,0x22,0x24, 0x26,0x28,0x2A,0x2C,0x2D,0x2F,0x31,0x33,0x35,0x37,0x39,0x3B,0x3D,0x3F,0x42,0x44, 0 x47,0x5E INIT4: .DB 0xCC,0x13,0x23,0x2D,0x33,0x38,0x3C,0x40,0x43,0x46,0x48,0x4A,0x4C,0x4E,0x50,0x64
Сообщение отредактировал Alet - Jun 13 2010, 19:09
|
|
|
|
|
Aug 24 2010, 19:26
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 4-07-10
Пользователь №: 58 276

|
Здравствуйте! Мельком пролистал тему, но так и не нашел ответа. Кто как запитал l2f50? Можно ли на 1v8 подать 3.3v?
Сообщение отредактировал GMVM - Aug 24 2010, 19:27
|
|
|
|
|
Aug 25 2010, 13:44
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 18-02-09
Пользователь №: 45 056

|
Можно
|
|
|
|
|
Sep 1 2010, 08:00
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553

|
дисплей на lph88 изображение в инверсии в смысле негативное какие команды нужны чтоб ее выключить Код /***************************************************** МОДУЛЬ ВЫВОДА КАРТИНКИ *****************************************************/ void foto(void) { unsigned int i; PORTB.LCD_CS=0; // select display lcd_comtype(0x16); lcd_comdat(0x83, 0x00); lcd_comtype(0x17); lcd_comdat(0xAF, 0x00); lcd_comtype(0x21); lcd_comdat(0x00, 0x00); lcd_comtype(0x22); lcd_write(0x76); for (i=0; i<DISP_W*DISP_H; i++) { lcd_write16(image[i]); } PORTB.LCD_CS=1; // deselect display }
Сообщение отредактировал ysmat - Sep 1 2010, 09:45
|
|
|
|
|
Sep 1 2010, 11:51
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553

|
Цитата(leon013 @ May 29 2010, 18:27)  Доброго времени суток. Есть пара вопросов по дисплею LPH88 : я так понимаю в этом дисплее нет режима 8 битного цвета? и по поводу инициализации, на одном из сайтов встретил вот такую инициализацию: lcd_comtype(0x02); lcd_comdat(0x04, 0x00); lcd_comtype(0x0C); lcd_comdat(0x00, 0x01); delay_ms(40); lcd_comtype(0x03); lcd_comdat(0x00, 0x0C); lcd_comtype(0x0E); lcd_comdat(0x2D, 0x1F); delay_ms(40); lcd_comtype(0x0D); lcd_comdat(0x06, 0x16); delay_ms(40); lcd_comtype(0x01); lcd_comdat(0x02, 0x15); lcd_comtype(0x05); lcd_comdat(0x00, 0x30); lcd_comtype(0x07); lcd_comdat(0x00, 0x37); CSpuls();
хотел узнать может кто пробовал так сделать в железе, или все же лучше как "всегда", как у Кранца? использовал эту инициализацию вместо Кранца и цвет стал нормальным
|
|
|
|
|
Sep 4 2010, 14:22
|
Группа: Новичок
Сообщений: 1
Регистрация: 4-09-10
Пользователь №: 59 292

|
у меня такой вопрос. есть небольшой экранчек от Siemens A57 монохромный. хочу его подключить к mega8. 1. где найти на него хотя бы какую нибудь инфу. перебрал все datasheet на чипы что стояли в телефоне и не один не управляет им. (фотографии экрана в архиве, может кому попадался) 2. поятен mеga8 его? или стоит купить другую? з.ы. экран хочу посадить в предворительном усилителе чтобы выводить инфу о выбраной функции.( "Радиохобби" 2/2005)
|
|
|
|
|
Sep 6 2010, 14:01
|

Участник

Группа: Участник
Сообщений: 26
Регистрация: 31-07-09
Из: ВАРПА
Пользователь №: 51 677

|
1. такого не видал 2. мега даже 8-я довольно мощная штука, потянет есесно.
--------------------
Всё что ты видишь - лживый облик.
|
|
|
|
|
Sep 11 2010, 19:43
|
Группа: Новичок
Сообщений: 3
Регистрация: 9-09-10
Пользователь №: 59 401

|
Может кто-нибудь выложить инициализацию для дисплея от MC60 (LPH8731-3C). Пытаюсь подключить его к РС как здесь (http://www.oocities.com/neil_manc/s-a60/index.html), но похоже инициализация не подходит.
|
|
|
|
|
Sep 11 2010, 23:10
|

Участник

Группа: Участник
Сообщений: 26
Регистрация: 31-07-09
Из: ВАРПА
Пользователь №: 51 677

|
Цитата(therin @ Sep 11 2010, 23:43)  Может кто-нибудь выложить инициализацию для дисплея от MC60 (LPH8731-3C). Пытаюсь подключить его к РС как здесь (http://www.oocities.com/neil_manc/s-a60/index.html), но похоже инициализация не подходит. Это от LPH8731-1A, попробуй может прокатит. Код void LCD_init (void) //Инициализация { asm("cli"); SPI_high(); PORTE|=0x08; LCD_CS; LCD_COM; _delay_ms(20); LCD_COM; write_SPI(0x01); //Software Reset _delay_ms(60); write_SPI(0xC6); //INIESC - Initialize the Settings inside the IC _delay_ms(12); write_SPI(0xB9); //REFSET - Set the states inside the IC LCD_DAT; write_SPI(0x00); LCD_COM; write_SPI(0xB6); //Display Control - LCD_DAT; write_SPI(0x57); //Generator Frequency write_SPI(0x80); //N-line inversion OFF write_SPI(0x96); //2 Div osc on idle, Bias 1/7, place on bottom, 104x82, Display Duty 1/82 write_SPI(0x00); //Duty 1/84 write_SPI(0x00); write_SPI(0xFF); //Duty 1/82 write_SPI(0x00); LCD_COM; write_SPI(0xB3); //Gray Scale position set 0 LCD_DAT; LCD_UNCS_CS; write_SPI(0x07); write_SPI(0x0E); write_SPI(0x15); write_SPI(0x1C); write_SPI(0x23); write_SPI(0x2A); write_SPI(0x31); write_SPI(0x38); write_SPI(0x3F); write_SPI(0x46); write_SPI(0x4D); write_SPI(0x54); write_SPI(0x5B); write_SPI(0x62); write_SPI(0x69); LCD_COM; write_SPI(0xB4); //Gray scale position set 1 LCD_DAT; LCD_UNCS_CS; write_SPI(0x1F); write_SPI(0x2F); write_SPI(0x3F); write_SPI(0x4F); write_SPI(0x5F); write_SPI(0x6F); write_SPI(0x7F); write_SPI(0x8F); write_SPI(0x9F); write_SPI(0xAF); write_SPI(0xBF); write_SPI(0xCF); write_SPI(0xDF); write_SPI(0xEF); write_SPI(0xFF); LCD_COM; write_SPI(0xB5); //Set the Gray scale position set by default LCD_DAT; write_SPI(0x02); //SET1 LCD_COM; write_SPI(0xBD); //Common output driver select LCD_DAT; write_SPI(0x00); // LCD_COM; write_SPI(0xBE); //Power Control LCD_DAT; write_SPI(0x1C); LCD_COM; write_SPI(0x11); //Sleep Mode OFF _delay_ms(1); write_SPI(0xBA); //LCD drive voltage LCD_DAT; write_SPI(0x6D); //Цифровое значение напряжения - 108 write_SPI(0x03); //всегда 0x03 LCD_COM; write_SPI(0x25); //Write Contrast LCD_DAT; write_SPI(0x39); //Уровень контрастности - 57 LCD_COM; write_SPI(0xB7); //Temperature gradient for LCD LCD_DAT; LCD_UNCS_CS; write_SPI(0x03); //-0.2%/C write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); LCD_COM; write_SPI(0x03); //Display Booster ON _delay_ms(60); write_SPI(0x20); //Inversion OFF //write_SPI(0x30); //Set the partial area //LCD_DAT; //write_SPI(0x00); //Начало - 0 //write_SPI(0x00); //Конец - 0 //LCD_COM; //write_SPI(0x33); //Vertical scroll definition //LCD_DAT; //write_SPI(0x00); //Верхняя не прокручиваемая область //write_SPI(0x00); //Количество линий для прокрутки //write_SPI(0x53); //Нижняя не прокручиваемая область //LCD_COM; //write_SPI(0x37); //Vertical scroll start address //LCD_DAT; //write_SPI(0x00); //write_SPI(0x00); //LCD_COM; write_SPI(0x3A); //Interface Pixel Format LCD_DAT; write_SPI(0x03); //12 bit/pixel VideoMode=LCD_4096CL; LCD_COM; write_SPI(0x2D); //Set colors for 256 colors mode LCD_DAT; write_SPI(0x00); //RED 0 write_SPI(0x0F); //RED 1 write_SPI(0x3F); //RED 3 write_SPI(0x6F); //RED 4 write_SPI(0x9F); //RED 5 write_SPI(0xCF); //RED 6 write_SPI(0xFF); //RED 7 write_SPI(0x00); //GREEN 0 write_SPI(0x0F); //GREEN 1 write_SPI(0x3F); //GREEN 3 write_SPI(0x6F); //GREEN 4 write_SPI(0x9F); //GREEN 5 write_SPI(0xCF); //GREEN 6 write_SPI(0xFF); //GREEN 7 write_SPI(0x00); //BLUE 4 write_SPI(0x55); //BLUE 5 write_SPI(0xAA); //BLUE 6 write_SPI(0xFF); //BLUE 7 LCD_COM; write_SPI(0x36); //Memory access method LCD_DAT; write_SPI(0x00); //Default memory access method LCD_COM; write_SPI(0x2B); //Page address set LCD_DAT; write_SPI(0x00); //Start page at 0x00 write_SPI(0x51); //End page at 81 LCD_COM; write_SPI(0x2A); //Column address set LCD_DAT; write_SPI(0x00); //Start page at 0x00 write_SPI(0x64); //End page at 100 LCD_COM; write_SPI(0x2C); //Write data into display RAM LCD_DAT; write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); write_SPI(0x00); LCD_COM; write_SPI(0x00); //NOP write_SPI(0x29); //Display ON LCD_UNCS; asm("sei");
--------------------
Всё что ты видишь - лживый облик.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|