|
ubuntu电脑通过can总线连接多个can接口电机,电脑发送标准帧91 00 00 00 00 00 00 00到045设备,045设备会回复91 01 00 00 00 00 00 00(canid改为445),测试一百次收发正常。接入stm32g491ret6的canfd后(配置成can2.0),同样一百次收发会有十几次045设备回复的数据异常,在帧结尾处出现显性电平,而不是7个隐性电平. 以下为正常收发的数据:
以下为异常数据:
发现stm32g4使用受限模式(Restricted operation mode),仍然存在这个问题,改成总线监控模式(Bus monitoring mode)后就不会影响电机发送can消息。请问这个问题可能是什么原因呢 以下为我的canfd配置:
|
STSPIN32G4 STM32G431VBTx CAN FIFO发送数据帧随机变远程帧
如何将电机转速度控制在0.1RPM以下?我尝试过将SPEED_UNIT改为480,电机转速度可以控制在0.125RPM,但最转到250RPM时,编码器计数好像溢出了
STM32G474 HRTIM的single-shot功能,如何使用?
无源晶振开关电路设计
为什么DMA搬运数据只搬运最后1个字节的数?
STSPIN32G4内部驱动电压输出问题
使用Hal库的SPI读取磁边传感器导致STM32G4无法运行
定时器触发SPI
stm32G474RBT3的flash擦除寿命是多少?
stm32g474RE 输出4相波形,如何精准输出ADC触发的问题。
微信公众号
手机版
[md]改成精准的500k后正常了,感谢大佬
这样可以判读是这个节点的软件问题还是个体的硬件问题。
stm32g4在收发测试期间仅接入can总线,没有发送数据
这个是硬件连接框图
测试发现使用HAL_FDCAN_Start启动can总线就会出现该问题(除了总线监听模式),不启动stm32g4的can总线就不会有问题
你将那个时序参数调整下看看,比方这样子试试。
另外,将那个norminal sync jump width改大点,比方这里改成2或3。
检查一下CAN的采样点,是否一致。通过配置的qt时序计算,尽量使用误差小的采样率。
can总线上只有电脑和电机,电脑和电机互发数据正常。
can总线上只有电脑和stm32g4,电脑和单片机互发数据正常。
can总线上有电脑、电机和stm32g4,电脑和电机互发数据偶现异常,电脑和单片机互发数据正常
改成500k后正常了,感谢
好了就行。刚才还给你补充了一句呢。
之前想着差1bit/s应该没关系,没想到这个会导致其他设备异常