- 积分
- 306
贡献1479
飞刀581 FD
注册时间2015-12-21
在线时间51 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
5 R% @0 o* R& x/ h/ l
! a8 _* t* @, \* L FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。, k8 G# k, F6 X, X6 V
" ]& m5 G! a' Q. X0 n d* G0 }/ |$ W* k$ {
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。; ]! W6 z$ X( s! a
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
% Q/ Y7 @6 c) e3 @0 M# L. w A' {: ]5 L
引脚功能复用思路:$ N( U- u5 h/ }$ J" O* B
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能( e( V# j0 }& l- i
2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
$ L9 d% m' M1 D9 @) t3、添加新的功能并使用这些引脚
k/ Q, z+ N& K9 D+ S P5 x- Z/ _, C/ L9 s C# H9 A
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。9 o/ U# j! M- D' t6 o; z' R
0 U0 o5 a% d0 s3 d' y3 ]9 `* g 一、确认UART2需要的引脚# }) L7 N/ z& X% D# |
& Y3 S4 e9 m! }9 v7 s ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
7 y! J2 M8 [3 \- T2 g0 ?8 g 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
% Y. q: c7 \, b0 x/ j/ m A& d
4 ]( c* y8 k6 r/ H ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
) t' L4 \) i# |5 G" n& N( S
7 S [/ x0 \3 T% v7 E 引脚名称
# [- E& ]/ H# r) M8 e/ }4 F/ a: v5 l) |
| FETT507-C默认功能
; s9 T4 Q9 w# C6 I. ? | 可复用功能 7 Y& m$ [+ R6 a N
| PG15 9 o/ B; m8 W5 l
| PG-TWI4-SCK
& r: C: ?" i/ o9 A; F | UART2_TX | PG16
5 C" I/ d7 \2 q% I8 `% g- o | PG-TWI4-SDA 0 Y. S5 e( I ?' [' w( S8 F3 J6 t
| UART2_RX
% \. [' Y" {1 k5 u3 _ | PH5 - [' X/ g4 H4 }4 ]1 I
| H_I2S3_MCLK
' u8 ~- C5 V" W g | UART2_TX
& V. {% L, v+ n O | PH6 % M# O' |( k# ~$ f5 \" w' l3 i& \2 P
| H_I2S3_BCLK
& P& [% U* y. w4 o. M$ x | UART2_RX # A5 q. o: e" X2 d6 [
| PI5 9 s' K) T; w1 Z$ b6 o
| RGMII_RXCTL/RMII_CRS_DV 4 `$ H- V+ O* s3 `5 S, r
| UART2_TX ; y3 k% j% P) s! e; Z8 T N( h
| PI6 y7 s8 v k Z$ M3 `
| PHYRSTB
4 c, Q3 t. h0 u Z. S2 a | UART2_RX
1 y" D6 I0 g. H6 x |
3 [/ n7 A1 v! S- m; T1 g9 m- Z小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
5 T1 ^/ g0 A, M# i+ ] g, @9 L
二、去掉原来功能对这些引脚的使用
0 f0 l E( {/ Y& B# V
; n9 o" m6 k) C5 ^- s& l◾ 打开源码,先了解一下T507的设备树文件:
; g: o! k2 ]+ t4 }* J4 {6 _ S v: F6 I8 p% O4 P; t! Z5 q" n2 ]8 s: l
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
8 C6 h. o/ U0 E, _+ _ 功能配置设备树2
: z9 F7 U9 u0 O# A' ^, B
6 H% \/ n* F6 g/ l2 hOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi9 k! r7 C. f. ]( { O5 q
功能配置设备树1
, c4 Q+ l/ q6 L8 M! ]
1 L8 P" E! k* K* _, s u OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
$ ]6 j1 x1 A' w; D6 ~, b$ Q6 Y+ I 时钟设备树' @+ p+ y8 q- l1 {$ C3 e2 \
2 [1 k# R3 j, Z* C0 ~0 ^; r
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi- V9 j+ C8 J: q* x! J
引脚复用设备树$ @9 `, b- C* O2 @- Z5 x* H6 |& @3 O
% e) M. k6 b2 h% x: f' o8 _
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
! s, e0 u; v* i) h; O/ F6 r, A. P1 X; w1 _4 p! H7 u
! ^. s5 H# w( C9 ^; q& e/ Z8 F9 b. k8 J( o+ \! s& L, v
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b- K7 \8 z8 A7 d5 B$ f& @3 S
! d/ ^/ v7 H' n/ F7 x# H7 {. k
. K$ J. ?* S/ Q3 {3 o
$ m# [" A( y0 }" K1 ^. P" u; b◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";( o) l2 ?+ ?" Y% E/ [
; ^9 T. X- Y2 [& r2 }
/ | \/ X4 A8 P3 u$ g, `
+ V+ m T, a3 s! m- N: a
. V% H5 e9 A8 _4 A# J5 |6 E% z 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。5 _) `) L7 K" Z
7 @, k2 n; o; k9 h" H+ i% J
三、添加串口并使用PG15、PG16引脚8 S" F6 [+ X0 B: i9 L
- K/ q+ [- `* ?, O# |8 @9 L
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8' s2 z& x' ]" a$ E# z
7 q) G! x6 |# S , i% |3 L6 H! M0 D- F
G& o; e, C. l& x+ R ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图& O& X$ W6 G8 y! B) [0 O! e
$ O% `, y y% q. w! f R% D. m : R) \& R" u' i+ E& n6 N% l
8 ?' K' r2 ~1 e5 ~; D& u4 i ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
# P; B! e) E* c& H
* j# I' F: l* C+ o
e* S C n8 X6 L+ e
, H( R/ x' |' s5 i% ?可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
* Z o, X1 H; R然后我们打开UART2,修改UART2状态为status= "okay";
; O# A5 [" n- g2 r( G- F- g8 O5 X到此我们配置了UART2的引脚,并打开了UART2的功能。3 V e: ?' l; J8 p
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
" `% \) h4 X- H" @9 D
: a$ d! w! s; t' F, B文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。- M/ n& S/ `0 J q5 G! P0 K& ~& E
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。8 L5 v- c O2 I
+ C4 C* o1 i) W& |2 j8 ~0 J
0 \5 R# }# \1 x' A+ s% u 相关产品:
/ Q. b' [8 F1 K* ?, zOKT507-C 开发板 FETT507-C核心板 * w; J; e& l3 h& b0 ^
- `8 h* b6 T! B; T9 A( i- ^1 q
9 K' x0 [, C) r; c |
|