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

 
 
 
Reply to this topicStart new topic
> RC генератор на STM (генератор с переменным конденсатором)
rtype
сообщение May 18 2017, 20:07
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 23-11-14
Пользователь №: 83 801



Hei!

Помогите пожалуйста с идеями, как реализовать генератор на STM(8,32 - не важно) с внешним переменным конденсатором.

блок схема примерно такая:



конденсатором определяется частота генератора, которая, в свою очередь, измеряется таймерами и пр.
Сделать RC цепочку - запускать и останавливать таймер или сбрасывать его по прерыванию весьма нестабильный вариант, я уже пробовал.
использовать внешние элементы для генератора - оно уже так работает, хочу убрать всю схему внутрь процессора.
Спасибо!

Сообщение отредактировал rtype - May 18 2017, 20:09
Go to the top of the page
 
+Quote Post
firew0rker
сообщение May 19 2017, 03:08
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 11-07-12
Из: Новокузнецк
Пользователь №: 72 716



Тактирование системной шины SYSCLK можно настроить от встроенного генератора HSI (8МГц). К генератору HSЕ вместо кварцевого резонатора подключить по схеме замещения внешний переменный конденсатор с индуктивностью.

В Clock configuration register (RCC_CFGR) настроить MCO: Microcontroller clock output на HSE clock select. Это будет выход генератора. Его можно соединить со входом таймера, чтобы мерить частоту.

Кроме того, RTC может тактироваться от внешнего HSE (с делителем /128) и выдавать частоту делённую на 64 на выход CCO: Calibration clock output.
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение May 19 2017, 03:18
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 16-10-15
Пользователь №: 88 894



Это лишено практического смысла.

Есть вариант внешнего гуна на несколько диапазонов, с классическим управлением через два таймера с накоплением и одновременным сбросом. Вариант имеет право на жизнь в случае использования stm32f105-107 и кварца OXCO. Получится прибор с рыночной стоимостью около 500к рубликов, и запредельной точностью фазы и частоты. Выше только атомный стандарт.
Но зачем такое дома? После постановки задачи и условий - можно начинать закупаться детальками.
Можно сделать всё то-же самое из подножного хлама, качество будет соответствующим, но программное обеспечение практически инцидентным с дорогим вариантом.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 19 2017, 06:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 296
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AVI-crak @ May 19 2017, 05:18) *
Есть вариант внешнего гуна на несколько диапазонов,

Как я понял - ТС-у нужно просто изучить таймеры своего МК. Для этого есть юзермануал на сайте STM.
Плюс - изучить работу PLL.
Go to the top of the page
 
+Quote Post
rtype
сообщение May 22 2017, 17:09
Сообщение #5





Группа: Новичок
Сообщений: 3
Регистрация: 23-11-14
Пользователь №: 83 801



Цитата(firew0rker @ May 19 2017, 06:08) *
Тактирование системной шины SYSCLK можно настроить от встроенного генератора HSI (8МГц). К генератору HSЕ вместо кварцевого резонатора подключить по схеме замещения внешний переменный конденсатор с индуктивностью.

В Clock configuration register (RCC_CFGR) настроить MCO: Microcontroller clock output на HSE clock select. Это будет выход генератора. Его можно соединить со входом таймера, чтобы мерить частоту.

Кроме того, RTC может тактироваться от внешнего HSE (с делителем /128) и выдавать частоту делённую на 64 на выход CCO: Calibration clock output.


трогать тактовую нет резона - она нужна для измерения измеряемого параметра.
Таймер перепускать я пробовал, но, стабильность такого варианта оказалась хуже, чем измерять внешний генератор на двух инверторах:
повторяемость результата измерения процентов 70, а с генератором около 95%.
Изменение частоты внешнего генератора у меня 10-50kHz.
предполагаемый процессор - stm8f003 или stm32f030.

Сообщение отредактировал rtype - May 22 2017, 17:09
Go to the top of the page
 
+Quote Post
firew0rker
сообщение May 23 2017, 09:35
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 11-07-12
Из: Новокузнецк
Пользователь №: 72 716



Цитата(rtype @ May 23 2017, 00:09) *
трогать тактовую нет резона - она нужна для измерения измеряемого параметра.

Вместо внешнего генератора на двух инверторах можно использовать встроенный генератор микроконтроллера. Для частот 10-50kHz подойдёт LSE. Вместо часового кварца между выв. OSC32_IN и OSC32_OUT включить контур с внешним переменным конденсатором и катушкой. Мерить частоту относительно тактовой, как описано в «Calibration of the HSI» Reference manual, только наоборот, частоту HSI принять константой и вычислять частоту LSE.
Go to the top of the page
 
+Quote Post
rtype
сообщение May 23 2017, 19:05
Сообщение #7





Группа: Новичок
Сообщений: 3
Регистрация: 23-11-14
Пользователь №: 83 801



Цитата(firew0rker @ May 23 2017, 12:35) *
Вместо внешнего генератора на двух инверторах можно использовать встроенный генератор микроконтроллера. Для частот 10-50kHz подойдёт LSE. Вместо часового кварца между выв. OSC32_IN и OSC32_OUT включить контур с внешним переменным конденсатором и катушкой. Мерить частоту относительно тактовой, как описано в «Calibration of the HSI» Reference manual, только наоборот, частоту HSI принять константой и вычислять частоту LSE.


Спасибо!
катушки у меня нет за ненадобностью - только RC генератор, где конденсатор (емкость и ESR) зависит от измеряемого параметра. генератор конечно можно сократить до пары транзисторов.
Ваш вариант вполне годный для stm32, где RTC есть, но и тогда часы перестанут работать, что тоже плохо, энергопотребление сложнее снизить будет.
основной кандидат - stm8s003: я уже пробовал STM8S touch sensing key lib - там интересный алгоритм измерения емкости, но тоже не смог добиться более-менее повторяемых результатов (емкость конденсатора у меня на порядки больше, чем для touch key). как-то модифицировать эту библиотеку сил я в себе не нашел, т.к. результат не понятен, а методика с частотой генератора уже работает.
Работасть с таймерами и прерываниями тоже не получилось с годным результатом.
Go to the top of the page
 
+Quote Post
linuxbergi
сообщение Вчера, 05:45
Сообщение #8





Группа: Новичок
Сообщений: 2
Регистрация: 15-05-17
Пользователь №: 97 085



Timer в STM32 может одновременно генерировать сигнал и измерять частоту. Один канал настраиваете на генерирование, а на другой
канал поступают импульсы для измерения пропущенные через RC цепочку. Импульсы пропускаете через RC цепочку, через триггер Шмидта и измеряете длительность импульса. Вообще вариантов может быть много.
Go to the top of the page
 
+Quote Post
Obam
сообщение Вчера, 10:02
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 548
Регистрация: 14-11-14
Пользователь №: 83 663



А почему до сих пор не прозвучало заветное ключевое слово "capture"?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th May 2017 - 06:49
Рейтинг@Mail.ru


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