DCMI

1. 简介

Nuclei DCMI(数字摄像头接口)可以接收来自外部 8-、10-、12-、14- 或 16-位 CMOS 摄像头的高速数据流。它支持不同的数据格式:YCbCr4:2:2/RGB565、BT656、BT1120、RAW 和压缩数据(JPEG)。

它还能够完成一些简单的图像处理算法,如数据格式转换、统计直方图、图像裁剪和下采样。

它有 9 个输出通道,可以输出不同的数据格式:RGB565、ARGB8888、图像直方图、灰度图、RAW、JPEG、R 值、G 值和 B 值。

2. 主要特性

DCMI 的主要特性如下:

  • 支持 DVP 接口摄像头(GC0308/OV5640)的图像和视频捕获。

  • 支持并行数字视频解码芯片(TVP5150)的图像和视频捕获。

  • 支持 8-、10-、12-、14-、16-位并行输入数据。

  • 支持 RGB565/YUV422/RAW/JPEG 格式,将 RAW/JPEG 格式数据直接写入用户可配置的内存而无需解码。

  • 支持嵌入式编码同步和硬件同步。

  • 支持图像裁剪

  • 支持 2x、4x 和 8x 图像下采样。

  • 支持可配置中断,在帧结束、溢出和错误后触发中断。

  • 支持数据格式转换:YUV422 转 RGB565、YUV422 转 RGB888、YUV422 转灰度图、RGB565 转 RGB888 和 RGB565 转灰度图。

  • 支持可配置地址内存写入,能够将不同格式的数据分别写入不同地址:RGB565、ARGB8888、图像直方图、灰度图、R 值、G 值和 B 值。

  • 支持将 RAW 和 JPEG 数据格式写入配置的地址而无需解码。

  • 支持生成图像直方图并将结果写入配置的地址。

3. 功能描述

DCMI 框图

DCMI 的框图如图 3.1 DCMI 框图所示:

DCMI 框图

图 3.1: DCMI 框图

DCMI 可以作为主设备将数据写入总线,也可以作为从设备从总线接收配置数据。

DCMI 物理接口

下表总结了 DCMI 物理接口。

表3.1 物理接口

物理接口

方向

宽度

描述

DCMI_PIX_CLK

输入

1

像素时钟输入

DCMI_HS

输入

1

水平同步

DCMI_VS

输入

1

垂直同步

DCMI_PIX

输入

16

16-位输入数据

DCMI_PIX 与 DCMI_PIX_CLK 同步,并根据极性在像素时钟的上升/下降沿变化。

DCMI_HS 信号与 DCMI_PIX_CLK 同步,指示一行开始/结束。

DCMI_VS 信号与 DCMI_PIX_CLK 同步,指示一帧开始/结束。

当输入数据格式是 RGB565、YUV422 和 JPEG 时,DCMI 仅支持 8 位模式。当输入数据格式是 RAW 时,DCMI 能够支持 8-、10-、12-、14-、16-位。当使用 8 位、10 位、12 位、14 位模式时,仅使用部分 DCMI_PIX 引脚,如下表 3.2 像素接口所示。

表3.2 像素接口

8-位模式

DCMI_PIX[8:15]

10-位模式

DCMI_PIX[6:15]

12-位模式

DCMI_PIX[4:15]

14-位模式

DCMI_PIX[2:15]

16-位模式

DCMI_PIX[0:15]

DCMI 时钟

DCMI 有三个时钟域。

  • 像素时钟域:此时钟来自摄像头,输入数据、hs 和 vs 在此时钟域同步。

  • 总线时钟域:此时钟是 DCMI 的主时钟,它来自总线时钟域。在理想的两时钟同步的情况下,此时钟的频率应为像素始终的2倍;实际应用中应至少为像素时钟的2.5倍。

  • 摄像头时钟域:此时钟仅用于为摄像头生成时钟。

同步

硬件同步模式

当 DCMI_CTL 寄存器中的 ESM 位设置为 0 时,启用硬件同步模式。在此模式下,HS 和 VS 指示数据传输的活动区域和消隐区域。用户可以使用 CKS、VPS 和 HPS 位来配置像素时钟、HS 和 VS 的极性。下图显示了配置 VPS 低有效、HPS 高有效和 CKS 上升沿的情况。

DCMI DCMI_HS_VS

图 3.2: DCMI_HS_VS

嵌入式编码同步模式

嵌入式编码模式仅使用 DCMI_PIX 和 DCMI_PIX_CLK,同步信息嵌入在像素数据中。用户可以通过设置 ESM 位并清除 DCMI_CTL 寄存器中的 JM 和 RAWN 位来选择此模式,此外在此模式下仅允许8位模式。在嵌入式编码模式下,DCMI 能够识别4种同步编码:行开始(LS)、行结束(LE)、帧开始(FS)、帧结束(FE)。所有这四种编码都跟在 FF-00-00-XY 之后(XY 代表同步编码,在 DCMI_SC 寄存器中配置),FF 和 00 仅用于同步,不能出现在像素数据中。

此外,DCMI 支持对这四种编码进行掩码(DCMI_SCUMSK 寄存器),这意味着每种同步编码可以对应不止一个编码。例如,用户将 LS(在 DCMI_SC 寄存器中)配置为 C5,并将 LSM(在 DCMI_SCUMSK 寄存器中)配置为 F0,在这种情况下,FF-00-00-C6 也被视为 LS 编码。DCMI 还支持 BT656 和 BT1120。

对于 BT656,用户应将 DCMIIF 位(在 DCMI_CTL 寄存器中)配置为 000(8位模式)。

四种同步编码配置如下:

  • FS = SAV(活动)

  • FE = SAV(消隐)

  • LS = SAV(活动)

  • LE = EAV(活动)

FS、FE、LS、LE 中的第7位应被掩码(在 DCMI_SCUMSK 中),该位是视频时序参考码(SAV, EAV)中的 F 位。此外,LE 中的第5位应被掩码,该位是 EAV 中的 V 位。

对于 BT1120,用户应将 DCMIIF 位(在 DCMI_CTL 寄存器中)配置为 100(16位模式),DCMI_PIX [15:8] 是 Y 通道,[7:0] 是 Cb/Cr 通道。

捕获模式

DCMI 支持两种捕获模式:快照和连续抓取。

快照模式

应设置 SNAP 位(在 DCMI_CTL 寄存器中)以启用此模式。一旦在 DCMI_CTL 中设置了 SNAP 位,DCMI 将等待检测到帧开始,然后再采样数据。在接收到第一个完整帧后,接口会自动禁用(DCMI_CTL 中的 CAP 位被清除)。同时,VSMF 中断将被置位。

连续模式

在此模式下,应清除 SNAP 位。一旦在 DCMI_CTL 中设置了 CAP 位,抓取过程将在下一个 DCMI_VS 或嵌入式帧开始(取决于模式)时开始。该过程将持续到 DCMI_CTL 中的 CAP 位被清除。一旦 CAP 位被清除,抓取过程将继续直到当前帧结束。

在连续抓取模式下,您可以配置 DCMI_CTL 中的 FR 位来抓取所有图片、每隔一张图片或每四张图片中的一张,以降低帧捕获率。

裁剪功能

应设置 DCMI_CTL 中的 WDEN 位以启用此模式。通过裁剪功能,DCMI 可以从接收到的图像中选择一个矩形窗口。起始(左上角)坐标和大小(水平方向上的像素时钟数和垂直方向上的行数)使用两个 32 位寄存器(DCMI_CWSPOS 和 DCMI_CWSZ)指定。窗口的大小以像素数(水平方向)和行数(垂直方向)指定。

下图显示了裁剪后窗口的坐标和大小配置。

DCMI 裁剪

图 3.3: 裁剪

这些寄存器将捕获窗口的起点坐标指定为行号(在帧中,从1开始)和像素数(在行上,从1开始),并将窗口的大小指定为行数和像素数。

注意:如果图像的右边界或下边界小于配置的窗口,DCMI 将把图像边界视为最终边界。

下采样

应设置 DCMI_CTL 中的 DSEN 位以启用此模式。DSR_X 位用于配置 X 方向的下采样率,DSR_Y 位用于配置 Y 方向的下采样率,用户可以配置这些位来选择 2x、4x、8x(每 2、4、8 个像素或每 2、4、8 行)。

注意:如果剩余的像素或行数小于下采样率,DCMI 将不进行采样。

格式转换

YUV422 转 RGB888

如果输入数据格式是 YUV422,则应设置 DCMI_CTL 中的 422TO888 位。DCMI 首先将 YUV422 转换为 YUV444,然后将 YUV444 转换为 RGB888。FMT422 位可以配置输入序列格式,它可以支持 4 种输入序列。转换算法如下图:

DCMI YUV422 转 RGB888

图 3.4: YUV422 转 RGB888

下图显示了 YUV422(YUYV: FMT422 = 3’b000)到 RGB888 的波形:

DCMI YUV422 转 RGB888 波形

图 3.5: YUV422 转 RGB888 波形

RGB565 转 RGB888

如果输入数据格式是 RGB565,则应设置 DCMI_CTL 中的 565TO888 位。DCMI 可以将 RGB565 转换为 RGB888。

FMT565 位可以配置输入序列格式,它可以支持 3 种输入序列。转换算法如下图:

DCMI RGB565 转 RGB888

图 3.6: RGB565 转 RGB888

下图显示了 RGB565(FMT565 = 2’b00)到 RGB888 的波形:

DCMI YUV422 转 RGB888 波形

图 3.7: RGB565 转 RGB888 波形

RGB 转灰度图

应设置 DCMI_CTL 中的 GREYEN 位以启用此模式。DCMI 将把 RGB888 转换为灰度图并输出到内存。转换算法如下:

灰度 = (306R+601G+117B) >> 10

RGB888 转 RGB565

如果用户想要输出 RGB565 格式,DCMI 将首先将 YUV422 或 RGB565 转换为 RGB888,然后将 RGB888 转换为 RGB565。DCMI 使用伪随机抖动技术生成 2/3 位随机值,然后比较 R/G/B 的低 2/3 位,最后决定是否丢弃它们。

直方图生成器

