Pfad: Home => AVR-DE => Anwendungen => Zufall ATtiny13 => Zufall mit RauschgenerĂ¡tor   This page in english: Flag EN Logo
Zufallsfarben 250*250 AVR-Anwendungen

Zufallszahlen mit ATtiny13
Anwendung und Software für Zufallszahlen in Assembler

Zufallszahlen mit ATtiny13

Berechnung Anzeigen Analyse

3 Zufallszahlen aus Rauschgenerator

Die Berechnung von Zufallszahlen ist ziemlich langweilig: abhängig von den beiden Anfangszahlenwerten wird immer nur die gleiche Abfolge erzielt, auch wenn diese sehr langwierig ist. Das geht mit einem Rauschgenerator etwas zufälliger. Dazu ist etwas externe Hardware nötig.

3.1 Vom Scheitern bei der Hardware des Rauschgenerators

Es muss hier auch mal möglich sein, von einem Scheitern auf ganzer Linie zu berichten: Es wurde nix mit dem Rauschgenerator!

Rauschquellen Der Elektroniker denkt: simpel, Zenerdiode und Widerstand und fertig. Oder: Transistor-Emitter-Basis-Strecke in Sperrichtung, Widerstand und fertig. Also frisch ans Werk und zusammengesteckt:
  1. Die Zenerdiode mit dem Vorwiderstand, hier mit 1 kΩ, damit ordentlich Strom fließt.
  2. Ein paar NPN-Transistoren aus der Bastelkiste, mit Emitter-Basis-Strecke in Sperrrichtung, mal mit 1 kΩ, mal mit 10 kΩ, dann mal 100 kΩ und sogar mit 10 MΩ, alles ausprobiert.
  3. Einen PNP-Transistor aus der Bastelkiste, auch mit diversen Widerständen.
Schon der hochempfindliche Oszi zeigte es: leider so gar kein Rauschen zu sehen. Weder niedriges noch hochfrequentes, einfach rein gar nix.

Rauschverstaerker Nun gut, vielleicht ist es wenig Rauschen und es muss ein Verstärker her. Damit der auch mit schwachen Signalen rund um den Nullpunkt geht, musste es ein FET-Opamp sein. CA3140s fanden sich noch einige in der Bastelkiste.

Leider zeigten Verstärkungen von 10 und 100 so gar keine Wirkungen, außer dass die 50 Hz aus dem Stromnetz heftig durchkamen, wenn der Widerstand der Quelle 100 kΩ und mehr waren (maximal 10 MΩ). Also ein RC-Filter mit 500 Hz Grenzfrequenz zwischen Rauschquelle und Verstärker. Aber auch das brachte kein Rauschen zutage.

Also die Verstärkung auf 1000 erhöht, mit 10 MΩ im Rückkopplungszweig des CA3140. Und siehe da: Das Oszi-Bild zeigte Wirkung:

Rauschen mit BC547B Das war das Bild bei 10 MΩ in der Rauschquelle mit einem BC547 mit einem 330 pF-10 MΩ-Hochpass bei einer Verstärkung von 1. Auf dem 50 Hz-Basissignal hatten sich im oberen Amplitudenbereich schnelle Schwingungen breit gemacht. Die waren so schnell und so unregelmäßig, dass der Oszi nur einen hellen Bauch anzeigte, wie im Bild zu sehen. Das ginge dann schon als Zufall durch, wenn sich auch mehr als 80% der Zeit rein gar nix tut oder sich alleine die 50 Hz tummeln.

Eine höhere Gain (von 10) beim OpAmp ließ die Bäuche verschwinden und brachte reine 50 Hz Rechteck.

Wenn es mit einem NPN nicht geht, dann vielleicht mit einem PNP besser? Da der Autor des Beitrags im Internet darauf hinwies, dass man den BC557C aus mehreren Exemplaren auswählen soll, kam der Griff in die Bastelkiste. Da waren aber nur mehr drei BC557B drin, mehr nicht. Und mit den dreien ging es halt auch nicht.

Vielleicht ginge es mit einem HF-Transistor besser? Eine Schaltung aus dem Internet hat einen BF199 an Bord. Also einen BF199 reingepackt. Und einen ganz, ganz niedrigen Widerstand in Sperrrichtung in der Rauschquelle: 1 k (die Internetquelle hat noch einen 4k7-Trimmer zur Amplitudeneinstellung). Also 10 kΩ probiert, und das RC-Filter mit 1 nF und 10 kΩ auf 15 kHz eingestellt.

Und siehe da: die 50 Hz sind total weg (was Niederohmigkeit so alles bringt!) und es tritt eine total verwaschene Schwingung hoher Frequenz zutage. Nicht so arg hohe Amplitude, aber dem Ding sieht man das Rauschen geradezu an. Jetzt noch ordentlich Gain (1000) auf den OpAmp und der Zufallgenerator ist fertig.

