Một bộ vi điều khiển nhỏ (8 bit Atmel) điều khiển một số đèn để trình chiếu một màn trình diễn ánh sáng với nhiều chuỗi ánh sáng ngẫu nhiên lạ mắt.
Một giả RNG phù hợp thực hiện công việc của nó một cách độc đáo, nhưng tôi đang tìm kiếm một hạt giống tốt cho nó. Một hạt giống sẽ là cần thiết bởi vì nếu ai đó bật nhiều thiết bị như vậy cùng một lúc, sẽ không tốt nếu tất cả chúng tạo ra các chuỗi hiệu ứng giống nhau cho đến khi chúng từ từ trôi đi do sự khác biệt nhỏ trong các nguồn đồng hồ riêng lẻ của chúng.
Một phương pháp rất tốt để tạo hạt giả RNG, mà tôi thường sử dụng, có thể trong trường hợp thiết bị phải được khởi động bằng cách nhấn nút hoặc lật công tắc. Ngay sau khi bật chế độ, có thể khởi động bộ hẹn giờ rất nhanh và giá trị của bộ hẹn giờ này sẽ tạo ra RNG ngay khi nhấn nút lần đầu tiên.
Vấn đề là, trong kịch bản này, không có nút nào. Chương trình phải bắt đầu ngay khi thiết bị được bật.
Vị trí trên PCB cực kỳ hạn chế (không có gì nhiều hơn một vài bộ phận SMD nhỏ nhất có thể phù hợp), vì vậy tôi đang tìm giải pháp nhỏ nhất và đơn giản nhất có thể. Do đó, tôi sẽ loại trừ các giải pháp ưa thích như phần cứng RNG thực, máy thu radio, v.v.
Tất cả những gì tôi có là bộ đếm thời gian 16 bit trong CPU và một chân cắm không sử dụng có quyền truy cập vào ADC.
Giải pháp hiện tại của tôi là chỉ sử dụng một điện trở (càng không chính xác càng tốt) để cung cấp khoảng một nửa điện áp cung cấp cho chân ADC và gieo RNG với giá trị chuyển đổi AD đầu tiên. Tuy nhiên, hiện nay hầu hết các điện trở 10% có độ chính xác dưới 1% (sẽ rất vui khi tưởng tượng ra khuôn mặt của một nhà cung cấp khi tôi nói với họ rằng chúng tôi muốn các điện trở SM chất lượng kém nhất mà họ có thể tìm thấy), vì vậy có khả năng rất cao nhiều đơn vị bắt đầu với cùng một hạt giống.
Một giải pháp thay thế tốt hơn sẽ là thực hiện nhiều chuyển đổi và xây dựng một giá trị từ các bit quan trọng nhất của các phép đo này. Tuy nhiên, tôi đã sử dụng bộ ADC loại này trước đây và tôi biết nó rất chính xác. Chạy ADC với tốc độ nhanh nhất có thể có ích ở đây.
Có ai có một đề nghị tốt hơn? Hạt giống không bắt buộc phải được phân phối đồng đều hoàn hảo, nhưng phân phối càng đồng đều thì càng tốt. Một hạt giống 16 bit với phân phối đồng đều hoàn hảo sẽ là một giấc mơ quá tốt là sự thật, nhưng tôi nghĩ rằng một phân phối nửa chừng trên 5 hoặc 6 bit có thể là đủ.