реклама на сайте
подробности

 
 
> Управление ЖКИ, управление контроллером SPFD5408
Anatoly_P
сообщение Jun 5 2008, 11:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 3-05-08
Из: Minsk
Пользователь №: 37 240



привет всем! Люди добрые помогите кто чем может. Есть ЖКИ с контроллером SPDF5408. В даташите контроллера нашел таблицу кода инициализации, запрограммировал, В результате после инициализации на экране появляется шум. Вроде значить система работает ( были подозрения, что сжег). Но никак не могу точку или последовательность точек вывести. Загоняю данные в память ЖКИ через регистр R22h, а этот гребанный ЖКИ нифига не отображает. Уже третий день на месте стою, может кто подскажет куда копать.
ARM LPC2468. Плату под него сами разрабатывали.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Anatrulij
сообщение Jan 28 2009, 08:49
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 64
Регистрация: 7-11-08
Пользователь №: 41 437



Здраствуйте. Щас разбираюсь с понелью G057QN01 V0. инфы в инете - ноль. подключил его к LPC2478, а что с ним дальше делать не знаю. может кто работал. подскажите.
Go to the top of the page
 
+Quote Post
kovz
сообщение Jan 28 2009, 09:12
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079



Цитата(Anatrulij @ Jan 28 2009, 10:49) *
Здраствуйте. Щас разбираюсь с понелью G057QN01 V0. инфы в инете - ноль. подключил его к LPC2478, а что с ним дальше делать не знаю. может кто работал. подскажите.

в инете инфа есть http://www.google.com/url?sa=t&source=...EOpfuGqyoIFeM8A
там и распиновка и временные диаграмы, если и это не поможет - тогда нужно начинать с другого.
Go to the top of the page
 
+Quote Post
Anatrulij
сообщение Jan 28 2009, 09:35
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 64
Регистрация: 7-11-08
Пользователь №: 41 437



Цитата(kovz @ Jan 28 2009, 12:12) *
в инете инфа есть http://www.google.com/url?sa=t&source=...EOpfuGqyoIFeM8A
там и распиновка и временные диаграмы, если и это не поможет - тогда нужно начинать с другого.


Я читал этот документ - он очень бедный. Меня интересует как програмно с ним работать. Может примерчик есть?
Go to the top of the page
 
+Quote Post
kovz
сообщение Jan 28 2009, 09:41
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079



Цитата(Anatrulij @ Jan 28 2009, 11:35) *
Я читал этот документ - он очень бедный. Меня интересует как програмно с ним работать. Может примерчик есть?

нет примерчика нет, но в чём проблема не пойму cranky.gif
Или вы спрашиваете как вывести картинку на данный дисплей?
Тогда курить как работает LCD коноллер в 2478. В двух словах пишете образ картинки в RAM и потом говорите контроллеру(LCD) где вы его записали, а он сам это всё отправит на экран

Сообщение отредактировал kovz - Jan 28 2009, 09:44
Go to the top of the page
 
+Quote Post
Anatrulij
сообщение Jan 28 2009, 09:58
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 64
Регистрация: 7-11-08
Пользователь №: 41 437



Цитата(kovz @ Jan 28 2009, 12:41) *
нет примерчика нет, но в чём проблема не пойму cranky.gif
Или вы спрашиваете как вывести картинку на данный дисплей?
Тогда курить как работает LCD коноллер в 2478. В двух словах пишете образ картинки в RAM и потом говорите контроллеру(LCD) где вы его записали, а он сам это всё отправит на экран


Да, мне надо вывести что-то на экран. Если бы еще знать какой контроллер стоит в этом LCD(в документации ничего не сказано)
Ладненько, буду разбираться.
спасибки за ответ.
З.Ы. Если что нароете - обязательно скиньте laughing.gif
Go to the top of the page
 
+Quote Post
kovz
сообщение Jan 28 2009, 10:36
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079



Цитата(Anatrulij @ Jan 28 2009, 11:58) *
Да, мне надо вывести что-то на экран. Если бы еще знать какой контроллер стоит в этом LCD(в документации ничего не сказано)
Ладненько, буду разбираться.
спасибки за ответ.
З.Ы. Если что нароете - обязательно скиньте laughing.gif

