一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

i.MX8MPlus開發(fā)板實(shí)現(xiàn)SPI轉(zhuǎn)CAN,該如何操作?

飛凌嵌入式 ? 2023-09-04 16:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

飛凌嵌入式OKMX8MP-C開發(fā)板有兩路原生CAN總線,但用戶在開發(fā)產(chǎn)品時(shí)可能需要用到更多的CAN,這該如何解決呢?今天小編將為大家介紹一種SPI轉(zhuǎn)CAN的方法,供各位工程師小伙伴參考。


說明

OKMX8MP-C核心板有兩路原生的SPI總線,目前是將SPI1的引腳用作了LEDUART3的功能,SPI2做成了正常的SPI2接口。此處以SPI2轉(zhuǎn)CAN為例,移植SPI轉(zhuǎn)CAN芯片;

SPI轉(zhuǎn)CAN芯片型號(hào)為:MCP2518,這款芯片可轉(zhuǎn)出CAN-FD,若只需要CAN功能,可參照該方式移植MCP2515或其他芯片;

本次移植的MCP2518芯片驅(qū)動(dòng)來源是i.MX8MQ的源碼(處理器中默認(rèn)移植MCP2518芯片)。

wKgZomT5QKWABPCtAAGqeU6B1M0490.jpg

1、移植MC2518芯片驅(qū)動(dòng)

OK8MP-linux-kernel/drivers/net/can/spi/路徑下創(chuàng)建一個(gè)文件夾——mcp25xxfd,將相關(guān)文件(包含.c文件、.h文件、Makefile、Kconfig等)放置到此文件夾中。

2、補(bǔ)全對(duì)can_rx_offload_add_manual函數(shù)的定義

viOK8MQ-linux-kernel/include/linux/can/rx-offload.h

添加:

int can_rx_offload_add_manual(struct net_device *dev, struct can_rx_offload *offload, unsigned int weight)

viOK8MQ-linux-kernel/drivers/net/can/rx-offload.c

添加:

int can_rx_offload_add_manual(struct net_device *dev, struct can_rx_offload *offload, unsigned int weight) { if (offload->mailbox_read) return -EINVAL; return can_rx_offload_init_queue(dev, offload, weight); } EXPORT_SYMBOL_GPL(can_rx_offload_add_manual);

3、修改上一級(jí)目錄spi/下的Makefile和Kconfig

viOK8MP-linux-kernel/drivers/net/can/spi/Makefile

添加:

obj-y += mcp25xxfd/

viOK8MP-linux-kernel/drivers/net/can/spi/Kconfig

添加:

source "drivers/net/can/spi/mcp25xxfd/Kconfig"

4、修改驅(qū)動(dòng)配置文件,將MCP2518編譯進(jìn)內(nèi)核

viOK8MP-linux-kernel/arch/arm64/configs/OK8MP-C_defconfig

找到:CONFIG_CAN_MCP251X=y

改為:#CONFIG_CAN_MCP251X is not set

添加:CONFIG_CAN_MCP25XXFD=y

5、在設(shè)備樹中配置時(shí)鐘

viOK8MP-linux-kernel/arch/arm64/boot/dts/freescale/OK8MP-C.dts

添加:

clocks{ mcp2518fd_clock: mcp2518fd_clock{ compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <40000000>; }; };

6、找一個(gè)引腳用作芯片的中斷引腳

此處是將GPIO4_IO21用作了中斷引腳。

viOK8MP-linux-kernel/arch/arm64/boot/dts/freescale/OK8MP-C.dts

添加:

pinctrl_ecspi2_can: ecspi2can{ fsl,pins = < MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x40000 >; };

7、在設(shè)備樹的ecspi2節(jié)點(diǎn)中進(jìn)行修改

viOK8MP-linux-kernel/arch/arm64/boot/dts/freescale/OK8MP-C.dts

從:

