roboforum.ru

Технический форум по робототехнике.


AVR - Генерация случайного числа

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: AVR - Генерация случайного числа

Сообщение contr » 23 окт 2009, 16:54

поскольку время вотчдога настраивается - можно получить хорошее распределение в нескольких битах сразу.

Не совсем так. RC генератор WDT имеет некоторую нестабильность, которая не меняется от прогона через делители МК.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

Re: AVR - Генерация случайного числа

Сообщение boez » 23 окт 2009, 18:39

SSG писал(а):В некоторых случаях для получения белого шума используют простейшие приемники не настроенные на какую-либо станцию. Деталей нужно минимум.


Вообще чтобы сделать генератор шума на АЦП, деталь нужна одна (стабилитрон на землю, бита 2-3 шума точно даст), подтяжку ему программную. Ну на крайняк еще резистор на питание. Обсуждение идет - можно ли прменить 0 деталей. А у приемника, не настроенного ни на какую станцию, сколько деталей будет?
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: AVR - Генерация случайного числа

Сообщение avr123.nm.ru » 23 окт 2009, 19:05

Если стабилитрон к питанию подключить и "при-тянуть" его резистором к земле то еще и шум по питанию добавим на АЦП - все польза :good:
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: AVR - Генерация случайного числа

Сообщение Michael_K » 23 окт 2009, 20:20

contr писал(а):
поскольку время вотчдога настраивается - можно получить хорошее распределение в нескольких битах сразу.

Не совсем так. RC генератор WDT имеет некоторую нестабильность, которая не меняется от прогона через делители МК.

Что-то я не понял этого посыла...

Допустим, нестабильность +-1 процент. Пусть вотчдог при маленьком делителе сработает через секунду.
За секунду наш счетчик досчитает до тысячи (+-1% = +-10 LSB)

А если делитель на вотчдог поставить больше, то он сработает через 10 секунд
И мы досчитаем до десяти тысяч (+-1% = +-100 LSB) - то есть получим больше
случайных битов.

И опять же... contr, у меня приборы с подобным алгоритмом
массово заказчиком выпускаются уже лет семь.
Я тут не сочиняю про всякие "приемники на диодах"
- я говорю о решениях, проверенных практикой.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: AVR - Генерация случайного числа

Сообщение Drunya » 24 окт 2009, 19:45

Глюк по-немецки означает "счастье"...
Аватара пользователя
Drunya
 
Сообщения: 196
Зарегистрирован: 05 июн 2007, 12:20
Откуда: Киев
прог. языки: C/C++, ASSEMBLER

Re: AVR - Генерация случайного числа

Сообщение Michael_K » 24 окт 2009, 20:18

Как делали в Texas Instruments:

По первой ссылке ПСЕВДО-случайный генератор - ничего особенного.
По второй - да, это оно. Используется рассинхронизация часов.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: AVR - Генерация случайного числа

Сообщение contr » 24 окт 2009, 20:32

Я тут не сочиняю про всякие "приемники на диодах"

Так и не я такие генераторы шума придумал - это классика жанра. А уж будет это просто диод, LED или стабилитрон не столь важно. Только шумы питания к стабилитрону не приплюсуются. Там делитель ~1/100 получается, да еще и емкости по питанию.
…у меня приборы с подобным алгоритмом

Вы отклонение частоты/периода измеряете, а оно относительное и не меняется от прогона через делители. Вот многократный замер действительно позволяет накопить погрешность.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

Re: AVR - Генерация случайного числа

Сообщение Michael_K » 24 окт 2009, 21:02

contr, Вы вообще о чем говорите?
Многократный замер с суммированием результатов - это то же самое, что и длинный замер.
Длина замера зависит от времени срабатывания вотчдога.
При чем здесь делители?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: AVR - Генерация случайного числа

Сообщение Madf » 13 фев 2012, 15:52

Помню в Спектруме был самый лучший генератор случайных чисел (но то г, что было на ПиСюке). Возможно нечто подобное можно реализовать, допустим можно использовать таймер с максимальным приоритетом, при запуске которого будет выполняться код читающий значение адреса стека + xor с содержимого его + добавим счетчик (от 0 до 255, если 8-бит).
Просто читать с неба через АЦП или другие вещи числа - не вариант, т.к. хорошее случайное число должно по хорошему покрывать весь спектр чисел и никогда не повторяться - это в идеале.
В описанном выше алгоритме будет всегда и у всех выходить разное число, т.к. все программные коды у друг-друга разные + можно задавать задержку перед запуском основного кода после запуска таймера.
При таком подходе не гарантируется покрытие всего спектра случайных чисел, но точно сводится к минимум повторения у всех одной и той же последовательности, т.к. значения хар-к таймера + задержка после опроса значений у всех могут быть разные.
В любом случай надо пробовать.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Пред.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34