嵌入式爱好者

查看: 12087|回复: 1

[帮助] 新资料丨全志A40i及全志T3开发板 对CAN的支持补充

[复制链接]

48

主题

55

帖子

304

积分

扫一扫,手机访问本帖
发表于 2021-12-10 17:13:01 | 显示全部楼层 |阅读模式
飞凌嵌入式基于全志系列处理器设计的OKA40i-C开发板、OKT3-C开发板因其接口丰富、低功耗、系统集成度高等特点,深受广大用户赞誉。
, m( E% T! x& \ 4 C3 S) q* E5 A; K  M& M/ R( q
        小编通过对飞凌技术服务部“A40i/T3客户群问题解决库”进行检索,梳理了部分共性问题及解决思路。本文主要对OKA40i-C开发板/OKT3-C开发板CAN功能使用过程中多次遇到的问题进行讲解。
& Z8 S& ]- f7 ]; _. r. j, ?0 u) ?
; V7 G+ l: f1 t& z) z        由于全志 A40i/T3 CPU 中未包含CAN控制器,而在实际使用过程中,如果用到CAN功能,通常会采用SPI转CAN的方式。在此之前飞凌已经提供了OKA40i-C开发板/OKT3-C开发板对CAN的支持方法(参考链接: 研发干货丨A40i/T3对CAN的支持 点击查询),本文就不在做赘述,仅针对用户在实际操作过程中遇到的问题提供解决思路,请跟着小编来一起看看吧。
6 t1 r! D5 r  G# }
6 s" q7 a4 N# g" P& w$ Q% w        一、中断引脚怎么如何选择? 4 Z5 N$ B% i0 O6 [
        在选择复用引脚时,需要给SPI转CAN模块选择一个中断引脚,而FETA40i-C/FETT3-C核心板并非每个引脚都具有中断功能,需要在《引脚复用对照表》中进行筛选,选择带有中断功能的GPIO  D2 o+ F4 N3 ~- ?+ R+ m! s" n$ a
        首先需要确定哪些引脚具有中断功能,表格中引脚可复用功能中具有EINT*的引脚是具有中断功能的。我们可以从这些引脚中选择一个作为SPI转CAN模块的中断引脚,选择时注意这些引脚原本是什么功能,选择一个不需要的功能引脚作为SPI转CAN模块的中断引脚, 3 x" Y5 n* u4 l4 z; Z- f
        比如下图是我们的方案中选用的PH6这个引脚。 % r. Y2 c2 y" `9 z; R' d
/ l/ D; h  @0 g, e7 }

