Перейти к содержанию

Дисплей Nokia 1202/1280


пщп

Рекомендуемые сообщения

пишу на си для дисплея использовал библиотеку http://digitalchip.r...a-ot-nokia-1100 подключил через резистивные делители питание дисплея 3.3в дисплей инициализируется и даже выводит все но во время записи в него дисплей гаснет а потом опять зажигается помогите пожалуйста решить эту проблему.(мк atmega16a,1мгц внутренний rc генератор питается 5 вольт) PS поднял до 8 мгц и стало лучше но при прорисовке линии все равно мигает

Изменено пользователем пщп
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В смысле по-русски, а не "всмыслЕ".

А так, меряй, может где-то не хватает напряжения.

Изменено пользователем motoandrey14
Ссылка на комментарий
Поделиться на другие сайты

Вообще-то для нормальной работы дисплея нужна высокая частота, если интересно - замерь в телефоне - там она не меньше 20 мГц

И пусть судьба не справедлива, Жизнь игра - играй красиво!

И что б не кикнули тебя, Не злить Админа, юзверя!

Люблю "спасибки" :)

Ссылка на комментарий
Поделиться на другие сайты

--- подключил через резистивные

делители питание дисплея 3.3в

эт черес 2 резистора со средней точки? Ну может я и не очень понимаю но както подозрительно питание организовано:/

Ссылка на комментарий
Поделиться на другие сайты

нет вы не правильно поняли
А как ещё можно понять вот этот кусок текста :
подключил через резистивные делители питание дисплея 3.3в
? Тут ничего не написано про стабилизатор. Да и вообще, трудно что-то понять в Вашем посте.

С Вашим текстом только к экстрасенсам идти, чтобы хотя-бы, для начала, расставить знаки препинания. Затем уже можно им задавать вопросы о проблеме, решить которую другим не получится, из-за малого количества информации.

ЗЫ: Противно читать подобные тексты, тем более отвечать что-то на них...

Ссылка на комментарий
Поделиться на другие сайты

поднял частоту до 16 мгц питание в норме стало лучше но все равно плохо неужели ни у кого небыло такой проблемы ?

Увеличение частоты проблему не решит. У меня на макете дисплей от Nokia 1202 работает при тактовой частоте ATmega8L - 4 мГц, никаких проблем нет.

Похоже на то, что каждый раз перед загрузкой новых данных в дисплей вы проводите инициализацию или очистку экрана, что и создает эффект гашения.

Передача данных через делители для согласования уровней проблем не создаст. У меня при питании контроллера и дисплея от 3.3 вольта данные передаются

через резисторы 180 ом (поставил на всякий случай на макете). При тактовой частоте 4 мГц проблем с передачей информации в дисплей нет.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Почему то иногда при включении картинка на экране рисуется зеркально по горизонтали. Использую библиотеку от digitalchip.ru. Уже и задержку 300 мс перед инициализацией поставил (думал может клемма питания дребезжит при подключении) и всё равно бесполезно. Включаю подачей питания на плату. Просто собрал устройство (дисплей 1202 + ATMega16A) и иногда при включении всё в зеркальном виде. Передергиваю питание - всё нормально, выводится правильно. Что за хрень. Никто не сталкивался с таким?

Инициализирую:

nlcd_SendByte(CMD_LCD_MODE,0xE2); // *** SOFTWARE RESET
nlcd_SendByte(CMD_LCD_MODE,0x3A); // *** Use internal oscillator
nlcd_SendByte(CMD_LCD_MODE,0xEF); // *** FRAME FREQUENCY:
nlcd_SendByte(CMD_LCD_MODE,0x04); // *** 80Hz
nlcd_SendByte(CMD_LCD_MODE,0xD0); // *** 1:65 divider

nlcd_SendByte(CMD_LCD_MODE,0x20); // Запись в регистр Vop
nlcd_SendByte(CMD_LCD_MODE,0x90);
nlcd_SendByte(CMD_LCD_MODE,0xA4); // all on/normal display
nlcd_SendByte(CMD_LCD_MODE,0x2F); // Power control set(charge pump on/off)
								 // Определяет контрастность
nlcd_SendByte(CMD_LCD_MODE,0x40); // set start row address = 0
nlcd_SendByte(CMD_LCD_MODE,0xB0); // установить Y-адрес = 0
nlcd_SendByte(CMD_LCD_MODE,0x10); // установить X-адрес, старшие 3 бита
nlcd_SendByte(CMD_LCD_MODE,0x0); // установить X-адрес, младшие 4 бита
//nlcd_SendByte(CMD_LCD_MODE,0xC8); // mirror Y axis (about X axis)
//nlcd_SendByte(CMD_LCD_MODE,0xA1); // Инвертировать экран по горизонтали
nlcd_SendByte(CMD_LCD_MODE,0xAC); // set initial row (R0) of the display
nlcd_SendByte(CMD_LCD_MODE,0x07);
//nlcd_SendByte(CMD_LCD_MODE,0xF9); //
nlcd_SendByte(CMD_LCD_MODE,0xAF); // экран вкл/выкл

Изменено пользователем mr_smit
Ссылка на комментарий
Поделиться на другие сайты

Вы счастливый человек. У меня дисплей Nokia1110i – никаких признаков отображения не подает.

Тоже работаю с этой библиотекой.

В протусе — все ОК

А на практике нет.

На счет миганий — я пока мучался — немного переделал библиотеку. Она не оптимальна. Для тестов подойдет. Там прорисовка пикселя занимаэе много команд (е ето базовая функция):

1 Считать байт

2. Поставить пиксель

3. Записат байт обратно

4. Передать его в дисплей.

(меняем один бит а передаем байт...)

Я сделал дубли функций библиотеки которые работаю только с видеобуфером.

А в конце прорисовки — одним махом передаю буфер в дисплей.

В протусе быстродействие удвоилось.

Ссылка на комментарий
Поделиться на другие сайты

Вот маи дополнения

Отправка видеобуфера в дисплей

void nlcd_buffer()
{
for (unsigned char x=0; x< NLCD_X_RES; x++)
{ // проход построчно
for (unsigned char y=0; y< (NLCD_Y_RES/8); y++)
{//позиционирование на новую строку
nlcd_xcurr=x;
nlcd_ycurr=y;
nlcd_SendByte(CMD_LCD_MODE,(0xB0|(nlcd_ycurr&0x0F)));	 // установка адреса по Y: 0100 yyyy
nlcd_SendByte(CMD_LCD_MODE,(0x00|(x&0x0F)));	 // установка адреса по X: 0000 xxxx - биты (x3 x2 x1 x0)
nlcd_SendByte(CMD_LCD_MODE,(0x10|((x>>4)&0x07))); // установка адреса по X: 0010 0xxx - биты (x6 x5 x4)

nlcd_SendByte(DATA_LCD_MODE,nlcd_memory[nlcd_xcurr][nlcd_ycurr]);
}
}
}

Поставить пиксель в буфере

void nlcd_buffer_Pixel(unsigned char x,unsigned char y, unsigned char pixel_mode)
{
unsigned char temp;
nlcd_xcurr=x;
nlcd_ycurr=y/8;

temp=nlcd_memory[nlcd_xcurr][nlcd_ycurr];
switch(pixel_mode)
{
 case PIXEL_ON:
	 SetBit(temp, y%8); // Включаем пиксел
break;
 case PIXEL_OFF:
 ClearBit(temp, y%8); // Выключаем пиксел
break;
 case PIXEL_INV:
 InvBit(temp, y%8); // Инвертируем пиксел
break;
}

nlcd_memory[nlcd_xcurr][nlcd_ycurr] = temp; // Передаем байт в видеобуфер
}

Нарисовать линию в буфере

void nlcd_buffer_Line (unsigned char x1,unsigned char y1, unsigned char x2,unsigned char y2, unsigned char pixel_mode)
{
int dy, dx;
signed char addx = 1, addy = 1;
signed int P, diff;
unsigned char i = 0;

dx = abs((signed char)(x2 - x1));
dy = abs((signed char)(y2 - y1));
if(x1 > x2) addx = -1;
if(y1 > y2) addy = -1;
if(dx >= dy)
{
dy *= 2;
P = dy - dx;
diff = P - dx;
for(; i<=dx; ++i)
{
nlcd_buffer_Pixel(x1, y1, pixel_mode);
if(P < 0)
{
P += dy;
x1 += addx;
}
else
{
P += diff;
x1 += addx;
y1 += addy;
}
}
}
else
{
dx *= 2;
P = dx - dy;
diff = P - dy;
for(; i<=dy; ++i)
{
nlcd_buffer_Pixel(x1, y1, pixel_mode);
if(P < 0)
{
P += dx;
y1 += addy;
}
else
{
P += diff;
x1 += addx;
y1 += addy;
}
}
}
}

Изменено пользователем KushlaVR
Ссылка на комментарий
Поделиться на другие сайты

  • 11 месяцев спустя...
nlcd_SendByte(CMD_LCD_MODE,0x3A); // *** Use internal oscillator

А это зачем?

В даташите на контроллер ST2700 в initial sequence нет никаких требований включать внутренний осциллятор. Он вообще там зачем? Все команды по фронту SCK выполняются

Нижеприведённые команды тоже вроде лишние, по ресету все эти величины устанавливаются в нечто среднее и хоть что-то дисплей должен показывать

nlcd_SendByte(CMD_LCD_MODE,0x3A); // *** Use internal oscillatornlcd_SendByte
(CMD_LCD_MODE,0xEF); // *** FRAME FREQUENCY:
nlcd_SendByte(CMD_LCD_MODE,0x04); // *** 80Hz
nlcd_SendByte(CMD_LCD_MODE,0xD0); // *** 1:65 divider
nlcd_SendByte(CMD_LCD_MODE,0x20); // Запись в регистр Vop
nlcd_SendByte(CMD_LCD_MODE,0x90);
nlcd_SendByte(CMD_LCD_MODE,0xA4); // all on/normal display
nlcd_SendByte(CMD_LCD_MODE,0x40); // set start row address = 0
nlcd_SendByte(CMD_LCD_MODE,0xB0); // установить Y-адрес = 0
nlcd_SendByte(CMD_LCD_MODE,0x10); // установить X-адрес, старшие 3 бита
nlcd_SendByte(CMD_LCD_MODE,0x0); // установить X-адрес, младшие 4 бита//
nlcd_SendByte(CMD_LCD_MODE,0xC8); // mirror Y axis (about X axis)
//nlcd_SendByte(CMD_LCD_MODE,0xA1); // Инвертировать экран по горизонталиnlcd_SendByte
(CMD_LCD_MODE,0xAC); // set initial row (R0) of the display
nlcd_SendByte(CMD_LCD_MODE,0x07);

