-=az=- 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Приветствую специалистов. Бъюсь с MSP430F4152, перечитал мануал N раз, ради понимания пытаюсь получить частоту SMCLK равной 32768 КГц. Кварц 32768. С ACLK все понятно и вопросов нет. На картинке одно в мануале, в описании регистра другое, я насколько понял ТОЛЬКО УМНОЖЕНИЕ. Т.е. при включении DCOPLUSE он умножает частоту DCO на коф. указанный в делители )), жесть. Кто что может по данному вопросу подсказать. Как настроить SMCLK на 32768 SCFQCTL = SCFQ_64K; и как это поделить на 2 .... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mcheb 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Т.е. при включении DCOPLUSE он умножает частоту DCO на коф. указанный в делители )), жесть. Если верить 33 странице даташита, то минимальная частота DCO 0,3 МГц. Остаётся только SMCLK=ACLK Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=az=- 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Если верить 33 странице даташита, то минимальная частота DCO 0,3 МГц. Остаётся только SMCLK=ACLK Эта таблица,как я понял, рекомендации по настройкам блока постройки частоты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E.V.G. 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на 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 наружу на вывод мк и перемычкой подать её на входы тех модулей, которые допускают внешнее тактирование. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=az=- 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Сам с этим мк не работал, другими этого типа - занимался. Посмотрел файлы с описанием вашего мк на 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 */ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E.V.G. 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=az=- 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Посмотрел ещё раз файл с описанием мк и файл msp430f4152.h, который есть в IAR. Значение MCLK и SMCLK не может быть меньше ACLK*2, т.е. при ACLK=32768Гц - MCLK=SMCLK=65536Гц. Полностью согласен, вопрос не этом. На рисунке 5-4 на странице 5-7 slau056l.pdf тактового модуля, получается что можно эту частоту пустить через предделитель и вывести через DCOPLUS, а в описании регистра и по факту частота нифига не делится а умножается, т.е. рисунок не бьется с описанием и фактом. Вот это совсем непонятно ...... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Полностью согласен, вопрос не этом. На рисунке 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 ко всей периферии подведены ЕМНИП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
E.V.G. 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Похоже, что всё на рисунке 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". Возможно, это надо для переключения тактирования внешних модулей между низкой и высокой частотой для экономии энергии, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 23 сентября, 2015 Опубликовано 23 сентября, 2015 · Жалоба Задайте (с помощью битов 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Гц не может. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 30 23 сентября, 2015 Опубликовано 23 сентября, 2015 (изменено) · Жалоба Задайте (с помощью битов 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. Изменено 23 сентября, 2015 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 23 сентября, 2015 Опубликовано 23 сентября, 2015 · Жалоба Всё бы хорошо, только 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Гц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться