- 积分
- 295
贡献1408
飞刀561 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
6 n" Q4 ]# s: U" N$ s- k7 c1 E" m' ]; k) y
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
( U" p" M# U' e. ?- ~3 T ! d2 T( D/ I+ @5 e' f1 C$ }
9 ?; q8 C% P4 S5 M# q 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。, j* q/ T2 k" O: G' D4 B7 Z
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
8 m( ~- ]. @) d5 S3 \# B) t; u7 G8 K& u4 y1 x' G
引脚功能复用思路:; v7 L. _8 {; z
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
3 [& ~8 k2 A/ K/ \ 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
# B0 z# k# P3 V ?3、添加新的功能并使用这些引脚2 ?& W/ ~% |- P4 D9 M
5 s/ K4 u3 ^# z3 P
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
, p; ~) W6 V7 j" ~( P% `; A% [( U8 H0 _0 f* a
一、确认UART2需要的引脚% v& T1 o: k! z% o9 q/ e% g' o, F: l
y5 D+ Q! N' C! |2 W! t. L/ N6 a ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表 d, Q' D u" n
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx# D; O/ |8 c6 ^5 W6 v# x3 ?) d0 W# X
/ V' a4 X4 s, X ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用5 g" e0 m4 i. I* x5 |$ ^1 R
3 W1 P v; X& ~0 a- x
引脚名称 & r. q; V) Q7 e9 @- j# @
. B0 W) L, \ W
| FETT507-C默认功能
; a8 ]8 f) |8 d; Q | 可复用功能 ) {; A5 s; ?2 K4 p. R7 s* e/ x
| PG15
9 `9 z. q5 c! K# L( r# S4 s | PG-TWI4-SCK
: s3 D# n. d5 {9 L2 q9 T | UART2_TX | PG16
/ S( o3 T+ Y$ Q% W: c | PG-TWI4-SDA
7 t! g2 t& i8 B2 a9 g8 S; T | UART2_RX
3 h' Q% k( p" Z4 Z% z; r ? | PH5
4 x% F% c) j+ G g9 B% W | H_I2S3_MCLK
* o% f) ]% S' i | UART2_TX . c$ h% e& Y3 I) n& j
| PH6 / Y3 B6 s5 }. C z8 y. w O
| H_I2S3_BCLK 0 u! ? {" y& u5 l, Z& ~
| UART2_RX " r" {$ Q) ~. a$ X
| PI5
5 \& w1 n) f! H5 Y0 Q | RGMII_RXCTL/RMII_CRS_DV $ ~, w$ j6 M6 h. h
| UART2_TX
7 o, ?' c9 n7 U# @' b | PI6 4 Y8 t( O' H* r( i
| PHYRSTB
9 N/ I8 \; d/ W+ a( q5 w | UART2_RX
/ j3 y7 E- p3 }) c* p8 P b4 ^ |
& ~6 y( e" M5 _# a' Y/ [小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。$ E, L' Q; z) k9 w z5 ]
" _0 v; m$ D1 j二、去掉原来功能对这些引脚的使用
7 K% E# B- `4 ^ B8 C
! L6 b" e! }) J a' p9 x) K, ?* V◾ 打开源码,先了解一下T507的设备树文件:/ r4 n9 J, Z9 c' S6 f2 U
5 K9 e% S* k$ V Q
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi5 V+ d3 L5 k: p4 M7 N1 E' e
功能配置设备树2& k# g' s) C. t0 A
) X! H, R# c6 x9 S5 s4 |7 m4 S" U# N
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
$ ?) M2 A$ g( H4 |功能配置设备树1( g9 v3 e$ @$ E' j
1 b" z8 m4 i! |# f6 j) k9 Y OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi* V0 B9 L/ Z+ T" L
时钟设备树
: p$ C$ S6 w# ~4 I
4 J# u! H0 i, c( O OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi! @! T1 L @; b5 j: z
引脚复用设备树
# R% t/ K% ]3 Z" c1 A D
! _6 ?$ e8 x( W2 W L) B7 k, Q ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用6 R: {) O+ L/ G. K" o! ~
& ?2 x3 v$ K0 `5 L0 b, |
4 h4 w" @4 }( W6 M* E% M
* S+ u. `. n8 m* f ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b# f/ i8 h1 k' g
+ z3 n- J0 M0 s! g F! `- q, S
& Y$ A# ?0 c( V
* \# |% h0 e: K( `: H
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";6 g4 j( I7 y/ T4 v2 }( V0 K
7 t/ e2 j/ K) g( {; B0 ?4 t- {4 }) s
2 [# Q8 F7 U5 V* @1 u# k+ Z4 |, U1 f# j: R6 w; J) u4 y+ a: R& d
6 C1 E2 N) H+ u+ V 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
8 d5 d( e0 D1 u+ p& R
7 g8 r* F/ C8 A/ {; a: K& w$ {! n三、添加串口并使用PG15、PG16引脚
( p& N, S7 V+ n/ E$ Q& G
i: Y8 A0 j( G9 @9 h3 ?◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8+ l# P, s( d/ s$ u6 b
! N6 n8 t: t' f; o! _+ B
/ i' T% b r. N+ x! Q5 p# @
8 x) X8 X y( B( { ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图5 Z2 T) ]: H2 [( k9 i" R$ K
9 F% P; g$ K( z$ U% ]& D: _
; }& R2 S$ Z% w5 Y/ S# X1 X; x# _% Q$ G9 C% a4 F2 d& T( U5 Y
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。( K2 d* Q. w3 G* o% u
; V% X! ]* g. X& G0 A- @9 Q
1 B% x# c9 H' S6 M& u) a
; q& f" `# Q0 E1 z* K可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
% U) @4 p/ N8 M然后我们打开UART2,修改UART2状态为status= "okay"; u& }' e* y; n+ d+ `/ S
到此我们配置了UART2的引脚,并打开了UART2的功能。9 V0 Y6 ]/ N, q: T
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
/ N8 w5 H5 c' {: S, d! ]- r8 [. V; e* f8 ~6 |
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。7 ^; ^5 Y, W$ A4 J
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
5 p, G; w$ z, P4 s& n% Q9 f& {4 g( _4 `
/ T& T! ~- E8 X$ }. C 相关产品: / G+ j. X# |/ y8 }6 H) i6 _
OKT507-C 开发板 FETT507-C核心板 / {- T8 X( j5 _2 N7 ?( p8 Q
. m: E5 y; P% i# J! S6 ~
2 F2 R/ O# X- U4 M0 Y4 j4 l |
|