Hallo zusammen. Ich nutze das Pretzel Board (Arduino ATmega 328 + ESP8266 mit AT Kommandos), um eine kleine Website per Webbrowser bereitzustellen. Die Website liegt als const char [] = "..." und ein paar Strings als globale Variablen im Programmcode. Jetzt habe ich beobachtet, dass sich das Board mal mit dem WLAN verbindet und mal nicht. Mal werden kryptische Zeichen auf der Website angezeigt, mal nicht. Das Verhalten ist jedes Mal reproduzierbar und ändert sich, wenn ich am Code etwas ändere (zB. den char Text ändern, debug prints hinzufügen/entfernen etc). Worauf deutet das hin? Können dies Speicherzugriffsverletzungen sein? Der Compiler liefert keine Fehlermeldungen.
Herr je... Ich finde die Kombination in der Form "falsch".. Aber davon mal abgesehen: Markus schrieb: > Können dies Speicherzugriffsverletzungen sein? Speicherzugriffsverletzungen kennt der AVR nicht. Aber doch: Das können durchaus Heap-Stack Kollisionen oder in die Wiese zeigende Pointer sein.
Arduino F. schrieb: > Ich finde die Kombination in der Form "falsch".. Ich weiß. Soll auch nur eine quick und dirty Version werden. Arduino F. schrieb: > Das können durchaus Heap-Stack Kollisionen oder in die Wiese zeigende > Pointer sein. Aber wie kann man dann erklären, dass bereits beim Verbindungsaufbau unterschiedliches Verhalten auftritt? Bis zu diesem Zeitpunkt (also in der setup() Routine) wird nichts mit meinen chars oder Strings gemacht. Nur der unveränderte Code aus einem funktionierendem Beispiel.
Markus schrieb: > Ich weiß. Soll auch nur eine quick und dirty Version werden. Gerade dann gibt es doch keinen Grund, sich das Leben mit einem zweiten, dazu noch wesentlich weniger leistungsfähigem, µC schwer zu machen.
Hi, zu 95% sind solche Probleme beim ESP Stromversorgungsprobleme. Also: Netzteil min 500mA, min 100uF Elko möglichst nahe am ESP und gut ist. Steckbrett? Dann schlechte Kontakte. Gruß Andreas
Könnte es auch sein, dass der SRAM (2KB) für meine Anwendung zu klein ist? Meine Website ist nämlich relativ groß und ich habe hier gelesen, dass es dann zu unerwarteten Verhalten kommt: https://www.arduino.cc/en/tutorial/memory Gibt es keine Möglichkeit die erwähnten Probleme, die im Link beschrieben sind, programmtechnisch zu erkennen, indem ein Flag oä überprüft wird?
Hallo, zapf doch erst mal die UART-Verbindung zwischen μC und ESP an, dann kannst du schon mal sehen ob aus dem μC überhaupt das richtige raus kommt. Wenn ja dann liegts am ESP, wenn nein dann an deinem μC Programm. Sascha
An alle, die ESP Module als WLAN-Adapter an weiteren Mikrocontrollern betreiben möchten und keine Lust auf die Gebetsmühle haben, dass dies der falsche Ansatz sei: Ich dürft mich gerne per PM anschreiben und Fragen außerhab dieses Forums klären. Man muss nicht immer mit dem Strom schwimmen.
> Gibt es keine Möglichkeit die erwähnten Probleme, die im Link > beschrieben sind, programmtechnisch zu erkennen, indem ein Flag oä > überprüft wird? Ja, git es und wurde hier bereits mehrfach diskutieren, mit vielen unterschieldlichen Lösungsansätzen. Suche mal gezielt nach den Wörtern: heap speicher überlauf erkennen - am besten mit Google.
> Gerade dann gibt es doch keinen Grund, sich das Leben mit einem zweiten, > dazu noch wesentlich weniger leistungsfähigem, µC schwer zu machen. Doch, und zwar das man den Umgang mit einem anderen noch nicht vertrauten µC lernen muss, dazu ein noch nicht vertrautes SDK mit bekanntlich mangelhafter Dokumentation, eventuell eine andere IDE. (manche Leute haben noch nie eine IDE verwendet und programmieren seit Jahren). Nicht jeder entwickelt für Massenproduktion, wo man lieber 50 Cent Hardware einspart dafür aber einige Wochen zusätzlichen Entwicklungsaufwand in Kauf nimmt. Nicht jeder möchte sein gesamtes Programm von einem WLAN Modul mit mutmaßlich eilig zusammengestrickter Firmware abhängig machen, von deren Zuverlässigkeit man wenig bis gar nicht überzeugt ist. Nicht jedem genügen die Fähigkeiten und Schnittstellen des ESP8266 Chip. Wenn ich schon ein simples Schieberegister oder einen mehrkanaligen A/D Wandler zusätzlich brauche, dann kann ich auch gleich einen vertrauten µC dran hängen. Nicht jeder möchte ein bereits bestehendes Programm auf eine ganz andere Hardware mit Betriebsystem migrieren, nur um eine WLAN Schnittstelle hinzuzufügen.
Stefan U. schrieb: > Umgang Ich glaube du verwechselst da was... Das Pretzelboard ist krank, weil: SPI ist unterbunden, da der ESP an den Pins steckt. Das halte ich für eine Fehlkonstruktion. Gerade weil man bei einem Webserver doch auch mal ganz gut einen externen Speicher (SD-Karte) verwenden kann. Die AT Firmware ist auch komisch, da es da viele verschiedenen, zueinander inkompatible Versionen gibt. Dass man dem schwächeren Prozessor die Hauptlast aufbürdet, und den starken im Leerlauf dümpeln lässt, ist da nur noch eine dumme Nebensache. Trotz allem dem sollten die Beispiele laufen.
> Dass man dem schwächeren Prozessor die Hauptlast aufbürdet, > ... ist da nur noch eine dumme Nebensache. Es sind durchaus Anwednungen vorstellbar, wo die WLAN Kommunikation erheblich mehr CPU Takte erfordert, als die Hauptanwendung. Bei Bluetooth stellt keiner die Kombination AVR+Extraprozessor in Frage. Dabei haben alle Bluetooth Module noch viel mehr freie I/O Pins, als der ESP und sie sind ebenso programmierbar. Ist das nicht seltsam?
Ok, jetzt noch Birnen und Äpfel vergleichen... Bist heute wohl etwas auf Krawall gebürstet... hi hi hi... Dann such dir einen andern zum spielen, habe heute keine Lust dazu.
Stefan U. schrieb: > Ist das nicht seltsam? Aber du glaubst doch nicht ernsthaft an eine Verschwörung? Es soll Menschen geben die kaufen sich für 100k€ ein Auto um damit nur zum Spaß rum zu fahren, während die Hauptlast die 30k Familienkutsche trägt.
Stefan U. schrieb: >> Gerade dann gibt es doch keinen Grund, sich das Leben mit einem zweiten, >> dazu noch wesentlich weniger leistungsfähigem, µC schwer zu machen. > > Doch, und zwar das man den Umgang mit einem anderen noch nicht > vertrauten µC lernen muss, dazu ein noch nicht vertrautes SDK mit > bekanntlich mangelhafter Dokumentation, eventuell eine andere IDE. > (manche Leute haben noch nie eine IDE verwendet und programmieren seit > Jahren). > > Nicht jeder entwickelt für Massenproduktion, wo man lieber 50 Cent > Hardware einspart dafür aber einige Wochen zusätzlichen > Entwicklungsaufwand in Kauf nimmt. > > Nicht jeder möchte sein gesamtes Programm von einem WLAN Modul mit > mutmaßlich eilig zusammengestrickter Firmware abhängig machen, von deren > Zuverlässigkeit man wenig bis gar nicht überzeugt ist. > > Nicht jedem genügen die Fähigkeiten und Schnittstellen des ESP8266 Chip. > Wenn ich schon ein simples Schieberegister oder einen mehrkanaligen A/D > Wandler zusätzlich brauche, dann kann ich auch gleich einen vertrauten > µC dran hängen. > > Nicht jeder möchte ein bereits bestehendes Programm auf eine ganz andere > Hardware mit Betriebsystem migrieren, nur um eine WLAN Schnittstelle > hinzuzufügen. Seit der ESP mit der Ardino Umgebung programmierbar ist, sind diese Argumete obsolet. Wenn mir die Schnittstellen des ESP nicht reichen, lasse ich höchstens einen AVR als slave laufen und binde ihn mit I2C ein. Was die FW betrifft, ist die defaultmäßig vorhandene ja wohl das allerletzte auf die ich mein Design aufbauen würde, Gruß Andreas
>> Doch, und zwar das man den Umgang mit einem anderen noch nicht >> vertrauten µC lernen muss, dazu ein noch nicht vertrautes SDK mit >> bekanntlich mangelhafter Dokumentation, eventuell eine andere IDE. >> Nicht jeder möchte ein bereits bestehendes Programm auf eine ganz andere >> Hardware mit Betriebsystem migrieren, nur um eine WLAN Schnittstelle >> hinzuzufügen. > Seit der ESP mit der Ardino Umgebung programmierbar ist, > sind diese Argumete obsolet. Vorausgesetzt, Arduino gehört zu den bereits vertrauten und akzeptierten Entwicklungsumgebungen. > Was die FW betrifft, ist die defaultmäßig vorhandene ja wohl das > allerletzte auf die ich mein Design aufbauen würde Du hast das zwar nicht begründet, aber ich kann mir gute Gründe für deine Entscheidung vorstellen. Dennoch sind andere Meinungen (vor allem unter anderen Rahmenbedingungen) auch legitim, oder?
Stefan U. schrieb: >> Seit der ESP mit der Ardino Umgebung programmierbar ist, >> sind diese Argumete obsolet. > Vorausgesetzt, Arduino gehört zu den bereits vertrauten und akzeptierten > Entwicklungsumgebungen. Jemand, der sich außerhalb der Arduino Welt bewegt dürfte es umso leichter fallen, mal über den Tellerrand zu blocken. > >> Was die FW betrifft, ist die defaultmäßig vorhandene ja wohl das >> allerletzte auf die ich mein Design aufbauen würde > > Du hast das zwar nicht begründet, aber ich kann mir gute Gründe für > deine Entscheidung vorstellen. Dennoch sind andere Meinungen (vor allem > unter anderen Rahmenbedingungen) auch legitim, oder? Also jeder der mal mit einem ESP mal gearbeitet hat, wird feststellen, daß die vorhandene FW Versionen je nach Lust und Laune mal funktionieren oder auch nicht, von den verschiedenen zufallsbedingten Versionen, die da defaultmäßg drauf sind, mal ganz abgesehen. Daher bin ich davon ausgegangen, dies nicht näher begründen zu müssen. Deine Meinung ist legitm, aber eben nur Deine Meinung. Ich habe eben eine andere. Wenn Du mal eine etwas kompliziertere Webseite aufbauen würdest, die sich außerdem auch noch schnell aufbauen soll, würdest Du Deine Meinung aber vermutlich recht schnell ändern. Sorry, aber einen ESP als Slave eines AVR zu verwenden und den lediglich mit der vorhandenen FW via RS232 an einem AVR anzubinden ist wie einen Porsche mit einem Fahrrad zu ziehen. Gruß Andreas
> Wenn Du mal eine etwas kompliziertere Webseite aufbauen > würdest, die sich außerdem auch noch schnell aufbauen soll, > würdest Du Deine Meinung aber vermutlich recht schnell ändern. Zweifellos sind AVR's eher nicht geeignet, Webserver zu spielen. Eine simple Seite mit ein paar Buttons geht noch, aber viel mehr nicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.