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 框图所示:
图 3.1: DCMI 框图
DCMI 可以作为主设备将数据写入总线,也可以作为从设备从总线接收配置数据。
DCMI 物理接口
下表总结了 DCMI 物理接口。
物理接口 |
方向 |
宽度 |
描述 |
|---|---|---|---|
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 像素接口所示。
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 上升沿的情况。
图 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)指定。窗口的大小以像素数(水平方向)和行数(垂直方向)指定。
下图显示了裁剪后窗口的坐标和大小配置。
图 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 种输入序列。转换算法如下图:
图 3.4: YUV422 转 RGB888
下图显示了 YUV422(YUYV: FMT422 = 3’b000)到 RGB888 的波形:
图 3.5: YUV422 转 RGB888 波形
RGB565 转 RGB888
如果输入数据格式是 RGB565,则应设置 DCMI_CTL 中的 565TO888 位。DCMI 可以将 RGB565 转换为 RGB888。
FMT565 位可以配置输入序列格式,它可以支持 3 种输入序列。转换算法如下图:
图 3.6: RGB565 转 RGB888
下图显示了 RGB565(FMT565 = 2’b00)到 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 会将每一帧写入一个地址,下一帧将覆盖上一帧。
内存存储格式
不同的格式将以不同的类型存储在内存中,如下表:
输出格式 |
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。
OFMT |
31:24 |
23:16 |
15:8 |
7:0 |
|---|---|---|---|---|
1 |
A |
B |
G |
R |
0 |
A |
R |
G |
B |
OFMT |
15:11 |
10:5 |
4:0 |
|---|---|---|---|
1 |
B |
G |
R |
0 |
R |
G |
B |
状态、错误
状态如下表:
状态 |
描述 |
|---|---|
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. 中断
中断如下表:
中断 |
描述 |
|---|---|
ELIF |
行结束中断,在一行结束后置位 |
VSMF |
垂直同步信号中断 |
ESEMF |
嵌入式编码错误中断,当 DCMI 检测到 FF-00-00-XY 序列,且 XY 不等于四种同步编码中的任何一种时,此中断将被置位 |
EFMF |
帧结束中断,在一完整帧接收完成后置位。当抓取速率不是每帧时,此中断与 VSMF 不同。如下图所示。 |
BUSERMF |
写总线错误中断,当总线对 DCMI 响应错误时,此中断将被置位 |
OVRMF |
溢出错误中断,当 DCMI 输出带宽大于最大带宽时,此中断将被置位 |
当 DCMI 配置为每 2 帧抓取 1 帧时,vsmf 和 efmf 的区别如下图所示,vsmf 在两帧中的第一帧之后置位,efmf 在 2 帧之后置位,用户可以利用这两个中断之间的间隙。
图 4.1: VSMF 和 EFMF
注意:关于 OVRMF 有一些提示
启用的输出越多,DCMI 所需的带宽就越大,这会导致溢出。
一旦中断被置位,当前帧将丢失,之后,用户应首先清除中断标志,然后清除 DCMIEN 并重新配置 DCMI_OUT 寄存器(减少输出数量)。
当中断被置位时,用户应首先检查 HISTERR 状态,然后尝试减少一些输出,直到中断不再被置位。
5. 寄存器
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
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
CAP |
0 |
读/写 |
0x0 |
|
TO422888 |
1 |
读/写 |
0x0 |
|
TO565888 |
2 |
读/写 |
0x0 |
|
RAWM |
3 |
读/写 |
0x0 |
|
JM |
4 |
读/写 |
0x0 |
|
ESM |
5 |
读/写 |
0x0 |
|
CKS |
6 |
读/写 |
0x0 |
|
HPS |
7 |
读/写 |
0x0 |
|
VPS |
8 |
读/写 |
0x0 |
|
FR |
10:9 |
读/写 |
0x0 |
|
DCMIF |
13:11 |
读/写 |
0x0 |
|
DSEN |
14 |
读/写 |
0x0 |
|
DSR_Y |
16:15 |
读/写 |
0x0 |
|
DSR_X |
18:17 |
读/写 |
0x0 |
|
SNAP |
19 |
读/写 |
0x0 |
|
WDEN |
20 |
读/写 |
0x0 |
|
HISTEN |
21 |
读/写 |
0x0 |
|
CAMCLKEN |
22 |
读/写 |
0x0 |
|
DCMIEN |
23 |
读/写 |
0x0 |
|
FMT422 |
26:24 |
读/写 |
0x0 |
|
FMT565 |
29:27 |
读/写 |
0x0 |
|
OFMT |
30 |
读/写 |
0x0 |
|
保留 |
31 |
/ |
0x0 |
/ |
DCMI 状态寄存器 (DCMI_STAT)
地址偏移:0xC
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
EFF |
0 |
只读 |
0x0 |
|
ESEF |
1 |
只读 |
0x0 |
|
VSF |
2 |
只读 |
0x0 |
|
HISTERR |
3 |
只读 |
0x0 |
|
HS |
4 |
只读 |
0x0 |
|
VS |
5 |
只读 |
0x0 |
|
ODDEVNFLG |
6 |
只读 |
0x0 |
|
HISTABEF |
7 |
只读 |
0x0 |
|
GRAYSCAABEF |
8 |
只读 |
0x0 |
|
RGB565ABEF |
9 |
只读 |
0x0 |
|
RGB888ABEF |
10 |
只读 |
0x0 |
|
BCHABEF |
11 |
只读 |
0x0 |
|
GCHABEF |
12 |
只读 |
0x0 |
|
RCHABEF |
13 |
只读 |
0x0 |
|
JEGABEF |
14 |
只读 |
0x0 |
|
RAWABEF |
15 |
只读 |
0x0 |
|
保留 |
31:16 |
/ |
0x0 |
/ |
DCMI 中断使能寄存器 (DCMI_INTEN)
地址偏移:0x10
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
BUSRIE |
0 |
读/写 |
0x0 |
|
OVRIE |
1 |
读/写 |
0x0 |
|
EFIE |
2 |
读/写 |
0x0 |
|
ESEIE |
3 |
读/写 |
0x0 |
|
VSIE |
4 |
读/写 |
0x0 |
|
ELIE |
5 |
读/写 |
0x0 |
|
保留 |
31:6 |
/ |
0x0 |
/ |
DCMI 中断标志寄存器 (DCMI_INTF)
地址偏移:0x14
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
BUSRMF |
0 |
只读 |
0x0 |
|
OVRMF |
1 |
只读 |
0x0 |
|
EFMF |
2 |
只读 |
0x0 |
|
ESEMF |
3 |
只读 |
0x0 |
|
VSMF |
4 |
只读 |
0x0 |
|
ELMF |
5 |
只读 |
0x0 |
|
保留 |
31:6 |
/ |
0x0 |
/ |
DCMI 中断清除寄存器 (DCMI_INTC)
地址偏移:0x18
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
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
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
FS |
7:0 |
读/写 |
0x0 |
帧开始分隔符编码。此字节指定帧开始分隔符的编码 |
LS |
15:8 |
读/写 |
0x0 |
行开始分隔符编码。此字节指定行开始分隔符的编码 |
LE |
23:16 |
读/写 |
0x0 |
行结束分隔符编码。此字节指定行结束分隔符的编码 |
FE |
31:24 |
读/写 |
0x0 |
帧结束分隔符编码。此字节指定帧结束分隔符的编码 |
DCMI 嵌入式同步编码掩码寄存器 (DCMI_SCUMSK)
地址偏移:0x20
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
FSM |
7:0 |
读/写 |
0x0 |
帧开始分隔符掩码。此字节指定要应用于帧开始分隔符编码的掩码 |
LSM |
15:8 |
读/写 |
0x0 |
行开始分隔符掩码。此字节指定要应用于行开始分隔符编码的掩码 |
LEM |
23:16 |
读/写 |
0x0 |
行结束分隔符掩码。此字节指定要应用于行结束分隔符编码的掩码 |
FEM |
31:24 |
读/写 |
0x0 |
帧结束分隔符掩码。此字节指定要应用于帧结束分隔符编码的掩码 |
DCMI 裁剪窗口起始位置寄存器 (DCMI_CWSPOS)
地址偏移:0x24
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
WHSP |
13:0 |
读/写 |
0x0 |
水平偏移计数。此值给出在开始捕获之前要计数的像素时钟数。 |
保留 |
15:14 |
/ |
0x0 |
/ |
WVSP |
29:16 |
读/写 |
0x0 |
垂直起始行计数。图像捕获从此行号开始。 |
保留 |
31:30 |
/ |
0x0 |
/ |
DCMI 裁剪窗口大小寄存器 (DCMI_CWSZ)
地址偏移:0x28
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
WHSZ |
13:0 |
读/写 |
0x0 |
像素计数。此值给出从同一条线上的起点开始要捕获的像素数 |
保留 |
15:14 |
/ |
0x0 |
/ |
WVSZ |
29:16 |
读/写 |
0x0 |
垂直线计数。此值给出从起点开始要捕获的行数 |
保留 |
31:30 |
/ |
0x0 |
/ |
DCMI ARGB 数据寄存器 (DCMI_DATA)
地址偏移:0x2C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ALPHCH |
31:0 |
读/写 |
0x0 |
ALPH 通道数据 |
DCMI 输出控制寄存器 (OUT_CTL)
地址偏移:0x30
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTEN |
0 |
读/写 |
0x0 |
|
GRAYSCAEN |
1 |
读/写 |
0x0 |
|
RGB565EN |
2 |
读/写 |
0x0 |
|
RGB888EN |
3 |
读/写 |
0x0 |
|
BCHEN |
4 |
读/写 |
0x0 |
|
GCHEN |
5 |
读/写 |
0x0 |
|
RCHEN |
6 |
读/写 |
0x0 |
|
JEGEN |
7 |
读/写 |
0x0 |
|
RAWEN |
8 |
读/写 |
0x0 |
|
HISTABEN |
9 |
读/写 |
0x0 |
|
GRAYSCAABEN |
10 |
读/写 |
0x0 |
|
RGB565ABEN |
11 |
读/写 |
0x0 |
|
RGB888ABEN |
12 |
读/写 |
0x0 |
|
BCHABEN |
13 |
读/写 |
0x0 |
|
GCHABEN |
14 |
读/写 |
0x0 |
|
RCHABEN |
15 |
读/写 |
0x0 |
|
JEGABEN |
16 |
读/写 |
0x0 |
|
RAWABEN |
17 |
读/写 |
0x0 |
|
保留 |
31:18 |
/ |
0x0 |
/ |
直方图 R 通道地址 A 寄存器 (ADDR_HISTRLA)
地址偏移:0x34
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTRLA |
31:0 |
读/写 |
0x0 |
直方图中 R 通道的 A 地址 |
直方图 R 通道地址 B 寄存器 (ADDR_HISTRLB)
地址偏移:0x38
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTRLB |
31:0 |
读/写 |
0x0 |
直方图中 R 通道的 B 地址 |
直方图 G 通道地址 A 寄存器 (ADDR_HISTGLA)
地址偏移:0x3C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTGLA |
31:0 |
读/写 |
0x0 |
直方图中 G 通道的 A 地址 |
直方图 G 通道地址 B 寄存器 (ADDR_HISTGLB)
地址偏移:0x40
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTGLB |
31:0 |
读/写 |
0x0 |
直方图中 G 通道的 B 地址 |
直方图 B 通道地址 A 寄存器 (ADDR_HISTBLA)
地址偏移:0x44
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTBLA |
31:0 |
读/写 |
0x0 |
直方图中 B 通道的 A 地址 |
直方图 B 通道地址 B 寄存器 (ADDR_HISTBLB)
地址偏移:0x48
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
HISTBLB |
31:0 |
读/写 |
0x0 |
直方图中 B 通道的 B 地址 |
RAW 数据地址 A 寄存器 (ADDR_RAWLA)
地址偏移:0x4C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
RAWLA |
31:0 |
读/写 |
0x0 |
RAW 数据输出的 A 地址 |
RAW 数据地址 B 寄存器 (ADDR_RAWLB)
地址偏移:0x50
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
RAWLB |
31:0 |
读/写 |
0x0 |
RAW 数据输出的 B 地址 |
JPEG 数据地址 A 寄存器 (ADDR_JPEGLA)
地址偏移:0x54
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
JPEGLA |
31:0 |
读/写 |
0x0 |
JPEG 数据输出的 A 地址 |
JPEG 数据地址 B 寄存器 (ADDR_JPEGLB)
地址偏移:0x58
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
JPEGLB |
31:0 |
读/写 |
0x0 |
JPEG 数据输出的 B 地址 |
R 通道地址 A 寄存器 (ADDR_RCHLA)
地址偏移:0x5C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
RCHLA |
31:0 |
读/写 |
0x0 |
R 通道数据输出的 A 地址 |
R 通道地址 B 寄存器 (ADDR_RCHLB)
地址偏移:0x60
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
RCHLB |
31:0 |
读/写 |
0x0 |
R 通道数据输出的 B 地址 |
G 通道地址 A 寄存器 (ADDR_GCHLA)
地址偏移:0x64
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
GCHLA |
31:0 |
读/写 |
0x0 |
G 通道数据输出的 A 地址 |
G 通道地址 B 寄存器 (ADDR_GCHLB)
地址偏移:0x68
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
GCHLB |
31:0 |
读/写 |
0x0 |
G 通道数据输出的 B 地址 |
B 通道地址 A 寄存器 (ADDR_BCHLA)
地址偏移:0x6C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
BCHLA |
31:0 |
读/写 |
0x0 |
B 通道数据输出的 A 地址 |
B 通道地址 B 寄存器 (ADDR_BCHLB)
地址偏移:0x70
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
BCHLB |
31:0 |
读/写 |
0x0 |
B 通道数据输出的 B 地址 |
ARGB地址 A 寄存器 (ADDR_ARGBLA)
地址偏移:0x74
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ARGBLA |
31:0 |
读/写 |
0x0 |
ARGB 数据输出的 A 地址 |
ARGB地址 B 寄存器 (ADDR_ARGBLB)
地址偏移:0x78
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
ARGBLB |
31:0 |
读/写 |
0x0 |
ARGB 数据输出的 B 地址 |
RGB565 地址 A 寄存器 (ADDR_RGB565LA)
地址偏移:0x7C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
RGB565LA |
31:0 |
读/写 |
0x0 |
RGB565 数据输出的 A 地址 |
RGB565 地址 B 寄存器 (ADDR_RGB565LB)
地址偏移:0x80
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
RGB565LB |
31:0 |
读/写 |
0x0 |
RGB565 数据输出的 B 地址 |
灰度地址 A 寄存器 (ADDR_GRAYLA)
地址偏移:0x84
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
GRAYLA |
31:0 |
读/写 |
0x0 |
灰度数据输出的 A 地址 |
灰度地址 B 寄存器 (ADDR_GRAYLB)
地址偏移:0x88
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
GRAYLB |
31:0 |
读/写 |
0x0 |
灰度数据输出的 B 地址 |
一帧的字节数寄存器 (LENTH)
地址偏移:0x8C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
LENTH |
24:0 |
读/写 |
0x0 |
传输的最大字节数 |
保留 |
31:25 |
/ |
0x0 |
/ |
一帧的像素数寄存器 (PIXNUM)
地址偏移:0x90
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
PIXNUM |
31:0 |
读/写 |
0x0 |
一帧的像素数 |
一帧的行数寄存器 (LINENUM)
地址偏移:0x94
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
LINENUM |
31:0 |
读/写 |
0x0 |
一帧的行数 |
摄像头时钟分频比寄存器 (CAMDIV)
地址偏移:0x98
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
CAMDIV |
15:0 |
读/写 |
0x0 |
摄像头时钟分频因子 |
保留 |
31:16 |
/ |
0x0 |
/ |
RTL 版本寄存器 (VERSION)
地址偏移:0x9C
字段 |
位 |
访问 |
复位值 |
描述 |
|---|---|---|---|---|
VERSION |
31:0 |
只读 |
0x10200 |
RTL 版本 |