应设置 HISTEN 位以启用此模式。DCMI 将为 R/G/B 通道生成直方图。如果用户在 OUT_CTL 中设置了 HISTEN,DCMI 将在消隐期间将直方图写入地址(在 ADDR_HISTRLA 或 ADDR_HISTRLB 中配置)。如果消隐时间太短(少于 256*3 个总线时钟周期),可能不足以让 DCMI 将直方图写入内存,则无法启用此功能。

写入内存

DCMI 支持 9 种输出格式,用户可以配置 OUT_CTL 寄存器来选择输出格式。当用户选择 JPEG 或 RAW 时,其他 8 种格式应被禁用。DCMI 支持每种格式的乒乓写入(称为 AB 写入),用户可以配置 OUT_CTL 中的 9-17 位来启用每种格式的 AB 写入。在 AB 写入模式下,用户需要配置两个地址(例如:ADDR_HISTRLA 和 ADDR_HISTRLB),DCMI 将第一帧写入地址 A,下一帧写入地址 B,DCMI_STAT 寄存器中每种格式的 AB 标志可以作为当前写入地址的指示器。如果 AB 写入模式被禁用,DCMI 会将每一帧写入一个地址,下一帧将覆盖上一帧。

内存存储格式

不同的格式将以不同的类型存储在内存中,如下表:

表 3.3:存储类型

输出格式

31:24

23:16

15:8

7:0

8 位模式 (JPEG R/G/B 通道)

data3

data2

data1

data0

10 位模式 (RAW)

6’d0

data1

6’d0

data0

12 位模式 (RAW)

4’d0

data1

4’d0

data0

14 位模式 (RAW)

2’d0

data1

2’d0

data0

16 位模式 (RGB565/RAW)

data1[15:8]

data1[7:0]

data0[15:8]

data0[7:0]

32 位模式 (ARBG)

data0[31:24]

data0[23:16]

data0[15:8]

data0[7:0]

  • 对于 8 位输出模式,每 4 个数据/像素可以组合成一个 32 位数据。

  • 对于 16 位输出模式,每 2 个数据/像素可以组合成一个 32 位数据。

  • 对于 10、12、14 位输出模式,DCMI 在每个数据的高位添加一些 0 以生成一个 16 位数据,每 2 个数据/像素可以组合成一个 32 位数据。

DCMI 支持 ARGB8888 和 RGB565 输出的两种序列类型,可以使用 DCMI_CTL 中的 OFMT 位来配置此功能,如下表 输出类型 ARGB 和 输出类型 RGB565。

表 3.4:输出类型 ARGB

OFMT

31:24

23:16

15:8

7:0

1

A

B

G

R

0

A

R

G

B

表 3.5:输出类型 RGB565

OFMT

15:11

10:5

4:0

1

B

G

R

0

R

G

B

状态、错误

状态如下表:

表 3.6:状态

状态

描述

VS

DCMI_VS 引脚状态

HS

DCMI_HS 引脚状态

HISTERR

直方图错误状态

ODDEVENF

BT656 视频格式的奇偶场标志,0 为偶数场,1 为奇数场

HISTABEF

直方图输出 AB 地址标志

GRAYSCAABEF

灰度图输出 AB 地址标志

RGB565ABEF

RGB565 输出 AB 地址标志

RGB888ABEF

ARGB8888 输出 AB 地址标志

BCHABEF

B 通道输出 AB 地址标志

GCHABEF

G 通道输出 AB 地址标志

RCHABEF

R 通道输出 AB 地址标志

JEGABEF

JEPG 输出 AB 地址标志

RAWABEF

RAW 输出 AB 地址标志

VS 和 HS 是输入同步信号的指示器。HISTERR 状态指示直方图写入在消隐区域未完成。当检测到 OVRMF 中断时,应首先检查此状态。如果状态为高,则表示消隐区域对于直方图功能不够长,用户应禁用直方图输出或降低帧率。

4. 中断

中断如下表:

表 4.1:中断

中断

描述

ELIF

行结束中断,在一行结束后置位

VSMF

垂直同步信号中断

ESEMF

嵌入式编码错误中断,当 DCMI 检测到 FF-00-00-XY 序列,且 XY 不等于四种同步编码中的任何一种时,此中断将被置位

EFMF

帧结束中断,在一完整帧接收完成后置位。当抓取速率不是每帧时,此中断与 VSMF 不同。如下图所示。

BUSERMF

写总线错误中断,当总线对 DCMI 响应错误时,此中断将被置位

OVRMF

溢出错误中断,当 DCMI 输出带宽大于最大带宽时,此中断将被置位

当 DCMI 配置为每 2 帧抓取 1 帧时,vsmf 和 efmf 的区别如下图所示,vsmf 在两帧中的第一帧之后置位,efmf 在 2 帧之后置位,用户可以利用这两个中断之间的间隙。

DCMI VSMF 和 EFMF

图 4.1: VSMF 和 EFMF

注意:关于 OVRMF 有一些提示

  1. 启用的输出越多,DCMI 所需的带宽就越大,这会导致溢出。

  2. 一旦中断被置位,当前帧将丢失,之后,用户应首先清除中断标志,然后清除 DCMIEN 并重新配置 DCMI_OUT 寄存器(减少输出数量)。

  3. 当中断被置位时,用户应首先检查 HISTERR 状态,然后尝试减少一些输出,直到中断不再被置位。

5. 寄存器

