主题中讨论的其他器件: TCA9554、 TCA9548A、
大家好、
根据客户、在 RTP 模式下运行 DRV2605L 电机驱动器时、它们可以使用的最大值为127 (0x7F)。 当n`t 将符号位更改为无符号、以便在 Control3寄存器(地址0x1D)中具有更高的整数值时、它们可以运行电机。 除了 Control3寄存器之外、他们还需要配置任何寄存器吗?
感谢您的支持!
此致、
Danilo
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
根据客户、在 RTP 模式下运行 DRV2605L 电机驱动器时、它们可以使用的最大值为127 (0x7F)。 当n`t 将符号位更改为无符号、以便在 Control3寄存器(地址0x1D)中具有更高的整数值时、它们可以运行电机。 除了 Control3寄存器之外、他们还需要配置任何寄存器吗?
感谢您的支持!
此致、
Danilo
您好 Justin、
以下是客户的回应。
这是客户提供的代码。
#include //SparkFun 触觉电机驱动器库
#include
#include //I2C 库
SFE_HMD_DRV2605L HMD;//创建触觉电机驱动器对象
DRV2605LEVM_MD multi_drv;//创建多电机驱动器对象
void setup()
{
Serial.begin(9600);
HMD.begin();
serial.println ("自动校准电机驱动器...");
//通过将 GO 位设置为1来启动自动校准
hmd.go ();
HMD.Mode (0x07);
serial.println ("自动校准已完成! 正在初始化电机驱动器...");
// HMD.Mode (0);//内部触发输入模式--必须使用 GO ()函数来触发回放。
HMD.Mode (0x05);// RTP 模式--必须使用 RTP 函数来触发振幅。
HMD.MotorSelect (0xB6);// LRA 电机、4x 制动、中等环路增益、1.365x 反电动势增益
HMD.Library (6);/1-5和7用于 ERM 电机、6用于 LRA 电机
multi_drv.initialize_motors();
serial.println ("电机驱动程序已初始化!");
}
void loop()
{
HMD.RTP (0x7F);
延迟(5.
此致、
Danilo
您好 Danilo、
感谢您提供更多信息。 根据代码、这是使用 DRV2605LEVM_MD 还是仅使用用于自己电路板的代码?
此外、在代码中、我实际上看不到 Control3寄存器中的 Data_Format_RTP 位被写入的位置。 您能对此进行澄清吗?
对于自动校准、最好在将 GO 位设置为1之前将器件设置为自动校准模式(HMD.Mode (0x07))。
谢谢、
Justin Beigel
您好 Justin、
我们已收到以下客户的回复。
我们使用名为“DRV2605LEVM_MD”的定制库与 TCA9554和 TCA9548A 器件通信,并使用 SparkFun 的“SparkFun_DRV2605L”库与 DRV2605L 电机驱动器通信。
您的问题的答案:
1.单向还是双向色调?
•我们使用的是默认设置。 我们应该使用单向吗?
2.这是闭环还是开环?
•我们再次使用 RTP 的默认设置。 我们不确定应该使用哪种模式。 你有什么建议?
3.它们将什么用于“rtc_input”值。
•我们正在发送“0x7F”。 电动机不会以高于“0x7F”的值振动。
•当我们将“CONTROL3寄存器(0x1D)”的“DATA_FORMAT_RTP”字段更改为“unsigned”时,“RTP_INPUT”的值不会使电机振动。
•因此,我们从代码中删除了该行,但却使用以下命令通过 SparkFun 的库更改了该行:
•HMD。 writeDRV2605L (CONTROL3、0xA8)
我们可以详细说明的一点是,当我们开始与 DRV2605LEVM-MD 板通信时,从状态寄存器中可以看到“E4”。 我认为这意味着“反馈控制器超时”,但我们不明白它的含义是什么? 是否可以收到该状态/错误消息? 我们应该怎么做?
此致、
Danilo
您好 Justin、
这是客户提供的代码。
e2e.ti.com/.../DRV2605LEVM_5F00_MD.zip
此致、
Danilo
您好 Justin、
这是客户的反馈。
客户正在使用 Arduino Uno、并通过 DRV2605LEVM-MD TCA9548APW 的 SDA 和 SCL 线将其连接、正如我在下面的另一个线程中提到的那样。
此致、
Danilo
您好 Danilo、
经过一些测试、我认为 EVM 启动会更改一些寄存器配置、您需要在代码中专门写入这些配置、以确保它们处于正确的状态。 我只需添加一个 control2寄存器写入即可使代码正常工作。 我将器件写入单向模式、但可以通过将写入更改为0xFF 将器件置于双向模式。
HMD。 writeDRV2605L (Control2_REG、0x7F);//单向模式
如果您有任何其他问题、请告诉我。
此致、
Justin Beigel