КАШАК писал(а):Есть дисплей от Samsung s5230, думаю запустить его совместно с AVR. Только вот нигде не могу найти его инициализацию и подключение к микроконтроллеру. Тут писали, что уже запускали данный дисплей, может поделитесь схемой подключения и парой строчек кода?

Да, сколько вольт подавать на подсветку и как соединить все катоды и аноды подсветки?
Заранее спасибо

По просьбам трудящихся написал опус "Я и S5230"
Я - и LCD S5230
Говорю сразу - я не претендую на истину в последней инстанции, я лишь делюсь тем что знаю (что постиг сам и прочитал в сети). Я сделал 2 конструкции с данным дисплеем, так что, как мне кажется, имею право поведать миру.
Дисплей (дисп) очень прост в управлении, питании, подсветке. Контроллер там S6D04D1
Я делал подсветку замкнув все аноды, замкнув все катоды и подав на них +5В через резистор примерно 33 ома (точнее зависит от напряжения питания подсветки и желаемой яркости. Ток особо не мерил, примерно 100мА.
Питается дисп от 3.3В Если от такого же напряжения питается и микроконтроллер (МК), то никакого согласования уровней не надо. Если же питание МК 5В - то я соединял выводы МК с выводами диспа через резисторы 1КОм. В таком случае из диспа ничего не прочитаешь, а мне это и не нужно было.
Подключение. Для этого нужны линии (все - выходы МК) CS, WR, DC, D0...D7. RD можно активно не использовать - но не забудьте его завести на +3.3В (я когда запускал первый подобный дисплей - это был Nok 6300 долго не мог понять - что ж он не работает?? Потом заметил что я забыл о RD и никуда его не подключил!)
Подключается дисп не самым удобным образом. Это надо или напаять разъём на плату и включать в него собственно дисп (но такой разъём негде взять кроме как отпаять со шлейфа которым дисп подключается к плате в телефоне) или взять оный шлейф и включать его в разъём на плате (как в телефоне). Но достать такой разъём (на плату) проблемка. Его можно или купить в каких-то магазинах, или в сервисном центре самсунг или как предлагал controller_m30 использовать разъёмы со шлейфа NOKIA 5300/5200. Он утверждает что они того же размера и того же шага. Ссылка:
http://vrtp.ru/index.php?showtopic=1120&st=1440#. Там-же и фотка настоящего самсунгового шлейфа. В любом случае шаг очень мелкий - сделать такую плату не совсем просто.
Распиновка разъёма прилагается. Прим.: это вид на разъём на плату сверху, значит мы видим золотые контакты. Шлейф дисплея будет втыкаться в него и уходить вниз. То есть контакты 1 и 2 будут скраю шлейфа.
Теперь самое интересное - как им управлять.
Я использовал оба раза в горизонтальном виде, поэтому описываю как делал я для такой ориентации. Для другой надо кое-что изменить в инициализации дисплея и ещё по мелочи.
Данные посылаемые в дисп бывают данными и командами.
Как послать байт данных:
1. Линию DC ставим в 1 - это признак данных;
2. На шине анных ставим нужный байт;
3. Линию WR в ноль;
4. Линию WR в единицу. - байт записан
Например:
void LCDData(unsigned char data)
{
A_PORT |= 1 << DC; //Единица Признак данных
PORTC = data;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
}
Как послать байт команды: точно также, только линию DC в 0 - это признак команды.
void LCDCommand(unsigned char cmd)
{
A_PORT &= ~(1 << DC); //Ноль Признак команды
PORTC = cmd;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
}
Инициализция. Мне хватало следующих байтов:
void LCDInit(void)
{
_delay_ms(100);
//************* Reset LCD Driver ****************//
A_PORT &= ~(1 << Res); //Ноль
_delay_ms(10);
A_PORT |= 1 << Res; //Единица
_delay_ms(100);
D_PORT &= ~(1 << CS); //Ноль
//************* Start Initial Sequence **********//
LCDCommand(0x11); // SLPOUT
_delay_ms(100);
LCDCommand(0x3A);
LCDData(0x08);
LCDCommand(0x36); //Ориентация верх-низ дисплея
LCDData(0x14); //Шлейф внизу - 0,0 вверху справа
LCDCommand(0x2A);
LCDData(0x00);
LCDData(0x00);
LCDData(0x00);
LCDData(0xEF);
LCDCommand(0x2B);
LCDData(0x00);
LCDData(0x00);
LCDData(0x01);
LCDData(0x8F);
LCDCommand(0x29); // DISPON
_delay_ms(100);
}
Теперь на экране должен быть разноцветный "мусор"
Можно очень обрадоваться

и почитать теорию дальше.