Předělání switche na 10Mbit-FD

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání

Autorem 2. způsobu je Jaroslav Pajskr. jarda[dot]pajsk[at]tiscali[dot]cz pro případné dotazy.

Obecně

2 způsoby jak nastavit port na 10Mbit-FD u switche. Využitelné např. pro připojeni ronji.

  • 1. způsob - Spojení nožiček chipu byl převzat z fóra CZF a news HKF (funguje jen s chipem RTL8305SB nebo SC)
  • 2. způsob - Změna hodnot interních konfiguračních registrů chipu pomocí externího procesr (mel by fungovat i s jiným chipem = i vetší než 5-port switch)

Způsob 1 - Spojení nožiček chipu

  • pouze s chipem RTL8305SB (SC)
  • např. Edimax ES-3105P (pouze 5port)
  • datasheet RTL8305SB a RTL8305SC
  • default je 1, 0 je slus na zem
předělaný switch
  • výtah z datasheetu:

<bash> pin 95: 1 - skupina x - port 0, skupina y - port 1, 2 a 3 0 - skupina x - port 0 a 1, skupina y - port 2 a 3


port0 je na 3, 4, 127, 128 (u růžku s klíčem)

port1 je na 7, 8, 11, 12

port2 je na 15, 16, 19, 20

port3 je na 23, 24, 27, 28

port4 je na 31, 32, 35, 36 (port4 je special, měl by zůstat auto)


pin 104: 1 - enable auto-negotiation skupiny x 0 - disable

pin 105: 1 - enable auto-negotiation skupiny y 0 - disable

pin 107: 1 - enable 100Mbps skupiny x 0 - disable

pin 108: 1 - enable 100Mbps skupiny y 0 - disable

pin 109: 1 - enable FullDuplex skupiny x 0 - disable

pin 110: 1 - enable FullDuplex skupiny y 0 - disable </bash>

  • Když nohy 104,105,107,108 vyzkratujete na zem, tak bude mít switch jeden 100Mbit port a 4x 10Mbit-FD porty.
  • Pozor na vedlejší efekt, budou svítit neustále diody.

Způsob 2 - Přeprogramovaní chipu pomocí externího procesoru

Chip se může také kofigurovat pomocí SMI sběrnice. Pravidla komunikace po této sběrnici jsou uvedeny v katalogovém listu chipu na str119. Tuto sběrnici mají i více portové switche a ty lze je tímto způsobem také konfigurovat. To znamená, že i u 8 portového switche lze předělat do reřimu 10Mbit-FD libovolný počet portů.

Co je protřeba:

  • procesor + 2 odpory 1,5kOhm
  • programátor
  • software Ponyprog pro naprogramování procesoru a AVR Studio pro případnou změnu nastavení


Po SMI sběrnici se mohou data z obvodu číst nebo zapisovat. Jestli se bude zapisovat nebo číst se rozliší v úvodu vysílaných dat. Taky se zde musí uvést číslo banky registrů - PHY0-PHY5 a číslo registru 0 - 31, se kterým se bude pracovat.


Aby se upravil PORT4 na 10Base FD musí se v bance registrů 4 - PHY4 s binárním kódem 00100:

v registru 0 - str53, binární kód registru je 00000

  • vypnout autonegotiation - znulovat 12tý bit
  • povolit 10MB - znulovat 13tý bit
  • zapnout full duplex - nastavit 8 bit.

v registru 4 - str55, binární kód registru je 00100

  • povolit pouze 10Base FD znulovat 5,7,8 bit
  • nastavit 6 bit


Bylo by dobré neměnit ostatní bity, proto se nejprave data z chipu přečtou, pozmění a pak zpátky zapíší. V katalogovém listu chipu na str119 je uvedeno uspořádání posílaných dat. Prvních 32 taktů jsou 1. poslání adresy registru 0 by se dalo binárně zapsat:

<bash>

            CH       CL

pro čtení 01100010 00000010 pro zápis 01010010 00000010

             - 4  -- 0 -

</bash>

dalších 16 taktů se posílají data.


Nejjednodušší způsob, jak data poslat do IO, je pomocí naprogramovaného procesoru. Já jsem se zabýval programováním procesorů ATMEL AVR, proto jsem vytvořil program pro zápis dat i čtení pro procesor této řady. Svým vybavením plně vyhovuje procesor ATtiny12L, ale může se použít skoro jakýkoliv. Cena procesoru ATtiny12L je v GMku 28kč

