- 积分
- 295
贡献1408
飞刀561 FD
注册时间2015-12-21
在线时间50 小时
扫一扫,手机访问本帖
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
" g# M) e# j5 @. k
2 P; b) r" b2 k FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。2 _# [! \& K" z2 e
5 E/ |' {2 E# U: N. {$ W9 z( ~9 j/ |1 u
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。1 D; _4 C7 t- U
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。8 n* g4 U0 t' O9 s# l
: Q3 v- e. F/ f0 A 引脚功能复用思路:
9 l; Q- `0 z: |+ Y 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
! v) A. h* m ?& M2 Q% A8 M. N4 z 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚), ^6 f. h: d" J9 g- s
3、添加新的功能并使用这些引脚
" N; b6 {) M$ I `
0 R2 N: n# n5 F1 y# F4 @ 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
8 i, Q" ^! Z% J" D. [& w, C
/ r k* s1 T9 h- p5 [ 一、确认UART2需要的引脚
c% M7 o; K2 V% s" n$ D
% D2 w$ x! {3 h, ^ ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表4 p# d# X# [; d6 Y; d7 B
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
1 X0 T; Z, L8 P6 u8 |* Z" E4 K( n3 D* ?/ Z+ X; G
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
+ F. u0 {' ^3 P& y+ j
; T$ u1 {) T, k# W3 r6 c 引脚名称 7 L* B5 H3 H- j, d9 e
# m2 i7 \- K# i8 Z: K | FETT507-C默认功能 6 g( K5 k- P/ k% Y
| 可复用功能 # U1 f, s# L0 G8 ~1 m
| PG15 / d6 n( T9 U# v9 \% q
| PG-TWI4-SCK
/ ~; m/ h1 I- I+ g/ v0 S | UART2_TX | PG16 / V" `2 w- Q* t* U1 r
| PG-TWI4-SDA
: t. X: R: R L9 f" b- b. y | UART2_RX
' A9 Z }, D+ g0 h | PH5
0 S7 D2 K' U F: R z | H_I2S3_MCLK
2 g! P. t6 z1 U | UART2_TX ) s7 @# h: b0 T( q! l B4 W
| PH6
1 k: K% P1 _$ `( D7 o# f | H_I2S3_BCLK + p3 Y; O# x' t. j' Y
| UART2_RX ( I% e' o d' L' E4 r+ d
| PI5 , ^- J- x1 A2 f/ j( e
| RGMII_RXCTL/RMII_CRS_DV
2 Y" G6 [9 Y0 p% A, Z. W" ^ | UART2_TX
/ N: |) f7 u. w# ?3 H# O- M! ` | PI6
; y, V9 j& P+ a$ M | PHYRSTB , x! ?8 q7 o8 e& n T, k
| UART2_RX ; u9 p# S; U& @
| 3 p& F9 t9 e& F
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
2 Z4 g0 b' K# |; a( r5 _; K' q7 \0 B
0 J& d1 y2 p" v9 t" F二、去掉原来功能对这些引脚的使用
, z' W) y* z1 z
' z9 ^( C, g$ N$ o O; ?$ @( J◾ 打开源码,先了解一下T507的设备树文件:0 L7 @1 t' }! f3 Y
1 h7 x5 C/ e t! ?. y3 r
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi% _# b, ^1 q2 z# ^5 n, m- q
功能配置设备树2
( y; ^; L5 c8 ?2 C6 e7 r, S) G' n* l/ p* F1 ~$ ^" G6 m$ ^+ i
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi$ n) H2 y* T0 q- M
功能配置设备树1
6 M# ?0 i* A; p @, S% O
, p' i' T r, N' R6 |0 [( }7 G OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi5 A7 ?3 ]7 Q4 Z8 T" @4 W
时钟设备树
7 N; O. E3 {" `) l
' b# m! x( e# Y; t" i OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
# J: v; ^. e. @ 引脚复用设备树
1 T( P+ N/ j7 s8 {( ?
$ @, P% h6 l2 r$ a' B' M2 P+ W ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用 z2 F5 R. a* a V0 } U2 U4 Q
& S- q3 i' z. x; t: G ; n9 D! L! c3 a2 T9 F t
a N: z0 U+ C. V8 f( B7 K) Z
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b1 d: B+ @$ v- C: A" }+ X
/ c- b2 P2 m* c3 v- a+ o 7 q( G# j7 Y) ` Y: c
) Y0 a* i) o9 S- e/ r
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";; U4 H3 J. u- q8 s3 f2 [' R* g
. [2 L5 c) L: {3 v1 B0 w9 {
6 }5 y# R3 ~5 {0 ^# q' M1 s, ]
" X, W: x# Y8 |( Q. q6 t8 q* F( L " ~* V3 B; t; ]9 c& R
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
; ~. N7 ^6 h4 `; I/ b
; c/ }9 d* ~. I1 P三、添加串口并使用PG15、PG16引脚
, Z1 e7 O/ ]! p9 @, W! t, n* P, N$ d) |+ b% e1 }& c
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8
& ~3 i: o- z1 f8 q3 ~0 w9 E' ^+ B& {. ^8 _& d6 }
# r- \! c; g/ R# ]2 Q; O2 c
0 [; n9 W, f! m2 i7 E ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图: l8 d. T7 |. ]6 ^1 O+ l; e
& G+ F" G F7 G
: L* X6 o* b" w7 U0 w
& `* [3 X# I7 v; O; |# c5 N
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。1 Q: J' v6 z% c6 B3 q2 z9 a
8 P. v7 o) d) I9 a
' ?- ?9 a, n( x8 H0 f5 D* U0 f1 V, W4 G Z& M
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。4 e* h7 Q( \# o% a3 J
然后我们打开UART2,修改UART2状态为status= "okay";" N0 W, A% W2 X0 u
到此我们配置了UART2的引脚,并打开了UART2的功能。
" _+ G3 p" k; W, l- Y; r& G" u& j当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。1 H0 k2 n, F1 _, {$ B3 k$ m. g2 U
# K% l5 I7 d6 q文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
9 E4 F' `# ^' c' ?# H虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。/ _- ^1 _ k6 X& y8 U
; _8 }, i! [3 D" [! g7 S; q3 D ) V# H. l1 s9 K: `6 l- X4 |: [1 d
相关产品:
7 z* e/ X4 W" J# y0 Q; I$ N$ xOKT507-C 开发板 FETT507-C核心板
5 S) x4 h: \) V, r* n7 @: C* F 8 O% d: s3 F+ w5 v7 a! x
! {: K+ T% T9 Q j+ I5 b5 T |
|