8.9. FAQ - CSI2RX¶
8.9.1. What is CSI2?¶
The CSI2:
specification defines standard data transmission and control interfaces between transmitter and receiver.
is unidirectional differential serial interface with data and clock signals; the physical layer of this interface is the MIPI Alliance Specification for D-PHY.
also talks about ‘The Control Interface (CCI)’, and is a bi-directional control interface compatible with I2C standards.
8.9.2. How is Lane Speed Band selected?¶
The formula is:
Required Bandwidth = (((Image Resolution) x bpp x fps x no. channels) x 1.2)
Lane Speed = ((Required Bandwidth) / no. of lanes)
bpp: bits per pixel
fps: frames per second
Select Lane Speed Band as following conditions:
where (Lane Speed >= lower limit of the Lane Speed Band) and (Lane Speed < upper limit of the Lane Speed Band)
Note
Required Bandwidth have multiplication factor of ‘1.2 (corresponding to 20%)’, this is done to absorb protocol and other overheads in the system
8.9.3. Things to consider/check before sending a frame over CSI2RX bus¶
Make sure following is done/checked before attempting communication on bus:
All the lanes are identical in the length (to be considered during EVM/Board design)
Number of lanes, lane ordering, lane polarity, and lane speed configurations are matching at both ends i.e. transmitter and receiver side
Receiver is configured and started before configuring and starting streaming from transmitter
Configuration/Enable sequence:
CSI2RX Module (receiver)
Deserialzer (if any) (transmitter)
Serializer (if any)
Sensor/s OR Camera/s modules (transmitter)
check if following connections are firm and proper:
CSI2RX to Deserialzer (if any) OR Sensor (e.g. EVM to Fusion board/Sensor)
Deserialzer to Serializer (if any) (e.g. Fusion board to Camera module through FPD cable)
Channel configurations like frame dimensions (Height and Width), data-type (DT) and virtual channel (VC) are matching for transmitter and receiver
Timing parameters configured at transmitter side meets the MIPI standards
check this if all the above parameters are checked and are properly configured
this needs to be measured on CSI protocol analyzer
8.9.4. CSI2RX communication failed, where to start debug?¶
- Check following before debugging for errors:
There 3 sets of status bit given for each lane in CSI_RX_IF_VBUS2APB_DPHY_STATUS register
For data reception check if this is toggling between ‘0x2’ and ‘0x3’ for each active data-lane and clock-lane
check if Stream and Protocol FSM are in proper states:
this can be done through CSI_RX_IF_VBUS2APB_STREAM0_STATUS.bit0-1 and CSI_RX_IF_VBUS2APB_STREAM0_STATUS.bit4-7
Following section talks about various errors/conditions occurred during communication failure.
8.9.4.1. Errors detected during reception:¶
Front FIFO Overflow
Detected at: CSI2RX Core
Level: Module Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit0
Description: Overflow detected in resynchronization FIFO between DPHY Lane Management and Protocol blocks
This will occur if sys_clk is not fast enough and should be increased since the byte clock frequency is fixed
Payload CRC Error
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit4
Description: CRC Error has been detected while receiving payload data.
Asserted when the computed CRC code is different than the received CRC code.
This could happen due to interference OR mismatch configurations at Tx and Rx sides.
Header ECC Error
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit5
Description: Unrecoverable ECC error has been detected during short packet reception.
Asserted when an ECC signature was computed and the result is zero indicating a Packet Header that is considered to be without errors or has more than two bit-errors. CSI-2’s ECC mechanism cannot detect this type of error OR when an ECC signature was computed and two bit-errors are detected in the received Packet Header.
This could happen due to interference OR mismatch configurations at Tx and Rx sides.
Header Corrected ECC Error
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit6
Description: Recoverable ECC error has been detected during short packet reception.
Asserted when an ECC signature was computed and a single bit-error in the Packet Header was detected and corrected
This could happen due to interference OR mismatch configurations at Tx and Rx sides.
Data ID Error
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit7
Description: Data ID error has been detected in the header packet.
Asserted when a Packet Header is decoded with an unrecognized or unimplemented data ID.
This is caused by the presence of an unimplemented or unrecognized ID in the header.
Invalid Access
Detected at: CSI2RX Core
Level: Module Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit8
Description: Invalid access to the configuration register space.
This could be caused by accessing reserved addresses within CSI2RX module registers.
Invalid Short Packet
Detected at: CSI2RX Core
Level: Protocol Decoding Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit9
Description: A reserved or invalid short packet has been received
No Payload Long Packet
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit10
Description: No long packet has been received after receiving short packets for the payload start/stop.
Check the Transmitter configurations. Use the protocol analyzer to make sure that transmitter is sending data in correspondence with CSI2 protocol.
Truncated Long Packet
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit11
Description: Too many/too few bytes has been received during payload reception.
Check the Transmitter configurations. Use the protocol analyzer to make sure that transmitter is sending data in correspondence with CSI2 protocol.
This can caused by improper physical connections. Make sure that connections are proper and firm & free from any kind of interference.
Truncated Header
Detected at: CSI2RX Core
Level: Packet Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit12
Description: A truncated (short OR long) header has been received.
Check the Transmitter configurations. Use the protocol analyzer to make sure that transmitter is sending data in correspondence with CSI2 protocol.
This can caused by improper physical connections. Make sure that connections are proper and firm & free from any kind of interference.
Stream FIFO Overflow
Detected at: CSI2RX Core
Level: Stream Level Error
Register: CSI_RX_IF_VBUS2APB_ERROR_IRQS.bit16-19
Description: Stream FIFO overflow has been detected.
There is dedicated bit for each stream.
Start of Transmission Error (Error SoT)
Detected at: CSI2RX Core
Level: DPHY Level Error
Register: CSI_RX_IF_VBUS2APB_DPHY_ERR_STATUS_IRQ.bit8/12/16/20
Description: Start of Transmission Error is detected on the respective data lane.
There is dedicated bit for each data lane.
There are two types of the errors for this category:
the high-speed SoT leader sequence is corrupted, but in such a way that proper synchronization can still be achieved, this error signal is asserted for one cycle of RxByteClkHS. This is considered to be a soft error in the leader sequence and confidence in the payload data is reduced.
the high-speed SoT leader sequence is corrupted in a way that proper synchronization cannot be expected, this error signal is asserted for one cycle of RxByteClkHS.
Check for the signal integrity and signals are getting properly transmitted w/o any issues/interference.
Check if timings are properly configured at transmitter and are adhering to CSI2 standards. These timings can be measured with the help of CSI2 protocol analyzer.