stm32f1000的rx和tx是怎么接的
发布网友
发布时间:2022-11-11 00:30
我来回答
共1个回答
热心网友
时间:2024-12-03 07:17
SJA1000的TX0/TX1,RX0/RX1在不使用外接驱动器的情况下是设计直接接CAN总线CANH/CANL的,这时,把TX0和RX0短接,TX1和RX1短接后分别挂到CANH、CANL即可。要注意的是,SJA1000内部发送驱动器TP/TN场效应管不知有无过流保护电路,为可靠起见,最好将电源经过限流电阻再接到VDD2/VDD3管脚。(或者采用限流电源100MA)。VDD2/VSS2V对应TX0发送驱动器的供电,DD3/VSS3对应TX1发送驱动器的供电电源。VDD1/VSS1是芯片电源。
显然我们一般是用外接CAN总线驱动器82C250一类的。其输入TX、输出RX,是单极性。这时用SJA1000的TX0/TX1或者RX0/RX1管脚应该是一样的,但由于TX1和RX1内部电路设计赋予了其他功能,所以只用TX0和RX0与82C250驱动器相接。下面入正题:
RX0和RX1是SJA1000内部差分接收比较器A的两个输入端,不用外接总线驱动器时对应接CANH、CANL,现在是单极性输入到RX0,那么RX1应该接到CAN电平(比较器电平)中点,即2.5V。这就是总线驱动器一般都供给参考电压2.5V的原因。这时要注意的前题是:CDR寄存器中的CBP位必须设置为“0”。
CBP位控制芯片内部差分比较器A附加的一个电子开关B,B像一个接在比较器A(-)输入端的单刀双掷开关,(比较器A(+)输入端接了RX0。)一掷接RX1,另一掷接比较器输出端;这样,通过电子开关B的切换,差分比较器A要么是比较器,要么是跟随器。当CBP=1时,它是跟随器(整形电路)。RX1管脚这时悬空,接哪里或者不接按道理都行。由于它引入到芯片内部,悬空可能引入噪声,所以手册建议将RX1接一固定电平,VDD/VSS/2.5V均可。另:跟随器减少了比较器的延时,这就是手册上说的CBP=1时,可以减少信号延时,放宽总线距离的原因。
结论:如果不清楚电子线路(运算放大器、比较器、跟随器、N/P沟道场效应管等等电路),只要将SJA1000的RX1管脚接到总线驱动器82C250一类的参考电压输出端Vref即可,这时无论CBP位设置1/0,通信都能正常进行。
这只是原理上解释为什么有些书上的RX1接地,有些书又接Vref。
电子开关B也许是接在比较器A的下一级的输入上,然后一掷接比较器A输出,一掷接RX0输入,当CBP=0时,开关连接A输出,断开RX0。
当CBP=1时,开关连接RX0,断开A输出,这样真正跨越了比较器A的延时。(这时RX1接什么已经无所谓了)。
跟随器叙述好像不严格。不过原理是这样。