Maxim's gigabit multimedia serial link (GMSL) solution serializes digital video and audio data and transmits it serially over a twisted pair of wires. In addition, an integrated bidirectional control channel enables a single microprocessor (µC) to program the serializer, deserializer, and all connected peripherals.
In typical applications, the remote microprocessor and related components, such as clock source/crystal and low-voltage power supply, can be omitted. This solution not only simplifies the remote design, but also reduces system cost, size and power consumption.
However, in some cases, a µC is still present at both ends of the link due to special requirements beyond GMSL. This application note describes how to connect two µCs to control GMSL.
Dual µC Application Basics
When using a single µC, the control direction select pin (CDS) on both ends of the serializer/deserializer is usually set low if the µC is on the serializer side, and high if the µC is on the deserializer side. However, if the serializer CDS is set low and the deserializer CDS is set high, each GMSL chip can be connected to its own corresponding µC at the same time (Figure 1).
Figure 1. Simple dual-µC application schematic with CDS setup shown.
Internal Operations
When using two µCs, the I²C master for both the serializer and deserializer is disabled, and the RX/SDA and TX/SDL are configured as UART interfaces by their respective µCs. Since each device operates as a local device, it cannot go into sleep mode.
Figure 2. Serializer state diagram (CDS = low)
Figure 3. Deserializer state diagram (CDS = high)
Each device is driven into a low-power state using the corresponding active-low PWDN pin. Remember that all device settings are reset to their power-on initial values when waking up from a power-down state.
Conflicts in Dual µC Applications
In the configuration shown in Figure 1, each µC can communicate with the MAX9259 serializer, MAX9260 deserializer, or other µCs using the GMSL UART protocol. GMSL does not provide collision avoidance measures, so the user must provide their own collision handling measures.
Independent Networking
The simplest way to avoid collisions is to have each µC set the FWDCCEN and REVCCEN bits of its attached serializer/deserializer to 0 (0x04 D[1:0]). This approach disables the receiver and transmitter of the forward and reverse control channels and effectively splits the control network into two independent networks (Figure 4).
Figure 4. Independent control networks avoid the possibility of conflicts.
Any communication over the serial link first requires the µC on each side to re-enable communications on the respective end of the link. This setup works well in “always-on” applications where the settings of the critical link-specific registers are not changed from their initial state.
Software conflict resolution
In applications where communication between the two ends of a serial link is necessary, users can avoid conflicts by using higher-level protocols (Figure 5). In the following example, each µC waits for an ACK frame to determine if its command was successful.
Figure 5. Example of software handling conflicts
When a collision occurs, the serializer/deserializer does not send out an ACK frame. After failing to receive an ACK frame, the µC waits for a period of time based on their device address before resending the command. Since the microprocessors in this design have different device addresses, there will be no collision when retrying communication.
Single/Dual µC Applications
Some applications do not require both µCs to remain operational at all times. If the CDS input on either end changes state during operation, the corresponding device resumes operation following the link startup procedure described in the MAX9259 data sheet.
Switching between single and dual µC operation as needed, enabling GMSL in turn will take up fewer resources. Unused µCs can be shut down to reduce power consumption, helping to extend battery life.
Remote display example (deserializer)
In the following application, the deserializer side of the link is a display panel configured for remote power on/off. The board shutdown input and single/dual µC control are connected to the output of MAX9260 GPIO0 (Figure 6).
Figure 6. Single/dual µC remote display example
Once powered up, the GPIO outputs high to keep the remote device off, and the deserializer is configured as a remote device due to the additional inverter. Since the MS is connected to the GPIO, the MAX9260 is powered up in sleep mode, and all other devices are in low-power states.
To turn on the remote panel, the serializer wakes up the MAX9260 and establishes the serial link. The µC on the serializer side then sets GPIO0 low, which drives MS low and the inverter output high. The inverter sets the MAX9260 as a local device and wakes up the rest of the remote display panel circuitry. MS must be driven low to maintain the basic mode of the MAX9260 UART interface.
To shut down the remote panel, the serializer sets GPIO0 high to shut down the remote device and sets the MAX9260 as the remote device. Then, it sets SLEEP = 1 in the MAX9260 to put the device into sleep mode.
Remote Camera Example (Serializer)
Similar to the previous example, the serializer side of the link is a camera module configured for remote power on/off. The MAX9259's INT output controls the board's shutdown input and single/dual µC switching (Figure 7).
Figure 7. Single/dual µC remote camera example
In this application, INT is used as a GPO, and the output is controlled by setting SETINT (0x0D D7 of the MAX9259) or the INT input of the deserializer. Upon power-up, the INT output is low, keeping the remote device powered off. The inverter output is connected to CDS, configuring the serializer as a remote device. The MAX9259 powers up in sleep mode because the active-low AUTOS is set high.
To power up the remote panel, the deserializer wakes up the MAX9259 with a GMSL UART command. The deserializer then sets the MAX9259's INT output high, powering up all remote devices. The inverter output sets the MAX9259 as a local device, ready to receive UART commands from the local µC.
To power down the remote panel, the deserializer sets the MAX9259's INT output low, which powers down the remote device and sets the MAX9259 as the remote device. The deserializer then sets SLEEP = 1 in the MAX9259, which puts the device into sleep mode.
Other applications
Dual µC applications are not limited to the examples above. Symmetrical, bidirectional control panels, along with real-time CDS and bypass settings (via MS) can enable numerous SerDes and µC configurations. Designers need greater control to increase system capabilities and minimize system power consumption, maximizing the use of existing resources.
Previous article:Design of touch screen for battery management system based on STM32
Next article:Application of Ansoft software in hybrid and electric vehicles
- Popular Resources
- Popular amplifiers
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- Rambus Launches Industry's First HBM 4 Controller IP: What Are the Technical Details Behind It?
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- 【TGF4042 Signal Generator】+ Bandwidth Test
- [ATmega4809 Curiosity Nano Review] Using the printf function
- [Raspberry Pi Pico Review] ADC Acquisition
- Help, find a foreign literature
- Review Weekly 20220913: Infineon's revolutionary photoacoustic spectroscopy (PAS) CO2 sensor, free application~
- Micro ESP8266 Temperature and Humidity Sensor
- [Shanghai Hangxin ACM32F070 development board review] 6. Transplant the RTX operating system
- After you buy a new mobile phone, what do you usually do with the old one?
- I'm begging for the full datasheet of the Marvell 88e6171/6175 switch chip
- [Vote] Is it harder to read code or write code? Let’s talk about it