- 积分
- 308
贡献1484
飞刀583 FD
注册时间2015-12-21
在线时间52 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
+ @% P# ?# f& u5 T7 U+ E" S
0 l1 t3 p5 z6 I, ^- c FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
. V7 B7 F, K4 S- p( l$ D# t) I
! Y$ S5 ^- \! n- |9 p) a# U- r$ G2 o& }
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
8 }6 T0 I4 d# R9 I# Z7 ]1 V 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
* W# z6 T6 z, E' l; g
/ f/ N" d. N: i# T. |/ Q 引脚功能复用思路:
9 N) E& z' G- C4 J* r; m 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
, z$ J$ E( T% r# g- B 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)- P9 I7 i. F+ m; v2 O) V
3、添加新的功能并使用这些引脚
7 ?) W7 N$ q! X4 |! O$ k
* H/ p H( {) f# C& v% A1 b$ y9 | 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。" d2 j! Y& h/ t
# c+ B: D6 x; b8 E" b
一、确认UART2需要的引脚
; H1 D" ^2 F+ G+ J6 _0 d6 S; y( Y( a( @6 q4 m" q
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表: N$ t7 j% c+ R
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx/ G6 Y* k- F% G. s, e" {
4 g% F u2 x4 f( {9 Q4 y& T6 L$ E ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
6 b, V/ s& Y% [- X9 Z5 M5 P
1 ?3 n3 s4 B5 U+ C4 C) m/ w 引脚名称 1 R- A' Z- U# \+ D% E. H
; K% Z3 Q# W& b1 O& v | FETT507-C默认功能 9 n6 f+ Y: }$ i
| 可复用功能
- G! q1 x& D' e$ d b | PG15
/ \( T7 w; i8 k# M | PG-TWI4-SCK 7 C6 l4 w1 I+ H! |) I. f9 k- x! g
| UART2_TX | PG16 - |0 u) @; ?8 Q& R4 s
| PG-TWI4-SDA
& P3 u$ `/ V; M- G, w7 i2 x | UART2_RX
3 n/ ]7 x0 ?5 P t3 u |( W$ T | PH5 % p9 v. j% B2 D' E! P( F
| H_I2S3_MCLK ! z; d6 m/ ]. ~/ c ?, H
| UART2_TX
- e- z7 m% h/ x/ V b( l | PH6 ! g' b3 a% d0 k4 ~& k
| H_I2S3_BCLK
U- G: b' n% F+ o* Z8 ~ [ | UART2_RX
) u! E* D( l$ [; n2 d2 |" \ | PI5 : G! d- E, k ~/ g: [
| RGMII_RXCTL/RMII_CRS_DV
; C8 X! R) w. a$ s | UART2_TX 1 s* ]3 c$ Q1 U
| PI6
8 s, a+ e l( H; I | PHYRSTB 0 e& e. [2 m Q- E3 s; K" n0 `
| UART2_RX
+ [. Z9 p" p2 d. Y, @; Q | % R. Z5 [1 E# E( m4 k$ W# I0 l; y
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。 c- v! l8 Q! f. Q; q9 B
6 ~& n# N% @- n6 E' K8 v
二、去掉原来功能对这些引脚的使用0 f& A& X0 l- v+ \
; ?* d. l" a3 B+ O+ F) A
◾ 打开源码,先了解一下T507的设备树文件:2 k# G5 n% i1 \" i
3 k3 M1 G- E* @OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
- p- d8 a/ c& K+ H* x+ K 功能配置设备树2- v9 n8 M6 z- N( D, B* Q
2 f& b$ l7 C4 A7 c" z: s2 r/ q+ a; q
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
( t2 e3 `9 C2 x9 v% o, D+ P功能配置设备树1% N2 t! g4 U o! b9 p( D
8 F2 d+ B% [! f1 X& q) o6 c OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi; t7 c4 Z' D, w' u( w: C9 p( `
时钟设备树$ x+ x+ }5 _/ K7 Y* v2 W
, H2 P; ^. d- S3 E
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi- ^3 Q: V* |' Q, I$ d) F
引脚复用设备树, D9 M1 B3 R/ f8 _7 c; T- P
1 j( A' q' x2 N- B, F ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
- I2 H0 i% X" w. L6 G3 h' E! e) f3 F% r7 b6 U0 y' g& f k
3 Q" r, H1 I. \3 e( C+ o' U: n# w. F. ^6 q0 p: \" N
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b% q3 H. |3 G" @7 N! C( H3 a ]! y
3 b w" N! @5 J6 r- |4 \ 3 S+ {( }! K$ v. {
+ M5 k8 C/ S ~! v- _3 ^" o5 g
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";, d+ ?! n3 I4 T z2 H3 t; g+ [( z
& ~- \& T7 @& ]6 k! a. e* M- X
# v8 c0 d8 {, b' O9 a) \
+ w# Q- y3 n% k0 y' P2 M
8 \3 S% \, F6 x/ U 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
" d/ X1 A, Y5 X6 h+ r8 X- M! P; H% U# ?
三、添加串口并使用PG15、PG16引脚
" a5 [$ j1 r# Q. E6 {5 d0 s. F" c/ f) M) F7 S5 s, |: Z
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8
) M. w* m' f' t5 r/ c: p6 n; O
, |+ K! b& k7 z/ K. a/ o* k
1 p- R4 ?+ s( A* c. N( V% g9 K& w2 K
6 g4 \ v+ u J. a ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
4 _ ?" b; ]. g7 D1 H! a9 B+ L* h" b% \- @5 R n. E
! M+ ~5 c$ D% p/ E( Z; }
8 B1 C1 `9 p) C; l& X; u0 ]: C ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。5 w: B$ f" {3 p; {* f# v1 z
7 r/ Z' h% `$ O+ ]
1 U* s' M$ S( ^9 @8 R( b2 ~* j, u0 \! A1 m# }
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。! Y) z. A+ s" X5 ]7 g9 a
然后我们打开UART2,修改UART2状态为status= "okay";
( r- @/ C7 Z- u( `1 C到此我们配置了UART2的引脚,并打开了UART2的功能。# \ R; D+ g/ f8 H3 b& W0 Y" u
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
0 n, P& `; F9 e: _: g$ t6 F5 x3 K3 x. l7 T n4 o0 L; w0 U
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
5 F- b' j0 W. K8 t+ m虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。4 r$ W; p. P: j' H8 p, p
, h( C f, M+ j- M. o& G ( P+ @/ ]4 p$ f: J/ `7 t0 q6 o/ @
相关产品: ! x) ^1 Q% F5 ]: X# i \( N. A& {4 R
OKT507-C 开发板 FETT507-C核心板
5 t. j1 ]: |( B5 J# v# u: Z " e+ v, n$ Z' C
" q* z1 b$ O( v7 G$ W% }* T
|
|