DCMI 中的寄存器及其对应的偏移地址如 表 5.1 DCMI 中的寄存器偏移地址所示。

表 5.1:DCMI 中的寄存器偏移地址

偏移地址

寄存器名称

功能描述

0x8

DCMI_CTL

DCMI 控制寄存器

0xC

DCMI_STAT

DCMI 状态寄存器

0x10

DCMI_INTEN

DCMI 中断使能寄存器

0x14

DCMI_INTF

DCMI 中断标志寄存器

0x18

DCMI_INTC

DCMI 中断清除寄存器

0x1C

DCMI_SC

DCMI 嵌入式同步编码寄存器

0x20

DCMI_SCUMSK

DCMI 嵌入式同步编码掩码寄存器

0x24

DCMI_CWSPOS

DCMI 裁剪窗口起始位置寄存器

0x28

DCMI_CWSZ

DCMI 裁剪窗口大小寄存器

0x2C

DCMI_DATA

DCMI ARGB 数据寄存器

0x30

OUT_CTL

DCMI 输出控制寄存器

0x34

ADDR_HISTRLA

直方图 R 通道地址 A 寄存器

0x38

ADDR_HISTRLB

直方图 R 通道地址 B 寄存器

0x3C

ADDR_HISTGLA

直方图 G 通道地址 A 寄存器

0x40

ADDR_HISTGLB

直方图 G 通道地址 B 寄存器

0x44

ADDR_HISTBLA

直方图 B 通道地址 A 寄存器

0x48

ADDR_HISTBLB

直方图 B 通道地址 B 寄存器

0x4C

ADDR_RAWLA

RAW 数据地址 A 寄存器

0x50

ADDR_RAWLB

RAW 数据地址 B 寄存器

0x54

ADDR_JPGLA

JPEG 数据地址 A 寄存器

0x58

ADDR_JPGLB

JPEG 数据地址 B 寄存器

0x5C

ADDR_RCHLA

R 通道地址 A 寄存器

0x60

ADDR_RCHLB

R 通道地址 B 寄存器

0x64

ADDR_GCHLA

G 通道地址 A 寄存器

0x68

ADDR_GCHLB

G 通道地址 B 寄存器

0x6C

ADDR_BCHLA

B 通道地址 A 寄存器

0x70

ADDR_BCHLB

B 通道地址 B 寄存器

0x74

ADDR_ARGBLA

ARGB 地址 A 寄存器

0x78

ADDR_ARGBLB

ARGB 地址 B 寄存器

0x7C

ADDR_RGB565LA

RGB565 地址 A 寄存器

0x80

ADDR_RGB565LB

RGB565 地址 B 寄存器

0x84

ADDR_GRAYLA

灰度地址 A 寄存器

0x88

ADDR_GRAYLB

灰度地址 B 寄存器

0x8C

LENTH

一帧的字节数寄存器

0x90

PIXNUM

一帧的像素数寄存器

0x94

LINENUM

一帧的行数寄存器

0x98

CAMDIV

摄像头时钟分频比寄存器

0x9C

VERSION

RTL 版本寄存器

DCMI 控制寄存器 (DCMI_CTRL)

地址偏移:0x8

表 5.2:DCMI_CTRL 寄存器格式

字段

位

访问

复位值

描述

CAP

0

读/写

0x0

捕获使能
  • 1’b0: 禁用捕获

  • 1’b1: 使能捕获

TO422888

1

读/写

0x0

YUV422 转 RGB888 使能
  • 1’b0: 禁用

  • 1’b1: 使能

TO565888

2

读/写

0x0

RGB565 转 RGB888 使能
  • 1’b0: 禁用

  • 1’b1: 使能

RAWM

3

读/写

0x0

RAW 模式控制
  • 1’b0: 禁用 RAW 模式

  • 1’b1: 使能 RAW 模式

JM

4

读/写

0x0

JPEG 模式
  • 1’b0: 禁用 JPEG 模式

  • 1’b1: 使能 JPEG 模式

ESM

5

读/写

0x0

嵌入式编码使能
  • 1’b0: 禁用 嵌入式编码使能

  • 1’b1: 使能 嵌入式编码使能

CKS

6

读/写

0x0

像素时钟极性
  • 1’b0: 下降沿有效

  • 1’b1: 上升沿有效

HPS

7

读/写

0x0

水平同步极性
  • 1’b0: hs 高电平有效

  • 1’b1: hs 低电平有效

VPS

8

读/写

0x0

垂直同步极性
  • 1’b0: vs 高电平有效

  • 1’b1: vs 低电平有效

FR

10:9

读/写

0x0

帧捕获率控制 这些位定义帧捕获的频率
  • 2’b00: 捕获所有帧

  • 2’b01: 每隔一帧捕获

  • 2’b10: 每四帧捕获一帧

DCMIF

13:11

读/写

0x0

每个像素时钟捕获位宽配置
  • 3’b000: 每个像素时钟捕获 8-位

  • 3’b001: 每个像素时钟捕获 10-位

  • 3’b010: 每个像素时钟捕获 12-位

  • 3’b011: 每个像素时钟捕获 14-位

  • 3’b100: 每个像素时钟捕获 16-位

DSEN

14

读/写

0x0

下采样使能
  • 1’b0: 禁用下采样

  • 1’b1: 使能下采样

