ontwerptips en domme fouten

Dit topic is gesloten


Domme fout: proberen zelf een random-nummer generator te bouwen, terwijl er al jaren onderzoek naar gedaan is hoe je het "heel redelijk" (in software) of "behoorlijk goed" (in hardware) kunt doen.

Stel die 2 RC oscilatoren zijn een beetje scheef. Ze zijn 90% van de tijd nul. Hun xor is dan 81(00) + 1(11) = 82% van de tijd nul, en 9(01)+9(10)=18% van de tijd 1. Niet helemaal 50/50. Dit is natuurlijk overdreven, maar iedere verschuiving van 50/50 in de oscilatoren zal je terugvinden in de uitgang.

Bovendien, kan het zomaar gebeuren dat je hoofdlus bijvoorbeeld onder bepaalde omstandigheden precies een geheel aantal cycles van de RC duurt. Ieder volgend bitje is dan ineens behoorlijk voorspelbaar. Je robot gaat dan bijvoorbeeld bij een bepaalde temperatuur ineens een tijdje alleen maar links.....

Als je een hardware bron hebt: Neem twee samples. Zijn ze gelijk, gooi ze weg, en begin overnieuw. Zijn ze niet gelijk, neem dan de laatste (of de eerste) als resultaat van je random-bit-generator.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 29 augustus 2009 18:22:21 schreef Marco69:
Waarom maak je die random niet hardware matig? Goede random maken is best moeilijk, maar 'bijna goede' random is een stuk simpeler.

Bijna goede random is vaak goed genoeg, dus waarom zou je hem matig willen maken. Of bedoelde je niet matig maar hardwarematig? (spatie of geen spatie geeft hier een behoorlijk verschil!) Dan ga je richting een ruisende halfgeleiderovergang ofzo, zou best goed moeten werken.

"The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

gelukkig nog geen last van gehad, maar ik ontdekte dat een pic die liep op 20MHz te ontvangen is op een radio(op 95.0 om precies te zijn) geeft een mooie ongemoduleerde draaggolf=stilte.

Ontwerpfout of niet, ik ga ze toch even posten. Jaren geleden wat aan het prutsen met een actief filtertje dat ik gebouwd had rond opamps, het was maar een probeersel dat in spinnewebstijl was opgezet, met wat kabeltjes verbonden met een versterkertje. Bij de scoopmeting had ik altijd last van stoorsignalen, maar in een zeer vreemd patroon, na een tijd zoeken leek het wel audio.

Bij aansluiting van een paar luidsprekertjes was het echter verdwenen. Tot ik terug achter mijn scoop kroop, begon er een signaal aan te zwellen en hoorde ik tussen mijn eigen audio door een Ruusische stem praten. Niet altijd duidelijk, wegfadend en terugkomend. Het bleek afhankelijk van waar ik zat of stond, dat de ontvangst beter of slechter werd!
Een tijd daarna lees ik (treffend) in Elektuur dat ze ook bij zo een toepassing hier en daar een capje zetten, om storing van Russische langegolfzenders geen last te hebben.
Maar in het begin was de verbazing groot!

Een filter die een afgestemde ontvangstkring lijkt te zijn, oscillatoren die alleen maar willen versterken en niet oscilleren, versterkers die alleen maar willen oscilleren en niet versterken...
Toch boeiend allemaal..

- - big bang - -

Niets is zo eerlijk verdeeld als verstand: iedereen denkt er genoeg van te bezitten

The art of programming boeken serie heeft een mooi hoofdstuk over het genereren van pseudorandom getallen. Volume 2 over seminumerical algorithms bevat een compleet hoofdstuk ervan met allerlei methoden en noemt de eisen, periodes en bewerkingen met tests om je eigen generatoren/bronnen te controleren.

Waarschijnlijk overkill al zitten er een paar efficiënte tussen met een behoorlijke periode.

Op 29 augustus 2009 18:49:13 schreef rew:

Als je een hardware bron hebt: Neem twee samples. Zijn ze gelijk, gooi ze weg, en begin overnieuw. Zijn ze niet gelijk, neem dan de laatste (of de eerste) als resultaat van je random-bit-generator.

Zoiets heet dacht ik een "van neumann corrector", zelfde principe wordt gebruikt in de random nummer generator die aan boord zit sinds de pentium-3 en hoger.

Best wel interessante stof, zie hier:
http://www.cryptography.com/resources/whitepapers/IntelRNG.pdf

