<html><body>Tak pokračování: Po připojení driveru na CLK a zkratování sériového odporu (který je ve skoro každém doporučeném zapojení MDIO) začala být možná komunikace s adresami 4, 6/7, 31, pokud je na CLK sonda osciloskopu. Bez ní funguje po doplnění paralelního C 10 pF. <br><br>Tím přišla na řadu fyzická vrstva Vitese VSC8538, která by měla být na více adresách najednou, ale zjevně nekomunikuje. Má všechna napájení, po zapnutí+resetu rozsvítí LEDky a pak zhasne. Dál nic.<br><p><br></p><p>Při podrobném zkoumání na osciloskopu jsem zjistil zajímavou věc: Když je na datech 1, někdy to vypadá, jako by se na ně kapacitně přenášelo CLK. Ten bordel má rozkmit cca 0,3 V, což by asi nemělo vadit. Ale zaujalo mě to "někdy": Prostě chvíli lezou normální data, pak začnou mít bordel z CLK a pak zas bordel zmizí. Někdy se objeví jen na jednu periodu hodin, jindy zůstává mnoho desítek taktů.</p><p><br></p><p>Začal jsem podrobněji pátrat po tom, jak by průběhy na MDIO měly vypadat a narazil jsem na zmatek:</p><p>- Podle Wikipedie, nebo např. tohoto appnotu NXP<br></p><p>http://www.nxp.com/documents/application_note/AN10859.pdf</p><p>se data mění někdy uprostřed času, kdy je CLK na 0.</p><p>- Podle Realtecu, nebo Cypressu</p><p>http://www.cypress.com/?docID=45851 fig. 7</p><p>se data mění při vzestupné hraně hodin.</p><p><br></p><p>Na osciloskopu vidím druhou variantu. V nastavení MDIO u ARMu jsem nenašel nic, čím by se fáze dala měnit.</p><p>- Je možné, že jsou prostě dvě varianty, vzájemně nekompatibilní? Nějak se mi to nezdá...</p><p>- Switchové IO mají obvykle dvoje MDIO: CPU a PHY Je možné, že by jedna varianta byla pro CPU a druhá pro PHY?<br></p><p><br></p><p>PH<br></p><p><br></p><p>Od: Pavel Hudeček <edizon@seznam.cz><br></p><blockquote><div><p>máme propojovací desku se sloty. V prvním je ARM+MAX24288+88E6152. Z ARMu jde MDIO na MAX (adr. 4), na 6152 (adr 31) a do propojovací desky. Z ARMu jde taky RGMII do MAXe a z něj SGMII do 6152. Funguje to, ale divně:</p><p>- Všechno na MDIO komunikuje, ale nedaří ze získat link na Eth.</p><p><br></p><p>88E6152 má 2 nohy na nastavení, zda se má inicializovat z EEPROM, nebo jak jinak. My máme 00, tedy nastavení z CPU. Při čtení z MDIO vše OK, ale:</p><p>- hodnotu zmíněných 2 nohou přečte 11.</p><p>- podle identifikace to není 6152, ale 6185 (na něm je napsáno 6152 a byl zaslán jako vzorek z Marwellu).</p><p>- podle port statusu má asi 10 portů, což souhlasí s 6185 (52 by měl 6).</p><p>- 85 má o dva global registry víc. Ty jsou taky přístupné.</p><p><br></p><p>Nyní zapojíme druhou desku, kde je 88E6182 (10 port, jinak stejný switch, jako 6152) a u něj fyzická vrstva a RJ45.</p><p>- přestane jít komunikovat s MDIO adresou 31 (4 stále funkční).</p><p>- objeví se adresa 6, nebo 7 (adresa toho 6182 podle toho, ve kterém je slotu).</p><p>- místo očekávaného 6182 je ale identifikován zase 6185 (na něm je napsáno 6182 a byl zaslán jako vzorek z Marwellu).</p><p>- konfigurační nohy EEPROM jsou zas čteny 11 místo 00.</p><p><br></p><p>Switch, co má být 6152 je s tím co má být 6182 propojen přes SGMII, pokud je v prvním slotu. Ve druhém spojeny nejsou (mají se spojit switchem v prvním). Problém je stejný, nezávisle na použitém slotu.</p><p><br></p><p>Setkali jste se s podobnými problémy?</p></div></blockquote></body></html>