- 积分
- 289
贡献1381
飞刀643 FD
注册时间2015-12-21
在线时间47 小时
扫一扫,手机访问本帖
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
9 d/ @% |/ g& W$ z3 X$ j
5 X" q; _+ Y( h* | FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
- a$ w3 |/ y7 h6 @7 {7 k
- M8 M' D7 }+ Q% H `5 {, S$ H, p4 F/ A4 R9 T# A# Q
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。2 m+ i0 j L5 r6 l
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。/ E% F" I% b' H, j2 w7 h
- G+ i' A: ^# y+ s8 j* q- T
引脚功能复用思路:5 Z8 P e; \! d+ f. ]: X& o6 I
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
2 N) S6 I6 P9 E 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
+ w& `0 a: \% n, Q$ j, c3、添加新的功能并使用这些引脚
% f+ ^; G& [ s) a& G- \
$ D. B! s3 h. `3 A% |- I: ` 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
! y1 R/ a2 H9 i- H7 V( V4 c$ T( p; u2 N
一、确认UART2需要的引脚+ t0 u3 n4 @& [
. r" M4 r+ G% h9 Y- Z ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
6 P8 B* `5 I! [8 ]9 j9 H0 [# V. `* o7 v5 I 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx- ^1 d, Y6 L3 l' {5 D
% {) c9 k! _1 s3 Z& w1 e. z$ v
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
7 k1 i& G' `4 s/ a" S9 W5 a0 ~1 |
引脚名称
0 N" n3 N7 m3 R) [: T) |3 A+ r1 J; ~1 v' r8 }
| FETT507-C默认功能 : T! K! k; J: D: _$ s* {
| 可复用功能 / X4 j7 S* g; b1 W. d
| PG15 ; M. c- _- r/ }. @# l8 f3 M
| PG-TWI4-SCK
/ G& A/ O# }4 ]) H* p8 j- q | UART2_TX | PG16
2 V. u w- ?, O8 M P3 T | PG-TWI4-SDA ( j! U5 U% V: d
| UART2_RX 7 v0 g& c, O0 n
| PH5
) |8 ^, {5 F8 N! d | H_I2S3_MCLK
" ~+ V1 j: p0 b | UART2_TX 0 ~, k( e5 n1 `; B
| PH6
& b$ _! M) e+ t c | H_I2S3_BCLK 9 C8 h$ e/ _* w3 e) N' k
| UART2_RX 3 W1 c( e+ a1 y" G6 {% i% H0 t% T6 E
| PI5
- l( i) t" ?; b8 E3 t) r | RGMII_RXCTL/RMII_CRS_DV
3 _5 _# r( p* @5 e% y) T; G | UART2_TX
# `) v5 q6 @8 F% E/ I0 B x | PI6 ; h6 j5 l& J( B( o, ?" S
| PHYRSTB
z. v9 c" T, a: @ M5 r1 U; Q | UART2_RX
5 R: r8 [0 g( | h% `& n0 C |
3 w3 ~8 A2 I5 |* j0 G: c小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。4 \" _+ P- C, T
+ B2 ~4 F3 g8 q4 c2 J0 Y
二、去掉原来功能对这些引脚的使用) L4 V1 }" j; C1 `8 u9 a2 l/ d9 [) n
4 ?9 u% ?% Y) k9 I
◾ 打开源码,先了解一下T507的设备树文件:/ {( B6 I" R2 f; {
1 k j6 J# [4 e) }7 ~1 S" V% DOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi. q$ r7 }. R9 N; G
功能配置设备树2
Q; P, H0 D8 U7 r& a5 i2 _2 o1 ~1 @. B: q. I2 a4 b
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
3 I. R Z) x4 q- O功能配置设备树1, S/ d& _( H/ S
9 U g' e9 k5 O" K
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi% i B: P; i, q% l' F- x+ g7 B2 |! c
时钟设备树
( }: e" f d, B' h
6 Q" f1 C6 r: L) m7 D OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi/ x( ~4 q8 V; @5 E: O3 S' K
引脚复用设备树
" x9 ~/ @8 ], I, H2 Y( \/ g- N% `. ~$ i9 k2 H; l3 R
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用; N( Z2 M; s3 V, h5 q
% @) {( t; o# N& n- \" V
# S# X2 e" \1 D9 h3 X
! {& F4 t+ f# ]/ C. s# s$ z ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
Q8 ^. D& P% t5 k0 K- R/ J8 x" ^+ U! }# M
' I% Y" e: n/ J& \( }6 I
7 k( L$ U* \; {$ {# U& t$ H◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
4 H/ N' J9 J# {- `$ {$ u5 P
0 s3 n9 V. i- G$ q" z9 F . }& Q7 Z8 V9 V$ v$ X" x. B7 D
" a4 c, v# L2 X$ b! {5 K
5 b! x+ B# D, q: [: M+ `6 k 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。* S% [5 D) A% |
3 l) {$ Y! x, V; G. [5 S. T3 _
三、添加串口并使用PG15、PG16引脚9 K; H6 R8 v6 z3 O1 M
1 Y! e5 p' O0 z1 M0 \◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8
- ^5 B. W- ` O2 m* f* @3 G+ N, E l% [
8 B5 }6 B+ {# x/ ~& p! u2 P
: f7 m' N9 d. [9 T/ B$ `- F* Q8 w8 s
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
9 Q+ \; }+ A4 f* f8 \0 d/ d4 ~7 G- {; p$ g3 l
. D( ]2 y8 h9 ^7 R ]. l4 u. G0 w3 ]" K P( a1 _- F7 b, v
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。& w, g- |# J( [2 S
. l) R* n8 p# x' ]1 ?! {8 n3 e
- g3 x* d& [. x4 r6 S8 h. l
8 o% c8 _% k W: R. X可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
. R: a3 Q/ Q4 [0 }" w然后我们打开UART2,修改UART2状态为status= "okay";5 L- a j! Y! T% I M$ m
到此我们配置了UART2的引脚,并打开了UART2的功能。
* t( `1 Q* o7 i8 \/ x+ L- ]5 R! V当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
! \# w f$ T" F4 O( \* K) |( ]8 }1 o& v5 z) t3 w
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。( a6 d- B& W& s& ~- m
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。4 k+ D0 o0 H2 a& H% n
1 |% ]1 ^, x2 o3 H, f5 V: b
; [9 H) I. @, r" f: t1 t7 a1 B- _ 相关产品: ! Z" K9 g3 b: m7 K% J4 \" M
OKT507-C 开发板 FETT507-C核心板
# n. M. }; w5 g/ g$ M 1 C3 O( P/ `( d) a8 c8 g
1 Y) I) G, O0 j+ |" h
|
|