在 ROQ437 中,兩個(gè)位置鎖存器之間的 EnDat2.1 恢復(fù)時(shí)間默認(rèn)較短。EnDat2.2 可實(shí)現(xiàn)較短的恢復(fù)時(shí)間,但我們需要先在 ROQ437 中設(shè)置一次非易失性位,然后再運(yùn)行演示的剩余部分以縮短恢復(fù)時(shí)間。這是目前的權(quán)變措施,可在以后并入演示代碼中。
Heidenhain 文檔中的說(shuō)明(https://www.heidenhain.us/wp-content/uploads/Bidirectional_Interface_for_Position_Encoders-1.pdf):擴(kuò)展的 EnDat 接口 2.2 版在通信、命令集和時(shí)間條件方面與之前的 2.1 版兼容,但也具有一些顯著的優(yōu)勢(shì)。例如,有了它,不必發(fā)送單獨(dú)的請(qǐng)求,即可傳輸含位置值的附加信息。接口協(xié)議已擴(kuò)展,并且時(shí)間條件已優(yōu)化,如下所示:提高了時(shí)鐘頻率(時(shí)鐘)(16MHz),優(yōu)化了計(jì)算時(shí)間(位置值采集時(shí)間在 5μs 內(nèi)),極大地縮短了死區(qū)時(shí)間(恢復(fù)時(shí)間)(1.25μs 至 3.75μs),擴(kuò)展了電源電壓范圍(3.6V 至 5.25V,或者,在編碼器中為 3.6V 至 14V)
- 插入所有硬件以將 EnDat2.2 編碼器連接到離 TMDS243GPEVM 最近的插槽
- 將位于“%SDK_INSTALL_DIR%\examples\motor_control\endat_diagnostic”的 MCU+ SDK 中的“endat_diagnostic”示例導(dǎo)入到 CCS 中
- 編譯該示例并將其加載到 MAIN_Cortex?_R5_0_0 中
- 在 Code Composer Studio?(CCS)中設(shè)置端子以查看診斷輸出(如下所示,我的端口為 COM6,但您的端口可能不同):
- 點(diǎn)擊“Resume (F8)”以運(yùn)行診斷
- 針對(duì)多通道配置選擇“y”,針對(duì)所選通道 0 選擇“y”,并針對(duì)通道 1 和通道 2 選擇“n”。
- 完成這些選擇之后,診斷工具應(yīng)與編碼器通信并返回 ID、SN 以及有關(guān)分辨率和傳播延遲的信息
- 將邏輯分析儀連接到 EnDat CLK、TX 和 RX 引腳(如下所示,可通過(guò) TIDA-00179 板的直角連接器訪問(wèn)這些引腳)
- 在診斷工具中選擇選項(xiàng)“107”,并輸入“8000”(以 Hz 為單位)作為頻率值。這會(huì)導(dǎo)致程序持續(xù)向編碼器請(qǐng)求數(shù)據(jù),如圖 11-8 中所示。
- 在仿真位置環(huán)路運(yùn)行時(shí)運(yùn)行邏輯分析儀,并查看 RX 信號(hào)中的恢復(fù)時(shí)間(在 CLK 停止后,RX 信號(hào)保持高電平的時(shí)間):
- 要設(shè)置位以啟用 EnDat2.2 恢復(fù)模式,請(qǐng)選擇診斷選項(xiàng) 10,參數(shù)地址 3,及參數(shù)值1
- 然后,選擇診斷選項(xiàng)“5”將編碼器復(fù)位,以使設(shè)置生效
- 再次運(yùn)行選項(xiàng) 107 并將頻率設(shè)置為 8000,以確保設(shè)置保存下來(lái)并且恢復(fù)時(shí)間少于 3.75μs:
- 如果恢復(fù)時(shí)間仍為 20μs 左右,則您可能需要再試一次之前的步驟(選項(xiàng) 10,地址 3,值 1,然后使用選項(xiàng) 5 進(jìn)行復(fù)位)
此時(shí),應(yīng)將您的編碼器配置為在 EnDat2.2 恢復(fù)模式下運(yùn)行,以便在演示的剩余部分中全程使用所需的嚴(yán)格計(jì)時(shí)。