Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USCI I2C тактирование в MSP430F5438a
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
k155la3
Как ВЫЧИСЛЯЕТСЯ частота 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 ?
Obam
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 ?" - Нет, конечно. УАПП каким боком?
k155la3
Цитата(Obam @ Feb 10 2016, 16:35) *
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 ?



Цитата(Obam @ Feb 10 2016, 16:35) *
"Похоже на то, что работает не обычный делитель, а CCR."
- Работает что?

счетчик с 2 CCR - одни настроен на 4, другой на BR1_BR0. В общем у меня фантазия закончилась.
Понимаю, что для I2C точная установка частоты не требуется.
Не парить моск ?
Obam
"счетчик с 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е без программирования можно проверять: руками задавать требуемые биты, коэффициенты и тут же видеть результат.
k155la3
Цитата(Obam @ Feb 10 2016, 17:45) *
. . . .
Вообще, эти вещи под JTAGом в IARе без программирования можно проверять: руками задавать требуемые биты, коэффициенты и тут же видеть результат.

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

Пока надо это дело прекращать. Будет время - разберемся.
Для работы установил "среднюю" для I2C частоту около 176 кГц.

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

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.