nokia 6100 glcd + pic18f452

Проблемы и решения работы разнообразных дисплеев и индикаторов в программе Flowcode PIC

nokia 6100 glcd + pic18f452

Сообщение saho (Саша) » 28 май 2014, 20:12

Товарищи хелп :hlp: :hlp: ! Не хочет оживляться дисплейчик ни в какую . Схемка прилагается
18f452_glcd.zip
- питание даю 3.3 в , на подсветку , как и положено 6 в (только она и светится) и ни каких признаков жизни . Инфу о подключении дисплея черпал здесь
Попутно вопрос . Можно ли подключать дисплей на другие порты (хотя у меня и на этих не работает) ? Обязательно ли использовать подсветку - подозреваю , что без неё будет темно и не видно изображения ? Получается тема для меня новая - ну и сами знаете - не пошла с первого раза и начинаешь сомневаться , может не правильно подключил сам девайс , а может в коде что не так сделал , а может вообще он дохлый . Сперва пробовал завести Сименсовский LPH9135 , но потом прочитал в ФК , что заточено только под НОКИА 6100 и подобные и вновой версии под Сименс - S65 .
Так что - :hlp:
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе

Re: nokia 6100 glcd + pic18f452

Сообщение barakuda (Владимир) » 29 май 2014, 22:57

Судя по дате на PCF8833 интерфейс 9 битный SPI, инициализация у него как у SPFD54124 , я подключал нокию 1616 вот тут viewtopic.php?f=17&t=21, скачай архив с заменой правленных компонентов EB043, поправь макрос Clear под своё разрешение экрана, должон завестись, если запустиш дай знать, дополню архив допиленными компанентами.
Ник: barakuda
Имя: Владимир
(Рязань)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: nokia 6100 glcd + pic18f452

Сообщение admin (Alex Braun) » 30 май 2014, 11:13

Саша, посмотри вот тут - http://flowcode.info/smf/index.php?topic=4455.msg12032#msg12032
Будут вопросы, пиши.
Flowcode v5, Proteus 7.8 SP2, PicKit2(full), Visual Studio Community, Visual Micro, Altium Designer, Rhinoceros, Deep Explaration
Аватар пользователя
Ник: admin
Имя: Alex Braun
(Киев)
Администратор
Администратор
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение vlad145 (Владимир) » 30 май 2014, 14:29

saho писал(а):Товарищи хелп :hlp: :hlp: ! Не хочет оживляться дисплейчик ни в какую ...

Доброго времени суток. Первое что хочу заметить, это неправилтная инициалазация. Если определились с контроллером(а их у данного дисплея 2, PCF8833 и S1D15G00) то настраиваем порт, производим сброс потом инициализация. В Вашем примере настройка порта есть(она есть в компоненте) а процедуры сброса дисплея нет. И непонятно зачем используете стандартные коды инициализации от компонента, она не от этих контроллеров. В прикрепленном файле расписано все по данному дисплею, есть примеры инициализации для обоих версий контроллера, код естественно на С, но использовать можно. Будут проблемы пиши, помогу.
Ник: vlad145
Имя: Владимир
(Курган)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение saho (Саша) » 30 май 2014, 19:28

