реклама на сайте
подробности

 
 
> Tактирование I2C
pashevich
сообщение May 26 2006, 10:32
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 26-05-06
Пользователь №: 17 471



Не могу подключить индикатор через I2C. Скорее всего, проблемы с тактированием CLK. Для шины нужно 100 или 400 кГц. МК по умолчанию должен работать от SMCLK на 1 МГц. Но реально осциллограф показывает 715 кГц, а CLK на шине без использования прескалера 12.5 кГц.
Почему так получается, ведь I2C тоже тактируется от SMCLK?
Читал где-то, что необходима задержка для установления частоты тактирования.. может из-за ее отсутствия?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
pashevich
сообщение May 27 2006, 12:34
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 26-05-06
Пользователь №: 17 471



Подобрал частоту:

BCSCTL1 |= XT2OFF + RSEL2 + RSEL1 ;
DCOCTL |= DCO0 + DCO1; // частота тактирования ... МГц
BCSCTL2 = 0x00;
P5SEL = 0x20; //SMCLK на вывод P5.0 - наблюдаем ~1 MГц

Инициализация I2C:

U0CTL |= I2C + SYNC; // режим I2C
U0CTL &= ~I2CEN; // начало инициализации порта
I2CSA = 0x78; // адрес LCD
U0CTL |= MST; // режим ведущего
I2CTCTL = I2CSSEL_2; // тактирование I2C от SMCLK
I2CPSC = 0x01; // по теории деление MSCLK на 2 - получается около 100 кГц
I2CTCTL |= I2CTRX + I2CRM; // ПО устанавливает "старт" и "стоп"
U0CTL |= I2CEN; // разрешение работы порта в режиме I2C

Далее посылаем старт-адрес ведомого-стоп и не получаем ASK (выставляется флаг NASK)...
т.е. всё-равно ведущий молчит, может он вообще не рабочий? smile.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 13:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016