Sida 1 av 2

PCI nätverkskort + FPGA (bild & video), updaterad

Postat: 18 december 2007, 21:11:44
av blueint
Först tar man ett PCI nätverkskort:
Bild

Löder loss MAC chippet:
Bild

Matar det direkt med 3.3V, och vips så fungerar länkpulsen:
4M .wmv zippyvideos
1M mpeg4 .avi freewebs.com
:D

Edit0: Tog bort sugsajt som tydligen visar en normal filnedladdnings sida för uppladdaren, och en annan för andra..
Edit1: freeimagehosting.net har belastningsproblem (pga storhelg?)

Postat: 18 december 2007, 21:23:04
av grym
då kommer ju frågan , varför?
:)

Postat: 18 december 2007, 21:30:57
av ElectricMan
Ja, vad ska man göra med den?

Postat: 18 december 2007, 21:32:49
av blueint
Man kollar att den fungerar innan man kopplar den till FPGA.

Postat: 19 december 2007, 08:49:23
av Illuwatar
Vad handlar detta projekt om egentligen (att det ingår en nätverkskrets och en FPGA har jag förstått, men till vad)? Jag skulle vilja se lite mer tekniskt bakom detta i stället för snack om videoformat och sunkiga upload-siter...

Postat: 19 december 2007, 09:22:01
av blueint
Programmera FPGAn att kommunicera via ethernet PHY. Vill testa signaleringsgränssnittet bl.a. hur många signaler man egentligen behöver. Och framförallt se att det fungerar i praktiken. Blir lätt väl abstrakt på ett färdigt utvecklingskort.

Postat: 19 december 2007, 12:41:15
av JimmyAndersson
Plockade bort några inlägg om upload-sajter, nu när filmerna fungerar.

Ser intressant ut, men jag skulle vilja veta lite mer om detaljerna "bakom" detta. :)

Postat: 19 december 2007, 17:06:46
av blueint
Jag behövde ett (MII) nätverksinterface till en FPGA så jag har letat efter lämplig utrustning som innehåller ett PHY som är dokumenterat och går att löda på. LSI 80225 som jag använder i denna konstruktion är relativt lätt att jobba med då den har en pin pitch på 1.27 mm.
Problem #1 är att nätverkskortet redan har en krets för att styra ethernet PHY kretsen dvs MAC kresten (PHY<->PCI). Så den måste lödas bort.

Problem #2 är att ordna strömförsörjning. Kan vara klurigt eftersom befintlig konstruktion är tänkt att få strömförsörjningen via PCI bussen (eller 9V adapter för ADSL modem). Jag har redan bränt ett kretskort genom att mata spänningen direkt på utsidan. Så lärdomen är att vara väldigt försiktig med sådant. Men PCI kortet är ganska enkelt i det avseendet. Ingen krets som bränner sig till kortis om man matar direkt till kretsarnas Vcc + GND.

Problem #3 är att verifiera att kretsen överlevt modifieringarna. Tydligen är det så att alla PHY jag jobbat med som standard skickar länkpuls till switch/annat nätkort. Så om allt är kopplat korrekt får man "länk" vid spänningspåslag efter ca 2s. Och kan på så sätt veta att åtminstone den "analoga" delen är korrekt liksom spänningsmatning.

När man kopplat upp allt och vet att det fungerar så är det dags att löda på signalledningarna, därefter får man verifiera funktionen igen. Som det är nu funkar PHY kretsen om man inte slår på FPGAn. Men det beror antagligen på att den skickar ut signaler mha pullup/pulldown. Och skapar lite kaos :)
Lite omkopplingar och ny konfigurationsfil lär lösa det problemet (bl.a. verkar INIT_B från FPGAn hamnat på en av PHY utgångarna..).

Dessa signaler är dom som är intressanta från PHY kretsen (absolut minimum):
TX_CLK -> (positive flank)
TX_EN <- Send
TXD[3:0] <- Data

RX_CLK -> (negative flank)
RX_DV -> Receive
RXD[3:0] -> Data

Signaler som man förmodligen kan skippa i initialt:
RX_ER -> Error
TX_ER <- Error
MDC <- MI Clock (konfiguration, default är ok)
MDIO <-> Data I/O (konfiguration, default är ok)
CRS (för 10M)
COL (för 10M)

För 10M ethernet finns AUI som är den äldre versionen av MII (kan man säga).

Tanken är att skapa ett program i verilog som klockat avTX_CLK räknar upp en räknare som i sin tur sätter TX_EN=1, och sätter TXD[3:0] = SDF, MAC destination, MAC källa, "data"..etc..
i turordning. Det borde ge basal funktion. Tcpdump (unix kommando) bör plocka upp packet som har fel CRC. Senare kan man väl fixa till UDP med korrekta MAC adresser och CRC32 så att man inte behöver vara 'root'.

Postat: 19 december 2007, 21:26:29
av HUGGBÄVERN
Det skulle vara ett projekt i Allt om Elektronik där man använde ett nätverkskort (ISA dessvärre) ............ här var det. En billig webserver med en ATmega32 mikrokontroller.

Postat: 19 december 2007, 21:29:40
av blueint
En MCU (som ATmega32) klarar inte dom hastigheter det är frågan om på MII busen så det är förmodligen med MAC+PHY. Vilket gör att man inte kan pipelina applikationer på samma sätt. Dessutom är ISA kort stora.. :)

Postat: 19 december 2007, 23:40:53
av JimmyAndersson
Tack för beskrivningen. Nu hänger jag med. :)
Kul projekt!


"Jag har redan bränt ett kretskort genom att mata spänningen direkt på utsidan."

Bra att du skrev det för jag har flera gånger haft tanken att ansluta spänningen direkt på kortkontakten. Tur att jag inte gjort det. :)

Postat: 20 december 2007, 00:40:27
av Tony
Varför nyttjar du inte WOLkontakten?

På den övre bilden i 1:a inlägget ser man en vit trepins kontakt med 2mm pitch.

1. +5V 2. GND 3. Wake up (startar datorn).
Pin 1 är till höger i bild.

Om man behöver en testare för att hitta aktiva nätverksuttag så funkar ett PCInätverkskort med WOL utmärkt, bara lägg till en 7805 och ett 9Vbatteri.

Det borde inte vara något problem att bygga ett nätverksstyrt relä mha. av ovan.

Postat: 20 december 2007, 00:42:47
av blueint
Om du menar kortkanten på PCI så är det nog mindre *risk* för strul. Detta nätverkskort verkar bara ha en spänningsregulator. Men den förser tydligen inte PHY kretsen med ström.
Däremot ogillar D-Link DSL-300G totalt sådana försök på sin 3.3V, medans Cisco ISDN modem inte hade något emot samma försök på dess 5V.
Vad du måste kolla efter är spänningsregulatorer och tänka igenom om dom kommer att strula. Normalt sett är det som sagt inget problem. Sällan, men ibland skiter det sig totalt. DSL300G kortet får inte upp spänningen över 0.8V hur än man matar på efter dylikt försök. Och jag hittar inte vilken komponent som orsakar det. Enklare att gå vidare med nästa försökskanin :D

Så kolla efter hur spänningsmatningen är uppbyggd. Ser den komplicerad ut så försök att mata den som det är tänkt. Kolla framförallt om du kan löda bort elförsörjningsdelen om det behövs.

Nätverkskortet jag använder nu haddet bara en SOIC-8 CMPWR regulator (om det nu är det). Den skapade inga problem. Och OM den hadde gjort det skulle det bara vara att löda bort den. Se bara till att paddarna efter bortlödade komponenter inte kortsluter något.

@Tony:
Om du läser mitt inlägg ser du att syftet var att ansluta nätverkskortet till en FPGA. Länktestet vara bara för att bekräfta funktionen efter modifikationen.

Postat: 20 december 2007, 01:30:18
av Tony
Jo jag förstod syftet, menade bara att enklaste sättet att spänningsmata kortet är via WOLkontakten.
Spänningsmatning via WOL borde funka oavsett om du kör kortet fristående (som jag gör) eller ihop med en fpga.

Resten nämnde jag helt appropå för allmänt intresse.

Postat: 20 december 2007, 12:10:14
av blueint
Lödningar sitter mer säkert. Och jag har ändå lött dit ca 14 ledningar, så 2 st till för ström gör ingen större skillnad ;)

Ser ut så här nu:
Bild