0 S5 f; i5 e, M
6 C6 E8 n( h, P, \6 B$ h; d
; E% r( l' T' P3 [# |        二、 哪些引脚可以用作SPI功能?
+ `; i7 v% I, E8 n1)开发板默认SPI功能的引脚在OKA40i-C开发板/OKT3-C开发板上,默认引出了SPI0和SPI2两组引脚,可以选择这两组引脚。需要注意的是这两组信号默认为1.8V,需要硬件上做电平转换为3.3V才能用于SPI转CAN的设置。
; b; }2 u, G; e( [- J 6 I) R$ J+ ^' t$ M
$ ~" ~' W. B* b! w
        这两组引脚在fex文件里已经做了配置,只需要按照方法做其它修改即可。
! r- g8 U# m" Y% r! D/ K: Q/ s2 q; \. X- ~, Y. Q
2)将其它功能引脚复用为SPI功能在飞凌嵌入式《A40i/T3对CAN的支持》(点击查询)一文中详细讲解了如何将开发板上UART2功能相关的引脚复用为了SPI。 # u% Z7 n6 q. |
        假如不想使用UART2引脚复用又不知道如何选择的话,飞凌嵌入式全志A40、全志T3 用户资料中提供了《引脚复用对照表》,从中查询哪些引脚可以复用为SPI功能,然后根据实际需求去选择要复用的引脚。
* V8 q% t. Q+ P6 j+ I        查找时请先检索需要使用的功能“关键词”,比如需要SPI功能,请检索“SPI”,找到可复用成SPI功能的引脚,当前表格中默认功能列是引脚名称,功能选择列是默认配置的功能,
7 j1 U/ Q. f- ^8 l5 u5 g        例如PI16、PI17、PI18、PI19四个引脚,可以复用成SPI1,默认是UART2功能。 4 K" i6 A7 G% N' ?" h
" E& h) P6 E& Q" B1 f, a+ }

8 A; K1 ^; G7 d1 r * o$ v1 k7 j* d; l
6 s) a0 H0 V) J8 A# m
- g) u5 ?" D+ P$ w; P9 V
        三、iproute配置繁琐 + ?9 p. \7 l) O  J& o& o
iproute需要在Buildroot里配置,需要编译Buildroot重新生成文件系统,过程太麻烦?
  `: Q6 r$ q# e$ Aiproute是一个网络管理工具,在设置波特率时有用到。如果使用飞凌嵌入式2020.08.31及之后提供的全志A40i及全志T3开发板资料,Buildroot已经配置完成,可以忽略该步操作,不用重新编译Buildroot,只需按照方法做好其它配置就可以了!这样可以减少一些不必要的编译问题,更快速的完成相关配置! % Z3 _' e1 o" f9 j

; B5 w0 b; v) E& H# }) w        当然,也可以单独下载源码编译, % t* g% o- E. D+ ?  i. u1 M8 K) l
        下载链接:https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/ + a* p2 e6 c  E: I  C, l8 f
例:
, \: ~6 I& B) T8 d8 i        下载iproute2-4.10.0.tar.gz * B7 F9 F0 t4 K3 H6 O' \
解压源码,修改Makefile文件中的交叉编译器
% b: M& s8 I+ X. s, L, K: d% l        指定CC=arm-linux-gnueabihf-gcc-5.3.1
, e! `  e" `, ]$ f- f, G( K执行make编译,在ip文件夹中得到程序ip。 * F; V  l& g* u, W  k- L1 i
+ c8 {  j" D1 e) t: W% q& Q
        四、数据丢帧问题A
* x' a! C5 d7 A& l. @3 U+ O! v" s通过SPI转CAN实现的CAN功能,相对于原生CAN的性能有一定的不足,在500K波特率下外部设备单次发送多帧数据,接收数据时可能出现丢帧现象,频繁收发数据可能出现丢帧现象,为解决这一问题,需要取消CPUIdle Driver for Sunxiprocessors选项,在飞凌嵌入式提供的最新全志A40i及T3的资料源码中已经做了重新配置! : i+ o9 {* F7 x1 M0 ?  x5 a
        如果您使用的不是最新资料,
0 z4 {" X; g+ C0 `        可以在源码中linux-3.10目录下执行makemenuconfig  ARCH=arm
  P3 R# u' A# [4 U7 X1 ?1 E& _将[] CPU Idle Driver for Sunxi processors的编译去掉
, l+ g# G5 D7 G5 `- d5 TCPU Power Management  --->! u- L+ D! a6 t& t
        [ ] CPU Idle Driver for Sunxi processors
( A$ S' K3 U& V
. }* A% |# P# g% C: d  I8 x# O1 }9 o+ w4 @
% m( s. X; N2 z# Y, K. Y6 y
本次我们的解答问题梳理先到这里了,通过以上解答,希望能对大家的开发过程提供了帮助,减少问题,提高开发效率! 9 b1 Y) w' U  J
. I- H5 A; }8 V  L# m2 J

& D6 L, a- V' H' Q/ b2 [: \7 |) t3 ?8 ^$ b6 M. T2 g: H7 R6 L8 p# P
相关产品:                                                   
* j  z: Q0 Z  |! D+ ^5 j& R; @2 H, g+ ?* A- g
* x5 c$ ~/ y$ h$ A- c2 p

+ M6 Z& h% n" S$ R
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2026-4-3 06:03

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表