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

ViKo

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

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

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


  1. STM32: Отладка в RAM

    Обнаружил непонятное явление - в Keil при отладке программы в RAM невозможно пользоваться симулятором. На первой же команде выскакивает HardFault.
  2. Шину и с интерфейсом делать можно, и без интерфейса. Квартус сам сделает из двунаправленной шины мультиплексоры. А можно и помочь ему.
  3. Предлагаю город указывать непосредственно в заголовке. Места много не займет, а искать будет проще.
  4. Еще бы не ошибся. Падение напряжения на отверстии там тоже рассчитывается: 0.00125V Мощность падает: 0.00626W Следовательно, температура повысится на 0.00626 * 32 = 0.2 deg
  5. Нужно выполнить "Generate Functional Simulation Netlist". Почему так сделано, мне невдомек. Функциональное моделирование покажет все красивенько, как задумано. Но в реальности будет не так. Есть задержки. Они маленькие, вы на времена посмотрите внимательнее.
  6. А если вы не прочитаете - это и будет "строго старый отсчет". Усё!
  7. Я ж написал "не нужно читать в это время". Прочитайте чуть позже. Задайте какую-нибудь высокую частоту, и на ней забрасывайте в регистр ПЛИС, постоянно, кроме запрещенного с АЦП времени. А дальше используйте с той частотой, с какой нужно. Эти две частоты будут синхронными, никаких перекосов, гонок, метастабильных состояний :)
  8. Вот не понимаю я подобных задач, уже не впервые поднимавшихся здесь. Частоты АЦП и автомата разные. Если АЦП быстрее работает, значит, время от времени, код с АЦП будет теряться. Если автомат быстрее работает, значит, иногда один и тот же код будет обрабатываться дважды. И никакие ФИФО не спасут, так будет всегда. Если это не важно, и задача только избавиться от неправильно прочитанного кода из-за перекосов в момент метастабильного состояния, не нужно читать в это время. Создать сигнал, гарантирующий, что код с АЦП установился (всё, кроме времени в окрестности тактов АЦП), и читать, когда этот сигнал разрешает.
  9. Выключить может легко, а включить посложнее будет, придется создать внутри триггер, управляемый асинхронно, без тактов, переключаемый по кнопке снаружи. Потом, генератор при включении-выключении будет выдавать абы что. Вместо этих страхов можно блокировать тактовую частоту внутри ПЛИС, и даже не блокировать, а не разрешать работу триггеров. Результат будет такой же, как если не подавать тактовую.
  10. Если оба события не могут случиться одновременно, то приоритет можно выбрать любым, на свой вкус. Логично?
  11. Я дам совет - читайте всё, но в спорных вопросах доверяйтесь стандарту.
  12. Можно и так, конечно. А можно и для чего-нибудь другого приспособить. Нажал кнопку - загорелись индикаторы, к примеру :) А для чего нужно останавливать ПЛИС таким "варварским" способом? P.S. а где вы увидели, что S1 это "clock"? А наиболее вероятно, эта кнопка задает временной интервал, в течение которого считает счетчик внутри ПЛИС. P.P.S. Увидел на картинке. Ну так то внутри нужно делать - выбирать один такт из постоянно генерящих, приходящих на ПЛИС.
  13. Я тоже хотел так сказать, но не нашел весомых аргументов. Сильно влазить в это времени нет. Наверное, фильтром можно будет отфильтровать все лишнее в любом случае.
  14. Конкретно не знаю. Но, рассуждая логически, могу согласиться. Чем меньше технологические нормы, чем меньше напряжение питания, тем меньший заряд хранится в ячейках flash. Любое излучение может этот заряд уничтожить. Утверждалось, один перелет на самолете по дозе облучения равен году просмотра телевизора.
  15. У TFT Sharp есть выводы, отвечающие за инверсию изображения по вертикали, и по горизонтали.
  16. Аналогично. А посто модуль взять, не возводя в квадрат, слабо? Находим среднее значение НЧ фильтром, что выше него - "плюс", что ниже - "минус". "Минус" переворачиваем в "плюс".
  17. Прав ваш начальник. Нестабильно у вас. Только не ПЛИС в этом виновата. Приборы незаземленные. Питание сетевое без заземления. Вообще, само питание - дрянное. В приборах земля хрен как разведена. И т.п. Наверное, и "статикой" микросхем побили кучу? P.S. Вообще-то, у ПЛИС Altera есть режим автоконфигурирования, если "прошивка слетела".
  18. Да. Это просто язык описания аппаратных средств. А как иначе можно создать устройство, выполняющее ваши операции? :) Нарисуйте на бумаге.
  19. Единственно верное решение избавиться от иголок - тактируемая схема, синхронно изменяющая все свои сигналы - выходные, промежуточные...
  20. Нужно понять, инициализируется ли массив - глобальная переменная, нулями, до запуска main функции? То, что называется zero init. Если да, то как тогда быть с массивом во внешней памяти? К ней же и доступа пока еще нет.
  21. Почему "естественно"? Можно было и на XTin прицепить, но я думаю, что на выход лучше. А резистор - прямо с ножки микросхемы в цепь, которая к ПЛИС пошла. Чтобы не мешать резонатору, насколько возможно. Для проверки можно было бы разорвать цепь, выпаяв резистор.
  22. Я вам советовал использовать XTOut, и резистор последовательно можно всунуть, Ом 100
  23. Если вы опишете блокирующими операторами в блоке begin - end так, как описали словами, что будет плохо? Это же не программа, где один процессор мучается со всеми функциями поочередно. Здесь то, что можно сделать параллельно, будет реализовано отдельными аппаратными средствами, и будет работать синхронно с другими устройствами.
  24. Называется "неблокирующее присваивание", и задается с помощью <= Отличается от блокирующего = тем, что все операторы в блоке выполняются одновременно, в момент выхода из блока. upd. Вернее, рассчитываются, когда дойдет очередь, а результат присваивается при выходе из блока.
  25. Попытался в тестовом проекте найти, обращается ли функция __main к массиву во внешней памяти. Не нашел.
×
×
  • Создать...