Перейти к содержанию
    

ViKo

Модератор
  • Постов

    12 216
  • Зарегистрирован

Весь контент ViKo


  1. То есть вопрос - отбрасывать ли два младших разряда, или оставить? Вам же надо 12 разрядов. Вот их и оставьте. А поделить на 16 - значит выбросить все 4 младших. Зачем?
  2. TAMPER

    о том и речь. Постфактум поздновато будет, не кажется? Уже прочитали флэш (если смогли, конечно). Разве что констатировать факт, что устройство уже изучено вдоль и поперек. Таким же образом можно по прерыванию на любой ножке программно стереть содержимое бэкап-регистров. В-общем, единственно возможное применение - уничтожаются ключи (занесенные извне в секретной лаборатории), даже если питание отключено и процессор остановлен. После чего устройство работать не будет. Можно, конечно, припугнуть потребителя, откроешь - хана! P.S. Пожалуй, есть способ. Записать зашифрованный код, который декодируется при наличии ключа. Дальше - выполняется (или не выполняется).
  3. TAMPER

    Отцепил питание от устройства, и пусть STM32 попробует что-нибудь стереть у себя внутри. Или держать "внутре" здоровенный аккумулятор?
  4. TAMPER

    Спасибо (мне пока не было нужды использовать, там хотя бы, то, что нужно изучить!). И как его приспособить для защиты (уничтожения) прошивки?
  5. TAMPER

    А что будет сделано автоматически, например, у STM32F103?
  6. Смеяться не буду, и плакать не буду. Мне лично это безразлично. А вот пользователям ISE-Xilinx могу посочувствовать, и присоединиться к общему недоумению, почему фирма, занимающая первое место по объему продаж ПЛИС (я не ошибаюсь?), не может сделать нормальный компилятор. Возможно, некоторых именно это и останавливает от перехода на Xilinx (меня, например). И еще, мне непонятно, как сторонние организации пишут компиляторы под чужое железо. Это ж все особенности архитектуры нужно знать! Пора Xilinx прикупить себе Sinplify.
  7. Первый называется переменный. А второй - непостоянный (изменчивый, значит)!. :)
  8. Все и умножатся. И станут чуть больше, равными не 1/2^N, а 1/(2^N)-1 В чем противоречие? А про точность резисторов зачем флудить? Считаем их идеальными. P.S. А почему резистор назван Rbr? А не Rfb? P.P.S. Спросите у Токхейма, какое опорное было в его ЦАП-е.
  9. Имелось опорное напряжение 3.2V. АЦП 4-битовый имеет 16 уровней. Шаг между каждыми уровнями 3.2/16 = 0.2V. Последний уровень не дотягивает до полной шкалы один шаг. Если сильно захотеть, то можно усилить выход ЦАП в (2^N) / ((2^N)-1) раз (например, в 4/3 для 4-битового). И так получить вместо 0.75V (для кода 11) 1V. И тогда вес младшего разряда будет не 1 / (2^N), а 1 / ((2^N)-1). Вместо 1/4 будет 1/3. Но зачем? Зачем эти муки деления на число, не кратное степени 2? Если разница с "нормальным" АЦП в худшем случае (для кода из всех единиц) составит 1LSB?
  10. Ну?! Прокомментировать вашу картинку (таблицу), или сами признаетесь? P.S. хочется достать ремень, и... :) P.P.S. сколько будет 16 * 0.2?
  11. А то! Включаем, выключаем, разряжаем, заряжаем. При хорошей емкости конденсатора, включенного последовательно в цепь с лампочкой, и лампочку зажечь можно. Но не навсегда. :) Ну или стрелку амперметра отклонить. А еще говорят, через конденсатор постоянный ток не течет.
  12. Постоянного тока (и вообще чего-либо постоянного) в природе не существует! Точно! Завтра ж 1-е апреля! Ох ты, господи!
  13. Ну, если вам так хочется - ДА! Только эти 2^N - 1 ступенек не доходят до опорного напряжения на одну такую ступеньку!
  14. Я показал здесь картинки из даташитов реальных АЦП и ЦАП. Им-то вы поверите? Там даже думать не надо, формулы написаны!
  15. Нет, не согласен! :( А согласен я с предыдущими ораторами. И мы уже, как заевшая пластинка, в один голос повторяем - не соответствует максимальный код с АЦП опорному напряжению. А соответствует диапазону напряжения от на единичку младшего разряда меньшего, чем опорное, до опорного. У двухбитового АЦП 4 уровня - 0, 1, 2 и 3, все равноценные. Не 0 + 3, а именно 4, хотя это уже вопрос демагогии. Нарисуйте схему, если хотите доказать. Еще лучше, в спайсе покажите. Или хоть из книги картинку покажите. Чему равна одна ступенька в АЦП Токхейма? Неужели Vref/15? В-принципе, масштабировать АЦП или ЦАП можно до любого коэффициента. Но главное останется неизменным - у N-разрядного АЦП или ЦАП имеется 2^N уровней. Вот на это число и нужно делить, чтобы получить единичный шаг. А делить нужно то, что было бы при коде 2^N (чудо! :)). Причем в реальном устройстве, АЦП или ЦАП, такого кода нет. А есть лишь максимум 2^N - 1. P.S. чем дальше влез... :)
  16. Я думаю, как в любом программаторе. PROGRAM - записать программу, VERIFY - удостовериться, что записанное совпадает с тем, что записывали. Т.е. читает обратно, и сравнивает. Если совпадает - Ok.
  17. Это уже в прошлом. Посмотрите на список, что я показал, 6-я сверху строка.
  18. Рассмотрим АЦП с униполярным входом. 2-битовый (4-уровневый), с опорным напряжением 1V. У такого АЦП коды будут соответствовать: 00 - 0...0.25V 01 - 0.25..0.5V 10 - 0.5..0.75V 11 - 0.75..1V Подав такой код на ЦАП, получим напряжения: 0, 0.25V, 0.5V, 0.75V. Имеем погрешность на пол-младшего разряда. Если к полученному коду добавить еще один (дробный) разряд, равный 1, и подать уже на 3-битовый ЦАП, мы эту погрешность устраним. Попадем точно в середину исходных диапазонов. Для многоразрядных АЦП эта погрешность несущественна. Особенно, учитывая, откуда что мы подаем сигнал на вход АЦП. Там и своих ошибок смещения хватает. Для биполярных АЦП, наверное, можно сразу сделать преобразование без такой ошибки.
  19. Вы все правильно посчитали, на первый взгляд. Только выводы сделали неправильные. :) Что есть делить на 255? Сложная процедура. Не у каждого микроконтроллера получится легко. А что есть делить на 256? Да вообще ничего делать не надо! Взял старший байт, а про младший забыл. А чтобы добавить пол-младшего разряда, прибавить к младшему байту 0x80 (считаем, уже поделили, и это есть дробная часть), и, если есть перенос, увеличил старший байт. Или использовать и старший байт (целая часть), и младший (дробная часть). И ошибка равна нулю!
  20. Если вы на тот же АЦП подадите напряжение от 0.996V до 1V, вы тоже получите код FF. 0.996V - это порог переключения. Ниже него будет код FE, а выше FF.
  21. В Q-SV работает такая функция. С ее помощью можно не задумываться, сколько битов должна иметь переменная, чтобы в нее поместилось данное слово. The system function $clog2 shall return the ceiling of the log base 2 of the argument (the log rounded up to an integer value). The argument can be an integer or an arbitrary sized vector value. The argument shall be treated as an unsigned value, and an argument value of 0 shall produce a result of 0. bit [$clog2(100000000)-1:0] cnt; // счетчик
  22. Которые паяют приемники? Вопрос был про приемники. Все остальное - инсинуации!
  23. Они все же были разные когда-то, но теперь остался один. И называть его нужно SystemVerilog.
×
×
  • Создать...