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

 
 
> STM32F0 + датчик Холла SCM Sunfab
arthedza
сообщение Dec 1 2014, 16:57
Сообщение #1


Участник
*

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



Доброго времени суток всем! Товарищи, нужна ваша помощь.
Буду краток. В универе проходил курс АВРок, настало время диплома. Диплом делаю на предприятии (и кураторы тоже от предприятия), в виду этого приходится на ходу осваивать STM32F0. Да и в универском курсе ни разу не сталкивался с датчиками. Пока имеется один вопрос, с остальным вроде разобрался. Он заключается в следующем: как мне подключать сей
датчик скорости на эффекте Холла к СТМке? В программе MicroXplorer есть такой пунктик интересный — XORED Inputs Hall Sensor Interface (3 ноги под это дело заводится, 3 канала таймера). Что, все три ноги датчика на таймер МК подавать? Или лучше просто задействовать один канал таймера в режиме input capture? Если нужна дополнительная инфа — пишите, я укажу все, что знаю. Вот что написано в инсайдерском руководстве:

Цитата
5.1.4.2.2. Интерфейс датчика Холла
Каждый из таймеров, в т.ч. и расширенный, разработан с учетом простоты
подключения к датчику Холла, предназначенного для измерения угловой частоты
вращения электродвигателя. Первые три вывода захвата каждого таймера можно связать
с каналом 1 через логический элемент "исключающее ИЛИ". В этом случае, по мере
вращения двигателя и прохождения возле каждого датчика, в канале будет
генерироваться событие захвата. Это приведет к копированию текущего состояния
таймера в регистр захвата канала, а также к сбросу таймера. Таким образом, значение
счетчика, которое окажется в регистре захвата, можно пересчитать в частоту вращения
электродвигателя.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Dec 4 2014, 09:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну при такой частоте у вас ничего просто не выйдет....

вот смотрите вы хотите V1 = 1800 об/ми - это 4.5 импульса

пусть мотор крутиться со скоростью 1700 об/ми
это дает 1700/60*30/1000*5 = 4.25 импульсов
допустим вы ничего не меняете
в первые 5 м секу вы получили 4 импульса - надо увеличить скорость
0.25 осталось на след такт, в след раз будет 4.5, целое снова 4 - надо увеличить скорость
4.75 - целое 4, надо увеличить
5 - опачки перебор, надо уменьшить
а потом опять 4 - надо увеличить....


А теперь представьте что вы выдаете управляющие воздействия, у 5 импульсов на 5 мСек - это скорость 2000 об/мин, 4 импульса - это 1600, то есть в схеме отлова мгновенной скорости 1600 - 2000 оборотов не различимы, а любые попытки управления будут кидать ваш мотор от 1600 до 2000... Система войдет в генерацию и будет пипец.....


вам надо существенно увеличить точность, а это можно сделать только увеличив время выборки....

к примеру мотор вращается с частотой 1700 об/мин, это 4.25 имп в 5 мСек, 0.25 - теряется
если же взять 20 мСек, то это ровно 4.25*4=17 импульсов и потерь нет... если собирать за 50 мСек то вы сможете обрабатывать с точностью до 0.1 на те же 5 мСек...

не важно как быстро вы можете изменить ШИМ, важно насколько точно вы можете вычислить изменение... При работе с тактами 5 мСек, вам придется делать очень плавные интеграционные коэффициенты и нулевые пропорциональные, и что в итоге? получите очень медленное регулирование, хоть и с частыми поправками, то есть фильтр перейдет не на измерение, а на регулирование....


Я предлагаю такое решение, которое здорово повысит точность... (ну как я... я подглядел его в ссылке что давали вам вышеsm.gif)

Импульсы заводите на клок таймера, выход таймера заводите на капчу второго таймера... Задаете первому таймеру интервал счета 5 (например), а второй таймер запускаете просто вперед на максимальной частоте от клока проца.

