TI中文支持网
TI专业的中文技术问题搜集分享网站

SN65HVD230: 必须要在正常模式才能完全接收总线上的数据?

Part Number:SN65HVD230

1.实测:230处在仅监听模式时,STM32 MCU在收到Rx引脚信号后,必须第一时间把Rs引脚拉低才能收到正确的总线数据。

2.数据表中的这段话改如何理解呢?

3.如果我的节点在低功耗模式,只需要接收总线的指令,不需要发送数据,那么理想状态是让VP230一直处在仅监听模式,能否实现呢?

Amy Luo:

您好,

今天是周末,周一我将处理您的问题

,

Amy Luo:

您好,

这段话的意思是:在仅监听模式下,驱动电路被关闭,接收电路继续监测总线活动,当总线上出现显性位(总线差分电压>900 mV典型值)时,接收器将此信息传递给其DSP/CAN控制器,该控制器可以反过来激活处于待机状态的电路,即将设备的Rs引脚置逻辑低以激活驱动电路。因此,让SN65HVD230一直处在仅监听模式应该是可以的,我再确认下为什么需要拉低RS才能接收正确的总线数据

,

kang lv:

感谢回复,按照逻辑来说,应该是可以跟半双工的RS485类似,拉高Rs引脚之后处在接收模式,拉低Rs引脚之后进入发送模式(此时也可以接收数据)

,

Amy Luo:

您是使用的SN65HVD230吗?还是其他的器件?正常CAN协议要求接收设备发送ACK

,

kang lv:

1.是的,我使用的正是SN65HVD230。

2.经我们测试,SN65HVD230在休眠状态下能够接收到总线上的显性位,这时候MCU拉低Rs引脚唤醒SN65HVD230,能够正常接收总线数据。

3.基于功耗的考虑,当主机轮询节点时,我想要实现SN65HVD230在休眠状态下完整接收总线数据,这样只有被轮询的节点发送响应就可以了,从而大幅降低系统功耗。

4.实际测试发现SN65HVD230在休眠状态下无法完整接收总线数据,在数据表中也没有明确说明,所以想请教下您,希望能得到肯定的答案,谢谢!

,

Amy Luo:

在仅监听模式下,不需要拉低RS引脚,SN65HVD230是可以只接收数据的。拉低RS,设备就处于高速模式了,肯定能正确接收数据,这是意料之中的。

您是否可以详细描述您看到的异常情况?另外,您可以附上您的原理图吗?

,

kang lv:

1.以下是原理图:

2.以下是我查找的其它CAN收发器的说明,它这里有明确说收到显性位之后需要将收发器切换回高速模式。不知道SN65HVD230是否也是同样的设计逻辑?

3.我的异常:主机发送数据,总线上显性位之后会在中断里边把收发器切换到高速模式(CAN_Transceiver_Work函数),总线上数据能正确接收。

如果总线上显性位之后会不把收发器切换到高速模式(注释掉CAN_Transceiver_Work函数),那么我的节点就接收不到任何数据了。

,

Amy Luo:

SN65HVD230在拉高RS引脚后,即(Listen Only 模式下,是可以正常接收总线数据的。在您的程序里,是否设置了接收总线数据的条件?或者说只有在进入高速模式后才能去接收总线数据?

,

kang lv:

3.我的异常:主机发送数据,总线上显性位之后会在中断里边把收发器切换到高速模式(CAN_Transceiver_Work函数),总线上数据能正确接收。

如果总线上显性位之后会不把收发器切换到高速模式(注释掉CAN_Transceiver_Work函数),那么我的节点就接收不到任何数据了。

区别就是一句代码:拉低Rs或者不拉低Rs

,

Amy Luo:

好的,我正在确认SN65HVD230是不是在接收数据的时候需要发应答ACK才可以,通过您的情况,好像是需要发ACK位,这样对方才知道这边已经接收数据了

,

Amy Luo:

因为只有将RS拉低,SN65HVD230的驱动电路才能激活,才能发生ACK位

,

kang lv:

好的,谢谢您!

赞(0)
未经允许不得转载:TI中文支持网 » SN65HVD230: 必须要在正常模式才能完全接收总线上的数据?
分享到: 更多 (0)