Im Anhang ist Quellcode und Schaltung eines kleinen Funktionsgenerators mit ATTiny2313, LCD2x16 und Drehgeber. Es kann zwischen 4 Kurvenformen umgeschaltet werden: - Sinus, - Dreieck, - steigender Sägezahn und - fallender Sägezahn. Bei Sinus sind Frequenzen von 16 Hz bis 25 kHz in 59 Stufen erreichbar, Kurvenform, Periodendauer, Frequenz und Ausgaberate werden am LCD angezeigt. Die Ausgabe erfolgt gleichzeitig über 3 Ausgänge: - 8-bit breit parallel, - analog roh mit Gleichspannungsanteil (also 0V...+5V) und - analog über Koppelkondensator (-2,5V...+2,5V). Um die Stromversorgung einfach zu halten (4 NiMH-Akkuzellen), wurde auf eine Nachbehandlung des erzeugten Analogsignals per OPV verzichtet. Nein, es ist nicht der ultimative Sinusgenerator, der alle Probleme dieser Welt lösen soll, sondern nur eine kleine Spielerei mit den knappen Ressourcen des Tiny2313. ~
@ref Ich weiß nicht, was der Link soll. @All Ich habe das Gerät aufgebaut und bin damit sehr zufrieden. Es ist erstaunlich, wie der Sinusgeek es geschafft hat, diese Funktionen in dem kleinen Tiny unterzubringen. Sicher mußte er beim Flashen eine Schlauch- schelle um den Kontroller machen. ;-)) Falls sich bei meinem Foto jemand fragt, wo die Widerstände sind: Das R2R-Netzwerk besteht aus lauter einzelnen SMD-Widerständen unter der Platine. Tinnitusgeek
Tinnitusgeek wrote:
> Falls sich bei meinem Foto jemand fragt,
Bei dem Foto frage ich mich nur, ob es die fast 200kByte wert ist, die
es Platz wegnimmt.
Ein wenig schärfer und als jpg und man könnte da sehr viel mehr
erkennen, bei kleinerer Dateigröße.
Finde ich eine Super Idee, das Teil! Hattest Du die Zeichnung der R/2R Leiter mal kontrolliert? Du hast alle Portausgänge an Masse und gehst von Masse weiter mit einem Widerstand zum Ausgang (oder kriege ich meine Augen nach der Party gestern nicht richtig auf?...). Ansonsten Superklein und elegant gelöst. Es gibt von übrigens von Neutrik ein fertiges Teil mit den gleichen Funktionen, was über 200,- kostet und wo man mit dem Scope die einzelnen Schritte sehen kann. Dein Generator ist da mit Sicherheit nicht schlechter! Viele Grüße Axel
Nagut, dann hänge ich auch mal 3 Fotos vom Original an, weitere 95K verschwendeter Serverplatz. Bei mir gibt es das R2R-Netzwerk allerdings als integriertes Widerstandsnetzwerk 10k/20k. Da ich keine Lust hatte, dafür ein Eagle-Device zu erstellen, nahm ich ein einfaches Widerstandsarray mit 9 Widerständen und 10 Pins für das Schaltbild, eingebaut ist aber das echte R2R. Ebenso verhält es sich mit Drehgeber und LCD, hier wurden im Schaltplan Pinheads verwendet. Als Gehäuse benutzte ich eine Diskettenbox aus PE oder PP. > Du hast alle > Portausgänge an Masse und gehst von Masse weiter mit einem Widerstand > zum Ausgang Diese Aussage kann ich jetzt nicht nachvollziehen. Ich habe parallel zum R2R-Netzwerk noch einen 10-poligen Wannenstecker, um das Bitmuster im Sägezahnbetrieb binär abgreifen zu können. Bei zu starker Belastung verfälscht das zwar den Analogwert, aber man nutzt ja nicht Beides zugleich. Da das Analogsignal des R2R einen Gleichspannungsanteil von der halben Betriebsspannung hat, gibt es neben dem direkten Analog-Ausgang noch einen zweiten Analog-Ausgang, bei dem das Signal über einen C entkoppelt ist und von einem R auf GND symmetriert wird. Hier hat das Schaltbild noch einen Dimensionierungsfehler, statt der angegebenen 100nF hatte ich 1µF geplant und auch verbaut. Es ist halt nur ein Beschriftungsfehler. Vermutlich würde es aber mit 100nF genausogut gehen. ;-) ~
Hallo Sinusgeek, tolles Projekt! wo hat Du die R/2R-Netzerke her? Gruss Hannes
...Bei mir gibt es das R2R-Netzwerk allerdings als integriertes Widerstandsnetzwerk 10k/20k. Da ich keine Lust hatte, dafür ein Eagle-Device zu erstellen, nahm ich ein einfaches Widerstandsarray mit 9 Widerständen und 10 Pins für das Schaltbild, eingebaut ist aber das echte R2R. Ebenso verhält es sich mit Drehgeber und LCD, hier wurden im Schaltplan Pinheads verwendet... Dann habe ich das auch verstanden mit dem Schaltplan. Viele Grüße Axel
@ Gast (Gast) >> Falls sich bei meinem Foto jemand fragt, >Bei dem Foto frage ich mich nur, ob es die fast 200kByte wert ist, die >es Platz wegnimmt. Hey, das Motzen über Bildformate ist mein Job ;-) MFG Falk P.S. Und ja, der ref hat Recht. Das DDS-Projekt ist dreimal besser als die halbgare Lösung vom Sinusgeek.
@Falk: Dann bitte ich Dich ganz freundlich, diesen Thread umgehend zu löschen oder löschen zu lassen, falls Du jetzt nicht mehr selbst löschen darfst. ~
Was ist denn hier los ? Klar gibts immer besseres, aber ich find das Projekt in Ordnung. Ob man sich nun ein Funktionsgenerator mit einem XR2206 bastelt oder den hier nimmt macht keinen Unterschied. Muss ja nicht immer alles Profihaft sein. @Sinusgeek : Nicht gleich eingeschnappt sein, manchmal sind hier selbst die Mods etwas, ähh, sagen wir mal "komisch"
> Nicht gleich eingeschnappt sein, Bin ich doch nicht... Dass ein Sinusgenerator mit speziellem DDS-IC oder die Variante mit dem Mega8 besser sind, das ist mir auch bewusst. Ich zitiere deshalb nochmal den letzten Absatz des Eröffnungsposts: > Nein, es ist nicht der ultimative Sinusgenerator, der alle Probleme > dieser Welt lösen soll, sondern nur eine kleine Spielerei mit den > knappen Ressourcen des Tiny2313. Ich hatte es in die Codesammlung eingestellt, um anderen Anfängern etwas Stuff zum Analysieren und Bessermachen zu geben. Ich hatte zwar schon vorher befürchtet, dass Sowas hier nicht willkommen ist, aber jetzt weiß ich es sicher und werde nichts wieder in die Codesammlung einstellen. Ich bitte Andreas bzw. einen Moderator, diesen Thread zu löschen. ~
>Ich bitte Andreas bzw. einen Moderator, diesen Thread zu löschen.
Ach nö. Bitte nicht.
Das Projekt ist doch auch gut angekommen. Man sollte sich nicht von 2
Mise-Petern, die mit der Wlet nicht im Reinen sind, hier entmutigen
lassen.
Ich finde dieses Mini-Projekt auch gut.
> Woher bekommt man eigentlich den Drehgeber ?
www.pollin.de
~
Jason Bourne wrote:
> Woher bekommt man eigentlich den Drehgeber ?
www.reichelt.de
Nein, den hier verwendeten Drehgeber, für den die Tabelle angepasst ist, gibt es bei Pollin unter Bestellnummer 240 313. ~
Nur nicht abschrecken lassen! Ich find das Ding gut gemacht und für die schnelle Bastelei zwischendurch wirklich lohnenswert. bye Frank
Hallo Wenn einer nach einen Codschnipsel fragt wird er "runtergemacht" und eigenartigerweise das gleiche wenn ein Cod eingestellt wird. ;-)
>Ich hatte zwar schon >vorher befürchtet, dass Sowas hier nicht willkommen ist, aber jetzt weiß >ich es sicher und werde nichts wieder in die Codesammlung einstellen. Blödsinn. Wenn alle hier die das gut finden posten würden, dann würden die zwei drei negativ Poster sang und klanglos in der positiven Masse untergehen. Es fallen ja immer nur die negativen Sachen auf. Vom Gutem hört mann nichts, es funktioniert ja. Also.... weitermachen. Schöne Weihnachten Franz-Rainer
Hm, da bastelt jemand in seiner Freizeit was nettes, setzt das hier rein und bekommt als Dank nur negative Kommentare von irgendwelchen Spinnern...Schade! Ansonsten wünsche ich Euch ein ruhiges und nettes Weihnachtsfest und weiterhin viel Spaß beim Entwickeln in Eurer Werkstatt oder Büro. Viele Grüße Axel
Von mir mal etwas konstruktive Kritik ;) Ich verstehe das Projekt eher als Basteltool um 'mal eben' ein Testsignal zu generieren. Und das mit Bauteilen, die in jeder Bastelkiste herumliegen. Klar, dass es bessere Lösungen gibt, aber für den Bastel und Materialaufwand der für Sinus' Lösung notwendig ist, ist das schon ganz Ok. Und jetzt als Anregung: Das Display und der Drehgeber stören im Konzept ;) Wenn man den Funktionsgenerator per UART konfigurieren könnte, hätte man wirklich nur den ATtiny, einen Max und bissl Hühnerfutter. Mal sehen, wenn über Weihnachten nicht zuviel Verwandschaft kommt, schau ich mal über den Code. Die Änderung wär mal ein schönes Samstagnachmittagsprojekt.
@ Axel Joost (Firma Optogate) (tonaxel) >Hm, da bastelt jemand in seiner Freizeit was nettes, setzt das hier rein >und bekommt als Dank nur negative Kommentare Seid ihr alle kritikunfähig? Ist nur noch Lobhudelei angesagt? Ist ein nicht mehr politisch korrekt, auf Unterschiede und bessere Dinge zu verweisen? Keiner hat gesagt, das Projekt sei der letzte Dreck. Aber es gibt bessere. Und ich meinte eher das hier, ist auch ein 2313. http://www.myplace.nu/avr/minidds/index.htm Nicht den Artikel Digitaler Funktionsgenerator. >Ansonsten wünsche ich Euch ein ruhiges und nettes Weihnachtsfest und >weiterhin viel Spaß beim Entwickeln in Eurer Werkstatt oder Büro. Ebenfalls. MFG Falk
> Keiner hat gesagt, das Projekt sei der letzte Dreck. Aber es gibt > bessere. Und ich meinte eher das hier, ist auch ein 2313. > http://www.myplace.nu/avr/minidds/index.htm Jup, so in der Art hatte ich mir das vorgestellt. Nur eben ohne den MAX603.
Lasst doch mal den Sinusgeek in Ruhe. Wenn Euch seine Schaltung nicht gefällt, müsst ihr sie ja nicht nachbauen. Wenn ihr statt dem Display lieber einen 232 dranhaben wollt, dann baut Euch doch einen dran und passt die Software an. Oder könnt ihr das nicht? Dieses fiese, herzlose Rumgemeckre, echt zum Kotzen. Stellt lieber selber mal was kreatives ein, ihr Knilche. >Jup, so in der Art hatte ich mir das vorgestellt. Nur eben ohne den >MAX603. Dann mach halt.
> Wenn ihr statt dem Display lieber einen 232 dranhaben wollt, dann baut > Euch doch einen dran und passt die Software an. Genau das hatte ich gesagt. Und wenn ich Zeit dafür finde es zu tun, werde ich natürlich das Ergebnis hier in dem Thread posten. Das ist doch der Sinn für die Codesammlung, das man gute Ideen allen zur Verfügung stellt und bestehende Projekte verbessert, oder? Ich vemute mal der Falk hat einen Blick in den Code geworfen, da sind tatsächlich noch etlich ToDos bzw. Stellen wo etwas gefrickelt wurde. Mal hier ein Codeblock auskommentiert, mal da ein 'sei' probeweise drin. Übrigens gibt es hier etliche Projekte die anfangs bei weitem nicht perfekt waren und sich dann durch die Mitarbeit vieler prima entwickelt haben. Ich würde mich freuen, wenn sich hieraus ein 2-Bauteile DDS werden würde. Und wenn der Sinusgeek was gegen meine Idee hat, wird er das ganz sicher sagen. ;)
> Seid ihr alle kritikunfähig? Ist nur noch Lobhudelei angesagt? Nein, Kritik als Solches stört nicht, denn bei echter (konstruktiver) Kritik nennt man die Punkte, die "halbgar" geraten sind. > Ist ein nicht mehr politisch korrekt, auf Unterschiede und bessere Dinge > zu verweisen? Mit Deiner Art, die von vielen Leuten im Forum als arrogant empfunden wird, erreichst Du aber das Gegenteil. > Keiner hat gesagt, das Projekt sei der letzte Dreck. Zwischen den Zeilen schon. > Aber es gibt > bessere. Und ich meinte eher das hier, ist auch ein 2313. > http://www.myplace.nu/avr/minidds/index.htm Dieses Projekt hat aber kein LCD und benötigt einen PC zur Ausgabe. Du vergleichst also Äpfel mit Birnen. Ich mag übrigens keine Geräte/Hilfsmittel, die bei jedem Einsatz gleich einen PC brauchen. Mir ging es neben der Signalerzeugung also auch um die Ausgabe auf dem LCD. Gebaut habe ich es, weil ich einen Generator mit Frequenzteiler (also die 8 binären Signale) brauchte und gerade keinen Binärzähler in TTL oder CMOS vorrätig hatte (die CMOS/TTL-Zeit ist dank der kleinen AVRs vorbei, wenn es nicht gerade um hohe Frequenzen geht). Das R2R-Netzwerk und die Sinustabelle wurde nur hinzugefügt, weil noch Platz im Tiny2313 war. Der Rest des Platzes wurde dann mit der Frequenzliste aufgefüllt. Ich gehöre halt zu Denen, die auch mal was selbst machen und nicht nur fertige Lösungen Anderer (oft unverstanden) nachbauen. Dass dies zwangsmäßig zu schlechteren Lösungen führt, sollte verständlich sein. Wobei das auch immer eine Frage der Ansprüche ist. Das Jesper-Teil hättest Du mir fertig aufgebaut und funktionsfähig (was bei Jespers Projekten nicht gerade selbstverständlich sein soll) schenken können, ich hätte es abgelehnt, weil ich nicht bereit bin, mich für so eine Kleinigkeit vom PC abhängig zu machen. Weiterhin ging es mir bei dem Projekt darum, "Herrn Tinnitusgeek" etwas näher an ASM heranzuführen, er hat nämlich per Mail jeden Entwicklungsschritt des Programms bekommen und diese und jene Einzelheit auf Nachfrage auch erklärt bekommen. Aber das sind Dinge, die Du, Falk Brunner, vermutlich nicht nachvollziehen kannst, Du bist ja bereits mit all Deinem glänzenden Fachwissen geboren worden. Zumindest kommt das so rüber, wenn man Deine Beiträge liest. > Nicht den Artikel Digitaler Funktionsgenerator. Der ist (war er zumindest vor einigen Jahren, aktuell habe ich es mir nicht nochmal angesehen) aber auch nicht von schlechten Eltern. Schöne Weihnachtsgrüße... ~
> Mal hier ein Codeblock auskommentiert, mal da ein 'sei' probeweise drin. Danach hätte man konkret fragen können, dann hätte es auch konkrete Antworten gegeben. Teile des Programms bestehen aus wiederverwertbarem Code, da werden unbenutzte Teile meist nur auskommentiert. Was ist denn auskommentiert und warum? - In der Reset-Routine die Taktumschaltung des AVRs, Takt wurde per Fuse umgestellt, spart 14 Bytes Platz im Flash für knapp anderthalb Tabelleneinträge der Frequenzliste. - In der Reset-Routine wurde sei deaktiviert, weil ich zwischenzeitlich während des Lesens eines Datensatzes aus der Frequenzliste den Interrupt sperren ließ (Z-Pointer-Konflikt). Später sah ich dann, dass es in der ISR ohne Z-Pointer-Sicherung nicht geht (hätte ich mir gern erspart, habe sie aus Laufzeitgründen nicht über den Stack realisiert, sondern über untere Register), da war dann das Sperren des Interrupts wähend der LPM-Orgie und Textausgabe nicht mehr nötig. Das sei ist auch nicht probeweise drin, für Flashbedarf und Programmablauf ist es relativ egal, ob die globale Interruptfreigabe vor der Mainloop oder nach jeder Textausgabe erfolgt. - Für den Drehgeber gibt es zwei Tabellen, von denen eine deaktiviert ist. Der Grund liegt darin, dass die Drehgeber auf einer Spur (immer derselben) etwas Wackelkontakt haben (unsauber schalten). Je nachdem, wierum der Drehgeber angeschlossen ist, wird die eine oder die andere Tabelle benutzt. Auch hier handelt es sich um einen wiederverwendbaren Codeabschnitt. - In den Textausgabe-Routinen wurde die Ausgabe aus SRAM deaktiviert, da sie nicht gebraucht wurde. Das schafft etwas Platz für die Frequenzliste. Wie gesagt, man hätte nachfragen können, warum ich Dieses oder Jenes so und nicht anders gemacht habe, dann hätte es auch eine konkrete Erklärung dafür gegeben. > Und wenn der Sinusgeek was gegen meine Idee hat, wird er das ganz sicher > sagen. ;) Mach doch, wenn Du willst. Wenn ich den Code nur zum Nachbau freigegeben hätte, dann wäre nur die Hexdatei veröffentlicht worden. Nimm das Gefrickel raus und bau' was Anständiges rein... ~
@Falk Brunner Dieser Falk Brunner, nörgelt nur und verweist immer auf auf andere Beispiele!!!!!!!!
Also ich find das Projekt super - gerade weil es ein Display hat und ohne PC genutzt werden kann. Das kann dann super mit Batterien betrieben werden und ist so idel für den schnellen Basteleinsatz! Ich kann alle Leute, die ähnliches in der Schublade haben, nur ermutigen, das auch hier zu veröffentlichen. Und die Profinörgler möchte ich bitten, einfach den Finger von der Tastatur zu lassen, wenn es Ihnen nicht gefällt. Mfg Wolfram Herzog www.flugwiese.de
>Dieser Falk Brunner, nörgelt nur und verweist immer auf auf andere >Beispiele!!!!!!!! In seiner Freizeit, wenn er mal nicht hier im Forum herum nörgelt, sitzt er zu Haus am Fenster, übt sich als Denunziant und ruft alle 5 Minuten die Polizei an !
> In seiner Freizeit, wenn er mal nicht hier im Forum herum nörgelt, sitzt > er zu Haus am Fenster, übt sich als Denunziant und ruft alle 5 Minuten > die Polizei an ! Kannst Du das irgendwie beweisen? Oder tutest Du nur in das Falk-Bashing-Horn? Darauf können wir verzichten, denn damit tust Du ihm Unrecht! Ich glaube, Du solltest mal die Nutzungsbedingungen lesen. Ich habe Falk das vorgeworfen, was mich persönlich (und einige andere Leser mit denen ich außerhalb des Forums Kontakt habe) stört, nun ist es gesagt, mehr will ich nicht. Es geht mir nicht um ein Falk-Basching, das möchte ich nicht. Ich habe Respekt vor seinem Wissen, ich respektiere auch seine Arbeit als Autor im Wiki, ich mag lediglich sein gelegentliches (häufiges?) oberlehrerhaftes Auftreten nicht. Dies habe ich oben zum Ausdruck gebracht und dazu stehe ich auch. Frohen Rest vom Weihnachtsfest.... ~
>Kannst Du das irgendwie beweisen? Oder tutest Du nur in das Falk-Bashing-Horn? Das war eigentlich ein ironischer Beitrag zum Vorposter. Wenn Du es nicht verstanden hast -> NEIN es war nicht so gemeint. >Ich glaube, Du solltest mal die Nutzungsbedingungen lesen. Und ich glaube, Du solltest mal nicht alles so negativ sehen und Denken jeder will hier jeden was.
Ich finde das Projekt von Sinusgeek klasse. Leider kann ich nur mit Pic umgehen und werde darum das Teil nochmal mit einem Pic aufbauen, weil ich einen einfachen Generator für eine kleinere kommerzielle Anwendung brauchen könnte. Da ich bisher auch noch kein LCD programmiert habe, ist das auch eine gute Gelegenheit, das mal zu lernen. Ansonsten wünsche ich Euch frohe Weihnachten gehabt zu haben und einen guten Start ins neue Jahr. Viele Grüße Axel
> Gelobt sei Jesus Christus.
Hatte der nicht erst in den letzten Tagen Geburtstag???
KH
> Gelobt sei Jesus Christus.
Soweit ich weiß hat der aber schon vor etwas längerer Zeit den Löffel
abgegeben oder? :-)
Betreffs Beitrag "Re: Kleiner Funktionsgenerator mit Tiny2313" Wo bleibt denn nun die angekündigte Verbesserung? ~
>Wo bleibt denn nun die angekündigte Verbesserung?
Ich denke, darauf wirst Du vergeblich warten. Die Nörgler werden
sich beim Programmieren der Verbesserungen in eine Deadloop gestürzt
haben. :-)))
Tinnitusgeek
> Redet Sinus jetzt mit sich selber (Tinitus) ?
Keinesfalls. So schizophren bin ich nicht. ;-)
Der Tinnitusgeek ist da knapp 200 km von mir entfernt.
Falls Du es nicht glaubst, dann lass Dir von einem Moderator bestätigen,
dass beide Beiträge unterschiedliche Herkunft haben, Moderatoren können
die IP sehen.
~
Hallo, wenn ich einen Wunsch äußern dürfte, ein Rechteck mit einstellbarer Frequenz, einstellbaren Tastverhältnis und das Teil wäre zumindest für meine Anwendungen perfekt. Ansonsten find ich’s prima gerade das dort ein LCD und kein PC dran hängt und alles mit einfachen Mitteln nachbaubar ist macht die Schaltung interessant.
>Redet Sinus jetzt mit sich selber (Tinitus) ?
Ich bin ein separater Mensch. ;-) Die Töne, die dieser Sinusgenerator
erzeugt, gefallen mir aber so gut, daß ich mir durch langes, geduldiges
Zuhören einen Tinnius zugezogen habe. Daher auch der Name.
dämlich Grins
Außerdem: Es gibt im Forum eine ganze Reihe von "Geeks"; da kommt es auf
einen mehr oder weniger auch nicht mehr an.
Tinnitusgeek
> ein Rechteck mit einstellbarer > Frequenz, einstellbaren Tastverhältnis und das Teil wäre zumindest für > meine Anwendungen perfekt. Das ist genau das, was ich nicht brauchte. Es sollte aber ein nettes AVR-Einsteigerprojekt sein, denn es ist vom Schwierigkeitsgrad her bedeutend einfacher (aber eben etwas völlig Anderes). Also mach' Dich 'ran... ;-) ~
So, es hat etwas gedauert, aber jetzt habe ich meinen Generator auch fertig. Ich hatte allerdings einen DDS Generator AD9833 genommen (Scheisse, ist das Teil klein...), weil ich den Sinus im Pic nicht sauber genug bei den verschiedenen Frequenzen bekommen habe. Zusätzlich hatte ich dem Ding noch einen Messeingang für Amplitudenmessung und Impedanzmessung, sowie einem 0,5 Watt OPV für die Impedanzmessung spendiert. Anbei ein Foto. Den Plan sende ich gerne als EAGLE Datei, wenn den jemand haben möchte. Beim Programm bin ich gerade beim Feintuning. Bei Interesse eben Mail... Viele Grüße Axel
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.