<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全志T507處理器如何實現SPI轉CAN功能

流川楓楓 ? 來源:流川楓楓 ? 作者:流川楓楓 ? 2022-04-15 10:06 ? 次閱讀

全志T507處理器本身不支持CAN功能,那有什么方法可以實現CAN功能呢?

我們已知FETT507-C核心板是支持SPI接口的,但底板沒有引出該接口,所以小編打算通過引腳復用方式,復用出SPI接口并做成SPI轉CAN,來實現CAN功能。

本文所采用的方法是通過添加MCP2515驅動及配置,實現SPI轉CAN功能。

一、選擇引腳

首先確認要使用的引腳,由于飛凌嵌入T507開發板默認沒有配置SPI,因此既要選用于SPI功能的引腳,也要選擇用于can模塊的中斷引腳。

SPI需要CS0、CLK、MOSI、MISO四個引腳,can模塊需要一個中斷引腳。中斷引腳可以隨便使用一個具有中斷功能的引腳。打開硬件資料中的飛凌嵌入式T507核心板引腳復用對照表,先確認哪些引腳可以用做SPI,我們搜索SPI可以找到兩組引腳

因為PC3、PC4和啟動相關這里不考慮使用SPI0,我們用SPI1,SPI1使用的引腳默認為音頻接口使用的引腳,音頻將不能使用。所以我們的中斷引腳也從音頻使用的引腳中選擇,我們選擇PH9(用戶可根據實際情況選擇具有中斷功能的引腳)。

我們需要的引腳已經確定了(加粗的5個引腳),現在進行軟件修改

二、相關設備

首先查看設備樹,本次使用到的設備樹如下:

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi

三、去掉所選引腳原有配置

從核心板引腳功能復用表格可以看到,選用的引腳原本配置的功能:

sun50iw9p1-pinctrl.dtsi搜索PH5引腳,可以看到ahub_daudio3_pins_a和ahub_daudio3_pins_b是用于音頻,在設備樹路徑使用grep"ahub_daudio3_pins_a" ./ -nr指令可以查到,在sun50iw9p1.dtsi里有調用:

打開sun50iw9p1.dtsi,可以看到在ahub_daudio3節點有調用,將status設置為disabled(默認即為disablded狀態)

這個設備樹里設置的disabled,繼續查找該設備樹的上級設備樹:OKT507-C-Common.dtsi。OKT507-C-Common.dtsi有做開啟設置,需要將ahub_daudio3關掉,status= "disabled"。PH5、PH6、PH7、PH8、PH9的占用都解除了。

四、配置SPI1

4.1使能SPI1配置

搜索SPI1相關內容,在sun50iw9p1.dtsi中可以看到

這個是對SPI1的注冊,將status改為okay,這里對相關引腳和時鐘做了配置。


4.2SPI1的時鐘及引腳配置

時鐘:我們通過查看sun50iw9p1-clk.dtsi可以看到clk_pll_periph0和clk_spi1的內容,我們使用默認配置即可。這里不再貼圖,可自行查看

引腳:我們查看sun50iw9p1-pinctrl.dtsi可以看到spi1_pins_a、spi1_pins_b和spi1_pins_c的內容,使用引腳為PH5、PH6、PH7、PH8。

五、配置SPI轉CAN設備

5.1 添加設備

在OKT507-C-Common.dtsi中SPI0節點后添加SPI轉CAN相關節點,添加內容如下:

spi1: spi@05011000 { pinctrl-0 = <&spi1_pins_a &spi1_pins_b>; pinctrl-1 = <&spi1_pins_c>; spi_slave_mode = <0>; status = "okay"; can0: can@0 { compatible = "microchip,mcp2515"; pinctrl-names = "default"; pinctrl-0 = <&mcp2515_int>; reg = <0>; spi-max-frequency = <1000000>; clocks = <&clk_osc8m>; interrupt-parent = <&pio>; interrupts = ; status = "okay"; }; };

其中中斷引腳配置,請根據實際配置的引腳進行修改。

5.2 時鐘配置

我們在注冊can的時候用到了時鐘和中斷引腳,前邊關掉音頻時PH9已經可以使用了,但是我們用到的8M時鐘clk_osc8m還沒有注冊。

