CAN 使用
1. CAN 簡介
CAN (controller Area Network):控制器局域網絡總線,是一種有效支持分布式控制或實時控制的串行通信網絡。
- 目前世界上絕大多數汽車制造廠商都采用CAN總線來實現汽車內部控制系統之間的數據通信。
- RK3568/RK3588的CAN驅動文件:drivers/net/can/rockchip/rockchip_canfd.c
- 在ArmSoM-Sige7中,CAN集成在40PIN中,可供用戶復用為CAN相關引腳。
2. 原理圖
CAN在40PIN中的位置: CAN_TX對應40PIN中的第35編號,CAN_RX對應40PIN中的第12編號
3. 硬件連接
CAN模塊之間接線:CAN_TX接CAN_TX,CAN_RX接CAN_RX。
4. 內核配置
- rockchip_linux_defconfig配置:
CONFIG_CAN=y
CONFIG_CAN_DEV=y
CONFIG_CAN_ROCKCHIP=y
CONFIG_CANFD_ROCKCHIP=y
- 內核配置:
cd kernel
make ARCH=arm64 menuconfig
make savedefconfig
- 選擇:Networking support ---> CAN bus subsystem support ( )--->CAN Device Drivers( ) ---> Platform CAN drivers with Netlink support(*)
5. DTS 節點配置
5.1 主要參數:
5.2 芯片級公共配置
kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588s.dtsi
can0: can@fea50000 {
compatible = "rockchip,can-2.0";
reg = < 0x0 0xfea50000 0x0 0x1000 >;
interrupts = < GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH >;
clocks = < &cru CLK_CAN0 >, < &cru PCLK_CAN0 >;
clock-names = "baudclk", "apb_pclk";
resets = < &cru SRST_CAN0 >, < &cru SRST_P_CAN0 >;
reset-names = "can", "can-apb";
pinctrl-names = "default";
pinctrl-0 = < &can0m0_pins >;
tx-fifo-depth = < 1 >;
rx-fifo-depth = < 6 >;
status = "disabled";
};
can1: can@fea60000 {
compatible = "rockchip,can-2.0";
reg = < 0x0 0xfea60000 0x0 0x1000 >;
interrupts = < GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH >;
clocks = < &cru CLK_CAN1 >, < &cru PCLK_CAN1 >;
clock-names = "baudclk", "apb_pclk";
resets = < &cru SRST_CAN1 >, < &cru SRST_P_CAN1 >;
reset-names = "can", "can-apb";
pinctrl-names = "default";
pinctrl-0 = < &can1m0_pins >;
tx-fifo-depth = < 1 >;
rx-fifo-depth = < 6 >;
status = "disabled";
};
can2: can@fea70000 {
compatible = "rockchip,can-2.0";
reg = < 0x0 0xfea70000 0x0 0x1000 >;
interrupts = < GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH >;
clocks = < &cru CLK_CAN2 >, < &cru PCLK_CAN2 >;
clock-names = "baudclk", "apb_pclk";
resets = < &cru SRST_CAN2 >, < &cru SRST_P_CAN2 >;
reset-names = "can", "can-apb";
pinctrl-names = "default";
pinctrl-0 = < &can2m0_pins >;
tx-fifo-depth = < 1 >;
rx-fifo-depth = < 6 >;
status = "disabled";
};
- compatible = “rockchip,can-1.0” ,rockchip,can-1.0用來匹配can控制器驅動。
- compatible = “rockchip,can-2.0” ,rockchip,can-2.0用來匹配canfd控制器驅動。
- assigned-clock-rates用來配置can的始終頻率,如果CAN的比特率低于等于3M建議修改CAN時鐘到100M,信號更穩定。高于3M比特率的,時鐘設置200M就可以。
- pinctrl配置:根據實際板卡連接情況配置can_h和can_l的iomux作為can功能使用。
5.3 板級配置
kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588-armsom-w3.dts
/* can1 */
&can1 {
status = "okay";
assigned-clocks = < &cru CLK_CAN1 >;
assigned-clock-rates = < 200000000 >;
pinctrl-names = "default";
pinctrl-0 = < &can1m1_pins >; #根據原理圖進行配置
};
- 由于系統根據上述dts節點創建的CAN設備只有一個,而第一個創建的設備為CAN0
6. CAN通信測試
- 查詢當前?絡設備:
ifconfig -a
- CAN啟動
ip link set can0 down //關閉CAN
ip link set can0 type can bitrate 500000 #設置?特率500KHz
ip -details -statistics link show can0 #打印can0信息
ip link set can0 up //啟動CAN
- CAN發送
cansend can0 123#DEADBEEF #發送(標準幀,數據幀,ID:123,date:DEADBEEF)
cansend can0 123#R #發送(標準幀,遠程幀,ID:123)
cansend can0 00000123#12345678 #發送(擴展幀,數據幀,ID:00000123,date:DEADBEEF)
cansend can0 00000123#R #發送(擴展幀,遠程幀,ID:00000123)
- CAN接收
candump can0 //candump can0
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
CAN
+關注
關注
57文章
2920瀏覽量
467781 -
Linux
+關注
關注
87文章
11511瀏覽量
213758 -
總線
+關注
關注
10文章
2959瀏覽量
89749 -
Rockchip
+關注
關注
0文章
80瀏覽量
19119
發布評論請先 登錄
相關推薦
熱點推薦
如何使用Banana Pi BPI-M7 瑞芯微RK3588開發板的CAN功能
?
4.2.1 CAN 引腳?
以ArmSoM-Sige7為實例,CAN在40PIN中的位置:
Sige7 40PIN定義
I2C
引腳
功能
CAN1_TX_M1
3
發表于 05-30 17:49
ArmSoM RK3588/RK3576核心板,Rockchip攝像頭使用
1. Camera 簡介? ArmSoM系列產品使用的是mipi-csi接口的攝像頭 ArmSoM-Sige7支持雙攝同顯: rk3588開發板 2. RK3588硬件通路框圖? rk3588攝像頭