DSR_Y

16:15

读/写

0x0

行下采样率
  • 2’b00: 捕获所有行

  • 2’b01: 每 2 行捕获 1 行

  • 2’b10: 每 4 行捕获 1 行

  • 2’b11: 每 8 行捕获 1 行

DSR_X

18:17

读/写

0x0

水平方向下采样率
  • 2’b00: 捕获一行中的每个像素

  • 2’b01: 每 2 个像素捕获 1 个像素

  • 2’b10: 每 4 个像素捕获 1 个像素

  • 2’b11: 每 8 个像素捕获 1 个像素

SNAP

19

读/写

0x0

快照功能控制
  • 1’b0: 禁用快照

  • 1’b1: 使能快照

WDEN

20

读/写

0x0

裁剪功能控制
  • 1’b0: 禁用裁剪

  • 1’b1: 使能裁剪

HISTEN

21

读/写

0x0

直方图生成控制
  • 1’b0: 禁用直方图生成

  • 1’b1: 使能直方图生成

CAMCLKEN

22

读/写

0x0

摄像头时钟输出使能
  • 1’b0: 禁用摄像头时钟输出

  • 1’b1: 使能摄像头时钟输出

DCMIEN

23

读/写

0x0

DCMI 使能控制位
  • 1’b0: 禁用 DCMI

  • 1’b1: 使能 DCMI

FMT422

26:24

读/写

0x0

YUV422 序列
  • 3’b000: YUYV

  • 3’b001: YVYU

  • 3’b010: UYVY

  • 3’b011: VYUY

FMT565

29:27

读/写

0x0

RGB565 序列
  • 3’b000: {b[4:0] g[5:3]} {g[2:0] r[4:0]}

  • 3’b001: {r[4:0] g[5:3]} {g[2:0] b[4:0]}

  • 3’b010: {g[2:0] b[4:0]} {r[4:0] g[5:3]}

OFMT

30

读/写

0x0

输出 R/G/B 通道格式
  • 1’b0: RGB

  • 1’b1: BGR

保留

31

/

0x0

/

DCMI 状态寄存器 (DCMI_STAT)

地址偏移:0xC

表 5.3:DCMI_STAT 寄存器格式

字段

位

访问

复位值

描述

EFF

0

只读

0x0

行中断状态
  • 1’b0: 无行中断产生

  • 1’b1: 行中断产生

ESEF

1

只读

0x0

嵌入式编码错误中断
  • 1’b0: 无嵌入式编码错误中断产生

  • 1’b1: 嵌入式编码错误中断产生

VSF

2

只读

0x0

垂直同步信号中断
  • 1’b0: 无垂直同步信号中断产生

  • 1’b1: 垂直同步信号中断产生

HISTERR

3

只读

0x0

直方图功能错误状态
  • 1’b0: 直方图无错误

  • 1’b1: 直方图有错误

HS

4

只读

0x0

HS 引脚状态
  • 1’b0: hs 处于消隐区域

  • 1’b1: hs 处于活动区域

VS

5

只读

0x0

VS 引脚状态
  • 1’b0: vs 处于活动区域

  • 1’b1: vs 处于消隐区域

ODDEVNFLG

6

只读

0x0

在 bt656 模式下,此标志指示当前行是否为奇数行
  • 1’b0: 偶数行

  • 1’b1: 奇数行

HISTABEF

7

只读

0x0

直方图输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

GRAYSCAABEF

8

只读

0x0

灰度图输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

RGB565ABEF

9

只读

0x0

RGB565 输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

RGB888ABEF

10

只读

0x0

ARGB8888 输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

BCHABEF

11

只读

0x0

B 通道输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

GCHABEF

12

只读

0x0

G 通道输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

RCHABEF

13

只读

0x0

R 通道输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

JEGABEF

14

只读

0x0

JPEG 输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

RAWABEF

15

只读

0x0

RAW 数据输出 AB 地址标志
  • 1’b0: 当前帧写入 A 地址

  • 1’b1: 当前帧写入 B 地址

保留

31:16

/

0x0

/

DCMI 中断使能寄存器 (DCMI_INTEN)

地址偏移:0x10

表 5.4:DCMI_INTEN 寄存器格式

字段

位

访问

复位值

描述

BUSRIE

0

读/写

0x0

响应总线错误中断使能
  • 0: 当接收到总线错误响应时,不产生中断

  • 1: 当接收到总线错误响应时,产生中断

OVRIE

1

读/写

0x0

FIFO 溢出中断使能
  • 0: 禁止

  • 1: 使能

EFIE

2

读/写

0x0

帧结束中断使能
  • 0: 当一帧结束时,不产生中断

  • 1: 当一帧结束时,产生中断

ESEIE

3

读/写

0x0

嵌入式编码错误中断使能
  • 0: 当嵌入式编码有错误时,不产生中断

  • 1: 当嵌入式编码有错误时,产生中断

VSIE

4

读/写

0x0

Vs 同步中断使能
  • 0: 当一帧结束时,不产生中断

  • 1: 当一帧结束时,产生中断

ELIE

5

读/写

0x0

行结束中断使能
  • 0: 当一行结束时,不产生中断

  • 1: 当一行结束时,产生中断

保留

31:6

/

0x0

