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

 
 
> STM32F103 + Encoder, 32-х битный счетчик энкодера
KSN
сообщение Aug 1 2012, 03:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



В STM32F103 имеется 16-и битный счетчик, к которому можно подключить квадратурный энкодер. Мне необходимо реализовать 32 битный счетчик. Частота сигнала в среднем 60кГц(максимум 120кГц). Может кто реализовывал подобную задачу, поделитесь мыслями: как реализовать 32 битный счетчик? Программно или может состыковать пару таймеров между собой(возможно через внешние выводы). Вариант взять вместо STM32F103 кристалл STM32F205 рассматривается, но ценник у первого ~3$, у второго 8$
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Spider
сообщение Sep 28 2012, 18:39
Сообщение #2


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Всем привет! А не подскажете как правильно настроить таймер на Энкодер?
У меня энкодер подключен к TIM4 CH1/CH2, всё как бы настроил и кручу энкодер, но счётчик только уменьшается, при вращении в любую сторону. Что может быть не так?
Код
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  GPIO_InitTypeDef GPIO_InitStructure;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_Init(GPIOB,&GPIO_InitStructure);
  
  TIM_DeInit(TIM4);
  
  TIM_TimeBaseStructure.TIM_Prescaler = 0;
  TIM_TimeBaseStructure.TIM_Period = 0xFFF;
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  
  TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
Go to the top of the page
 
+Quote Post
Gunner
сообщение Oct 1 2012, 06:07
Сообщение #3


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

Группа: Участник
Сообщений: 99
Регистрация: 23-06-04
Из: Kiev
Пользователь №: 146



QUOTE (Alexey Belyaev @ Sep 28 2012, 21:39) *
Всем привет! А не подскажете как правильно настроить таймер на Энкодер?
У меня энкодер подключен к TIM4 CH1/CH2, всё как бы настроил и кручу энкодер, но счётчик только уменьшается, при вращении в любую сторону. Что может быть не так?

1) Enable the GPIO Clock for TIMx pins (CH1, CH2): RCC_AHB1PeriphClockCmd()
2) Enable the Peripheral Clock for TIMx: RCC_APB1PeriphClockCmd() or RCC_APB2PeriphClockCmd()
3) Configure CH1 and CH2 pins as alternate function: GPIO_PinAFConfig(), GPIO_Init()
4) TIMx Configuration: TIM_TimeBaseInit(), TIM_EncoderInterfaceConfig()
5) Configure and enable TIMx interrupt
6) Enable TIMx counter: TIM_Cmd()
Go to the top of the page
 
+Quote Post



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

 


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


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