Реально нужна (согласно даташита http://tuxotronic.or...ent/lcd/ste2007) вот такая минимальная инициирующая последовательность:

0xE2 - программный ресет (не менее 160мс почему-то)

0xA4 - all points off (выключение режима PowerSaver)

0x2F - включить все источники напряжений

0xAF - LCD ON (?? не знаю что делает)

0xA5 - all points on (отобразить все точки)

Как я понял, этих 5-ти команд достаточно, чтобы экран чего-то показал.

А вот фиг.

И ещё вопрос у меня: какова МИНИМАЛЬНАЯ тактовая частота на ноге SCK для этого дисплея?

В даташите не указано. 0? Он полностью асинхронный по SCK?

Я пытался посылать команды с Fsck = 1Гц, и он даже один раз что-то выдал.

Вообще, если кто разобрался, напишите минимальную пошаговую последовательность инициализации этого дисплея? А то я делаю всё как на tuxotronic.org , а толку ноль.

Заходите в мою тему по инициализации дисплея Nokia 1202, если есть что сказать http://forum.cxem.ne...howtopic=144430

в репу каждому, кто отсылает в гугл !!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Позволил себе усомниться. Но как говорится - сомневаешься - проверь. Докажи, опровергни. Итак. Светодиоды красный, желтый, зеленый, синий, белый, все 5 мм, у всех прозрачная линза. Мультиметр - mastech ms8264, ссылка дана на самый дорогой магазин в стране специально, чтоб не сочли рекламой. Мне за это никто не платит. Там есть инструкция, для интересующихся. Результаты испытания: все светодиоды светятся в режиме проверки диодов. А вот падение напряжения показывают только красный и желтый. После всех этих опытов возник вопрос - а как вообще определить падение напряжения на светодиоде и рабочий ток? Ну вот неизвестно ничего о светодиоде, кроме того, что он прозрачный и 5 мм. И две ноги у него
    • если представить входное напряжение на конденсаторе С2, как двухполярное с амплитудой Uвх/2, а этот выпрямитель будет самым натуральным удвоителем. а так, в приведенной тобой схеме, это можно назвать "повторителем" с потерей напряжения на двух диодах.
    • ну если надо буде и так смогу))) а вы сможете?))) а пульт на самом деле удобная штука и есть на заводских аппаратах
    • Я вам все рассказал, предложил советы выписать на листочек и по выполнению зачеркивать. Но вы и не выписали и ничего из описанного мной не сделали. А главное удивляетесь почему не работает.    Последний мой совет: покупайте аттини, собирайте. Батареи соедините параллельно. Удачи, я все, суда более не ходок (нет смысла).
    • Кроме синих и белых всегда может. А многие мультиметры и синие/белые подсвечивают. У тебя индикаторы синие?
    • Вот такие транзисторы купил. Если сталкивались с такими - подскажите реальную диаграмму безопасной рабочей зоны (Maximum Safe Operating Area)  
    • Добрый день. Помогите разобраться с контроллером NCP1608. Пытаюсь собрать схему согласно даташита на него и аппнота AND8396-D, из которого брал номиналы. Хотелось получить 100вт с напряжением 400в. Проблема заключается в том, что идет попытка запуска, потом останов. На пине FB напряжение подскакивает до 4в, и как я понимаю срабатывает OVP, при этом питание падает ниже порога запуска в 10,2в. На curentsens в момент работы до 0,5в. Нагружаю двумя лампами 60вт последовательно. Причем когда снимаю щупы осцилографа с FB, по звуку пытается запуститься но на гораздо меньшее время В схеме менял номинал бустерного диода поставил MUR860 вместо MUR460. и вместо термистора на выход ставил байпасный диод, но временно снял его, т.к. что с ним, что без него характер работы не меняется. Дроссель мотал ETD39 N87, 40вит (2х0,5). zcd=4 вит. (должен был получиться 400uh, но не проверял индуктометром т.к. пока он еще едет). зазор = прокладка 0,5мм. Rzcd=100kom, Rstart=330+330kom, Cvcc=47uf 50v, C3=8.2nf. R1=100om, Cct=1.2nf подтянут 1.5Mom к питанию, ключ ir840 с затворным резистором 10ом без обратного диода. делитель FB = 1M+1M+1M+1M/22K+3K Рыжие провода -прочитал в апноте что необходимо и обязательно соединять земли силовую и микросхемы в 1 точке. Но что то не помогло.. Прошу помощи с запуском. Спасибо NCP1608-D.PDF AND8396-D.PDF
×
×
  • Создать...