/

DCMI 中断标志寄存器 (DCMI_INTF)

地址偏移:0x14

表 5.5:DCMI_INTF 寄存器格式

字段

位

访问

复位值

描述

BUSRMF

0

只读

0x0

响应总线错误中断
  • 0: 无中断产生

  • 1: 有中断产生

OVRMF

1

只读

0x0

FIFO 溢出中断
  • 0: 无溢出中断产生

  • 1: 有溢出中断产生

EFMF

2

只读

0x0

帧结束中断
  • 0: 无中断产生

  • 1: 有中断产生

ESEMF

3

只读

0x0

嵌入式编码错误中断
  • 0: 无中断产生

  • 1: 有中断产生

VSMF

4

只读

0x0

Vs 同步中断
  • 0: 无中断产生

  • 1: 有中断产生

ELMF

5

只读

0x0

行结束中断
  • 0: 无中断产生

  • 1: 有中断产生

保留

31:6

/

0x0

/

DCMI 中断清除寄存器 (DCMI_INTC)

地址偏移:0x18

表 5.6:DCMI_INTC 寄存器格式

字段

位

访问

复位值

描述

BUSRFC

0

读/写

0x0

行中断状态清除 向此位写入 1 清除 DCMI_INTF 寄存器中的 BUSRMF

OVRFC

1

读/写

0x0

行中断状态清除 向此位写入 1 清除 DCMI_INTF 寄存器中的 OVRMF

EFFC

2

读/写

0x0

行中断状态清除 向此位写入 1 清除 DCMI_INTF 寄存器中的 EFMF

ESEFC

3

读/写

0x0

行中断状态清除 向此位写入 1 清除 DCMI_INTF 寄存器中的 ESEMF

VSFC

4

读/写

0x0

行中断状态清除 向此位写入 1 清除 DCMI_INTF 寄存器中的 VSMF

ELFC

5

读/写

0x0

行中断状态清除 向此位写入 1 清除 DCMI_INTF 寄存器中的 ELMF

保留

31:6

/

0x0

/

DCMI 嵌入式同步编码寄存器 (DCMI_SC)

地址偏移:0x1C

表 5.7:DCMI_SC 寄存器格式

字段

位

访问

复位值

描述

FS

7:0

读/写

0x0

帧开始分隔符编码。此字节指定帧开始分隔符的编码

LS

15:8

读/写

0x0

行开始分隔符编码。此字节指定行开始分隔符的编码

LE

23:16

读/写

0x0

行结束分隔符编码。此字节指定行结束分隔符的编码

FE

31:24

读/写

0x0

帧结束分隔符编码。此字节指定帧结束分隔符的编码

DCMI 嵌入式同步编码掩码寄存器 (DCMI_SCUMSK)

地址偏移:0x20

表 5.8:DCMI_SCUMSK 寄存器格式

字段

位

访问

复位值

描述

FSM

7:0

读/写

0x0

帧开始分隔符掩码。此字节指定要应用于帧开始分隔符编码的掩码

LSM

15:8

读/写

0x0

行开始分隔符掩码。此字节指定要应用于行开始分隔符编码的掩码

LEM

23:16

读/写

0x0

行结束分隔符掩码。此字节指定要应用于行结束分隔符编码的掩码

FEM

31:24

读/写

0x0

帧结束分隔符掩码。此字节指定要应用于帧结束分隔符编码的掩码

DCMI 裁剪窗口起始位置寄存器 (DCMI_CWSPOS)

地址偏移:0x24

表 5.9:DCMI_CWSPOS 寄存器格式

字段

位

访问

复位值

描述

WHSP

13:0

读/写

0x0

水平偏移计数。此值给出在开始捕获之前要计数的像素时钟数。

保留

15:14

/

0x0

/

WVSP

29:16

读/写

0x0

垂直起始行计数。图像捕获从此行号开始。

保留

31:30

/

0x0

/

DCMI 裁剪窗口大小寄存器 (DCMI_CWSZ)

地址偏移:0x28

表 5.10:DCMI_CWSZ 寄存器格式

字段

位

访问

复位值

描述

WHSZ

13:0

读/写

0x0

像素计数。此值给出从同一条线上的起点开始要捕获的像素数

保留

15:14

/

0x0

/

WVSZ

29:16

读/写

0x0

垂直线计数。此值给出从起点开始要捕获的行数

保留

31:30

/

0x0

/

DCMI ARGB 数据寄存器 (DCMI_DATA)

地址偏移:0x2C

表 5.11:DCMI_DATA 寄存器格式

字段

位

访问

复位值

描述

ALPHCH

31:0

读/写

0x0

ALPH 通道数据

DCMI 输出控制寄存器 (OUT_CTL)

地址偏移:0x30

表 5.12:OUT_CTL 寄存器格式

字段

位

访问

复位值

描述

HISTEN

0

读/写

0x0

直方图输出使能
  • 1’b0: 禁用直方图输出

  • 1’b1: 使能直方图输出

GRAYSCAEN

1

读/写

0x0

灰度图输出使能
  • 1’b0: 禁用灰度图输出

  • 1’b1: 使能灰度图输出

RGB565EN

2

读/写

0x0

RGB565 输出使能
  • 1’b0: 禁用 rgb565 输出

  • 1’b1: 使能 rgb565 输出

