ethernet

B

babud

Guest
Hei alle,
Jeg jobber med Silabs Ethernet DK (F120TB AB4).Jeg har aktivert TCP, HTTP og kode generert.Etter satt opp, når jeg kjører koden im ikke i stand til å få nettsiden Hello World.Og system status LED (grønn) ikke glow.when jeg pinge innebygde systemet meldingen kommer forespørselen ble tidsavbrutt. Jeg prøvde å løse problemet ved å plassere BREAK poeng og la merke til funksjonen mn_ether_init (AUTO_NEG, 0, 0) blokkerer (returneres ikke) Hvis tilbake, jeg sjekket returverdien, gir den -116 (ether_send_error).
Jeg gir koden der jeg sittende fast.
//------------------------------------------------ -----------------------------
/ / Establish_network_connection
//------------------------------------------------ -----------------------------
/ /
/ / Denne funksjonen kaller mn_ether_init () til å initialisere CP2200 og legger til
/ / Nettverket.
/ /
/ / Hvis det er en nettverkstilkobling, funksjonen returnerer 1.
/ /
/ / I kallet til mn_ether_init () er NUM_AUTONEG_ATTEMPTS satt til 0, så
/ / Funksjonen vil ikke tilbake før det lykkes auto-forhandler.
/ /
/ / Mn_ether_init () ikke vil være en blokkering anrop hvis NUM_AUTONEG_ATTEMPTS er satt
/ / Til en høyere verdi enn 0..
/ /
int establish_network_connection ()
(
int retval;

gjøre
(
/ / Mn_ether_init () initialiseres Ethernet-kontrolleren.
/ / AUTO_NEG indikerer at kontrolleren vil automatisk forhandle.
retval = mn_ether_init (AUTO_NEG, 0, 0);

/ / Hvis det er noen kobling, avstemningen link_status til det sett eller
/ / CP2200 nullstiller og deretter ringe mn_ether_init () igjen.
if (retval == LINK_FAIL)
(
while (! link_status & &! ether_reset);
)

/ / Hvis retval er mindre enn null, og er ikke LINK_FAIL, det er en
/ / Hardware feil.
else if (retval <0)
(
/ / Kontroller at Ethernet-kontrolleren er tilkoblet og drevet ordentlig.
/ / Verity at EMIF har blitt konfigurert med en hastighet som er kompatible med
/ / Ethernet-kontroller.
mens 1 ();
Jeg STUCKED HER.OG KONTROLL forblir i DENNE LOOP.
)

) while (retval <0);

return (1);

)

Jeg er bare mottar og sender pakker og ikke aktivert noen andre enheter
(UART s, SMBus, SPI).
Jeg er ikke i stand til å løse dette problemet.Pls noen hjelpe meg ..
Thankq u all.
Babu

 
mens (1) del synes fishy til meg, Hvis det bare er initialisering programmet du kanskje ikke trenger, mens (1) del cuz du nettopp initialisere nettverkskortet innstillingene en gang når du slår den på.hvis det er en løkke som mottar og sender pakker, da har du legge funksjon at når pakken finnes for å sende eller mottas gjøre riktige ting og løkker igjen.Det kan hende du trenger et avbrudd å bryte sløyfen for å gjøre noe annet, og deretter tilbake til loopen.Jeg vet at mitt svar er ikke bestemt, men jeg jobber med noe som din og jeg bruker ENC28J60 Ethernet Adapter og det fungerer.

 
kunne du vennligst sjekke dette neste avsnitt; Det kopieres fra

https: / / www.silabs.com / Support% 20Documents/TechnicalDocs/an237.pdf V0.6
http://www.premier-electric.com/ii/CP220x_an237.pdf v0.5

4.5.3 mn_ether_init

Beskrivelse: Tilbakestiller og starte opp Ethernet-kontroller.
Hvis CP220x er valgt som Ethernet Controller, følgende oppgaver utføres:
? Den CP2200 er tilbakestilt, og restarte initializations utføres.
? Spesifikke CP220x registre blir lest for å bekrefte tilstedeværelse av Ethernet Controller.
? CP2200 Avbryter er aktivert.
? MAC-adressen er programmert.
? Enheten er konfigurert for halv eller full duplex drift, eller auto-forhandlingene er i gang.
? Den globale link_status bit er satt til å indikere en god link eller tømmes for å indikere at enheten ikke er koblet til et nettverk.Den link_status bit er kun gyldig etter mn_ether_init () har blitt kalt for første gang.Etter dette er det alltid gyldig så lenge Interrupt 0 og globale avbrudd er aktivert.
? Den globale ether_reset bit tømmes.Denne biten angis som helst CP220x kommer, avslutter deretter restarte staten.Hvis ether_reset er alltid satt, koblingen status bit blir ugyldig inntil mn_ether_init () kalles.Bruker koden skal ikke utføre noe nettverk operasjoner til Ethernet-kontrolleren er re-initialisert.Hvis denne biten er ofte stille, så sjekk styret og kontrollerer at strømforsyningen oppfyller gjeldende krav i Ethernet-kontrolleren.
? Den globale link_lost bit er satt for å indikere at CP220x har mistet linken.Det gjenstår angi om lenken avkastning.Denne bit fjernes når mn_ether_init () etterfølger.

Prototype: int mn_ether_init (byte, byte, byte);

Eksempel Call: status = mn_ether_init (duplex_mode, num_autoneg_attempts, loopback);

Parametere: 1.duplex_mode Velger Full-Duplex, Halv Duplex, eller Auto-Negotiation.Kan være en av følgende verdier:
? FULL_DUPLEX Ethernet-kontrolleren er konfigurert til full duplex modus.
? HALF_DUPLEX Ethernet-kontrolleren er konfigurert til halv dupleks-modus.
? AUTO_NEG Auto-Negotiation velger mellom full dupleks og halv dupleks modi.
2.num_autoneg_attempts Angir antall ganger for å forsøke automatisk forhandling.Hvis satt til 0,
og automatisk forhandling er aktivert, vil den ikke tilbake før automatisk forhandling er vellykket.
3.loopback Sett til TRUE å aktivere interne tilbakekoblinger.Sett til FALSE å deaktivere internal loopback.

Tilbake Verdi: Hvis vellykket, returnerer FULL_DUPLEX eller HALF_DUPLEX.Ellers returnerer én av følgende negative feilkoder:
? INVALID_DUPLEX_MODE En tosidig modus enn de tre tillatte verdier ble vedtatt i parameter 1.
? INVALID_MAC_ADDRESS returneres hvis den MAC-adressen er FF: FF: FF: FF: FF: FF.
? LINK_FAIL En gyldig kobling ble ikke oppdaget.Den globale link_status bit kan nå bli spurt å avgjøre når Ethernet-kontrolleren er tilkoblet et nettverk.
? ETHER_INIT_ERROR En hardware-feil har oppstått.

 

Welcome to EDABoard.com

Sponsor

Back
Top