Forum: Mikrocontroller und Digitale Elektronik Rauschgenerator mit Komparator - LM393 vs PIC


von Pekka (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,


ich habe mit einem LM393 den genial einfachen Rauschgenerator aus Julien 
Thomas' XR232USB (USB-Zufallsgenerator) nachgebaut, siehe Anhang. Nun 
gibt es in meinem Controller (PIC16F1719) schon zwei Komparatoren, die 
ich gerne dafür nutzen würde. Aber der gleiche Aufbau mit den internen 
Komparatoren des PIC gibt nur eine niederfrequente Schwingung am ersten 
und Stille am zweiten Komparator. Die LM393-Schaltung dagegen läuft 
schon ohne Puffer-Stufe stabil, man kann z.B. einen kleinen Piezo an den 
Ausgang des ersten Komparators hängen und direkt das Rauschen hören.

Ich habe die Schaltung mit zwei PICs aufgebaut, bei beiden ist das 
gleiche Knattern zu hören. Natürlich sind Filter und Hysterese 
abgeschaltet, trotzdem verhalten sich die Komparatoren so, als hätten 
sie eine. Durch Variation der Widerstände lässt sich die 
Knatter-Frequenz zu einem Fiepen steigern, lange Kabel führen manchmal 
zu sogar einer gewissen Zufälligkeit, aber so richtig rauschen tut es 
nicht.

Sind die internen Komparatoren im PIC grundsätzlich anders als ein 
LM393?

von Pekka (Gast)


Lesenswert?

Korrektur: Der zweite Komparator gibt natürlich auch das Knattern aus.

Der PIC wird von einer 3V Batterie gespeist und schläft, ohne WDT.

von Ulrich H. (lurchi)


Lesenswert?

Der 1. Komparator wird als analoger Verstärker betrieben. Das ist bei 
den meisten Komparatoren nicht definiert. Wenn der Komparator im PIC 
eine interne Hysterese hat (was sehr wahrscheinlich ist), wird die 
Schaltung um den 1. Komparator zu einem Oszillator mit mehr oder weniger 
definierter Frequenz (ca. 1/ (100 nF*220 K) * Vcc/Hysterese ).

von Pekka (Gast)


Angehängte Dateien:

Lesenswert?

Ja, so scheint es. Die Hysterese ist aber extra anschaltbar, daher würde 
ich davon ausgehen, dass sie auch wirklich aus ist, wenn das 
entsprechende Bit nicht gesetzt ist. Im Datenblatt ist die Hysterese 
auch nur für den angeschalteten Fall angegeben.

Wenn ich die 100 nF vom ersten Komparator abklemme und dann den Ausgang 
berühre, gibt es für ca. 1/2 Sekunde richtiges Rauschen, siehe Bild. 
Vielleicht kann man es so einstellen, dass es dauerhauft bleibt.

von Peter D. (peda)


Lesenswert?

Pekka schrieb:
> Sind die internen Komparatoren im PIC grundsätzlich anders als ein
> LM393?

Vermutlich.
Der LM393 kann jedenfalls nur negative Rail am Eingang.
Die erste Stufe arbeitet als irgendwas, nur nicht als Komparator. Die 
Stromquelle und der Stromspiegel am +Eingang sind komplett gesperrt, 
wenn er auf +VCC liegt.

In MCs sind die Komparatoren dagegen oftmals R2R.

von Peter D. (peda)


Lesenswert?

Bei einen R2R Comparator ist die Funktion der 1. Stufe undefiniert.
Hat diese einen positiven Offset, bleibt der Ausgang konstant auf VCC, 
denn der -Eingang kann ja nicht höher als VCC gehen. Da rauscht dann 
definitiv nichts.

Ich vermute mal, die Schaltung ist rein zufällig entstanden. Der Autor 
hat nicht dran gedacht, daß der LM393 nicht R2R ist und ihn 
versehentlich außerhalb des Common Mode Bereichs betrieben.

von (prx) A. K. (prx)


Lesenswert?

Der LM393 arbeitet hier nur mit der (-) Seite seines 
Differenzverstärkers, und zwar bei Vcc - 1,xV, haarscharf an der 
Spannungsgrenze der Eingangstransistoren entlang. D.h. der normalerweise 
mit konstantem Summenstrom arbeitende Differenzverstärker ist hier 
weitgehend abgedreht und arbeitet mit weit niedrigerem Strom.

Das dies ein völlig anderes Verhalten des ICs zur Folge haben kann, als 
im normalen Arbeitsbereich, dürfte nicht überraschen. Kann schon sein, 
dass man mit einem anderen Komparator ohne Signalrückkopplung ebenfalls 
ein nichtdeterministisches Verhalten herbeizaubern kann, aber es ist 
nicht gewährleistet.

: Bearbeitet durch User
von Pekka (Gast)


Lesenswert?

Wenn man die 10k zwischen Ausgang und VCC überbrückt, rauscht es. Aber 
ob es gut ist, den Ausgang direkt mit VCC zu verbinden...

Peter Dannegger schrieb:

> Ich vermute mal, die Schaltung ist rein zufällig entstanden. Der Autor
> hat nicht dran gedacht, daß der LM393 nicht R2R ist und ihn
> versehentlich außerhalb des Common Mode Bereichs betrieben.

Das Projekt ist hier beschrieben: http://www.jtxp.org/tech/xr232usb.htm

Ich habe den Rauschgenerator-Teil nachgebaut und ein bisschen 
rumprobiert, ohne wirklich nachzuvollziehen, wie er funktioniert.

Ich finde den Eingang an VCC auch komisch. Ich würde eigentlich denken, 
dass man einen Spannungsteiler aufbaut, so wie am 2. Komparator. Diese 
Spannung auf beide Eingänge, über jeweils einen weiteren Widerstand.
Dann den Ausgang über einen großen Widerstand an den negativen Eingang 
und hoffen dass es nicht oszilliert, sondern rauscht. Werds mal 
ausprobieren.

von Pekka (Gast)


Lesenswert?

Es funktioniert mit besagtem Spannungsteiler (4k7 und nochmal 220k vor 
jedem Eingang), wenn der Ausgang ohne R an den negativen Eingang 
angeschlossen und mit 100 nF gepuffert ist. Das Rauschen ist lauter als 
mit dem LM393, allerdings ist das ganze System störanfällig, z.B. auch 
durch Last an der Puffer-Stufe. Vielleicht geht es ja noch stabiler mit 
anderen Paramtern.

Wäre doch schön, einen analogen Rauschgenerator und echten Zufall direkt 
im µC zu haben.

von Pekka (Gast)


Angehängte Dateien:

Lesenswert?

So sieht das jetzt aus.

von Pekka (Gast)


Angehängte Dateien:

Lesenswert?

Sorry, dass ich mich hier die ganze Zeit öffentlich mit mir selbst 
unterhalte. Mit 100 nF am negativen Eingang läuft es jetzt stabil.

Ich habe keinen Entropie-Test gemacht, aber anhören tut es sich nach 
sauberem weißen Rauschen (brauche es eh nur für Audio).

Ist das jetzt besser als den + Eingang an VCC? Ich habe beide Varianten 
nochmal angehängt, zur besseren Übersicht ohne die Pufferstufe.

von Mondphase (Gast)


Lesenswert?

Hier noch ein paar Tests bzgl. Zufall: 
http://en.wikipedia.org/wiki/Randomness_tests

rngtest ist bei Debian basierten im im Paket rng-tools dabei.

von Terotec (Gast)


Lesenswert?

Kannst du einen kompletten Plan herzeigen?

von Rudi (Gast)


Lesenswert?

Mit einem PIC18F13K50 könnte man das minimalistisch ausführen.

von Seppi (Gast)


Lesenswert?

Mit dem PIC16(L)F1454 sogar Quarzfrei.

von Pekka (Gast)


Lesenswert?

Ich muss mich korrigieren: Der Plan in pic_comparator_noise_3.png stimmt 
nicht. Die 10k (wie in xr232_noise.png ganz oben zu sehen) müssen 
gekappt werden und die 220k überbrückt. Allerdings gibt dieser Aufbau 
gerade ein unschön knisterndes Rauschen.

@ Terotec:

pic_comparator_noise_2.png ist der komplette Plan für den 
Rauschgenerator, man kann an den Ausgang z.B. einen Piezo hängen und 
sich das Rauschen anhören. Je nachdem, wie man das Signal verwendet, 
schaltet man noch die Pufferstufe dahinter oder nicht.


Mit einem USB-fähigen PIC könnte man in der Tat den USB-TRNG mit nur 
einem Chip bauen. Den Ausgang der Pufferstufe würde ich dann direkt an 
die Datenleitung vom SPI legen, so kann man immer gleich ein ganzes Byte 
lesen.
Auch reizvoll fände ich, das als USB-Audio-Gerät zu realisieren: Man 
steckt den Stick an und hat dann einen Audio-Eingang, an dem echtes 
Rauschen anliegt.

von seppi (Gast)


Lesenswert?

Dazu müsstest Du aber mal einen kompletten Plan Posten.!

von Pekka (Gast)


Lesenswert?

Was fehlt denn an dem Plan? Die Verdrahtung des Komparators ist zu 
sehen, der Rest ist controller- und applikationsspezifisch. Ich habe es 
mit einem PIC16F1719 aufgebaut, bei dem ich wegen anderer Funktionen die 
Pins umkonfiguriert habe. Plan und Code wäre damit für einen Nachbau 
unnötig kompliziert.
Um einen kompletten USB-Rauschgenerator zu bauen / programmieren habe 
ich im Moment keine Zeit, aber wenn ich das mal mache, poste ich 
natürlich den kompletten Plan und Code.

Ich habe gestern zufällig noch eine andere Variante gefunden, die noch 
einfacher und stabiler ist, werde das nachher mal posten.

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.