Например TDA7294

Форум РадиоКот • Просмотр темы - Тахометр на STM32F103
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 22:42:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Тахометр на STM32F103
СообщениеДобавлено: Пт окт 05, 2018 20:34:36 
Первый раз сказал Мяу!

Зарегистрирован: Ср сен 26, 2018 19:25:33
Сообщений: 24
Рейтинг сообщения: 0
Хочу сделать тахометр на STM32F103 и датчике холла 3144. Подскажите как лучше это реализовать. Использовать прерывания или опрашивать ножку МК для обнаружения сигнала прохождения магнита? Как считать интервал времени между прохождением магнита - таймер или RTC?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Пт окт 05, 2018 21:42:09 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: -2
Таймеры STM32F103 поддерживают датчик холла.

KNF18 писал(а):
Как считать интервал времени между прохождением магнита - таймер или RTC?
DWT.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Сб окт 06, 2018 08:32:44 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 2
можно использовать режим захвата в таймере
Цитата:
Режим захвата — это особый режим работы таймера, суть которого в следующем, при изменении логического уровня на определённом выводе микроконтроллера, значение счётного регистра записывается в другой регистр, который именуют регистром захвата.
Для чего это надо?
С помощью этого режима можно измерить длительность импульса или период сигнала.

https://hubstub.ru/stm32/128-stm32-rezhim-zahvata.html
Например, если на счетный вход таймера подана частота 1МГц
60 об/мин = 1 об/сек
за 1 сек при частоте 1МГц в регистр захвата запишется число N=1000000
Считаем обороты:
X об/мин = (1000000/N)*60


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вс окт 07, 2018 20:12:46 
Первый раз сказал Мяу!

Зарегистрирован: Ср сен 26, 2018 19:25:33
Сообщений: 24
Рейтинг сообщения: 0
Спасибо за информацию, попробую разобраться как это реализовать на HAL + CubeMX.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вс окт 07, 2018 20:20:44 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Таймеры STM32F103 поддерживают датчик холла.

KNF18 писал(а):
Как считать интервал времени между прохождением магнита - таймер или RTC?
DWT.



Мурсик, не надо чушь всякую советовать забудь про DWT. И не путай людей. Как всегда :facepalm:

KNF18, не надо никаких калокубов и халов использовать. Если так чешется говнолибы юзать, то хотя бы слой LL юзайте как вы это любите.

Открываем референс мануал и читаем 14.3.18

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Последний раз редактировалось Oxford Вс окт 07, 2018 20:41:20, всего редактировалось 2 раз(а).

Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вс окт 07, 2018 20:38:36 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
неужели нет готовой схемки частотомера на стм? так вот тьахометр это тотже частотомер просто для 4тактного двигла надо умножать частоту на 60х сделать это можно или выбором интевала или умножением средствами мк

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вс окт 07, 2018 20:41:18 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
Oxford писал(а):
Мурсик, не надо чушь всякую советовать забудь про DWT.
Критиковать каждый может, Но совета ТС от вас так и не последовало. Что вы ему посоветуйте именно в контексте измерения времени а не в плате что можно сделать по другому?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вс окт 07, 2018 20:50:23 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
А что критиковать, чушь она и есть чушь.
На таймере все получится аппаратно, а вот DWT в некоторых камнях просто нет.
Это как здесь уже был цЫрк со static , один клоун "обнаружил" и все нубы стали лепить где не поподя.
Так же и с DWT...

Частотомер здесь уже неоднократнь всплывал, простой и весьма действенный. Искать по Reciprocal counter...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вс окт 07, 2018 22:00:26 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
dosikus писал(а):
На таймере все получится аппаратно
Речь именно об измерении времени (ТС еще про RTC писал), а не о режиме захвата таймера. С ним все понятно.

dosikus писал(а):
Так же и с DWT
"Бесплатный" 32-ух битный счетчик. Для задержек или измерения интервалов времени то что нужно. Ведь не у всех МК по 14 таймеров тем более 32-ух битных.

dosikus писал(а):
DWT в некоторых камнях просто нет.
У ТС STM32F103.

Да частотомер был. Из того что помню, Олег выкладывал проект в теме которую по милости ARV снесли в ММЯЯЯЯЯЯЯЯЯЯЯЯЯЯУУ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Пн окт 08, 2018 07:44:25 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
частотомер обычный, если измерения раз в секунду, может считать до 1 Гц - это 60 об/мин минимум.
Попробовал упомянутый частотомер в протеусе - умножил частоту на 60, на входе 2 Гц:
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вт окт 09, 2018 14:50:05 
Первый раз сказал Мяу!

Зарегистрирован: Ср сен 26, 2018 19:25:33
Сообщений: 24
Рейтинг сообщения: 0
не надо никаких калокубов и халов использовать. Если так чешется говнолибы юзать, то хотя бы слой LL юзайте как вы это любите.

Этот вечный спор HAL vs SPL. Кому то удобнее\нравится\хочется\необходимо\ и т.д. использует HAL. Кто то SPL. Этот спор не приведёт ни к чему хорошему. Зато решить вопрос точно не поможет. Уверен есть масса тем на разных ресурсах где можно это выяснять. Предлагаю не превращать эту тему в выяснение что лучше\круче\правильнее\и т д.

