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

 
 
> STM32F407 RTC, Работа с миллисекундами
mantech
сообщение Feb 3 2014, 11:05
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Приветствую.

Есть одна нетривиальная задача - нужен таймер с разрешением 0.01 сек

Посмотрел хитрый блок часов в стм, и понял что не все так просто crying.gif

Во первых - кварц с частотой 32768 на 100 нацело не делится.

Во вторых, счетчик RTC_SSR прибавляется на 1 каждые 1\256 сек, что тоже не то-не се.

Вопрос - как-то можно сделать что-то более-менее похожее, исходя из всего этого, или решение только одно - надо где-то искать кварц на 36КГц?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobok0
сообщение Feb 3 2014, 11:17
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(mantech @ Feb 3 2014, 15:05) *
...нужен таймер с разрешением 0.01 сек...искать кварц на 36КГц?


я что то не догоняю или....

у Вас камень кварцованный(в правильном раскладе) с частотой (вдумайтесь) 168 милионов раз в секунду.
Точность какая при этом у Вас получается? Свои 0,01 Вы сможете смело и достаточно точно получить на любом(практически) таймере поделив
всё это хозяйство на нужное число.будет у вас константа смещение на какую нить там сотую миллионную - Вы такую точность
даже не выбирете ничем - ни каналами ввода выовода, ни пинами, ни мат обработкой...

или???
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 3 2014, 11:25
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(kolobok0 @ Feb 3 2014, 15:17) *
я что то не догоняю или....


А в курсе, что камень на своих 168мегах.... в выкл. состоянии не работает?? А часы идут от батарейки? wink.gif

Вот и мне нужно, чтоб они шли не только, когда есть питание..

Ясень пень, что на обычном таймере я могу получить любую выдержку, только она будет несинхронна со встроенными часами.

ЗЫ. Сейчас почитал даташит повнимательнее - оказывается там регистр синхронного делителя 15 бит и плюс еще асинхронный 7 бит (я раньше думал, что он - это старшая часть синхроного biggrin.gif )

Отсюда вопрос - зачем вообще этот асинхронный делитель? Может сделать проще - задать его значение=1 (0 там помоему нельзя), итого получаем на входе синхронного 16384КГц, я так понимаю, и на счетчик миллисекунд будет поступать эта частота, а ее потом уже и делим на соотв. коефф. чтоб получить мс?

Сообщение отредактировал mantech - Feb 3 2014, 11:55
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 3 2014, 12:27
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(mantech @ Feb 3 2014, 15:25) *
А в курсе, что камень на своих 168мегах.... в выкл. состоянии не работает?? А часы идут от батарейки? wink.gif
Вот и мне нужно, чтоб они шли не только, когда есть питание..
Ясень пень, что на обычном таймере я могу получить любую выдержку, только она будет несинхронна со встроенными часами.

Думаю, Вам стоит еще раз аккуратно объяснить чего Вы желаете.
Нужны энергонезависимые часы с шагом 0.01 сек?
От кварца с частотой 32768Гц не получите, ибо делитель должен быть дробный!
Еще вопросы?
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 3 2014, 12:46
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(adnega @ Feb 3 2014, 16:27) *
Думаю, Вам стоит еще раз аккуратно объяснить чего Вы желаете.
Нужны энергонезависимые часы с шагом 0.01 сек?
От кварца с частотой 32768Гц не получите, ибо делитель должен быть дробный!
Еще вопросы?



Хорошо, попробую biggrin.gif

1) нужны часы, которые идут от батарейки

2) разрешающая способность 0.01 сек (точность +-10мс)

Я попробовал так - поставил асинхр. делитель в 0, а синхр в 32767. В рез-те получил тот же 1 Гц на выходе, и декремент регистра миллисек с частотой кварца. рассогласование частоты при делении - 68Гц,
т.е. абс. точность получается при частоте 32700Гц, в принципе - сойдет.

Правильно-ли я все понял, и если дел-ль=0 это нормально, или так делать нельзя?
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 3 2014, 14:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(mantech @ Feb 3 2014, 16:46) *
Хорошо, попробую biggrin.gif

1) нужны часы, которые идут от батарейки

2) разрешающая способность 0.01 сек (точность +-10мс)

Я попробовал так - поставил асинхр. делитель в 0, а синхр в 32767. В рез-те получил тот же 1 Гц на выходе, и декремент регистра миллисек с частотой кварца. рассогласование частоты при делении - 68Гц,
т.е. абс. точность получается при частоте 32700Гц, в принципе - сойдет.

Правильно-ли я все понял, и если дел-ль=0 это нормально, или так делать нельзя?

Фраза "When both prescalers are used, it is recommended to configure the asynchronous prescaler
to a high value to minimize consumption." из UM говорит, что если используются оба делителя, то
рекоментуется в асинхронный заносить бОльшие значения для уменьшения энергопотребления.

Надеюсь, на Ваш вопрос ответил. Хотя мне до сих пор не понятно кому "нужны идущие от батарейки часы"
с такой чремерной разрешающей способностью и "никакой" точностью?
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 3 2014, 16:34
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(adnega @ Feb 3 2014, 18:39) *
Фраза "When both prescalers are used, it is recommended to configure the asynchronous prescaler
to a high value to minimize consumption." из UM говорит, что если используются оба делителя, то
рекоментуется в асинхронный заносить бОльшие значения для уменьшения энергопотребления.


Странно однако, это я про делитель...

А второе - что значит с никакой точностью? Я написал - погрешность не более 0.01 сек, как-то подругому писать? biggrin.gif

Да, часы должны работать от батарейки, потребление, конечно, чем меньше-тем лучше, высчитывать миллисекунды из 1\128 это как? Можете объяснить?

Цитата(adnega @ Feb 3 2014, 19:15) *
Почему бы не запустить RTC с обычным секундным интервалом и алгоритмически вычислять сотые на основании RTC->SSR?
Что за "величины" будут в RTC->TR и RTC->DR и что с ними можно сделать вопрос тоже открытый?


Он именно так и работает - с секундным интервалом, иначе сами часы будут считать неправильно, логично?

Просто с точки зрения математики - чем большее число делить на 100, тем точнее результат, например 32768 \ 100 получаем 327

Для проверки 327*100 = 32700, т.е. неточность 68Гц.
Если делитель сделаем больше , скажем 16, до частоты 2048Гц, то получаем 2048 \ 100 = 20

проверяем 20*100*16 = 32000, т.е. мы "отстаем " уже на 768Гц, разница ощутима?

Цитата(adnega @ Feb 3 2014, 19:15) *
Зачем это надо автор отказывается объяснять.


В смысле зачем? Нужны часы для спортивных тренировок.

Цитата(adnega @ Feb 3 2014, 18:39) *
из UM говорит, что если используются оба делителя, то
рекоментуется в асинхронный заносить бОльшие значения для уменьшения энергопотребления.


Замерил потребление, как было 1.5 мкА, при асинхр. делителе 128(по умолчанию), так и при полностью откл. делителе.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mantech   STM32F407 RTC   Feb 3 2014, 11:05
- - adnega   Цитата(mantech @ Feb 3 2014, 15:05) Есть ...   Feb 3 2014, 11:15
- - SyncLair   в чём проблема? просыпайтесь каждые 1/256 секунды...   Feb 3 2014, 14:55
|- - adnega   Цитата(SyncLair @ Feb 3 2014, 18:55) в чё...   Feb 3 2014, 15:15
- - Golikov A.   вопрос в том насколько плавает кварц, и насколько ...   Feb 3 2014, 17:29
|- - mantech   Цитата(Golikov A. @ Feb 3 2014, 21:29) во...   Feb 3 2014, 17:51
|- - adnega   Цитата(mantech @ Feb 3 2014, 21:51) Это в...   Feb 3 2014, 19:25
|- - mantech   Цитата(adnega @ Feb 3 2014, 23:25) Делайт...   Feb 3 2014, 19:42
|- - adnega   Цитата(mantech @ Feb 3 2014, 23:42) Это п...   Feb 3 2014, 20:34
|- - mantech   Цитата(adnega @ Feb 4 2014, 00:34) Формал...   Feb 4 2014, 04:25
- - Golikov A.   да можно делить на сколько угодно больше 100 Прост...   Feb 3 2014, 18:27


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

 


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


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