mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zufallsgenerator und Pinbelegung


Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin momentan an einer Schaltung mit einigen ATMegas dran und 
überlege mir, nich benötigte Pins auf Masse zu legen. Die Software wird 
einen Zufallsgenerator brauchen und ich habe gehört, dass sich der 
AD-Wandler dafür missbrauchen lässt. Welcher Pin beim Mega32 ist das? 
Hat der Pin AIN0/1 was damit zu tun? Wenn ich die auf Masse lege, wird 
das wohl nichts mit Zufallsgenerator, oder?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich bin momentan an einer Schaltung mit einigen ATMegas dran und
>überlege mir, nich benötigte Pins auf Masse zu legen.

Mach mal, aber programmiere die dann bloß nicht
durch Zufall auf Ausgang, und leg dann auf keinen Fall
eine 1 drauf ;)

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mach mal, aber programmiere die dann bloß nicht
>durch Zufall auf Ausgang, und leg dann auf keinen Fall
>eine 1 drauf ;)

Ou ja, so ungefähr steht's auch im Datenblatt ... :D
Ok, den internen Pull-up zu aktivieren ist eine bessere Alternative.

Dann muss ich mir auch keine Gedanken über den Zufallsgenerator machen.

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal nach den Pin's die mit ADC anfangen...
Und ja, man kann damit Zufällige Werte generieren (Wenn die Pin's NICHT 
auf Masse gezogen werden).

Schöne Grüße,
Alex

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Maxim wrote:

> Die Software wird
> einen Zufallsgenerator brauchen und ich habe gehört, dass sich der
> AD-Wandler dafür missbrauchen lässt.

Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen.

Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden.


Peter

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen.

>Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden.

http://www.mikrocontroller.net/wikisoftware/index....

So wie ich das verstehe, kann man den ADC doch als Zufallsgenerator 
verwenden, vorausgesetzt, das unterste Bit rauscht.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Maxim wrote:

> So wie ich das verstehe, kann man den ADC doch als Zufallsgenerator
> verwenden, vorausgesetzt, das unterste Bit rauscht.

Also ich hab den ATtiny26 und den ATmega8 ausprobiert, die rauschen 
nicht, die stehen wie ne Eins.
Man kann mit nem 10-Gang Poti stabil jeden Wert von 0...1023 einstellen.

Ich hab auchmal versucht zusätzliche Bits mit Mittelung über 256 Werte 
zu erreichen, Pustekuchen.

Und wenn die VCC durch Lastschwankungen zappelt, ist das bestimmt nicht 
zufällig, die Lasten schaltet ja der MC selber (PWM, Multipexanzeige 
usw.)


Peter

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja da müsstest du schon ein bauteil, mit starkem weissen rauschen 
anhängen...
wofür brauchst du den zufallsgenerator?
Grundsätlich wärs doch sinnvoller den per software zu implementieren...

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit PIC steht hier ein Link:
http://www.mikrocontroller.net/articles/Zufallszahlen
http://mywebpages.comcast.net/orb/

Open Random Bit Generator, ein 8-Pin-PIC mit ADC und 100k von einem 
Ausgang zum ADC-Eingang. Der Ausgang wird mit endlicher 
Wahrscheinlichkeit nach H oder L geschaltet, das Rauschen des letzten 
Bits im ADC liefert dann die unendliche Unwahrscheinlichkeit oder so 
ähnlich.

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich brauche eine Zufallszahl um eine Sinusfunktion zu variieren, die 
wiederum die Helligkeit einer LED darstellt.

Auf meiner 1/2 Euro-Platine sind insgesamt neun PWM Kanäle mit jeweils 
bis ca. 150mA Strom. Vielleicht würde das ausreichen, um den ADC-Wandler 
anzuregen.

Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich das Rauschen mit einer Z-Diode erzeugen? Werde sowieso bald bei 
Pollin bestellen und da gibt es einige zur Auswahl.

Wie entsteht das Rauschen in einer z-Diode?
Wie muss ich sie anschließen?

Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kennt sich denn niemand damit aus?

Reich es auch, wenn ich an die Z-Diode die Durchlassspannung anlege, 
sodass sie gerade so leitet? In welcehm Bereich in Volt liegt das 
Rauschen?

Autor: Lothar Stolz (lothars)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Maxim!

Habe hier in einer Anwendung mit ATMega32 kürzlich ebenfalls 
Zufallszahlen gebraucht. Bin dabei wie folgt vorgegangen:

Ich lese einen offenen ADC-Pin (floatend, nicht beschaltet, v.a. 
nicht niederohmig auf Potential z.B. Masse gelegt) mehrmals ein und 
bekomme nach den Wandlungen im ADC-Register ((ADCH<<8)|(ADCL)) zufällig 
verteilte Werte so zwischen 266 bis 313. Diese geben dann die initiale 
Grundlage für einen altbekannten Pseudo-Zufallszahlengenerator. 
(elektrisch: Der elektrische Knoten des ADC-Pin ist wegen fehlender 
externen Beschaltung sehr hochohmung und deshalb sehr empfindlich für 
EMV-Störungen - wirkt als Antenne für Störungen von intern&extern, es 
wird also mit dem ADC der EMV-Störnebel abgetastet, und der besitzt idR 
sehr wohl zufällige Komponente)

Soviel zum Thema "Quatsch ADC kann keine Zufallszahlen erzeugen" ;-) Bei 
mir klappt's an offenem ADC-Pin jedenfalls wunderbar, probier's mal aus!

Viel Erfolg!!

(ps, Z-Diode: die stabilisiert in NF-Bereich wohl eher als dass sie 
rauscht?!?!)

Autor: Artur Funk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen.
>> Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden.

Wie wäre es mit:
u8 zufallswert;
sprintf(zufallswert, "%d", rand() % 255);

Und das Ganze an ADC Port zu legen, nur so als Überlegung?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich lese einen offenen ADC-Pin (floatend, nicht beschaltet, v.a.
>nicht niederohmig auf Potential z.B. Masse gelegt) mehrmals ein

Na dann macht es ja wohl mehr Sinn, noch ein Stück Leiterbahn 
dranzulöten. Bei TQFP ist der Pin gerade mal 1,5mm lang, der fängt gar 
nichts ein.

Autor: Helmi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaut mal auf diesem Thread

Beitrag "Anregungen fuer einen Rauschgenerator"

Gruss Helmi

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Artur Funk wrote:
>>> Das ist Quatsch, der ADC kann keine Zufallszahlen erzeugen.
>>> Dazu bräuchte man spezielle zufällige Signalquellen, z.B. Rauschdioden.
>
> Wie wäre es mit:
> u8 zufallswert;
> sprintf(zufallswert, "%d", rand() % 255);
>
> Und das Ganze an ADC Port zu legen, nur so als Überlegung?

[ ] Du hast verstanden worum es hier geht
[ ] Dein Codeschnipsel funktioniert.

Autor: ecslowhand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C ist das eine recht simple Sache:
public int getRandomNumber()
{
    return 4;    // chosen by fair dice roll
                 // guaranteed to be random
}

:))

Autor: Lothar Stolz (lothars)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Travel Rec. wrote:
> Na dann macht es ja wohl mehr Sinn, noch ein Stück Leiterbahn
> dranzulöten. Bei TQFP ist der Pin gerade mal 1,5mm lang, der fängt gar
> nichts ein.

Probier's erst mal aus - dann schau ma mal :-P Aber prinzipiell, klar, 
wer will kann ja noch nen Draht drannlöten :-D wer lang hat, lässt lang 
hängen...

1.5mm langer Pin ok, und dahinter ist direkt der ADC?!? ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.