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

 
 
 
Reply to this topicStart new topic
> MSP430F4152 частоты MCLK SMCLK
-AZ-
сообщение Sep 21 2015, 00:01
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Приветствую специалистов.
Бъюсь с MSP430F4152, перечитал мануал N раз, ради понимания пытаюсь получить частоту SMCLK равной 32768 КГц.
Кварц 32768.
С ACLK все понятно и вопросов нет.
На картинке одно в мануале, в описании регистра другое, я насколько понял ТОЛЬКО УМНОЖЕНИЕ.
Т.е. при включении DCOPLUSE он умножает частоту DCO на коф. указанный в делители )), жесть.
Кто что может по данному вопросу подсказать.
Как настроить SMCLK на 32768

SCFQCTL = SCFQ_64K;
и как это поделить на 2 ....
Go to the top of the page
 
+Quote Post
mcheb
сообщение Sep 21 2015, 04:18
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(phenixs @ Sep 21 2015, 04:01) *
Т.е. при включении DCOPLUSE он умножает частоту DCO на коф. указанный в делители )), жесть.

Если верить 33 странице даташита, то минимальная частота DCO 0,3 МГц. Остаётся только SMCLK=ACLK
Go to the top of the page
 
+Quote Post
-AZ-
сообщение Sep 21 2015, 04:40
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Цитата(mcheb @ Sep 21 2015, 07:18) *
Если верить 33 странице даташита, то минимальная частота DCO 0,3 МГц. Остаётся только SMCLK=ACLK

Эта таблица,как я понял, рекомендации по настройкам блока постройки частоты.
Go to the top of the page
 
+Quote Post
E.V.G.
сообщение Sep 21 2015, 06:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 31-01-10
Из: Арзамас
Пользователь №: 55 175



Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на http://www.ti.com/lit/ug/slau056l/slau056l.pdf и http://www.ti.com/lit/ds/symlink/msp430f4132.pdf. В первом файле, на стр. 5-7 есть рисунок Figure 5-4. MSP430x41x2 Frequency-Locked Loop. Видимо это модуль вашего мк. Судя по схеме, ACLK нельзя подать на выход SMCLK, а на MCLK - можно. Настроить же отдельно модули DC Generator и DCO+Modulator на генерацию собственной частоты на 32,768 кГц нельзя по причине минимальной устанавливаемой чатоты = 610кГц.
В вашем варианте можно сделать так: вывести частоту ACLK наружу на вывод мк и перемычкой подать её на входы тех модулей, которые допускают внешнее тактирование.
Go to the top of the page
 
+Quote Post
-AZ-
сообщение Sep 21 2015, 10:21
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Цитата(E.V.G. @ Sep 21 2015, 09:22) *
Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на http://www.ti.com/lit/ug/slau056l/slau056l.pdf и http://www.ti.com/lit/ds/symlink/msp430f4132.pdf. В первом файле, на стр. 5-7 есть рисунок Figure 5-4. MSP430x41x2 Frequency-Locked Loop. Видимо это модуль вашего мк. Судя по схеме, ACLK нельзя подать на выход SMCLK, а на MCLK - можно. Настроить же отдельно модули DC Generator и DCO+Modulator на генерацию собственной частоты на 32,768 кГц нельзя по причине минимальной устанавливаемой чатоты = 610кГц.
В вашем варианте можно сделать так: вывести частоту ACLK наружу на вывод мк и перемычкой подать её на входы тех модулей, которые допускают внешнее тактирование.

В настройках есть 32768*2

/* System clock frequency values fMCLK coded with Bits 0-6 in SCFQCTL */
/* #define SCFQ_32K 0x00 fMCLK=1*fACLK only a range from */
#define SCFQ_64K (0x01) /* fMCLK=2*fACLK 1+1 to 127+1 is possible */
#define SCFQ_128K (0x03) /* fMCLK=4*fACLK */
#define SCFQ_256K (0x07) /* fMCLK=8*fACLK */
#define SCFQ_512K (0x0F) /* fMCLK=16*fACLK */
#define SCFQ_1M (0x1F) /* fMCLK=32*fACLK */
#define SCFQ_2M (0x3F) /* fMCLK=64*fACLK */
#define SCFQ_4M (0x7F) /* fMCLK=128*fACLK */
#define SCFQ_M (0x80) /* Modulation Disable */
Go to the top of the page
 
+Quote Post
E.V.G.
сообщение Sep 21 2015, 20:30
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 31-01-10
Из: Арзамас
Пользователь №: 55 175



Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц.
Go to the top of the page
 
+Quote Post
-AZ-
сообщение Sep 22 2015, 05:15
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Цитата(E.V.G. @ Sep 21 2015, 23:30) *
Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц.

Полностью согласен, вопрос не этом.
На рисунке 5-4 на странице 5-7 slau056l.pdf тактового модуля, получается что можно эту частоту пустить через предделитель и вывести через DCOPLUS, а в описании регистра и по факту частота нифига не делится а умножается, т.е. рисунок не бьется с описанием и фактом.
Вот это совсем непонятно ......
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 22 2015, 21:41
Сообщение #8


Гуру
******

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



Цитата(phenixs @ Sep 22 2015, 10:15) *
Полностью согласен, вопрос не этом.
На рисунке 5-4 на странице 5-7 slau056l.pdf тактового модуля, получается что можно эту частоту пустить через предделитель и вывести через DCOPLUS, а в описании регистра и по факту частота нифига не делится а умножается, т.е. рисунок не бьется с описанием и фактом.
Вот это совсем непонятно ......

Задайте (с помощью битов FNx=0x00 задается самый нижний диапазон) частоту DC генератора fDCO=32768Гц*8.
Делитель D для fDCO (с помощью битов FLLDx=0x3) выбираете 1/8. Предделитель для FLL =1 (N=0).
Тогда на выходе DCO генерится fDCO=D*(N+1)*fLFXT=8*(0+1)*32768Гц. Соответственно после делителя fDCO/D=32768Гц*8/8=32768Гц. Выбрав правильные значения битов DCOPLUS и SELS, получаете на выходе SMCLK искомую частоту 32768Гц.
Вот только, убей бог, не пойму, зачем вам это нужно? Ведь полученная таким образом от FLL частота будет модулированной и довольно нестабильной по фазе. Потому, что интегратор FLL поддерживает заданным СРЕДНЕЕ значение частоты на интервале интегрирования (а интегратор FLL всего 10 бит). Если вам нужны точные и стабильные 32768Гц, то используйте ACLK. Благо и SMCLK и ACLK ко всей периферии подведены ЕМНИП.
Go to the top of the page
 
+Quote Post
E.V.G.
сообщение Sep 22 2015, 22:11
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 31-01-10
Из: Арзамас
Пользователь №: 55 175



Похоже, что всё на рисунке 5-4 всё верно. Увеличивая делитель "Divider" или "N+1" мы уменьшаем "глубину цифровой ООС" для модуля "DCO+Modulator", и поэтому частота fdco повышается. Минимальная частота fdco = fdco/D при Divider= /1 и N+1=2, т.е. ACLK умножается на 2. В этом случае, как бит DCOPLUS не устанавливай, частота MCLK и SMLK не измениться и останется ACLK*2. Если повысить Divider до /2 при том же N+1=2, то "Frequency Integrator" повысит частоту "DCO+Modulator" и fdco из-за обратной связи возрастёт до ACLK*4, а частота fdco/D при этом не измениться и останется ACLK*2. Короче, частота fdco зависит от делителя "Divider" * "N+1", а частота fdco/D - только от делителя "N+1". Возможно, это надо для переключения тактирования внешних модулей между низкой и высокой частотой для экономии энергии, например.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 23 2015, 00:37
Сообщение #10


Гуру
******

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