A byte walks into a bar and orders a pint. Bartender asks him "What's wrong?" Byte says "Parity error." Bartender nods and says "Yeah, I thought you looked a bit off."

Op 29 augustus 2009 18:49:13 schreef rew:
[...]
Stel die 2 RC oscilatoren zijn een beetje scheef. Ze zijn 90% van de tijd nul. Hun xor is dan 81(00) + 1(11) = 82% van de tijd nul, en 9(01)+9(10)=18% van de tijd 1. Niet helemaal 50/50. Dit is natuurlijk overdreven, maar iedere verschuiving van 50/50 in de oscilatoren zal je terugvinden in de uitgang.

En dat noem jij een 'beetje' scheef? Ik vind het wel 'erg scheef'. Daarbij ga je er nog van uit dat beide oscilllatoren min of meer dezelfde frequentie hebben. Dat is niet de bedoeling en zal met een RC osc. in de praktijk ook wel loslopen. Natuurlijk heb je gelijk als het om 'echte' random gaat. Echter, voor wat hier gebruikt wordt is het goed genoeg. Overigens is het idee van die 2 osc. niet door mij verzonnen, maar eh... door iemand die er onderzoek naar gedaan heeft :)

Bovendien, kan het zomaar gebeuren dat je hoofdlus bijvoorbeeld onder bepaalde omstandigheden precies een geheel aantal cycles van de RC duurt. Ieder volgend bitje is dan ineens behoorlijk voorspelbaar. Je robot gaat dan bijvoorbeeld bij een bepaalde temperatuur ineens een tijdje alleen maar links.....

Dat zal theoretisch niet lang duren. Maar je hebt gelijk, het zou kunnen. Echter, als je 'echte' random hebt, is het ook niet uitgesloten dat je 100 '1' op rij uit de generator trekt. Al is de kans best klein...

Als je een hardware bron hebt: Neem twee samples. Zijn ze gelijk, gooi ze weg, en begin overnieuw. Zijn ze niet gelijk, neem dan de laatste (of de eerste) als resultaat van je random-bit-generator.

Ja, dat kan. Maar ook daar kleven nadelen aan (volgens de mensen die er onderzoek naar gedaan hebben...) In het algemeen moet je voorzichtig zijn met random weggooien. Het kan wel eens onbedoelde bijeffecten hebben. Maar in deze context zal ook dat wel loslopen...

Zorg dat je NOOIT, NOOIT, NOOIT wat met Versatel Tele2 te maken krijgt!

Een zeer domme ne uitermate pijnlijke fout:

Na een project alles netjes opruimen en met je hand in de soldeerbout grijpen die je ongeluk nog aan had laten staan
dat heb ik geweten!!! heb 2 weken lang op school geen pen vast kunnen houden.

Een knipperledje maken met een NE555 en perongeluk de verkeerde draden aansluiten 230 ipv 12 volt

Een computer repareren en je afvragen waarom in godsnaam de computer niet aan wil, zelfs het moederbordt terug gebracht naar de winkel, en daar deed ie het uiteraard wel, en thuis weer niet. En er dan achter komen dat je schakelaar van de voeding vergeten bent aan te zetten.

Dat je bij het repareren van TV's, toch echt even de boel moet ontladen, VOORDAT je met je soldeerbout, een condensator wilt verwijderen. Dat geintje koste mij dus een nieuwe ERSA Soldeer element.

Een project aansluit op een Accu en het vervolgens niet werkt '' ik zou toch zweren dat die accu vol was '' blijkt dus dood te zijn

en nog talloze meerdere stomme fouten

Wat betreft desolderen heb ik nog wel een tip:

als ik componenten wil desolderen van een printplaat, gebruik ik mijn standaard ERSA soldeerbout, en mijn compressor. Ik verhit het te desolderen component pootje, en blaas vervolgens de tin weg met de compressor. Resultaat is een zeer schoon tinloos eilandje, en een zeer schoon tinloos component pootje.

Je moet het overigens wel onder een bepaalde hoek doen, anders blaas je de tin tegen het component aan, en kun je daarna gaan krabben en borstelen. Het werkt zeer effectief op dubbelzijdig gesoldeerde printen.

als ik componenten wil desolderen van een printplaat, gebruik ik mijn standaard ERSA soldeerbout, en mijn compressor. Ik verhit het te desolderen component pootje, en blaas vervolgens de tin weg met de compressor

Gebruik wel een veiligheidsbril !!!