Контроллер у меня скорее всего PCF8833 , дисплейчик сзади с коричневым шлейфиком и большими контактными площадочками .
1
скачай архив с заменой правленных компонентов
пробовал менять макросы на твои - ничего .
2
поправь макрос Clear под своё разрешение экрана
как поправить ?
3
то настраиваем порт, производим сброс потом инициализация. В Вашем примере настройка порта есть(она есть в компоненте) а процедуры сброса дисплея нет.
я не представляю как это всё делать . То , что я вижу в макросах дисплея не соответствует тому , что в примерах инициализации (у меня очень слабо с СИ) - структуру понять не могу , конструкцию . Если можно , друзья - пошагово , с намёками и чётким вектором .
4
Саша, посмотри вот тут
смотрел , теми средствами , которые там содержатся , навскидку не идёт . Но я понял следующее - нужно делать сброс , затем ИНИТ и дальше отрисовку . Но получается каждый макрос нужно править ? Опять же , если в Протеусе работает с PCF8833 , то почему в железе не хочет . Ведь , если я правильно понял , дисплей можно подключать практически к любым портам(согласно Протеусу) , хотя это тоже не понятно . Если у PCF8833 - SPI , то в наших чипах есть аппаратные и софтовые SPI . С аппаратными понятно , а как тут подключать софтовый :?: ? Короче , пока одни вопросы , хотя может они для вас будут и смешными :oops: .
_______________________________
(добавил)
Подключил осцил . Получаю всё , как по книжке . На РЕСЕТ - сброс в 0 на время отрисовки . На ДАТЕ - шумок короткое время . На СЦЛ - тоже шумок соответственный ДАТЕ и на ВЫБОР ЧИПА - поток чётких импульсов на время отрисовки . Значит технически всё работает и не верен сам код (или дисплей дохлый - как наверняка проверить - брал на рынке б\у)
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение vlad145 (Владимир) » 31 май 2014, 04:58

Настройка порта и сброс:

set_bit(MX_GFXLCD_DDR, MX_GFXLCD_RES); //Configure I/O
set_bit(MX_GFXLCD_DDR, MX_GFXLCD_CS);
set_bit(MX_GFXLCD_DDR, MX_GFXLCD_SDATA);
set_bit(MX_GFXLCD_DDR, MX_GFXLCD_SCLK);


clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_CS);
clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK);

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_RES); //Reset LCD
delay_ms(200);
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_RES); //Startup LCD

set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Set Clock Pin High
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA); //Set Data Pin High
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Set Clock Pin High

Инициализация (PCF8833):

gLCD_SendByte(MX_GFXLCD_CMD, 0x01);
gLCD_SendByte(MX_GFXLCD_CMD, 0x11);
gLCD_SendByte(MX_GFXLCD_CMD, 0x03);
delay_ms(10);
gLCD_SendByte(MX_GFXLCD_CMD, 0x29);
gLCD_SendByte(MX_GFXLCD_CMD, 0x13);
gLCD_SendByte(MX_GFXLCD_CMD, 0x25);
gLCD_SendByte(MX_GFXLCD_PARAM, 0x3F);

gLCD_SendByte(MX_GFXLCD_CMD, 0x20);

gLCD_SendByte(MX_GFXLCD_CMD, 0x3A);
gLCD_SendByte(MX_GFXLCD_PARAM, 0x03);

gLCD_SendByte(MX_GFXLCD_CMD, 0x2D);
gLCD_SendByte(MX_GFXLCD_PARAM, 0);
gLCD_SendByte(MX_GFXLCD_PARAM, 2);
gLCD_SendByte(MX_GFXLCD_PARAM, 5);
gLCD_SendByte(MX_GFXLCD_PARAM, 7);
gLCD_SendByte(MX_GFXLCD_PARAM, 9);
gLCD_SendByte(MX_GFXLCD_PARAM, 11);
gLCD_SendByte(MX_GFXLCD_PARAM, 14);
gLCD_SendByte(MX_GFXLCD_PARAM, 16);

gLCD_SendByte(MX_GFXLCD_PARAM, 0);
gLCD_SendByte(MX_GFXLCD_PARAM, 2);
gLCD_SendByte(MX_GFXLCD_PARAM, 5);
gLCD_SendByte(MX_GFXLCD_PARAM, 7);
gLCD_SendByte(MX_GFXLCD_PARAM, 9);
gLCD_SendByte(MX_GFXLCD_PARAM, 11);
gLCD_SendByte(MX_GFXLCD_PARAM, 14);
gLCD_SendByte(MX_GFXLCD_PARAM, 16);

gLCD_SendByte(MX_GFXLCD_PARAM, 0);
gLCD_SendByte(MX_GFXLCD_PARAM, 6);
gLCD_SendByte(MX_GFXLCD_PARAM, 11);
gLCD_SendByte(MX_GFXLCD_PARAM, 15);
delay_ms(5);

gLCD_SendByte(MX_GFXLCD_CMD, 0x36);
gLCD_SendByte(MX_GFXLCD_PARAM, 0x00);

