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

    

Переключение XT1 <-> DCO Как сделать?

Подскажите как лучше сделать в программе периодическое переключение в DCO с низкой частотой для низкого потребления тока ~250мкА в режим внешнего кварца 8МГц для стабильности и точности в широком диапазоне температур. И потом обратно в низкое потребление. Остановка процессора не устраивает.

Для MSP430F2274.

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


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

Уже давно с ними не работаю, но, помнится, бла возможность запитать от XT1 какой-нибудь из таймеров и сделать на нем периодическую калибровку DCO. В остальное время XT1 глушить. Тактироваться всегда от DCO.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Уже давно с ними не работаю, но, помнится, бла возможность запитать от XT1 какой-нибудь из таймеров и сделать на нем периодическую калибровку DCO. В остальное время XT1 глушить. Тактироваться всегда от DCO.

1) Как его правильно калибровать? Сколько получается погрешность после калибровки (у меня 8МГц точно надо).

2) И тут же: как правильно сделать уходить в LPM режим и просыпаться по таймеру?

3) Как сделать на таймере A системные тики и программный таймер?

 

Прошу прощения за кучу вопросов, я раньше не работал с MSP430/

 

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


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

Переключение с какой частоты на какую вам нужно?

Я понял только, что XT1 тактируется 8МГц кварцем, и используется в активном режиме. А какая частота нужна для энергосбережения? Можно любую, лишь бы потребление тока было поменьше? Или, всё-таки, нужна определённая частота? Если определённая, то какая?

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


Ссылка на сообщение
Поделиться на другие сайты
1) Как его правильно калибровать?
Вам поможет поиск примера применения (application note) на сайте производителя по ключевому слову "DCO".

 

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


Ссылка на сообщение
Поделиться на другие сайты
Вам поможет поиск примера применения (application note) на сайте производителя по ключевому слову "DCO".

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

 

Переключение с какой частоты на какую вам нужно?

Я понял только, что XT1 тактируется 8МГц кварцем, и используется в активном режиме. А какая частота нужна для энергосбережения? Можно любую, лишь бы потребление тока было поменьше? Или, всё-таки, нужна определённая частота? Если определённая, то какая?

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

 

И тут же - Я в принципе могу использовать XT1 8MHz в основном режиме, но тогда нужно уходить в спячку и по таймеру просыпаться.

Как лучше это сделать?

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


Ссылка на сообщение
Поделиться на другие сайты
Еще я спросил еще у вас,
А я сразу написал, что уже давно не работаю с этим семейством. Могу добавить, что не имею ни времени, ни желания скачивать и читать документацию за вас.

какая точность установки частоты DCO обеспечивается после калибровки
Смею предположить, что она определяется шагом перестройки частоты DCO. Этот шаг есть в документации (или его можно высчитать из имеющейся там информации).

 

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


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

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

 

Чтоб перевести DCO на другую частоту, нужно сначала переключить MCLK на другой источник тактирования (например на XT1 или VLO), изменить настройки DCO, дождаться стабилизации частоты, а только потом снова переключить MCLK на тактирование от DCO.

И тут же - Я в принципе могу использовать XT1 8MHz в основном режиме, но тогда нужно уходить в спячку и по таймеру просыпаться.

Как лучше это сделать?

Для перехода в режим LPMx у MSP430 есть удобное управление из регистра статуса SR. Там аж четыре бита для отключения тактовых генераторов и самого процессора.

Удобство в том, что при пробуждении процессора ото сна по прерыванию, регистр SR сохраняется в стеке вместе со всеми установками режима LPMx, а при возврате из прерывания (по команде RETI) значение SR восстанавливается из стека, и контроллер снова погружается в сон, без лишних программных усилий.

 

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


Ссылка на сообщение
Поделиться на другие сайты
. . . для низкого потребления тока . . .
если принципиально потребление, может использовать 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.

Надеяться на стабильность в этом режиме я бы не стал.

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
если принципиально потребление, может использовать 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 град. С

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


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

Калибровку имел ввиду ту, которая приведена в аппноте Ti. Меня это время вполне устраивало, я даже особо не разбирался в сути ее работы.

Там она базируется на 32кГц, но думаю можно без проблем использовать (переделать) и на 8 MHz.

Возможно реально соптимизировать до нескольких секунд. Выполнять калибровку в процессе эксплуатации, думаю, не потребуется. Потребуется периодическая подстройка частоты по заранее вычисленным в процессе калибровки коэффициентам в функции коррекции-подстройки частоты.

Все зависит от допуска на "удержание" частоты DCO. которую Вы желаете получить. Это ф-ия от температуры и напряжения питания.

См. в док. на процессор, есть ли в ADC канал встроенного термодатчика и замера питания процессора. Если есть - эту инф. можно использовать для

ф-ии коррекции частоты в процессе работы. Правда с самой функцией не совсем просто, IMHO. Может у Ti есть таблица коэффициентов коррекции для температуры и напряжения питания, а может и готовая функция+алгоритм подстройки. Если нет - придется проделать "лабораторную работу".

--

А какой допуск на частоту DCO ? (если для USART - и скорость маленькая - менее 4800 - то подстройка частоты возможно и не потребуется. При высокой частоте DCO)

 

 

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


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

1) Если я тактирую периферию - TIMER A и B от SMCLK кварца 8МГц, а MCLK - процессор от DCO 250кГц? насколько много будет потреблять кварц и тактируемые таймеры - сколько добавится потребляемый ток к 250мкА процессора?

2) Вроде как частоты асинхронные от кварца и тактирование процессора - как правильно считывать состояние TAR регистра?

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация