- 积分
- 282
贡献1454
飞刀433 FD
注册时间2015-12-21
在线时间52 小时
关注我
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 ( x) u! [( r% Y+ `2 B' T
8 U/ L# ^' X6 H3 C FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。2 r4 i1 \8 ~! D/ M; ^ O$ }) U0 b: z) R
% v9 h4 t# q% _2 g
8 ~! R( H; k# o 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。- A9 i" [3 G8 P: n$ t% Y
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。( T4 \& t) D1 L! c9 L) b
+ r7 |7 @1 f" z8 f 引脚功能复用思路:
. Y0 l+ ? L: b' x7 x ^ 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能7 V( S8 \* F9 k8 E
2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
, n: _6 J: D3 ?' N* P! @/ c3、添加新的功能并使用这些引脚' D5 b8 A, y8 O$ Y
' q& B# d8 R5 N9 W% W) t1 x 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。9 [% V- b! f8 W3 x( E5 j
2 a! ]+ z$ A V# }
一、确认UART2需要的引脚
) b4 J% C) t1 q0 K5 [$ J) e- S2 s
6 e L: h7 L' { H ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表5 S; {7 ?# G0 e: L6 G- M! F: D. P
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
- W8 H A' |! V0 g' i
) k; T ?" j0 N+ k1 I/ k- y ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
3 W2 R& S+ i' A: U6 j" ]9 e) i( y8 s4 ?( A/ W
引脚名称 - W8 J. C. P! c! V6 T# T
7 w% w& p6 z9 b4 B8 T | FETT507-C默认功能 8 H+ P3 Q: t: S1 [
| 可复用功能
F$ ]0 C* ~" d9 T; y s9 A+ R | PG15 1 p. ~: n% O1 y
| PG-TWI4-SCK
' \( G$ L6 b! t2 N* u6 a$ y | UART2_TX | PG16
% \+ r: X& z' I$ r8 m | PG-TWI4-SDA
* L+ `1 X Y/ y | UART2_RX
2 ]5 t: l# A0 ?& _ | PH5 , w, T7 M1 s' m F% k$ c
| H_I2S3_MCLK , _- M# z- q5 U+ O! Q T4 x* h
| UART2_TX
6 U1 d4 f4 f1 e3 P% O! X4 I | PH6
) ^* r; ~2 Y' V0 ?- f9 k | H_I2S3_BCLK 8 i6 s& a7 U/ V
| UART2_RX
1 U. r) V7 c+ t7 W | PI5
5 ]- {& _9 }' y: h$ k ]; h( B1 ? | RGMII_RXCTL/RMII_CRS_DV
. B2 D. F9 d) s7 f) f0 k/ w! { | UART2_TX
5 O) X, i5 A- |$ G | PI6 2 o: E: @$ n: y4 J) M7 k
| PHYRSTB
) z8 s6 b \* a* f | UART2_RX 9 A3 S4 E, J4 z
| 1 p" ]( q o9 c& Y
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。' b& Q5 k: u8 V/ m% p% _- _
2 S5 {) j3 v0 Z! @* R% o8 V
二、去掉原来功能对这些引脚的使用& b. Q y4 v7 Z6 a9 h
( V! Z) ~+ U- C8 \2 t◾ 打开源码,先了解一下T507的设备树文件:
: S1 e. Y t0 X$ X
- h" |' v$ t! h! ]! D6 K4 \OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
9 O8 V+ e" g3 o$ P) P 功能配置设备树2: _8 c9 G6 W! m4 e5 Q* q# ?
/ T+ [+ c7 V* \ B+ C* V& R
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
8 j9 `- e" O$ N. I# e8 n功能配置设备树1; p8 E/ C4 ]8 d, C% T1 D; D
( s0 t9 e. i% V- I- h0 G7 J0 L
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi' x" F7 F: d5 E
时钟设备树, i$ L4 Q* w: N: a
/ O$ l: J) e z0 S% p! s2 s* A5 s
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi( I: F% n& [0 S
引脚复用设备树/ D7 u" z; ^1 S/ N ?+ r
? ]. B' A4 G ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用9 T) H/ k2 C$ v( ?( | ]
, r, v' J; C5 Y! H; @
- H) s3 b' H) D) u* g8 u2 U
$ l2 w. |. Q1 R1 N( _ ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b# S' O1 ]6 p! R4 C' |+ I& E! E
7 j* f0 }7 m3 S4 K- U' v7 v + A8 O; m: Y6 [" b2 a2 C$ z/ A
0 I. o% C. R& m0 v! X8 I. ~9 t: t4 `
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";& N& _5 P3 u8 C2 { n# m
C% t3 D4 H( t4 ? : d2 O8 z% y# \, X! N$ C
0 n$ u3 F/ C6 l0 h 6 i5 ^8 D3 p- w0 x$ c4 m- U, k5 i
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
& \8 T# u! s. h7 b* R* n! t; {- z# B! |& n
三、添加串口并使用PG15、PG16引脚% I2 e1 Z& l) B. c Z6 V* [4 U
% s( n8 `! N! h1 M: v% M
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH84 B/ F$ G1 f3 j: X3 h5 L
4 G" I' Y. \: g; C: A+ w* ?
0 H, d6 f" m }, F) j4 j7 y2 ^2 p0 m% j
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图0 T7 Q6 ]! @8 F
( R/ @8 I* c4 L0 u6 }9 l8 j; T% Q
2 } x7 I4 m# a" h
7 s& n$ d4 R0 R+ O ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。9 Y7 \& Y3 t" l
3 N' m: {) L/ J3 W; g1 R4 Z
1 C, ?" P/ T9 z3 @8 d3 k0 V* ~0 n. }
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。- t' m/ D' @% v' ]" S& {
然后我们打开UART2,修改UART2状态为status= "okay";- d+ u& C6 M8 l5 l& X7 g/ E; R
到此我们配置了UART2的引脚,并打开了UART2的功能。* E& E# k. w& W: F7 l* ?2 s4 j
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
1 [/ U( _9 f* i: F5 x* d* w$ t
9 w2 l ~8 {: t: m6 p6 T+ y/ U文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。1 {! `" I9 m% t7 l2 T$ L# Y
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。+ R; D# U w- p* b9 j( S
@3 z* z" ?2 c0 a
) U" K' k1 _5 I8 i) M5 q2 e
相关产品:
: v6 A1 Y% [9 UOKT507-C 开发板 FETT507-C核心板
5 F# L, Q" V2 A5 z( Z# L" T . V' B/ Q' p* j' ^+ o+ \* a& ?+ [
, b3 m' o. n/ m* U |
|