roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 дек 2024, 17:44

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 22 июн 2011, 12:21 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Пользовался я обычными LCD индикаторами. Есть у меня и 16x2 и 20x4 индикаторы. Все шло хорошо, пока я тут не решил купить модный OLED, чтоб было все ярко и весело.

Взял WEH001602ALPP5N компании Winstar (как и все мои другие).

Заменил свой LCD на OLED - картинка супер, все хорошо.
А дальше начались грабли.

Если мк вместе с оледом выключить и включить - все шоколадно.
Если же например нажать просто резет, то болт.
Болт бывает следующих видов:
1) Черный экран
2) Кракозяблы статичные
3) Кракозяблы слегка меняющиеся в зависимости от программы
4) Поменены строки местами
5) Изображение сдвинуто вправо-влево на разное количество символов
6) Комбинация пунктов 2-5

Вывожу только английские буквы и цифры для теста. Речь НЕ ПРО КОДИРОВКУ.
Завтра принесу фотик, покажу. Пока в шоке. Главное уже запаял и доработал напильником и врятли получится вернуть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 22 июн 2011, 12:29 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Случаем у дисплея нет своего Reseta?

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 22 июн 2011, 14:36 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
нет. по контактам все совместимо как у LCD, нет только контрастности и + - для подсветки.
А так все 1 в 1. Подключал 4х-битным образом, библиотека LCD встроенная CVAVR

Добавлено спустя 1 час 53 минуты 4 секунды:
Очень похоже, что в CVAVR как то не так сделана инициализация и/или переход в 4-х битный режим.
Все перепробовал уже...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 22 июн 2011, 22:46 
Не в сети

Зарегистрирован: 01 июл 2010, 20:58
Сообщения: 76
Откуда: Санкт-Петербург
прог. языки: Си
ФИО: Дмитрий
А что говорят даташиты от ЛСД и ОЛЕД дисплеев на вопрос инициализации и работы? Есть ли разница?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 22 июн 2011, 23:34 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
я не нашел. процедура инициализации одинаковая для всех контроллеров HD44780.

Может кто прислать прошивку для АТмега32-16 Мгц с программой, пишущей "Hello world", сделанную на чем угодно, кроме CVAVR?
Экран подключен следующим образом:
Порт А (пофиг, можно любой другой, главное по пинам чтоб совпадало, у меня все на разъемах)
0 - RS (LCD Pin 4)
1 - RD (LCD Pin 5)
2 - EN (LCD Pin 6)
4 - DB4 (LCD Pin 11)
5 - DB5 (LCD Pin 12)
6 - DB6 (LCD Pin 13)
7 - DB7 (LCD Pin 14)


Вложения:
Комментарий к файлу: Вот datasheet к нему
WEH001602ALPP5N.pdf [1.28 МиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 23 июн 2011, 13:01 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
Видео, демонстрирующее грабли

Процедура инициализации в библиотеке CVAVR:
Код:
unsigned char lcd_init(unsigned char lcd_columns)
{
#asm
    cbi   __lcd_port,__lcd_enable ;EN=0
    cbi   __lcd_port,__lcd_rs     ;RS=0
#endasm
_lcd_maxx=lcd_columns;
_base_y[2]=lcd_columns+0x80;
_base_y[3]=lcd_columns+0xc0;
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x20);
_long_delay();
_lcd_write_data(0x28);
_long_delay();
_lcd_write_data(4);
_long_delay();
_lcd_write_data(0x85);
_long_delay();
#asm
    in    r26,__lcd_direction
    andi  r26,0xf                 ;set as input
    out   __lcd_direction,r26
    sbi   __lcd_port,__lcd_rd     ;RD=1
#endasm
if (lcd_read_byte0()!=5) return 0;
_lcd_ready();
_lcd_write_data(6);
lcd_clear();
return 1;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 23 июн 2011, 16:39 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Похоже на глюки RAM памяти его. Программу пока не смотрел - позже посмотрю

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 23 июн 2011, 17:47 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
А меня смутила длина проводов. Может олед более чувствителен к помехам и наводкам? Кондер по питанию ему еще прямо на индикатор. И еще хорошо бы сравнить по даташитам времянки сигналов - вдруг есть различия.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 23 июн 2011, 19:58 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
galex1981 писал(а):
Похоже на глюки RAM памяти его. Программу пока не смотрел - позже посмотрю

Непохоже, т.к. при включении питания или при НН-надцатом резете все работает до следующей инициализации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 16 авг 2011, 16:54 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
а что если сигнал en попробовать оторвать от МК и тягать его в ручную ..

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с OLED 16x2 индикатором
СообщениеДобавлено: 18 авг 2011, 10:41 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Это проблемы винстара и никак не исправить, они изначально делали глючные оледы.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO