Jump to content

    
Sign in to follow this  
MSprut

ЖКИ с контроллером S1D13700

Recommended Posts

Есть ЖКИ 320х240 с контроллером S1D13700 и есть связанная с ним проблема. Заключается в том, что нужно делать две инициализации подряд, чтобы ЖКИ начал жить нормально иначе синий экран. Может кто встречался с такой проблемой или слышал как решить? Программно уже почти все перепробовал, даже не знаю на что грешить. Заранее всем спасибо.

Share this post


Link to post
Share on other sites

Тема конечно старая...но проблема новая, по крайней мере для меня...только вот связался с этим самым контроллером. Точнее с дисплее Powertip PG320240WRF-DE9-H. Неделю уже пытаюсь его как-то оживить...никак. Может кто поможет!? Хоть примером инициализации или советом хотябы?

Share this post


Link to post
Share on other sites
Есть ЖКИ 320х240 с контроллером S1D13700 и есть связанная с ним проблема. Заключается в том, что нужно делать две инициализации подряд

Нужно делать одну инициализацию, но по даташиту:) Надо соблюдать временные праметры сигнала reset при инициализации и всё будет в порядке.

 

Может кто поможет!? Хоть примером инициализации или советом хотябы?

Начните с резета. Напишите тестовую программу в которой резет генерится в цикле с интервалом пару секунд. Если с резетом всё ок, вы это увидите:). Ну а дальше инициализацию делайте строго по даташиту и всё будет ок. Учтите, что отображается только активная страница.

Share this post


Link to post
Share on other sites

Спасибо всем кто откликнулся в прошлый раз. Снова требуется помощ зала... Подружился я с этим контроллером, но только в режиме 1bpp. Когда устанавливаю режим 2bpp, виртуальный экран сжимается весь на левую половину экрана физического, а правая пустая становится. Думаю это из-за конфигурационных байт, которые после комманды SYSTEM SET пишутся. В даташите ничего не понял кроме того что установили режим градации серого и все у вас в шоколаде. Долго лазил в и-нете, но ничего внятного не нашел, все его используют почему-то в однобитном режиме. Нашел один загнивающий форум вражеский, там было написано что нада параметры изменить в двух из этих байтов. Заменил в одном - стал показывать одинаковые картинки и слева и справа. Заменил во втором - у меня изображение еще и по вертикали сжалось. И все... Это меня вообще высадило в недоумение. Может кто знает как с этим бороться или ссылочку, или пример инициализации в режиме 2bpp?

Share this post


Link to post
Share on other sites

В таком режиме я его честно говоря не пускал, потому что тогда надо было бы весь интерфес переделывать. Может в пятницу попробую ради интереса :)

 

Судя по даташиту режимах не 1bpp:

1. Умеет работать в следующих конфигурациях:

    -текстовый режим:
         40column x 30rows (2bpp);
         30column x 20rows (4bpp);
    -графический режим:
         320x240 (2bpp);
         240x160 (4bpp);

2. Обязательно инициализировать FX=7;

3. Не работают функции скроллинга;

4. CR рассчитывать по формуле CR = (panelWidht / 8) * Bpp, т.е. для 2bpp его необходимо увеличить в два раза, а для 4bpp в 4 раза;

5. Иметь ввиду, что если в режиме 1bpp страница занимала Xбайт, то в режиме 2bpp - 2*Xбайт, судя по вашему описанию проблема может заключаться именно в неправильной конфигурации размеров страниц.

Share this post


Link to post
Share on other sites

Попробуй пожалуйста. Вот пример моего кода инициализации для сравнения.

 

lcd_wr_cmnd(SYSTEM_SET);
delay_us(30);
lcd_wr_data(0x30);
lcd_wr_data(0x87);
lcd_wr_data(0x07);
lcd_wr_data((2*(LCD_X_SIZE / 8)) - 1);
lcd_wr_data(81);
lcd_wr_data(LCD_Y_SIZE - 1);
lcd_wr_data(LCD_X_SIZE / 8);
lcd_wr_data(0x00);

// Scroll
lcd_wr_cmnd(SET_SCRL_BLOCK);
lcd_wr_data(0x00);
lcd_wr_data(0x00);
lcd_wr_data(LCD_Y_SIZE);
lcd_wr_data(0x60);
lcd_wr_data(0x09);
lcd_wr_data(LCD_Y_SIZE);
lcd_wr_data(0x00);
lcd_wr_data(0x00);
lcd_wr_data(0x00);
lcd_wr_data(0x00);

lcd_wr_cmnd(SET_HOR_SCROLL);
lcd_wr_data(0x00);

lcd_wr_cmnd(SET_OVLAY);
lcd_wr_data(0x01);

lcd_wr_cmnd(DISPLAY_OFF);
lcd_wr_data(0x00);

ClrText();
ClrGraphic();

lcd_wr_cmnd(SET_CUR_ADR);
lcd_wr_data(0x00);
lcd_wr_data(0x00);

lcd_wr_cmnd(SET_CUR_FORMAT);
lcd_wr_data(0x00);
lcd_wr_data(0x00);
    
lcd_wr_cmnd(SET_GRAYSCALE);
lcd_wr_data(0x01);

lcd_on();

Edited by MSprut

Share this post


Link to post
Share on other sites

Дорое время суток! Есть один вопрос...- начал было живить экранчик (PG320240H-P9) с вышеумопянутым контроллером (S1D13700), конечно с начала не получилось, стал разбираться с интерфейсом обмена,командами и т.п., но остановился на самом начале, а именно после ресета экран труп - тыкался осциллографом -на кварце, тактирующем камень,- тишина (постоянный уровень ~2 B). Ежели сlock-ов нет,- контроллер в ауте (естественно все последующие команды он не переваривает). Ресетел по-всякому, даже кнопкой,-тишина. Подскажите пожалуйста, что может быть?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this