Цитата(rezident @ Sep 23 2015, 02:41) *
Задайте (с помощью битов FNx=0x00 задается самый нижний диапазон) частоту DC генератора fDCO=32768Гц*8.
Делитель D для fDCO (с помощью битов FLLDx=0x3) выбираете 1/8. Предделитель для FLL =1 (N=0).
Тогда на выходе DCO генерится fDCO=D*(N+1)*fLFXT=8*(0+1)*32768Гц. Соответственно после делителя fDCO/D=32768Гц*8/8=32768Гц. Выбрав правильные значения битов DCOPLUS и SELS, получаете на выходе SMCLK искомую частоту 32768Гц.

Посмотрев внимательно раздел Electical characterictics DCO в datasheet MSP430F4152 вынужден скорректировать свое сообщение: похоже, что нифига у вас не выйдет. sad.gif Потому, что, судя по указанной таблице, генератор DCO не может генерировать частоту ниже 300кГц. А вывода для подключения внешнего резистора (RSEL) с помощью которого можно задавать ток для данного RC-генератора (как это было в некоторых старых моделях MSP430) у данного кристалла нет. Проверить, так ли это, можно установив описанный выше мной режим работы FLL и проанализировав через некоторое время после включения модулятора бит ошибки DCOF и значение модулятора. Если заданная частота достижима, то DCOF будет сброшен и в регистре модулятора будет ненулевое значение. Если же DCOF не сбрасывается и все биты DCOx и MODx в регистрах SCFI0 и SCFI1 равны нулю, то значит модулятор FLL "уперся" в нижнее значение и FLL синхронизироваться с опорной частотой 32768Гц не может.
Go to the top of the page
 
+Quote Post
Obam
сообщение Sep 23 2015, 07:47
Сообщение #11


Знающий
****

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



Цитата(rezident @ Sep 23 2015, 01:41) *
Задайте (с помощью битов FNx=0x00 задается самый нижний диапазон) частоту DC генератора fDCO=32768Гц*8.
Делитель D для fDCO (с помощью битов FLLDx=0x3) выбираете 1/8. Предделитель для FLL =1 (N=0).
Тогда на выходе DCO генерится fDCO=D*(N+1)*fLFXT=8*(0+1)*32768Гц. Соответственно после делителя fDCO/D=32768Гц*8/8=32768Гц. Выбрав правильные значения битов DCOPLUS и SELS, получаете на выходе SMCLK искомую частоту 32768Гц.


Всё бы хорошо, только N = 0 задавать нельзя; так прямо английским по-белому и написано в User's Guide.

N от балды задавать нельзя: fDCO должен укладываться в границы, определяемые битами FN_x.

Сообщение отредактировал Obam - Sep 23 2015, 08:01


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 23 2015, 19:25
Сообщение #12


Гуру
******

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



Цитата(Obam @ Sep 23 2015, 12:47) *
Всё бы хорошо, только N = 0 задавать нельзя; так прямо английским по-белому и написано в User's Guide.

Да, увидел.

Цитата(Obam @ Sep 23 2015, 12:47) *
N от балды задавать нельзя: fDCO должен укладываться в границы, определяемые битами FN_x.

Дык правильно. Потому, что DC Generator (DCO) это генератор RC-типа. Битами FN задается эквивалент R, а точнее ток, которым заряжается C. Битами DCO задается величина емкости C (набором коммутируемых конденсаторов: 2^5=32 значения). Естественно, что без переключения величины R (только одними лишь конденсаторами) весь диапазон частот генератора перекрыть нельзя. Но битами DCO и MOD модулятор FLL может управлять автоматически (когда включена модуляция), а битами FN - нет. Поэтому коэффициент умножения, задаваемый N и D должен соответствовать диапазону выходных частот fDCO, который в свою очередь зависит от FN. Кстати, совсем не обязательно постоянно использовать модулятор FLL. Его можно включать периодически лишь для подстройки частоты fDCO. Зато при выключенном модуляторе частота будет меньше "болтаться". В кристаллах без FLL, имеющих лишь только DCO, программно-аппаратная (с помощью таймера) подстройка fDCO это вообще штатный hint.

И все-таки хотелось бы узнать у топикстартера, зачем ему SMCLK именно 32768Гц?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:52
Рейтинг@Mail.ru


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