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

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 * Y# X6 W- P: e, }
" ^4 K) v9 P3 f5 t- z* ^
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
$ I3 b' |- \6 r. a9 z) H 3 p6 H0 _2 J' g7 \3 Z9 M
; R) ^2 F$ {! k) D9 o6 H
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
6 e" e$ i- w3 C6 D5 E 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。7 i5 j, F6 ?( l& u E, s
: i9 j8 C, r7 b# L8 |' K 引脚功能复用思路:2 M @) P( G! Z/ i& s
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
% ^$ g' d$ L) g2 [4 ]1 b. F0 o! b; c 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
+ ?" a: T5 Q( C& A3、添加新的功能并使用这些引脚9 ~5 ^* K: Y+ w( x5 V8 k6 B8 k
- b% u [1 q/ B, T/ H9 J( m
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
, f b0 k; { }: T9 U) Z" W8 J" |3 v6 q v
一、确认UART2需要的引脚) F# d6 j. F9 r
; J: K( {. j) E2 [# S ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
- F; ]: \2 J; |9 y 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx1 w6 X! [% f9 r3 ?: @. I
& l. u% g/ y- P5 Z0 ?0 d ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用8 D& t, {: r7 S4 k1 N4 y
: V, f# ~0 s! j7 ^3 J) r( g 引脚名称 X" D1 T1 ^ p D6 `2 F- I; i5 R
- \- E( @3 S5 r5 W | FETT507-C默认功能 * I4 J: o' `/ D N+ d5 }! x
| 可复用功能 ) E* ?& b5 ^7 w5 V. q
| PG15 3 d/ f- J7 D; y; T2 m X9 Y
| PG-TWI4-SCK ; _0 s1 \# r$ ^
| UART2_TX | PG16
- t( J# r5 P7 e | PG-TWI4-SDA
( ^- {; L$ h7 [8 G4 R9 O | UART2_RX ( m) p2 f" m# |8 A
| PH5
' i. w" K. a9 c | H_I2S3_MCLK 7 H( r' `4 y- w
| UART2_TX
" D( W4 s" k1 x4 \: v0 _5 V, f7 F | PH6 1 K3 [) N" S+ L) [+ H6 M* a: h" a$ ~
| H_I2S3_BCLK e! e: I" p. x6 F" Q( [
| UART2_RX
5 ~' s, |8 K; O; k+ d6 `- ] | PI5
- f9 }2 z( O. I2 Q% ~' ^- E# D | RGMII_RXCTL/RMII_CRS_DV ' }; `: L8 _* }, G2 T* u1 r+ L
| UART2_TX
( R! ]2 u1 E) s4 S4 E | PI6
& z# a% G+ R. r | PHYRSTB * J ?. M) | q; }* r) y3 `" Y
| UART2_RX 2 ^& P% C! D) R/ J7 Q
| . R9 \" E! w2 h- F( h
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
, C9 J, o e6 t4 r5 A: T% Z* H( P5 e8 S# ^* {6 a( T
二、去掉原来功能对这些引脚的使用
# v. D, q# x, ]/ v e- w2 v7 i3 E1 a4 k* ]) H2 H* M" k( c8 m
◾ 打开源码,先了解一下T507的设备树文件:. }. {+ |5 C5 R: |, T, | ^- f
$ n# a$ ?6 v1 W0 O8 o# @$ H
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi1 z8 v' q+ M% Y0 X7 Y+ M
功能配置设备树2" K. n) E) E1 ?# i. e
5 U o; @- f3 M7 h: B* v0 F
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
. h: g+ o) k0 n- U* [( L' I功能配置设备树1
& k. k% j c' ^4 ~; z
/ z+ r% `' A: t! Y OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
J7 J5 l% D2 m) z8 o# P$ L) N 时钟设备树0 _0 F' Q0 W2 }
0 I. N }! ^1 X0 v$ B OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi: O: b# k7 Q- p
引脚复用设备树: N7 U R9 o& h9 X! u
" {3 V) r& y k8 ?
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用6 b h1 y$ j% q7 t6 F# f' f# D
' h h# \9 }4 P- H7 b
2 d c, p" p y% n" u) O! ?3 e
$ r2 S" n: c6 X8 y5 G6 I6 [8 j ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
+ r4 A* W% V+ m" T/ h {
+ K1 d/ I7 P: V" O 4 C2 O! w/ ]7 e- f" X2 a! z
4 w& d+ n6 \9 R& ~ t- {+ B◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
7 N$ C/ G$ v- m$ U7 B8 f6 J( {$ {8 p3 H$ F; m1 e: a
: x5 x- V1 Z7 m" P7 f
0 S2 a5 {9 L% ^* ?8 x
% F( |* S, f# w' h0 I) D7 d { 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。1 }9 q+ E9 O* J+ U5 r. \
1 H1 f' c- d* e& W$ [/ l* }
三、添加串口并使用PG15、PG16引脚
e: _# D. F; K' O% F( Y
' D! D' l; p6 _◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8) O9 a0 S; p. q& L& @# j C
5 D6 {4 p' @7 h! H9 \ + G8 j: I2 Z5 u3 k @# B5 A# i! a5 t
) E8 ~, E+ _ J) F9 q% A
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
1 @( M& ^3 j3 Q! M
8 A; i/ t9 i2 S& J8 l9 _ * F1 n8 d/ i0 ^/ i
# u! s. i4 w; T' i* C2 L ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。: x% z) n& _8 h5 x
, l9 W4 n8 c9 s, E: N* K8 I & n, m: l# |8 S
% M K; y# v! Q3 U) ?可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
" V! a* S" Y; V* y" C' Z然后我们打开UART2,修改UART2状态为status= "okay";
5 ^7 J5 x; D4 o% H, }到此我们配置了UART2的引脚,并打开了UART2的功能。
% N& U. I, I: G, W7 Z当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
# a5 a3 ~5 }. w4 P' o4 {9 ]. W1 z' r0 y. e% G- G
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
4 }8 Z. Q5 W$ O* h5 A: C1 Z虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。% U5 O/ B. X# y* P
% B3 S- H! Z4 d6 l1 N% W+ H i* v5 D' f2 t! J! m# S" S/ N, U
相关产品:
" A7 r$ J* F6 R/ [2 j. e. R9 EOKT507-C 开发板 FETT507-C核心板
! t8 z+ n/ ~' G' L0 M
/ f2 Z/ _" o/ p+ V; F
" p2 q& _4 p1 G |
|