да в этом случае всёравно какой в LCD контроллер.
Я чуть позже объясню что к чему, сейчас немного занят.

Сообщение отредактировал kovz - Jan 28 2009, 10:39
Go to the top of the page
 
+Quote Post
Anatrulij
сообщение Jan 28 2009, 11:16
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 64
Регистрация: 7-11-08
Пользователь №: 41 437



Цитата(kovz @ Jan 28 2009, 13:36) *
да в этом случае всёравно какой в LCD контроллер.
Я чуть позже объясню что к чему, сейчас немного занят.



Буду ждать
Go to the top of the page
 
+Quote Post
kovz
сообщение Jan 29 2009, 09:44
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079



Цитата(Anatrulij @ Jan 28 2009, 13:16) *
Буду ждать

Давайте с начала. Я не знаю как у вас подключён экранчик, но правильно вот так :

LPC2478 G057QN01 назначение
LCDPWR | VDD(28,29)/NC | можно управлять транзистором для вкл/выкл экранчика
LCDDCLK | CLK(2) | тактование пикселей
LCDENA/LCDM | DE(27) | сигнал валидности данных
LCDFP | NC |
LCDLE | NC |
LCDLP | NC |
LCDVD[1:0] | NC |
LCDVD[2] | RED[0](6) | бит интенсивности общий для всех цветов бует одинаков
LCDVD[3:7] | RED[1:5](7-11) | данные красного
LCDVD[8:9] | NC |
LCDVD[10] | GREEN[0](13) | бит интенсивности общий для всех цветов бует одинаков
LCDVD[11:15] | GREEN[1:5](14-18) | данные зелёного
LCDVD[16:17] | NC |
LCDVD[18] | BLUE[0](20) | бит интенсивности общий для всех цветов бует одинаков
LCDVD[19:23] | BLUE[1:4](21-25) | данные синего
LCDCLKIN | NC | можно использовать для внешнего тактования контроллера LCD в LPC2478



далее смотрим на табличку и временные диаграммы на странице 14 документа, ссылка на который выше.
мы видим что частота тактования пикселей должна лежать в пределах 6,2 - 12,1 Мгц, рекомендуют 6,4 Мгц это значение получаем путём настройки делителя в регистрах LCD_CFG и LCD_POL, там же выбираем источник тактования, и полярности сигналов.
Далее ключевой момент, у нас экранчик отображает 320 точек на линию, но после этих 320 точек ему нужно ещё минимум 86 максимум 240 тактов, перед тем как можно будет подавать следующие 320пикселей следующей линии.
Эти настройки задаются в регистре LCD_TIMH, но контроллер LCD в LPC2478 имеет одну особенность, в нём можно настроить не только сколько "холостых"(назавём их так) пикселей нужноподать после отображаеммых пикселей, а и до них(мин значение 1).
Так как нам рекомендуют подать 88 таких холостых тактов, делаем хитрость делим их количество на 2 и подаём 44 до и 44 после.
Значение LCD_TIMH получится:
31:24 HBP = 0x2B (44-1) количество холостых пикселей до данных
23:16 HFP = 0x2B (44-1) количество холостых пикселей после данных
15:8 HSW = 0x56(88) количество пикселей горизонтальной синхронизации
7:2 PPL = 0x140(320) количество пикселей данных
1:0 reserved
тоже самое нужно проделать с регистром LCD_TIMV
только вместо 88 холостых клоков пикселей, необходимо от 14 до 120 холостых линий, рекомендуют 23. значения в этом регистре уже не в пикселях а в линиях!
остальные регистры не вижу смысла описывать, там всё понятно из документации.
Есть только одна особенность регистр LCD_UPBASE должен быть инициализирован до включения LCD контроллера в LPC2478!
Он содержит адрес первой ячейки памяти, где хранится образ изображения, который вы хотите вывести на экран!

Если будут ещё вопросы, задавайте.
P.S. Исходников нет, и думаю гораздо важнее понимание как оно работает, нежели готовые чужие сырцы.
Go to the top of the page
 
+Quote Post
Anatrulij
сообщение Jan 29 2009, 13:42
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 64
Регистрация: 7-11-08
Пользователь №: 41 437



Цитата(kovz @ Jan 29 2009, 12:44) *
Если будут ещё вопросы, задавайте.
P.S. Исходников нет, и думаю гораздо важнее понимание как оно работает, нежели готовые чужие сырцы.


