电机TMC260的寄存器如何配置

来源:互联网  时间:2018/1/22 2:25:33

关于网友提出的“ 电机TMC260的寄存器如何配置”问题疑问,本网通过在网上对“ 电机TMC260的寄存器如何配置”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 电机TMC260的寄存器如何配置

解决方案1:

引用 8 楼 qq_20553613 的回复:
楼主可能理解我的意思了,我的意思不是动态位数发送;看tmc260的手册就知道,可以整字节发送,即发送3个字节(24位,从的我代码也可以看出来),高4位无效位tmc260会忽略的(很多非标准spi器件都会支持这个功能);目前,我用的tmc2660,兼容tmc260,stm32F1驱动,已在产品上使用。

才看明白,我以为你说的是STM32有变字长SPI功能,原来是tmc260有变字长接受高位0直接无视功能,那么你这样的方式就可以用8位spi硬件三次连续发送就可以了。简单方便。
解决方案2:

引用 6 楼 yishuicanhong 的回复:
Quote: 引用 3 楼 qq_20553613 的回复:

1、我用的是TMC2660,与TMC260兼容,TMC2660电流更大,而且价格还便宜;TMC260(2660)是20位控制寄存器,看手册就知道,控制器(单片机)可整字节发送,高位会自动忽略,把需要控制的控制字放在对应的位上发送即可,即是最少需要发送3个字节数据(stm32 spi设置为8位模式);
2、上关键代码,spi配置就不上了;
static u32 tmc2660_spi_xfer(u8 spi_no,u32 write_data)
{
u8 send_buff[3],recv_buff[3];
u32 recv_data= 0;
send_buff[0] = (write_data>>16)&0xff;
send_buff[1] = (write_data>>8)&0xff;
send_buff[2] = (write_data&0xff);
spi_send_recv(&tmc2660_spi_dev[spi_no],send_buff,recv_buff,3);
recv_data = recv_buff[0]<<16 | recv_buff[1]<<8 | recv_buff[2];
return (recv_data&0x0fffff);
}
置于各个控制字则对照手册发送即可。

我是不是可以理解为按照每个寄存器的功能得到该寄存器需要的命令值(20位),然后把五组20位数据发送给TMC芯片就是初始化配置了?求指点

对的,就是这样;这个器件并没有普通器件的寄存器,按照它的格式发送20位数据即是设置了。

上一篇stm32控制ws2811灯条的问题,有请高人解答?
下一篇WDK编译提示U1050:BLD1004:MSVCRT Lib list
明星图片
相关文章
《 电机TMC260的寄存器如何配置》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)