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