Wow, excellent question !
I was involved in a project that used GMSL (first generation to GMSL2).
Since I did not use FPD-Link, I cannot really offer the feedback you are looking for.
Are you going to be building all the components in your system ?
If yes, then I believe that any choice will be the good choice.
If you plan on buying existing camera modules, then consider where to source those ?
XYLON (logicbricks) have both FPD-Link III and GMSL2 versions of camera modules and processing boards.
Take a chance on asking them which technology they would recommend ...
Thank you for your reply.
Yes, I plan to build both the serializer as well as deserializer side of things in our system, and some interconnects for routing uncompressed feeds between subsystems. Also, ideally, I would also like to have the option to be able to ocassionally plug-in an off-the-shelf GMSL2/FPD-LinkIII camera if user requests. But you're probably right that in this case any choice will be fine. I am just worried of running into one of the "devil-in-the-details" gotcha later . Sometimes one missing feature can force a redesign down the line. I tried to search for some articles comparing the two but didn't find much.
On the other side, the more I look into the available ICs from either ecosystem, the more I am running into the stock availability (or lack-of) nightmare that seems to prevalent these days, caused by Covid. Overall, I feel the TI FPD-LinkIII have more shortage compared to the GMSL2 chips. That on one side hints that FPD-Link may be the more popular choice (?) but on the other side, if i cannot find the ICs in stock, then there is no point in designing with FPD-Link anyway. I don't expect this situation to change for 1-1.5 years.
Your idea of talking to companies with both types of products is a good one. I will try getting in touch with them.
Btw, I have seen AVNET's ultrascale ADAS system with 4 GMSL2 cameras. I understand you haven't worked with FPD-Link, but would you know why they chose GMSL2 for the AVNET design?
One again, thank you for your reply.
p.s I really like your detailed how-to articles on Hackster. Thanks a lot for sharing those!
1 of 1 people found this helpful
Found some very excellent videos from Maxim on GMSL. Sharing here for the benefit of anyone else working with the same:
1. What is a SerDes and why do I need one? https://www.youtube.com/watch?v=608TPRam3G8
2. SerDes part 2: The Signaling Quagmire https://www.youtube.com/watch?v=VltCwr9CbYw
3. SerDes part 3: All about line coding https://www.youtube.com/watch?v=krCEYzwFZ3s
4. SerDes Part 4: Get the picture? https://www.youtube.com/watch?v=wRf-TtNJKw0
5. SerDes part 5: Control freak! https://www.youtube.com/watch?v=-IvPnAWjDOw
6. SerDes part 6: Sounds good! https://www.youtube.com/watch?v=K_tpcEX4tuM
7. SerDes part 7: Pixels and the Serial Stream https://www.youtube.com/watch?v=Rz_Kyl3qA7s
8. SerDes part 8: Start Me Up https://www.youtube.com/watch?v=T2kR2vHp9L4
9. SerDes Part 9: Interfaces https://www.youtube.com/watch?v=vaSpYeIKsHU
Texas Instruments also has many training vidoes on FPD-Link at the following link:
I am beginning work on a project that requires putting some distance between the cameras and the FPGA. I need to transfer real-time imagery at resolution of at-least 720p, and preferably 1080p (or in comparable 4:3 formats) on as few conductors as possible, for better reliability and lower cost. I have been looking at various protocols to achieve this, and two that I come across frequently are TI's FPD Link-III and Maxim's GMLS2. I have tried to read-up on both of them and both look very similar. Only difference I see so far is that GMSL2 allows configuring the low-speed communication channel to UART, in addition to I2C, SPI etc (FPD-Link-III only offers the latter). Other than that, I couldn't find much material in helping choose one over the other.
Since I need to choose one of the two, I wanted to ask around for suggestions/advice on how to go about choosing one over the other. Unlike the more standardized protocols (ethernet, hdmi, sdi, etc) choosing one will mean committing all the involved devices to ICs from one manufacturer since there is no inter-operability as far as I can see.
Thank you in advance for your advice, suggestions and and experience sharing!
p.s I also looked at SDI (which is more standardized) with much interest, but it seems that it requires use of FPGAs with transceivers built-in, and with -2 or higher speed grades in case of Xilinx FPGAs that i mostly use. This will drive up the solution cost.