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

MSP430F4152 частоты MCLK SMCLK

Приветствую специалистов.

Бъюсь с MSP430F4152, перечитал мануал N раз, ради понимания пытаюсь получить частоту SMCLK равной 32768 КГц.

Кварц 32768.

С ACLK все понятно и вопросов нет.

На картинке одно в мануале, в описании регистра другое, я насколько понял ТОЛЬКО УМНОЖЕНИЕ.

Т.е. при включении DCOPLUSE он умножает частоту DCO на коф. указанный в делители )), жесть.

Кто что может по данному вопросу подсказать.

Как настроить SMCLK на 32768

 

SCFQCTL = SCFQ_64K;

и как это поделить на 2 ....

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


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

Т.е. при включении DCOPLUSE он умножает частоту DCO на коф. указанный в делители )), жесть.

Если верить 33 странице даташита, то минимальная частота DCO 0,3 МГц. Остаётся только SMCLK=ACLK

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


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

Если верить 33 странице даташита, то минимальная частота DCO 0,3 МГц. Остаётся только SMCLK=ACLK

Эта таблица,как я понял, рекомендации по настройкам блока постройки частоты.

 

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


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

Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на 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 наружу на вывод мк и перемычкой подать её на входы тех модулей, которые допускают внешнее тактирование.

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


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

Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на 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 */

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


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

Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц.

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


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

Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц.

Полностью согласен, вопрос не этом.

На рисунке 5-4 на странице 5-7 slau056l.pdf тактового модуля, получается что можно эту частоту пустить через предделитель и вывести через DCOPLUS, а в описании регистра и по факту частота нифига не делится а умножается, т.е. рисунок не бьется с описанием и фактом.

Вот это совсем непонятно ......

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


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

Полностью согласен, вопрос не этом.

На рисунке 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 ко всей периферии подведены ЕМНИП.

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


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

Похоже, что всё на рисунке 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". Возможно, это надо для переключения тактирования внешних модулей между низкой и высокой частотой для экономии энергии, например.

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


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

Задайте (с помощью битов 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 вынужден скорректировать свое сообщение: похоже, что нифига у вас не выйдет. :( Потому, что, судя по указанной таблице, генератор DCO не может генерировать частоту ниже 300кГц. А вывода для подключения внешнего резистора (RSEL) с помощью которого можно задавать ток для данного RC-генератора (как это было в некоторых старых моделях MSP430) у данного кристалла нет. Проверить, так ли это, можно установив описанный выше мной режим работы FLL и проанализировав через некоторое время после включения модулятора бит ошибки DCOF и значение модулятора. Если заданная частота достижима, то DCOF будет сброшен и в регистре модулятора будет ненулевое значение. Если же DCOF не сбрасывается и все биты DCOx и MODx в регистрах SCFI0 и SCFI1 равны нулю, то значит модулятор FLL "уперся" в нижнее значение и FLL синхронизироваться с опорной частотой 32768Гц не может.

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


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

Задайте (с помощью битов 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

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


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

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

Да, увидел.

 

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Гц?

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


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

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

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

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

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

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

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

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

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

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