Ethernet

B

babud

Guest
Sveiki visiem,
Es esmu strādā pie Silabs Ethernet DK (F120TB AB4).Man ir iespējota TCP, HTTP un koda radīts.Pēc izveidoja, kad es palaist kodu im nevar iegūt mājas lapā HELLO WORLD.Un sistēmas stāvokļa LED (zaļa) nav glow.when es ping iegulto sistēmu ziņa nāk pieprasījums iztecējis mēģināja. Es atrisināt šo problēmu, ievietojot BREAK punktiem un ievēroju funkciju mn_ether_init (AUTO_NEG, 0, 0) ir bloķējošā (nav atgriezta) , ja atpakaļ, es pārbauda atgriešanās vērtību, sniedzot -116 (ether_send_error).
Es dodu kodu, kur es iestrēdzis.
//------------------------------------------------ -----------------------------
/ / Establish_network_connection
//------------------------------------------------ -----------------------------
/ /
/ / Šī funkcija zvanus mn_ether_init (), lai sāktu CP2200 un piešķir
/ / Tīkls.
/ /
/ / Ja ir tīkla savienojums, funkcija atgriež 1.
/ /
/ / In aicinājumu mn_ether_init (), NUM_AUTONEG_ATTEMPTS ir iestatīts uz 0, lai
/ / Funkcija netiks atpakaļ, līdz tas veiksmīgi auto-sarunas.
/ /
/ / Mn_ether_init () nebūs bloķēt zvanu, ja NUM_AUTONEG_ATTEMPTS ir uzstādīts
/ / Kuru vērtība ir lielāka par 0.
/ /
int establish_network_connection ()
(
int retval;

do
(
/ / Mn_ether_init () initializes Ethernet kontrolieris.
/ / AUTO_NEG norāda, ka kontrolieris būs auto-sarunas.
retval = mn_ether_init (AUTO_NEG, 0, 0);

/ / Ja nav saiknes, aptauja link_status līdz ar to nosaka vai
/ / CP2200 nodzēš un tad zvanīt mn_ether_init () vēlreiz.
ja (retval == LINK_FAIL)
(
kamēr ()! link_status & &! ether_reset;
)

/ / Ja retval ir mazāks par nulli, un tas nav LINK_FAIL, ir
/ / Aparatūras kļūda.
cits ja (retval <0)
(
/ / Pārliecinieties, ka Ethernet kontrolieris tiek savienots un powered pareizi.
/ / Verity ka EMIF ir konfigurēta ar ātrumu, ir saderīga ar
/ / Ethernet kontrolieris.
kamēr (1);
Es STUCKED ŠEIT.UN KONTROLE paliek ŠO cilpu.
)

) Vienlaikus (retval <0);

atgriešanās (1);

)

I m vienkārši sūtītāju un saņēmēju pakešu un nav ļāvusi citu perifērijas
(UART s, SMBUS, SPI).
I m nav iespējams atrisināt šo problēmu.PLS kāds man palīdzēt ..
Thankq u visu.
Babu

 
kamēr (1) daļa šķiet neticams man, ja tas ir tikai inicializācijas programmas jūs varētu nav nepieciešams, bet (1) daļa cuz jūs vienkārši sāktu savu tīkla adapteris iestatījumus vienreiz, kad jūs to ieslēgtu.ja ir cilpu, kas saņem un nosūta pakas, tad jums ir pievienot funkciju, kad pakete pastāv, lai nosūtītu vai saņemtu izdarīt attiecīgus lieta un cilpas vēlreiz.Jums var būt nepieciešams pārtraukt, lai pauze cilpa darīt kaut ko citu, un tad atgriezties pie cilpas.Es zinu, mana atbilde nav īpašs, bet es esmu strādā pie kaut ko līdzīgu jūsu un es esmu, izmantojot ENC28J60 Ethernet adapteri, un tā darbojas pareizi.

 
vai Jūs varētu, lūdzu, pārbaudiet šo nākamo rindkopu, tas kopē no

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

