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

drvlas

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о drvlas

  • Звание
    Участник
    Участник
  1. Ну, если речь идет о разовом изделии, то вопрос пары баксов кагбэ не вопрос, ИМХО. А в серии можно поискать и другие решения. Я назвал то, что на поверхности. Просто смысл убиваться в 5 мВ возле "рельсов" - сомнительно, по сравнению с классическим двухполярным (и даже не обязательно симметричным) питанием. Да, сам себе нечаянно подсказал: если поставить источник питания всей системы на 5 В, и создать землю на диоде (0,7 В или добавить Шоттки для вольта), то "минус" этого источника будет около -1 В относительно земли. Вот и не надо так переживать за последние 5 мВ, запитываешь ОУ от -1...+5 В. Честно скажу, сам так не делал. Но почему нет? UPD Вот изобразил, как это легко получить. Микроконтроллерная часть питается просто от 5В и "земли", а аналоговая - от 5В и источника "минус 700 мВ" на диоде. И, если ОУ хоть в какой-то мере rail-to rail (уж не имеет значения, до 5 мВ или до 50 мВ от земли) - все работает чики-пики. В реальной схеме может еще понадобится запустить немного току в диод (резистор R1), если ток потребления МК очень прыгает. Дело в том, что диоду нужно немного выйти на режим - тогда и его напряжение более стабильно, и его динамическое сопротивление значительно падает (то есть "выходное сопротивление" источника минус 700 мВ)
  2. Несколько старнно то, что автор не хочет пойти простым путем. Я имею в виду обычную двухполярную схему питания ОУ. Получить ее не сложно, хоть с того же MAX232 (пример схемы). Но вообще-то все зависит от задачи. Если нужно задавать что-то потенциометром, а хочется его от упора до упора крутить, так его снизу можно ограничить резистором, чтобы не доходил до "земди", равно как и сверху, чтобы запас от опоры был. Так что, ИМХО, мы тут копья перья ломаем зря. Пусть автор определится с хотелкой.
  3. Спасибо, что заметили: сохранять Y вовсе не обязательно. Я поленился еще раз переделывать код, так как это мелочь, что она объявлена статической. Если уж Вам очень хочется, чтобы все используемые переменные имели одинаковую размерность, то считайте, что у Z есть целая и дробная часть. Мой скромный, но очень практический опыт работы с целочисленной арифметикой говорит о том, что нужно хорошенько разбираться с размерностью на этапе проектирования математики. Когда модель, формулы построены, то в реализации уже не так важно, где стоит запятая (точка). Поэтому я считаю все переменные целыми (как их и обрабатывает МК) и редко говорю "фиксированная точка", а чаще "целочисленная арифметика". Пример: умножаем ЧИСЛО1 * ЧИСЛО2. Оба целые однобайтные. Результат ЧИСЛО3 - двухбайтное целое. Прекрасно. ЧИСЛО1 - однобайтовое целое ЧИСЛО2 - однобайтовое целое ЧИСЛО3 - двухбайтовое целое Можно объявить вообще все эти числа ИНТами или ЛОНГами. Никаких запятых. Теперь нам захотелось результат иметь такого же масштаба, что и ЧИСЛО1. Хорошо, можете считать, что у ЧИСЛА2 запятая отделяет 8 бит дробной части. Тогда ЧИСЛО1 - честно однобайтовое целое ЧИСЛО2 - однобайтовое дробное ЧИСЛО3 - двухбайтовое с целой и дробной частью. Как на мой взгляд, то первый вариант проще для восприятия. Но на вкус и цвет... Вы немного не дочитали статью :) Она, собственно, посвящена тому, как можно легко и просто найти Nb по заданным характеристикам фильтра (а именно: по времени отклика на ступенчатое воздействие). Поэтому уж такой свободы в выборе Nb у нас нет. Ну, частный случай может быть, что Nb = 16, но я считал более важным обеспечить Na+Nb=256 или иная степень двойки, чтобы деления не было.
  4. "но далеко не зашел" близко и понятно :) Ай-ай-ай! Это была ошибка. Уже устранил. Огромное спасибо!
  5. И верно, и нет. Да, нужно подходить комплексно и не стараться вытянуть ЦОС грубые недоработки в проектировании платы. Нет, ибо с числами можно не морочиться, а значительно улучшить результаты. Весь мир так делает. Почему нам отказываться? Давайте конкретнее. Вблизи нуля помогут. Нужно правильно выбирать диапазон работы АЦП, вот и все. Впрочем, коллега ViKo уже сказал об этом.
  6. Да, конечно, симметричное округление. Это правильно. Но я обычно в промежуточных вычислениях работаю с запасом по разрешающей способности. Поэтому там округлением не занимаюсь. А только в конце, может быть, проделаю такое добавление половинки единицы дискретности. Например, с АЦП идет много разрядов, младшие пляшут (собсно, зачем и усредняем), мы пускаем все это в обработку, не заботясь о мелочи, полразряда. А когда уж на индикатор выводится значение, которое должно быть стабильным, которое имеет определенную дискретность (не взятую с потолка) - вот тогда и есть смысл прибавить половинку. В статье поправил. Еще раз спасибо коллеге ReAl. Да, и оговорился там, что от диапазона входных величин x, Na и k зависит и выбор z. В указанном примере лучше сразу объявить long z. Что скажете?
  7. Ну, если это камень в огород автора той заметки на Easyelectronics, то отвечу. Автор пользуется описанным подходом с середины 80-х и обычно как раз в целочисленной арифметике. Так что эффект потери точности при делении ему известен. И он легко устраняется сохранением неделенного результата. В обсуждении той заметки была приведена даже реализация фильтра на Си. int filter(int x, int Na, int k){ static int y = 0, z = 0; z += (x — y); return y = Na * z >> k; }; Увы, переделка статьи, в которой должен был быть учтен этот пробел, была отложена. Так что спасибо за напоминание! Доработаем-с!
  8. Я мало знаю про практическую высоковольтную технику. Прошу сориентировать хоть чуточку. Нужно сделать испытательный стенд для однофазных 380 В нагревательных элементов, работающих на переменном токе 50 Гц. А в нем нужны мозги и мышцы. За мозги проблем нет, а вот с мышцами - незнайка. Задача 1. Нужно програмно управлять напряжением 380 В ступенями: -20%, 0%, +(10...20)% от номинала. Ступени включать-выключать примерно так: несколько секунд-десятков секунд включить, на несколько минут вернуть в номинал. То есть, не слишком часто, но и далеко не раз в час. Мощность можно либо сделать 1-1,5 кВА (как бы на один элемент), либо запузырить до 20 кВА, чтобы включать параллельно десяток-два нагревателей. То есть пока есть возможность выбора. По моим поискам стабилизаторы с дистанционным управлением в таких пределах не делают (или редкостные, а нам сложного не надо). Значит, думаю я, будем коммутировать три вывода с транса. Или есть другие идеи? А каков должен быть транс? Не слишком ли много 20 кВА тянуть с одной фазы? Как это сделать на трехфазном питании? Можно ли с трехфазного запитывать три группы испытуемых однофазных нагрузок? Задача 2. Полученные "прыгающие" 380 В нужно либо включать прямо на нагреватели (те, что испытываются), либо врубить по пути транс, повышающий напряжение до 1500 В. Ну, могут быть и такие нагреватели. Значит, нужно транс с 380 на 1500 В. Опять-таки, мощностью либо 1...1,5 кВА, либо аж до 20. Есть ли смысл искать готовые? Пока продавцы-менагеры только руками разводят да очи выпячивают. А если его делать, то какие-то спецтребования на 1500 В уже наступают или это еще детский размерчик? Спасибо!
  9. Это потери от работы с оболочками. Они там кодируют, кто в лес, кто по дрова. Я никогда не работал с Пони, но слышал краем уха о проблемах именно с этим. Важно, что же, в конце концов, было скомандовано ДУДКе. Если у тебя еще есть возможность увидеть лог, то посмотри. Если уже поздно - дык! Можешь просто ручками дать ДУДКе команду чтения фьюзов (в том же терминальном режиме, например). Но, скорее всего, с твоим камешком уже не будет связи. Ищи параллельный программатор. Или подожди, пока сюда подгребутся более опытные товарищи - мож я не все правильно понял :) Не расстраивайся преждевременно.
  10. В том, что ты показал на картинке, бит RSTDISBL аккурат наоборот. Старший байт фьюзов ведь должен быть DC? - почему же на картинке 5C? А программирование RSTDISBL полностью исключает дальнейшие SPI-прошивки.
  11. AT89C2051 -> AT89S2051 ?

    Похоже, все так и есть. Кстати, теперь и на других форумах нашел четкие подтверждения. Нужно было поискать лучше...
  12. AT89C2051 -> AT89S2051 ?

    Практически все задействовано. Это управление панелью индикации. Но есть панелька, так что прошивка - отдельно. Линии SPI свободны, как трусы в полете. Если ты об этом. Если же речь (также) и о работе на нагрузку (разница между традиционным портом и АВР-овским "симметричным") то я в курсе. Там все проходит в данной схеме.
  13. AT89C2051 -> AT89S2051 ?

    Похоже, что таки команды один в один. Судя по таблице команд на сайте Кайла, которая просто одинакова для этих чипов. Ладно, проверю - доложусь. Если раньше старый программатор не отремонтирую :)
  14. AT89C2051 -> AT89S2051 ?

    Ясно. Спасибо! То есть, в том числе и бинарный файл можно нагло шить, если в нем нет ни movx, ни долгих переходов, чем пугают в описании S-серии? То есть, я не очень понимаю фразу It is fully compatible with the MCS-51 architecture, and can be programmed using the MCS-51 instruction set Результат ассемблирования тоже будет одинаков? Конечно, я уже весь дрожу, что меня Палыч пошлет ассемблер читать и сравнивать коды команд и способы размещения двухбайтных чисел ;) , но может все же Вы и так знаете?
  15. AT89C2051 -> AT89S2051 ?

    Даже в названии темы :) Вы же не дали ответа. У Вас его нет. И, судя по тому, что для возможности замены МК считаете достаточным - Вашим советам я бы побоялся следовать. Вы слышали о программируемых устройствах? Так не работайте на меня! Пройдите мимо. Я могу задать как угодно идиотский вопрос - мало ли таких встречается? Вам-то какое дело? Вот товарищ prottoss, спасибо ему, подсказал, что вопрос не в том форуме. Увы, я ошибся. Но я обратился сюда не для того, чтобы читать "то, что само-собой разумеется". И с английским у меня лично нет проблем. Я спрашиваю тех, кто сам делал такую замену - удачно или нет. Им ответить на вопрос не сложно. А мне польза будет. Так что по теме? Есть у вас ответ, коллеги?
×
×
  • Создать...