|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
飞凌全志T507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB ddr3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。: ~9 K& }5 B! V! _5 f. M6 W
![]()
2 ^: c1 _" ~$ O3 T, Q" q3 S( {& X6 o7 L8 W
自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。. o; q+ H7 C/ w6 \$ L& ?' [3 M
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
% \& N5 d- ~% n3 }+ ~. A1 @
( D$ q1 Q) |( l1 }$ P# j5 M引脚功能复用思路:) f3 D7 A% X0 e% i
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
; n4 o9 Q- [+ ~1 |( C3 _2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)" Y0 |! ]$ b9 z( [1 j: g
3、添加新的功能并使用这些引脚$ P* s Q3 Y! W8 {7 ^
5 B. h9 V" K" T1 K
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。# i8 m3 D- H* i8 r8 k% Y$ x8 g
. T+ k1 Q: E. F3 L7 K一、确认UART2需要的引脚* o; k# R* Y; I. b8 f9 e
5 T3 ?, [2 c. |- I5 X5 s
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表. V% s% \& q3 \$ n
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
}6 S, y% A6 x' f1 V$ T, L) I9 k- T. _8 k7 {- u
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用( o3 S+ v. j- H) ]. A
) {. }7 m3 f7 Q' v. X引脚名称. U/ \0 ^8 l! {. i
| FETT507-C默认功能
1 V P% ^; ]9 `7 E) ] | 可复用功能& |4 ^6 Z8 m0 q
| PG15/ X0 |& T% v- j! p) B
| PG-TWI4-SCK O* ]8 n# r: {
| UART2_TX | PG169 ?2 T0 n. I" _1 G* d) z- _/ l
| PG-TWI4-SDA2 L* U% q L, a, H+ e
| UART2_RX! w+ a" x6 d" ]8 X% A- L, m# ?
| PH5$ [! h7 B0 [+ G n! t( D! K3 N
| H_I2S3_MCLK; R# ?( K+ D7 ?) f K& i
| UART2_TX2 O: x( Z/ t7 ^5 n; M9 Z: g, _
| PH6
& b2 a: ]3 J* A" N! t3 m | H_I2S3_BCLK
0 a& w) v" P; ^! D4 \# V% q | UART2_RX
. T# B9 A/ f7 p* d | PI5' L! a, Z/ t, V
| RGMII_RXCTL/RMII_CRS_DV
. W# w+ v; @3 c/ t: c# s | UART2_TX" b$ o$ x' |# y: w+ u
| PI6
: K* V" l7 |" r8 }$ |9 K, z4 S | PHYRSTB p& T" a9 x5 L7 A2 ]$ H
| UART2_RX3 ]0 P8 [$ @( ]
$ W1 G1 h1 u/ V, }2 d9 q
|
/ f5 o- v/ w' j' p6 c小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
, d/ ^( Z! T) H, Y. U
( l8 w. U! `+ q; ]( Y6 k二、去掉原来功能对这些引脚的使用4 g6 d0 o5 Y2 A
◾ 打开源码,先了解一下T507的设备树文件:
$ W7 g' ]* }) ?) t5 n \" n# o: }! i. Z+ Z
OKT507-linux-sdk/kernel/linux-4.9/arch/ARM64/boot/dts/sunxI/OKT507-C-Common.dtsi
) j5 i- g t- y! T0 n4 L% p `8 K# t功能配置设备树2 f: @) N; S8 q- F5 R" q
1 _6 Q" L, ]: n L" l1 `
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi* O3 F+ G: b( s; w
功能配置设备树1" @' `" i. e% B* w8 z# _, k
, ]$ i8 s! a+ \1 |
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
, \! K4 H* a0 a3 w时钟设备树
9 D+ I# n$ \3 E/ A7 w( P$ @! f& _. w& W! i( ^
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi- c# Q) D( R b& a9 C
引脚复用设备树
6 o4 f R/ w8 W& m7 w5 b H+ e) `2 h A$ E
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
1 y1 V( o* Q( M. Q2 b( B2 x![]()
0 @6 S" A& Q. F# x. ]! e( c \5 h! `. Y7 Z
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b, f0 t" Y5 c6 S6 c% z3 ^2 {3 [
3 F$ t! C. I- R5 k) i& Z0 o
![]()
6 c7 U$ e3 `6 t, c/ e6 C. L5 H
( a) d% D4 {5 I; b4 l7 Z7 b* W◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabLED";* L# A# j: U- U5 c" b2 _1 w
, O/ J4 j+ O# X, f: T. G/ e 1 m+ I+ b8 ^3 @/ q8 n6 T# x
# z" d h/ T% ^
/ \: q* O5 N, J, p2 V$ J$ `
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
- v, G: N4 I! @# b9 Y0 u7 V* b' A0 [9 w& L: W
三、添加串口并使用PG15、PG16引脚% ~# E8 _: u' ~9 l% i" H
' N, X6 ~; x7 z+ t7 Z* V0 @◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8
3 k2 m. K+ U/ C% ?
1 O- ]: t0 L* ^- y![]()
/ z8 k* N5 k7 `5 h3 o$ U. C+ c! O5 H; }8 T- r* }$ n2 t3 Q
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图9 o# ] g' r: p! R
) D; a5 D1 [. j) a4 y2 q
, N3 a }" E. \5 i
+ `0 |' H" V! J6 r* r+ I% ?0 _3 }◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。, b$ p6 B/ d+ ?+ I3 i- U; A9 W
8 S7 b7 y8 w2 W' ~! t8 b% F # F/ w$ I9 o$ u# ^, R
! p. p+ E: W m+ |! b可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。* k7 J/ D. k; ]" N6 A
然后我们打开UART2,修改UART2状态为status= "okay";8 X; x0 K1 w( M3 p, P; B
到此我们配置了UART2的引脚,并打开了UART2的功能。
B6 J# W; Z3 C4 V3 U) |$ j+ [当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
8 G6 e. H; Y9 D$ d h
6 G1 I9 K/ X/ S3 x" b9 ?: ]" \/ D# r文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。2 {4 T! }- M; L% E7 x9 }4 j
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
; b3 g; M* m( r: m1 z# D$ i原文链接:https://www.forlinx.com/article_view_793.html. U9 A" q3 g) u) D3 t8 g8 E
|
|