- 积分
- 308
贡献1484
飞刀583 FD
注册时间2015-12-21
在线时间52 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
. s5 Z$ S0 B" X) }( s5 A
9 ~$ e6 f5 V$ x: U8 e4 b6 f, v% _5 X FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
3 N% Z9 c+ J6 G/ D& U; V
! N3 ?+ k+ q) R; b5 Q" m0 A
- ` M& Q9 w q% F5 L- Y! e4 S 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
; C* `& D2 |% {9 `- y 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
* \* j S. C! W, C p. \/ h: _3 `; i- [" H" F% T
引脚功能复用思路:
! ?" N% Y0 a/ o' E" Q 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
$ A6 V4 ]8 n* ~7 M G 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)" A2 Z- R8 N4 h5 A$ @
3、添加新的功能并使用这些引脚* e) [- _9 ?% x
' c6 Y. z0 P: ` 下面将以T507添加两线串口UART2为例,我们来实际操作一遍。8 o/ x$ {2 W9 ~
6 I, U) Y: u7 f4 k, J* E 一、确认UART2需要的引脚1 O- z) R; \4 u: u% x& h7 x
+ L/ ^% k" n9 {, o$ ?2 ? ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
$ `8 j7 z) [8 ^+ R0 R ]; P- [ 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx9 E, b1 }4 a: D# Y3 Q. p( @
& Q! v; K) q: i, }1 n( h( k
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
C O: g C9 [5 m5 H0 |% m' @8 c6 S- T
引脚名称
, s. d$ d9 |( a! L
^5 @; E0 q' F; i | FETT507-C默认功能 4 o' {# F: U) W% a0 b/ d' q
| 可复用功能 P& O- u) f. D9 s7 C0 f
| PG15 , i M3 M. ?# c/ w( n( a T
| PG-TWI4-SCK
% G" v! t# s2 q4 d4 p | UART2_TX | PG16
8 {. \3 z0 F/ {$ f' W2 X" t; z | PG-TWI4-SDA
% e% S; m2 R# g | UART2_RX
* m4 k ` v$ }& |7 Y | PH5
% z8 m$ P0 _: N/ ^$ R | H_I2S3_MCLK 2 H% a" z! t G% Z& i$ ]
| UART2_TX 2 ~ G1 \ a+ I8 e
| PH6 K$ y% b# w( [
| H_I2S3_BCLK 8 n F- n3 }) G* a* S1 L! c
| UART2_RX
4 |0 Y1 P* j5 ]" B6 J | PI5 * R8 O3 R6 s, z! H- G& U0 c
| RGMII_RXCTL/RMII_CRS_DV ) r: }9 I1 r% w; C* J
| UART2_TX s0 A, i, V2 X6 ~6 j. V; ]9 X
| PI6 " T' |+ q2 ?; q9 \
| PHYRSTB , \9 c+ J) T( n- v' t1 n* x6 i
| UART2_RX 9 P( y4 C6 ]3 J" R% j
| $ Z0 o. L' Z: B/ u# f; j
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。& ~, T: }9 S- u3 A
; I- s: I9 `9 A# w" n二、去掉原来功能对这些引脚的使用) w4 |. @5 Z6 H, y/ W( w3 |
! T; q% l I! e* C
◾ 打开源码,先了解一下T507的设备树文件:
8 }& H5 Z3 u5 `7 f
$ J' k' ?. W* G5 UOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
+ ?" [; G4 j; [$ z3 b8 z 功能配置设备树2) s. A4 j# C2 e( ^# M' Z) |- q' H
% ]: Q) ?/ b, H& `( G' qOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
8 U0 k& p6 s1 N; X功能配置设备树1& [" }- O, `& m8 i/ D* r
1 L! ?; K3 r$ x4 l" N" { OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi( J& Q1 Z9 B5 p/ M! R
时钟设备树
8 t* Q# m8 Q, w: e, s6 A5 b7 j! q% E5 m( }' {
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi! Q7 O. e) P& i* Y! z9 q- v
引脚复用设备树& W/ A+ k) G# ]; ?
5 O; i e& X S2 t$ m ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用: t9 U7 ^& a9 z% C: S
7 m# e" w7 V$ k3 u, E$ ~: V: Q$ r
' I' G0 v/ F2 ^( `
, X1 D3 V: J/ t0 ?
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
5 X( e5 a# v) q6 M4 S9 l3 h& m+ s9 L# U, n' x
% c4 U4 G% n" I6 }5 p) P6 \" j
9 I; p& H2 t2 T- C8 a◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";: q) a% u9 `# q
+ `" p, a; V* Y 0 i/ ^4 t; C1 U- t
0 V! H9 E! I e3 Y. y b% @
( o( R1 s: m l, K+ V6 J 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
2 g& }: o# Z. _$ a/ f
. m0 l; ?7 w) |7 y/ J; @0 Y5 b三、添加串口并使用PG15、PG16引脚
0 N( }( G* g# F$ n- f6 T3 g6 }$ s% @. L% V) h
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH83 P+ C6 I* u" Y7 q, P
$ Z' w2 x, d! P% R" f) H# z0 x5 r
0 g( i3 x6 A$ i0 H* }
" ~& V* Q+ L ^6 ^$ G ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图/ M4 o. V! S5 R2 M, Y! p
( ^/ j/ l0 r0 j1 A
9 y4 L* p& k6 G; h( t
1 ~( F9 p. A9 @+ ] ◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
5 V9 b; m( b' Y2 x4 D' a2 B8 ?" r! p& Z' Z
2 K# |8 w8 E/ Y( R) p8 H; X- k! s) r3 g" [1 u
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
0 [$ n: Q( F; w9 W然后我们打开UART2,修改UART2状态为status= "okay";$ ^7 [* J D9 x/ f
到此我们配置了UART2的引脚,并打开了UART2的功能。' H5 L4 E; b4 a+ O
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
1 t" k; U2 g p. v" D6 k( m6 r
% [; m" u- N( J5 N文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。& V6 K+ i# e9 V1 {1 n; N* L$ ~
虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。7 o3 s1 I, f" ]4 d5 k
* L6 o* p4 w9 [% M" l
7 r6 ^; d, s* B6 T, _
相关产品:
: ?) G9 C) y8 VOKT507-C 开发板 FETT507-C核心板 0 k/ H/ B0 @3 ^( }- L z: r
2 \4 ^- W' ?. ^/ X. Q0 `* U' |) u
2 P" ~! O! H! G- t0 [3 W. `0 Y |
|