- 积分
- 295
贡献1408
飞刀561 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑
) }3 j- q6 _8 |0 A! r7 i. x
" h5 u/ N( [6 R; V# z FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。
# p1 x* Y6 p, N5 b2 a' {6 I
6 w: T- R$ g4 [8 }+ j+ V! g' l( D4 M8 p2 @" b- k
飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。& A9 [! ?0 [, b! s ~3 u4 x! c
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
3 [5 @' Z7 |& N) m& F: {6 b. N' {
' H2 W, Q2 k6 ?: |3 c) j 引脚功能复用思路:: Z! R" K; c9 T6 m. z6 k
1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
8 N' R7 {; X$ @ H: _2 ?! t 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
# a' ?' \; B8 a8 K. E7 t3、添加新的功能并使用这些引脚
, j3 j. A. m% C& |2 c/ d. U% l ^
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
4 c* p6 a. ?- O( C( | ?3 K( F, z9 q* n/ \/ d% s( _
一、确认UART2需要的引脚1 r' K1 n; z4 L
9 S& v4 R9 h- Z0 U3 D. z ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表% j: P/ y9 H& w8 {9 S/ n9 r5 V
路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
8 e- J; m; @' |4 i5 h" O+ b
$ E8 M$ G' t: A- U8 F$ \ ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
5 [& K" P) F2 @; b; w. b" m" s+ x
& ^2 I7 ^5 u D h 引脚名称 , r6 z9 o6 n' O4 h& `
* g1 T" j: B9 S# ~
| FETT507-C默认功能 ! }4 S: E& n; w+ e6 b; q2 ]& a
| 可复用功能 " w) S- i% E- ^
| PG15 9 U% j1 E9 H3 ~5 b* ~
| PG-TWI4-SCK
, p9 U v" L( i4 s | UART2_TX | PG16
& S1 \: E( Z g% v8 U4 {! J0 Q3 Q | PG-TWI4-SDA ( m* o$ Z" G7 ?3 }7 h7 m% P
| UART2_RX * t- y( w) }% r3 t
| PH5 ) g9 W5 Z0 r( {
| H_I2S3_MCLK
/ X$ k$ P( q5 k0 H7 _ | UART2_TX 2 ]" x; L# G# Z3 S7 G+ H
| PH6
# y% V( z' G( E: n' b | H_I2S3_BCLK
% G% r. p& }; m3 ^5 a' Q$ l" D/ @ | UART2_RX & a2 J2 V, N, @" C0 ?) t
| PI5
3 K9 S* W2 L6 q' `' S | RGMII_RXCTL/RMII_CRS_DV
; m c. C8 _& J, l/ {$ M | UART2_TX % T" A, v* q5 n7 y W
| PI6 7 {5 U. r! }7 x- g6 h
| PHYRSTB
/ g6 D9 ~# ~% o9 S" M3 u1 s | UART2_RX 8 o7 \% D1 S: e! i* H+ R9 |
| 4 d& q6 D; L, ?! I
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。% h5 r' R8 l d7 q2 W6 E( y
" _8 A) e5 L4 C
二、去掉原来功能对这些引脚的使用
( D8 z( f5 U9 Z/ V O: r g0 }4 x/ w8 u- _* F* V: }0 i& T
◾ 打开源码,先了解一下T507的设备树文件:! X' F/ Q- T3 @7 x4 Q
# q6 _, ^0 i* ^% V8 zOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi) y4 f* \1 {& w( F8 z7 ?! @/ k3 o
功能配置设备树22 o0 b5 ]; @1 H3 f2 `
+ p+ L% ]* ?; z. m) _. Z eOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
0 V5 Z% Q) l$ z. u7 T" O功能配置设备树1' G$ \1 `( {( Q9 \$ V* i$ M
. ]1 s1 W) ?+ N
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
# {; G5 p6 B, s) C: U# Y2 k5 M 时钟设备树
7 f8 r" N$ @; k r9 [! N* j& }0 E# a2 w: Q: ~+ U
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi- \2 }6 E* ?: K e
引脚复用设备树
3 ~: Z: `# w! F d; W7 ^9 X! U
; T: h6 ?8 t0 q/ M9 O3 \ o6 p4 b0 O ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用% I4 v) m% N- Y$ V7 P
6 x9 t8 `6 }3 ?
/ ]$ r3 W$ }- U* [
1 |" I ~. h/ h' q( b ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b# p5 D$ T+ t% y: Y' E0 T! n8 n
) P ?5 F' g% v/ P( E6 E4 j / f& w$ l. v1 G0 _
2 B- L8 H& k, D7 M, L/ N s
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";) Z& S; ~# ]1 m8 f" A" A
- J7 y# G5 X# |; [* E
% h6 g% ~- R0 S Q& b1 c5 ]1 [! @) b" o2 ?+ ?, s
" t% U4 v5 n% X! W8 B
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。 Z, f9 {$ D9 Y9 [! F5 n# @
! Z2 Y5 @' O$ F0 B三、添加串口并使用PG15、PG16引脚( M o7 ~! C* }* }( _
3 n3 H5 h' {5 H
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8& F7 |. N- o; @' w$ u
- \2 L) X3 A4 L3 R$ }- w- P
7 T$ B. Z9 d9 n c2 Z
7 d8 B J; {# x. w8 Q' l ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图1 o' |5 l1 ]% k) [
. E4 U2 @ m# _" U5 B7 M! ]
/ `' z; s; }8 M* f
- B9 q$ s1 L5 b5 ?
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
8 I3 d4 ^( V/ s6 u1 `5 ^, i$ h+ E; v% [, P3 {/ f: y1 B
- \3 O, N" g0 W- {+ a+ p! P
5 J& \- A- S5 t7 j- m. q+ \& W可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
4 `" ]) \7 `/ y! s; X+ }然后我们打开UART2,修改UART2状态为status= "okay";" i P0 A" D! w5 F
到此我们配置了UART2的引脚,并打开了UART2的功能。" `- e, m; b" v7 T) N- {
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
- C2 a$ [! x) _# G, R! e0 _" }6 u$ r! Q4 |) a( {7 b; H
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
, M- g8 z0 a& B虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。- w5 t1 U' h* u. h2 J- |
5 A2 O# A2 s) y+ N# v
+ c, r: F/ J* `7 ~& x5 T
相关产品: 9 F2 V$ y- ^# W! l, l
OKT507-C 开发板 FETT507-C核心板
0 c/ u, B3 H" t1 q- h* B+ T
1 L$ _0 L2 q/ a# I3 p, m. z
/ B% P: ^6 L, K |
|