Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переключение XT1 <-> DCO Как сделать?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Make_Pic
Подскажите как лучше сделать в программе периодическое переключение в DCO с низкой частотой для низкого потребления тока ~250мкА в режим внешнего кварца 8МГц для стабильности и точности в широком диапазоне температур. И потом обратно в низкое потребление. Остановка процессора не устраивает.
Для MSP430F2274.
Сергей Борщ
Уже давно с ними не работаю, но, помнится, бла возможность запитать от XT1 какой-нибудь из таймеров и сделать на нем периодическую калибровку DCO. В остальное время XT1 глушить. Тактироваться всегда от DCO.
Make_Pic
Цитата(Сергей Борщ @ Jul 12 2018, 23:49) *
Уже давно с ними не работаю, но, помнится, бла возможность запитать от XT1 какой-нибудь из таймеров и сделать на нем периодическую калибровку DCO. В остальное время XT1 глушить. Тактироваться всегда от DCO.

1) Как его правильно калибровать? Сколько получается погрешность после калибровки (у меня 8МГц точно надо).
2) И тут же: как правильно сделать уходить в LPM режим и просыпаться по таймеру?
3) Как сделать на таймере A системные тики и программный таймер?

Прошу прощения за кучу вопросов, я раньше не работал с MSP430/
controller_m30
Переключение с какой частоты на какую вам нужно?
Я понял только, что XT1 тактируется 8МГц кварцем, и используется в активном режиме. А какая частота нужна для энергосбережения? Можно любую, лишь бы потребление тока было поменьше? Или, всё-таки, нужна определённая частота? Если определённая, то какая?
Сергей Борщ
QUOTE (Make_Pic @ Jul 14 2018, 11:27) *
1) Как его правильно калибровать?
Вам поможет поиск примера применения (application note) на сайте производителя по ключевому слову "DCO".
Make_Pic
Цитата(Сергей Борщ @ Jul 14 2018, 23:35) *
Вам поможет поиск примера применения (application note) на сайте производителя по ключевому слову "DCO".

Да, спасибо Сергей, я там смотрел примеры, но не нашел касательно моего применения, мне нужно установить точно DCO по таймеру от кварца 8МГц. Еще я спросил еще у вас, какая точность установки частоты DCO обеспечивается после калибровки - мне надо не хуже 0.5%. В документации я не нашел этой информации.

Цитата(controller_m30 @ Jul 14 2018, 17:10) *
Переключение с какой частоты на какую вам нужно?
Я понял только, что XT1 тактируется 8МГц кварцем, и используется в активном режиме. А какая частота нужна для энергосбережения? Можно любую, лишь бы потребление тока было поменьше? Или, всё-таки, нужна определённая частота? Если определённая, то какая?

Да, XT1 8MHz, но он не основной, а только для формирования точных временных сигналов от Timer B. Основной калиброванный DCO с частотой 1MHz в основном режиме работы и ~100КHz в режиме низкого потребления.

И тут же - Я в принципе могу использовать XT1 8MHz в основном режиме, но тогда нужно уходить в спячку и по таймеру просыпаться.
Как лучше это сделать?
Сергей Борщ
QUOTE (Make_Pic @ Jul 15 2018, 08:09) *
Еще я спросил еще у вас,
А я сразу написал, что уже давно не работаю с этим семейством. Могу добавить, что не имею ни времени, ни желания скачивать и читать документацию за вас.
QUOTE (Make_Pic @ Jul 15 2018, 08:09) *
какая точность установки частоты DCO обеспечивается после калибровки
Смею предположить, что она определяется шагом перестройки частоты DCO. Этот шаг есть в документации (или его можно высчитать из имеющейся там информации).
controller_m30
Цитата(Make_Pic @ Jul 15 2018, 08:09) *
Да, XT1 8MHz, но он не основной, а только для формирования точных временных сигналов от Timer B. Основной калиброванный DCO с частотой 1MHz в основном режиме работы и ~100КHz в режиме низкого потребления.

Если не ошибаюсь, DCO и так калиброван на заводе на частоту 1МГц. Контроллер стартует на этой частоте сразу после сброса. Но насколько она стабильная, надо смотреть в даташите на контроллер. Частота DCO зависит от температуры и напряжения питания, и поэтому может "уплыть" в процессе работы.

Чтоб перевести DCO на другую частоту, нужно сначала переключить MCLK на другой источник тактирования (например на XT1 или VLO), изменить настройки DCO, дождаться стабилизации частоты, а только потом снова переключить MCLK на тактирование от DCO.
Цитата(Make_Pic @ Jul 15 2018, 08:09) *
И тут же - Я в принципе могу использовать XT1 8MHz в основном режиме, но тогда нужно уходить в спячку и по таймеру просыпаться.
Как лучше это сделать?

