Inhaltsverzeichnis:

Esp8266 Taktgeber und Impulsgenerator - Gunook
Esp8266 Taktgeber und Impulsgenerator - Gunook

Video: Esp8266 Taktgeber und Impulsgenerator - Gunook

Video: Esp8266 Taktgeber und Impulsgenerator - Gunook
Video: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, November
Anonim
Esp8266 Takt- und Impulsgenerator
Esp8266 Takt- und Impulsgenerator

Dieses anweisbare ist für ein einfaches Testgerät; ein Takt- und Impulsgenerator.

Es verwendet die i2S-Hardwareschnittstelle auf einem esp8266, um einen Testtakt oder eine Pulssequenz zu generieren. Dies ermöglicht einen einfachen Aufbau, da für ein Basissystem keine spezielle Hardware erforderlich ist.

  • Takterzeugung von 2Hz bis 20MHz
  • Jede Frequenz kann verwendet werden
  • Sucht nach der besten Übereinstimmung von Taktteilern und Bitlänge von 160MHz Basistakt
  • Typischerweise besser als 0,1 % Übereinstimmung für Frequenzen < 100 KHz
  • Auswahl des Markierungsabstandsverhältnisses
  • Die Toleranz für die Frequenzanpassung kann gelockert werden, um eine bessere Handhabung des Markierungsraums zu erreichen
  • Pulsfolgegenerierung basierend auf Definitionen in Dateien
  • Webbasierte GUI zur Steuerung von PC, Telefon, Tablet
  • WLAN-Verwaltung für eine einfache Ersteinrichtung des Routers
  • OTA-Software-Update
  • Verwendet eine spezielle I2s-Bibliothek (i2sTXcircular) für flexible Steuerung

Schritt 1: Hardware

Hardware
Hardware
Hardware
Hardware

Ich habe meine in einem 3D-gedruckten Gehäuse gebaut, das einen 18650-Akku mit einem USB-Ladegerät, einem Ein- / Ausschalter und einem 3-poligen Header-Stecker für das Ausgangssignal enthält.

Das Gehäuse hat einen schmalen Schlitz, um die Elektronik neben dem Akku zu halten.

Das Signal kommt aus dem GPIO3-Pin (RX). Dies kann direkt verwendet werden, aber für eine höhere Laufwerkskapazität habe ich mich entschieden, einen kleinen Puffer mit einem 74LVC2G34 aufzunehmen. Ich habe die beiden Puffer in diesem Gerät parallel geschaltet, um noch mehr Antriebsfähigkeit zu bieten.

Alles wird nur in der Software im Gerät erledigt, und die Steuerung erfolgt über die Bereitstellung eines Webservers, sodass ein Browser auf einem PC, Telefon oder Tablet die volle Kontrolle bietet.

Schritt 2: Software

