- 积分
- 297
贡献1423
飞刀567 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 ! S9 \ T7 I! }; q0 R3 I8 ]5 H6 }
" @/ k; M: R3 c& x; _
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。1 j- ^1 n3 x& J0 U% C
2 G3 a8 ?, a; d/ d2 p) h
1 m8 U% u2 v+ q. v 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。9 \6 V# ] @+ _
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
9 _# Z- d4 \' t7 d- a9 W' @# W9 h
# K4 n: r3 v+ ~# r1 ^3 b 引脚功能复用思路:
1 q1 y; _$ @4 u- g: X 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
6 [7 c! D3 o d- H/ W5 s 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)$ D$ p# Z4 m1 {* q; ]
3、添加新的功能并使用这些引脚
9 T! {+ ]: g$ D1 y
. n- a5 U4 V/ G1 w5 L/ Q, l' I 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。' ~8 V9 S; |! H4 N) V O0 o# h6 H
7 j6 ^- B9 {0 e1 q& L. b 一、确认UART2需要的引脚
3 d5 C' y* y4 P) _6 m
. u4 u$ W; T7 |+ [ ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
! M# u9 m$ P9 B 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
* q) S- e/ D) y( X" n5 z8 \
0 ^+ x- Y( V+ Y8 q ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用' {2 ]1 S- p. o, ~. j3 C2 D1 x
+ O; e0 [4 G# M R 引脚名称
* z9 h6 E- @0 T- M' F3 p/ X# {$ b3 K
| FETT507-C默认功能
: j6 I6 A. `6 l& z& i: z2 D | 可复用功能 , _0 c4 d T3 O8 \, |
| PG15
& v5 O& C% _+ U U- K1 F" @ | PG-TWI4-SCK
' I4 g0 f; w+ M( V; m) }' e | UART2_TX | PG16 ( ?- S$ m( ]9 d9 e
| PG-TWI4-SDA 8 a7 z3 A) [2 q+ x" G$ u+ n
| UART2_RX
0 G* L# o- S5 b | PH5
% G& q7 Y1 W% L | H_I2S3_MCLK
, ?) r( u+ v+ R; B+ G | UART2_TX
2 e9 x% h" b+ a. ]) x# | U | PH6
! r- ^! L! P* t. u. t( Q | H_I2S3_BCLK 6 H2 S5 w* ~1 D
| UART2_RX 8 t: {9 s* j2 t! ^
| PI5 0 j% @9 {! u. l4 K5 f
| RGMII_RXCTL/RMII_CRS_DV
' A4 V$ q2 V# T: A | UART2_TX ' F3 n9 @( v/ M. D1 P- a0 e* p2 P6 V
| PI6 $ m) P1 m. Q8 M6 a
| PHYRSTB
0 i' v* _" }' @* U& e5 p% V6 v( P. | | UART2_RX
' q1 J9 S" C# B' G4 k2 `) I3 p | * _4 `, B& X2 a- H/ c9 O
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。& b" m3 x: ~3 Y p2 M1 @9 G
0 f+ m) U0 A; t7 e4 G5 N8 x9 E二、去掉原来功能对这些引脚的使用
' ]2 C4 q( C1 N: F) n0 ^
4 v, ~6 I$ a$ P6 L; d◾ 打开源码,先了解一下T507的设备树文件:
3 U" y! E9 {9 [- e
1 ^7 w/ g& p6 f7 j6 l- FOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi) L, Q, k* U3 ^5 ^* p- W. J# V
功能配置设备树2
" l0 y& ]$ a5 n/ [" p2 t0 P2 K8 _) Z8 A* ]0 g- d4 [
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi d$ ?# J% v% u" p
功能配置设备树1
8 P) b, K- \/ t7 F( Y; f
1 o, [2 u3 [4 e1 |9 l- ^ OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi5 U* u9 W8 t% Z, O3 x) s
时钟设备树
4 b% G% a6 Z2 R! K4 r3 F4 H
/ m: \ i' t/ j# J$ T OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi% \" D. V2 g' m% X" \
引脚复用设备树
, E" ~; a6 |& C9 w, ]2 A- E1 e% F/ E
, O; Q E( q& Y4 [0 t- ?/ d ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用0 \2 O2 I$ E& J# E
( j B' v* ]% h
; e8 v% c3 G) K/ r4 h: I$ Z( Q3 T
7 N0 ~8 ?. K K) M1 d, m ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b f; E. ~. D' {
' e- w" ^4 V; ^; T+ c
- q6 O( B* Y6 S" e& n7 A- a
: W Z: F5 e( b* ^◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
6 g4 L+ n, \' Z4 h* C& v, _& J* @
! v1 t( E/ O5 O! m9 x$ l/ e& F ; ` ^0 K4 V" t; n3 F* i
! _# A+ Q" ^& v# E
. o/ |& d: K f0 u
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
3 Z0 n- ?% s' l& l6 P
O3 J! d* B; k, C7 E+ |! ~三、添加串口并使用PG15、PG16引脚, F$ a6 @/ X1 @9 y8 ` z* R W
% P3 J4 r6 {; t! ^* x◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8) \ X- T1 M" T9 a7 j+ Z3 f" N
7 A$ i3 V) g4 s
, |6 V1 ?7 S7 a( ~2 J d/ ^, y
" h9 a8 Z4 d% X/ O. U; I3 D ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
/ v8 q9 t& ]/ @& S* X; h& r9 e+ N
2 e$ d; c2 |( Y 7 C6 i! a; p4 |# U. K0 i4 g
. e5 d0 U5 E: L' q8 W/ O4 y! v
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
5 l+ w. `2 P! G; B6 P2 V* ]' C; h$ A6 N: Q! A; p) N) V, o
& g f. M4 g$ [. t* Q
* T* |* H2 N0 v1 D
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
9 k" Y) I% Z) X, B' T* f- A$ M+ b+ g) f: T然后我们打开UART2,修改UART2状态为status= "okay";
% j7 |' g9 |" t5 \& V到此我们配置了UART2的引脚,并打开了UART2的功能。
+ J6 @* H9 i* M0 \当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
o* M+ {# W- k: {
- n) w+ ^# ^7 g文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。" `$ k: e! r- J, M
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
/ m4 n3 x( b; Q2 X6 b2 a1 [& Q( B" Y% N
" E, e6 a$ @6 e% |
相关产品: ) R! d5 y+ L l* c) w3 Y1 m2 o
OKT507-C 开发板 FETT507-C核心板
: V, ~7 q/ y9 a$ l 9 |# }" N1 Y# U4 z! b
l' K. y/ X0 m
|
|