&ecspi2{ #address-cells= <1>; #size-cells= <0>; fsl,spi-num-chipselects= <1>; pinctrl-names= "default"; pinctrl-0= <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>; cs-gpios= <&gpio5 13 GPIO_ACTIVE_LOW>; status= "okay"; spidev1:spi@0 { reg= <0>; compatible= "rohm,dh2228fv"; spi-max-frequency= <500000>; }; };

改為:

&ecspi2{ #address-cells= <1>; #size-cells= <0>; fsl,spi-num-chipselects= <1>; pinctrl-names= "default"; pinctrl-0= <&pinctrl_ecspi2 &pinctrl_ecspi2_cs &pinctrl_ecspi2_can>; cs-gpios= <&gpio5 13 GPIO_ACTIVE_LOW>; status= "okay"; mcp1:mcp2518fd@0{ compatible= "microchip,mcp2518fd"; reg= <0>; spi-max-frequency= <20000000>; clocks= <&mcp2518fd_clock2>; interrupts-extended= <&gpio4 21 IRQ_TYPE_LEVEL_LOW>; }; };

完成上述修改后即可進(jìn)行編譯,并用新生成的鏡像燒寫OKMX8MP-C開發(fā)板。

8、開發(fā)板驗(yàn)證

將MCP2518芯片接到SPI2的接口上,啟動(dòng)OKMX8MP-C開發(fā)板,啟動(dòng)后使用ifconfig-a命令查看,即可看到多出了1個(gè)CAN節(jié)點(diǎn)。節(jié)點(diǎn)生成后,即可按照用戶使用手冊(cè)4.18FlexCAN測(cè)試】章節(jié)進(jìn)行測(cè)試,驗(yàn)證功能是否正常。

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

    關(guān)注

    57

    文章

    2917

    瀏覽量

    467650
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1801

    瀏覽量

    95810
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2959

    瀏覽量

    89718
  • 嵌入式開發(fā)
    +關(guān)注

    關(guān)注

    18

    文章

    1075

    瀏覽量

    48833
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5661

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    在友晶DE1-SOC開發(fā)板實(shí)現(xiàn)Chirikov標(biāo)準(zhǔn)映射求解器

    該項(xiàng)目是在友晶DE1-SOC開發(fā)板實(shí)現(xiàn)Chirikov標(biāo)準(zhǔn)映射的求解器,并將其應(yīng)用于圖像加密和解密的概念驗(yàn)證。
    的頭像 發(fā)表于 07-07 15:22 ?385次閱讀
    在友晶DE1-SOC<b class='flag-5'>開發(fā)板實(shí)現(xiàn)</b>Chirikov標(biāo)準(zhǔn)映射求解器

    618盛夏狂歡,米爾電子攜手恩智浦開啟年度技術(shù)盛宴!

    即日起-2025.06.30,米爾恩智浦多系列開發(fā)板限時(shí)折扣!米爾基于i.MX91、i.MX93、i.MX8MPlus、i.MX6UL/
    的頭像 發(fā)表于 06-13 08:03 ?324次閱讀
    618盛夏狂歡,米爾電子攜手恩智浦開啟年度技術(shù)盛宴!

    米爾NXP i.MX 91核心板發(fā)布,助力新一代入門級(jí)Linux應(yīng)用開發(fā)

    93處理器實(shí)現(xiàn)引腳兼容。此外,這款處理器支持多種外設(shè)接口資源,2個(gè)千兆以太網(wǎng)接口、2個(gè)USB2.0接口、2個(gè)CAN-FD接口、8個(gè)UART接口,8個(gè)
    發(fā)表于 05-30 11:20

    NXP i.MX 91開發(fā)板#支持快速創(chuàng)建基于Linux?的邊緣器件

    NXP Semiconductors FRDM i.MX 91開發(fā)板設(shè)計(jì)用于評(píng)估i.MX 91應(yīng)用處理器,支持快速創(chuàng)建基于Linux ^?^ 的邊緣器件。
    的頭像 發(fā)表于 05-19 10:55 ?717次閱讀
    NXP <b class='flag-5'>i.MX</b> 91<b class='flag-5'>開發(fā)板</b>#支持快速創(chuàng)建基于Linux?的邊緣器件

    「2025恩智浦創(chuàng)新技術(shù)峰會(huì)」飛凌嵌入式亮相上海首站

    ,展示其在低成本人工智能、工業(yè)物聯(lián)網(wǎng)等領(lǐng)域的創(chuàng)新成果。此次峰會(huì),飛凌嵌入式帶來了基于恩智浦i.MX95xx、i.MX9352、i.MX8MPlusi.MX6ULL
    的頭像 發(fā)表于 05-15 13:38 ?676次閱讀
    「2025恩智浦創(chuàng)新技術(shù)峰會(huì)」飛凌嵌入式亮相上海首站

    技術(shù)分享 | i.MX8MPlus Journal日志管理系統(tǒng)

    我司IAC-IMX8MP-Kit開發(fā)板搭載NXPi.MX8MPlusSOC,芯片采用4顆ArmCortex-A53核心以及1顆ArmCortex-M7核心。目前
    的頭像 發(fā)表于 05-08 17:23 ?326次閱讀
    技術(shù)分享 | <b class='flag-5'>i.MX8MPlus</b> Journal日志管理系統(tǒng)

    基于RV1126開發(fā)板實(shí)現(xiàn)人員檢測(cè)方案

    在RV1126開發(fā)板實(shí)現(xiàn)人員檢測(cè):在圖像中找出人。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人員檢測(cè)功能。
    的頭像 發(fā)表于 04-18 17:14 ?220次閱讀
    基于RV1126<b class='flag-5'>開發(fā)板實(shí)現(xiàn)</b>人員檢測(cè)方案

    NXP基于i.MX 91應(yīng)用處理器打造的FRDM i.MX 91開發(fā)板特性參數(shù)詳解

    FRDM i.MX 91開發(fā)板。開發(fā)板基于i.MX 91應(yīng)用處理器打造,專為加速工業(yè)與物聯(lián)網(wǎng)的開發(fā)
    的頭像 發(fā)表于 03-21 09:37 ?4.5w次閱讀
    NXP基于<b class='flag-5'>i.MX</b> 91應(yīng)用處理器打造的FRDM <b class='flag-5'>i.MX</b> 91<b class='flag-5'>開發(fā)板</b>特性參數(shù)詳解

    如何實(shí)現(xiàn)i.MX8MPlus的rpmsg調(diào)試

    我司IAC-IMX8MP-Kit開發(fā)板搭載NXPi.MX8MPlusSOC,芯片采用4顆ArmCortex-A53核心以及1顆ArmCortex-M7核心。很多客戶需求在M核心運(yùn)行實(shí)
    的頭像 發(fā)表于 03-20 17:26 ?578次閱讀
    如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>i.MX8MPlus</b>的rpmsg調(diào)試

    NXP i.MX 93 開發(fā)板#提供高效的機(jī)器學(xué)習(xí) 支持高能效的邊緣計(jì)算

    NXP Semiconductors FRDM-IMX93開發(fā)板i.MX 93應(yīng)用處理器提供支持。NXP Semiconductors FRDM-IMX93板配備板載IW612模塊,支持NXP
    的頭像 發(fā)表于 03-10 15:30 ?1335次閱讀
    NXP <b class='flag-5'>i.MX</b> 93 <b class='flag-5'>開發(fā)板</b>#提供高效的機(jī)器學(xué)習(xí) 支持高能效的邊緣計(jì)算

    NXP首款搭載MPU的FRDM產(chǎn)品怎么樣?FRDM i.MX93開發(fā)板開箱速覽

    近期,NXP將i.MX 93系列處理器引入了FRDM系列產(chǎn)品線,推出了FRDM i.MX 93開發(fā)板,作為首款配備i.MX MPU的FRDM板,它提供了模塊化硬件、全面的軟件和工具,以
    的頭像 發(fā)表于 02-26 14:56 ?1139次閱讀
    NXP首款搭載MPU的FRDM產(chǎn)品怎么樣?FRDM <b class='flag-5'>i.MX</b>93<b class='flag-5'>開發(fā)板</b>開箱速覽

    恩智浦推出FRDM i.MX 93開發(fā)板

    備受嵌入式開發(fā)者青睞的恩智浦FRDM開發(fā)平臺(tái),迎來了一位新成員——FRDM i.MX 93開發(fā)板,這也是第一塊配備i.MX MPU的FRDM
    的頭像 發(fā)表于 02-21 14:22 ?1452次閱讀

    NXP推出FRDM i.MX 93開發(fā)板, 助力現(xiàn)代工業(yè)與邊緣智能開發(fā)

    近日,恩智浦半導(dǎo)體(NXP Semiconductor)推出了FRDM i.MX 93開發(fā)板,這是FRDM系列中第一款基于MPU推出的開發(fā)板,以低成本、緊湊的設(shè)計(jì)為核心,搭載了NXP i.MX
    的頭像 發(fā)表于 02-21 09:19 ?1525次閱讀
    NXP推出FRDM <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>, 助力現(xiàn)代工業(yè)與邊緣智能<b class='flag-5'>開發(fā)</b>

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對(duì)比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對(duì)比
    的頭像 發(fā)表于 11-28 14:31 ?1322次閱讀
    【迅為電子】<b class='flag-5'>i.MX</b>6UL和<b class='flag-5'>i.MX</b>6ULL芯片區(qū)別與<b class='flag-5'>開發(fā)板</b>對(duì)比

    i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 17:23 ?12次下載