Verwenden Sie zum Erstellen und Einrichten der Software den Code unter

  • Installieren Sie die i2sTXcircular-Bibliothek (enthalten)
  • BaseSupport-Bibliothek installieren (https://github.com/roberttidey/BaseSupport)
  • WifiManager-Bibliothek hinzufügen
  • Passwörter in BaseConfig.h. bearbeiten
  • Kompilieren und hochladen in der Arduino-Umgebung
  • Richten Sie die WLAN-Netzwerkverwaltung ein, indem Sie eine Verbindung zum AP herstellen und zu 192.168.4.1. navigieren
  • Laden Sie den grundlegenden Satz von Dateien aus dem Datenordner mit STA ip/upload hoch
  • weitere Uploads können dann über ip/edit erfolgen - normale Schnittstelle ist unter ip/

Wie es funktioniert

Die i2sTXcircular-Bibliothek ermöglicht den Aufbau einer Ringkette von Puffern, die dann automatisch von der i2S-Hardware auf dem esp8266 unter Verwendung von DMA ausgegeben werden, so dass kein Software-Overhead verwendet wird, sobald es läuft.

Der Grundtakt des Geräts beträgt 160 MHz, der durch ein Paar Teiler unterteilt wird. Das Ausgangssignal wird dann dadurch bestimmt, welche Daten in die Puffer eingegeben werden, die durch den heruntergeteilten Takt ausgegeben werden. Durch die Wahl der beiden Teiler und die Verwendung von potentiell mehreren Datenbits, um jeden Impuls darzustellen, kann eine Frequenz ziemlich genau angenähert werden. Es ermöglicht auch die Variation des Tastverhältnisses (Mark/Pausen-Verhältnis der Taktimpulse).

Der Javascript-Code des Browsers versucht, die Wahl der Parameter zu optimieren, um eine genaue Übereinstimmung mit jeder ausgewählten Frequenz zu erzielen.

Obwohl der Hauptzweck darin besteht, Takte zu erzeugen, ist es auch möglich, komplexere Impulsfolgen zu erzeugen, indem eine Definition in eine Impulsdatei eingegeben wird, die dann die Daten steuert, die erzeugt und in den Ringpuffer eingegeben werden. Details sind in den Beispiel-Impulsdateien enthalten.

Schritt 3: Betrieb

Der Betrieb wird über die im Hauptbild gezeigte Browseroberfläche gesteuert.

Für die normale Takterzeugung wählen Sie einfach den Zieltakt und das Mark-Space-%-Verhältnis aus. Die tatsächlich erreichte Uhr und ihr Fehler werden angezeigt. Wenn die Schaltfläche Generate Clock gedrückt wird, werden die Parameter an das Gerät gesendet und die Clock-Generierung mit diesen Parametern beginnt.

Durch Klicken auf die Leiste Erweitert können weitere Details angezeigt werden.

Der Bittakt zeigt das verwendete Teiler von 160MHz an.

Markierungs- und Leerzeichen-Bits zeigen an, wie viele Bits verwendet werden, um Markierungen und Leerzeichen darzustellen.

Div1 und Div2 zeigen die zwei Teiler, die ausgewählt wurden, um den nächsten Bittakt zu erzeugen.

Normalerweise werden die beiden Teiler so gewählt, dass sie der gewählten Frequenz am nächsten kommen und die Anzahl der verwendeten Datenbits maximieren, was dazu beiträgt, mehr Flexibilität beim Zulassen unterschiedlicher Arbeitszyklen bereitzustellen. Manchmal führt die beste Übereinstimmung jedoch zu einer niedrigen Bitzahl, die wenig Raum zum Ändern des Tastverhältnisses lässt. Durch Ändern des Toleranz-%-Werts werden die Teiler so gewählt, dass sie eine Frequenz innerhalb dieser Toleranz ergeben, jedoch möglicherweise mehr Datenbits verwendet werden. Versuchen Sie zum Beispiel, die Toleranz auf 0,5 oder 1 einzustellen.

Sie können auch die Bits pro Wortnummer einstellen, um die Auswahl der Parameter zu steuern. 0 (Standard) bedeutet, dass beliebige Bits pro Wort ausgewählt werden. Eine einzelne Zahl (z. B. 24) bedeutet, dass nur Parameter ausgewählt werden, die damit übereinstimmen. Sie können auch einen Bereich eingeben (z. B. 24, 31). Dies funktioniert nur für Ziel-Hz über 10KHz, darunter wird diese Skalierung wirksam, so dass die Zahl hochmultipliziert wird.

Die Puffergröße zeigt den gesamten Pufferabstand, der in 32-Bit-Wörtern verwendet wird. Dies wird gewählt, um sicherzustellen, dass der Taktimpuls eine perfekte kreisförmige Einpassung in den Puffer bildet. Intern ist dieser Puffer in eine Anzahl kleinerer Puffer aufgeteilt, damit der verkettete DMA funktionieren kann.

Wählen Sie für den Impulsbetrieb die Registerkarte Impulse. Dies zeigt die verfügbaren Pulsdateien und eine Schaltfläche neben jeder an, die eine Pulsfolge basierend auf ihrer Definition erzeugt. Sie können den Inhalt der Datei anzeigen, indem Sie auf den Link klicken. Weitere Pulsdateien können mit dem IP/Edit-Dateibrowser hochgeladen werden. Sie sollten mit dem Namen Puls beginnen.

Empfohlen: