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

 
 
 
Reply to this topicStart new topic
> USCI I2C тактирование в MSP430F5438a, Как формируется частота SCK
k155la3
сообщение Feb 10 2016, 11:48
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Как ВЫЧИСЛЯЕТСЯ частота 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 - Feb 10 2016, 12:04
Go to the top of the page
 
+Quote Post
Obam
сообщение Feb 10 2016, 12:35
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



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 ?" - Нет, конечно. УАПП каким боком?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Feb 10 2016, 12:57
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(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 точная установка частоты не требуется.
Не парить моск ?
Go to the top of the page
 
+Quote Post
Obam
сообщение Feb 10 2016, 13:45
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



"счетчик с 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е без программирования можно проверять: руками задавать требуемые биты, коэффициенты и тут же видеть результат.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Feb 10 2016, 14:04
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Obam @ Feb 10 2016, 17:45) *
. . . .
Вообще, эти вещи под JTAGом в IARе без программирования можно проверять: руками задавать требуемые биты, коэффициенты и тут же видеть результат.

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

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

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

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 16:54
Рейтинг@Mail.ru


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