19. MPU接口 (MPU)

19.1. 概述

SWM221系列所有型号MPU模块操作均相同。使用前需使能MPU模块时钟。

19.2. 特性

  • 8位 MPU 数据接口位宽

  • 半字或字访问时,硬件自动发出两个连续的 MPU 读或写事务。

  • 支持MPU接口

    • 接口时序可调

    • 输出时钟可配置为空闲时关闭

    • 通过CPU或者DMA工作

19.3. 功能描述

19.3.1. 模块结构

../../_images/MPU%E6%A8%A1%E5%9D%97%E7%BB%93%E6%9E%84%E5%9B%BE.svg

图 84 MPU模块结构框图

19.3.2. 数据接口

MPU模块包括RD、WR、RS、CS、DATA等控制接口。使用时将相关GPIO功能设置为MPU模块接口信号。

如表格 表格 7 所示:

表格 7 MPU模块数据接口

信号名称

信号方向

功能

RD

O

MPU:I80接口下RD信号

WR

O

MPU:I80接口下WR信号,M68接口下E信号

RS

O

MPU:I80、M68接口下RS信号

CS

O

MPU:I80接口下CS信号,M68接口下CS、RW信号

DATA

I/O

MPU接口数据输出

19.3.3. 接口时序

MPU接口时序如 图 85 所示:

../../_images/MPU%E6%8E%A5%E5%8F%A3%E6%97%B6%E5%BA%8F%E5%9B%BE.svg

图 85 MPU接口时序图

Tas周期从CS下降沿到WR下降沿,为地址建立时间;

Tpwlw周期从WR下降沿到上升沿,为WR操作脉冲宽度;

Tah周期从WR上升沿到CS上升沿,为地址保持时间;

Ttail周期从CS上升沿到CS下降沿,为与下次选通之间的时差。

19.3.4. 操作说明

  • 配置CR寄存器,设置参数

  • CPU写IR寄存器,配置待访问寄存器地址

  • CPU写DR寄存器,写入数据,或者CPU读DR寄存器,接收数据

  • 查询BUSY状态位为0,表示一个数据传输结束

如果使用DMA操作,需要先使能SR寄存器中的DMAEN位,然后根据写入或读出,将DR寄存器地址配置为DMA模块的目标地址或源地址,再启动DMA模块的操作

19.4. 寄存器映射

名称

偏移

复位值

MPU BASE:0x40050000

SR

0x8

0x00000000

CR

0x0C

0x00000000

IR

0x10

0x00000000

DR

0x14

0x00000000

19.5. 寄存器描述

19.5.1. 启动传输寄存器SR

偏移: 0x8

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

ENDIAN

DMAEN

BUSY

位域

名称

类型

描述

31:3

RO

2

ENDIAN

R/W

如果对IR和DR寄存器发起半字节访问:

0:先发送低字节,再发送高字节

1:先发送高字节,再发送低字节

1

DMAEN

R/W

使能DMA读写。当使能芯片内部DMA通道进行数据搬移时,需要先配置DMAEN为1。

0

BUSY

RO

传输状态指示,RO

为1表示正在传输出,为0表示空闲。当使用CPU进行数据搬移时,需要先查询该bit是否为0(空闲);当使用DMA进行数据搬移时,可忽略此bit。

19.5.2. 参数控制寄存器CR

偏移: 0x0C

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

CS0WR0

WRHOLD

15

14

13

12

11

10

9

8

WR1CS1

WCS1_0

RDHOLD

7

6

5

4

3

2

1

0

RDHOLD

RCS1_0

位域

名称

类型

描述

31:22

RO

21:20

CS0WR0

R/W

控制从CSn下降沿到WRn下降沿的时间。

0表示1个时钟周期。时序要求中Tas和Tcsbs由这个寄存器保证

19:16

WRHOLD

R/W

控制WRn低电平的持续时间。

0表示1个时钟周期。

15:14

WR1CS1

R/W

控制WRn上升沿到CSn上升沿的时间。

0表示1个时钟周期。

13:10

WCS1_0

R/W

写操作时,控制从CSn上升沿到CSn下除沿的时间。

0表示1个时钟周期。

9:5

RDHOLD

R/W

控制RD低电平的持续时间。

0表示1个时钟周期

4:0

RCS1_0

R/W

在读数据操作时,控制从CSn上升沿到下降沿的时间。

0表示1个时钟周期。

19.5.3. 指令寄存器IR

偏移: 0x10

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

IR

7

6

5

4

3

2

1

0

IR

位域

名称

类型

描述

31:16

RO

15:0

IR

R/W

指令

19.5.4. 数据寄存器DR

偏移: 0x14

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

DR

7

6

5

4

3

2

1

0

DR

位域

名称

类型

描述

31:16

RO

15:0

DR

R/W

数据