- 积分
- 300
贡献1443
飞刀569 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
9 D3 z' b% p% g2 e P) I* t4 L# G6 l1 E4 E% h
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。7 ~& Y) ]" c3 R( j8 _4 }
$ d" u1 s3 B/ o; B
7 {* [1 e1 Y w& G( m4 I 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
k" P& H* h3 |) `" i; A 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。; Y8 Y* X2 T/ ^; @5 i' F
7 d7 l2 |* }: r- {2 k. `. D q- _# b 引脚功能复用思路:" \6 J& n9 _1 z( H* J8 b6 e
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
7 m- I0 ]" Q/ Z* A 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
6 S: h7 v& K/ j3、添加新的功能并使用这些引脚6 `* i3 i5 S& V' c2 `4 v
( n8 l- ?1 ]* S7 O4 s" S0 P8 a# d6 [
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。 |) o, R4 D! F9 B! W
6 z* A) G; R3 B. y& n5 t& I2 T/ {, x
一、确认UART2需要的引脚) E8 w4 p6 J5 v. M9 B7 {# P6 U, o
0 c; ]5 t2 O; h2 u# E
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表5 h2 d) |! z/ I5 d
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
) j2 t: ?. }1 {' n
7 O) ` x. r+ k7 m2 E- q0 z ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用6 l& f% d* {) h( U
/ J4 F5 `& ?3 t- U0 v8 F4 U/ e 引脚名称
, j" U: \' z; \( D" G) L- q4 d
3 @1 [+ b3 i) A7 Q | FETT507-C默认功能 % I& O( O+ \& H% i: \
| 可复用功能 $ O: m$ X+ |$ A# V
| PG15
\+ l* ?* z$ M8 T4 r4 Z2 \/ ~* ~ | PG-TWI4-SCK
( H' W% _! w( l7 f+ {( r1 v | UART2_TX | PG16
, ?& K K' g U5 {9 B/ M* P/ V. ^ | PG-TWI4-SDA ' [0 |' U, _+ R( O
| UART2_RX
- x9 t4 ^0 K/ U. t | PH5
, q9 \3 y" q$ k; w | H_I2S3_MCLK
* W7 K* M& r9 e" L | UART2_TX " b1 b3 a5 |! n) E
| PH6
$ `* ?% f" N6 ^ | H_I2S3_BCLK
# E" e) C) i; B6 i6 |+ |( p | UART2_RX
0 R% r3 _0 z" M | PI5 ( m* s5 u7 M: b3 D
| RGMII_RXCTL/RMII_CRS_DV 3 \4 }9 g9 x& K3 b
| UART2_TX
$ n0 s, j4 O1 L9 p4 ]. q' s- W# I | PI6 2 N; ^- h& z) j. ~) j
| PHYRSTB ) _3 c# a- M( s; t# z
| UART2_RX
5 w# x; W5 u( H# V T V' ] | 9 G# b8 r9 r' L; ~- q+ W2 {
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
& S% F ^/ t. `+ U( G
" w. c, Y1 X6 k, a2 m二、去掉原来功能对这些引脚的使用& H6 N) {4 X/ X: \
0 R E( h# B+ P" O. H$ x& S, v9 @◾ 打开源码,先了解一下T507的设备树文件:( O. }( o3 l1 q' d' M) ?
- s' r4 L: w- E: K3 @7 e
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
s+ {( s8 i e; W9 a8 }6 @- k 功能配置设备树2; N/ W* k8 U( }+ c3 L2 _) U
1 a: y# G+ s# ^5 W) C
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi2 n* v; o) s8 ~. H, k
功能配置设备树1# V7 g, h, ?+ M* `5 s
, x$ q& j/ [3 M% P6 F& u+ D OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
4 Z" w' A9 S9 X# k6 J/ K" ?. O 时钟设备树
& a( p; L/ P) a+ [% l" O! p5 i3 v# n3 H
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
, v$ ~: n4 r- \& X 引脚复用设备树
0 X. }% T( K1 W) X7 T8 V2 u$ J% v- G: O# U9 |
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
3 B1 l. x9 I/ [* `3 n6 A* ?% ?
% m5 j, E5 O1 \
1 u. e, C1 G& K4 B3 u' @# R" h/ M o; Q9 |' o
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b% J: q& L8 D: @/ U8 F% ]
0 b1 c! F3 H5 }+ }+ X- q8 T! P
- i1 S, J! b9 `& y! }) X
$ z: C/ t2 k1 }& |3 g◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled"; K, t- l' N2 H8 i, R5 \
K! B! O& l( }; N7 Z3 j
6 m( O; m9 b0 \% C0 T& T/ s
7 }' k7 G5 {, y5 R F ( O6 E" v4 s: S7 K( O
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
1 o! z( P% e( S6 a f# h$ K+ w4 {) W+ Z. C$ o. {4 D
三、添加串口并使用PG15、PG16引脚
1 g1 q! N( J/ L: ]3 j, ?
6 f( T; E: b6 ^1 d0 N* H7 c7 k8 [◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8
7 m* I( s" H) g. n/ _
1 |& j% k' H4 \6 x( z, K) s ?
4 y- H& A$ Y, l9 p/ s C4 l% q: V8 ^/ g! k
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图: m, c( o3 y$ G) V0 J
( o4 l$ C6 e0 n: l& v+ \
+ r: ]# G5 |& N; X5 m. M. M7 T* ^( `* Q8 @
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
+ P$ x6 R/ | k1 v9 \
8 r I) z1 q* i4 A! B ( u0 Z; x9 q$ |% W; j v: D
8 N% L$ s! \- X" A
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。" N5 o6 a; Z5 I
然后我们打开UART2,修改UART2状态为status= "okay";
9 \! Z1 R( i, f4 E到此我们配置了UART2的引脚,并打开了UART2的功能。& J G7 K4 }7 J/ H3 F6 G
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。3 b" f; ^6 |9 Y* H" ~
" e9 i' m& m3 S文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
/ T' k9 |* Z, \3 F2 V2 }5 G虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
5 N! I* }& k1 R2 e( k& d2 Q- W L
" s/ A! c8 \( {. `4 k0 _2 _
相关产品: 8 x: a: t: O5 S
OKT507-C 开发板 FETT507-C核心板 % i0 B- o) w: K% D
. G7 g: Q. `% k( s6 v$ B5 N
3 i- @! z7 c1 r8 l
|
|