飛凌嵌入式
基於
全志
系列處理器設計的OK
A40i
-
C
開發板
、OK
T3
-C開發板因其介面豐富、低功耗、系統整合度高等特點,深受廣大使用者讚譽。
小編透過對
飛凌
技術服務部“A40i/T3客戶群問題解決庫”進行檢索,梳理了部分共性問題及解決思路。本文主要對OKA40i-C開發板/OKT3-C開發板CAN功能使用過程中多次遇到的問題進行講解。
由於全志 A40i/T3 CPU 中未包含CAN控制器,而在實際使用過程中,如果用到CAN功能,通常會採用
SPI
轉CAN的方式。在此之前飛凌已經提供了OKA40i-C開發板/OKT3-C開發板對CAN的支援方法(參考連結: 研發乾貨丨A40i/T3對CAN的支援
點選查詢
),本文就不在做贅述,僅針對使用者在實際操作過程中遇到的問題提供解決思路,請跟著小編來一起看看吧。
一、中斷
引腳
怎麼如何選擇?
在選擇複用引腳時,需要給SPI轉
CAN模組
選擇一箇中斷引腳,而
FETA40i
-C/FETT3-
C核心板
並非每個引腳都具有中斷功能,需要在《引腳複用對照表》中進行篩選,選擇帶有中斷功能的
GPIO
。
首先需要確定哪些引腳具有中斷功能,表格中引腳可複用功能中具有EINT*的引腳是具有中斷功能的。我們可以從這些引腳中選擇一個作為SPI轉CAN模組的中斷引腳,選擇時注意這些引腳原本是什麼功能,選擇一個不需要的功能引腳作為SPI轉CAN模組的中斷引腳,
比如下圖是我們的
方案
中選用的PH6這個引腳。
二、 哪些引腳可以用作SPI功能?
1)開發板預設SPI功能的引腳在OKA40i-C開發板/OKT3-C開發板上,預設引出了SPI0和SPI2兩組引腳,可以選擇這兩組引腳。需要注意的是這兩組訊號預設為1。8V,需要硬體上做
電平
轉換為3。3V才能用於SPI轉CAN的設定。
這兩組引腳在fex檔案裡已經做了配置,只需要按照方法做其它修改即可。
2)將其它功能引腳複用為SPI功能在飛凌
嵌入式
《A40i/T3對CAN的支援》(
點選查詢
)一文中詳細講解了如何將開發板上UA
RT
2功能相關的引腳複用為了SPI。
假如不想使用UART2引腳複用又不知道如何選擇的話,飛凌嵌入式全志A40、
全志T3
使用者資料中提供了《引腳複用對照表》,從中查詢哪些引腳可以複用為SPI功能,然後根據實際需求去選擇要複用的引腳。
查詢時請先檢索需要使用的功能“關鍵詞”,比如需要SPI功能,請檢索“SPI”,找到可複用成SPI功能的引腳,當前表格中預設功能列是引腳名稱,功能選擇列是預設配置的功能,
例如PI16、PI17、PI18、PI19四個引腳,可以複用成SPI1,預設是UART2功能。
三、iproute配置繁瑣
iproute需要在Buildroot裡配置,需要編譯Buildroot重新生成檔案系統,過程太麻煩?
iproute是一個網路管理工具,在設定波特率時有用到。如果使用飛凌嵌入式2020。08。31及之後提供的全志A40i及全志T3開發板資料,Buildroot已經配置完成,可以忽略該步操作,不用重新編譯Buildroot,只需按照方法做好其它配置就可以了!這樣可以減少一些不必要的編譯問題,更快速的完成相關配置!
當然,也可以單獨下載原始碼編譯,
下載連結: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
執行make編譯,在ip資料夾中得到程式ip。
四、資料丟幀問題A
透過SPI轉CAN實現的CAN功能,相對於原生CAN的效能有一定的不足,在500K波特率下外部裝置單次傳送多幀資料,接收資料時可能出現丟幀現象,頻繁收發資料可能出現丟幀現象,為解決這一問題,需要取消CPUIdle Driver for Sunxiprocessors選項,在飛凌嵌入式提供的最新全志A40i及T3的資料原始碼中已經做了重新配置!
如果您使用的不是最新資料,
可以在原始碼中linux-3。10目錄下執行makemenuconfig ARCH=arm
將[] CPU Idle Driver for Sunxi processors的編譯去掉
[] CPU Idle Driver for Sunxi processors
本次我們的解答問題梳理先到這裡了,透過以上解答,希望能對大家的開發過程提供了幫助,減少問題,提高開發效率!
舉報/反饋