Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

MSP430F2232+дисплей WDX0006

Сб сен 29, 2012 15:01:04

Здравствуйте!

К микроконтроллеру подключён дисплей Winstar WDX0006-TGH по интерфейсу i2c.
Для инициализации дисплея написаны следующие функции:

//Старт.
void i2c_start()
{
UCB0CTL1 |= UCTR + UCTXSTT;
while (!(IFG2 & UCB0TXIFG));
IFG2 &= ~UCB0TXIFG;
}

//Запись байта.
void i2c_write(unsigned char data)
{
UCB0TXBUF = data;
while (!(IFG2 & UCB0TXIFG));
IFG2 &= ~UCB0TXIFG;
}

//Стоп.
void i2c_stop()
{
UCB0CTL1 |= UCTXSTP;
while(UCB0STAT & UCBBUSY);
}

void lcd_init()
{
i2c_start();
i2c_write(0x00); //Контрольный байт.
i2c_write(0x21); //MX=0, MY=0, PD=0, H1=0, H0=1.
i2c_write(0x12); //Bias=1/68.
i2c_write(0x0C); //DO=1.
i2c_write(0xFF); //VOP=max.
i2c_write(0x20); //MX=0, MY=0, PD=0, H1=0, H0=0.
i2c_write(0x05); //PRS=1.
i2c_write(0x0C); //Normal mode.
i2c_write(0x40); //Set Y.
i2c_write(0x80); //Set X.
i2c_stop();
}

Контроллер дисплея на команды инициализации реагирует,
например, можно менять яркость. А вот на команды записи в память
никакой реакции:

//Очистка дисплея:
i2c_start();
i2c_write(0x40); //Контрольный байт.
for(int i=0;i<918;i++)
{
i2c_write(0x00);//Записываем нули.
}
i2c_stop();

Может быть кто-нибудь подскажет в чём ошибка?

Прилагаю описание на контроллер дисплея.
ST7549T_V13.pdf
(1.22 MiB) Скачиваний: 476
Ответить