Попробовал сделать тахометр при помощи таймера с режимом захвата и настроенного для датчика холла
Изображение
Выход с датчика холла подключил к выводу PA15. Датчик холла при отсутствии по близости магнита держит "1", при поднесении магнита выставляет "0".

Вкладку тактирования не трогал, оставил всё как предложил cubeMX
Изображение

Таймер настроил таким образом что бы происходили прерывания каждые 10 ms. Если я конечно правильно понял как настроить таймер
Изображение

Отчаявшись включил все прерывания

Изображение Изображение

В файле main.c сделал такую функцию для подсчета оборотов:
Код:
//----------
static void calculateRpm(void)
{      
   rpm = 60/(timeLastSignal[0] - time);
   
   time = timeLastSignal[0];
}


Вывожу значение rpm на дисплей 2004 по I2C, запускаю таймер:
Код:
 /* USER CODE BEGIN 2 */
   HAL_TIM_IC_Init(&htim2);
   char str[4];
 
 
   lcd_init(ADDR_DEV_LCD);
   LCD_ON;
   LCD_CURSOR_OFF;
   HAL_TIM_Base_Start_IT(&htim2);
   
   if(FLAG_HARD_FAULT == -1)
   {
      lcd_put_string_LRC(2, 0, "Hard Fault");
      HAL_Delay(2500);
      lcd_clear();
   }
   
   lcd_put_string_LRC(2, 0, "Тахометр v 1.0");
   //lcd_put_string_LRC(2, 1, "Обороты:");
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    
     calculateRpm();
     sprintf(str, "%d", rpm);
     lcd_put_string_LRC(2, 1, str);
     HAL_Delay(50);
    
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */


В файле stm32f1xx_it.c в обработчике прерывания моего таймера пытаюсь захватить значение двумя способами:
Код:
/**
* @brief This function handles TIM2 global interrupt.
*/
void TIM2_IRQHandler(void)
{
  /* USER CODE BEGIN TIM2_IRQn 0 */
   int b1 = 0;
   int b2 = 0;
   /*HAL_TIM_IC_Start(&htim2,TIM_CHANNEL_4);
   timeLastSignal[0] = TIM2->CCR4;
   HAL_TIM_IC_Stop(&htim2,TIM_CHANNEL_4);*/
   HAL_TIM_IC_Start_DMA(&htim2,TIM_CHANNEL_4, timeLastSignal, 1);
   b1 = TIM2->CCR1;
   b2 = TIM2->CCR4;
   
   /*if(timeLastSignal[0] == 0)
   {
      timeLastSignal[0] = 1;
   }*/
   HAL_TIM_IC_Stop_DMA(&htim2,TIM_CHANNEL_4);
   //timeLastSignal = TIM2->CCR1;
  /* USER CODE END TIM2_IRQn 0 */
  HAL_TIM_IRQHandler(&htim2);
  /* USER CODE BEGIN TIM2_IRQn 1 */

  /* USER CODE END TIM2_IRQn 1 */
}

Но и в b1 и в b2 и в timeLastSignal[0] всегда ноль. В это прерывание попадаю как только подношу магнит к датчику. Т.е. можно предположить что таймер настроен правильно для датчика холла. Понятно что допустил ошибку , но вот где? :oops:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вт окт 09, 2018 15:39:59 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Этот вечный спор HAL vs SPL. Кому то удобнее\нравится\хочется\необходимо\ и т.д. использует HAL. Кто то SPL. Этот спор не приведёт ни к чему хорошему. Зато решить вопрос точно не поможет. Уверен есть масса тем на разных ресурсах где можно это выяснять. Предлагаю не превращать эту тему в выяснение что лучше\круче\правильнее\и т д.

Это не "вечный спор" это абсолютная истина - калокуб и спл для нубов противопоказаны.
Вы на своем опыте уже убедились что и калокуб и спл для вас бЭсполезны.
Хотите вечно тыркаться, продолжайте...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Вт окт 09, 2018 19:34:38 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14053
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ежли ужшш....
Тахометр в определенных пределах измеряемого диапазона единиц можно НА ЛЮБОМ МК (а то и просто на "рассыпухе") соорудить.
:tea:
Вопрос в том, чего под лапой имеется и с чем работать умеешш.
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Тахометр на STM32F103
СообщениеДобавлено: Ср окт 10, 2018 04:28:06 
Первый раз сказал Мяу!

Зарегистрирован: Ср сен 26, 2018 19:25:33
Сообщений: 24
Рейтинг сообщения: 0
Ежли ужшш....
Тахометр в определенных пределах измеряемого диапазона единиц можно НА ЛЮБОМ МК (а то и просто на "рассыпухе") соорудить.
:tea:
Вопрос в том, чего под лапой имеется и с чем работать умеешш.
:beer:

На STM32F103 и датчике холла хочу :) Осталось разобраться как настроить режим захвата


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: kow_tol и гости: 23


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y