From 587543290e322268b85023d993bc76e904aeb919 Mon Sep 17 00:00:00 2001 From: Wolfgang Draxinger Date: Sun, 28 Dec 2014 12:23:20 +0100 Subject: [PATCH] EDID readout only if PC2 pulled low --- eagle.epf | 37 +++++++++++++++++-------------------- edid_injector.c | 15 +++++++++++---- firmware.bin | Bin 3138 -> 3162 bytes vga_edid_injector.brd | Bin 30793 -> 30793 bytes vga_edid_injector.sch | Bin 185298 -> 185298 bytes 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/eagle.epf b/eagle.epf index a58abf8..6d8d17c 100644 --- a/eagle.epf +++ b/eagle.epf @@ -1,5 +1,5 @@ [Eagle] -Version="05 11 00" +Version="04 16 20" Platform="Linux" Serial="62191E841E-LSR-WLM-1EL" Globals="Globals" @@ -7,18 +7,23 @@ Desktop="Desktop" [Globals] AutoSaveProject=1 -UsedLibrary="/opt/eagle-5.11.0/lbr/diode.lbr" -UsedLibrary="edid_IC.lbr" UsedLibrary="/home/wolfgangd/downloads/WW-Power.lbr" +UsedLibrary="/home/wolfgangd/projects/eagle/lbr/plane_decouple.lbr" [Win_1] -Type="Schematic Editor" -Loc="720 301 1437 597" +Type="Control Panel" +Loc="828 459 1437 897" State=2 -Number=1 -File="vga_edid_injector.sch" -View="-213330 1357602 522494 1669842" -WireWidths=" 0 3048 6096 8128 10160 12700 14224 16764 17780 19304 21844 25400 38100 64516 4064 1524" +Number=0 + +[Win_2] +Type="Board Editor" +Loc="0 19 825 897" +State=2 +Number=2 +File="untitled.brd" +View="184910 245240 444962 482260" +WireWidths=" 0 2540 3048 6096 8128 10160 12700 14224 16764 17780 19304 21844 25400 38100 64516 4064" PadDiameters=" 2540 3048 4064 6096 8128 10160 12700 14224 16764 17780 19304 21844 25400 38100 64516 0" PadDrills=" 5000 6000 7000 9000 10000 11000 12000 13000 14000 15000 16000 20000 22000 28000 32000 8000" ViaDiameters=" 2540 3048 4064 6096 8128 10160 12700 14224 16764 17780 19304 21844 25400 38100 64516 0" @@ -30,13 +35,13 @@ PolygonIsolates=" 2540 3048 4064 6096 8128 10160 12700 14224 16764 17780 19304 2 MiterRadiuss=" 2540 3175 6350 12700 25400 10000 20000 25000 50000 75000 100000 0" SmdSizes=" 3048 1524 4064 2032 6096 3048 8128 4064 10160 5080 12700 6604 14224 7112 16764 8128 17780 9144 19304 9652 21844 10668 25400 12700 38100 19304 50800 25400 64516 32512 12700 6350" WireBend=0 -WireBendSet=31 +WireBendSet=0 WireCap=1 MiterStyle=0 PadShape=0 ViaShape=0 PolygonPour=0 -PolygonRank=7 +PolygonRank=1 PolygonThermals=1 PolygonOrphans=0 TextRatio=8 @@ -48,15 +53,7 @@ SwapLevel=0 ArcDirection=0 AddLevel=2 PadsSameType=0 -Layer=91 -Views=" 1: -213330 1357602 522494 1669842" -Sheet=1 - -[Win_2] -Type="Control Panel" -Loc="720 600 1437 897" -State=2 -Number=0 +Layer=1 [Desktop] Screen="1440 900" diff --git a/edid_injector.c b/edid_injector.c index fd81a1d..454c42e 100644 --- a/edid_injector.c +++ b/edid_injector.c @@ -289,8 +289,12 @@ int main(void) PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; - sei(); + + PORTC_PIN2CTRL = PORT_OPC_WIREDANDPULL_gc; + PORTC_DIRCLR = _BV(2); + PORTC_OUTSET = _BV(2); + sei(); delay_ms(20); /* EDID standard requires a host to wait for 20ms after switching +5V @@ -298,9 +302,12 @@ int main(void) * Since uC supply == display +5V supply we're waiting 20ms here. */ for(;;) { - if( 0 == edid_readFromDisplay() ) { - edid_writeToEEPROM(); - edid_readFromEEPROM(); + /* Only read a new EDID setting if PC2 is pulled low */ + if( !(PORTC_IN & _BV(2)) ) { + if( 0 == edid_readFromDisplay() ) { + edid_writeToEEPROM(); + edid_readFromEEPROM(); + } } delay_ms(1000); } diff --git a/firmware.bin b/firmware.bin index 4e4734f9583582c51c782242d6ddfe093b09290c..ea24eced0e1178a3a6a2cd930a47b97d6e45fea1 100755 GIT binary patch delta 75 zcmV-R0JQ(Y7}^-HiU9)V<&%s7BmpV2u>sEs0UVQo3vnih(vz>*9e0qT<<3?rP)9;g5S delta 52 zcmV-40L%Z{7{VB^iU9)du>sEs0T7dc3vmv3l#k$-;sKZO_W-~E0FxLD K9s%x?Hw+^$Clne0 diff --git a/vga_edid_injector.brd b/vga_edid_injector.brd index 5231f4f1b19a8e3688f8c811964cc5cca64af07a..f942c291a3ec76e449383886dd11f3b72fbd9ed4 100644 GIT binary patch delta 631 zcmX^4f$`)AMil{uFotC;3=FK?EH*5^|43=^XqWttFEkQls8E=>K+1jPSpn{eDt3wd zi~@{6We^aOUjShUGsp`tGBU!%o$^ac@^gVaVFrFdK}IH+ctB!GF_;Y$7ZO5=5=mG^dXK{RFW3d9VCdc#Vv$%nTF7cOe zvgCkRUXnhHEHxn3EU6Sm&S^kaeJ_a1F5}L~xdX&q3*v^$_As-Y0Fp3lqy>5Gyuh z4I|5WkR)%|6_(pzRbfk5o`V>@;dg+BWJSaS$x{*PET2IdzD59p?LSD`HL8S#_Xd!$ z7s!wXF-)UNSTsS5wLpeBh@l$O!{P{HY>ipM;tgbMj*Xqe$`T4<{Y_HgV2KB-%D%#q a3u64u-osK2lG~fZ!pPDIVjazG;Q|1zvCuF8 delta 631 zcmX^4f$`)AMiqgEFotC;3=FK?EH*3|f26FH_Qt6<`{@fZR4B|`AmzUDtN_XPWdGz`ME%zFaxuoAR`k@JRmWp7|aHW3ke~_!!i@$ z;u{aAva%E$i{x6Y!^Xs(`EULI$2>D98*>=5)B*)JXK{RFW9b62Cdc#VvrGdCUE(j{ zWZ45^c}e;(vYY|2W=W+may|pH>hFTM>@x0*oE*o2+`k}hxNHwIixiN%`MJV!MowLj zgbIi|UCEz`GXum;0CC@|lrYOw0a*-&4UDo47K{up@|YRUNhkn4QQrX+pIoouA~P4N zfDui>YLF54HCPyB4uDiRHZV#TTeC78wqs)0r35zOGDyXLO(|ZMry!QBxj7??hHMnq zip8Pam4-5MVp#0Ln zEle!JAXaS18b%g*AZs#j*cBFS5aVgs5*Bk1qc{8x(2%T%cp!NyLY>7Kq~U7>FxdP- z(ymb@EU_TQULYeI#4wF6VW|W$)&d#rAcks856eUlV{6P3mf1kY=GfRdtSn1GtiMSr j94za>s;*CYX76D+4U*fN!@|gN6T~{2+rk9^_m0VV diff --git a/vga_edid_injector.sch b/vga_edid_injector.sch index ee42e439b1dbcb9d3d2e8fe51c2ddc55d9109c37..bd61a0cc282d4f9d4aececf2f642344379372357 100644 GIT binary patch delta 7693 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 delta 7693 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