- 积分
- 280
贡献1308
飞刀615 FD
注册时间2015-12-21
在线时间46 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
* T- j6 Y! d2 I! w- }6 T s0 ^; e& c- I% \+ V
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
' l/ D1 z2 Q. ?
# o2 Q# Y1 D4 P$ b, o
$ h$ X' G! O# d 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。- j! {) k1 G7 T m# G5 }' t
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。1 U. z6 @6 A5 g2 F8 C3 Q% ~8 V2 y
2 w" j* _. V' A) i, ?/ c 引脚功能复用思路:
9 C0 u& n4 l2 U0 B7 ?8 M 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能& [5 K/ Q- ?3 [! z3 T% K! \, v
2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)& c9 l: i+ r! \3 m+ E8 h4 g" `% V
3、添加新的功能并使用这些引脚
! H5 J) U" I* X0 c
2 Q' i4 H3 ?9 I, V+ U5 M 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
) K' U; L* \1 L6 V4 J* D4 T1 R% y) B6 X' H \
一、确认UART2需要的引脚
4 \ W2 r* [( `2 P- i1 [1 J: G ^
: [' W; i6 P" _2 |) W7 h7 q7 p6 g ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
5 P$ x# s$ z9 j 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
( v4 u! n( T5 [4 F. @
5 Y/ C% F: m: p. G* L! W ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用" v$ B3 z& S( |" I. w9 _
I9 k# B5 E0 C# Q' B3 i3 b, \/ I
引脚名称
+ |; N! Z( y% c0 `$ M( ^* r
# _" z: s1 P S) g5 j' H | FETT507-C默认功能 7 s/ E+ I; \; a+ v+ U5 `
| 可复用功能 0 @, @; N# g0 ~
| PG15 ( a; s7 O5 w" J
| PG-TWI4-SCK ! N/ [- |5 o4 e# z* k) c. J& [ V/ N
| UART2_TX | PG16 1 y7 e6 I% J% |4 i* r; t9 b6 D
| PG-TWI4-SDA
0 B) J& z: j; t, G | UART2_RX
: ?3 O( A3 s, l/ `# R( T | PH5 * L1 c! s7 u5 ?
| H_I2S3_MCLK
: @! A t' f6 \) U | UART2_TX 8 u7 F# H! h3 q. N
| PH6
! x" I# W0 j; c4 Z% W" B | H_I2S3_BCLK
0 R4 E8 A& n' A* U2 I | UART2_RX ' t3 X- j1 n5 O# K
| PI5 ! w3 r1 P1 }$ r) I; |7 P& Q1 P9 E
| RGMII_RXCTL/RMII_CRS_DV . K+ c7 O+ U$ f- W. X
| UART2_TX
. k5 B: ~9 Z$ | f% @ | PI6 ) i2 m; z7 h, u) @' _% }% W
| PHYRSTB
' `8 n* N( x$ x7 D | UART2_RX . ~* j$ t* L4 `4 z
|
. d! H& j, }1 s1 h3 X4 q6 J% i小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
^+ ^, Z# s- Y# t$ @2 P! j8 h& Q
二、去掉原来功能对这些引脚的使用
! _, ^0 y6 \: @& w( i/ y- s; k4 {% I) v5 h4 P0 e
◾ 打开源码,先了解一下T507的设备树文件:2 s; s' w; _ W& `( e; i
% E2 L L3 Y+ i; ?0 m5 ROKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
0 f! ~! d- I& l+ V' Z* O$ c 功能配置设备树2
9 ^; }; i8 k* z) z4 w8 A7 y8 b* W- G$ h" _2 [8 P1 y
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi8 N" A4 `6 t, u% d
功能配置设备树12 y, E/ v: N# G' h8 n) w0 n( b. W
5 u" C2 l; }$ y- T+ z. h0 y1 H
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi ?2 Y; y* U3 m, j+ D' z3 z3 N
时钟设备树: X6 i7 k, z) r9 s# M6 @5 H$ z; l
5 e A% i+ }& ?4 z# d! {
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
; Z: {+ a( R+ x- s( E 引脚复用设备树% B/ e& U/ P% R" `) U% N. C
% F* d0 c, N* n T ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
& g9 J7 f3 x0 I% z5 I' b; p! O7 O& l
P! R3 x# J1 [7 Q I
2 Q' m, A+ H% N3 C" Y# x. S5 r ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
6 _" z* m4 n: y; a& O/ a! i: M# h R/ E2 n
. |2 W$ k# J% B8 P/ e
3 C3 U" b, C3 q) @4 X1 s, P◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled"; O+ k) {8 `( h7 M; {( j
- o8 h9 Y8 L( W0 Y8 L
3 h3 |7 D: C$ ~' L+ r! C: J
% Z, j7 l! c4 H0 s- X- X5 y ) N5 |& G( |* g O
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。+ j6 Y% B9 {: R3 y/ T/ T) e
0 g* x$ H. }1 y, |+ K, V" J% z
三、添加串口并使用PG15、PG16引脚
) a5 ~# _% D* k: |( R( G5 @9 f3 i7 p7 P
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8% d g# V `; {( N% Q5 E% |# T& F
( k0 D% X1 {! L+ F
8 T) M" w8 i" W5 P& J' a% C+ p1 h" o' c
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
4 o5 K0 o& h: L3 S: p" a
6 H# R2 O, B6 w& b& @ X* f
6 {. w9 ?4 ~' h- t8 L& D( Q2 J
5 A# O5 ^+ \" z ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。4 o9 B1 }: Q8 q" [- x/ \# @
1 @& h6 g7 a) {6 g
1 \9 V3 q. @" A" R2 u! {5 f
7 j& ^( Q8 {! n* t) b. l: t可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
* Y! J$ O8 H0 |# o- x' K& ~然后我们打开UART2,修改UART2状态为status= "okay";
" {9 l# F6 F' d3 H" z到此我们配置了UART2的引脚,并打开了UART2的功能。$ Y$ @. A: A* j. ?9 Y# ]! r
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
8 J) P3 ]6 Y5 N' w% ^7 V8 r: }" P/ s
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
9 O2 a1 J0 a/ f# e& p# f( i虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
9 j1 G4 v6 \) z% C& B# V' H1 W+ N
8 {6 w9 S1 F7 _; u
相关产品:
5 l3 V( F9 k' P; q% q0 X/ ROKT507-C 开发板 FETT507-C核心板 4 U9 G' |# o* F0 b4 u" R
* D4 } M% |8 p
8 ] m: m3 G" e+ r( |- w( @ |
|