chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

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

飛凌嵌入式 ? 2022-01-14 13:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者|牛志超

來源 | 飛凌嵌入式

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

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

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

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

一、選擇引腳

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

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

ac10f230-748b-11ec-8495-dac502259ad0.png

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

ac5bdcc8-748b-11ec-8495-dac502259ad0.png

我們需要的引腳已經(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

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

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

ac91ab0a-748b-11ec-8495-dac502259ad0.png

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

acb3a12e-748b-11ec-8495-dac502259ad0.png

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

ace30a36-748b-11ec-8495-dac502259ad0.png

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

ad046528-748b-11ec-8495-dac502259ad0.png

四、配置SPI1

4.1使能SPI1配置

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

ad337b56-748b-11ec-8495-dac502259ad0.png

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

4.2SPI1的時鐘及引腳配置

時鐘:我們通過查看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。

ad683c56-748b-11ec-8495-dac502259ad0.png

五、配置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 = ;      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驅動配置

到此,我們在設備樹中的修改已經(jīng)完成接下來,我們添加mcp2515驅動配置,驅動位于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_defconfigmake 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.shkernel單步編譯內(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拷貝到開發(fā)板根目錄。

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

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

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

左右滑動查看完整代碼

七、硬件修改方法

在OKT507-C開發(fā)板上移植使用SPI轉CAN模塊

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

ada26d7c-748b-11ec-8495-dac502259ad0.jpg

adeb19dc-748b-11ec-8495-dac502259ad0.jpg

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

ae1a4284-748b-11ec-8495-dac502259ad0.jpg

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

    關注

    57

    文章

    2920

    瀏覽量

    467841
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    條碼信號“搭子”來了:CANEtherCAT掃碼連動器,靠譜!

    間,工程師通過部署耐達訊通信技術CANEtherCAT網(wǎng)關,將原有的CAN接口掃描儀接入EtherCAT網(wǎng)絡。關鍵操作包括: 在網(wǎng)關中啟用CAN
    發(fā)表于 07-16 14:22

    工程師福音!CCLinkieModbus RTU讓粉塵監(jiān)測不再“揚灰”

    儀,反之亦然。工程師只需通過可視化軟件進行簡單配置,設定好波特率、從站地址和數(shù)據(jù)映射關系,即可實現(xiàn)兩種協(xié)議的實時同步,讓數(shù)據(jù)“透明”傳輸。 應用案例:粉塵儀聯(lián)網(wǎng)難題迎刃而解 某工業(yè)園區(qū)的環(huán)境監(jiān)測站需將
    發(fā)表于 06-26 14:21

    做了電子工程師之后,最好拍的視頻出現(xiàn)了#硬件設計 #電子DIY #電子工程師

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年06月24日 17:45:57

    流量計連接神器 CClinkieModbus RTU:工程師的「斷舍離」指南

    不必要的成本。有沒有一種\"斷舍離\"的方法,讓工程師擺脫這個煩惱?答案就是耐達訊通信技術CClinkieModbus RTU的轉換方案。 方案概述: CClinkie
    發(fā)表于 06-24 13:53

    工程師的“新神器”:用CCLinkieDevicenet連接水質分析儀,輕松搞定數(shù)據(jù)難題

    ”,數(shù)據(jù)傳輸不暢,工程師們只能頻繁地在設備之間奔波,手動抄錄數(shù)據(jù),不僅效率低下,還容易出錯。 好在,有了耐達訊CCLinkieDevicenet網(wǎng)關這個“橋梁”,一切就變得簡單了。CCLinkie
    發(fā)表于 06-09 15:36

    全面對比!全志T536與T507/A40i平臺在項目中該怎么選?一文幫你搞定!

    在當今競爭愈發(fā)激烈的工業(yè)市場中,如何平衡“成本與性能”始終是企業(yè)關注的核心問題。T536作為全志科技新一代的明星產(chǎn)品,一經(jīng)問世便備受市場矚目,而T507與A40i也憑借出色表現(xiàn),在多種工業(yè)應用場景中大放異彩。
    的頭像 發(fā)表于 05-21 10:51 ?387次閱讀
    全面對比!全志<b class='flag-5'>T</b>536與<b class='flag-5'>T507</b>/A40i平臺在項目中該怎么選?一文幫你搞定!

    問,成為硬件工程師需要幾只手?#硬件工程師 #YXC晶振 #揚興科技 #搞笑

    硬件工程師
    揚興科技
    發(fā)布于 :2025年04月25日 17:15:37

    硬件工程師手冊(全套)

    經(jīng)過總體組的評審,器件和廠家 的選擇要參照物料認證部的相關文件,開發(fā)過程完成相應的規(guī)定文檔,另外,常 用的硬件電路(如 ID.WDT)要采用通用的標準設計。 第二節(jié) 硬件工程師職責與基本技能
    發(fā)表于 04-22 15:05

    硬件工程師:回答我!#回答我 #硬件工程師 #YXC晶振 #揚興科技

    硬件工程師
    揚興科技
    發(fā)布于 :2025年03月25日 18:46:59

    一招拿捏電子工程師#被AI拿捏了 #電子工程師 #電子電工

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年03月25日 17:30:51

    硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導體器件 #硬件工程師 #MDD辰達半導體

    硬件工程師
    MDD辰達半導體
    發(fā)布于 :2025年02月24日 19:00:35

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

    邏輯工程師和 FPGA 原型驗證工程師在工作重點和職責上存在一定的區(qū)別: FPGA 算法工程師: 主要關注算法的設計和優(yōu)化,以在 FPGA 平臺上實現(xiàn)高效的計算和處理。他們需要深入理
    發(fā)表于 09-23 18:26