Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Security Register в AT45xxxD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Itch
Хочу использовать такую возможность как считывать Security Register из AT45 и использовать его вторую половину, которая вроде как уникальна для каждой микросхемы памяти. Проблема в том, что размер этой области - 64 байта, т.е. многовато, мне достаточно 4 байт. Какую часть этой области можно взять, первые байты или последние? Т.е. какой там вообще закон формирования этого ID? Или не париться и просто посчитать CRC32 по всем 64 байтам?
uriy
Если не секрет, что вы потом с ними собираетесь делать? Что-то мне в голову ничего вразумительного не приходит.
Itch
Уникальный ID устройства, начальный seed для random()... Много применений.
uriy
Цитата
начальный seed для random()
Вот это уже действительно полезно. Я могу считать несколько микросхем, как будет время, результаты сообщу. Насколько я понимаю вам щас надо узнать какие байты являются младшими.
zltigo
Цитата(Itch @ Dec 8 2008, 13:27) *
Или не париться и просто посчитать CRC32 по всем 64 байтам?

Да. Или CRC или подобные ему контрольные суммы.
Itch
Впринципе я и сам могу прочитать, по крайней мере 2 микрухи есть. Просто думал, что кто-то использовал уже эту вещь или видел более подробное описание этого регистра.
Itch
Прочитал регистры с 2 микросхем AT45DB161D-SU.
На корпусе написано: ATMEL0726
Первые 64 байта - FFы. Так и должно быть, их сами программируем.
Дальше так (начиная с 64 байта по ходу чтения):
Код
07 06 04 0B 11 00 1F 26 00 00 35 10 FF FF 9B FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

и
07 06 04 0B 11 06 1F 26 00 00 15 10 FF FF AF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

1F 26 00 00 - очень похоже на Manufacturer & Device ID Information.
Похоже что самый оптимальный способ сгенерить ID - это пропустить 64 байта, прочитать следущие 16 байт и по ним посчитать CRC32.
uriy
Вот что получилось у меня, микросхема та же AT45DB161D-SU
Код
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
08 05 01 16 1D 27 1F 26 00 00 1C 28 FF FF 96 FF
30 30 38 50 31 33 30 35 10 22 23 FF FF FF FF FF
3D 3D 3D 3D FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF


FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
08 05 01 14 17 28 1F 26 00 00 1C 28 FF FF 29 FF
30 30 38 50 31 33 30 35 10 32 23 FF FF FF FF FF
39 39 39 39 FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF


FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
08 05 01 14 17 28 1F 26 00 00 15 28 FF FF 29 FF
30 30 38 50 31 33 30 35 10 2B 23 FF FF FF FF FF
3B 3B 3B 3B FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF



FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
08 05 01 14 17 28 1F 26 00 00 14 28 FF FF 29 FF
30 30 38 50 31 33 30 35 10 2A 23 FF FF FF FF FF
3B 3B 3B 3B FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
У меня больше байт меняются
Itch
Да, похоже все-таки правильнее по всей области считать CRC.
Странно выглядят 3B 3B 3B 3B, 3D 3D 3D 3D, с чтением все нормально?
uriy
Не думаю что с чтением есть проблемы... Использовал свои старые функции из исходников. Девайс уже серийно продается.
Тем более у нас совпало 1F 26 00 00.
galjoen
Цитата(Itch @ Dec 8 2008, 14:15) *
Уникальный ID устройства, начальный seed для random()... Много применений.

Выдам страшную тайну - ещё лучше для этих целей подходит CRC от непроинициализированного ОЗУ. Ещё это можно использовать как защиту от копирования. Если рассмотреть несколько включений ОДНОГО процессора, то примерно в половине битов ОЗУ ВСЕГДА будут одинаковые значения.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.