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

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
3 k" Q2 d& p9 H5 b3 k- O' s; K9 c' f5 M: \7 a
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。- R9 S! }, D* R9 K$ _# k
$ S3 B! B8 W0 L0 q, ?) k
4 Y( I* ]3 M+ Q0 z
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。+ f' q d# i3 n7 q- R1 a
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。* ~6 J! Q$ _/ }; }7 }( X
. K5 J3 D6 ?6 F l! B8 f' W
引脚功能复用思路:
* h; x5 u. d; P& M! n2 V. r 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
4 V# e" B* |5 B+ Z1 o q 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
, k2 U* x+ F9 M3、添加新的功能并使用这些引脚
. s+ e& P7 A$ L3 z, `5 }& D( @: J5 a/ d: L& v. \( t% k
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。# |& ?$ W5 u: \8 k) {
/ Y0 }1 `. \/ r4 J0 ~6 q
一、确认UART2需要的引脚
# X7 S8 m7 I( G0 ^7 i9 w5 }2 w4 s
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表1 M$ P6 R" Y# a) k& I8 J4 g
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx* T5 q! v0 ~) b
( q) v! k; j0 T. a
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用' O/ x) F6 z8 C1 b2 X2 X
* {1 P/ m+ [6 q+ g; \! r+ o
引脚名称
# J; M* y9 z+ |2 x8 U7 e1 Y8 Y' E& G$ T% N! @
| FETT507-C默认功能
( H/ C* d) ~* p2 y- E4 _! o | 可复用功能 % O# e) @9 U) e0 N6 d- ?
| PG15 5 s1 K$ e( R) T* a
| PG-TWI4-SCK ; z( A/ [# s T5 g: V- l
| UART2_TX | PG16
" F& b1 p! {* a$ `# o | PG-TWI4-SDA
; r7 S' \+ P }; [ | UART2_RX 0 U) ]: S3 |& h8 J- O! j
| PH5
' b3 F0 ?- X+ s; W: X | H_I2S3_MCLK - S1 U! a4 n/ g: g. M% m8 T5 v
| UART2_TX 0 A6 G; R0 ] ]$ m# l3 B
| PH6
" H7 N1 r& W { | H_I2S3_BCLK
) c' d8 Z8 s3 r+ E1 n$ O5 L7 a | UART2_RX 5 G9 ^; Y( ^/ [
| PI5 8 S5 D# l$ Q/ _" R2 G
| RGMII_RXCTL/RMII_CRS_DV
) f% s! h3 F5 Z% C | UART2_TX 3 J7 E, B* n. ~1 U9 z4 R
| PI6 * C" Q( \ B0 C2 _* x; G
| PHYRSTB . s/ _- V& ^- n; b+ W" |# J
| UART2_RX # w( ?4 g* ]+ I" w; E! N
|
7 x+ h5 t' V& x7 \+ }小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。% ^" k- C0 k( `4 f
& h; h( E2 y4 C) m二、去掉原来功能对这些引脚的使用
+ b' X3 S6 S' c0 r# g! L; r* N8 W/ G9 ^( x/ E; y/ q; n! ]9 O, P
◾ 打开源码,先了解一下T507的设备树文件:
& a; k7 h" k$ D `# _
& e/ {! D1 H N. l2 I7 qOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
$ L9 ~2 |. ~( a. P; S3 N- I) L 功能配置设备树2
6 C' C/ ]1 L b7 P. X7 [: V" Y3 g6 y1 D3 A- \' z* w
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
# W3 a, p$ u C. O& I1 W7 Y功能配置设备树1
9 n6 P; B# q1 D8 I* ]' y: Y0 }% p" c1 E: j
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
# q8 x4 N2 d( y2 _5 V" R 时钟设备树
6 M; u9 g3 [; U9 q5 q0 q9 A1 B* j
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi0 I v4 D; J- r9 m) r+ X. D( X
引脚复用设备树* }" b0 r' b/ O* {+ q4 _
. G5 I. E* \3 b$ R: c/ |" N+ _. O
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
8 l/ V8 s4 y$ `9 v5 \8 C& M
+ X' P% S+ c* t! {
& R# n6 H9 `# r- e8 _' H8 X) C# t- o3 r' S. L
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
) u% M: i0 c( D4 U# Y4 T2 _
1 c; G7 c6 c- j: r % ^( Y& \. J9 p" P* I
# ]6 {3 _# v! l- I1 W, @
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";4 |7 n. k9 O8 K: e0 w4 v
f% Y% g: E! e
9 A3 h+ X- L7 W4 }: U. i8 t
7 g$ a% x1 |* v! }) r 7 f, R5 Y. |$ [" `
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。0 P3 v9 w& p8 w: G) S
; ~: A5 ^) v+ O' M! h三、添加串口并使用PG15、PG16引脚% G# l S7 t. j
' [! @6 o1 S: z6 C' |' B6 @
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH83 s( `) \; |2 C' Z: v
4 j& Q, r4 l4 O( F
$ Y6 S) I& z( ~5 n; H- L
! O. ~/ i+ ^- E9 q ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图# P& t5 S! C5 q9 ^" d
$ e& F6 c/ y& e& n$ N0 t% O4 y- @' Q
; t+ T* @( Q) @6 [
/ }7 l' }+ o3 z, r& n& c" h0 f ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
4 \. B" Z6 S$ }$ X: W
4 c+ `/ G/ I) r9 c 9 R" b0 z* \% @! V- i: k/ g
9 v; I6 q6 s+ l9 t! j1 \
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。: `% X% z1 y7 L4 [, |( Z
然后我们打开UART2,修改UART2状态为status= "okay";
. P* X! Y7 |( {9 n6 F7 A到此我们配置了UART2的引脚,并打开了UART2的功能。" w7 T- ?1 h6 l9 _' P
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。1 z% R$ `! G) K8 j
0 y. H! p+ h1 ^. g' c, Z文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
" T' X! u9 P, l5 T虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
3 Y! l* b/ P1 P, Y/ m' j4 U; Y4 P0 d# y) ~2 b8 R) y; b0 |! T
0 k# d. ~% A! z; Y( e3 w; X 相关产品:
. Z) @$ c2 d6 r4 {4 G- S8 F" ^' |+ Y8 rOKT507-C 开发板 FETT507-C核心板 - M9 V: I* D0 t K! h! e
9 z; H7 d# W+ U$ W& f$ O; V: r0 W* ]& c( E& H# A8 N- E3 R. \. U% D8 I
|
|