Generator mit BF199 Das geht jedenfalls als zuverlässiger Zufallsgenerator so erst mal durch. Und die Signalstärke ist auch grad gut für den AD-Wandler-Eingang im ATtiny13.

Generator ohne Stoerimpulse Und als ich dann die Energiesparlampe am Basteltisch ausgeschaltet hatte, verschwand die hässliche HF-Schwingung vom Oszi, und es sah plötzlich so aus. So kann man auf Störungen hereinfallen. Das ist jetzt aber ein wahrer Random-Generator, so gut wie keine zwei Schwingungen gleich.

Wer jetzt dabei welchen Anteil am Rauschen hat, die Emitter-Basis-Strecke vom BF199 oder die Eingangs-FETs vom CA3140, kann ich nicht so genau sagen. Wenn ich den BF199 herausziehe, ändert sich rein gar nix am Signal. Es ist gar nicht der Transistor, der da rauscht, sondern irgendwas anderes. Kann mir eigentlich auch egal sein, Hauptsache es rauscht gehörig im Karton. Und das tut es offenbar. Nur halt so rein gar nicht wie in der Theorie vorhergeplant, halt irgendwie ganz anders.

Achtung, das Eigenartige an der Schaltung ist: Macht man den 10 ,kΩ im Rückkoppelzweig kleiner und erhöht damit die Verstärkung, kriegt man damit nicht mehr Rauschamplitude, nur die 50 Hz kommen dann wieder durch. Macht man die Verstärkung kleiner, geht das Rauschen völlig auf Null. Es geht nur mit 10 kΩ!

Hier also meine komplette Schaltung.

Rauschgenerator mit BF199 Am Ausgang ist noch ein RC-Filter mit 33 kΩ und 1 nF angeschaltet. Dieses sorgt dafür dass die ADC-Kanal-Eingangssignale nicht zu viel hochfrequenten Anteil haben. Das würde dazu führen, dass es dem ADC beim Starten des AD-Vorganges in seiner Sample-And-Hold-Stufe zu lange dauert, bis sein Speicherkondensator geladen ist. Da der AD-Wandler mit ca. 10 kHz Takt misst, muss das RC-Filter auf die halbe Frequenz ausgelegt sein, was mit den eingangs gewählten Komponenten geht. Und das macht die ganze schöne Rauscherei dann doch wieder platt: Mit dem Filter ist es wieder weg und ein eingestreuter 50 Hz-Brumm bestimmt im Wesentlichen die Szene. Damit der den AD-Wandler-Eingang nicht mit mehr als 1,1 V übersteuert, hat er noch einen 10 kΩ als Begrenzer.

Das Ausgangssignal kriegt der Rauschgenerator-Eingang am ATtiny13. Der misst öfter mal den ADC-Eingang, checkt ob der auf Null ist oder auf 0x03FF (Vollausschlag) und wenn nicht, hängt das letzte Bit des Ergebnisses an die 24 schon gespeicherten Zufallsbits hinten dran. Wenn das dann kein echter Zufall ist, wo das letzte Bit des 10-Bit-ADC gerade steht:
  1. Interne Referenz: 1.100 mV
  2. 10 Bits Auflösung = 1024,
  3. macht 1,07 mV für das letzte Bit.


Rauschgenerator 2 Hier ein weiterer Versuch. Als Rauschquelle dient ein 2N2222 (NPN). Die Emitter-Basis-Strecke wird in Sperrrichtung hochohnmig angesteuert. Der 150 pF-Kondensator dient der Unterdrückung hochfrequenter Rauschanteile (fT=1/2/Π/R/C = 10 kHz), die zweite RC-Kombination aus 3,3 nF und 100 kΩ filtert Anteile unterhalb von 500 Hz. Die Widerstandskombination von 10 MΩ und 1 kΩ stellt eine Verstärkung von 10.000 ein.

Rauschgenerator 2 - Signal Auch diese Schaltung liefert nur unvollkommenes Rauschen. In den Tiefen des Signals steckt sogar noch ein sehr hochfrequenter Anteil (hier mit 50 mV/cm). Wie der das RC-Filter passieren kann, ist mir völlig schleierhaft. Am Ausgang des CA3140 ist er auch schon zu sehen. Eigentlich sollte er da gar nicht sein. Einerlei, rätselhafte Artefakte.

Rauschgenerator 2 - Aufbau So ist der Rauschgenerator auf dem Steckbrett aufgebaut.

Zu guter Letzt: auf diese Schaltung kann man nicht stolz sein. Die ist mehr als nur Unsinn und zum Nachbau nur sehr bedingt geeignet. Ich kann es jedenfalls nicht besser und bin mit meinem Elektroniker-Latein am Ende. Die Praxiserprobung wird zeigen, ob das so geht.

Seitenanfang Hauptseite Berechnung Anzeigen Analyse


Lob, Tadel, Fehlermeldungen, Genöle und Geschimpfe oder Spam bitte über das Kommentarformular an mich.

©2019 by http://www.avr-asm-tutorial.net