Předělání switche na 10Mbit-FD: Porovnání verzí
(→Obecně) |
|||
Řádek 52: | Řádek 52: | ||
==2. způsob - Přeprogramovaní chipu pomocí externího procesoru== | ==2. způsob - Přeprogramovaní chipu pomocí externího procesoru== | ||
− | + | Chip se může také kofigurovat pomocí SMI sběrnice. Zbývá zkusit konfigurovat obvod pomocí SMI sběrnice. Tuto sběrnici mají i více portové switche a ty lze také tímto způsobem konfigurovat. To znamená, že i u osmi portového switche lze předělat do reřimu 10MB-FD libovolný počet portů. | |
Co je protřeba: | Co je protřeba: | ||
Řádek 82: | Řádek 82: | ||
pro čtení 01100010 00000010 | pro čtení 01100010 00000010 | ||
pro zápis 01010010 00000010 | pro zápis 01010010 00000010 | ||
− | - 4 -- 0 | + | - 4 -- 0 - |
</bash> | </bash> | ||
Verze z 29. 5. 2006, 14:11
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)
1. způsob - 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
- 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.
2. způsob - Přeprogramovaní chipu pomocí externího procesoru
Chip se může také kofigurovat pomocí SMI sběrnice. Zbývá zkusit konfigurovat obvod pomocí SMI sběrnice. Tuto sběrnici mají i více portové switche a ty lze také tímto způsobem konfigurovat. To znamená, že i u osmi portového switche lze předělat do reřimu 10MB-FD libovolný počet portů.
Co je protřeba:
- procesor
- programátor
- software
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:
v registru 0 - str53
- vypnout autonegotiation - znulovat 12tý bit
- povolit 10MB - znulovat 13tý bit
- zapnout full duplex - nastavit 8 bit.
v registru 4 - str55
- povolit pouze 10Base FD znulovat 5,7,8 bit
- nastavit 6 bit
Bylo by dobré neměnit ostatní bity, proto se nejprave data z IO přečtou, pozmění a pak zpátky zapíší.
V katalogovém listu IO 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.
Procesor se vyrábí v provedení SMD a je možné ho přiletovat místo EEPROMky, se kterou je 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
Detail