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

 
 
 
Reply to this topicStart new topic
> Переключение 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
Сергей Борщ
сообщение Jul 12 2018, 19:49
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 438
Регистрация: 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
controller_m30
сообщение Jul 14 2018, 13:10
Сообщение #4


Местный
***

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



Переключение с какой частоты на какую вам нужно?
Я понял только, что XT1 тактируется 8МГц кварцем, и используется в активном режиме. А какая частота нужна для энергосбережения? Можно любую, лишь бы потребление тока было поменьше? Или, всё-таки, нужна определённая частота? Если определённая, то какая?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 14 2018, 19:35
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 438
Регистрация: 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
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 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
Сергей Борщ
сообщение Jul 15 2018, 07:09
Сообщение #7


Гуру
******

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



QUOTE (Make_Pic @ Jul 15 2018, 08:09) *
Еще я спросил еще у вас,
А я сразу написал, что уже давно не работаю с этим семейством. Могу добавить, что не имею ни времени, ни желания скачивать и читать документацию за вас.
QUOTE (Make_Pic @ Jul 15 2018, 08:09) *
какая точность установки частоты DCO обеспечивается после калибровки
Смею предположить, что она определяется шагом перестройки частоты 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
controller_m30
сообщение Jul 15 2018, 11:45
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 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
k155la3
сообщение Jul 15 2018, 15:36
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 112
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(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.
Надеяться на стабильность в этом режиме я бы не стал.

Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jul 15 2018, 20:24
Сообщение #10


Знающий
****

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



Цитата(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 град. С
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jul 16 2018, 08:36
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 112
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



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

Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Jul 28 2018, 04:39
Сообщение #12


Знающий
****

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



1) Если я тактирую периферию - TIMER A и B от SMCLK кварца 8МГц, а MCLK - процессор от DCO 250кГц? насколько много будет потреблять кварц и тактируемые таймеры - сколько добавится потребляемый ток к 250мкА процессора?
2) Вроде как частоты асинхронные от кварца и тактирование процессора - как правильно считывать состояние TAR регистра?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th September 2018 - 08:13
Рейтинг@Mail.ru


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