4.5.3 mn_ether_init

Apraksts: Atiestata un initializes Ethernet kontrolieris.
Ja CP220x ir izvēlēts kā Ethernet kontrolieri, šādi uzdevumi tiek veikti:
? CP2200 ir reset, un reset initializations tiek veikta.
? Īpaši CP220x reģistri ir jālasa, lai pārbaudītu klātbūtni Ethernet Controller.
? CP2200 Pārtraukumi ir iespējots.
? MAC adrese ir ieprogrammēts.
? ierīce ir konfigurēta, lai puse vai pilna dupleksa darbību, vai auto-sarunas ir uzsāktas.
? pasaules link_status bits ir iestatīts, lai norādītu labu saiti vai notīrīta, lai norādītu, ka ierīce nav pieslēgts tīklam.Link_status bit ir spēkā tikai pēc mn_ether_init () ir sasaucis pirmo reizi.Pēc tam vienmēr ir derīga tik ilgi, kamēr 0 Interrupt un pasaules pārtrauc tiek iespējots.
? pasaules ether_reset bits ir notīrīta.Šis bits tiks noteikti jebkurā laikā CP220x iebrauc, tad izejas reset valsts.Ja ether_reset ir kādreiz noteikt, saikne statusa mazliet kļūst nederīgs līdz mn_ether_init () sauc.Lietotāja kods nedrīkst pildīt nevienu tīkla darbībām līdz Ethernet kontrolieris atkārtoti inicializēts.Ja šis bits ir bieži, kas, pēc tam pārbauda kuģa un pārbaudīt, vai elektroenerģijas padeves atbilst pašreizējām prasībām Ethernet kontrolieris.
? pasaules link_lost bits ir iestatīts, lai norādītu, ka CP220x ir zaudējis saikni.Tā joprojām nosaka, ja saite atdevi.Šis bits ir dzēsts, kad mn_ether_init () uzvar.

Prototipu: int mn_ether_init (baits, baits, baits);

Piemērs Call: status = mn_ether_init (duplex_mode, num_autoneg_attempts, cilpas);

Parametri: 1.duplex_mode Atlasa Pilna dupleksā, Half-Duplex, vai automātiskās Sarunas.Var būt viens no šādiem lielumiem:
? FULL_DUPLEX Ethernet kontrolieris ir konfigurēta, lai pilna dupleksa režīmā.
? HALF_DUPLEX Ethernet kontrolieris ir konfigurēta, lai pusdupleksus režīmā.
? AUTO_NEG Auto-Sarunas izvēlas starp pilnu dupleksu un pusdupleksus veidiem.
2.num_autoneg_attempts Norāda, cik reizes, lai mēģinātu autonegotiation.Ja iestatīts uz 0,
un autonegotiation ir iespējota, tas nav atgriezties, kamēr autonegotiation ir veiksmīga.
3.cilpas iestatīts uz True, lai nodrošinātu iekšējā cilpas.Iestatiet uz FALSE atslēgt iekšējās cilpas.

Atgriezties Vērtība: Ja veiksmīgs, atgriež FULL_DUPLEX vai HALF_DUPLEX.Pretējā gadījumā atgriež vienu no šīm negatīvo kļūdu kodiem:
? INVALID_DUPLEX_MODE abpusējās kopēšanas režīms, izņemot trīs atļauts vērtībām tika pieņemts 1 parametru.
? INVALID_MAC_ADDRESS Atpakaļ ja MAC adrese ir FF: FF: FF: FF: FF: FF.
? LINK_FAIL derīga saikne netika konstatēta.Pasaules link_status bitu tagad var aptaujāto, lai noteiktu, kad Ethernet kontrolieris ir pieslēgts tīklam.
? ETHER_INIT_ERROR datortehnikas kļūda.

 

Welcome to EDABoard.com

Sponsor

Back
Top