Ну вот, я сделал инициализацию LCD:

#include "LPC23xx.h" /* LPC23xx definitions */
#include "type.h"


#define BUFFER_ADDR 0xA0000000
unsigned short * Ptr;

void IniLCD()
{
DWORD i;

PCONP |= (1<<20);
PINSEL11 = ((5<<1));

PINSEL4 &= ~(3<<4);
PINSEL4 &= ~(3<<6);
PINSEL4 &= ~(3<<8);
PINSEL4 &= ~(3<<10);
PINSEL4 |= ((3<<4) | (3<<6) | (3<<8) | (3<<10));

PINSEL3 &= ~(3<<8);
PINSEL3 &= ~(3<<10);
PINSEL3 &= ~(3<<12);
PINSEL3 &= ~(3<<14);
PINSEL3 &= ~(3<<16);
PINSEL3 &= ~(3<<18);
PINSEL3 &= ~(3<<20);
PINSEL3 &= ~(3<<22);
PINSEL3 &= ~(3<<24);
PINSEL3 &= ~(3<<26);
PINSEL3 |= ( (1<<8) | (1<<10) | (1<<12) | (1<<14) | (1<<16) | (1<<18) | (1<<20) | (1<<22) | (1<<24) | (1<<26) );

PINSEL4 &= ~(3<<12);
PINSEL4 &= ~(3<<14);
PINSEL4 &= ~(3<<16);
PINSEL4 &= ~(3<<18);
PINSEL4 &= ~(3<<24);
PINSEL4 &= ~(3<<26);
PINSEL4 |= ((3<<12) | (3<<14) | (3<<16) | (3<<18) | (1<<24) | (1<<26));

LCD_CFG = 1;
LCD_TIMH = ( (0x2B<<24) | (0x2B<<16) | (0x56<<8) | (0x140<<2));
LCD_TIMV = ( (12<<24) | (12<<16) | (24<<10) | (239<<0) );
LCD_POL = ( (1<<26) | (((320/1)-1)<<16) | (1<<12) | (0<<5));

LCD_CTRL = ((1<<5) | (6<<1));
LCD_CTRL |= (1<<8);

LCD_UPBASE = BUFFER_ADDR;
LCD_LPBASE = BUFFER_ADDR;
for(i=0;i<50000;i++);

LCD_CTRL |= 1;
for(i=0;i<50000;i++);
LCD_CTRL |= 1<<11;
}

int main()
{
IniLCD();
???????
}


что делать дальше? как вывести точьку, или что-нибудь еще?

СПАСИБО ЗА ОТВЕТЫ!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Anatoly_P   Управление ЖКИ   Jun 5 2008, 11:07
- - Liderr   Цитата(Anatoly_P @ Jun 5 2008, 14:07) при...   Jan 24 2009, 20:54
- - rezident   Liderr, обращаю ваше внимание, что Anatoly_P разме...   Jan 24 2009, 21:43
- - at90   Liderr, а экран от оригинальной N95 или от китайск...   Jan 25 2009, 10:18
|- - Anatrulij   Цитата(kovz @ Jan 29 2009, 12:44) Если бу...   Jan 29 2009, 11:53
- - kovz   Извини было много работы, некогда было отписаться....   Feb 3 2009, 08:03
- - Anatrulij   Цитата(kovz @ Feb 3 2009, 12:03) Извини б...   Feb 3 2009, 17:48
|- - kovz   Цитата(Anatrulij @ Feb 3 2009, 19:48) Как...   Feb 4 2009, 13:00
|- - Anatrulij   Цитата(kovz @ Feb 4 2009, 17:00) Опиши чт...   Feb 5 2009, 06:07
|- - kovz   Цитата(Anatrulij @ Feb 5 2009, 08:07) Уже...   Feb 5 2009, 13:18
|- - Anatrulij   Цитата(kovz @ Feb 5 2009, 17:18) Тут не п...   Feb 5 2009, 14:44
|- - Wano   Цитата(Anatrulij @ Feb 5 2009, 16:44) Да,...   Feb 5 2009, 21:42
- - Jurdens   Цитата(kovz @ Feb 3 2009, 12:03) Извини б...   Aug 11 2009, 02:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 13:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016