Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Тактирование после LPM3
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
DTMF
Поясните пожалуйста такой момент:
Включаю тактирование MCLK от XT2=4 MHz.
Перехожу в LPM3( XT2 - отключается).
При переходе в активный режим MCLK = DCO.

Через какое время перейдет к тактированию MCLK
от XT2 и каким образом?
DTMF
Или я не прав и в LPM3 генератор
XT2 не выключается?
controller_m30
Я не обещаю что подскажу в чём дело, но указание модели контроллера желательно.
В разных контроллерах сигнал XT2, имеет разные нюансы работы.
rezident
Тактировать MCLK и соответственно ядро MSP430 от внешних генераторов стоит только в самых крайних случаях. Внутренний RC-генератор (DCO) подходит для этого лучше 95% случаев. DCO запускается быстро - за единицы микросекунд, в отличие от ВЧ и НЧ кварцевых генераторов. Для часового кварцевого генератора для запуска может потребоваться аж до 500мс. Вы не сообщили про какую именно серию MSP430 ваш вопрос, но обычно при выходе из режима энергосбережения (при котором выключается источник тактирования MCLK) ядро переключается на тактирование именно от DCO.
DTMF
контроллер MSP430F5508
Не нашел нигде информации, что происходит
с генератором XT2 при переходе в LPM3,
если до этого он был запущен.
rezident
Цитата(DTMF @ Aug 14 2012, 08:59) *
контроллер MSP430F5508
Не нашел нигде информации, что происходит
с генератором XT2 при переходе в LPM3,
если до этого он был запущен.

См. в MSP430x5xx and MSP430x6xx Family User's Guide (Rev. J) раздел 5.2.5 XT2 Oscillator. Там описано про его работу. В частности
Цитата
XT2 is enabled under any of the following conditions:
...
...
...
XT2OFF = 0. XT2 enabled in active mode (AM) through LPM4. For devices that support LPMx.5, XT2
will also remain enabled.

То бишь генератор XT2 работает до тех пор, пока его специально не выключают установкой бита XT2OFF. Такой же вывод можно сделать, если внимательно рассматривать блок-схему модуля UCS на Figure 5-1. UCS Block Diagram. XT2 управляется XT2OFF, XT2BYPASS и XT2DRIVE. На его работу или неработу оказывают влияние только XT2OFF и XT2BYPASS.
DTMF
Спасибо.
Я тоже так думал.
Вы развеяли мои сомнения.
vea
Цитата(rezident @ Aug 11 2012, 21:12) *
Тактировать MCLK и соответственно ядро MSP430 от внешних генераторов стоит только в самых крайних случаях. Внутренний RC-генератор (DCO) подходит для этого лучше 95% случаев. DCO запускается быстро - за единицы микросекунд, в отличие от ВЧ и НЧ кварцевых генераторов. Для часового кварцевого генератора для запуска может потребоваться аж до 500мс.

Скажите пожалуйста, насколько плохой практикой является переход на тактирование MCLK от часового кварца после его запуска:
Код
BCSCTL3 |= XCAP_3;          // xtal has 12.5 pF caps
__delay_cycles(500000);     // delay for crystal stabilization

BCSCTL2 |= SELM_3 + SELS;    // MCLK  Source Select 3: LFXTCLK
                            //SMCLK Source Select 0: DCOCLK / 1:XT2CLK/LFXTCLK */

Вопрос возник в свяжи с желанием (возможно, излишним) дополнительно уменьшить потребление за счет отключения DCO:
Код
_BIS_SR(SCG0 + SCG1);

Хотя, собственно, в документации некоторая неясность - в пункте 5.2.5.1 MSP430x2xx FUG "Disabling the DCO" сказано, что эта команда отключит DCOCLK.
Насколько я сейчас понимаю, это разные вещи: DCO - это источник, а DCOCLK - сигнал, из него выходящий, так что выключив DCOCLK не обязательно выключаем DCO. Приведенная в этом разделе схема ясности не добавила. Что за DCO_Gen_on, более нигде в тексте не встречающееся?

Может быть, кто-то разбирался с этим вопросом?
Или не стоит этим заморачиваться?
rezident
При тактировании MCLK от LFXT следует учитывать, что сбой в генерации часового кварца вызовет переход тактирования MCLK от DCO. Но состояние SELMx при этом не изменится.
Чисто логически тактирование от внешних компонентов менее надежно, чем от внутренних. По энергозатратам же выгоднее быстро выполнить программу и вновь уснуть, чем выполнять программу все время, но на маленькой частоте. Хотя и такой способ (делать "медленно и печально" sm.gif ) тоже иногда практикуется в условиях сильных ограничений по максимальному току питания. А также в тех случаях, когда требуется постоянно опрашивать внешние устройства на наличие событий, но при этом нельзя (не получается) использовать прерывания.
Насчет сигналов DCOCLK_on и DCO_Gen_on. Они в общем-то условные. Первый, как вы правильно заметили влияет лишь на выходной сигнал DCOCLK, второй управляет работой самого генератора ("DC Generatior" на блок-схеме). Здесь еще следует заметить, что при вызове любого прерывания (в т.ч. при сбое любого из кварцевых генераторов, если разрешено прерывание битом OFIE) автоматически очищаются лишь биты CPUOFF, SCG1 и OSCOFF. А бит SCG0, который управляет работой генератора DCO, при переходе по вектору прерывания не изменяется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.