Küçük bir mikrodenetleyici (8-bit Atmel), çok sayıda süslü randomize ışık sekansı içeren bir ışık gösterisi sunmak için birçok ışığı kontrol eder.
Uygun bir sözde RNG işini iyi yapıyor, ancak bunun için iyi bir tohum arıyorum. Bir tohum gerekli olacaktır, çünkü eğer birisi aynı anda birden fazla cihazı çalıştırırsa, ayrı ayrı saat kaynaklarındaki küçük farklar nedeniyle yavaşça ayrılmadan önce aynı etki dizilerini oluşturmaları iyi görünmeyecektir.
Sık kullandığım sahte RNG'yi tohumlamak için çok iyi bir yöntem, bir düğmeye basılması veya bir anahtarın çevirilmesiyle başlatılması gereken bir cihaz olması durumunda mümkündür. Μc açılır açılmaz çok hızlı bir zamanlayıcı başlatılabilir ve bu zamanlayıcının değeri düğmeye ilk kez basıldığında RNG'yi verir.
Sorun, bu senaryoda, hiçbir düğme olmamasıdır. Cihaz açıldığında programın başlaması gerekir.
PCB üzerindeki yer son derece sınırlıdır (en küçük SMD parçalarından birkaçının sığabileceği bir şey değildir), bu yüzden mümkün olan en küçük ve en basit çözümü arıyorum. Bu nedenle, gerçek RNG donanımı, radyo alıcıları vb. Gibi fantezi çözümlerini ekarte edeceğim.
Sahip olduğum tek şey CPU'da 16 bitlik bir zamanlayıcı-sayacı ve bir ADC'ye erişimi olan kullanılmayan bir portpin.
Mevcut çözümüm, ADC pimine besleme geriliminin yaklaşık yarısını sağlamak için sadece bir direnç kullanmak (mümkün olduğunca yanlış) ve RNG'yi ilk AD dönüşüm değeri ile tohumlamaktır. Bununla birlikte, günümüzde çoğu% 10 direnç% 1'in altında bir yanlışlığa sahiptir (bulabilecekleri en kötü kalite SMD dirençlerini istediğimizi söylediğimde bir tedarikçinin yüzünü hayal etmek eğlenceli olacaktır), bu yüzden çok yüksek bir şansı var. aynı tohum ile başlayan çoklu birimler.
Daha iyi bir alternatif, birden çok dönüşüm yapmak ve bu ölçümlerin en az önemli bitlerinden bir değer oluşturmaktır. Ancak, bu µc türünün ADC'sini daha önce kullandım ve çok doğru olduğunu biliyorum. ADC'yi mümkün olan en yüksek hızda çalıştırmak burada yardımcı olabilir.
Daha iyi bir öneriniz var mı? Tohumun düzgün bir şekilde düzgün bir şekilde dağılması gerekmez, ancak dağılım ne kadar düzgün olursa, o kadar iyidir. Kusursuz bir formata sahip 16 bitlik bir tohum, gerçek olamayacak kadar iyi bir rüya olurdu, ama 5 ya da 6 bitin üzerinde yarı yarıya iyi bir dağılımın yeterli olabileceğini düşünüyorum.