AVR Embedded Webserver + Zeit

Ich habe die Aufgabe, einen eingebetteten Webserver (mit ATMega328) zu implementieren. Allgemein würde das System die folgende Funktionalität bereitstellen

  • Erlauben Sie dem Benutzer, Systemparameter über die Webschnittstelle zu ändern
  • Überprüfen Sie regelmäßig die Zeit (mit NTP oder dergleichen) und aktualisieren Sie die interne RTC mit der richtigen Zeit

Meine Fragen sind

  • Sollte ich mit ENC28J60 oder Wiznet5100 oder höherem Chip gehen. ENC28J60 scheint bei Tonnen von Tutorials, Suchergebnissen usw. beliebter zu sein. Aber es scheint, dass die Wiznet5100-Serie mit integriertem TCP/IP-Stack ausgestattet ist, was die Dinge auf der MCU-Seite einfacher machen sollte

  • Irgendwelche Vorschläge für den Webserver? Idealerweise möchte ich, dass es mit Bildern und dergleichen poliert aussieht.

  • Soll ich für den Zeitteil NTP oder die einfachen (aber älteren) Alternativen wie daytime oder time verwenden?

Für ein 328P willst du auf jeden Fall das Wiznet. 2K ist kaum genug Speicher, um ein Ethernet-Paket zu speichern, daher sind die ENC28J60-Stacks ernsthaft gehackt und verkrüppelt.
Sie wären wahrscheinlich viel besser dran, einen anständig klobigen Armkern auf dieses Projekt zu werfen. Es gibt ARM-MCUs mit integrierten Ethernet-PHYs. Es ist nicht ganz das, was Sie tun, aber hier ist ein eingebetteter STM32-basierter NTP- Server .
@Connor Für dieses Projekt habe ich mich für wiznet5100 entschieden. Intakt ist es fast fertig. Was ich gerne wissen würde, ist, wie groß der Sprung ist, wenn es darum geht, von Atmega 8-Bit-MCU zu den 32-Bit-MCU zu lernen?
Ich habe kürzlich ein Projekt mit einigen Atmel ATSAM-Teilen durchgeführt. Wenn Sie AVR Studio verwenden, ist es kein allzu großer Sprung. Wenn Sie es manuell tun, ist es wahrscheinlich viel mehr Arbeit. Was soll das Ding eigentlich ? Eine 8-Bit-MCU ist im Allgemeinen für alles, von dem erwartet wird, dass es einen vollständigen TCP/IP-Stack ausführt, ziemlich unterfordert.

Antworten (1)

Überprüfen Sie regelmäßig die Zeit (mit NTP oder dergleichen) und aktualisieren Sie die interne RTC mit der richtigen Zeit

Sollte kein Problem sein, obwohl der Atmega328 keine interne RTC hat. Es hat einen Timer, aber das füllt sich. Sie benötigen so etwas wie einen DS1307, wenn Sie eine RTC benötigen.

Sollte ich mit ENC28J60 oder Wiznet5100 oder höherem Chip gehen.

Das Wiznet wäre vorzuziehen, obwohl Sie sich mit seinem besseren Stack für eine bessere Sicherheit entscheiden oder mit dem ENC28J60 gehen und eine starke Community-Unterstützung erhalten können.

Irgendwelche Vorschläge für den Webserver? Idealerweise möchte ich, dass es mit Bildern und dergleichen poliert aussieht.

Es wird zwar nicht der beste Webserver sein, aber die Leute haben es getan. Ich war selbst neugierig darauf. Schauen Sie sich diesen sehr vielversprechenden Link an

Sie werden nicht viel mit dem Server machen können, aber Sie können einige grundlegende GPIO-, SPI- und I2C-Sachen machen.

Soll ich für den Zeitteil NTP oder die einfachen (aber älteren) Alternativen wie daytime oder time verwenden?

Dies liegt ganz bei Ihnen

Viel Glück!

Danke für die Antwort. Ja, ich plane, einen externen RTC-Chip zu verwenden. Für das Zeitprotokoll scheint Zeit/Tageszeit einfacher als NTP zu sein, aber eine geringere Genauigkeit zu haben und gelten als Legacy-Protokolle, seit NTP eingeführt wurde. Ich benötige für mein Projekt keine sehr genaue Zeitgenauigkeit, möchte aber sicherstellen, dass auf absehbare Zeit Zeitserver verfügbar sind, damit meine Codierung nicht verschwendet wird