RGB888EN

3

读/写

0x0

ARGB8888 输出使能
  • 1’b0: 禁用 ARGB8888 输出

  • 1’b1: 使能 ARGB8888 输出

BCHEN

4

读/写

0x0

B 通道输出使能
  • 1’b0: 禁用 B 通道输出

  • 1’b1: 使能 B 通道输出

GCHEN

5

读/写

0x0

G 通道输出使能
  • 1’b0: 禁用 G 通道输出

  • 1’b1: 使能 G 通道输出

RCHEN

6

读/写

0x0

R 通道输出使能
  • 1’b0: 禁用 R 通道输出

  • 1’b1: 使能 R 通道输出

JEGEN

7

读/写

0x0

JPEG 输出使能
  • 1’b0: 禁用 JPEG 输出

  • 1’b1: 使能 JPEG 输出

RAWEN

8

读/写

0x0

RAW 数据输出使能
  • 1’b0: 禁用 RAW 输出

  • 1’b1: 使能 RAW 输出

HISTABEN

9

读/写

0x0

直方图乒乓写入输出使能
  • 1’b0: 禁用直方图乒乓写入输出

  • 1’b1: 使能直方图乒乓写入输出

GRAYSCAABEN

10

读/写

0x0

灰度图乒乓写入输出使能
  • 1’b0: 禁用灰度图乒乓写入输出

  • 1’b1: 使能灰度图乒乓写入输出

RGB565ABEN

11

读/写

0x0

RGB565 乒乓写入输出使能
  • 1’b0: 禁用 RGB565 乒乓写入输出

  • 1’b1: 使能 RGB565 乒乓写入输出

RGB888ABEN

12

读/写

0x0

ARGB8888 乒乓写入输出使能
  • 1’b0: 禁用 ARGB8888 乒乓写入输出

  • 1’b1: 使能 ARGB8888 乒乓写入输出

BCHABEN

13

读/写

0x0

B 通道乒乓写入输出使能
  • 1’b0: 禁用 B 通道乒乓写入输出

  • 1’b1: 使能 B 通道乒乓写入输出

GCHABEN

14

读/写

0x0

G 通道乒乓写入输出使能
  • 1’b0: 禁用 G 通道乒乓写入输出

  • 1’b1: 使能 G 通道乒乓写入输出

RCHABEN

15

读/写

0x0

R 通道乒乓写入输出使能
  • 1’b0: 禁用 R 通道乒乓写入输出

  • 1’b1: 使能 R 通道乒乓写入输出

JEGABEN

16

读/写

0x0

JPEG 乒乓写入输出使能
  • 1’b0: 禁用 JPEG 乒乓写入输出

  • 1’b1: 使能 JPEG 乒乓写入输出

RAWABEN

17

读/写

0x0

RAW 数据乒乓写入输出使能
  • 1’b0: 禁用 RAW 数据乒乓写入输出

  • 1’b1: 使能 RAW 数据乒乓写入输出

保留

31:18

/

0x0

/

直方图 R 通道地址 A 寄存器 (ADDR_HISTRLA)

地址偏移:0x34

表 5.13:ADDR_HISTRLA 寄存器格式

字段

位

访问

复位值

描述

HISTRLA

31:0

读/写

0x0

直方图中 R 通道的 A 地址

直方图 R 通道地址 B 寄存器 (ADDR_HISTRLB)

地址偏移:0x38

表 5.14:ADDR_HISTRLB 寄存器格式

字段

位

访问

复位值

描述

HISTRLB

31:0

读/写

0x0

直方图中 R 通道的 B 地址

直方图 G 通道地址 A 寄存器 (ADDR_HISTGLA)

地址偏移:0x3C

表 5.15:ADDR_HISTGLA 寄存器格式

字段

位

访问

复位值

描述

HISTGLA

31:0

读/写

0x0

直方图中 G 通道的 A 地址

直方图 G 通道地址 B 寄存器 (ADDR_HISTGLB)

地址偏移:0x40

表 5.16:ADDR_HISTGLB 寄存器格式

字段

位

访问

复位值

描述

HISTGLB

31:0

读/写

0x0

直方图中 G 通道的 B 地址

直方图 B 通道地址 A 寄存器 (ADDR_HISTBLA)

地址偏移:0x44

表 5.17:ADDR_HISTBLA 寄存器格式

字段

位

访问

复位值

描述

HISTBLA

31:0

读/写

0x0

直方图中 B 通道的 A 地址

直方图 B 通道地址 B 寄存器 (ADDR_HISTBLB)

地址偏移:0x48

表 5.18:ADDR_HISTBLB 寄存器格式

字段

位

访问

复位值

描述

HISTBLB

31:0

读/写

0x0

直方图中 B 通道的 B 地址

RAW 数据地址 A 寄存器 (ADDR_RAWLA)

地址偏移:0x4C

表 5.19:ADDR_RAWLA 寄存器格式

字段

位

访问

复位值

描述

RAWLA

31:0

读/写

0x0

RAW 数据输出的 A 地址

RAW 数据地址 B 寄存器 (ADDR_RAWLB)

地址偏移:0x50

表 5.20:ADDR_RAWLB 寄存器格式

字段

位

