×

Внимание

Форум находится в режиме только для чтения.

STM32F107 интерфейс энкодера

11 года 8 мес. назад #4026 от Stepanov Ivan
Stepanov Ivan создал тему: STM32F107 интерфейс энкодера
Здравствуйте! В очередной раз обращаюсь к вам за помощью товарищи. Интересует вот что: пытаюсь подключить энкодер к мк STM32f107, и возник такой вопрос, энкодер был подцеплен на PA8 и PC6 (первый энкодер), PA9 и PA10 (второй энкодер). Однако, если взглянуть на даташит первый энкодер подцеплен на выводы которые соответствуют разным каналам (Tim1 channel 1 и Tim3 channel 1) что меня и смущает. можно ли переназначить их так, чтобы не меняя "ног" им соответствовали каналы одного таймера, например TIM1 или TIM3?
11 года 8 мес. назад #4027 от Денис Ягов
Денис Ягов ответил в теме Re: STM32F107 интерфейс энкодера
интерфейс энкодера есть у таймеров 1 и 8. Это так называемые Advanced control timers, заточенные под управление двигателем.
Таймер 3 не обладает таким интерфейсом.
11 года 8 мес. назад #4028 от Stepanov Ivan
Stepanov Ivan ответил в теме Re: STM32F107 интерфейс энкодера
ясно, а как тогда его правильно реализовать? по найденным примерам в сети более менее понятно, за исключением того факта что я не вижу процедуры в которой бы говорилось, мол канал 1 и канал2 таймера такого то, сравнивай их.
11 года 8 мес. назад #4029 от Kerensky
Kerensky ответил в теме Re: STM32F107 интерфейс энкодера
RM0008
Reference manual
STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx
and STM32F107xx advanced ARM-based 32-bit MCUs

15 General-purpose timers (TIM2 to TIM5)
15.2 TIMx main features
● Supports incremental (quadrature) encoder and hall-sensor circuitry for positioning
purposes

разве это не означает что эти таймера работают с энкодерами?
11 года 8 мес. назад #4030 от Денис Ягов
Денис Ягов ответил в теме Re: STM32F107 интерфейс энкодера
Поддерживают .... ошипся я.  ???
11 года 8 мес. назад #4031 от Денис Ягов
Денис Ягов ответил в теме Re: STM32F107 интерфейс энкодера
реализация датчика Холла:
void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState)
1-й параметр: таймеры 1-5, 8
2-й параметр: ENABLE или DISABLE

Энкодер:
void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode, uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity)
где
Configures the TIMx Encoder Interface. (выбор таймера)
TIMx: where x can be  1, 2, 3, 4, 5 or 8 to select the TIM peripheral.

TIM_EncoderMode: specifies the TIMx Encoder Mode.(выбор режима энкодера)
This parameter can be one of the following values:
TIM_EncoderMode_TI1: Counter counts on TI1FP1 edge depending on TI2FP2 level.
TIM_EncoderMode_TI2: Counter counts on TI2FP2 edge depending on TI1FP1 level.
TIM_EncoderMode_TI12: Counter counts on both TI1FP1 and TI2FP2 edges depending
on the level of the other input.

TIM_IC1Polarity: specifies the IC1 Polarity (полярность фронта первого сигнала)
This parameter can be one of the following values:
TIM_ICPolarity_Falling: IC Falling edge.
TIM_ICPolarity_Rising: IC Rising edge.

TIM_IC2Polarity: specifies the IC2 Polarity (полярность фронта второго сигнала)This parameter can be one of the following values:
TIM_ICPolarity_Falling: IC Falling edge.
TIM_ICPolarity_Rising: IC Rising edge.

Примеров итспользования этих функций не нашёл, как вариант можно посмотреть библитеку управления двигателем.
Время создания страницы: 0.041 секунд
Работает на Kunena форум