Jump to content

    

DpInRock

Участник
  • Content Count

    2291
  • Joined

  • Last visited

Everything posted by DpInRock


  1. Ответ не по существу. Триггеры без цепей сброса устанавливаются в случайное состояние независимо от технологии. (Но в зависимости от допусков в технологии). А писать автомат при 57 словах свободной памяти в уже проверенной программе - очень неинтересно. Хотя и можно. Но очень хочется иметь хоть небольшой запас на некие более важные манипуляции в будущем. Тем более, что моя схоластическая теория уже подтверждена практикой. Уже на 300 изготовленных устройств нет ни одного совпадения. Еще осталось изготовить 700. Тенденция - на лицо. А у вас пока ТОЛЬКО теория.
  2. Триггеры без цепей сброса устанавливаются в состояние, определяемое шумами, погрешностями (неравномерностью) технологии и прочими СЛУЧАЙНЫМИ факторами. Следовательно статическая память будет содержать случайные числа. Закон природы. Если есть чем возразить по существу - welcome.
  3. Нет. Состояние памяти после сброрса - ДОКУМЕНТИРОВАНО!!!!! См. даташиты. Состояние памяти данных и многих регистров по включению питания определяется как "unknown" - т.е. НЕИЗВЕСТНОЕ ЗАРАНЕЕ. А это полностью совпадает с определением случайного числа.
  4. Пытаюсь отучиться решать проблемы, которых еще нет.
  5. Это устройство умеет только передавать. И никаких ПСП. Строго пакет соот. протоколу. Почти ЧМ. Лишних кнопок и выводов нет. Вообще. Кнопки могут находится в любом состоянии. Никаких индикаторов нет. 99% времени кнопка спит как убитая и вовсю экономит электричество. Уже многочисленные эксперименты с памятью - около 200 раз - НИ РАЗУ не дали совпадающих чисел (16 разрядов). Хуже того. Попробовал это на другом Пике (было под рукой устройство.). Эффект тот же. Там правда, недолго пробовал. Пару раз.
  6. Хотел успокоится на внешней проге с самого начала. Но потом прикинул, что это мне ее писать... И что-то расхотелось. Заказчик лишней работы не оплатит.
  7. Адрес генерируется раз в жизни. И пишется во флэшку. Устройство крайне маленькое, потреблять должно не более 5 микроампер (в среднем). Достаточно сделать генерацию нового адреса по подсоединению батарейки, как все проблемы с совпадениями снимаются. Если совпало - просто переткни батарейку еще раз. Но я так не сделал. Ибо на пиковый случай, когда в одном месте собираются очень много устройств (сложная система), то там присутсвует управление устройством через RS232? где ты можешь в ручную задать все параметры. А для простых случаев - сойдет и так. Это устройство - просто радиокнопка на 10 выключателей. Типа умный дом и все такое. Просто встала задача при массовом тираже (всего 1000 шт. в год) упростить задачу записи разных адресов по умолчанию.
  8. Решение достаточно. Ибо случайные числа любого диапазона имеют право совпадать. Даже самые настоящие случайные числа. Посему - все нормально. Когда не хотят, чтобы что-то совпадало, как например MAC адреса сетевых карт, то не используют случайные числа. Мое устройство просто в радиусе своего действия - 50 метров, не должно сталкиваться по адресам с другим устройством. И все. А устройств в одном радиусе действия ожидается не больше двух трех. Поэтому 65536 адресов - вполне достаточно. За глаза. (Где генерируется одно случайное число, там генерируется и второе - задача эквивалентная).
  9. Согласен, что задержка для флэшки не должна зависить от тактовой процессора. По идее.
  10. Идея с Eprom мне не нра по одной причине. Бывали случаи ( в практике), когда портилось не только то куда пишешь. Т.е. снятие питания во время записи в общем случае чревато траблами в других местах. С кнопками - да. Но на устройстве нет ни одного элемента индикации. Очень неприятно давить кнопки наугад. Тем более - неспециалисту.
  11. Как вообще генерировать случайные числа я себе представляю. Как генерировать их без внешних устройств - вот в этом вопрос.
  12. Внутренний. Не хотелось бы строить еще один автомат. Хотя так можно, конечно.
  13. Я делаю все из МСС18. Не стал вмешиваться в стартапные вещи (еще чего, нам, боярам не с руки ковыряться). У компилятора действительно есть неинициализируемые области, которые он явно указывает. Но так как я суммирую вообще ВСЮ память, то все нормально получится. На самый худой конец (самый худой) - последствия не очень фатальны. Это не прицел баллистической ракеты. Действительно, почему я не стал в первую очередь ориетироваться на память, ибо опыт работы с осталными процами говорил, что память чаще всего именно обнуляется аппаратно (в смысле, сама по себе). ....
  14. Может кому пригодится. Опробованы все способы. Самым надежным и приятным в реализации оказался озвученный тут совет суммирования памяти. Тесты показали, что память инициализируется действительно случайными числами. Даже не FF 00 F0 0F. А нормальными такими числами. Там, 18, 75, 36.... Полсотни раз порпобовал - числа не повторились. Хотя могли бы. А реализация - всего одна строка. Рад в усмерть. Спасибо еще раз.
  15. Да сложно все получается, если программно решать вопрос. Дело копеечное. Все-таки правильнее сделать процесс управляемым. Т.е. снаружи писать прогу, которая правит хекс. По крайней мере надежно и точно. И числа будут точно не совпадать.
  16. Попробую. Хотя думаю, что запись в епром синхронная. А АЦП стоит как вкопаный гад. Вот когда не надо, дергается. А тут железно меряет. Даже удивительно. И младший разряд стоит. А может можно программатор научить ячейку образа памяти инкрементировать? Точно. Просто напишу программку, которая раз в секунду увеличивает содержимое ячейки в нужном месте хексфайла. Правда, там еще надо будет контрольную сумму фиксить... А программатор всегда проверяет файл на свежесть (ПикКит2). Вот самый удобный наверное способ. Спасибо всем за участие. Как оказывается ен просто не на IBM число сгенерить.
  17. Спасибо за идею составлять число из младшего бита АЦП. То, что нужно. Добавлю к нему считывание посередине преобразования. СПАСИБО. (Хотя, нет. не добавлю).
  18. Эти устройства никак не связаны друг с другом. Лежат себе на складе, никого не трогают. Приходит человек, берет устройство и уходит. Вставляет батарейку. Бабах - устройство придумало себе адрес. Потом, через год, этот человек берет другое устройство. Приходит к себе домой, вставляет батарейку - бабах - устройство придумало себе адрес. И с тем устройством, что уже у него имеется - не совпадает (с учетом вероятности).
  19. Слабо. Надеюсь, что это на самом деле невозможно без внешнего источника случайного события.
  20. Разумеется. Мне достаточно будет если ДВА разных устройства выдадут просто разные числа. Скажем от 1 до 10. Т.е. подсоединяем батарейку у двух устройств. А они с вероятностью хотя бы 50% выдают разные числа. (Хотелось бы вероятность побольше, но на худой конец хватит и такой). Поясню. При первом подключении батарейки устройство должно сгенерировать свой адрес - 1 байт. И все. При этом другое устройство (с понятной вероятностью) должно сгенерировать другой байт.
  21. У меня нет висящих ног. Но хотелось бы решить хитростью какой-нибудь. Там все очень стабильно (питание от батарейки). И АЦП даст слишком малую разницу. У меня впечатление, что это невозможно. Поэтому и обратился к мировому сообществу. Все синхронно. Была надежда что запись в память EPROM случайна по времени - но нет. Как-то одинаково все.
  22. Есть пикпроцессор. Внешних устройств - нет. Требуется после старта программы сгенерировать случайный байт. Старт программы осуществляется присоединением батарейки. Число требуется ровно одно. У двух одинаковых устройств после подсоединения батарейки должны генерироваться 2 разных числа. Возможно ли такое? :07:
  23. Что вы называете блоком питания - является ли таковым, или это источник тока?