Share on:

少於 1 分鐘閱讀

前言

本篇內容將以 MCP251xFD 晶片為例,將其CAN Bus設定成loopback,並用邏輯分析儀來量測內部訊號,得知loopback mode下CAN Bus的資料怎麼傳與接收。

前提準備

我們假設已經設定好CAN Bus dtoverlay,也上好linux kernel driver,請參考這篇文章->RPi CM4 SPI 轉 CAN Bus MCP251xFD 的使用 打通 CAN Bus 自檢<-

我看到的參考資料

資料連結如右連結在這裡 我們可以看到他的SPI to CAN Bus loopback圖data傳遞路徑如下 TCAN4550_Loopback_Modes

再來我這邊是用MCP2517FD這顆SPI to CAN Bus的晶片,我們看一下他的datasheet如下圖 mcp2517fd_interfacing_with_mcu mcp2517fd_block_diagram

我打算用邏輯分析儀來量測RXCAN與TXCAN量不量的到訊號,因為根據參考的圖,不論是internal或external loopback mode看起來再CANH與CANL之前的TX與RX會有資料傳遞,底下就來驗證看看。

CAN Bus loopback mode設定

請參考底下指令設定

$ sudo ip link set can0 type can loopback on
$ sudo ip link set can0 up type can bitrate 1000000

dump資料看看有沒有接收與傳送資料

$ sudo candump can0&

傳送資料測試

$ cansend can0 001#1122334455667788
  can0  001   [8]  11 22 33 44 55 66 77 88
  can0  001   [8]  11 22 33 44 55 66 77 88

兩筆資料代表傳送與接收

邏輯分析儀量測

這邊我已經接好線路至SPI interface就是MCP2517FD上的SCK、SI、SO、nCS。 測出來在loopback mode之下是有SPI訊號的如下圖所示 spi_to_can_bus_mcp2517fd

表示loopback mode會在MCP2517FD內部自己loopback如下圖所示 mcp2517fd_interfacing_with_mcu_modify

結語

研究原理探究跟因~

留言