- 积分
- 300
贡献1443
飞刀569 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 4 {1 J0 t4 U% c1 k k
5 V' p& S$ b4 J; [6 d( D- l& R FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。) w3 W5 w0 l1 g: [1 j+ q
5 m& U& _" T6 ]6 p6 G
1 W3 g' D" F! p5 ^6 ]/ q
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
8 f4 q* z7 B. H9 X2 I5 f# [! Q 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
3 H7 q ]/ E: b% y' z) j) o6 |, H* s
" d$ n: x9 X, w: u% G8 b" J1 R5 X 引脚功能复用思路:
6 A2 d+ ]/ N) ^" w0 g3 O 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能2 V- |$ p* r, U
2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
& N5 A$ B2 l- K; z3、添加新的功能并使用这些引脚2 O @: Q" y9 N, ~" ]; ~# Y2 k# u
" o8 U8 z4 l* a, x
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
5 }- z0 a* U- j* m; ~
8 U2 N1 a, _8 \4 [" N3 E9 Q 一、确认UART2需要的引脚2 R# ]$ H( G' F/ W
! A9 j6 V4 j: o* z ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
, w+ r8 V8 Y, s7 u' f8 L/ E/ J8 t/ t 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
% k! c, g. B% ~, B( o8 J |# q- C7 O6 f' W
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
& D, A1 Q2 f) e$ Q9 r I
; Y% O1 f( @" y2 P 引脚名称
% d5 |; |9 T6 v+ [" L( D4 U7 [/ A# R/ ^3 Z- ~5 H% n
| FETT507-C默认功能
* J# t. H$ T+ e) Q. @2 h7 k | 可复用功能
4 m& Z! @# d q- V4 i | PG15
1 R: b, A" z8 E% z | PG-TWI4-SCK & b! k: }6 y) v w6 q
| UART2_TX | PG16 2 y7 t' H) ]+ i! y" l
| PG-TWI4-SDA
j. P) J$ z8 u' s0 R- `* R: C | UART2_RX v9 g% t6 T0 @1 Q. B2 s
| PH5
' F2 \- V5 q3 E1 [ | H_I2S3_MCLK # G9 [. `* @* G! s( k. q" b
| UART2_TX 5 ]9 u: x. w2 i% j+ C% S4 W. x
| PH6 3 D: J7 \) o! V+ k( n- P( y
| H_I2S3_BCLK $ m- F; X q& [5 C# p4 K
| UART2_RX
5 R. M7 o) _5 g$ S$ d1 w | PI5 ) R5 P4 t" o3 U* F: q6 O
| RGMII_RXCTL/RMII_CRS_DV
8 J1 i# v7 ]1 i* L& f! y( f | UART2_TX % {# e Z% s) S8 R0 D
| PI6
/ p; `1 n) Y- H( g1 Z | PHYRSTB
& K, n; P; Q! j2 n# I# p4 `/ i | UART2_RX 3 }8 z9 ~ i1 d3 a3 ^
|
/ v8 d; ? {: }1 C( n- t小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。' l! ?( W7 [ H) B8 H7 ~
* l" o: N* J- @ n
二、去掉原来功能对这些引脚的使用
* e( d/ I: m7 t1 l: }* q9 j3 |0 r9 b0 h
2 }: m! f5 W( y7 ?# F. o◾ 打开源码,先了解一下T507的设备树文件:
9 m5 ]- m1 U e6 S% H1 g6 B' e( Q! F1 l3 L: Z. j
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi5 Q8 V/ i: E8 o4 x! U
功能配置设备树2
1 C9 ?' t: Z9 b! o& U9 B) m- A' }% V& s$ h8 l9 E, @+ E* E2 N4 j
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
6 G0 u$ D+ l( |功能配置设备树1
2 K3 ~; I! l' w/ m1 C5 e, }+ D+ H! U/ m7 ?, M
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
+ l0 D+ \0 U" y, ~# H, H' T 时钟设备树
2 T3 [* X& T* i
" m3 S4 b+ n+ G1 z% U) l OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
3 P( |; h& `8 s" u 引脚复用设备树
- r& N$ L" ^8 T: |# D1 y4 l
5 j8 g8 A; W7 I% h4 }0 e |& }! U ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用
: O4 g% X+ z# _: x/ c
5 s6 J) z8 V2 o* V6 c
. \7 ] H) \% S5 q8 m- }" X. m5 { G* X8 e
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
* V# W1 S1 G8 M4 e
9 p( W9 u7 ]4 ` + U# m' o8 O4 l S/ P
) _1 @4 R4 O, R! y& x. p; r◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";" J3 ]+ t' G5 {( m2 p8 ?
1 u$ _( |) w9 m) U# N
3 l0 x- p+ {" Z. O+ E4 m& _0 ?4 z) _8 Z- ?
; C+ C L) D4 n# s
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
! [* t. C) K. G2 I% m* {5 {4 a7 \5 z; o: d6 o2 S1 Z
三、添加串口并使用PG15、PG16引脚( F! L6 D; e9 q9 |; H
; ^/ Z4 Z/ f9 p Z+ g: h◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8: v! I, t% V; }
: I9 t* x3 s6 F! K; E% A
% W& T/ r$ @2 z( W0 M7 ]5 W" }/ X+ e0 P0 I+ h! _6 [
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
! T7 s( v' T) t% O% G, k7 H7 {8 i8 x, D" U8 Q8 j4 O, s. x4 B
3 l$ U, T4 r' y; c
) w# n* C2 @3 R: S! Y/ R ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
. k- X1 i3 v' s8 C
' D$ H) q+ u4 O* Q8 E* @ + B$ C7 J9 Z- ?6 g" v* Q, q
- ]& A& R3 N8 t& m0 l" r, F- Y& O可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。: `5 r& t' ]) H9 k5 V3 s3 F
然后我们打开UART2,修改UART2状态为status= "okay";
9 D+ C9 @/ W5 ~( K' j# a0 o' \到此我们配置了UART2的引脚,并打开了UART2的功能。# k, N% X- q3 T; u" J7 d
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。1 @) P3 u9 U6 u7 }6 ^
& x+ [! h8 x! X' B* u
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
, A7 h5 O' t2 S" z3 [1 B7 E虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
. a! {( C6 L H* {8 g0 e" G$ I( m3 S# {# m6 a8 s
6 d" q2 t F* B2 C3 {4 \$ R
相关产品:
+ q" ]. z: c( LOKT507-C 开发板 FETT507-C核心板
/ m1 M, D7 `3 R
6 M- ^/ N1 T) M/ N2 Y3 z8 T1 u1 H# j
I, q Q" r3 L; X |
|