Liebes Board, ich suche etwas, kann es Google aber nicht klar machen. Es ist zumindest kein elektrischer Generator oder Inverter. Ich suche eine AVR SW die aus einem ATmega (Arduino) einen Digitalsignalgenerator (engl. digital pattern generator) mit mehreren Kanälen macht. Das müssen schon tausende vor mir gewollt und realisiert haben. Ich mag aber keinen Rechteckgenerator, keine PWM, keinen Funktionsgenerator, keinen Sinusgenerator, keine DDS, sondern einfach Pin an/aus/hochohmig. Es braucht auch nichts einlesen. Ich brauche es um Steuersequenzen als Stimuli an Schaltungen zu geben. Später werden die Stimuli dann von den fertigen Geräten selbst erzeugt, vorher möchte ich Teile aufbauen und mit statischen Sequenzen anregen. Mögliche Realisierung: Ich möchte eine Datei per Terminalprogramm an den uC schicken, dann den Taster kurz betätigen oder den Ext-Interupt elektrisch auslösen und der Inhalt der Datei wird abgespielt. (Die ganze Datei wird übertragen aber der uC speichert sie nicht im Textformat.) Dazu soll die Datei aus drei Befehlen bestehen: Time-base, set <time> <pin> <state>, end-of-file Das dürfte ausreichend beschreiben was ich suche. Hat jemand so etwas schon gesehen oder kann einen effektiven Suchstring empfehlen? Vor 20 Jahren hätte man so etwas mit dem Parallelport gemacht.
:
Verschoben durch User
Moritz G. schrieb: > Hat jemand so etwas schon gesehen oder kann einen effektiven Suchstring > empfehlen? Pattern Generator? https://www.ikalogic.com/scanaquad-logic-analyzer-signal-generators/
Moritz G. schrieb: > Das dürfte ausreichend beschreiben was ich suche. Sicher? Ganz spontan fallen mir dazu als weitere Fragen ein: - wieviele Kanäle - welcher minimale Flankenabstand - wie umfangreich sind die Pulsformen (Flankenanzahl, Sequenzdauer)
Und wenn du es mit einem AVR machen willst, schickst du die begrenzte Anzahl von Zuständen von 8 Ports in sein SRAM, gibst grob die Taktfrequenz vor und los gehts.
Wolfgang schrieb: > - wieviele Kanäle > - welcher minimale Flankenabstand > - wie umfangreich sind die Pulsformen (Flankenanzahl, Sequenzdauer) "aus einem ATmega (Arduino)" Das Ganze ist ohne Anspruch. Einfach ein paar bits zu vorgegebener Zeit setzen. Pulse von 10us Dauer sind völlig ausreichend und ohne ASM machbar. Wenn ich nichts finde schreibe ich es am WE selbst. Ich werde einfach einen Port nehmen damit es Gleichzeitigkeit gibt und eine Serie von 24 bit "Befehlen" im 2KB SRAM speichern. Immer wenn der Zählerstand im "Befehl" erreicht ist wird das Byte an den Port geschrieben. Ganz simpel.
Moritz G. schrieb: > Wenn ich nichts finde schreibe ich es am WE selbst. Das könnte schon längst fertig sein. Der größte Aufwand wird wohl der Interpreter für deine Textdatei ...
Moritz G. schrieb: > Ich werde einfach einen Port nehmen damit es Gleichzeitigkeit gibt und > eine Serie von 24 bit "Befehlen" im 2KB SRAM speichern. Immer wenn der > Zählerstand im "Befehl" erreicht ist wird das Byte an den Port > geschrieben. > Ganz simpel. Warum hast du es dann nicht schon längst gemacht ? Ohne eigene Ideen, ohne entsprechendes Wissen, unfähig selbst danach zu googeln, aber ganz simpel ? LOL.
Wolfgang schrieb: > Das könnte schon längst fertig sein. Ja, aber erst mal einen Arduino aus dem Keller holen, die SW installieren und damit klar kommen ... Und wer kommt schon auf die Idee, dass es das nicht tausendfach zum Runterladen gibt? > Der größte Aufwand wird wohl der Interpreter für deine Textdatei Nicht mehr als andere Teile. Bei 3 (zeiteinheit, @t set p w, eof) Befehlen muss man keine Erfahrung im Schreiben von Parsern haben. An die Vorlesung erinnere ich mich auch nicht mehr. Einen Baum/Graph der Sprache werde ich wohl nicht brauchen.
also wenn die Signale zeitlich zueinander immer gleich bleiben und nur die Frequenz steigt oder fällt dann wäre das vielleicht per Abgespeicherten Pulsformen etwas. Wenn um eine Motoranwendung geht vielleicht gleich soetwas kaufen https://www.aliexpress.com/item/Automotive-Signal-Sensor-Signal-Simulation-Tool-for-reverse-engineering-testing-and-repair-create-custom-waveforms/32668804090.html?
Hier die erste funktionstüchtige Version. Trotz der wenigen Befehle und des grundsätzlich einfachen Prinzips, war das Einlesen von der Seriellenschnittstelle und der Umwandlung von Buchstaben zu interner Darstellung für mich nicht leicht. Man kann es auf viele Arten machen, vermutlich bin ich bei der Textverarbeitung einen unguten Mittelweg gegangen. Vom Arduino Framework und seiner Dokumentation bin ich nicht überzeugt worden. Die Nutzung von C++ macht die Funktionsweise undurchsichtig und benötigt dynamische Speicherverwaltung. Ich konnte keinen SW Mechanismus als Ersatz für die Output Compare Unit finden. Das Arduino Programm ist jedoch leicht zu installieren, seine GUI leicht zu benutzen und die eingebaute Terminalfunktion praktisch. Ich würde mir im Nachhinein raten es nicht zu benutzen.
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.