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

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 4 W3 |( x0 G) V' W0 S7 L
7 v8 _6 T9 @3 `+ ^& X FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
3 I6 x% @; ^ Z% q3 J! N2 C. T5 D( v+ n + S3 ?+ e% \: C G" I
. w3 K+ D9 r( q& S P2 V& p1 ^# { 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。 h% N" ]0 W" J' {) {- A- x6 X
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。2 p) x# G& {3 s! Z5 q& ?, v7 C. ~
; S2 R2 M* @4 r* a$ B8 Q' d 引脚功能复用思路:
* a* ?" k; l% m9 H0 |0 p. m 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能7 s* d, ^% z/ u7 O8 x+ `
2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)8 d; b6 H# V2 y6 U6 B0 Z/ _, ^. m
3、添加新的功能并使用这些引脚' S) N& R/ _; ?% f
o* I) b, h6 f% W) i3 \
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
4 c J7 x9 r! J0 J. t$ \$ a( ?
0 Y! m& Z/ `! B# A$ v( S l% a: T 一、确认UART2需要的引脚( }: v" Y: O# ^, Q
. K8 j5 I* J0 {: v9 f) R
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表% x6 Z. J0 @& S# O b
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx* \/ P* U" ~/ j
; I; j% I' {+ x ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
y; u; N" Y) m% {0 b+ V" x' o) M6 j3 R$ K5 Y! o
引脚名称
7 y( ?3 P8 V8 S; \: }/ E& }
. I3 ?( W! d1 {6 T | FETT507-C默认功能
: x* O X1 ~: B. O+ X3 e | 可复用功能
8 K$ Z0 h$ m5 n( |% v9 g | PG15 - x& ~- M% {6 R R- X
| PG-TWI4-SCK
7 v; k3 ?" A# n& G) p | UART2_TX | PG16
& j1 E3 w: Z' Z! X | PG-TWI4-SDA ( h4 [; w; A( k0 A7 k `
| UART2_RX
) o4 v: n: `& ]; j: j9 ] | PH5 3 s8 v; G( V4 E
| H_I2S3_MCLK # f0 B/ L: C) p0 a7 z
| UART2_TX - O. s& G p9 u/ _+ Q
| PH6
+ K2 R \& W9 U/ B | H_I2S3_BCLK ! h: `, \$ V! a: M8 U
| UART2_RX - O" f6 ]' X7 F$ t, [1 @- b5 H
| PI5 ( t; b1 m8 |5 c D) p" M4 v E
| RGMII_RXCTL/RMII_CRS_DV
& c: c; B* B$ |* Y" K5 y | UART2_TX . {8 N" \" e1 @( D
| PI6
( X: N8 E" ]. z | PHYRSTB ' V$ G. `2 c4 p! X6 C1 U
| UART2_RX ?7 w% W; t6 D* x( f
| 3 X8 s2 w$ ]3 U4 R2 n% B+ j
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。. V0 i, u9 W) x8 N' ~# r* p r; k
2 S2 f: q" h1 S. a1 i二、去掉原来功能对这些引脚的使用
( z9 Y/ P t: C0 U, _! ?! M% E& e4 T R7 L' U8 D$ }/ _
◾ 打开源码,先了解一下T507的设备树文件:
" d3 }" b+ S) D$ [, S6 ~
* J8 K* E3 S+ B2 @OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi/ m+ ?: p) Q4 h! S/ A1 R7 I
功能配置设备树2- @) O/ B4 v! @% h& G# x
7 Y4 l- c) D) U+ _' i, d. K& v- r
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi8 @% v7 ?: ]; i* p# {
功能配置设备树1
- ~+ M, T# S6 d( f$ ~
7 K6 | `% a' v3 o6 a: T0 o1 E OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
8 _+ P/ ~5 V+ T' \! r4 Q: S 时钟设备树8 d/ s2 `/ b/ V9 I
( T1 Z- ^, Y' O2 X OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
: G$ V; U: x1 s 引脚复用设备树, a5 W' \" k. D, W4 X7 T8 |6 t2 Q& I
& N6 A% L6 ?, h2 T9 H/ } ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用1 {5 H" @+ z: \1 }, c* k+ Q7 i
d9 H( W) W) h: [ ! }* @; D9 w9 G. v
7 s- |$ B: c0 `" |
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
8 Y( T/ L/ u/ }1 N3 p
V. i" p" s6 x! J( m G3 `
% l8 ^, w+ h6 B. F0 [: |
( d6 L! w9 R+ k+ X◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
, X) S( L6 d h- y/ Z
3 a0 C1 a: {8 ?
}& U7 R7 Z: r, n4 \; }' Y4 n& M8 k( @: ^: f+ j
5 s: y& M2 y8 c
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。8 I- Y7 w8 c7 A; H. w9 {4 _1 `
3 F- U7 ~$ C# x
三、添加串口并使用PG15、PG16引脚
P. p$ A- d& G- l
; J: K7 L0 S8 ]9 b3 W◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8- e u2 a, `5 u) }: x) `9 F
7 o* J/ o! U0 A m* W3 X" F
1 e% M2 d" _/ Q
) W% q8 _7 r0 r( g' S ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
" t( W# k- A+ j7 v* F; E4 D& v; E1 S0 t. w9 g, C" Z; o
/ S4 C( ~9 u# z' l5 i7 s3 n0 g2 J4 b' l' I; F
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。! c$ b# _3 Y. d Z% h4 D& W
/ |& ?6 l/ k' l3 @/ j
* T0 h5 U; u, f! C
0 M5 B2 b: b$ z' ^可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。1 r: }& J# b. N6 @$ Z
然后我们打开UART2,修改UART2状态为status= "okay";; s2 M, m5 Q, c( \1 _
到此我们配置了UART2的引脚,并打开了UART2的功能。4 F2 c$ o. ?; q" B; P2 C
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
2 F8 K. T( u) h, ~7 k( c6 n" v5 p% R( g! @$ `4 ^4 s$ S5 s
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
9 z B4 X( g T: {+ F' _虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
0 N% a1 `% V: I/ C8 Q
d( c0 i: w1 } 1 H( t* [, H Q& G- X, |
相关产品: 0 Z2 S: S; ?! ?+ I2 Z) U/ A
OKT507-C 开发板 FETT507-C核心板
6 Y5 U* w! }! R# a ( J. d, t" d( b* M0 B
- h8 v* G' ^4 K6 k1 ?- u
|
|