飛凌嵌入式基于全志系列處理器設(shè)計的OKA40i-C開發(fā)板、OKT3-C開發(fā)板因其接口豐富、低功耗、系統(tǒng)集成度高等特點(diǎn),深受廣大用戶贊譽(yù)。
小編通過對飛凌技術(shù)服務(wù)部“A40i/T3客戶群問題解決庫”進(jìn)行檢索,梳理了部分共性問題及解決思路。本文主要對OKA40i-C開發(fā)板/OKT3-C開發(fā)板CAN功能使用過程中多次遇到的問題進(jìn)行講解。
由于全志 A40i/T3 CPU 中未包含CAN控制器,而在實(shí)際使用過程中,如果用到CAN功能,通常會采用SPI轉(zhuǎn)CAN的方式。在此之前飛凌已經(jīng)提供了OKA40i-C開發(fā)板/OKT3-C開發(fā)板對CAN的支持方法(參考鏈接: 研發(fā)干貨丨A40i/T3對CAN的支持),本文就不在做贅述,僅針對用戶在實(shí)際操作過程中遇到的問題提供解決思路,請跟著小編來一起看看吧。
Q中斷引腳怎么如何選擇?A在選擇復(fù)用引腳時,需要給SPI轉(zhuǎn)CAN模塊選擇一個中斷引腳,而FETA40i-C/FETT3-C核心板并非每個引腳都具有中斷功能,需要在《引腳復(fù)用對照表》中進(jìn)行篩選,選擇帶有中斷功能的GPIO。首先需要確定哪些引腳具有中斷功能,表格中引腳可復(fù)用功能中具有EINT*的引腳是具有中斷功能的。我們可以從這些引腳中選擇一個作為SPI轉(zhuǎn)CAN模塊的中斷引腳,選擇時注意這些引腳原本是什么功能,選擇一個不需要的功能引腳作為SPI轉(zhuǎn)CAN模塊的中斷引腳,比如下圖是我們的方案中選用的PH6這個引腳。 Q哪些引腳可以用作SPI功能?A1)開發(fā)板默認(rèn)SPI功能的引腳在OKA40i-C開發(fā)板/OKT3-C開發(fā)板上,默認(rèn)引出了SPI0和SPI2兩組引腳,可以選擇這兩組引腳。需要注意的是這兩組信號默認(rèn)為1.8V,需要硬件上做電平轉(zhuǎn)換為3.3V才能用于SPI轉(zhuǎn)CAN的設(shè)置。這兩組引腳在fex文件里已經(jīng)做了配置,只需要按照方法做其它修改即可。
2)將其它功能引腳復(fù)用為SPI功能在飛凌嵌入式《A40i/T3對CAN的支持》一文中詳細(xì)講解了如何將開發(fā)板上UART2功能相關(guān)的引腳復(fù)用為了SPI。假如不想使用UART2引腳復(fù)用又不知道如何選擇的話,飛凌嵌入式用戶資料中提供了《引腳復(fù)用對照表》,從中查詢哪些引腳可以復(fù)用為SPI功能,然后根據(jù)實(shí)際需求去選擇要復(fù)用的引腳。查找時請先檢索需要使用的功能“關(guān)鍵詞”,比如需要SPI功能,請檢索“SPI”,找到可復(fù)用成SPI功能的引腳,當(dāng)前表格中默認(rèn)功能列是引腳名稱,功能選擇列是默認(rèn)配置的功能,例如PI16、PI17、PI18、PI19四個引腳,可以復(fù)用成SPI1,默認(rèn)是UART2功能。 Qiproute配置繁瑣Aiproute需要在Buildroot里配置,需要編譯Buildroot重新生成文件系統(tǒng),過程太麻煩?iproute是一個網(wǎng)絡(luò)管理工具,在設(shè)置波特率時有用到。如果使用飛凌嵌入式2020.08.31及之后提供的開發(fā)板資料,Buildroot已經(jīng)配置完成,可以忽略該步操作,不用重新編譯Buildroot,只需按照方法做好其它配置就可以了!這樣可以減少一些不必要的編譯問題,更快速的完成相關(guān)配置!當(dāng)然,也可以單獨(dú)下載源碼編譯,
下載鏈接:https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/
例:
下載iproute2-4.10.0.tar.gz
解壓源碼,修改Makefile文件中的交叉編譯器
指定CC=arm-linux-gnueabihf-gcc-5.3.1
執(zhí)行make編譯,在ip文件夾中得到程序ip。
Q數(shù)據(jù)丟幀問題A通過SPI轉(zhuǎn)CAN實(shí)現(xiàn)的CAN功能,相對于原生CAN的性能有一定的不足,在500K波特率下外部設(shè)備單次發(fā)送多幀數(shù)據(jù),接收數(shù)據(jù)時可能出現(xiàn)丟幀現(xiàn)象,頻繁收發(fā)數(shù)據(jù)可能出現(xiàn)丟幀現(xiàn)象,為解決這一問題,需要取消CPUIdle Driver for Sunxiprocessors選項,在飛凌嵌入式提供的最新的資料源碼中已經(jīng)做了重新配置!如果您使用的不是最新資料,可以在源碼中l(wèi)inux-3.10目錄下執(zhí)行makemenuconfig ARCH=arm將[] CPU Idle Driver for Sunxi processors的編譯去掉CPU Power Management --->
[ ] CPU Idle Driver for Sunxi processors
本次我們的解答問題梳理先到這里了,通過以上解答,希望能對大家的開發(fā)過程提供了幫助,減少問題,提高開發(fā)效率!-
mcu
+關(guān)注
關(guān)注
146文章
17227瀏覽量
351955 -
CAN
+關(guān)注
關(guān)注
57文章
2762瀏覽量
464018
發(fā)布評論請先 登錄
相關(guān)推薦
評論