From 96b3421768511a52cf64c5e453d389f044f8767b Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 25 Sep 2023 10:15:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0TMC=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/tmc/basic/tmc_ic_interface.hpp | 26 ++++++++++++------------- components/tmc/ic/tmc_driver_ic.hpp | 12 ++++++------ components/tmc/ic/ztmc4361A.cpp | 32 +++++++++++++++---------------- components/tmc/ic/ztmc4361A.hpp | 30 ++++++++++++++--------------- 4 files changed, 50 insertions(+), 50 deletions(-) diff --git a/components/tmc/basic/tmc_ic_interface.hpp b/components/tmc/basic/tmc_ic_interface.hpp index f3edc88..f8c2d2f 100644 --- a/components/tmc/basic/tmc_ic_interface.hpp +++ b/components/tmc/basic/tmc_ic_interface.hpp @@ -16,33 +16,33 @@ class IStepperMotor { // virtual void registerListener(MotorEventListener* listener) = 0; /**************************************************** - * 速度模式 * + * ٶģʽ * ****************************************************/ /** - * @brief 旋转电机,正转为正值,负转为负值 + * @brief תתΪֵתΪֵ * - * @param velocity 电机旋转速度,单位为pps + * @param velocity תٶȣλΪpps */ virtual void rotate(int32_t velocity) = 0; /**************************************************** - * 位置模式 * + * λģʽ * ****************************************************/ /** - * @brief 电机运动到指定位置 + * @brief ˶ָλ * - * @param position 目标位置 - * @param velocityMax 最大速度 电机旋转速度,单位为pps + * @param position Ŀλ + * @param velocityMax ٶ תٶȣλΪpps */ virtual void moveTo(int32_t position, uint32_t velocityMax) = 0; /** - * @brief 电机相对于当前位置移动指定的距离 + * @brief ڵǰλƶָľ * - * @param relativePosition 相对于当前位置的距离 - * @param velocityMax 最大速度 电机旋转速度,单位为pps + * @param relativePosition ڵǰλõľ + * @param velocityMax ٶ תٶȣλΪpps */ virtual void moveBy(int32_t relativePosition, uint32_t velocityMax) = 0; /** - * @brief 停止电机 + * @brief ֹͣ */ virtual void stop() = 0; @@ -54,8 +54,8 @@ class IStepperMotor { virtual int32_t getENC_POS() = 0; virtual void setENC_POS(int32_t value) = 0; - virtual void setAcceleration(float accelerationpps2) = 0; // 设置最大加速度 - virtual void setDeceleration(float accelerationpps2) = 0; // 设置最大减速度 + virtual void setAcceleration(float accelerationpps2) = 0; // ٶ + virtual void setDeceleration(float accelerationpps2) = 0; // ٶ virtual bool isReachTarget() = 0; virtual bool isStoped() = 0; diff --git a/components/tmc/ic/tmc_driver_ic.hpp b/components/tmc/ic/tmc_driver_ic.hpp index e4fd1ec..c6105eb 100644 --- a/components/tmc/ic/tmc_driver_ic.hpp +++ b/components/tmc/ic/tmc_driver_ic.hpp @@ -5,25 +5,25 @@ class TMCDriverICPort { public: public: /** - * @brief 复位引脚,低有效。 + * @brief λţЧ * * @param state */ virtual void TMCDriverICPort_setResetPinState(uint16_t channel, bool state) = 0; /** - * @brief 使能引脚,低有效。 + * @brief ʹţЧ * * @param state */ virtual void TMCDriverICPort_setENNPinState(uint16_t channel, bool state) = 0; /** - * @brief us级别延时函数。 + * @brief usʱ * * @param us */ virtual void TMCDriverICPort_sleepus(int32_t us) = 0; /** - * @brief SPI读写接口 + * @brief SPIдӿ * * @param data * @param length @@ -45,9 +45,9 @@ class TMCDriverICInterface { virtual void writeInt(uint8_t address, int32_t value) = 0; virtual int32_t readInt(uint8_t address) = 0; /** - * @brief 读取芯片版本 + * @brief ȡоƬ汾 * - * @return int32_t 默认为0x30 + * @return int32_t ĬΪ0x30 */ virtual int32_t readICVersion() = 0; diff --git a/components/tmc/ic/ztmc4361A.cpp b/components/tmc/ic/ztmc4361A.cpp index cc1054c..cbf9739 100644 --- a/components/tmc/ic/ztmc4361A.cpp +++ b/components/tmc/ic/ztmc4361A.cpp @@ -85,7 +85,7 @@ void TMC4361A::readWriteCover(uint8_t *data, size_t length) { if (length > 4) writeDatagram(TMC4361A_COVER_HIGH_WR, bytes[7], bytes[6], bytes[5], bytes[4]); writeDatagram(TMC4361A_COVER_LOW_WR, bytes[3], bytes[2], bytes[1], bytes[0]); - zchip_clock_early_delayus(10 * 1000); + zos_delay(10); // Read the reply if (length > 4) { @@ -118,9 +118,9 @@ TMC4361A::TMC4361A(/* args */) { } /** * @brief - * 当调用TMC-API中的tmc4361A_reset/restore时候,TMC-API中的方法会初始化整个芯片的寄存器 - * 当寄存器初始化完成之后,会调用这个方法? - * 我们可以在这个方法中,对芯片的部分寄存器进行初始化? + * TMC-APIеtmc4361A_reset/restoreʱTMC-APIеķʼоƬļĴ + * Ĵʼ֮󣬻?? + * ǿУоƬIJּĴгʼ?? * @param state */ void TMC4361A::tmc4361AConfigCallback(ConfigState state) {} @@ -131,14 +131,14 @@ void TMC4361A::writeSubRegister(uint8_t address, uint32_t mask, uint32_t shift, void TMC4361A::setAcceleration(float accelerationpps2) { /** * @brief - * TMC4361A_AMAX:有两种模式,这里使用的是频率模式 + * TMC4361A_AMAX:ģʽʹõƵģʽ * * Frequency mode: [pulses per sec2] - * 22 digits and 2 decimal places: 250 mpps^2 ? AMAX ? 4 Mpps^2 - * Direct mode: [∆v per clk cycle] - * a[∆v per clk_cycle]= AMAX / 2^37 - * AMAX [pps2] = AMAX / 237 ? fCLK^2 + * 22 digits and 2 decimal places: 250 mpps^2 ?? AMAX ?? 4 Mpps^2 + * Direct mode: [?v per clk cycle] + * a[?v per clk_cycle]= AMAX / 2^37 + * AMAX [pps2] = AMAX / 237 ?? fCLK^2 */ int32_t acc = (int32_t)accelerationpps2; @@ -147,13 +147,13 @@ void TMC4361A::setAcceleration(float accelerationpps2) { void TMC4361A::setDeceleration(float accelerationpps2) { /** * @brief - * TMC4361A_DMAX:有两种模式,这里使用的是频率模式 + * TMC4361A_DMAX:ģʽʹõƵģʽ * * Frequency mode: [pulses per sec2] - * 22 digits and 2 decimal places: 250 mpps^2 ? AMAX ? 4 Mpps^2 - * Direct mode: [∆v per clk cycle] - * a[∆v per clk_cycle]= AMAX / 2^37 - * AMAX [pps2] = AMAX / 237 ? fCLK^2 + * 22 digits and 2 decimal places: 250 mpps^2 ?? AMAX ?? 4 Mpps^2 + * Direct mode: [?v per clk cycle] + * a[?v per clk_cycle]= AMAX / 2^37 + * AMAX [pps2] = AMAX / 237 ?? fCLK^2 */ int32_t acc = (int32_t)accelerationpps2; @@ -190,7 +190,7 @@ void TMC4361A::initialize(cfg_t *cfg) { zchip_clock_early_delayus(300 * 1000); zchip_clock_early_delayus(300 * 1000); - driverIC_setIHOLD_IRUN(1, 3, 0); // 注意要先设置IHOLD再设置IRUN,否则电机跑不起来 + driverIC_setIHOLD_IRUN(1, 3, 0); // עҪIHOLDIRUN,ܲ } uint8_t TMC4361A::reset() { // Pulse the low-active hardware reset pin @@ -200,7 +200,7 @@ uint8_t TMC4361A::reset() { SET_PIN(m_resetPin, true); /** - * @brief 重置芯片镜像寄存? + * @brief оƬĴ?? * */ for (uint32_t add = 0; add < TMC4361A_REGISTER_COUNT; add++) { diff --git a/components/tmc/ic/ztmc4361A.hpp b/components/tmc/ic/ztmc4361A.hpp index 5498ccc..e1218e7 100644 --- a/components/tmc/ic/ztmc4361A.hpp +++ b/components/tmc/ic/ztmc4361A.hpp @@ -68,15 +68,15 @@ class TMC4361A : public IStepperMotor { TMC4361A(/* args */); /******************************************************************************* - * 初始化相关方? * + * ʼط?? * *******************************************************************************/ /** - * @brief 静态方法,创建默认的TMC4361A配置参数,使用时只需修改自己需要的参数即可 + * @brief ̬ĬϵTMC4361Aò,ʹʱֻ޸ԼҪIJ * - * 注意: - * 1. 该方法内部使用的是一个静态变量,所以每次调用该方法时,返回的都是同一个对象的地址? - * 2. 该方法返回的数值不需要被释放? + * ע: + * 1. ÷ڲʹõһ̬ÿεø÷ʱصĶͬһĵַ?? + * 2. ÷صֵҪͷ?? * @param config */ @@ -96,26 +96,26 @@ class TMC4361A : public IStepperMotor { virtual int32_t getVACTUAL(); virtual int32_t getENC_POS(); virtual void setENC_POS(int32_t value); - virtual void setAcceleration(float accelerationpps2); // 设置最大加速度 - virtual void setDeceleration(float accelerationpps2); // 设置最大减速度 + virtual void setAcceleration(float accelerationpps2); // ٶ + virtual void setDeceleration(float accelerationpps2); // ٶ /******************************************************************************* - * 驱动器初始化方法 * + * ʼ * *******************************************************************************/ /** - * @brief 初始化方? + * @brief ʼ?? * - * @param channel SPI通道? - * @param driver_ic_type 驱动芯片的类? + * @param channel SPIͨ?? + * @param driver_ic_type оƬ?? */ int32_t readICVersion(); uint8_t reset(); uint8_t restore(); /******************************************************************************* - * 常用寄存器读写方? * + * üĴд?? * *******************************************************************************/ /******************************************************************************* - * 驱动器寄存器读写方法 * + * Ĵд * *******************************************************************************/ void writeDatagram(uint8_t address, uint8_t x1, uint8_t x2, uint8_t x3, uint8_t x4); void writeInt(uint8_t address, int32_t value); @@ -123,8 +123,8 @@ class TMC4361A : public IStepperMotor { void readWriteCover(uint8_t *data, size_t length); void writeSubRegister(uint8_t address, uint32_t mask, uint32_t shift, uint32_t value); - int32_t getENC_POS_DEV(); // ENC_POS和XACTUAL的偏差? - uint32_t readEVENTS(); // 读取事件寄存? + int32_t getENC_POS_DEV(); // ENC_POSXACTUALƫ?? + uint32_t readEVENTS(); // ȡ¼Ĵ?? /******************************************************* * driverIc function * *******************************************************/