Hello. I started a personal project where i design a device that includes these 2 functions:
- Read/sniff the EDID data of a Displayport downsteam device (i.e. a PC monitor)
- Emulate the EDID data to the upstream device (i.e. a GPU)
I plan on using an Arduino Micro for several reasons:
- Cheap, readily available and easy to program
- Built-in USB so a PC can be used to read/write data to without any extra components
- Has ADC0/ADC1 pins exposed unlike Pro Micro explained below
From what i understand so far EDID data on Displayport are transmitted via the AUX Differential Pair of which has 2 available modes for operation (page 329):
- 1Mbps Manchester-II code
- 720Mbps FAUX 8B10B encoding
For snooping, i just hook the AUX pair from the Monitor to the Arduino using the dedicated differential pair input available on: ADC0/ADC1 negative, ADC4..13 positive (that's why i need ADC0/1 exposed, page 298).
My question is if the ATmega32U4 is suitable in terms of processing speed in order to sample and decode the signal, and if it is able to generate/output a 1Mbps Manchester-II code differential signal.
Otherwise i'll probably use a Teensy3.2/LC or a Blackpill
Kind regards
Datasheets:
Displayport v1.2 standard:
ATmega32U4:
Arduino Micro: