|
|
  |
I2C в MSP430F169 |
|
|
|
Mar 16 2006, 10:16
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Я с модулем I2C тесно не работал, но есть два замечания. 1. у вас модуль I2C в режиме slave (бит MST в U0CTL не установлен), откуда там вообще частота на SCL должна быть? 2. по поводу делителя I2CSCLH/I2CSCLH цитата Цитата I2C shift clock high. These bits define the high period of SCL when the I2C controller is in master mode. The SCL high period is (I2CSCLH+2) x (I2CPSC + 1). А где у вас I2CPSC инициализируется?
|
|
|
|
|
Apr 10 2006, 11:19
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174

|
Рассказываю, как все было на самом деле.
Оказывается, записывать данные в регистр I2C нужно после того, как инициирована передача. Иначе, контроллер думает, что их там нет.
Иными словами, чтобы послать один байт, нужно сделать следующее:
I2CNDAT = 0x01; U0CTL |= MST; I2CTCTL |= I2CTRX + I2CSTT + I2CSTP; I2CDRB = 0xEE;
Если последние две строки поменять местами, работать НЕ БУДЕТ! Надеюсь, кому-нибудь пригодится.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|