访问

复位值

描述

RAWLB

31:0

读/写

0x0

RAW 数据输出的 B 地址

JPEG 数据地址 A 寄存器 (ADDR_JPEGLA)

地址偏移:0x54

表 5.21:ADDR_JPEGLA 寄存器格式

字段

位

访问

复位值

描述

JPEGLA

31:0

读/写

0x0

JPEG 数据输出的 A 地址

JPEG 数据地址 B 寄存器 (ADDR_JPEGLB)

地址偏移:0x58

表 5.22:ADDR_JPEGLB 寄存器格式

字段

位

访问

复位值

描述

JPEGLB

31:0

读/写

0x0

JPEG 数据输出的 B 地址

R 通道地址 A 寄存器 (ADDR_RCHLA)

地址偏移:0x5C

表 5.23:ADDR_RCHLA 寄存器格式

字段

位

访问

复位值

描述

RCHLA

31:0

读/写

0x0

R 通道数据输出的 A 地址

R 通道地址 B 寄存器 (ADDR_RCHLB)

地址偏移:0x60

表 5.24:ADDR_RCHLB 寄存器格式

字段

位

访问

复位值

描述

RCHLB

31:0

读/写

0x0

R 通道数据输出的 B 地址

G 通道地址 A 寄存器 (ADDR_GCHLA)

地址偏移:0x64

表 5.25:ADDR_GCHLA 寄存器格式

字段

位

访问

复位值

描述

GCHLA

31:0

读/写

0x0

G 通道数据输出的 A 地址

G 通道地址 B 寄存器 (ADDR_GCHLB)

地址偏移:0x68

表 5.26:ADDR_GCHLB 寄存器格式

字段

位

访问

复位值

描述

GCHLB

31:0

读/写

0x0

G 通道数据输出的 B 地址

B 通道地址 A 寄存器 (ADDR_BCHLA)

地址偏移:0x6C

表 5.27:ADDR_BCHLA 寄存器格式

字段

位

访问

复位值

描述

BCHLA

31:0

读/写

0x0

B 通道数据输出的 A 地址

B 通道地址 B 寄存器 (ADDR_BCHLB)

地址偏移:0x70

表 5.28:ADDR_BCHLB 寄存器格式

字段

位

访问

复位值

描述

BCHLB

31:0

读/写

0x0

B 通道数据输出的 B 地址

ARGB地址 A 寄存器 (ADDR_ARGBLA)

地址偏移:0x74

表 5.29:ADDR_ARGBLA 寄存器格式

字段

位

访问

复位值

描述

ARGBLA

31:0

读/写

0x0

ARGB 数据输出的 A 地址

ARGB地址 B 寄存器 (ADDR_ARGBLB)

地址偏移:0x78

表 5.30:ADDR_ARGBLB 寄存器格式

字段

位

访问

复位值

描述

ARGBLB

31:0

读/写

0x0

ARGB 数据输出的 B 地址

RGB565 地址 A 寄存器 (ADDR_RGB565LA)

地址偏移:0x7C

表 5.31:ADDR_RGB565LA 寄存器格式

字段

位

访问

复位值

描述

RGB565LA

31:0

读/写

0x0

RGB565 数据输出的 A 地址

RGB565 地址 B 寄存器 (ADDR_RGB565LB)

地址偏移:0x80

表 5.32:ADDR_RGB565LB 寄存器格式

字段

位

访问

复位值

描述

RGB565LB

31:0

读/写

0x0

RGB565 数据输出的 B 地址

灰度地址 A 寄存器 (ADDR_GRAYLA)

地址偏移:0x84

表 5.33:ADDR_GRAYLA 寄存器格式

字段

位

访问

复位值

描述

GRAYLA

31:0

读/写

0x0

灰度数据输出的 A 地址

灰度地址 B 寄存器 (ADDR_GRAYLB)

地址偏移:0x88

表 5.34:ADDR_GRAYLB 寄存器格式

字段

位

访问

复位值

描述

GRAYLB

31:0

读/写

0x0

灰度数据输出的 B 地址

一帧的字节数寄存器 (LENTH)

地址偏移:0x8C

表 5.35:LENTH 寄存器格式

字段

位

访问

复位值

描述

LENTH

24:0

读/写

0x0

传输的最大字节数

保留

31:25

/

0x0

/

一帧的像素数寄存器 (PIXNUM)

地址偏移:0x90

表 5.36:PIXNUM 寄存器格式

字段

位

访问

复位值

描述

PIXNUM

31:0

读/写

0x0

一帧的像素数

一帧的行数寄存器 (LINENUM)

地址偏移:0x94

表 5.37:LINENUM 寄存器格式

字段

位

访问

复位值

描述

LINENUM

31:0

读/写

0x0

一帧的行数

摄像头时钟分频比寄存器 (CAMDIV)

地址偏移:0x98

表 5.38:CAMDIV 寄存器格式

字段

位

访问

复位值

描述

CAMDIV

15:0

读/写

0x0

摄像头时钟分频因子

保留

31:16

/

0x0

/

RTL 版本寄存器 (VERSION)

地址偏移:0x9C

表 5.39:VERSION 寄存器格式

字段

位

访问

复位值

描述

VERSION

31:0

只读

0x10200

RTL 版本