Перейти к содержанию
    

USCI I2C тактирование в MSP430F5438a

Как ВЫЧИСЛЯЕТСЯ частота SCK для USCI в MSP430F5438a

То, что расписано в док-ии SLAU208o (38.3.5 I2C Clock Generation and Synchronization)

сопоставить с реалиями мне не удалось.

 

Тактирование - от кварца 25 MHz --> SMCLK --> USCI

Наличие SMCLK именно 25 МГц проверялось осцилографом.

 

при BR0=32 BR1=0 частота SCK 533-551 kHz ( SMCLK = 25 MHz)

 

уменьшаем SMCLK в 2 раза

 

при BR0=32 BR1=0 частота SCK 320 kHz ( SMCLK = 12.5 MHz)

 

Похоже на то, что работает не обычный делитель, а CCR.

 

На бл-схеме Figure 38-1. USCI Block Diagram – I2C Mode упоминается

prescaler / devider.

 

Есть док по этой теме, где это расписано ?

 

ps - для USART даны ф-лы пересчета ( 36.3.10 Setting a Baud Rate ).

Использовать их и для I2C ?

 

Изменено пользователем k155la3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Prescaler/Divider тупо - ДПКД.

UCxBRx как раз и задаёт коэффициент Prescaler/Divider, а 25МГц / 32 это ~780кГц; 12.5МГц/32 ~390кГц.

 

"Похоже на то, что работает не обычный делитель, а CCR." - Работает что?

 

"Как ВЫЧИСЛЯЕТСЯ частота SCK для USCI в MSP430F5438a" - "The maximum bit clock that can be used in single master mode is fBRCLK/4. In multi-master

mode, the maximum bit clock is fBRCLK/8." стр. 1012

 

"для USART даны ф-лы пересчета ( 36.3.10 Setting a Baud Rate ). Использовать их и для I2C ?" - Нет, конечно. УАПП каким боком?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UCxBRx как раз и задаёт коэффициент Prescaler/Divider, а 25МГц / 32 это ~780кГц; 12.5МГц/32 ~390кГц.

У меня получается при коэф. BR0 = 32 ( 0x20 ) частота именно 533-551 kHz

В примерах у Ti:

UCB0BR0 = 12;  //  fSCL = SMCLK/12 = ~100kHz

И что, тильда означает +/- 300 kHz ?

 

 

 

"Похоже на то, что работает не обычный делитель, а CCR."

- Работает что?

счетчик с 2 CCR - одни настроен на 4, другой на BR1_BR0. В общем у меня фантазия закончилась.

Понимаю, что для I2C точная установка частоты не требуется.

Не парить моск ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"счетчик с 2 CCR - одни настроен на 4, другой на BR1_BR0." - Гениально! (: К 16-разрядному ДПКД только CaptureCompare (я правильно понимаю ?) не хватает (:

 

"Не парить моск ?" - Парить, но в разумных пределах.

 

"У меня получается при коэф. BR0 = 32 ( 0x20 ) частота именно 533-551 kHz" - значит BRCLK не 25МГц.

 

"В примерах у Ti: UCB0BR0 = 12; // fSCL = SMCLK/12 = ~100kHz

И что, тильда означает +/- 300 kHz ? " - Практически. То, что в Unified Clock System (UCS) SMCLK сама получается из делителя с разнообразными (1, 2, 4 .. 32)

коэффициентами, вас почему не смущает? (:

 

Вообще, эти вещи под JTAGом в IARе без программирования можно проверять: руками задавать требуемые биты, коэффициенты и тут же видеть результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

. . . .

Вообще, эти вещи под JTAGом в IARе без программирования можно проверять: руками задавать требуемые биты, коэффициенты и тут же видеть результат.

Я так и делаю :)

Прогнал все коэф. деления по степеням 2, для 2 частот SMCLK - 25 и 12.5 MHz.

 

Пока надо это дело прекращать. Будет время - разберемся.

Для работы установил "среднюю" для I2C частоту около 176 кГц.

 

Подобный вопрос задавался на форуме Ti - но внятного ответа (можно сказать даже ответа ВООБЩЕ)

в тех постах, что я смотрел, нет.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...