正交編碼�(又名雙通道增量式編碼器�,用于將線性位移轉(zhuǎn)換成2 �(gè)脈沖信號(hào)。通過(guò)�(jiān)控脈沖的�(shù)目和2 �(gè)脈沖信號(hào)的相�(duì)相位,用戶可以跟蹤旋�(zhuǎn)的位�、方向和速度。此外還有第三�(gè)通道,即索引信號(hào),可用來(lái)�(duì)位置�(jì)�(shù)��(jìn)行復(fù)�。正交編碼器接口模塊�(duì)正交編碼器輪�(chǎn)生的代碼�(jìn)行解碼,將它們解釋成位置�(duì)�(shí)間的積分,并確定旋轉(zhuǎn)的方�。另�,它還能夠捕獲編碼器輪運(yùn)�(zhuǎn)�(shí)的大致速度�
使用位置積分器來(lái)跟蹤編碼器的位置�
根據(jù)�(zhuǎn)�(dòng)軸的方向�(jìn)行遞�/遞減�(jì)�(shù)�
可選�2X 模式�4X 模式�
使用�(nèi)置定�(shí)器來(lái)捕獲速度�
速度比較功能,當(dāng)捕獲的速度小于比較速度�(shí)�(chǎn)生中��
使用32 位寄存器�(lái)保存位置和速度�
3 �(gè)位置比較寄存�,可�(chǎn)生中��
用于分辨率計(jì)�(shù)的索引計(jì)�(shù)器;
索引比較寄存�,可�(chǎn)生中斷;
可結(jié)合索引和位置中斷�(lái)�(chǎn)生整�(gè)位移或局部旋�(zhuǎn)位移的中��
帶可編程編碼器輸入信�(hào)延遲的數(shù)字濾波器�
可接收已解碼的輸入信�(hào)(時(shí)鐘和方向��
與APB 相��
下面是調(diào)試OK的代碼:
void Encoder_Configration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_ICInitTypeDef TIM_ICInitStructure;
//PC6 A� PC7 B�
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
/* Enable the TIM3 Update Interrupt */
/*NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = TIMx_PRE_EMPTION_PRIORITY;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = TIMx_SUB_PRIORITY;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);*/
/* Timer configuration in Encoder mode */
TIM_TimeBaseStructure.TIM_Prescaler = 0x0; // No prescaling
TIM_TimeBaseStructure.TIM_Period = 10000;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure);
TIM_EncoderInterfaceConfig(TIM8, TIM_EncoderMode_TI12,
TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
TIM_ICStructInit(&TIM_ICInitStructure);
TIM_ICInitStructure.TIM_ICFilter = 6;//ICx_FILTER;
TIM_ICInit(TIM8, &TIM_ICInitStructure);
// Clear all pending interrupts
TIM_ClearFlag(TIM8, TIM_FLAG_Update);
TIM_ITConfig(TIM8, TIM_IT_Update, ENABLE);
//Reset counter
TIM2->CNT = 0;
TIM_Cmd(TIM8, ENABLE);
}
n_Counter = TIM_GetCounter(TIM8);
Diled_Disp_Num((float)n_Counter);
另外一�(gè)值得注意的問題是,STM32 的定�(shí)器是16位的,意思是只能�(jì)�(shù)�65535,有兩種方法,一是采用鏈?zhǔn)降姆绞接脙蓚�(gè)定時(shí)器將16位擴(kuò)展為32�,還有一種簡(jiǎn)單的方法就是開啟定時(shí)器的溢出中斷,每中斷一次就代表編碼器運(yùn)�(zhuǎn)了特定的角度�
比如編碼器是400線的,將ARR寄存器設(shè)置為400,每溢出中斷一次就代表電機(jī)�(zhuǎn)了一�,以此類推�
另外,關(guān)于輸入脈沖的檢測(cè),其�(shí)是類似的,只不過(guò)在STM32�(nèi)部是專門用了一�(gè)外部觸發(fā)模塊�(lái)�(shí)�(xiàn)�,如圖一中紫色框的標(biāo)注,編碼器模塊應(yīng)該是在這�(gè)模塊上的升級(jí),下面是配置代碼�
void TIM3_ETR_GetDropCounts_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
//test PA0 TIM8_ETR
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); // Time base configuration
TIM_ETRClockMode2Config(TIM3, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
TIM_SetCounter(TIM3, 0);
TIM_Cmd(TIM3, ENABLE);
}
正交編碼器用于檢�(cè)旋轉(zhuǎn)�(yùn)�(dòng)系統(tǒng)的位置和速度。正交編碼器可以�(duì)多種電機(jī)控制�(yīng)用實(shí)�(xiàn)閉環(huán)控制,諸如開�(guān)磁阻(SR)電�(jī)和交流感�(yīng)電機(jī)(ACIM��
典型的增量式編碼器包括一�(gè)放置在電�(jī)傳動(dòng)軸上的開槽的輪子和一�(gè)用于檢測(cè)該輪上槽口的�(fā)射器/ 檢測(cè)器模�。通常,有三�(gè)輸出,分別為:A�、B相和索引(INDEX�,所提供的信息可被解碼,用以提供有關(guān)電機(jī)軸的�(yùn)�(dòng)信息,包括距離和方向�
A相(QEA)和B相(QEB)這兩�(gè)通道間的�(guān)系是惟一�。如果A相超前B相,那么電機(jī)的旋�(zhuǎn)方向被認(rèn)為是正向�。如果A相落后B�,那么電�(jī)的旋�(zhuǎn)方向則被�(rèn)為是反向的。第三�(gè)通道稱為索引脈沖,每�(zhuǎn)一圈產(chǎn)生一�(gè)脈沖,作為基�(zhǔn)用來(lái)確定位置。編碼器�(chǎn)生的正交信號(hào)可以有四種各不相同的狀�(tài)�00�01�10�11�。請(qǐng)注意,當(dāng)旋轉(zhuǎn)的方向改變時(shí),這些狀�(tài)的順序與此相反(11�10�01�00�。正交解碼器捕捉相位信號(hào)和索引脈沖,并將信息�(zhuǎn)換為位置脈沖的數(shù)字計(jì)�(shù)�。通常,當(dāng)傳動(dòng)軸向某一�(gè)方向旋轉(zhuǎn)�(shí),該�(jì)�(shù)值將遞增�(jì)�(shù);而當(dāng)傳動(dòng)軸向另一�(gè)方向旋轉(zhuǎn)�(shí),則遞減�(jì)�(shù)。選擇“x4”測(cè)量模式,QEI邏輯在A相和B相輸入信�(hào)的上升沿和下降沿都使位置�(jì)�(shù)器計(jì)�(shù),可以為確定編碼器位置提供更高精度的�(shù)�(jù)(更多位置計(jì)�(shù)��
維庫(kù)電子�,電子知�(shí),一查百��
已收錄詞�154050�(gè)