Op 30 augustus 2009 14:33:59 schreef maartenbakker:
[...]Bijna goede random is vaak goed genoeg, dus waarom zou je hem matig willen maken. Of bedoelde je niet matig maar hardwarematig?

Haha. Over domme fouten gesproken. :-)
Ik ben het boekje "irritaal" aan het lezen en er is een hoofdstukje hieraan gewijd.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Pak ook eens 'I always have my sin'. Leuke 'vertalingen' to over. Deel 2 is wat beter.

Zorg dat je NOOIT, NOOIT, NOOIT wat met Versatel Tele2 te maken krijgt!

Op 30 augustus 2009 17:47:39 schreef Marco69:
In het algemeen moet je voorzichtig zijn met random weggooien. Het kan wel eens onbedoelde bijeffecten hebben. Maar in deze context zal ook dat wel loslopen...

Klopt. Maar de von Neumanncorrector (heb ik zojuist geleerd dat het zo heet) moet je echt toepassen op de truuks met de oscilatoren. (ontwerptip van de dag :-) ).

Als je het Donald Knuth boek (ook hierboven aangehaald) leest, dan zijn een heleboel lastige en inefficiente methodes veel slechter dan een hele goede en snelle: Xn+1 = Xn * C + A Simpel efficient en heel goed, als je enige aandacht aan de keuze van C en A besteed. Dus moderne libs bevatten zo'n randomgenerator. Maar die moet nog geseed worden. In een omgeving als een AVR die een robotje bestuurt is de standaard truuk srand (time (NULL)); niet beschikbaar. Een stuk of 4 random bitjes zal voor gewone mensen de boel al voldoende verstoren. Pak daarom 12 of 16 bits van de AD convertor die je door de von Neumanncorrector hebt gehaald.

