stm32 SSI讀編碼器

2021-10-01 03:20:38 字數 924 閱讀 5176

uint32_t read_as5311chip(void)

as5311_clk_h;

//    delay_us(10);

return raw_value;

}void as5311_analyzessicode(void)    //獲取0-4096

else

else

seg32data.all = seg32data.all >> 1;

}while(cnt--);

cnt_1 = cnt_1 % 2;

if(!cnt_1)

}else}}

}void checkcounter(void)

if (glpara.lastpole == 0 && glpara.curpole == 2)

//lastencoderval = encoderval;

glpara.lastpole = glpara.curpole;

//轉換為nm

temp = as5311dt.detail.abscode;

temp = 200000*(temp - glpara.zerocode)/4096;

temp += glpara.ssicount * 200000;

glpara.ssicurpos = temp;        //單位10nm=0.01um

//    buf = glpara.ssicurpos;

//    buf = buf * ssipos_to_tpls;

//    gbdt.gb.crrntpstn[optmtr] = buf;

}void init_zero(void)

注意不用ssi模式時,csn下降沿時clk要處於高電平狀態,否則ab正交脈衝不對。這樣可能出現干擾導致磁柵尺錯誤,從而可以做個這樣的時序,就算出現干擾好也能恢復。

絕對式編碼器的ssi協議 stm32 hal

雖然開始研究的時候比較疑惑,其實還是比較簡單的。十幾分鐘就可以全部掌握。編碼器的廠商為了抗干擾,在ssi訊號使用了rs422,rs422和rs485這類的都是通訊協議而已,打個比方,只是你去往同一城市的不同道路而已,最終還是你過去,你並沒有變化。編碼器的ssi協議其實非常的簡單,他是同步訊號,類似s...

STM32控制編碼器

編碼器是一種將角位移或者角速度轉換成一連串電數字脈衝的旋轉式感測器。可以用來測量位置,測量速度。四倍頻的方法是測量a相和b相的上公升沿和下降沿 stm32控制編碼器可以採用timer的編碼器模式,tim1 8的ch1和ch2分別對應a相和b相 選擇編碼器介面模式的方法是 如果計數器只在ti2的邊沿計...

STM32正交編碼器介面

晶元型號 使用引腳及初始化程式原始碼 tim2埠重對映問題 與jtag介面衝突時的現象及解決方法 晶元型號 stm32f103ret6 使用定時器 tim2 tim3 tim4 tim5 使用引腳 tim2 pa15 pb3 remap tim3 pa6 pa7 tim4 pb6 pb7 tim5 ...