嵌入式爱好者

查看: 14191|回复: 1

[帮助] 新手指南丨FETT507-C核心板引脚功能修改指引

[复制链接]

46

主题

53

帖子

295

积分

扫一扫,手机访问本帖
发表于 2021-12-5 17:28:32 | 显示全部楼层 |阅读模式
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 4 W3 |( x0 G) V' W0 S7 L

7 v8 _6 T9 @3 `+ ^& 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 I6 x% @; ^  Z% q3 J! N2 C. T5 D( v+ n                               + S3 ?+ e% \: C  G" I

. w3 K+ D9 r( q& S  P2 V& p1 ^# {  飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。  h% N" ]0 W" J' {) {- A- x6 X
今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。2 p) x# G& {3 s! Z5 q& ?, v7 C. ~

; S2 R2 M* @4 r* a$ B8 Q' d 引脚功能复用思路:
* a* ?" k; l% m9 H0 |0 p. m 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能7 s* d, ^% z/ u7 O8 x+ `
2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)8 d; b6 H# V2 y6 U6 B0 Z/ _, ^. m
3、添加新的功能并使用这些引脚' S) N& R/ _; ?% f
  o* I) b, h6 f% W) i3 \
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
4 c  J7 x9 r! J0 J. t$ \$ a( ?
0 Y! m& Z/ `! B# A$ v( S  l% a: T  一、确认UART2需要的引脚( }: v" Y: O# ^, Q
. K8 j5 I* J0 {: v9 f) R
  ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表% x6 Z. J0 @& S# O  b
        路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx* \/ P* U" ~/ j

; I; j% I' {+ x ◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用
  y; u; N" Y) m% {0 b+ V" x' o) M6 j3 R$ K5 Y! o
                    
  引脚名称               
7 y( ?3 P8 V8 S; \: }/ E& }
. I3 ?( W! d1 {6 T
  FETT507-C默认功能                                 
: x* O  X1 ~: B. O+ X3 e
   可复用功能                                 
8 K$ Z0 h$ m5 n( |% v9 g
                                        PG15                                 - x& ~- M% {6 R  R- X
  PG-TWI4-SCK                                 
7 v; k3 ?" A# n& G) p
UART2_TX
                                        PG16                                 
& j1 E3 w: Z' Z! X
  PG-TWI4-SDA                                 ( h4 [; w; A( k0 A7 k  `
  UART2_RX                                 
) o4 v: n: `& ]; j: j9 ]
                                        PH5                                 3 s8 v; G( V4 E
  H_I2S3_MCLK                                 # f0 B/ L: C) p0 a7 z
  UART2_TX                                 - O. s& G  p9 u/ _+ Q
                                        PH6                                 
+ K2 R  \& W9 U/ B
   H_I2S3_BCLK                                 ! h: `, \$ V! a: M8 U
   UART2_RX                                 - O" f6 ]' X7 F$ t, [1 @- b5 H
  PI5                                 ( t; b1 m8 |5 c  D) p" M4 v  E
   RGMII_RXCTL/RMII_CRS_DV                                 
& c: c; B* B$ |* Y" K5 y
   UART2_TX                                 . {8 N" \" e1 @( D
PI6                                 
( X: N8 E" ]. z
    PHYRSTB                                 ' V$ G. `2 c4 p! X6 C1 U
     UART2_RX                                   ?7 w% W; t6 D* x( f
3 X8 s2 w$ ]3 U4 R2 n% B+ j
小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。. V0 i, u9 W) x8 N' ~# r* p  r; k

2 S2 f: q" h1 S. a1 i二、去掉原来功能对这些引脚的使用
( z9 Y/ P  t: C0 U, _! ?! M% E& e4 T  R7 L' U8 D$ }/ _
◾ 打开源码,先了解一下T507的设备树文件:
" d3 }" b+ S) D$ [, S6 ~
* J8 K* E3 S+ B2 @OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi/ m+ ?: p) Q4 h! S/ A1 R7 I
功能配置设备树2- @) O/ B4 v! @% h& G# x
7 Y4 l- c) D) U+ _' i, d. K& v- r
OKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi8 @% v7 ?: ]; i* p# {
功能配置设备树1
- ~+ M, T# S6 d( f$ ~
7 K6 |  `% a' v3 o6 a: T0 o1 E OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi
8 _+ P/ ~5 V+ T' \! r4 Q: S  时钟设备树8 d/ s2 `/ b/ V9 I

( T1 Z- ^, Y' O2 X OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
: G$ V; U: x1 s 引脚复用设备树, a5 W' \" k. D, W4 X7 T8 |6 t2 Q& I

& N6 A% L6 ?, h2 T9 H/ }   ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用1 {5 H" @+ z: \1 }, c* k+ Q7 i

  d9 H( W) W) h: [    ! }* @; D9 w9 G. v
7 s- |$ B: c0 `" |
◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b
8 Y( T/ L/ u/ }1 N3 p
  V. i" p" s6 x! J( m  G3 `   
% l8 ^, w+ h6 B. F0 [: |
( d6 L! w9 R+ k+ X◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
, X) S( L6 d  h- y/ Z
3 a0 C1 a: {8 ?  
  }& U7 R7 Z: r, n4 \; }' Y4 n& M8 k( @: ^: f+ j
                    5 s: y& M2 y8 c
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。8 I- Y7 w8 c7 A; H. w9 {4 _1 `
3 F- U7 ~$ C# x
三、添加串口并使用PG15、PG16引脚
  P. p$ A- d& G- l
; J: K7 L0 S8 ]9 b3 W◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8- e  u2 a, `5 u) }: x) `9 F

7 o* J/ o! U0 A  m* W3 X" F     
1 e% M2 d" _/ Q
) W% q8 _7 r0 r( g' S  ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
" t( W# k- A+ j7 v* F; E4 D& v; E1 S0 t. w9 g, C" Z; o
   
/ S4 C( ~9 u# z' l5 i7 s3 n0 g2 J4 b' l' I; F
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。! c$ b# _3 Y. d  Z% h4 D& W

/ |& ?6 l/ k' l3 @/ j   
* T0 h5 U; u, f! C
0 M5 B2 b: b$ z' ^可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。1 r: }& J# b. N6 @$ Z
然后我们打开UART2,修改UART2状态为status= "okay";; s2 M, m5 Q, c( \1 _
到此我们配置了UART2的引脚,并打开了UART2的功能。4 F2 c$ o. ?; q" B; P2 C
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
2 F8 K. T( u) h, ~7 k( c6 n" v5 p% R( g! @$ `4 ^4 s$ S5 s
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
9 z  B4 X( g  T: {+ F' _虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
0 N% a1 `% V: I/ C8 Q
  d( c0 i: w1 }        1 H( t* [, H  Q& G- X, |
                                                相关产品:                                                              
0 Z2 S: S; ?! ?+ I2 Z) U/ A

OKT507-C 开发板

                                                  

FETT507-C核心板

                          
6 Y5 U* w! }! R# a        ( J. d, t" d( b* M0 B
- h8 v* G' ^4 K6 k1 ?- u
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-7-1 08:55

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表