|
由于開發板沒有裝有CAN的收發器,在CAN通訊調測時,是否能像TTL232一樣 交叉連接TX/RX進行通信呢? CAN收發器將MCU的邏輯電平轉換為差分電平,同時將CAN總線上接收到的差分電平信號轉換回邏輯電平信號。正處理數據的是CAN核控制器,在共地的情況下兩個CAN-TX/RX在無收到器時是可以像TTL232一樣 交叉TX/RX直連的; 但這還不夠,因為CAN控制器的優先仲裁機制還需要實時RX偵測總線信號,只交叉連接時TX的電平無法反饋到RX上,將發送端的Tx+Rx直接并接可以實現RX反饋TX信號,但接收端的Tx+Rx直接并接會壞TX電平,當接收端轉為發送端時亦是如此。 參考了網上的方法,使用二極管對RX->TX進行隔離,實際在STM32F4x上測試,發現不通,示波器波形發現TX根本無法將電平拉低到地,最多只能拉到一半VCC(3V3); 于是想到用三極管,于是做出如下改進電路:
改進后 實測效果OK,波形與帶收發器一致,完美通信;
此電路在20K~250K速率下短距離(10~20CM)測試沒問題; 如果需要較高速率時,應將三極管更換為高頻管,并視情況降低其驅動電阻R1/R3的阻值,可以獲得更好的驅動效果。
|