gLCD_SendByte(MX_GFXLCD_CMD, 0x2C);
delay_ms(50);
gLCD_SendByte(MX_GFXLCD_CMD, 0x28);
Lcd_Box(0,0,131,131,1, WHITE,0); // прямоугольник x,y,x1,y1,0-рамка(1-закрашенный),цвет,толщина линии (при типе - рамка)
gLCD_SendByte(MX_GFXLCD_CMD, 0x29);
************************************************************************************************************

Замени код функции gLCD_SendByte:

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_CS); //MX_GFXLCD_CS 0 start of sequence
//********************************************

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0

if (Command == MX_GFXLCD_CMD)
{
clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA); //0 = MX_GFXLCD_CMD
}
else
{
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA); //1 = MX_GFXLCD_PARAMeter
}
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

//*********************************************
clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 128) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 64) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 32) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 16) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 8) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 4) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 2) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1

clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 0
if ((Lcdout & 1) != 0)
{set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);}
else
{clear_bit(MX_GFXLCD_PORT, MX_GFXLCD_SDATA);} //0 = MX_GFXLCD_CMD
set_bit(MX_GFXLCD_PORT, MX_GFXLCD_SCLK); //Clock 1


set_bit(MX_GFXLCD_PORT, MX_GFXLCD_CS); //MX_GFXLCD_CS 1
Ник: vlad145
Имя: Владимир
(Курган)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение saho (Саша) » 31 май 2014, 21:32

Настройка порта и сброс:
Разобрался и сделал
Инициализация (PCF8833):
Разобрался и сделал
Замени код функции gLCD_SendByte:
пробовал , но ФК ругается . Много менять нужно , запутался . Пробовал без этого - вот что получилось :
18f452_glcd.zip
Судя по Протеусу создаётся впечатление , что у меня не PCF8833 ?
Товарищ Braun , к вам вопрос . Ведь осцилл уже сделан в железе и судя по всему именно на том , что выложено в проекте - кто то даже успешно повторил , можно подробней про дисплей ? Мне кажется проблемма в нём .
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение vlad145 (Владимир) » 01 июн 2014, 12:37

Жалко что проверить не могу, я собирал сразу в железе, Proteus не использовал. У меня проект на Mega32. поэтому есть отличия. Функцию SendByte я переписал, но думаю этим не ограничится. Дело в том, что стандартные макросы в компоненте надо править Все! Я бы вообще их удалил и написал свои, но удалить их невозможно. Я так понял ты задаешь 8-битный цвет, я же использовал 12-битный. Если надо будет выложу свой проект, посмотришь.
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: vlad145
Имя: Владимир
(Курган)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение admin (Alex Braun) » 01 июн 2014, 21:39

saho писал(а):Ведь осцилл уже сделан в железе и судя по всему именно на том , что выложено в проекте - кто то даже успешно повторил , можно подробней про дисплей ? Мне кажется проблемма в нём .

Дисплей с коричневым шлейфом, под скотчем обнаружилось 10 контактных площадок. (очень удобно прямо к ним подпаяться)
Дисплей подключал еще в Flowcode v4, на 5-ом не повторял. Подключается к любому порту и настраиваются пины в настройках компонента GLCD.
Скорость отрисовки сильно зависит от тактовой частоты. Поэтому если есть режим PLL в проце- активируй, ускорится в 4 раза. (Есть в некоторых PIC, в AVR не в курсе)
Flowcode v5, Proteus 7.8 SP2, PicKit2(full), Visual Studio Community, Visual Micro, Altium Designer, Rhinoceros, Deep Explaration
Аватар пользователя
Ник: admin
Имя: Alex Braun
(Киев)
Администратор
Администратор
Информация о пользователе
Вернуться наверх

Re: nokia 6100 glcd + pic18f452

Сообщение saho (Саша) » 01 июн 2014, 22:54

Дисплей с коричневым шлейфом, под скотчем обнаружилось 10 контактных площадок
у меня такой же . Попробовал на 4 - й версии - ничего . Значит дисплей всунули дохлый .
Аватар пользователя
Ник: saho
Имя: Саша
(Ровно)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode и дисплеи, индикация

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron