4 Imaging subsystem
i.MX 8M 시리즈 이미징 서브시스템은 MIPI CSI-2 RX 서브시스템에서 들어오는 데이터를 지원하고 이 데이터를 캡처하여 메모리로 패킹한다.
4.1 CSI bridge
CSI Bridge는 i.MX 8MQ와 i.MX 8MM에서 구현되어 있다.
Figure 4는 CSI 브리지의 블럭 다이어그램을 보여준다.
참고:
이 섹션에서는 CSI Bridge의 기능과 구성 절차가 나열되어 있다. 작동 원리, 인터럽트 생성, 데이터 패킹 스타일등과 같은 이 IP에 대한 자세한 내용은 i.MX 8MQ or i.MX 8MM Reference Manual을 참조한다.
4.1.1 Features
CSI Bridge IP에는 다음과 같은 주요 기능이 있다:
- 가장 일반적으로 사용 가능한 CMOS 센서를 지원하는 구성 가능한 인터페이스 로직
- YCbCr, YUV 또는 RGB 데이터 입력을 위한 8비트/16비트/24비트 데이터 포트를 지원한다.
- YUV420, YUV420 (Legacy), YUV420 (CSPS), 8비트와 10비트의 YUV422
- RGB565, RGB666, RGB888
- RAW6, RAW7, RAW8, RAW10, RAW12, RAW14
- All User Defined Byte-based Data packet (모든 사용자 정의 바이트 기반 데이터 패킷)
- 8비트/픽셀, 10비트/픽셀 또는 16비트/픽셀 데이터 형식을 64비트 수신 FIFO 패킹으로 완변하게 제어한다.
- 수신된 이미지 픽셀 데이터를 저장하는 256 x 64 FIFO
- FIFO 오버런 방지 메커니즘을 수신한다.
- 수신 FIFO 또는 통계 FIFO에서 AHB 버스를 통해 데이터를 전송하는 임베디드 DMA 컨트롤러.
- 수신 FIFO에서 프레임 버퍼로 2D(데이터는 x/y 좌표로 선택됨) DAM 전송 지원
- 외부 메모리에서 두 프레임의 더블 버퍼링을 지원한다.
- 마스크 가능한 인터럽트 소스에서 컨트롤러를 인터럽트하는 단일 인터럽트 소스: Start of Frame, End of Frame, Change of Field, FIFO full, FIFO overrun, DMA transfer done 그리고 AHB bus response error.
- 센서에 대한 구성 가능한 마스터 클럭 주파수 출력.
- 카메라의 Auto Exposure(AE)와 Auto White Balance(AWB) 컨트롤을 위한 통계 데이터 생성(Bayer 데이터와 8비트/픽셀 형식에만 해당)
4.1.2 Configuration procedure
CSI Bridge의 초기화 절차는 다음과 같다:
- CSI_CR18[DATA_FROM_MIPI]를 1로 설정하여 MIPI 카메라에서 소스로 CSI를 구성한다.
- CSI_IMAG_PARA 레지스터에서 이미지 width, height를 구성한다.
- 센서 데이터 유형에 따라 관련된 필드를 구성한다:
- CSI_CR18 레지스터의 MIPI_DATA_FORMAT, MIPI_YU_SWAP, MIPI_DOUBLE_CMPNT, RGB888A_FORMAT_SEL, PARALLEL24_EN 필드
- CSI_CR3 레지스터의 TWO_8BIT_SENSOR, ZERO_PACK_EN 필드
- 임베디드 DMA 컨트롤러 구성:
- CSI_CR1[CLR_RXFIFO] 비트에 '1'을 설정하고 CSI_CR1[FCC] 비트에 '0'을 설정하여 비동기적으로 RxFIFO를 클리어한다.
- CSI_CR3[DMA_REFLASH_RFF] 비트에 '1'을 설정하여 RxFIFO용 DMA 컨트롤러를 리플래시한다.
- CSI_CR3[FRMCNT_RST] 비트에 '1'을 설정하여 프레임 카운터를 재설정한다.
- CSI_CR18[BASEADDR_SWITCH_SEL/EN] 필드에서 기본 주소 전환 방법을 구성한다.
- CSI_CR2[DMA_BURST_TYPE_RFF] 필드에서 버스트 전송 유형을 구성한다.
- CSI_CR3[DMA_REQ_EN_RFF] 비트에 '1'을 설정하여 RxFIFO에 대한 DMA 요청을 활성화한다.
- CSI_CR3[RxFF_LEVEL] 필드에서 RxFIFO full level을 구성한다.
- CSI_DMASA_FB1, CSI_DMASA_FB2 레지스터에 이미지 데이터를 저장해야 하는 메모리 주소를 구성한다.
- 인터럽트 구성:
- Start or End of Frame Interrupt: CSI_CR1 레지스터의 SOF_INTEN과 EOF_INT_EN 필드
- RxFIFO Overrun Interrupt: CSI_CR1 레지스터의 RF_OR_INTEN 필드
- Frame buffer 1/2 DMA Transfer Done Interrupt: CSI_CR1 레지스터의 FB1_DMA_DONE_INTEN, FB2_DMA_DONE_INTEN 필드
- CSI_CR18[CSI_ENABLE] 비트에 '1'을 설정하여 CSI Bridge를 활성화한다.
- 소프트웨어에서 적절한 조치를 취하도록 CSI_SR 레지스터를 통해 CSI Bridge의 상태를 모니터링한다.
4.1.3 Register definition
이 섹션에서는 사용자가 새로운 카메라를 포팅하기 위해 주의해야 하는 일부 레지스터 필드가 나열되어 있다. 더 많은 레지스터의 정보에 대해서는 i.MX 8MQ or i.MX 8MM Reference Manual를 참조한다.
CSI Bridge의 기본 주소는 다음과 같다:
- i.MX 8MM CSI-2 Port 1: 32E2_0000h
- i.MX 8MQ CSI-2 Port 1: 30A9_0000h
- i.MX 8MQ CSI-2 Port 2: 30B8_0000h
▶ CSI_CR1 레지스터: 0h 오프셋
Table 26. CSI_CR1 register
Field | Description |
---|---|
29 EOF_INT_EN |
End-of-Frame Interrupt Enable. 0 Disable 1 Enable |
24 RF_OR_INTEN |
RxFIFO Overrun Interrupt Enable. 0 Disable 1 Enable |
20 FB2_DMA_DONE_INTEN |
Frame Buffer2 DMA Transfer Done Interrupt Enable. 0 Disable 1 Enable |
19 FB1_DMA_DONE_INTEN |
Frame Buffer1 DMA Transfer Done Interrupt Enable. 0 Disable 1 Enable |
16 SOF_INTEN |
Start Of Frame (SOF) Interrupt Enable. 0 Disable 1 Enable |
8 FCC |
FIFO Clear Control. 이 비트는 RXFIFO와 STATFIFO를 clear하는 방법을 결정한다. Synchronous FIFO clear를 선택한 경우, RXFIFO는 모든 SOF에서 clear된다. FIFO는 리셋 직후 다시 시작된다. Asynchronous FIFO clear를 선택한 경우, 동작에 대한 내용은 CLR_RXFIFO에 대한 설명을 참조한다. 0 Asynchronous FIFO clear is selected. 1 Synchronous FIFO clear is selected. |
5 CLR_RXFIFO |
Asynchronous RXFIFO Clear. 이 비트는 RXFIFO를 clear하고, FCC=0인 async FIFO clear 모드에서만 작동한다. 그렇지 않으면 이 비트는 무시된다. 1을 설정하면 RXFIFO를 즉시 clear하고 RXFIFO는 그 직후 다시 시작한다. 완료 후 이 비트는 자동으로 0으로 복원된다. 일반적으로 0을 읽는다. |
▶ CSI_CR3 레지스터: 8h 오프셋
Table 27. SI_CR3 register
Field | Description |
---|---|
31-16 FRMCNT |
Frame Counter. 이는 16비트 프레임 카운터이다. (최대치에 도달하면 자동으로 랩핑) |
15 FRMCNT_RST |
Frame Count Reset. 프레임 카운터를 리셋한다. (리셋 완료 후 자동으로 clear됨) 0 Do not reset 1 Reset frame counter immediately (즉시 프레임 카운터 리셋) |
14 DMA_REFLASH_RFF |
RxFIFO용 DMA 컨트롤러를 리플래시한다. 이 비트는 RxFIFO용 임베디드 DMA 컨트롤러를 리플래시한다. 임베디드 DMA 컨트롤러가 작동하기 전에 리플래시해야 한다. (리플래시 완료 후 자동으로 clear) |
12 DMA_REQ_EN_RFF |
RxFIFO용 DMA Request Enable. 이 비트는 RxFIFO에서 임베디드 DMA 컨트롤러로 DMA 요청을 활성화한다. 0 Disable the dma request 1 Enable the dma request |
3 SENSOR_16BITS |
16-bit Sensor Mode. 이 비트는 16비트 데이터 포트에 연결된 하나의 16비트 센서를 나타낸다. 하나의 16비트 센서가 연결된 경우, 이 비트를 설정해야 한다. 이 비트는 임베디드 DMA 컨트롤러를 리플래시하거나 다시 시작하기 전에 구성해야 한다. 0 Only one 8-bit sensor is connected. 1 One 16-bit sensor is connected. |
▶ CSI_SR 레지스터: 18h 오프셋
Table 28. CSI_SR register
Field | Description |
---|---|
28 BASEADDR_CHHANGE_ERROR |
기본 주소 전환 활성화를 사용할 때, DMA 완료 전에 전환이 발생하면 이 비트는 1이 된다. 이 비트는 1로 설정하면 clear된다. 이 인터럽트가 발생하면, 아래 나열된 단계를 따른다.
|
24 RF_OR_INT |
RxFIFO Overrun Interrupt Status. RxFIFO 레지스터의 오버플로 상태를 나타낸다. (1을 설정하면 clear됨) 0 RXFIFO has not overflowed. 1 RXFIFO has overflowed. |
20 DMA_TSF_DONE_FB2 |
Frame Buffer2에서 DMA Transfer Done. RxFIFO에서 Frame Buffer2로의 DMA 전송이 완료되었음을 나타낸다. 해당 활성화 비트가 CSICR1에 설정되어 있으면 인터럽트를 트리거할 수 있다. 이 비트는 1을 설정하거나 CSICR3에서 RxFIFO DMA 컨트롤러를 리플래시하여 clear할 수 있다. 0 DMA transfer is not completed. 1 DMA transfer is completed. |
19 DMA_TSF_DONE_FB1 |
Frame Buffer1에서 DMA Transfer Done. RxFIFO에서 Frame Buffer1로의 DMA 전송이 완료되었음을 나타낸다. 해당 활성화 비트가 CSICR1에 설정되어 있으면 인터럽트를 트리거할 수 있다. 이 비트는 1을 설정하거나 CSICR3에서 RxFIFO DMA 컨트롤러를 리플래시하여 clear할 수 있다. 0 DMA transfer is not completed. 1 DMA transfer is completed. |
17 EOF_INT |
End of Frame (EOF) Interrupt Status. EOF가 감지된 경우를 나타낸다. (1을 설정하여 clear) 0 EOF is not detected. 1 EOF is detected. |
16 SOF_INT |
Start of Frame (SOF) Interrupt Status.SOF가 감지된 경우를 나타낸다. (1을 설정하여 clear) 0 SOF is not detected. 1 SOF is detected. |
▶ CSI_IMAG_PARA 레지스터: 34h 오프셋
Table 29. CSI_IMAG_PARA register
Field | Description |
---|---|
31-16 IMAGE_WIDTH |
Image Width. 라인당 활성 픽셀 주기의 수를 나타낸다. 센서의 입력 데이터가 8비트/픽셀 형식인 경우, IMAGE_WIDTH는 8픽셀의 배수여야 한다. 센서의 입력 데이터가 10비트/픽셀 또는 16비트/픽셀 형식인 경우, IMAGE_WIDTH는 4픽셀의 배수여야 한다. |
15-0 IMAGE_HEIGHT |
Image Height. 센서에서 이미지 열의 픽셀 수를 나타낸다. |
▶ CSI_CR18 레지스터: 48h 오프셋
Table 30. CSI_CR18 register
Field | Description |
---|---|
30-25 MIPI_DATA_FORMAT |
Image Data Format Generic Short Packet: 0x08 ~ 0x0F Embedded 8-bit non Image: 0x12 YUV420 (8-bit) 0x18 YUV420 (10-bit) 0x19 YUV420 (8-bit legacy) 0x1A YUV420 (8-bit CSPS) 0x1C YUV420 (10-bit CSPS)0x1D YUV422 (8-bit) 0x1E YUV422 (10-bit) 0x1F RGB444 0x20 (Not support) RGB555 0x21 (Not support) RGB565 0x22 RGB666 0x23 RGB888 0x24 RAW6 0x28 RAW7 0x29 RAW8 0x2A RAW10 0x2B RAW12 0x2C RAW14 0x2D User defined 1 0x30 User defined 2 0x31 User defined 3 0x32 User defined 4 0x33 User defined 5 0x34 User defined 6 0x35 User defined 7 0x36 User defined 8 0x37 |
22 DATA_FROM_MIPI |
0 패러럴 센서의 데이터 (i.MX 8MM과 i.MX 8MQ에서 지원 안됨) 1 MIPI 데이터 |
21 MIPI_YU_SWAP |
MIPI CSI YUV422 더블 컴포넌트 모드에서만 작동한다. |
20 MIPI_DOUBLE_CMPNT |
0 클럭 주기당 싱글 컴포넌트 (클럭 주기당 절반 픽섹) 1 클럭 주기당 더블 컴포넌트 (클럭 주기당 한 픽셀) |
19-18 MASK_OPTION |
이 비트는 CSI 입력을 마스크하기 위한 방법을 선택하는 데 사용된다. 00 첫 번째 전체 프레임에서 메모리(OCRAM이나 외부 DDR)에 저장, 이 옵션을 사용할 때 CSI_ENABLE은 1이어야 한다. 01 CSI_ENABLE이 1일 때 메모리에 저장 02 두 번째 전체 프레임에서 메모리에 저장, 이 옵션을 사용할 때 CSI_ENABLE은 1이어야 한다. 03 CSI_ENABLE이 1 또는 0에 관계없이 데이터가 들어올 때 메모리에 저장한다. |
10 RGB888A_FORMAT_SEL |
출력은 32비트 형식이다. 0 {8’h0, data[23:0]} 1 {data[23:0], 8’h0} |
9 BASEADDR_CHANGE_ ERROR_IE |
기본 주소 변경 오류 인터럽트 활성화 신호. 0 인터럽트 비활성화 1 인터럽트 활성화 |
5 BASEADDR_SWITCH_SEL |
CSI 2 기본 주소 전환 방법. 이 비트를 사용할 때, BASEADDR_SWITCH_EN은 1이다. 0 vsync의 에지에서 기본 주소 전환 1 각 프레임의 첫 번째 데이터의 에지에서 기본 주소 전환 |
4 BASEADDR_SWITCH_EN |
이 비트가 활성화되면, CSI DMA는 DMA가 자동으로 완료되는 대신 BASEADDR_SWITCH_SEL에 따라 기본 주소를 전환한다. |
3 PARALLEL24_EN |
Parallel RGB888/YUV444 24비트 입력용 활성화 비트 |
4.2 Image sensing interface
ISI는 i.MX 8MN과 i.MX 8MP에서 구현되어 있다. 버스 마스터 인터페이스를 통해 이미지 처리와 전송을 지원하는 간단한 카메라 인터페이스이다.
Figure 5는 ISI의 블럭 다이어그램을 보여준다.
참고:
이 섹션에는 ISI의 기능과 구성 절차가 나열되어 있다. 디자인 개요, 기능 설명 등과 같은 이 IP에 대한 자세한 내용은 i.MX 8MN 또는 i.MX 8MP Reference Manual을 참조한다.
4.2.1 Features
ISI IP에는 다음과 같은 주요 기능이 있다:
- 처리되는 카메라 스트림에 대해 각 채널에서 최대 2K 너비를 지원.
- 고해상도 이미지 처리
- 4K 너비-처리되는 카메라 스트림은 두 개의 인접한 처리 채널을 연결하여 지원할 수 있다.
- 지원되는 입력 소스:
- 2개의 카메라 센서에 인터페이스할 수 있는 패러럴로 실행되는 2개의 픽셀 링크 인터페이스.
- System Memory (AXI 마스터; 내부에서 Pixel Link Interface로 변환됨)
- 각 프로세싱 파이프라인이나 채널은 같거나 다른 픽셀 입력 소스에 할당될 수 있다.
- Stream Multiplexing 기능:
- 입력 스트림을 여러 출력으로 복제한다.
- 인터레이스 입력 소스에 대해 지원되는 단순한 De-Interlacing 방법:
- Weaving
- Line Doubling
- Blending
- 하나의 입력 소스를 둘 이상의 프로세싱 채널에서 처리할 수 있다.
- Stream 조작 기능:
- 이미지를 메모리에 저장할 때 지원되는 픽셀 형식
- 평면(planar)이나 반평면(semi-planar) 형식의 YUV444, YUV422, YUV420 (8비트, 10비트, 12비트)
- RGB565, RGB666, RGB888
- RAW8, RAW10, RAW12, RAW16
- IMG_CTRL 레지스터의 FORMAT 필드 설명에 나열된 더 많은 형식
- Decimation과 Bilinear 필터링을 통한 입력 이미지 다운스케일
- 2, 4 또는 8로 Decimation 지원
- Bilinear 필터가 1.0에서 2.0으로 추가 다운스케일(소수 단위의 다운스케일)
- 색 공간 변환
- RGB, YUV, YCbCr
- 사용자 정의 색 공간의 매트릭스 기반 변환
- RGB 형식에 알파 채널 추가
- 전역 알파 값
- 별도의 직사각형 관심 영역(ROI:region of interest)의 알파 값. ROI 알파 값은 전역 알파 값보다 우선 순위가 높다. 최대 4개의 겹치지 않는 ROI 사각형이 지원된다.
- Mirroring (Image Flip): Horizontal과 Vertical 플립 지원
- Frame 인식, Frame 건너뛰기
- 명확한 프레임 시작, HSYNC와 VSYNC 기반의 종료
- 버퍼 오버런 감지
- 버퍼 언더런 결정론적 동작
- 이미지를 메모리에 저장할 때 지원되는 픽셀 형식
- Stream 출력 옵션:
- 입력 소스는 프로세싱 파이브라인 YUV나 RGB로 변환되어 처리된다.
- 처리된 이미지는 파이프라인에서 출력되어 소프트웨어에서 지정한 메모리 위치에 저장된다.
- 데이터를 AXI로 출력하기 전에 프로세싱 채널 출력에서 전체 라인 저장이 가능하다.
- 활성 버퍼 상태 표시와 함께 핑퐁 방식으로 사용되는 듀얼 버퍼 주소.
- 라인과 프레임은 프레임의 진행 상황을 추적하기 위해 소프트웨어에 인터럽트 상태를 저장한다.
- 흐름 컨트롤
- 소프트웨어와 디바이스에 패닉 표시를 통해 저장 트랙잭션의 우선순위를 높여 잠재적인 출력 버퍼의 오버플로를 방지한다. 소프트웨어에서 패닉 표시를 위한 임계값을 구성할 수 있다.
- 픽셀이 메모리에서 공급되거나 입력 라인 버퍼가 플러시될 때, 픽셀이 전송되는 속도를 소프트웨어에서 프로그래밍할 수 있는 옵션이 있다. 기본적으로 클럭당 하나의 픽셀이 전송된다.
- AXI 버스가 데이터를 수용할 수 없고 출력 버퍼의 저장 공간이 부족할 때, 메모리에서 이미지를 소싱하고 라인 버퍼를 플러시하는 동안 채널 파이프라인을 정지시키는 배압 메커니즘.
참고:
일부 ISI 기능은 멀티 ISI 프로세싱 파이프라인(채널)에 의존한다: weaving 디인터레이싱을 제외한 모든 스트림의 멀티플렉싱 기능, YUV420 형식의 다운스케일 기능과 고해상도 이미지 처리. 8MP ISI에는 두 개의 프로세싱 채널이 구현되는 반면, 8MN ISI에는 하나의 프로세싱 채널만 구현된다.
4.2.2 Configuration procedure
이 섹션에서는 적절하고 효율적인 이미지 프로세싱을 위해 ISI에서 개별 채널을 구성하고 인터럽트를 처리하기 위해 제안된 단계를 설명한다. 구성해야 하는 모든 채널은 모듈의 올바른 작동을 위해 이러한 제안된 초기화 단계를 따라야 한다.
먼저, 일반적인 채널 구성은 다음과 같이 수행된다:
- CNHL_CTRL[CLK_EN] 비트를 1로 설정하여 채널에 대한 클럭을 활성화한다. 이는 채널의 다른 레지스터에 액세스하고 채널 별 이미지 프로세싱에도 필요하다.
- 채널이 바이패스되어야 하는 경우, 즉 Down-scaling와 Color Space Conversion (CSC)이 필요하지 않은 경우 CHNL_CTRL[CHNL_BYPASS] 비트를 1로 설정하고, 그렇지 않은 경우 0으로 설정한다. 이렇게 하면 채널로 들어오는 이미지가 별도의 처리 없이 메모리에 바로 저장된다. 그러나 이미지 플립(수평 및/또는 수직), 이미지 크롭, 알파 추가(RGB 형식만 해당), 형식 변환(YUV444를 YUV422 또는 YUV420으로 변환)은 바이패스가 활성화된 상태에서도 계속 수행할 수 있다.
- 입력 이미지의 소스를 선택한다. CHNL_CTRL[SRC] 필드에서 소스를 구성한다.
- i.MX 8MP의 경우, 카메라 입력은 2개의 Pixel Links(0 ~ 1) 중 하나일 수 있다. 추가 픽셀 링크(Pixel Link 2)를 소스로 선택할 수 있다. Pixel Link 2는 항상 프로그래밍된 메모리 위치에서 이미지를 읽는다.
- i.MX 8MN의 경우, Pixel Link 0만 스트리밍 카메라 입력용이다. Pixel Link 1은 메모리에서 이미지를 읽기 위한 것이다.
- Non-memory Pixel Link(카메라 센서에서 가져온 이미지, SRC_TYPE = 0)와 Memory Pixel Link(메모리에서 가져온 이미지, SRC_TYPE = 1) 중에서 채널의 소스 유형을 선택한다. Memory Pixel Link는 프로그래밍된 메모리 위치에서만 이미지를 가져온다. 메모리에서 직접 이미지를 디인터레이싱하고 프로세싱하는 데 유용하다. 메모리에서 이미지 소싱을 지원하지 않는 채널의 경우, 소스 유형은 항상 Non-memory Pixel Link이다. CHNL_CTRL[SRC_TYPE] 필드에서 채널의 소스 유형을 구성한다.
- CHNL_IMG_CFG 레지스터에서 이미지 너비와 높이를 구성한다.
- CHNL_IMG_CTRL[FORMAT] 필드에서 ISI 출력 이미지 형식을 구성한다.
- 채널에서 프로세싱되거나 바이패스된 데이터를 저장해야 하는 메모리 주소를 구성한다. 이미지는 1-평면(모든 색상 컴포넌트가 함께 저장됨), 2-평면(Y 컴포넌트는 하나의 메모리 주소에 저장되고, UV는 다른 메모리 주소에 저장됨), 3-평면(각 컴포넌트가 다른 메모리 주소에 저장됨)으로 저장할 수 있다.
- 1-평면 주소 지정의 경우, CHNL_OUT_BUF1_ADDR_Y와 CHNL_OUT_BUF2_ADDR_Y 레지스터에서 32비트 주소를 구성한다.
- 2-평면, 3-평면 주소 지정의 경우, CHNL_OUT_BUF1_ADDR_U와 CHNL_OUT_BUF2_ADDR_U를 추가로 사용한다.
- 3-평면 주소 지정의 경우, CHNL_OUT_BUF1_ADDR_V와 CHNL_OUT_BUF2_ADDR_V를 추가로 사용한다.
참고: RGB와 RAW 이미지는 항상 1-평면으로 저장되는 반면, 다른 YUV 형식은 1/2/3-평면으로 저장할 수 있다.
- CHNL_OUT_BUF_PITCH[LINE_PITCH] 레지스터에서 출력 버퍼 라인 피치를 구성한다. 라인 피치는 두 라인의 시작 위치 사이의 바이트 수이다. 라인 주소가 정렬된 경계에서 시작하도록 하는 데 사용된다.
참고: 라인 피치는 1-평면, 2-평면 또는 3-평면에 저장되었는지 여부에 관계없이 모든 이미지 컴포넌트에 대해 동일하다. 2와 3-평면 출력에서 U와 V 컴포넌트는 Y 컴포넌트와 동일한 라인 피치를 가진다. 라인 피치가 한 라인의 바이트 수보다 크게 프로그램밍되었는지 확인한다. - 주소 로드 비트 CHNL_OUT_BUF_CTRL[LOAD_BUF1_ADDR/ LOAD_BUF2_ADDR]를 전환하여 나중에 활성화될 때 채널에서 새로 구성된 주소를 선택하고 사용할 수 있도록 한다.
애플리케이션에 사용할 기능에 따라 i.MX 8MP Reference Manual의 해당 섹션에서 자세히 설명된 단계를 따른다.
- 스케일러와 스케일러 사용 구성에 대한 자세한 내용은 13.4.3.2 Scaling Operation 섹션을 참조한다.
- CSC와 블럭 사용 구성에 대한 자세한 내용은 13.4.3.3 Color Space Conversion (CSC) 섹션을 참조한다.
- 다양한 디인터레이싱 방법과 채널에 대한 각 디인터레이싱 방법을 활성화하기 위한 구성에 대한 자세한 내용은 13.4.3.4 Image De-interlacing 섹션을 참조한다.
- 채널에서 2K 이상의 이미지 해상도를 처리할 수 있도록 컨트롤을 활성화하려면 13.4.3.5 High-Res Image Handling 섹션을 참조한다.
- 이미지 크롭, 플립, 알파 추가, 버퍼 오버플로 처리와 버퍼 비우기에 대한 더 높은 AXI 채널 우선 순위 요청에 대한 컨트롤을 구성하는 방법에 대한 자세한 내용은 13.4.3.6 Output Buffer Management 섹션을 참조한다.
- 메모리에서 가져온 이미지를 읽고 처리하도록 채널 0을 구성하는 방법에 대한 자세한 내용은 13.4.3.7 Sourcing Image from Memory 섹션을 참조한다.
- 이 모듈에서 AXI 버스로의 픽셀 출력 속도를 구성하는 방법에 대한 자세한 내용은 13.4.3.8 Flow Control 섹션을 참조한다.
위의 단계가 완료되면, 다음 단계를 사용하여 채널을 활성화하고 모니터링할 수 있다:
- CHNL_IER 레지스터에서 해당 인터럽트 활성화 비트에 '1'을 설정하여 필요한 인터럽트를 활성화한다.
- CHNL_CTRL[CHNL_EN] 비트에 '1'을 설정하여 채널을 활성화한다. 그 다음에 이 채널은 선택한 소스에서 이미지를 받기 시작한다.
- CHNL_STS 레지스터를 통해 채널 상태를 모니터링한다. 각 비트는 소프트웨어에서 적절한 조치를 취할 수 있도록 상태나 오류 표시를 제공한다. 인터럽트 상태 비트는 각 비트에 1을 설정하여 지울 수 있다.
- 필요한 경우 CHNL_CTRL[SW_RST] 비트에 '1'을 설정하여 전체 채널을 기본 리셋 상태로 리셋할 수 있다. 소프트웨어는 리셋이 전파될 수 있도록 최소 5~6 NOP 주기 동안 이 비트 '1'을 유지한 다음, 이 비트를 '0'으로 설정하여 리셋 주기를 완료해야 한다. 소프트웨어 리셋 후, 채널은 하드웨어 리셋 후와 동일한 기본 상태로 돌아간다. 소프트웨어 리셋 중에는 구성 레지스터가 리셋되지 않는다. 소프트웨어 리셋이 완료된 후 채널의 재시작을 컨트롤하기 위해 소프트웨어 리셋이 어설트되는 동안 소프트웨어는 CHNL_CTRL[CHNL_EN] 비트를 추가적으로 클리어할 수 있다.
여러 채널을 구성하는 경우, 모든 채널에 대해 위에서 제안된 단계를 수행해야 한다.
4.2.3 ISI width limitation
하나의 ISI 채널에 있는 라인 버퍼와 출력 버퍼 스토리지는 2K(너비) 이미지 해상도에서만 충분하다. 4K 이미지를 처리하고 저장할 수 있으려면, 인접 채널의 라인 버퍼와 출력 버퍼를 현재 채널의 라인 버퍼와 출력 버퍼에 각각 체인으로 연결되어야 한다. 라인 버퍼와 출력 버퍼의 연결에는 후속 채널만 체인에 연결될 수 있는 제한이 있다. 예를 들어 채널 1이 4K 이미지를 처리해야 하는 경우, 해당 라인 버퍼와 출력 버퍼는 각각 채널 2의 라인 버퍼와 출력 버퍼에 체인으로 연결될 수 있으며 다른 채널에는 연결되지 않는다. 일반적으로 채널 'n'의 라인 버퍼와 출력 버퍼는 각각 채널 'n+1'의 라인 버퍼와 출력 버퍼에만 체인으로 연결될 수 있다.
참고:
이 2K 너비 제한은 프로세싱되는 카메라 스트림에만 유효하다. 즉, ISI CSC 및/또는 다운스케일링 기능이 이미지 데이터 프로세싱에 대해 활성화된다. 프로세싱되지 않은 카메라 스트림의 경우, 지원되는 너비/높이는 CHNL_IMG_CFG 레지스터의 WIDTH/HEIGHT 필드의 설정 범위까지 가능하다. 채널의 라인 버퍼와 출력 버퍼가 다른 채널과 체인으로 연결되는 경우, 해당 채널은 비활성화된 상태로 유지되어야 하며 이미지 프로세싱에 사용할 수 없다.
Table 31은 ISI가 i.MX 8MN과 i.MX 8MP에서 지원할 수 있는 이론적인 최대 이미지 너비를 설명한다. 그러나 실제 사용 사례에서, 사용자는 MIPI Rx 서브시스템 기능과 전체 시스템 대역폭을 고려하여 특정 프레임 속도에서 이러한 고해상도를 지원할 수 있는지 확인해야 한다.
Table 31. ISI max supported width on i.MX 8MN and i.MX 8MP
SoC | ISI Channel | CHNL_CTRL [CHAIN_BUF] |
Max supported width for processed stream |
Max supported width for unprocessed stream |
---|---|---|---|---|
i.MX 8MN | 0 | / | 2048 | 0x1FFF |
i.MX 8MP | 0 | 0 | 2048 | 0x1FFF |
1 | 4096 | 0x1FFF | ||
1 | / | 2048 | 0x1FFF |
4.2.4 Register definition
이 섹션에서는 사용자가 새로운 카메라를 포팅하기 위해 주의해야 하는 일부 레지스터 필드가 나열되어 있다. 더 많은 레지스터에 대한 정보는 i.MX 8MN이나 i.MX 8MP Reference Manual을 참조한다.
ISI의 기본 주소는 다음과 같다:
- i.MX 8MN CSI-2 Port 1용 ISI 채널 0: 32E2_0000h
- i.MX 8MP CSI-2 Port 1용 ISI 채널 0: 32E0_0000h
- i.MX 8MP CSI-2 Port 2용 ISI 채널 1: 32E0_2000h
▶ CHNL_CTRL 레지스터: 0h 오프셋
Table 32. CHNL_CTRL register
Field | Description |
---|---|
29 CHNL_BYPASS |
채널 바이패스 활성화 특정 애플리케이션의 경우, ISI 모듈은 이미지에서 스케일링이나 색 공간 변환을 수행하는 데 필요하지 않을 수 있다. 이러한 경우 채널 파이프라인을 바이패스하고 이미지를 메모리에 저장하도록 이 비트를 설정해야 한다. 출력 이미지 형식 CHNLn_IMG_CTRL[FO RMAT] 필드는 수신 이미지 형식과 동일하게 설정해야 한다. 이미지 플립, 크롭과 알파 추가는 계속 수행할 수 있다. 참고: 디인터레이싱 목적(00b 이외의 값으로 설정된 CHNL_IMG_CTRL[DEINT])을 위해, 채널은 자동으로 바이패스된다. 참고: 이 비트가 설정되면, CHNL_IMG_CTRL[CSC_BYP]가 설정되지 않아도 CSC는 바이패스된다. 0b - 채널은 바이패스되지 않는다. 1b - 채널은 바이패스된다. |
26-25 CHAIN_BUF |
체인 라인 버퍼 컨트롤 2048 수평 해상도(픽셀)보다 높은 이미지의 경우, 더 큰 스토리지를 제공하기 위해 라인 버퍼 RAM(채널 'n'용)을 채널 'n+1' 라인 버퍼 RAM과 연결해야 한다. 이 필드는 인접한 채널 라인 버퍼 RAM이 함께 체인으로 연결되는 방식을 컨트롤한다. 예를 들어, 이 필드가 '01'로 설정되면 라인 버퍼(채널 'n'과 'n+1'용)가 체인으로 연결된다. 채널 'n+1'은 활성화할 수 없으며 사용이 차단된다. 00b - 체인으로 연결된 라인 버퍼 없음 (프로세싱되는 스트림에 대해 2048 이하의 수평 해상도 지원) 01b - 2개의 라인 버퍼가 체인으로 연결됨(프로세싱 스트림에 대해 4096 수평 해상도 지원). 채널 'n'과 'n+1'의 라인 버퍼가 체인으로 연결된다. 10b - 향후 사용을 위해 예약됨 11b - 향후 사용을 위해 예약됨 |
4 SRC_TYPE |
선택된 입력 이미지 소스의 유형 이미지 입력 소스의 유형을 정의한다. 이미지 소스가 메모리에 있는 경우에만, '1'로 설정해야 한다. 다른 모든 소스의 경우 이 비트는 '0'이다. 0b - 이미지 입력 소스는 Pixel Link이다. 1b - 이미지 입력 소스는 Memory이다. |
1-0 SRC |
입력 이미지 소스 포트 선택 소스는 이미지 소스가 있는 Pixel Link Crossbar의 원하는 포트를 선택한다. 이 필드는 채널 파이프라인이 작동 중일 때 변경하면 안 되며, 채널 프로세싱을 활성화하기 전에 구성해야 한다. i.MX 8MN의 경우, 채널 0 이외의 채널에서 값을 1로 설정해도 효과가 없다. 채널 0만 pixel link #1(메모리 소스)을 사용할 수 있다. 00b - 이미지는 Pixel Link Crossbar 입력 포트 0의 소스이다. 01b - 이미지는 Pixel Link Crossbar(AXI read에 연결된 입력 포트 1) 입력 포트 1의 소스이다. 10, 11b - 예약됨 i.MX 8MP의 경우, 채널 0 이외의 채널에서 값을 2로 설정해도 효과가 없다. 채널 0만 pixel link #2(메모리 소스)를 사용할 수 있다. 00b - 이미지는 Pixel Link Crossbar 입력 포트 0의 소스이다. 01b - 이미지는 Pixel Link Crossbar 입력 포트 1의 소스이다. 10b - 이미지는 Pixel Link Crossbar(AXI read에 연결된 입력 포트 2) 입력 포트 2의 소스이다. 11b - 예약됨 |
▶ CHNL_IMG_CTRL 레지스터: 4h 오프셋
Table 33. CHNL_IMG_CTRL register
Field | Description |
---|---|
29-24 FORMAT |
출력 이미지 형식 이 필드는 채널 파이프라인의 이미지 출력을 메모리에 저장할 때 사용할 이미지 형식을 지정한다. UV 바이트 레인은 YUV 출력 픽셀 형식에 대한 CbCr 바이트 레인과 동의어이다. 예를 들어, 출력이 YCbCr 2-평면 420 출력 형식인 경우 YUV420_2P* 형식을 선택해야 한다. 000000b - RGBA8888 - LSB에서 알파가 있는 RGB 형식, 컴포넌트당 8비트. 'A'는 알파 값을 나타낸다. 000001b - ABGR8888 - MSB에서 알파가 있는 BGR 형식, 컴포넌트당 8비트. 'A'는 알파 값을 나타낸다. 000010b - ARGB8888 - MSB에서 알파가 있는 RGB 형식, 컴포넌트당 8비트. 'A'는 알파 값을 나타낸다. 000011b - RGBX888 - 색상 컴포넌트당 8비트의 RGB 형식 (32비트 DWORD에서 언팩킹과 MSB 정렬). 'X'는 낭비되는 비트를 나타낸다. 000100b - XBGR888 - 색상 컴포넌트당 8비트의 BGR 형식 (32비트 DWORD에서 언팩킹과 LSB 정렬). 'X'는 낭비되는 비트를 나타낸다. 000101b - XRGB888 - 색상 컴포넌트당 8비트의 RGB 형식 (32비트 DWORD에서 언팩킹과 LSB 정렬). 'X'는 낭비되는 비트를 나타낸다. 000110b - RGB888P - 색상 컴포넌트당 8비트의 RGB 형식 (24비트로 패킹됨). 낭비되는 비트가 없다. 000111b - BGR888P - 색상 컴포넌트당 8비트의 BGR 형식 (24비트로 패킹됨). 낭비되는 비트가 없다. 001000b - A2BGR10 - MSB에서 2비트 알파가 있는 BGR 형식, 색상 컴포넌트당 10비트. 'A'는 알파 값을 나타낸다. |
001001b - A2RGB10 - MSB에서 2비트 알파가 있는 RGB 형식, 색상 컴포넌트당 10비트. 'A'는 알파 값을 나타낸다. 001010b - RGB565 - 5비트 R, B와 6비트 G의 RGB 형식(16비트 WORD로 패킹됨). 낭비되는 비트가 없다. 001011b - RAW8 - 32비트 DWORD로 패킹된 8비트 RAW 데이터 001100b - RAW10 - LSB 6비트가 낭비되는 16비트 WORD로 패킹된 10비트 RAW 데이터 001101b - RAW10P - 32비트 DWORD로 패킹된 10비트 RAW 데이터 001110b - RAW12 - LSB 4비트가 낭비되는 16비트 WORD로 패킹된 12비트 RAW 데이터 001111b - RAW16 - 32비트 DWORD로 패킹된 16비트 RAW 데이터 010000b - YUV444_1P8P 색상 컴포넌트당 8비트, 1-평면, YUV가 인터리브된 패킹 바이트 010001b - YUV444_2P8P 색상 컴포넌트당 8비트, 2-평면, UV가 인터리브된 패킹 바이트 010010b - YUV444_3P8P 색상 컴포넌트당 8비트, 3-평면, 인터리브가 없는 패킹 바이트 010011b - YUV444_1P8 색상 컴포넌트당 8비트, 1-평면, YUV가 인터리브된 패킹 바이트(32비트 DWORD에서 MSB 8비트가 낭비됨) 010100b - YUV444_1P10 색상 컴포넌트당 10비트, 1-평면, YUV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) 010101b - YUV444_2P10 색상 컴포넌트당 10비트, 2-평면, UV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) 010110b - YUV444_3P10 색상 컴포넌트당 10비트, 3-평면, 인터리브가 없는 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) |
|
010111b - 향후 사용을 위해 예약됨 011000b - YUV444_1P10P 색상 컴포넌트당 10비트, 1-평면, YUV가 인터리브된 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 011001b - YUV444_2P10P 색상 컴포넌트당 10비트, 2-평면, UV가 인터리브된 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 011010b - YUV444_3P10P 색상 컴포넌트당 10비트, 3-평면, 인터리브가 없는 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 011011b - 향후 사용을 위해 예약됨 011100b - YUV444_1P12 색상 컴포넌트당 12비트, 1-평면, YUV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 011101b - YUV444_2P12 색상 컴포넌트당 12비트, 2-평면, UV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 011110b - YUV444_3P12 색상 컴포넌트당 12비트, 3-평면, 인터리브가 없는 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 011111b - 향후 사용을 위해 예약됨 100000b - YUV422_1P8P 색상 컴포넌트당 8비트, 1-평면, YUV가 인터리브된 패킹 바이트 100001b - YUV422_2P8P 색상 컴포넌트당 8비트, 2-평면, UV가 인터리브된 패킹 바이트 100010b - YUV422_3P8P 색상 컴포넌트당 8비트, 3-평면, 인터리브가 없는 패킹 바이트 100011b - 향후 사용을 위해 예약됨 100100b - YUV422_1P10 색상 컴포넌트당 10비트, 1-평면, YUV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) |
|
100101b - YUV422_2P10 색상 컴포넌트당 10비트, 2-평면, UV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) 100110b - YUV422_3P10 색상 컴포넌트당 10비트, 3-평면, 인터리브가 없는 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) 100111b - 향후 사용을 위해 예약됨 101000b - YUV422_1P10P 색상 컴포넌트당 10비트, 1-평면, YUV가 인터리브된 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 101001b - YUV422_2P10P 색상 컴포넌트당 10비트, 2-평면, UV가 인터리브된 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 101010b - YUV422_3P10P 색상 컴포넌트당 10비트, 3-평면, 인터리브가 없는 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 101011b - 향후 사용을 위해 예약됨 101100b - YUV422_1P12 색상 컴포넌트당 12비트, 1-평면, YUV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 101101b - YUV422_2P12 색상 컴포넌트당 12비트, 2-평면, UV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 101110b - YUV422_3P12 색상 컴포넌트당 12비트, 3-평면, 인터리브가 없는 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 101111b - 향후 사용을 위해 예약됨 110000b - 향후 사용을 위해 예약됨 110001b - YUV420_2P8P 색상 컴포넌트당 8비트, 2-평면, UV가 인터리브된 패킹 바이트 110010b - YUV420_3P8P 색상 컴포넌트당 8비트, 3-평면, 인터리브가 없는 패킹 바이트 |
|
110011b - 향후 사용을 위해 예약됨 110100b - 향후 사용을 위해 예약됨 110101b - YUV420_2P10 색상 컴포넌트당 10비트, 2-평면, UV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) 110110b - YUV420_3P10 색상 컴포넌트당 10비트, 3-평면, 인터리브가 없는 언패킹 바이트(16비트 WORD에서 LSB 6비트가 낭비됨) 110111b - 향후 사용을 위해 예약됨 111000b - 향후 사용을 위해 예약됨 111001b - YUV420_2P10P 색상 컴포넌트당 10비트, 2-평면, UV 인터리브된 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 111010b - YUV420_3P10P 색상 컴포넌트당 10비트, 3-평면, 인터리브가 없는 패킹 바이트(32비트 DWORD에서 MSB 2비트가 낭비됨) 111011b - 향후 사용을 위해 예약됨 111100b - 향후 사용을 위해 예약됨 111101b - YUV420_2P12 색상 컴포넌트당 12비트, 2-평면, UV가 인터리브된 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 111110b - YUV420_3P12 색상 컴포넌트당 12비트, 3-평면, 인터리브가 없는 언패킹 바이트(16비트 WORD에서 LSB 4비트가 낭비됨) 111111b - 향후 사용을 위해 예약됨 |
|
14-12 DEINT |
디인터레이스 컨트롤 pixel link를 통해 전송될 때, 인터레이스되어 있는 프레임은 디인터레이싱이 필요하다. 이 필드는 인터레이스 프레임을 결합하는 데 사용할 기본 디인터레이싱 방법을 정의한다. 디인터레이싱 기술과 디인터레이싱을 수행하도록 채널을 구성하는 방법에 대한 자세한 내용은 i.MX 8MN이나 i.MX 8MP Reference Manual의 ISI Functional Description 섹션을 참조한다. i.MX 8MN의 경우, 000, 001b - 디인터레이싱이 수행되지 않음 010b - Weave 디인터레이싱(Odd, Even) 방법 사용 011b - Weave 디인터레이싱(Even, Odd) 방법 사용 100, 101, 110, 111b - 예약됨 i.MX 8MP의 경우, 000, 001b - 디인터레이싱이 수행되지 않음 010b - Weave 디인터레이싱(Odd, Even) 방법 사용 011b - Weave 디인터레이싱(Even, Odd) 방법 사용 100b - 블렌딩 또는 선형 보간(Odd + Even) 디인터레이싱 방법 사용 101b - 블렌딩 또는 선형 보간(Even + Odd) 디인터레이싱 방법 사용 110, 111b - 라인 더블링 디인터레이싱 방법이 사용된다. Odd와 Even 필드가 모두 두 배가 된다. |
▶ CHNL_IMG_CTRL 레지스터: 4h 오프셋
Table 33. CHNL_IMG_CTRL register
Field | Description |
---|---|
28-16 HEIGHT |
입력 이미지 높이 (라인 수) 이 필드는 이미지가 pixel link나 메모리에서 입력되는 두 경우 모두에 대해 입력 이미지의 높이를 라인 수로 제공한다. 기본 높이는 1080 라인이다. |
12-0 WIDTH |
입력 이미지 너비 (픽셀 수) 이 필드는 이미지가 pixel link나 메모리에서 입력되는 두 경우 모두에 대한 이미지의 너비를 픽셀 수로 제공한다. 기본 너비는 1920 픽셀이다. |
▶ CHNL_IER 레지스터: 10h 오프셋
Table 35. CHNL_IER register
Field | Description |
---|---|
30 LINE_RCVD_EN |
라인 수신 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
29 FRM_RCVD_EN |
프레임 수신 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
22 OFLW_V_BUF_EN |
V 출력 버퍼 오버플로 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
20 OFLW_U_BUF_EN |
U 출력 버퍼 오버플로 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
18 OFLW_Y_BUF_EN |
Y 출력 버퍼 오버플로 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
17 EARLY_VSYNC_ERR_EN |
VSYNC 타이밍(이른) 오류 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
16 LATE_VSYNC_ERR_EN |
VSYNC 타이밍(늦은) 오류 인터럽트 활성화 비트 해당 상태 비트가 어설션되면 채널에서 인터럽트 어설션을 활성화한다. 0b - 인터럽트 비활성화 1b - 인터럽트 활성화 |
▶ CHNL_STS 레지스터: 14h 오프셋
Table 36. CHNL_STS register
Field | Description |
---|---|
31 MEM_RD_DONE |
메모리 읽기 완료 인터럽트 플래그 채널이 입력 메모리 위치(IN_BUF_ADDR)에서 전체 이미지를 읽었으며 소프트웨어가 다음 이미지를 메모리에서 읽을 수 있도록 시스템을 구성해야 함을 나타낸다. 0b - 메모리에서 이미지 읽기가 완료되지 않았거나 시작되지 않았음. 1b - 메모리에서 이미지 읽기 완료됨. |
30 LINE_STRD |
라인 수신과 저장 인터럽트 플래그 라인이 수신되어 메모리에 저장되었음을 나타낸다. 이 인터럽트 플래그는 수신되어 메모리에 저장된 모든 라인에 대해 어설션된다. 0b - 새로운 라인이 수신되지 않음 1b - 새로운 라인이 수신되어 메모리에 저장됨 |
29 FRM_STRD |
성공적으로 저장된 프레임 인터럽트 플래그 프레임이 수신되어 메모리에 저장되었음을 나타낸다. 이 인터럽트 플래그는 수신되어 메모리에 저장된 모든 프레임에 대해 어설션된다. 0b - 수신 중이거나 진행 중인 프레임이 없음 1b - 하나의 전체 프레임이 수신되어 메모리에 저장됨 |
22 OFLW_V_BUF |
V 출력 버퍼의 오버플로 인터럽트 플래그 AXI를 통하여 내부 버퍼를 읽지 못해 출력 버퍼 컨트롤 단계에서 새로운 유효한 픽셀을 받아들이지 못하고 출력 버퍼가 가득 차서 오버플로가 발생했음을 나타낸다. 오버플로 이벤트 중에 손실된 바이트 수 또한 상태 레지스터에 보고된다. 0b - 오버플로 아님 1b - 채널에서 오버플로가 발생 |
20 OFLW_U_BUF |
U 출력 버퍼의 오버플로 인터럽트 플래그 AXI를 통하여 내부 버퍼를 읽지 못해 출력 버퍼 컨트롤 단계에서 새로운 유효한 픽셀을 받아들이지 못하고 출력 버퍼가 가득 차서 오버플로가 발생했음을 나타낸다. 오버플로 이벤트 중에 손실된 바이트 수 또한 상태 레지스터에 보고된다. 0b - 오버플로 아님 1b - 채널에서 오버플로가 발생 |
18 OFLW_Y_BUF |
Y 출력 버퍼의 오버플로 인터럽트 플래그 AXI를 통하여 내부 버퍼를 읽지 못해 출력 버퍼 컨트롤 단계에서 새로운 유효한 픽셀을 받아들이지 못하고 출력 버퍼가 가득 차서 오버플로가 발생했음을 나타낸다. 오버플로 이벤트 중에 손실된 바이트 수 또한 상태 레지스터에 보고된다. 0b - 오버플로 아님 1b - 채널에서 오버플로가 발생 |
17 EARLY_VSYNC_ERR |
VSYNC 타이밍(이른) 오류 인터럽트 플래그 프레임의 VSYNC가 예상보다 일찍 감지되었음을 나타낸다. 결과 프레임에는 손상된 데이터가 있다. 0b - 오류 없음 1b - VSYNC가 예상보다 일찍 감지됨 |
16 LATE_VSYNC_ERR |
VSYNC 타이밍(늦은) 오류 인터럽트 플래그 프레임의 VSYNC가 예상보다 늦게 감지되었음을 나타낸다. 결과 프레임에는 손상된 데이터가 있다. 0b - 오류 없음 1b - YSYNC가 예상보다 늦게 감지됨 |
9 BUF2_ACTIVE |
Buffer 2 Address에 저장되는 현재 프레임 Buffer 2 Address가 현재 프레임을 저장하는 데 사용되고 있음을 나타내는 읽기 전용 비트이다. 0b - Buffer 2 Address 비활성 1b - Buffer 2 Address 사용중 |
8 BUF1_ACTIVE |
Buffer 1 Address에 저장되는 현재 프레임 Buffer 1 Address가 현재 프레임을 저장하는 데 사용되고 있음을 나타내는 읽기 전용 비트이다. 0b - Buffer 1 Address 비활성 1b - Buffer 1 Address 사용중 |
'NXP i.MX SoC Family > i.MX 8M Series MIPI Capture System' 카테고리의 다른 글
i.MX 8M Series MIPI Capture System(AN13857) - Porting new camera (0) | 2023.04.11 |
---|---|
i.MX 8M Series MIPI Capture System(AN13857) - MIPI capture capabilities (0) | 2023.04.10 |
i.MX 8M Series MIPI Capture System(AN13857) - MIPI CSI-2 Rx subsystem (0) | 2023.04.03 |
i.MX 8M Series MIPI Capture System(AN13857) - Overview (0) | 2023.04.03 |
i.MX 8M Series MIPI Capture System(AN13857) - Introduction (0) | 2023.04.03 |