您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 硬件/嵌入开发 >> 电机TMC260的寄存器如何配置

电机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硬件三次连续发送就可以了。简单方便。
  • LMK04906寄存器配置
解决方案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位数据即是设置了。
  • 寄存器的配置、地址对应等

以上介绍了“ 电机TMC260的寄存器如何配置”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4531982.html

相关图片

相关文章