- 积分
- 297
贡献1423
飞刀567 FD
注册时间2015-12-21
在线时间50 小时

扫一扫,手机访问本帖 
|
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 / J: N; D1 Z+ [8 @
4 u/ D L' s( a( {5 s! N+ O Y4 h FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志的FETA40i-C核心板,性能提升超过50%。2 {& Y5 Q- C6 G, [+ i
5 g( V/ [- w/ R v# D3 H
- A5 b0 k8 K$ s* X' H 飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。5 Y5 k7 U7 v( ?# x
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。% O- l( `9 y- X/ I
7 ?8 c' q, c, V! Z
引脚功能复用思路:
2 X ]9 Y" c' z' H 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
6 ?0 O5 x5 k, F) O% ~6 J 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
4 x# o. o- g- m$ U1 c3、添加新的功能并使用这些引脚
& ] o9 m4 g8 o `. |: t4 y; S7 |$ o+ P
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。* X8 c$ V# B) [' ~
& D8 o2 O; }; n# V2 y6 C1 j
一、确认UART2需要的引脚
8 k, p( c6 v; x2 K/ \* _/ t: }+ D" w( L3 o
◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
( T. t$ V H# Z4 d5 A2 Y 路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx% u0 L- p8 z5 O) f
) S! L3 j; k! @0 ]1 g6 @7 i ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用4 d; A. P' j. _) A1 o' D
$ E7 u! p# U x5 j
引脚名称 & l6 w) a/ o* [9 G/ m& ~+ I
+ l. @1 u% y t" R$ v& i' O1 b
| FETT507-C默认功能 % M$ ?# K% p: Z8 e7 O
| 可复用功能 w* m& c) ]$ ]" u0 Y* c4 \
| PG15 & z, _8 \( \- p% o- F; {% G0 G
| PG-TWI4-SCK 8 ]1 ~8 u' u5 }/ {, J. x
| UART2_TX | PG16 , |& `0 Y4 d! H
| PG-TWI4-SDA
3 z" e" ~, a e' I! g8 C! L/ e | UART2_RX
$ i& h7 U$ W0 Q9 ^3 g | PH5
6 r1 O/ Y$ K- T* m3 M- l/ c) w | H_I2S3_MCLK
" ~# M* L- u/ _ | UART2_TX 4 M- I3 f8 r9 @* A
| PH6
1 o' l& X: y$ ~5 L# i | H_I2S3_BCLK
1 B2 W* I! G/ p* V- Y | UART2_RX
% G- I. f. k6 X; z | PI5
0 Z3 `+ \4 K% h& e& u | RGMII_RXCTL/RMII_CRS_DV
3 v J0 w5 v* I5 i2 ` | UART2_TX # g( h7 e+ e4 h$ [$ J% p) |
| PI6 4 n4 ~3 w9 A; D' A, l( u
| PHYRSTB
4 i( [/ F& G5 I0 x& N' a# J" u% D! [7 T | UART2_RX
+ G! V# V4 _0 ^0 E, Z& W: c& F | & I" j9 J6 M1 F) @, U
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。+ \8 c* R4 r% k/ y! u- b7 `
8 _* m% i+ T* P( k- g1 ^二、去掉原来功能对这些引脚的使用
- H* ?% [3 j/ ^" Z2 H# l! p9 A3 H0 k \7 R0 s6 b6 p, `
◾ 打开源码,先了解一下T507的设备树文件:
`6 H+ N U5 w/ D+ L6 v. b$ f* e# I* v% m ~
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi, }, w3 t |+ E$ [
功能配置设备树2
5 ~: _. M" _* T6 a2 M4 c9 k
6 d7 G- O& }0 I9 _/ sOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
9 j. ~. F5 H5 n7 S& _) o3 ]功能配置设备树13 ]0 `7 N$ y% I! m# F' ~
5 `% W! j9 E+ _2 ^- {
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
9 q7 k* n+ h- z) o 时钟设备树
# L* c. a% e/ k0 b
; `. a |3 \' W2 l i6 u OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
$ P% u8 O" g9 g2 p' F+ o O, | 引脚复用设备树
8 x1 d5 u) ?7 J. J* w" Y2 ]0 N4 ^3 r; f7 r( I2 h& K
◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用4 s" [: J p" w0 L
% w% k2 }. W2 z4 R0 i$ B+ a
# ^; U" K. O7 y7 E1 q2 ?8 a2 M4 _% }$ [$ r" \( u! K
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
. W0 B# E+ j/ X. y7 p
3 A! ]) i `9 F, I
9 O8 a# l1 B: s7 N a& q6 d n, x" E) u
◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";4 h- D: G! y7 \9 l$ F; `
( Y/ H9 j9 j) S; i
! X& V* }% K8 c2 X% u2 h* _6 `, r: y4 a
3 u( T5 j& d) m( L, ?3 A 到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。1 q. Z3 a, y/ a2 }
3 |- q* K2 c4 K
三、添加串口并使用PG15、PG16引脚
& p1 E/ P4 W, |1 S! T) C" R L4 z9 k/ Z" T- k, ^
◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8" V% o" `9 k, ~& L" p( K
8 i5 b! S) A: C# _% Z, ^$ q5 F6 h2 u
u' I6 `( g8 P' R8 J; b0 l2 Q3 v; G3 Z% T: d, _+ S
◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图, n! H+ d* X! b' x
& t5 e8 L9 P# L
O! O; [* i8 t& E# C2 q7 [" ` W* p
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。
4 Z9 u" f' f$ X
# h% V; c D# I
; V( S4 g- e1 e" \7 k/ w# q$ e( h- q& q! _" U
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。3 y3 G% q" T6 [, B8 {
然后我们打开UART2,修改UART2状态为status= "okay";
6 y; V; G1 Z5 y1 {5 k9 v. L2 R( w到此我们配置了UART2的引脚,并打开了UART2的功能。
7 A9 b) `, x1 I% h: _! ^# U6 \当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
) Q0 M0 O. s' ]' ?, Y: {: h- T, |1 Q) o6 S4 p9 m- H
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
5 x2 |) W) T7 Y虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
, E3 y, w( i+ l6 X1 k. b, p/ z
/ v3 I; V7 R Q% @1 p. @
9 \9 F, ?2 ^9 v" j$ \/ w) F$ n# q 相关产品:
: H9 k q% t. GOKT507-C 开发板 FETT507-C核心板 4 S* q' `% G. f$ f
+ n+ H6 D# q) {: y) c* s; B9 o- k
( i5 V. m2 c$ x" d |
|