atmega+wo12864c2

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
simius
Родился
Сообщения: 13
Зарегистрирован: Пн дек 12, 2011 22:22:36

atmega+wo12864c2

Сообщение simius »

Уже долго борюсь с указаным дисплеем, не могу заставить его работать. Какой-то аналог в протеусе работает идеально. В железе ничего.

Код: Выделить всё

#define LCD_RES	(1<<0)
#define LCD_A0	(1<<1)
#define LCD_RW	(1<<2)
#define LCD_E	(1<<3)
#define LCD_C86	(1<<4)
#define LCD_PS	(1<<5)
#define LCD_HPM	(1<<6)
#define LCD_IRS	(1<<7)
#define LCD_0	LCD_IRS|LCD_HPM|LCD_PS|LCD_RES|LCD_C86

void lcd_out_i(unsigned char data)
{
	lcd_wait();
	asm volatile ("nop");
	lcd_cs_clr();
	asm volatile ("nop");
	PORTB = LCD_0;
	asm volatile ("nop");
	PORTA = data;
	asm volatile ("nop");
	PORTB |= LCD_E;
	asm volatile ("nop");
	PORTB &= ~LCD_E;
	asm volatile ("nop");
	lcd_cs_set();
	asm volatile ("nop");
}

void lcd_out_d(unsigned char data)
{
	lcd_wait();
	lcd_cs_clr();
	asm volatile ("nop");
	PORTB = LCD_0|LCD_A0;
	asm volatile ("nop");
	PORTA = data;
	asm volatile ("nop");
	PORTB |= LCD_E;
	asm volatile ("nop");
	PORTB &= ~LCD_E;
	asm volatile ("nop");
	PORTB = LCD_0;
	lcd_cs_set();
}

void lcd_wait()
{	
	tmpuc = 0x00;
	DDRA = 0;
	asm volatile ("nop");
	PORTB = LCD_0;
	asm volatile ("nop");
	PORTB |= LCD_RW;
	asm volatile ("nop");
	lcd_cs_clr();
	asm volatile ("nop");
	PORTB |= LCD_E;
	asm volatile ("nop");
	tmpuc = PINA & 0x80;
	asm volatile ("nop");
	PORTB &= ~LCD_E;
	asm volatile ("nop");

	while(tmpuc)
	{
		PORTB |= LCD_E;
		asm volatile ("nop");
		tmpuc = PINA & 0x80;
		asm volatile ("nop");
		PORTB &= ~LCD_E;
	}

	lcd_cs_set();
	PORTB = LCD_0;
	asm volatile ("nop");
	DDRA = 0xff;
}
Все выводы проверил, вроде все контакты целы. Мега работает на 8Мгц. Думал, задержка в один такт маловата, увеличивал до 16. Мегу и дисплей питаю от 3.3В.
Пока делаю в чтении статуса, что бы при работе дисплея включался диод (отладчика нет). Но ни lcd_out_i(0xAF), ни lcd_out_i(0xAE) ничего не меняют.
И ещё не понятно назначение вывода "VRS - This is the internal-input VREG power supply for the lcd power supply". Что к нему подключать?
Конденсаторы к выводам CAP подключены. Хотя думаю, от этого работает только сам дисплей, а не его контроллер.
В общем, прошу помощи.
Реклама
Аватара пользователя
BigallS
Опытный кот
Сообщения: 754
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

Re: atmega+wo12864c2

Сообщение BigallS »

simius писал(а):Уже долго борюсь с указаным дисплеем, не могу заставить его работать. Какой-то аналог в протеусе работает идеально. В железе ничего. Все выводы проверил, вроде все контакты целы. Мега работает на 8Мгц. Думал, задержка в один такт маловата, увеличивал до 16. Мегу и дисплей питаю от 3.3В.
Пока делаю в чтении статуса, что бы при работе дисплея включался диод (отладчика нет). Но ни lcd_out_i(0xAF), ни lcd_out_i(0xAE) ничего не меняют.
И ещё не понятно назначение вывода "VRS - This is the internal-input VREG power supply for the lcd power supply". Что к нему подключать?
Конденсаторы к выводам CAP подключены. Хотя думаю, от этого работает только сам дисплей, а не его контроллер.
В общем, прошу помощи.
Раз на команды не отвечает, контроллер там другой - ST7565P
Реклама
simius
Родился
Сообщения: 13
Зарегистрирован: Пн дек 12, 2011 22:22:36

Re: atmega+wo12864c2

Сообщение simius »

simius писал(а):Раз на команды не отвечает, контроллер там другой - ST7565P, а не KS0108
как ни странно, там и правда ST7565 :) но и команды я беру из даташита по st7565
Display ON|OFF
A0 - 0
RD - 1
WR - 0
Data:
ON - 10101111
OFF- 10101110
Аватара пользователя
BigallS
Опытный кот
Сообщения: 754
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

Re: atmega+wo12864c2

Сообщение BigallS »

simius писал(а):
simius писал(а):Раз на команды не отвечает, контроллер там другой - ST7565P, а не KS0108
как ни странно, там и правда ST7565 :) но и команды я беру из даташита по st7565
Display ON|OFF
A0 - 0
RD - 1
WR - 0
Data:
ON - 10101111
OFF- 10101110
Мне присылали пример работы с таким индикатором полгода назад, вечером поищу если найду пришлю.
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»