SBB 0 24 сентября, 2012 Опубликовано 24 сентября, 2012 · Жалоба Добрый вечер! На временной диаграмме представлены старт-бит и адрес ведомого сформированные МК MSP430F2232. Подскажите причину разрыва в тактовом сигнале. Почему такое может быть? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SBB 0 29 сентября, 2012 Опубликовано 29 сентября, 2012 · Жалоба Проблема была в нестабильной работе внутреннего DCO. С этим разобрались, но появились другие трудности. К микроконтроллеру подключён дисплей Winstar WDX0006-TGH по интерфейсу i2c. Для инициализации дисплея написаны следующие функции: //Старт. void i2c_start() { UCB0CTL1 |= UCTR + UCTXSTT; while (!(UC0IFG & UCB0TXIFG)); UC0IFG &= ~UCB0TXIFG; } //Запись байта. void i2c_write(unsigned char data) { UCB0TXBUF = data; while (!(UC0IFG & UCB0TXIFG)); UC0IFG &= ~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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться