国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網

標題: 全志T507實現SPI轉CAN 全過程 [打印本頁]

作者: 阿里嘎多    時間: 2022-4-15 10:09
標題: 全志T507實現SPI轉CAN 全過程



[color=inherit !important]全志T507處理器本身不支持[color=inherit !important]CAN功能,那有什么方法可以實現CAN功能呢?

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

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


一、選擇引腳

首先確認要使用的引腳,由于飛凌嵌入T507[color=inherit !important]開發板默認沒有配置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,這里對相關引腳和[color=inherit !important]時鐘做了配置。


4.2 SPI1的時鐘及引腳配置

時鐘:我們通過查看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目錄中,執行如下[color=inherit !important]命令


make sun50iw9p1smp_longan_defconfigmake 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。


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


    注:


    六、CAN測試

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

    硬件接好SPI轉[color=inherit !important]CAN模塊,與PC機接好,使用USB轉CAN插在電腦上

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


    ifconfig can0 down/ip link set can0 up type can bitrate 125000 triple-sampling onifconfig can0 up/cansend can0 123#12345678     //發送數據/candump can0                  //接收數據
    七、硬件修改方法

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

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




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



    END



    作者: vhyu    時間: 2022-4-19 15:38
    非常詳細的解說




    歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
    主站蜘蛛池模板: 杰罗德游戏在线观看完整版免费 | 亚洲资源在线观看 | 骚婷婷 | 羞羞免费网站在线 | 91avav| 久热这里只有精品12 | 黄色免费网站视频 | 日韩欧美一区二区中文字幕 | 99在线观看视频免费 | 9热这里只有真品 | 日本高清一区二区三区不卡免费 | 国产伦一区二区三区四区久久 | 朝鲜一级毛片 | 国产成人久久久精品毛片 | 久久青青草原 | 国产欧美精品一区二区色综合 | 粉嫩的美女视频在线观看 | 香蕉蕉亚亚洲aav综合 | 欧美日本在线播放 | 亚洲欧美日韩一区超高清 | 青青草针对华人 | 日韩欧美精品一区二区 | 国产成人福利在线视频播放尤物 | 日韩视频高清免费看 | 无人视频完整免费版视频观看下载 | 国产亚洲精品自在线观看 | 精品精品国产高清a毛片牛牛 | 欧洲不卡一卡2卡三卡4卡网站 | 亚洲黄色在线观看视频 | 2022国产精品视频 | 恐怖片在线观看高清 | 91爱视频| 热99re久久精品天堂vr | 国产成人愉拍免费视频 | 成人在线视频免费看 | 2015天堂网| 欧美天天射| 成人黄色激情视频 | 99精品国产综合久久久久五月天 | 欧美成a人片免费看久久 | 99热精品国产三级在线观看 |
  • <p id="kkro7"></p><pre id="kkro7"><label id="kkro7"><th id="kkro7"></th></label></pre>