The ISS GLBCE module requires ~5400 clock pulses after startup before it could receive data from its video port. Therefore, before the the CAL -> GLBCE -> CAL data path could be used after a GLBCE reset, SW shall use the following sequence to provide those required clock pulses:
- Configure the ISS Video Mux to not send the CAL BYS output data stream to GLBCE and to not send the GLBCE output data stream to CAL BYS input port. See Section 9.1.2.3, ISS Video Mux, for more details.
- Set CAL_BYS_CTRL2[11] FREERUNNING register bit. Refer to Section 9.2, ISS Camera Adapter Layer (CAL), for CAL register information.
- Configure CAL Read DMA to read a dummy frame of 8 pixels x 1 line and write it out to BYS output port. This dummy frame is needed to start generation of the free running PCLK as BYS registers are shadowed. Therefore, changes are only taken into account at frame start (that is, the start of the dummy frame in this case).
- Wait for the IRQ_BYSOUT_EOF interrupt event at CAL module level. CAL continues to generate a free-running PCLK at this point.
- Configure the ISS Video Mux to enable the following data path: CAL BYS output port -> GLBCE input -> GLBCE output -> CAL BYS input port. Therefore, GLBCE receives the free-running PCLK, but not the HS/HE/VS/VE of the dummy frame.
- Wait for the GLBCE_FILTERING_DONE event. It indicates that GLBCE has received enough PCLK pulses for internal initialization and that it is now ready to receive pixels.
- Configure GLBCE and CAL for the actual frame processing.