Forum: Mikrocontroller und Digitale Elektronik TCP_echo_server mit STM32f407VG


von Jonas W. (johnnywild)


Lesenswert?

Hallo,
ich beschäftige mich zurzeit mit dem Mikrocontroller STM32f407VG.
Bei STM    http://www.st.com/web/en/catalog/tools/PF257906#
lässt sich das Beispielprojekt "LwIP TCP/IP stack demonstration for 
STM32F4x7 microcontrollers" downloaden.

In dem Ordner befindet sich ein Projekt für ein tcp_echo_server.
Dieses lässt sich auch fehlerfrei erzeugen und auf den Chip Flashen.
Jedoch tauchte das Problem auf, dass ich zwar Daten per Crossover Kabel 
an den STM schicken konnte, dieser aber nicht darauf reagierte.

Der Fehler liegt wahrscheinlich bei ETH_SoftwareReset(); 
Zeile:95(stm32f4x7_eth_bsp.c)

Damit das Programm weiter ausgeführt wird, wird ein Reset erwartet
/* Wait for software reset */
  while (ETH_GetSoftwareResetStatus() == SET);
Zeile:97(stm32f4x7_eth_bsp.c)


in der stm32f4x7_eth.c:

void ETH_SoftwareReset(void)
{
  /* Set the SWR bit: resets all MAC subsystem internal registers and 
logic */
  /* After reset all the registers holds their respective reset values 
*/
  ETH->DMABMR |= ETH_DMABMR_SR;
}

/**
  * @brief  Checks whether the ETHERNET software reset bit is set or 
not.
  * @param  None
  * @retval The new state of DMA Bus Mode register SR bit (SET or 
RESET).
  */
FlagStatus ETH_GetSoftwareResetStatus(void)
{
  FlagStatus bitstatus = RESET;
  if((ETH->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET)
  {
    bitstatus = SET;
  }
  else
  {
    bitstatus = RESET;
  }
  return bitstatus;
}

Da kein reset stattfindet, hängt sich das Programm hier aus.
Würde mich freuen wenn jemand eine Lösung hätte, wie ich das Projekt an 
meinen STM32f407VG Anpassen könnte

MFG Jonas

von Mathias _. (mathias1988)


Lesenswert?

Hallo Jonas,
hast du denn bereits eine Antwort auf dein Problem ? Stehe nun wohl mit 
dem STM3210C-Board vor einem ähnlichen Problem. Die RX- und TX-Clocks am 
PHY habe ich bereits überprüft. Bei beiden liegt ein Frequenz von 25Mhz 
an (MII). Grüße Mathias

von HF Pfuscher (Gast)


Lesenswert?

Maze Z. schrieb:
> Hallo Jonas,

Kaum vier Jahre später?

von Mathias _. (mathias1988)


Lesenswert?

HF Pfuscher schrieb:
> Maze Z. schrieb:
>> Hallo Jonas,
>
> Kaum vier Jahre später?
Das spielt für mich keine Rolle, ob 4 Jahre vergangen sind oder nicht. 
Die Lösungsfindung steht im Vordergrund.

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

was sendest du denn für Daten, das hat auch der ursprüngliche TO nicht 
geschrieben!?
Unter einem TCP Echo Server verstehe ich einen Server mit dem man zuerst 
mal eine TCP-Verbindung aufbauen muss (Port ? Sollte im Programm 
irgendwo festgelegt sein). Dann wenn die Verbindung seht werden alle 
eingehenden Daten wieder zurückgesendet.
Mit irgendwas an die IP des Servers senden wird man da keine Antwort 
erhalten.

Sascha

von HF Pfuscher (Gast)


Lesenswert?

Mathias _. schrieb:
> Das spielt für mich keine Rolle, ob 4 Jahre vergangen sind oder nicht.

Nur dass sich die Welt seitdem massiv verändert hat, inklusive
die Welt des TO der sich möglicherweise jetzt in ganz anderen
Sphären bewegt ....

von Brummbär (Gast)


Lesenswert?

Hier ist es üblich, dass man für neue Fragen einen neuen Beitrag öffnet 
und sich nicht an einen alten Beitrag dranhängt der nur "ähnlich" ist.

von Mathias _. (mathias1988)


Lesenswert?

Bisher möchte ich die Verbindung nur per einfachen "Ping" Befehl aus der 
CMD-line testen. Inzwischen bekomme ich auch ein Echo zurück. Der Fehler 
lag an einem Bug der von mir verwendeten STM32CubeMx Software. Der Bug 
führte dazu, dass die Phy-Adresse nicht korrekt konfiguriert war. Mit 
der aktuellen Version 4.21.0 der CubeMx Software ist der Bug gefixt.
@Brummbär das nächste mal öffne ich einen neuen Beitrag ;-)

von Ahnungsloser (Gast)


Lesenswert?

Mathias _. schrieb:
> Der Bug
> führte dazu, dass die Phy-Adresse nicht korrekt konfiguriert war.

Schon klar.

Ist eine neue Kreation wa?
Seit wann hat ein PHY eine Adresse?

Wenn ich einen beliebigen PHY betrachte sehe ich keine
Möglichkeit eine Adresse einzustellen. Gibt es da ein
geheimes Protokoll?

von nik (Gast)


Lesenswert?

Stichwort: SMII
Stichwort2: Datasheet (z.b. KSZ8081 - Pin 13-15 PHYADR0-2 )

von Mathias _. (mathias1988)


Lesenswert?

Ahnungsloser schrieb:
> Mathias _. schrieb:
>> Der Bug
>> führte dazu, dass die Phy-Adresse nicht korrekt konfiguriert war.
>
> Schon klar.
>
> Ist eine neue Kreation wa?
> Seit wann hat ein PHY eine Adresse?
>
> Wenn ich einen beliebigen PHY betrachte sehe ich keine
> Möglichkeit eine Adresse einzustellen. Gibt es da ein
> geheimes Protokoll?

http://www.ti.com/lit/ds/symlink/dp83848-ep.pdf (Seite 40)
Die Adressierung ist abhängig von der externen Beschaltung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.