Maxim's gigabit multimedia serial link (GMSL) solution serializes digital video and audio data across a single twisted-pair cable. In addition, an integrated bidirectional control channel enables a single microcontroller (µC) to program the serializer, deserializer, and all connected peripherals. For typical applications, this eliminates the remote-side microcontroller and its support components, such as a clock source/crystal and a low-voltage power supply. This not only simplifies the design of the remote device, but also reduces the cost, size, and power consumption as well. There are times, however, when a µC already resides on both sides of the link, due to other design requirements not related to the GMSL. This application note describes how to connect two µCs to control the GMSL.
Basic Dual µC Use
Usually when using a single µC, both the control-direction selection (CDS) pins on the serializer/deserializer are set low for a serializer-side µC, or high for a deserializer-side µC. However, if CDS on the serializer is set low and CDS on the deserializer is high, each GMSL chip can connect to their respective µCs simultaneously (Figure 1).
When using two µCs, both the serializer's and deserializer's I²C masters are disabled, and RX/SDA and TX/SDL are configured as a UART interface with their corresponding µCs. Since each device is operating as a local side device, they cannot enter sleep mode. Use the respective active-low PWDN pins to put each device into a low-power state. Keep in mind that all of the device settings reset to their power-on value when returning from the power-down state.
Dual µC Contention Issues
In the configuration shown in Figure 1 above, each µC can communicate with the MAX9259 serializer, MAX9260 deserializer, or the other µC using the GMSL UART protocol. The GMSL does not provide a solution for contention avoidance, and the user will need to provide his/her own contention-handling scheme.
Software Contention Handling
Single/Dual µC Use
Certain applications do not require use of both µCs at all times. During operation, if one of the CDS inputs on either side changes state, that device resumes operation in the corresponding state described in the Link Startup Procedure section of the MAX9259 data sheet. Switching between single µC and dual µC operation enables the GMSL to use fewer resources when needed. The unused µC can be shut down to reduce power consumption and extend battery life.
Remote Display Example (Deserializer)
In the following application, the deserializer side of the link is a display panel that is configured for remote power-on/off. The board's shutdown inputs and the single/dual µC control are all connected to the output of the MAX9260 GPIO0 (Figure 6). Upon power-up, the GPIO output is high, which keeps the remote-side devices shut and the deserializer configured as a remote-side device due to the added inverter. Since MS is connected to GPIO, The MAX9260 powers up in sleep mode, leaving all of the devices in a low-power state.
To start the remote panel, the serializer wakes up the MAX9260 and establishes the serial link. The serializer-side µC then sets GPIO0 low to make MS low and the inverter output high. The inverter sets the MAX9260 as a local-side device and wakes up the rest of the remote display panel. MS must be set low to keep the MAX9260 UART interface in base mode.
To shut down the remote panel, the serializer sets GPIO0 high to shut down the remote-side devices and set the MAX9260 as a remote device. Then, set SLEEP = 1 in the MAX9260 to put the device to sleep.
Remote Camera Example (Serializer)
Similar to the previous example, the serializer side of the link is a camera module that is configured for remote power-on/off. The MAX9259's INT output controls the board's shutdown inputs and the single/dual µC switch (Figure 7). For this application, INT functions as a GPO, with the output set by either SETINT (D7 of 0x0D in the MAX9259) or the deserializer's INT input. Upon power-up, The INT output is low, which keeps the remote-side devices shut down. The inverter output, connected to CDS, configures the serializer as a remote-side device. Since active-low AUTOS is set high, the MAX9259 powers up in sleep mode.
To start the remote panel, the deserializer wakes up the MAX9259 using GMSL UART commands. The deserializer then sets the MAX9259's INT output high to power-up all remote devices. The inverter output sets the MAX9259 as a local-side device and can now accept UART commands from the local µC.
To shut down the remote panel, the deserializer sets the MAX9259 INT output low to shut down the remote-side devices and set the MAX9259 as a remote device. The deserializer then sets SLEEP = 1 in the MAX9259 to put the device to sleep.
Dual µC use is not limited to the applications shown above. The symmetric and bidirectional control channel, along with on-the-fly CDS and bypass settings (though MS), enable a multitude of serializer/deserializer and µC configurations. The designer is now afforded a higher degree of control to increase the capabilities of their system, minimize power consumption, and maximize the use of available resources.