TCP_echo_server mit STM32f407VG

OP #3055568
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
#5034258
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
#5034992
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
Gast #5035139
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 ....
Gast #5035196
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.
#5041541
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
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
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.