嵌入式爱好者

查看: 15369|回复: 1

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

[复制链接]

46

主题

53

帖子

297

积分

扫一扫,手机访问本帖
发表于 2021-12-5 17:28:32 | 显示全部楼层 |阅读模式
本帖最后由 飞凌-marketing 于 2021-12-5 17:33 编辑 & y; o# I. b" s. g# z
# c! T; _0 j4 o6 u+ M& m
  FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频;GPU为G31 MP2;核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android、Ubuntu、Linux操作系统。性能高,相比CPU同为全志FETA40i-C核心板,性能提升超过50%。( b7 _  q/ P: J
                              
; S  k/ G' b: n( j: Y1 S  m5 ]4 _/ q  p9 }. _
  飞凌嵌入式FETT507-C核心板自推出以来,其新用户与日俱增,但是对于刚刚接触FETT507-C核心板的朋友来说,不熟悉内核内容,可能开发起来比较费时费力。如果想开发自己的底板,就需要修改引脚功能配置,以适配自己底板的接口功能。
  L3 o' B" `1 ?. ~3 d; F 今天,小编就先来修改下UART2引脚功能,来带大家一同了解引脚修改全过程。
6 {" u0 H! b- R8 W& T- u0 J
% p9 C7 `1 O1 U2 a& N 引脚功能复用思路:
, L8 f% p2 p2 D) N3 A  g 1、确认新的功能需要哪些引脚,并确认这些引脚原来用做什么功能
! |9 \) k+ S7 Y7 U+ w6 q 2、去掉原来功能对这些引脚的使用(关掉功能或更换引脚)
( L$ W& Y1 P3 s. O3 w, p0 y3、添加新的功能并使用这些引脚. D, q, k. f; v6 D2 a
9 Q, q0 _, s- s+ z- D
下面将以T507添加两线串口UART2为例,我们来实际操作一遍。
8 }* ^# K3 [6 d7 h) ]+ Z
. V. ^  y8 U) [5 ^3 n. t$ s  一、确认UART2需要的引脚
( J, H- K, U& e: u( |6 C; T5 B+ J! n$ Q& k6 A6 U# L
  ◾ 打开T507硬件资料,找到FETT507-C核心板引脚功能复用表
1 I$ P* I2 ~+ g' u. o        路径为:硬件资料\用户手册\FETT507-C核心板引脚功能复用表.xlsx
$ l3 i9 n( z% O. [, U0 j  n; H* U1 v/ b, c7 |
◾ 在表格中搜索UART2,可以找到三组可用引脚,分别在TWI4、I2S3和网口上使用) N) y( n! }' {9 {* Q" J
7 i( U0 I6 k) F# ^% k
                    
  引脚名称               * K9 E1 Y! K5 \( P

0 v. P' `; V: x8 Y0 @
  FETT507-C默认功能                                 
! [# r% f. O' J- z9 t
   可复用功能                                 
6 w% h. }5 J" E3 s, n8 @
                                        PG15                                 1 j$ u; O3 b, [9 N( G/ `2 r
  PG-TWI4-SCK                                 
; P4 c( ^" l) a" }0 l- P
UART2_TX
                                        PG16                                 3 j: m; l+ I; b) e1 ^
  PG-TWI4-SDA                                 
! C5 c2 z9 E1 k6 b! x- T# ~5 G; z
  UART2_RX                                 
9 }9 H2 U% S/ }! t$ b: C# t
                                        PH5                                 
8 k; K( Q  b. G( b, G$ P
  H_I2S3_MCLK                                 5 {  N. |6 M; a5 b, N/ x" ~4 w
  UART2_TX                                 
" B2 B& n; m' d7 f# ^- ^& h! S) N
                                        PH6                                 % C3 ^: A1 s6 ^5 C: _
   H_I2S3_BCLK                                 
( s+ q* y7 w$ s( y1 t
   UART2_RX                                 4 U* M4 _/ P! L' Z
  PI5                                 # ?9 D/ \& v! w: g( i3 \5 b
   RGMII_RXCTL/RMII_CRS_DV                                 
) Z( a0 D. p. A2 K) Z) Y, n
   UART2_TX                                 
# R! C; S8 \0 G
PI6                                 
0 {3 D7 }8 E! x* Q
    PHYRSTB                                 
' O: K4 Q( g6 x1 l+ P, }
     UART2_RX                                 4 l3 _$ F0 `- H+ M9 j

/ V6 _" A! P7 Z2 a小编这里选择PG15、PG16,即原来I2C4功能上使用的引脚。这里完成了第一步,确认了要使用的引脚和引脚默认功能。
4 I5 |" r& D# `$ U% j
# G9 s' r. w& `. A二、去掉原来功能对这些引脚的使用
. k! z: e. k0 D7 Q; n8 S8 L) ?6 X6 o2 B8 ^. q  E. y6 s! E
◾ 打开源码,先了解一下T507的设备树文件:
: M& e0 x- |1 s) n8 R6 }0 i9 _' k5 e
7 F$ M/ Z. U- N  t/ GOKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
8 f0 ]6 U6 M/ F( B- R3 N" j% \ 功能配置设备树2
3 Q; }- T5 j! r. f+ M  B  _
0 O8 P( z7 w7 t5 nOKT507-linux-sdk/kernel/linux- 4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi
1 O% ?1 {  X. @. y功能配置设备树1
7 T: A3 t$ F  G
) Y2 H- e0 `) _6 A/ T) E OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-clk.dtsi" X) W2 O4 j5 \# z1 D/ N
  时钟设备树
& z  @% D7 f! @
, |2 r3 |0 n3 `; z" _/ |; i5 j OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
' y+ M  Q$ h6 e' {0 I8 P; X 引脚复用设备树
4 s% w" q+ R/ [' d4 a  J, h. r1 a% A: v( X5 k
   ◾ 打开sun50iw9p1-pinctrl.dtsi,搜索TWI4可找到默认引脚配置。可以看到我们要使用的PG15、PG16已经被使用; r( K) Z# T# R! l2 c
& L, z7 W4 t8 Y- |
    # ^) N6 C+ _9 |, P

! o2 q& M% ?. [' k ◾ 找到TWI4功能配置,在sun50iw9p1.dtsi的807行,可以看到调用的引脚配置twi4_pins_a和twi4_pins_b* F0 M5 g/ C0 j
9 q- ~( f# g4 i. B& q8 c
    # y" M4 v4 ?/ E- V3 h, P* w

, m2 K8 |  i; G7 m1 }! s5 A◾ 在OKT507-C-Common.dtsi的352行,此处可看到twi4挂载的是触摸芯片,此处我们关掉TWI4,修改TWI4状态为status= "disabled";
& G. H- A4 M8 O$ V# |
8 X; _0 t. M  L& d8 M  
: N' S5 F) q/ o+ @9 U6 o% M5 E+ }( [5 y- J9 R* Q$ ]
                    4 {$ _( S1 Z! U7 `' j0 I
到此,我们关掉了TWI4对引脚PG15、PG16的使用,同时TWI4也不能使用,触摸芯片也不能识别。
- l/ l4 n- v5 U5 J0 V0 e* G* F  W2 H7 m6 I% A  G
三、添加串口并使用PG15、PG16引脚/ R/ f+ K6 f( ]  e% J' w

- z1 T: _- d' @  b) K+ |- E1 r◾ 先打开sun50iw9p1-pinctrl.dtsi,搜索UART2,找到UART2的默认引脚,默认是PH5、PH6、PH7、PH8  f) o6 w" y! d* b) S) I
( N0 i( W+ N5 a8 y# m4 m- {) E
      9 H& d# R4 o* u! t

* t9 \0 ~9 d! N9 q2 n3 j  ◾ 我们进行修改,将引脚和配置改成PG15、PG16两个引脚,修改后如图
( A: ~# E' k4 l
0 z% z  w; W9 y  H    1 V9 ~$ P! M/ P! ?
8 v5 K; C5 M9 a
◾ 打开sun50iw9p1.dtsi,找到UART2的功能配置。( |' p' S1 Y5 n, R+ X
( m& R2 |0 S- F
    5 h1 O- P0 q/ D- m3 t
& O8 g; g' W: @) @6 E0 e  y
可以看到uart2_type是设置的4,即四线串口,改为2,作为二线串口。
6 G. L$ M1 F; \* T# r$ k3 y然后我们打开UART2,修改UART2状态为status= "okay";
! M" v, {8 ?8 i. M到此我们配置了UART2的引脚,并打开了UART2的功能。( m3 d7 t9 P  [
当然,开发板默认已经打开了UART0、UART1和UART5,所以驱动默认已经配置。只需要对源码进行编译打包就可以得到添加了UART2的镜像。
, r4 b8 b. W3 L% Q+ l( i" k- ]
文章到这里就告一段了,各位看官是否对FETT507-C核心板引脚功能修改有一个初步的了解了呢,希望借此可以为您的开发过程提供一些助力。
+ J+ @) a1 w" O( \虽然不同平台的源码内容不同,但是修改思路是一样的:需要的引脚是什么?引脚原来的功能是什么?要做的功能是什么?先了解目的,再对源码结构有一个简单的了解。这样自己就能轻轻松松独立修改。
  w! C/ v* {% n
4 M8 n! u5 k4 @+ Y        ( }) U: Y/ Q7 N- M3 j7 ~
                                                相关产品:                                                              
0 U( p  T" @; l1 R6 j5 ~9 _

OKT507-C 开发板

                                                  

FETT507-C核心板

                          
* W1 h  Y; }1 T8 l0 F' _* V        9 \- c$ r* f( n) M! d
& s6 Z8 @7 I/ V
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 03:49

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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