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?
>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 ;)
>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.
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
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
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
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...
Mit PIC steht hier ein Link:
http://www.mikrocontroller.net/articles/Zufallszahlenhttp://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.
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.
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?
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?
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?!?!)
>> 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?
>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.
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.
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?!? ;-)