在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            博客專欄

            EEPW首頁 > 博客 > 工程師講解 | T507實現(xiàn)SPI轉CAN 全過程

            工程師講解 | T507實現(xiàn)SPI轉CAN 全過程

            發(fā)布人:閃電阿飛 時間:2022-04-21 來源:工程師 發(fā)布文章

            作者|牛志超

            來源 | 飛凌嵌入式

            題圖|飛凌嵌入式 FETT507-C核心板



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

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

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


            一、選擇引腳


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

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


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

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


            二、相關設備

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

            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里有調(diào)用:



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



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



            四、配置SPI1


            4.1使能SPI1配置


            搜索SPI1相關內(nèi)容,在sun50iw9p1.dtsi中可以看到



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


            4.2 SPI1的時鐘及引腳配置


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

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



            五、配置SPI轉CAN設備


            5.1 添加設備


            在OKT507-C-Common.dtsi中SPI0節(jié)點后添加SPI轉CAN相關節(jié)點,添加內(nèi)容如下:


            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 = <PH 9 IRQ_TYPE_LEVEL_LOW>;
                  status = "okay";
                };
            };


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


            5.2 時鐘配置


            我們在注冊can的時候用到了時鐘和中斷引腳,前邊關掉音頻時PH9已經(jīng)可以使用了,但是我們用到的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,將以下配置添加到該節(jié)點里邊。


            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驅(qū)動配置


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

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


            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


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

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


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


            注:

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

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


            六、CAN測試


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

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

            啟動T507開發(fā)板執(zhí)行以下程序進行測試:


            ifconfig can0 down
            /ip link set can0 up type can bitrate 125000 triple-sampling on
            ifconfig can0 up
            /cansend can0 123#12345678     //發(fā)送數(shù)據(jù)
            /candump can0                  //接收數(shù)據(jù)

            七、硬件修改方法


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

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




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



            END


            *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



            關鍵詞: T507 SPI CAN 飛凌

            相關推薦

            技術專區(qū)

            關閉