- 积分
- 305
贡献1464
飞刀575 FD
注册时间2015-12-21
在线时间51 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 7 q9 r e- |" [) x
4 G! x8 A& T. E1 {/ v FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。$ Z, R- w. @- L; C/ O# \
8 e# C- O/ `) X
- v$ S( F- ]4 i a9 V, U1 o
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。. m1 A2 w- ?2 d3 x0 d+ d% `
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。4 C4 n& c" B, [- H
6 K g5 _7 W* `9 }9 b3 n! {
引脚功能复用思路:
# y) x$ Q. h n- M# q! Y 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
8 x/ l& V% v" i; R 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
" F" Z9 u. c6 p% z d* A& p0 V, t3、添加新的功能并使用这些引脚9 O3 M' z' r9 a7 o
' v* \6 p5 v2 f( \7 {' X! P6 i 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
, C1 b" Q1 w2 h6 K7 O& T3 ^- F, q, l9 u3 B
一、确认UART2需要的引脚
- x. h0 G ~2 l* V3 `! [) F: A
& H- V* i. }( F b" R# R2 k ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表! [! N# o' T: F" M2 S1 R2 K
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
, f/ u; z6 e. E, I
/ t& a3 }/ Z* h, p% J4 l ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
4 C& L# y2 ~5 o M/ `9 X: }& Z% @& h. I0 _) j
引脚名称 # c# q2 q4 `2 \4 l3 T& M8 z
5 l3 Z1 E9 ] u | FETT507-C默认功能
' i6 u$ A$ f( ~+ D | 可复用功能
* z6 C. n% y( y( J2 t8 x1 C' l | PG15 . d" A0 f" G* A) }2 w" d6 p, o+ B! p
| PG-TWI4-SCK & F0 g' L4 v# y
| UART2_TX | PG16 ' w$ Q9 A' b. J% X& L
| PG-TWI4-SDA
5 C8 e" w$ m" G1 }* k& h | UART2_RX ( T' q9 b; s1 c0 {& Y
| PH5
. l5 ?/ C7 U6 w | H_I2S3_MCLK
. w$ p$ w3 f! o | UART2_TX , W0 c" L1 S2 }( `9 U1 s
| PH6
: u+ p3 `+ j5 Q, ^9 J | H_I2S3_BCLK % W+ k# u+ O0 k0 s
| UART2_RX
4 o. C9 C4 @5 j7 K( s | PI5 . v' K; ~ g1 x- _( ]' g8 |3 ~
| RGMII_RXCTL/RMII_CRS_DV 4 i& \1 w1 M: ^3 d
| UART2_TX , f/ Y) m2 p* E
| PI6
6 _& y5 o m. ~7 n | PHYRSTB - ^, b3 x- B1 m
| UART2_RX
) S; F" l+ E+ f. x, w |
* E2 P5 c1 ]8 i0 y& x/ F/ L$ A) q小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。- o0 B$ D7 v& K0 M E
* p: K6 a1 ~4 L" T5 I0 z/ Y+ Z
二、去掉原来功能对这些引脚的使用
9 m( |! k9 f9 ?3 ]
$ r3 [- |1 B% P+ h. ?◾ 打开源码,先了解一下T507的设备树文件:
" ^, |& B: Q! O2 Q( }) H! _
4 \$ V" b6 E; P* s" IOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi; H5 m% Z- C1 w# u( s
功能配置设备树2$ g. u- W% s w' @' H
+ f* ]* B8 z# fOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
* L) F6 F. G3 j7 l7 T功能配置设备树1& X" S4 r0 [& z# c
# |0 Y( O7 A8 P- @+ ?5 }
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
6 O+ V2 Q7 C3 }4 M, h. |5 v7 b+ m 时钟设备树
- H, Q. H( I- Z. B
3 s, P5 t/ `7 f& b OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
) s) O/ w! o I% I 引脚复用设备树
+ k5 l% f+ R6 T) F" t8 L
) ]2 X: }/ N9 P9 r% K: D ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用 U2 E, ?; [; g8 c- I
& B6 G, i! P j7 f V
5 q) D. Q& }" O( s& U6 G9 c$ B
9 i8 G. H5 L# [' L6 e4 D
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
8 n3 f6 a* H Z
+ Q$ b1 O @3 T! b# f" Q- M
. u A1 T7 c# v+ \8 @8 ]9 r
" v9 U8 w: ]1 y. S A; B! I5 e◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";+ D3 U1 f$ N* E7 d4 m
) a' W8 R# T" w . j5 W+ e4 N3 c/ o; \# G
+ X# b; X# L$ Z, W3 @" N' i2 z' N 0 O+ D0 f" W" p
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
I! W- S& \6 g$ b& s& i
9 M# ~; s Q* f" }三、添加串口并使用PG15、PG16引脚
. w! r* B6 x% P( {. j5 s B5 }. x- y9 ]; I; z9 Q% m, t1 i
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8
2 B7 y4 u# c8 ]+ \# y+ ] A4 X" p! L1 {) x4 j5 Q$ g
* L# H& ^# {: Y- c% b
y( Z+ S9 z) F: G8 Q2 t+ n
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图6 M1 [" a; L% J) Z* ^% s
, {5 q- c$ }' ?1 A% n
9 N* ~ e+ Q) e5 D* M/ \5 b( d
* b8 Y/ }8 A8 Q ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。; `% x7 d& W9 Y6 p0 ? c
8 B* ^) Z/ b1 c$ Q
% y) B5 x8 i! ?$ O* j {
' v9 M0 _9 i2 N: W; k4 e! \+ W可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
* _0 I' K7 ?. R& Q r, Q然后我们打开UART2,修改UART2状态为status= "okay";
) N% r. [" O3 ]/ ~% M7 c) @! L到此我们配置了UART2的引脚,并打开了UART2的功能。5 r0 |+ _; v1 J3 K0 G2 ]# P! d
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
* c" n1 N) l, T8 h6 {/ m
; [) ^) P- X- Z0 G% S文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
' x1 P" N% |% C6 l9 G' r虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。% V" b4 ?1 {7 R9 H) {( |/ Y5 z7 l
: E' M1 r2 t$ ]0 I4 q) M
' [8 I) l5 l3 l0 T3 y( } 相关产品: $ a$ L( Y* G( m, }' ?, Z
OKT507-C 开发板 FETT507-C核心板 6 y: X; o$ M1 p
1 Y0 I2 l* o$ }3 D8 E
/ H; ^3 _ [4 d2 e/ c9 u |
|