Part Number:MCT8329AOther Parts Discussed in Thread:MSP430FR2355
MCU采用了STM32芯片,但是打算用I2C控制驱动芯片,但是配置了ISD,MOTOR,CLOSED这些寄存器,仍然不能让电机转起来。是所以的寄存器都需要配置吗?通过I2C发生配置需要有什么注意项,有参考的例程吗?
Alice:
您好,
评估板MCT8329EVM是采用TI的MSP430FR2355控制的,请在MCT8329EVM 评估板 | TI.com.cn产品网页下载“MCT8329A-GUI”,查看示例代码。
具体请参考用户手册 MCT8329EVM 评估模块 (Rev. A) (ti.com.cn) “7.1”章节内容。
,
P Zq:
I2C通信发送指令为 0XC0 0X10 在发送16位的地址,然后发送32位的数据,但是读取的发送0XC0然后是0X90读取32位的地址数据,但是读不到数据
,
Alice:
您好,
MCT8329默认I2C地址是0x60, I2C读写过程要有MCT8329的ACK。
可以先用”7.6.2.3 I 2C Read Operation“ 读取寄存器,验证芯片是否工作和I2C通讯时序,
I2C写入请参考”7.6.2.2 I 2C Write Operation“ 。
,
P Zq:
我发送指令 0x60. 0x10 然后呵呵地址0x80写进去数据,但是通过ox60. 0x90. 读取0x80寄存器的数据 在0x61。返回数据是00
,
Alice:
您好,
芯片数据手册“7.6.2.4 I 2C 通信协议数据包示例”有通讯示例。
MCT8329A 高速无传感器梯形控制三相 BLDC 栅极驱动器 datasheet (ti.com.cn)
,
P Zq:
我读取的80地址的数据,返回值都是2fffffff,这是为什么?我写入值为0x84010062
,
Alice:
I2C通讯时,读到MCT83829A的ACK了吗?
,
P Zq:
能读到ack Ack
,
P Zq:
发送完c1后,进行寄存器读取时,无法得到ack
,
P Zq:
发送完读取指令后,进行寄存器读取,但是返回值都是ff,再进行ack时,无法获得ack
,
Alice:
您好,
0xc1是targert ID+I2C读取位吧? 前面要再加个I2C启动。具体请参考数据手册 “7.6.2.3 I 2C 读取操作”。
,
P Zq:
添加了重新启动c1,但是只能接受2次数据,仍不是完成的
,
P Zq:
,
Alice:
您好,
有数据返回,说明MCT83829A芯片已正常工作,
读不全和芯片无关,请检查MCU的I2C读字节程序。
Len是多少?
,
P Zq:
Len我设置了为4,主要是读到数据都是ff,但是实际设置没有ff
,
P Zq:
,
P Zq:
,
Alice:
I2C读取时,发送RS+targert ID+I2C读取位数据,后面的ACK是MCT83829A输出,
然后MCT83829A通过SDA输出数据,ACK由MCU输出,
您程序中的IIC_Wait_Ack()是等待MCT83829A的ACK,没有MCU输出ACK。
,
P Zq:
读取的函数内会发ack,形参0.1我都试过,返回的数据都不太好,只有最后一个一节是对的
,
P Zq:
如我在80地址写入的数据为0x6c9265b7,那么我读取到的数据就是0x5bb7cbb7,只有最后一个对
,
P Zq:
,
P Zq:
给寄存器写入数据时,写完第一个字节,读取ack时都是失败,这样需要重新全部发送吗?
,
Alice:
如前面回复,I2C通讯,发送端要收到接收端的ACK才能发送下一个字节,函数中是使用while()等待ACK吗?
,
P Zq:
是的,专门是为了接受从机发送的ack,如果收不到几天重新发送。
,
P Zq:
如果选择speed引脚输出 pwm 控制驱动,brake拉低,drvoff 拉低,dir 拉高。还有什么需要配置吗?
,
Alice:
请参考数据手册“7.3.9 电机启动顺序 (MSS)”了解启动过程。