打開sun50iw9p1-clk.dtsi,添加clk_osc8m到clk_osc48m下邊

clk_osc8m: osc8m { #clock-cells = <0>; compatible = "allwinner,fixed-clock"; clock-frequency = <8000000>; clock-output-names = "osc8m"; };

如果是選擇24M晶振,也可注冊clk_osc24m,clock-frequency改為24000000

5.3 中斷引腳配置

在OKT507-C-Common.dtsi中添加,在該設備樹中搜索:pio:pinctrl@0300b000,將以下配置添加到該節點里邊。

mcp2515_int: can0@0 { allwinner,pins = "PH9"; allwinner,pname = "mcp2515_int"; allwinner,function = "irq"; allwinner,muxsel = <6>; allwinner,drive = <1>; allwinner,pull = <0>; };

5.4 mcp2515驅動配置

到此,我們在設備樹中的修改已經完成接下來,我們添加mcp2515驅動配置,驅動位于kernel/linux-4.9/drivers/net/can/spi/,可以看到mcp251x.c,我們可以打開該目錄里的Makefile文件,Makefile文件中已經配置了CONFIG_CAN_MCP251X

進入kernel/linux-4.9目錄中,執行如下命令:

make sun50iw9p1smp_longan_defconfig make menuconfig ARCH=arm64

進入圖形配置界面,我們添加mcp2515的編譯,每一級目錄選如下選項:

[*] Networking support ---> <*>CAN bus subsystem support ---> CAN Device Drivers ---> CAN SPI interfaces ---> <*> Microchip MCP251x SPI CAN controllers

前邊括號里的內容通過空格鍵修改,“*”是編譯進內核,“M”是編譯成模塊,空的是不編譯。此處需要編譯進內核

修改完成后按Esc鍵退出,最后選yes保存配置為.config。

修改完成,按照手冊編譯源碼,生成鏡像

注:

配置menuconfig后保存為.config,使用./build.sh kernel單步編譯內核,會使用該.config

若使用./build.sh進行全編譯,會重新把sun50iw9p1smp_longan_defconfig加載為.config,之前的配置將不生效。因此通過menuconfig修改完后,保存的.config要做好備份,在全編譯前需要將文件,將其重命名為 sun50iw9p1smp_longan_defconfig,并替換kernel/linux-4.9/arch/arm64/configs下的同名文件

六、CAN測試

將編譯好的鏡像燒錄到核心板中,并將資料里的相關測試工具:ip、cansend和candump拷貝到T507開發板根目錄。

硬件接好SPI轉CAN模塊,與PC機接好,使用USB轉CAN插在電腦

啟動T507開發板執行以下程序進行測試:

ifconfig can0 down /ip link set can0 up type can bitrate 125000 triple-sampling on ifconfig can0 up /cansend can0 123#12345678 //發送數據 /candump can0 //接收數據

七、硬件修改方法

在飛凌嵌入式T507開發板上移植使用SPI轉CAN模塊

首先要在T507開發板上去掉C132/U18這兩個器件,之后通過飛線的方式將SPI轉CAN的模塊連接至T507開發板,連接方式如下:

SPI轉CAN的5V主供電可以通過音頻芯片正下方的R194和R199上獲得,位置如下圖:

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    18354

    瀏覽量

    222574
  • CAN
    CAN
    +關注

    關注

    56

    文章

    2477

    瀏覽量

    459584
  • 全志
    +關注

    關注

    24

    文章

    221

    瀏覽量

    52676
  • T507
    +關注

    關注

    2

    文章

    48

    瀏覽量

    1373
收藏 人收藏

    評論

    相關推薦

    FETT507-C核心板方案 全志T507添加MCP2515驅動實現SPICAN

    全志T507處理器本身不支持CAN功能,那有什么方法可以實現CAN
    發表于 04-27 18:23 ?3206次閱讀

    T7芯片處理器

    T7處理器專門針對新一代智能座艙打造,可以滿足信息娛樂系統、數字儀表、360環視系統、ADAS、DMS、流媒體后視鏡、云鏡等多個不同智能化系統的運行需求,讓車企僅僅憑借一款芯片,就
    發表于 07-23 07:29

    T507開發板如何在Android系統上進行OTA升級?

    ,T507開發板自動重啟進入recovery。adb reboot recovery在T507開發板上通過音量上下鍵選擇Apply update from ADB在PC端cmd里輸入:adb sideload
    發表于 09-22 17:05

    如何在T507上開啟SPI控制?

    我想在T507上開啟SPI控制,配置文件,menuconfig,確認都已配置好,但鏡像燒寫到核心板,顯示無spi設備,請教哪里弄錯了?相關配置如下:目標板設備列表,無SPI設備:
    發表于 12-31 06:35

    T507操作小技巧連載1-T507屏幕切換的兩種方式

    T507操作小技巧連載1-T507屏幕切換的兩種方式一、硬件操作平臺介紹FETT507-C核心板集成全
    發表于 01-14 11:26

    T507核心板4路AHD攝像頭實現方案

    飛凌嵌入式搭載T507處理器的FETT507-C核心板自今年5月發布以來,便因其易用性、通用性和高性價比迅速在市場中收獲了較高的美譽度。
    發表于 03-17 17:12

    A40i及T3開發板 SPICAN的使用方式

    本文主要對OKA40i-C開發板/OKT3-C開發板CAN功能使用過程中多次遇到的問題進行講解。由于 A40i/T3 CPU 中未包含
    發表于 04-18 15:06

    A40i開發版及T3開發板 SPICAN的使用方式

    本文主要對OKA40i-C開發板/OKT3-C開發板CAN功能使用過程中多次遇到的問題進行講解。https://www.forlinx.com/product/58.html由于
    發表于 04-19 18:45

    米爾推出基于T507-H的MYC-YT507H核心板

    口,4個USB2.0接口,1個SPI,5個UART,2個SDIO。?品質可靠: 板載T507-H處理器、PMIC電源管理芯片、LPDDR
    發表于 02-14 15:19

    OpenHarmony智慧設備開發-芯片模組簡析T507

    T507:已具體產品化的完成OpenHarmony移植適配的模組。 主要能力: 工業級T507芯片,該芯片集成四核CortexTM – A53 CPU、G31 MP2 GPU、多路
    發表于 05-11 16:34

    全志T507實現SPICAN 全過程的詳細講解

    全志T507處理器本身不支持CAN功能,那有什么方法可以實現CAN
    發表于 01-19 11:38 ?1820次閱讀

    詳解全志T507實現SPICAN功能

      ?全志T507處理器本身不支持CAN功能,那有什么方法可以實現CAN
    發表于 02-10 14:53 ?992次閱讀
    詳解全志<b class='flag-5'>T507</b><b class='flag-5'>實現</b><b class='flag-5'>SPI</b>轉<b class='flag-5'>CAN</b><b class='flag-5'>功能</b>

    全志T507操作小技巧連載2-T507以太網配置方法

    本文硬件平臺采用全志T507四核車規級處理器設計開發板,本文講解T507開發板以太網配置方法。其它板卡設置略有不同,請參考使用。 一、全志T507系列硬件介紹 FETT
    的頭像 發表于 08-31 19:19 ?2045次閱讀
    全志<b class='flag-5'>T507</b>操作小技巧連載2-T<b class='flag-5'>507</b>以太網配置方法

    T507-全志T507核心板常見問題解析-飛凌嵌入式T507核心板

    本文硬件平臺采用全志T507四核車規級處理器設計核心板,本文整理在使用飛凌嵌入式T507產品過程種,常常碰到的幾個問題,其它T507板卡設置,請參考使用。
    的頭像 發表于 10-28 17:54 ?1197次閱讀
    T<b class='flag-5'>507</b>-全志<b class='flag-5'>T507</b>核心板常見問題解析-飛凌嵌入式<b class='flag-5'>T507</b>核心板

    工程師講解 | T507實現SPICAN 全過程

    作者|牛志超來源|飛凌嵌入式題圖|飛凌嵌入式FETT507-C核心板全志T507處理器本身不支持CAN功能,那有什么方法可以
    的頭像 發表于 01-14 13:56 ?1147次閱讀
    工程師講解 | <b class='flag-5'>T507</b><b class='flag-5'>實現</b><b class='flag-5'>SPI</b>轉<b class='flag-5'>CAN</b> 全過程
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>