Forum: Mikrocontroller und Digitale Elektronik Funkitonsgenerator mit SPI oder I²c


von G. M. (knut89)


Angehängte Dateien:

Lesenswert?

Hallo an alle,


für die Uni soll ich ein Schaltplan überarbeiten. in diesem wird ein X 
2206 der über Potis und Jumper einstellbar ist.
Ich möchte das gerne von einem Atmega16 aus steuern und am liebsten mit 
I²C da die Steuerung der Platine über ein Bluetoothmodul realisiert 
werden soll.
Da der Professor was gegen SMD löten hat sollte es auch in einem DIP 
realisiert sein :(, ich habe kein Funktionsgernerator gefunden der das 
kann.


Warum möchte ich einen Funktionsgernerator mit BUS Schnittstelle 
benutzen?
Um den µC zu entlasten der hat ja schließlich noch andere Aufgaben als 
nur die Dreieckspannung oder Sägezanhspannung + eine Sinusspannung zu 
erzeugen.


Wofür das ganze?
Die Platine ist Teil eines Leistungselektroniklabors. Die Studenten 
sollen via App verschiedene Ansteuerungsverfahren auswählen und diese 
sollen dann auf der Platine nachgemessen werden können.
Falls einer eine Idee hat welchen Funktionsgernerator passen könnte 
gerne her damit, zur Not könnte man auch ein SMD Sockel nehmen. Das sehe 
ich als nicht so tragisch an.


Was ist mein Problem bei der suche?
Ich habe Bausteine gefunden die über SPI angesteuert werden können. 
Jedoch können diese meist nur eine Dreieckspannung  und nicht noch eine 
Sägezahnspannung.


Ich habe auch schon daran gedacht  die Poti- und Schaltersteuerung des 
X2206 über SPI/I²C fähige Widerstands und Schalterbausteine zu regeln.
Diese sind jedoch auch meist auch nur als SMD realisiert.
Was haltet Ihr von dieser Idee?

Im Bild ist die Schaltung des zu überarbeiten Schaltplans gezeigt.

von Einer K. (Gast)


Lesenswert?

Fang dir einen Prozessor mit DMA und DAC.

von G. M. (knut89)


Lesenswert?

Es soll schon mit diesem Atmega realisiert werden. Aus kosten Gründen :( 
und das Programm kann größtenteils vom alten übernommen werden. Habe ich 
auch schon bedacht einen neuen zu nehmen. Wollte der Prof aber nicht.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

G. M. schrieb:
> Ich habe auch schon daran gedacht  die Poti- und Schaltersteuerung des
> X2206 über SPI/I²C fähige Widerstands und Schalterbausteine zu regeln.
> Diese sind jedoch auch meist auch nur als SMD realisiert.
> Was haltet Ihr von dieser Idee?

 4066(DIP) für Frequenz, so etwas (DIP) für Potis:
 https://www.sparkfun.com/products/10613

von Falk B. (falk)


Lesenswert?

@ G. Matthias (knut89)

>für die Uni soll ich ein Schaltplan überarbeiten. in diesem wird ein X
>2206 der über Potis und Jumper einstellbar ist.

Hmm.

>Ich möchte das gerne von einem Atmega16 aus steuern und am liebsten mit
>I²C da die Steuerung der Platine über ein Bluetoothmodul realisiert
>werden soll.

Kann man machen.

>Da der Professor was gegen SMD löten hat

Warum ? Modererer Mist, Schicki-Micki oder Sehschwäche?

> sollte es auch in einem DIP
>realisiert sein :(, ich habe kein Funktionsgernerator gefunden der das
>kann.

>Warum möchte ich einen Funktionsgernerator mit BUS Schnittstelle
>benutzen?
>Um den µC zu entlasten der hat ja schließlich noch andere Aufgaben als
>nur die Dreieckspannung oder Sägezanhspannung + eine Sinusspannung zu
>erzeugen.

Kommt drauf an. Ersten, von welchen Frequenz reden wir hier? Zweitens, 
was hat der uC sonst zu tun? Nicht daß der sich am Ende langweilt ;-)
Es gibt einige sehr leistungsfähige Projekte zur Signalerzeugung.

Siehe DDS.


>Falls einer eine Idee hat welchen Funktionsgernerator passen könnte
>gerne her damit, zur Not könnte man auch ein SMD Sockel nehmen. Das sehe
>ich als nicht so tragisch an.

>Ich habe Bausteine gefunden die über SPI angesteuert werden können.
>Jedoch können diese meist nur eine Dreieckspannung  und nicht noch eine
>Sägezahnspannung.

Hmmm.

>Ich habe auch schon daran gedacht  die Poti- und Schaltersteuerung des
>X2206 über SPI/I²C fähige Widerstands und Schalterbausteine zu regeln.

Gute Idee.

>Diese sind jedoch auch meist auch nur als SMD realisiert.

Oh wie schrecklich!!!

>Im Bild ist die Schaltung des zu überarbeiten Schaltplans gezeigt.

Wenn es solche Abneigung geen SMD gibt, bau doch einfach Breakout Board. 
Dort lötet man das SMD-Bauteil drauf und steckt es dann mit normalen 
DIP-Stiftleisten wie ein THT Bauteil in die Zielschaltung.
Im Fehlerfall kann man es schnell wechseln.

>Es soll schon mit diesem Atmega realisiert werden. Aus kosten Gründen :(

Auch wegen der Recht Schreibung?

>und das Programm kann größtenteils vom alten übernommen werden. Habe ich
>auch schon bedacht einen neuen zu nehmen. Wollte der Prof aber nicht.

Dann wird das auch nichts. Was der Bauer nicht kennt, frißt er nicht.
Aber auch ein old school AVR kann im NF-Bereich ganz gute Signale 
generieren.

von Pandur S. (jetztnicht)


Lesenswert?

Toll, wenn man ein paar Ahnungslose mit absurden Ideen beschaeftigen 
kann. Aber solange sie dabei etwas lernen...

Es gibt einen tollen DDS, den AD9833. Der kann schon verschiedene 
Waveformen. Leider SMD.

von G. M. (knut89)


Lesenswert?

Meine Rechtschreibung bitte ich zu entschuldigen ich versuche mehr drauf 
zu achten. Hatte nicht nochmal drüber gelesen.

Wegen der SMD Bauteile, es ist eher das Problem mit dem Austausch der 
Bauteile bei einem Defekt. DIP lässt sich leichter Sockeln und 
austauschen.

Die Frequenz wird 20kHz nicht übersteigen. Mehr kann der Motortreiber 
nicht.

Ein Funktionsgenerator ist meiner Meinung nach jedoch auch nicht so 
Ausfallanfällig oder wie seht ihr das?

Der µC soll ja auch noch mit dem Bluetoothmodul kommunizieren und 4 
Sinusreferenzen erzeugen.

Warscheinlich wird er nicht überlasstet sein.

Eine Möglichkeit wäre auch die Spannung über die Ausgabe von 
Look-Up-Tabellen und Operationsverstärker zu erzeugen. Hatte nur 
bedenken, dass der µC Probleme mit der Erzeugung bekommt. Wäre ja 
ungefähr so wie U.F. das machen will.

Bekommt der Atmega das hin 5 Spannungen gleichzeitig über die 
ADC-Ausgänge auszugeben?

Genug Ausgänge hat er ja.

Maximale Frequnz der Dreieck -bzw. Sägezahnspannung liegt bei 20kHz die 
Sinusspannungen müssen deutlich langsamer sein.

Die Frequenz kann dann ja über die Sprungweite der Ausgabe der 
Look-Up-Tabelle variert werden.

von Pandur S. (jetztnicht)


Lesenswert?

> Wegen der SMD Bauteile, es ist eher das Problem mit dem Austausch der
Bauteile bei einem Defekt. DIP lässt sich leichter Sockeln und
austauschen.

Weshalb sollte so ein Chip kaputt gehen ? Bei mit geht nur IO kaputt, 
bei Falschanschluss.

von m.n. (Gast)


Lesenswert?

Gib dem Kaiser, was des Kaisers ist. Oder hier dem Professor.

Frequenzbereiche und Wellenform kann man per Reedrelais' vorgeben. 
Amplitude und Frequenz über PWM-erzeugte Spannungen einstellen. Mit 
Timer1 und 4 kHz PWM-Frequenz erhält man eine Auflösung von 1:4000.
Somit kann die XR2206 Grundschaltung bestehenbleiben.

von Einer K. (Gast)


Lesenswert?

G. M. schrieb:
> Bekommt der Atmega das hin 5 Spannungen gleichzeitig über die
> ADC-Ausgänge auszugeben?
Das ist doch jetzt ein Witz, oder?

von Falk B. (falk)


Lesenswert?

@ G. Matthias (knut89)

>Wegen der SMD Bauteile, es ist eher das Problem mit dem Austausch der
>Bauteile bei einem Defekt. DIP lässt sich leichter Sockeln und
>austauschen.

Stimmt.

>Ein Funktionsgenerator ist meiner Meinung nach jedoch auch nicht so
>Ausfallanfällig oder wie seht ihr das?

Kommt drauf an.

>Der µC soll ja auch noch mit dem Bluetoothmodul kommunizieren und 4
>Sinusreferenzen erzeugen.

4 Sinussignale mit bis zu 20 kHz?

>Bekommt der Atmega das hin 5 Spannungen gleichzeitig über die
>ADC-Ausgänge auszugeben?

Nö, denn die ADCs sind EINGÄNGE ;-)

>Genug Ausgänge hat er ja.

Aber nur Digitalausgänge, keine analogen.

>Maximale Frequnz der Dreieck -bzw. Sägezahnspannung liegt bei 20kHz die
>Sinusspannungen müssen deutlich langsamer sein.

Das wird schon eher sportlich und aufwändg mit einem AVR allein, da 
braucht man mindestens noch einen schnellen DAC mit mehreren Kanälen.

>Die Frequenz kann dann ja über die Sprungweite der Ausgabe der
>Look-Up-Tabelle variert werden.

Eben, so wie es jede DDS macht. Für einen Kanal kriegt das ein AVR hin, 
mehrere eher nicht bzw. das ist was für Profis. Man kann natürlich auch 
einfach einen AVR/Kanal vrbauen, die Kosten halten sich in Grenzen ;-)

von Falk B. (falk)


Lesenswert?

@  Oh Doch (jetztnicht)

>Weshalb sollte so ein Chip kaputt gehen ?

Weil die Platinen von VIELEN Studenten im Praktikum benutzt werden.

von gerhard (Gast)


Lesenswert?

hallo,
den xr2206 ist abgekündigt und den bekommst du weder bei digikey noch 
bei mouser.

wie schon geschrieben wäre der AD9833 eine alternative. den kannst du 
auf einen MSOP=>DIP Adapter löten und dann ist er auch DIP. beide teile 
bei digikey erhätlich und kosten in summe ~€10.
nachteil: der ad9833 kann keinen sägezahn erzeugen.

gruss
gerhard

von Pandur S. (jetztnicht)


Lesenswert?

> Weil die Platinen von VIELEN Studenten im Praktikum benutzt werden.

Dann macht man eben den Ausgangs OpAmp DIL und somit steckbar

von Lothar (Gast)


Lesenswert?

G. M. schrieb:
> Es soll schon mit diesem Atmega realisiert werden. Aus kosten Gründen
> und das Programm kann größtenteils vom alten übernommen werden

Es gibt eine deutlich einfachere Lösung: 8051 mit 4x 12-Bit DAC für 1.50 
EUR
Eine Funktionsgenerator-Demo mit Sourcecode ist vorhanden
Bootloader ab Werk d.h. flashen mit USB-seriell-Kabel für 5 EUR
Ist QFP-32 also entsprechender DIP-Adapter erforderlich

http://www.mouser.de/ProductDetail/Silicon-Labs/EFM8LB12F32E-B-QFP32/?qs=sGAEpiMZZMuI1aKsGLfKZFxa23eJrZNncMnGAB4sf28%3d

Das Eval-Board für 27 EUR hätte auch ein gutes Display und eine 
Oszilloskop-Demo dabei:

http://www.mouser.de/ProductDetail/Silicon-Labs/SLSTK2030A/?qs=sGAEpiMZZMsnnjF5aXV%2fXp4paRTmurUin3jKKQUTEZM%3d

von G. M. (knut89)


Lesenswert?

@ Lothar danke für den Tipp mit den 8051. Ich werde mich gleich mal auf 
die Suche nach einem Beispielprojekt machen.
Ich werde mir jedoch einen µC Projekt suchen welches in C realisiert 
ist.
Assembler wird bei uns an der Uni nicht wirklich Unterrichtet. Und es 
sollen sich ja auch nachfolgende Studenten damit auseinandersetzen 
können.


Allen anderen auch vielen Dank für die Anregungen und Tipps wenn ich es 
Fertig habe lass ich euch wissen wie ich es umgesetzt habe. Vielleicht 
kann jemand es ja gebrauchen.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.