Как это будет работать....

импульсы идут и заставляют считать первый таймер, как только таймер досчитает до 5, он закапчит сигнал второго таймера и в итоге, вы получите сколько тактов проц пошло на 5 импульсов. То есть вы будите знать время за которое прошло 5 импульсов с точностью +-1 клок проца, что значительно выше чем число импульсов за 5 мСек с точностью +-1 импульс...

надо предусмотреть обработку переполнения 2 таймера, а так же надо учесть если 5 импульсов не поступят за какое-то понятное время, что мотор стоит, возможно для этого нужен еще таймер, или проверять время от времени счетчик 1 таймера в общем цикле, и если ничего не меняется бить тревогу... проверку можно делать с вашими любимыми 5 мСек интервалами...
Go to the top of the page
 
+Quote Post
arthedza
сообщение Dec 9 2014, 08:13
Сообщение #3


Участник
*

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



Цитата(Golikov A. @ Dec 4 2014, 11:55) *
Я предлагаю такое решение, которое здорово повысит точность...


Немного погуглил в свободное время и нарыл чуток информации.
Для измерения частоты существует 2 метода: метод захвата и метод "временных ворот".
Для метода захвата достаточно одного таймера, имеющего прерывания по захвату и по переполнению. Числом переполнений определяется требуемое время измерения, а захватами -- начало и конец счета (программным счетчиком) целого числа периодов измеряемой частоты.
Метод "временных ворот" реализуется на двух таймерах. Один для формирования базы времени, другой для счета периодов измеряемой частоты. В этом случае нужно как можно точнее формировать "временные ворота". Для МК минимальная ширина "временных ворот" ограничена машинным циклом, т.е. периодом через который CPU может опрашивать состяние входного вывода.
Каким методом считать импульсы проще?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- arthedza   STM32F0 + датчик Холла SCM Sunfab   Dec 1 2014, 16:57
- - Golikov A.   ну просто если брать мотор для которого положение ...   Dec 1 2014, 17:29
|- - arthedza   Цитата(Golikov A. @ Dec 1 2014, 19:29) ну...   Dec 1 2014, 18:01
|- - kovigor   Цитата(arthedza @ Dec 1 2014, 22:01) Напр...   Dec 1 2014, 18:05
- - kovigor   Цитата(arthedza @ Dec 1 2014, 20:57) Что,...   Dec 1 2014, 17:33
- - Golikov A.   ЦитатаС датчика идет 4 провода: питание, земля и д...   Dec 1 2014, 18:26
|- - arthedza   Цитата(Golikov A. @ Dec 1 2014, 20:24) по...   Dec 1 2014, 18:39
- - Golikov A.   Вот.... теперь вопрос в датчике стоят 2 магнита и ...   Dec 1 2014, 19:28
|- - arthedza   Цитата(Golikov A. @ Dec 1 2014, 21:28) Во...   Dec 1 2014, 19:51
||- - Сергей Борщ   Цитата(arthedza @ Dec 1 2014, 21:51) Дава...   Dec 2 2014, 07:27
||- - arthedza   Цитата(Сергей Борщ @ Dec 2 2014, 09:27) А...   Dec 2 2014, 07:39
|- - arthedza   Цитата(Golikov A. @ Dec 1 2014, 21:28) Во...   Dec 2 2014, 07:30
|- - Сергей Борщ   Цитата(arthedza @ Dec 2 2014, 09:30) кана...   Dec 2 2014, 07:34
- - Golikov A.   Ну тут достаточно применить смекалку: у вас остал...   Dec 2 2014, 08:34
|- - arthedza   Цитата(Golikov A. @ Dec 2 2014, 10:34) .....   Dec 2 2014, 09:23
|- - adnega   Цитата(arthedza @ Dec 2 2014, 13:23) Прос...   Dec 3 2014, 08:03
|- - arthedza   Цитата(adnega @ Dec 3 2014, 10:03) Странн...   Dec 3 2014, 10:34
|- - adnega   Цитата(arthedza @ Dec 3 2014, 14:34) Част...   Dec 3 2014, 11:12
|- - arthedza   Цитата(adnega @ Dec 3 2014, 13:12) Считае...   Dec 3 2014, 11:48
|- - arthedza   Цитата(adnega @ Dec 3 2014, 13:12) Считае...   Dec 4 2014, 07:11
|- - adnega   Цитата(arthedza @ Dec 4 2014, 11:11) Прос...   Dec 4 2014, 07:15
|- - arthedza   Цитата(adnega @ Dec 4 2014, 09:15) Что ж ...   Dec 4 2014, 07:25
|- - adnega   Цитата(arthedza @ Dec 4 2014, 11:25) Или ...   Dec 4 2014, 08:13
|- - arthedza   Цитата(adnega @ Dec 4 2014, 10:13) Мотор ...   Dec 4 2014, 09:24
- - arthedza   Следовательно, подходит вариант второй: подсчет чи...   Dec 2 2014, 11:08
- - Golikov A.   ну строго говоря надо еще понять какого уровня изм...   Dec 2 2014, 19:24
- - Сергей Борщ   А еще обратите внимание на вот это сообщение: http...   Dec 2 2014, 21:00
- - Golikov A.   Спасибо, интересная тема. Правда пришлось нескольк...   Dec 2 2014, 23:31
- - Golikov A.   периодичность опроса и время реакции системы также...   Dec 3 2014, 08:49
- - Golikov A.   1000-1500 - это 150 - 225 импульсов в 5мСек 6.666...   Dec 3 2014, 13:05
|- - adnega   Цитата(Golikov A. @ Dec 3 2014, 17:05) Но...   Dec 3 2014, 14:16
|- - arthedza   Цитата(Golikov A. @ Dec 4 2014, 11:55) ну...   Dec 4 2014, 10:16
||- - KnightIgor   Цитата(arthedza @ Dec 4 2014, 12:16) Спас...   Dec 6 2014, 17:13
- - arthedza   Вот появился еще такой вопрос: как можно смоделиро...   Dec 6 2014, 18:01
- - Golikov A.   а чем симулятор то не годиться? в IAR, KEIL есть...   Dec 6 2014, 18:09
|- - arthedza   Цитата(Golikov A. @ Dec 6 2014, 20:09) а ...   Dec 6 2014, 18:15
- - Golikov A.   работайте вы скачайте триальную версию на 30 дней,...   Dec 6 2014, 18:22
|- - arthedza   Цитата(Golikov A. @ Dec 6 2014, 20:22) ра...   Dec 6 2014, 18:24
- - Golikov A.   кнопку тактовую и нажимайте рукой... или с одной ...   Dec 6 2014, 18:33
|- - arthedza   Цитата(Golikov A. @ Dec 6 2014, 20:33) кн...   Dec 6 2014, 18:36
- - Golikov A.   да я в терминал шлю. Раньше был гипертерминал, сей...   Dec 6 2014, 21:01
- - Golikov A.   проще временными воротами точнее методом захвата.....   Dec 9 2014, 09:06
|- - arthedza   Цитата(Golikov A. @ Dec 9 2014, 11:06) пр...   Dec 9 2014, 09:49
- - Golikov A.   ЦитатаПоговорил со своим куратором. Как я понял, н...   Dec 9 2014, 14:52
|- - arthedza   Цитата(Golikov A. @ Dec 9 2014, 16:52) на...   Dec 10 2014, 06:38
|- - arthedza   Цитата(Golikov A. @ Dec 9 2014, 16:52) Вс...   Dec 10 2014, 07:33
- - Golikov A.   да. в прерывании вы только определяете интервалы.....   Dec 10 2014, 07:16
- - Golikov A.   Ну наверное где-то должно быть деление, потому что...   Dec 10 2014, 11:33


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

 


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


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