ArmSoM RK3588/RK3576核心板,開發板網絡設置
ArmSoM系列產品都搭配了以太網口或WIFI模塊,PCIE轉以太網模塊、 USB轉以太網模塊等,這樣我們的網絡需求就不止是上網這么簡單了,可以衍生出多種不同的玩法。 rk3588/rk3576

上海貝嶺150V SGT MOSFET系列產品介紹
上海貝嶺推出150V SGT MOSFET系列產品。貝嶺150V SGT系列產品采用業界先進工藝,使得器件具有良好的柵極漏電流IGSS性能;采用深溝槽、多層外延襯底以及多重浮空環終端結構,使得器件

HOLTEK發布全新CAN Bridge IC系列
近日,Holtek(合泰半導體)針對CAN Bus應用領域,正式推出了全新的CAN Bridge IC系列,包括HT42B216-1、316-1、416-1和536-1等型號。這一系列產品
Banana Pi 攜手 ArmSoM 推出人工智能加速 RK3576 CM5 計算模塊
”系統模塊,根據你問的對象,可以稱為 ArmSom-CM5 或 BPI-CM5 Pro——設計為由 Rockchip RK3576 驅動的 Raspberry Pi Compute Module 4
發表于 12-11 18:38
Banana Pi攜手ArmSoM推出人工智能加速 RK3576 CM5
Banana Pi 和 ArmSoM 宣布推出“CM5”系統模塊,根據你問的對象,可以稱為 ArmSom-CM5 或 BPI-CM5 Pro——設計為由 Rockchip RK3576 驅動

HOLTEK新推出CAN Bridge IC系列產品
Holtek針對CAN Bus應用推出CAN Bridge IC系列 HT42B216-1/316-1/416-1/536-1,整合Bosch授權的CAN模塊,支持
Rockchip SoC 賦能 AI 與視覺創新:推動智能設備的未來發展
的 SoC,非常適合用于 AI 驅動的邊緣計算、安全監控、機器人技術等應用領域。 armsom board 本文將探討 Rockchip 在 AI 和視覺領域的 SoC 路線圖發展,重點介紹 RK3588

ArmSoM-Sige5 RK3576開發板正式發布
ArmSoM-Sige5 采用Rockchip RK3576第二代8nm高性能AIOT平臺,6 TOPS算力NPU,最大可配32GB大內存。支持8K視頻編解碼,擁有豐富的接口,支持雙千兆網口

艾為燈語呼吸燈系列產品的應用領域
多色絢爛的光源交相輝映,構成了一幅流動著光影之美的畫卷,極富視覺沖擊力。艾為燈語呼吸燈系列產品,歷經發展,現已廣泛滲透至智能手機、物聯網(IoT)、智能家居以及汽車行業等諸多前沿領域,展現了其在多元化應用場景中的創新與適應能力。
評論