Для перехода в режим LPMx у MSP430 есть удобное управление из регистра статуса SR. Там аж четыре бита для отключения тактовых генераторов и самого процессора.
Удобство в том, что при пробуждении процессора ото сна по прерыванию, регистр SR сохраняется в стеке вместе со всеми установками режима LPMx, а при возврате из прерывания (по команде RETI) значение SR восстанавливается из стека, и контроллер снова погружается в сон, без лишних программных усилий.
k155la3
Цитата(Make_Pic @ Jul 12 2018, 19:48) *
. . . для низкого потребления тока . . .
если принципиально потребление, может использовать VLO ?
DCO включается быстро, чего нельзя сказать о внешнем кварце на 8 MHz (раскачка и выход "на режим" порядка несколькизх миллисекунд).
Относительную стабильность генератора возможно получить при использовании внешнего кварца 32 кГц и непрерывном режиме.
Для "форсажа" переводить на тактирование от DCO.
---
Конкретный код управления этим контроллером, для узла тактирования и LPM, можете посмотреть в пакете примеров или в DriverLib на это F2xx семейство.
mspware (здесь "все в одном", но есть и "персональный" пакет только для F2xx 100-200 кБ)
---
Если вопрос стоимости контроллера не принципиален, более гибкие и удобные режимы LPM возможно реализовывать на F5xx.
Мы используем LPM4, один кварц на 32 кГц + DCO/FLL (от 32 кГц), за счет этого из схемы был исключен ВЧ-кварц. MSP430F5438A
---
ps - калибровка DCO
Если процесс калибровки в этом процессоре аналогичен F2618, то эта процедура базируется на LF кварце 32 кГц и длиться 10-20 секунд (уже не помню точно).
Процедура калибровки приведена в качестве примера в "пакете" для F26XX (наверное и для F22xx тоже). Уход частоты - см. таблицы в даташите на
конкретный чип, F2274. Короче, это "костыль", и частота будет гулять от температуры и напряжения в любом случае для RC.
Надеяться на стабильность в этом режиме я бы не стал.

Make_Pic
Цитата(k155la3 @ Jul 15 2018, 19:36) *
если принципиально потребление, может использовать VLO ?
DCO включается быстро, чего нельзя сказать о внешнем кварце на 8 MHz (раскачка и выход "на режим" порядка несколькизх миллисекунд).
Относительную стабильность генератора возможно получить при использовании внешнего кварца 32 кГц и непрерывном режиме.
Для "форсажа" переводить на тактирование от DCO.
---
...
Мы используем LPM4, один кварц на 32 кГц + DCO/FLL (от 32 кГц), за счет этого из схемы был исключен ВЧ-кварц. MSP430F5438A
---
ps - калибровка DCO
Если процесс калибровки в этом процессоре аналогичен F2618, то эта процедура базируется на LF кварце 32 кГц и длиться 10-20 секунд (уже не помню точно).
Процедура калибровки приведена в качестве примера в "пакете" для F26XX (наверное и для F22xx тоже). Уход частоты - см. таблицы в даташите на
конкретный чип, F2274. Короче, это "костыль", и частота будет гулять от температуры и напряжения в любом случае для RC.
Надеяться на стабильность в этом режиме я бы не стал.

Уже схема и плата в производстве - выбора нет, есть резонатор 8МГц на XT1. выход на режим единицы мс терпимо, а вот калибровка в 10-20 секунд это не пойдет. Тогда может мерить частоту DCO в режиме XT1 8МГц и потом уже при использовании DCO менять значения таймера с учетом ухода частоты для формирования более менее точных временных интервалов?
Этот 2274 выбран только из за операциоников и возможности работы на -55 град. С
k155la3
Калибровку имел ввиду ту, которая приведена в аппноте Ti. Меня это время вполне устраивало, я даже особо не разбирался в сути ее работы.
Там она базируется на 32кГц, но думаю можно без проблем использовать (переделать) и на 8 MHz.
Возможно реально соптимизировать до нескольких секунд. Выполнять калибровку в процессе эксплуатации, думаю, не потребуется. Потребуется периодическая подстройка частоты по заранее вычисленным в процессе калибровки коэффициентам в функции коррекции-подстройки частоты.
Все зависит от допуска на "удержание" частоты DCO. которую Вы желаете получить. Это ф-ия от температуры и напряжения питания.
См. в док. на процессор, есть ли в ADC канал встроенного термодатчика и замера питания процессора. Если есть - эту инф. можно использовать для
ф-ии коррекции частоты в процессе работы. Правда с самой функцией не совсем просто, IMHO. Может у Ti есть таблица коэффициентов коррекции для температуры и напряжения питания, а может и готовая функция+алгоритм подстройки. Если нет - придется проделать "лабораторную работу".
--
А какой допуск на частоту DCO ? (если для USART - и скорость маленькая - менее 4800 - то подстройка частоты возможно и не потребуется. При высокой частоте DCO)

Make_Pic
1) Если я тактирую периферию - TIMER A и B от SMCLK кварца 8МГц, а MCLK - процессор от DCO 250кГц? насколько много будет потреблять кварц и тактируемые таймеры - сколько добавится потребляемый ток к 250мкА процессора?
2) Вроде как частоты асинхронные от кварца и тактирование процессора - как правильно считывать состояние TAR регистра?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.