TCP_echo_server mit STM32f407VG

#3055568
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
#5034992
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
#5041541
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 ;-)
Gast #5041551
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?
#5041813
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren