С частотой вроде разобрался.
Нужно было включить знаменитую задержку (см. FAQ) при включении, до переключения на тактирование от кварца. Раньше мне это в голову не приходило, т.к. UART работал нормально и все проблемы были связаны только с I2C. Но оказалось, что все частоты встали на свое место после введения этой задержки.
Но обмен по-прежнему так и не работает. Кто-нибудь может мне сказать, правильно ли я понимаю, что по команде
I2CTCTL |= I2CTRX + I2CSTT + I2CSTP;
должно передаваться два байта: адрес и данные? у меня передается один адрес, после чего вызывается прерывание Transmit Ready. И вот если после этого записать что-то в регистр данных I2С, тогда только происходит реальная передача байта данных. Судя по мануалу, что-то не так. Или...?
|