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

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 & y; o# I. b" s. g# z
# c! T; _0 j4 o6 u+ M& m
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。( b7 _ q/ P: J
; S k/ G' b: n( j: Y1 S m5 ]4 _/ q p9 }. _
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
L3 o' B" `1 ?. ~3 d; F 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
6 {" u0 H! b- R8 W& T- u0 J
% p9 C7 `1 O1 U2 a& N 引脚功能复用思路:
, L8 f% p2 p2 D) N3 A g 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
! |9 \) k+ S7 Y7 U+ w6 q 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
( L$ W& Y1 P3 s. O3 w, p0 y3、添加新的功能并使用这些引脚. D, q, k. f; v6 D2 a
9 Q, q0 _, s- s+ z- D
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
8 }* ^# K3 [6 d7 h) ]+ Z
. V. ^ y8 U) [5 ^3 n. t$ s 一、确认UART2需要的引脚
( J, H- K, U& e: u( |6 C; T5 B+ J! n$ Q& k6 A6 U# L
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
1 I$ P* I2 ~+ g' u. o 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
$ l3 i9 n( z% O. [, U0 j n; H* U1 v/ b, c7 |
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用) N) y( n! }' {9 {* Q" J
7 i( U0 I6 k) F# ^% k
引脚名称 * K9 E1 Y! K5 \( P
0 v. P' `; V: x8 Y0 @ | FETT507-C默认功能
! [# r% f. O' J- z9 t | 可复用功能
6 w% h. }5 J" E3 s, n8 @ | PG15 1 j$ u; O3 b, [9 N( G/ `2 r
| PG-TWI4-SCK
; P4 c( ^" l) a" }0 l- P | UART2_TX | PG16 3 j: m; l+ I; b) e1 ^
| PG-TWI4-SDA
! C5 c2 z9 E1 k6 b! x- T# ~5 G; z | UART2_RX
9 }9 H2 U% S/ }! t$ b: C# t | PH5
8 k; K( Q b. G( b, G$ P | H_I2S3_MCLK 5 { N. |6 M; a5 b, N/ x" ~4 w
| UART2_TX
" B2 B& n; m' d7 f# ^- ^& h! S) N | PH6 % C3 ^: A1 s6 ^5 C: _
| H_I2S3_BCLK
( s+ q* y7 w$ s( y1 t | UART2_RX 4 U* M4 _/ P! L' Z
| PI5 # ?9 D/ \& v! w: g( i3 \5 b
| RGMII_RXCTL/RMII_CRS_DV
) Z( a0 D. p. A2 K) Z) Y, n | UART2_TX
# R! C; S8 \0 G | PI6
0 {3 D7 }8 E! x* Q | PHYRSTB
' O: K4 Q( g6 x1 l+ P, } | UART2_RX 4 l3 _$ F0 `- H+ M9 j
|
/ V6 _" A! P7 Z2 a小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
4 I5 |" r& D# `$ U% j
# G9 s' r. w& `. A二、去掉原来功能对这些引脚的使用
. k! z: e. k0 D7 Q; n8 S8 L) ?6 X6 o2 B8 ^. q E. y6 s! E
◾ 打开源码,先了解一下T507的设备树文件:
: M& e0 x- |1 s) n8 R6 }0 i9 _' k5 e
7 F$ M/ Z. U- N t/ GOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
8 f0 ]6 U6 M/ F( B- R3 N" j% \ 功能配置设备树2
3 Q; }- T5 j! r. f+ M B _
0 O8 P( z7 w7 t5 nOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
1 O% ?1 { X. @. y功能配置设备树1
7 T: A3 t$ F G
) Y2 H- e0 `) _6 A/ T) E OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi" X) W2 O4 j5 \# z1 D/ N
时钟设备树
& z @% D7 f! @
, |2 r3 |0 n3 `; z" _/ |; i5 j OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
' y+ M Q$ h6 e' {0 I8 P; X 引脚复用设备树
4 s% w" q+ R/ [' d4 a J, h. r1 a% A: v( X5 k
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用; r( K) Z# T# R! l2 c
& L, z7 W4 t8 Y- |
# ^) N6 C+ _9 |, P
! o2 q& M% ?. [' k ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b* F0 M5 g/ C0 j
9 q- ~( f# g4 i. B& q8 c
# y" M4 v4 ?/ E- V3 h, P* w
, m2 K8 | i; G7 m1 }! s5 A◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
& G. H- A4 M8 O$ V# |
8 X; _0 t. M L& d8 M
: N' S5 F) q/ o+ @9 U6 o% M5 E+ }( [5 y- J9 R* Q$ ]
4 {$ _( S1 Z! U7 `' j0 I
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
- l/ l4 n- v5 U5 J0 V0 e* G* F W2 H7 m6 I% A G
三、添加串口并使用PG15、PG16引脚/ R/ f+ K6 f( ] e% J' w
- z1 T: _- d' @ b) K+ |- E1 r◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8 f) o6 w" y! d* b) S) I
( N0 i( W+ N5 a8 y# m4 m- {) E
9 H& d# R4 o* u! t
* t9 \0 ~9 d! N9 q2 n3 j ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
( A: ~# E' k4 l
0 z% z w; W9 y H 1 V9 ~$ P! M/ P! ?
8 v5 K; C5 M9 a
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。( |' p' S1 Y5 n, R+ X
( m& R2 |0 S- F
5 h1 O- P0 q/ D- m3 t
& O8 g; g' W: @) @6 E0 e y
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
6 G. L$ M1 F; \* T# r$ k3 y然后我们打开UART2,修改UART2状态为status= "okay";
! M" v, {8 ?8 i. M到此我们配置了UART2的引脚,并打开了UART2的功能。( m3 d7 t9 P [
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
, r4 b8 b. W3 L% Q+ l( i" k- ]
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
+ J+ @) a1 w" O( \虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
w! C/ v* {% n
4 M8 n! u5 k4 @+ Y ( }) U: Y/ Q7 N- M3 j7 ~
相关产品: 0 U( p T" @; l1 R6 j5 ~9 _
OKT507-C 开发板 FETT507-C核心板
* W1 h Y; }1 T8 l0 F' _* V 9 \- c$ r* f( n) M! d
& s6 Z8 @7 I/ V
|
|