реклама на сайте
подробности

 
 
> Переключение XT1 <-> DCO Как сделать?, в режиме XT1 точность, а в режиме DCO микропотребление
Make_Pic
сообщение Jul 12 2018, 16:48
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Подскажите как лучше сделать в программе периодическое переключение в DCO с низкой частотой для низкого потребления тока ~250мкА в режим внешнего кварца 8МГц для стабильности и точности в широком диапазоне температур. И потом обратно в низкое потребление. Остановка процессора не устраивает.
Для MSP430F2274.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jul 12 2018, 19:49
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jul 14 2018, 08:27
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Цитата(Сергей Борщ @ Jul 12 2018, 23:49) *
Уже давно с ними не работаю, но, помнится, бла возможность запитать от XT1 какой-нибудь из таймеров и сделать на нем периодическую калибровку DCO. В остальное время XT1 глушить. Тактироваться всегда от DCO.

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

Прошу прощения за кучу вопросов, я раньше не работал с MSP430/
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 14 2018, 19:35
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Make_Pic @ Jul 14 2018, 11:27) *
1) Как его правильно калибровать?
Вам поможет поиск примера применения (application note) на сайте производителя по ключевому слову "DCO".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jul 15 2018, 05:09
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Цитата(Сергей Борщ @ 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 в основном режиме, но тогда нужно уходить в спячку и по таймеру просыпаться.
Как лучше это сделать?
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jul 15 2018, 11:45
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(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 восстанавливается из стека, и контроллер снова погружается в сон, без лишних программных усилий.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th August 2025 - 00:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016