Procesor se vyrábí v provedení DIL8 i v SMD provedení. Procesor V SMD provedení je možné přiletovat místo EEPROMky, se kterou je na desce switche počítáno, ale nebývá osazena. Pro připojení procesoru jsou nutné 4 vývody – z toho 2 jsou napájení a 2 pro přenos dat.


Program procesoru je napsaný v assembleru. Pro čtení a zápis jsou vytvořeny 2 funkce – nacti a uloz. Funkce delay je pouze určité zpoždění mezi jednotlivými operacemi. Původně to sloužilo ke zpožděné konfiguraci po připojení napájení, ale v programu je tato funkce provedena mezi jednotlivými operacemi. Práce s funkcemi je velmi jednoduchá.

Před vykonáním funkce se musí nejprve zapsat adresa do registrů CL, CH a poté vykonat funkce. Adresa CL a CH nemusí obsahovat informaci o tom, jestli se zapíší data nebo se budou číst. Funkce zapíší sekvence pro čtení a zápis. Nejvyšší 4 bity CH jsou ignorovány.


Po přečtení dat z IO se musí provést nastavení. Vynulování bitů se provede instrukcí CBR podle masky a nastavení bitů se provede instrukcí SBR podle masky. Doufám, že funkce těchto dvou instrukcí jsou dostatečně zřejmé ze samotného programu. Po zápisu posledního byte do registrů program skočí do nekonečné smyčky.


Poslední část programu nazvaná kontrola se v běžném režimu nepoužívá. Slouží pro kontrolu zapsaných dat do IO. Na nevyužitých dvou vývodech se začne periodicky vysílat sériově přečtená data. Na dvoukanálovém osciloskopu se pak může na tyto data podívat.

Připojení procesoru k IO

připojení procesoru


Detail

připojení procesoru


V případě, že bude použit procesor v provedení SMD musí se zamezit spojení vývodu 1 procesoru s deskou switche a tento volný vývod procesoru připojit na napájení – vývod 8 procesoru.

Když by byl procesor použit v provedení DIL8, je dobré přiletovat patici DIL8 k desce switche pomocí drátků a procesor pouze dát do patice – když by bylo potřeba procesor přeprogramovat lze pak procesor z patice snadno vydloubnout.


Programátor


procesor v DIL8
procesor v DIL8
procesor v SMD
procesor v SMD
výsledek


  • Programátor lze vyrobit vzdušné konstrukce. Když by byl potřeba naprogramovat procesor v SMD provedení, pak by byl problém připojit procesor k programátoru. Je možné vyrobit PCB.


Návrh desky je vytvořen v programu Eagle V4.15 light


  • Verze pro procesor v DIL8

ATtiny12.brd programator ATtiny12.brd

ATtiny12.brd programator ATtiny12.sch


  • Nebo pro procesor v SMD provedení

ATtiny12.brd programator ATtiny12SMD.brd

ATtiny12.brd programator ATtiny12SMD.sch













Schéma programátoru

Programator.png

Software


Programování procesoru

  • Procesor je možné naprogramovat pomocí programu Ponyprog


Po nainstalování je potřeba zvolit port COM1 v setup->interface setup

Pony1.png


Dále je potřeba zvolit procesor – device->AVR micro->ATtiny12 Poté se může načíst HEX soubor – file->open program file, zvolit HEX. Když by se programování nepovedlo na poprvé, případně bylo potřeba procesor přeprogramovat musí se před programováním procesor vymazat – command->erase a pak až procesor naprogramovat.

Pony2.png


Procesor se pak naprogramuje – command->write program Nyní by měl být program v procesoru. Další věc, co není nutná, ale bylo by dobré ji nastavit, je zapnutí ochrany proti malému napětí. Procesor se pak sám restartuje když klesne napětí pod určitou mez. Je to určitá ochrana proti zkolabování programu. Tato ochrana se zapne v nabídce command->security and configuration bits, zde se nejprve zvolí read, pak se BODLEVEL a BODEN vynulují a opět pomocí write zapíše

Pony3.png


Změna nastavení

  • Pokud by chtěl někdo změnit nastavení, musí přepsat program v assembleru. program se poté musí zkompilovat – převést do HEX souboru. Já používám AVR Studio.


Zde se musí nejprve vytvořit projekt a poté vložit program v assembleru do vytvořeného projektu.

Avr1.png


Nazvat projekt

Avr2.png


Vybrat procesor a kliknout na finish

Avr3.png


Dále se objeví prázdné okno, do kterého se píše program a kam se může jednoduše zkopírovat zdrojový program

Avr4.png


Po úpravě se program přeloží – build->build. právně zkompilovaný program vypadá takto

Avr5.png

Výsledek

výsledek