STM32F4+LAN8720

Petr Labaj labaj na volny.cz
Neděle Leden 15 19:32:08 CET 2017


A Vašim problémem asi nepomůžu, ale zaujalo mě, že máte komunikaci
EtherCATem s masterem na STM32F4.
To je Vaše práce? Pokud ano, tak klobouk dolů. Nebo jste nějak přeportoval
master stack třeba od IgH? Pokud ano, tak rovněž klobou dolů.
Napište o tom prosím něco víc, pokud můžete.

A to Vám nevysílá master nebo neodpovídá slave?
Udělal bych si rozdvojku a připojil 2 síťové karty na monitorovacím PC, kde
by na jedné do páru Rx šlo Tx a na druhé Rx z toho STM32F4.
Kdysi jsem to tak provozoval, a fungovalo to.

Autonegotiation bych vypnul a nastavil to natvrdo na 100 Mbit/s Full duplex.

PL

******************************

Dne 15.1.2017 v 18:53 Jaroslav Buchta napsal(a):
> Mam takovy divny problem.
>
> STM realizuje ETHERCAT komunikaci s driverem, funguje to hezky, kdyz 
> to jede pres switch ale komunikace je mrtva, kdyz propojim zarizeni 
> naprimo. Pres switch je samozrejme problem, ze ty broadcasty po 5ms 
> zasekaji komunikaci ostatnich zarizeni (jeste je pripojeno PC a PLC) 
> Bez switche je problem, ze nemuzu sledovat komunikaci.
>
> Nevim jak zjistit, kde je problem, zkousel jsem ruzne mody ale nic, 
> ethernet je nastaven takto:
>
>   ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;
>
>   ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;
>   ETH_InitStructure.ETH_RetryTransmission = 
> ETH_RetryTransmission_Enable;   // ETH_RetryTransmission_Disable;
>   ETH_InitStructure.ETH_AutomaticPadCRCStrip = 
> ETH_AutomaticPadCRCStrip_Disable;
>   ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable;
>   ETH_InitStructure.ETH_BroadcastFramesReception = 
> ETH_BroadcastFramesReception_Enable;
>   ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;
>   ETH_InitStructure.ETH_MulticastFramesFilter = 
> ETH_MulticastFramesFilter_Perfect;
>   ETH_InitStructure.ETH_UnicastFramesFilter = 
> ETH_UnicastFramesFilter_Perfect;
> #ifdef CHECKSUM_BY_HARDWARE
>   ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Enable;
> #endif
>
> (ETH_RetryTransmission_Enablej jsem nastavil, aby mi to STM 
> komunikovalo i pres Modbus,  jinak je to samy vypadek po spusteni PDO, 
> to by samozrejme pri primem propojeni nebylo mozne a vzal bych to pres 
> COM)
>
> Zbezne jsem prohledl registry PHY a AutoNegotiation je dokonceno OK, 
> 100M full duplex, Link, ledky sviti i blikaji, asi vse jak ma byt...
>
> Nenapada nekoho, na co se zamerit?



Další informace o konferenci Hw-list