[edit] ehh. dan moet ik deel twee maar eens gaan halen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Hier ook een tip: koop NOOIT een el-cheapo breadboard!
Ik heb onlangs een extra breadboard gekocht, voor weinig.
Nu ben ik gisteren anderhalf uur bezig geweest om een
555 op te zetten als astabiele multivibrator in combinatie
met wat logica erachter, voordat ik erachter kwam dat het
probleem niet in de schakeling zat, maar in het breadboard:
brakke connecties :-(

Bij een klant een keer wat aanpassingen moeten doen aan de electrokast van een machine. Volgens de veiligheidsstandaard van het bedrijf moest de hoofdschakelaar af en slotje erop. Vooruit, het gaat om 24V maar we doen niet moeilijk. Aldus geschiede door de shiftleader van het maintenance team. Hij was wel even vergeten aan de volgende shift te vertellen waar hij de sleutel opgeborgen had. telefoontjes ten spijt maar die konden dus uiteindelijk met ijzerzaagje het slotje open zagen.

nou ik had net ook feest. er gebeurde het volgende:
had ik eindelijk na lang zoeken op het internet niets gevonden te hebben. toen op co een advertentie geplaatst toen had ik ze met nou ja 2 dagen. maar goed wat doet deze e*kel plaats ie een condensator verkeerd om |:(

dan krijg je dit:

http://lh4.ggpht.com/_vO4erOlbyoQ/Sq_ZCn26CWI/AAAAAAAAAjw/HkBHSls3IcY/s640/SNC00449.jpg

komen ze je bekent voor Hugo?

het spijt mee zeer te moeten zegen maar die zijn naar de eeuwigen bid velden.

dus bij deze, is deze jongen weer op zoek naar 2 condensatoren van 820 uF 200V

www.tinuselectronics.nl Because DIY Electronics Matters!!!!

Kristal voor atmega voorzien van 220 ohm smd weerstanden ipv 22pF smd condensators. Dat werkt dus niet.

Het verschil is pertang duidelijk: SMD-weerstanden hebben een opdruk, C's hebben dat niet. Of zijn er uitzonderingen op die regel?

@tinus: Ik kan het me voorstellen. C is eindelijk gearriveerd - snel op de print solderen, zodat we eindelijk kunnen testen...

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

ok daar komt het dan

7805 verkeerd om aangesloten = geen beeld meer op m'n lcd
(gelukkig m'n pic en ds 1307 nog niet op de print gedrukt)
alhowel pic goedkoper is dan een lcd schermpje

ben dan ook nog maar beginner

Böhse Onkelz - Denn wer keine Angst vorm Teufel hat Braucht auch keinen Gott

Op 15 september 2009 20:58:29 schreef pros:

@tinus: Ik kan het me voorstellen. C is eindelijk gearriveerd - snel op de print solderen, zodat we eindelijk kunnen testen...

ja het ging 5 sec goed en toen knal en een grote witte rook wolk en een zootje gespetter van heb ik jou daar.
was al te laat om de noot stop in te drukken. maar goed ga weer op zoek naar nieuwe condensators :)

www.tinuselectronics.nl Because DIY Electronics Matters!!!!
Hugo Welther

Moderator

Het is zonde maar zie je mailbox.
Maak wel de print en de omgeving van de C's goed schoon.
Elko drab is funest voor de print en andere komponenten.

Neem het leven niet te serieus - je overleeft het toch niet. Elbert Hubbard (1856-1915)

Op 15 september 2009 20:58:29 schreef pros:
Het verschil is pertang duidelijk: SMD-weerstanden hebben een opdruk, C's hebben dat niet. Of zijn er uitzonderingen op die regel?

Toen ik een keer goed keek zag ik inderdaad meteen dat ik niet wakker was toen ik de boel inelkaar had gesoldeerd. Maar da's zo'n beetje zo met alle fouten in dit topic.

ja het is zeker zonde maar goed weer veel van geleerd.
zal morgen de print en onderdelen schoon maken en mail ontvangen en beantwoord. bedankt Hugo.

www.tinuselectronics.nl Because DIY Electronics Matters!!!!

Op 15 september 2009 22:31:53 schreef alex278:
Toen ik een keer goed keek zag ik inderdaad meteen dat ik niet wakker was toen ik de boel inelkaar had gesoldeerd. Maar da's zo'n beetje zo met alle fouten in dit topic.

Zo heb ik eens (als student) een dubbelzijdige print geëtst met zowel de top als bottomlayer op zijn kop gedraaid (dus inktzijde van de print weg i.p.v. inktzijde tegen de print zoals het moest)
Strafste van al was het nog een stappenmotorkaartje dat in een XT PC ging gestoken worden. Dus bestukt, recht de PC in gefoefeld en opgestart. Na even hadden we een rookwolk, sissende ICs, en een PC waarvan het ONledje veel moeite had om aan te blijven.

Ik ben opnieuw kunnen beginnen en de PC heeft het overleefd.

- - big bang - -

Niets is zo eerlijk verdeeld als verstand: iedereen denkt er genoeg van te bezitten

Op 15 september 2009 23:25:21 schreef big bang:
[...]
Zo heb ik eens (als student) een dubbelzijdige print geëtst met zowel de top als bottomlayer op zijn kop gedraaid (dus inktzijde van de print weg i.p.v. inktzijde tegen de print zoals het moest)

Die fout heb ik ook wel eens gemaakt toen ik begon met het etsen van printjes, toen ik het hele procede nog niet zo in de vingers had (een stukje tekst doet wonderen voor de duidelijkheid). Nog even overwogen om de print andersom te monteren (dus componenten ipv op de top layer op de bottom layer te monteren), maar had al snel zoiets van 'dat gaat teveel hoofdpijn opleveren'.

Op 15 september 2009 20:58:29 schreef pros:
Het verschil is pertang duidelijk: SMD-weerstanden hebben een opdruk, C's hebben dat niet. Of zijn er uitzonderingen op die regel?

@tinus: Ik kan het me voorstellen. C is eindelijk gearriveerd - snel op de print solderen, zodat we eindelijk kunnen testen...

smd weerstanden zonder opdruk bestaan wel. Ik heb hier een aantal 0603 4.3k weerstanden zonder opdruk, weerstanden zijn ook blauw ipv zwart.

Maak me niet gek, ik ben al gek.

Op 15 september 2009 23:32:24 schreef alex278:
Die fout heb ik ook wel eens gemaakt toen ik begon met het etsen van printjes, toen ik het hele procede nog niet zo in de vingers had (een stukje tekst doet wonderen voor de duidelijkheid). Nog even overwogen om de print andersom te monteren (dus componenten ipv op de top layer op de bottom layer te monteren), maar had al snel zoiets van 'dat gaat teveel hoofdpijn opleveren'.

In mijn geval was het de ICs nemen, de pootjes omgekeerd naar boven buigen en op zijn kop monteren om te testen. Het is nog gelukt ook.
Maar voor die PC heb ik (met de nodige zweetdruppels op het voorhoofd) even gevreesd.

- - big bang - -

Niets is zo eerlijk verdeeld als verstand: iedereen denkt er genoeg van te bezitten

Dit topic is gesloten