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

AndreyVN

Свой
  • Постов

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

  • Посещение

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


  1. Мысль здравая, но нет похожей команды, посмотрел на всякий случай. Похоже, что с кодом все нормально. Передача происходит настолько быстро, что пользовательская часть программы не успевает отловить изменение статуса передатчика, CPU крутится где-то в дебрях ОС.
  2. В линейке TI есть изделие CC1310 (СС13xx-CC26xx) на борту которого процессор Cortex-M3 и радиомодуль, управляемый Cortex-M0. Программирую это через CodeComposerStudio, пользуюсь TI-RTOS, пересылаю пакеты данных с одного модуля на другой. Все работает, кроме возможности анализировать статус передатчика. Это нужно чтобы запускать АЦП во время радиотишины. Отправляются пакеты вот такой командой EasyLink_transmit(&txPacket); команда ставит пакет в очередь и всегда возвращает EasyLink_Status_Success. То есть, отловить факт передачи по возвращаемому коду не получается. В составе команды, которую исполняет RF модуль есть 2 байта статуса, которые отражают именно текущий статус команды. Вроде, то, что нужно! An integer telling the status of the command. This value is updated by the radio CPU during operation and may be read by the system CPU at any time. Однако, все попытки анализировать это поле cmdStatus = ((volatile RF_Op*)RFCommand)->status; Не дают никакого результата, status всегда 0x2000 и до выполнения команды и во время и после. Что я делаю не так ??? PS: RFCommand это вот такая структура: struct __RFC_STRUCT rfc_radioOp_s { uint16_t commandNo; //!< The command ID number uint16_t status; //!< \brief An integer telling the status of the command. This value is //!< updated by the radio CPU during operation and may be read by the //!< system CPU at any time. rfc_radioOp_t *pNextOp; //!< Pointer to the next operation to run after this operation is done ratmr_t startTime; //!< Absolute or relative start time (depending on the value of <code>startTrigger</code>) struct { uint8_t triggerType:4; //!< The type of trigger uint8_t bEnaCmd:1; //!< \brief 0: No alternative trigger command<br> //!< 1: CMD_TRIGGER can be used as an alternative trigger uint8_t triggerNo:2; //!< The trigger number of the CMD_TRIGGER command that triggers this action uint8_t pastTrig:1; //!< \brief 0: A trigger in the past is never triggered, or for start of commands, give an error<br> //!< 1: A trigger in the past is triggered as soon as possible } startTrigger; //!< Identification of the trigger that starts the operation struct { uint8_t rule:4; //!< Condition for running next command: Rule for how to proceed uint8_t nSkip:4; //!< Number of skips + 1 if the rule involves skipping. 0: same, 1: next, 2: skip next, ... } condition; } __RFC_STRUCT_ATTR; Эта структура сидит в ОЗУ и поле статуса должен менять Cortex-M0 то-ли через прямой доступ к памяти, то-ли через прерывание. Я собираю это поле в массив и просматриваю в JTAG-отладчике.
  3. Ищите сетку Фибоначи. Насколько я знаю, для произвольного количества точек задача их равномерного распределения по сфере не имеет аналитического решения. Решается только для определенных чисел. Численно народ решает через механические аналогии, например, распределение заряженных частиц, считают силы, решают уравнения движения и ждут пока частицы перестанут двигаться.
  4. Это я виноват, за недосказанность. Эта схема рекомендована для переключения питания радио-модулей (у меня SIM-800), у него очень большие (до 2.0А) пиковые токи и как следствие, обвязка танталовыми конденсаторами большой емкости. А переключение происходит очень редко и пропадание одного пакета данных вполне допустимое явление (они и так иногда куда-то пропадают). Так, что предложенные объяснения выглядят очень правдоподобными.
  5. Доброго дня! Вопрос по ключу на последовательно включенных P-канальных MOSFET. Не могу понять, зачем в таких схемах в цепи затвора ставят конденсатор? Есть подобная схема, где наружу торчат стоки, и тоже в цепи затвора 0,1 мкф.
  6. Увидел, что у Вас цвета 'Mono', помню, что отверстия действительно становились черными при выборе монохрома, а вот что слетало, уже забыл. В общем, смирился и распечатал как есть.
  7. Всем привет! Можно ли как-то изменить цвета holes при печати негатива? Негатив делаю черз OutputJob, плату накрываю сплошным полигоном на фиктивном механическом слое. Затем в OutputJob определяю фиктивный полигон черным, верхний слой и Multi Layer белыми. Печать отверстий включается галочкой, явного управления цветом для них не предусмотрено. Настройка цветов отверстий на вкладке Layer, категорически в OutPut Job не запрыгивает. И еще, при таком методе получения негатива исчезают надписи, если они были вырезаны на медной заливке.
  8. Да ни причем здесь эти "правила". Проблема решилась, просто открыл проект на другом компьютере - все дорожки оказались доведены корректно, не зависимо от их толщины и толщины падов. Проблема была только с отображением, при выделении дорожки она перерисовывалась правильно.
  9. Это не результат ручной трассировки, а результат работы Situs'а. Есть и другие "оборванные" проводники, которые не объединяют соседние пады. Т.е. вопрос откуда берутся недоведенные дорожки остается открытым.
  10. Altium Designer 23.7.1 не доводит трассы до точки назначения. Как думаете, это глюк или что-то с правилами не так? Если кликнуть по не доведенной дорожке, то она отрисуется до следующего пина, как и должно быть. И таких участков очень много.
  11. Ну кое-как решiл. Нагородил прямоугольных Pad'ов с одинаковым Designator и одинаковым Jumper ID. Выглядит все корректно и маски в областях перекрывания падов и цепи развелись правильно. Ну и термальные отступы появились, поскольку все пады легальные. Пока не знаю, что скажет DRC. Конечно, такой метод применим к не сильно сложным конфигурациям.
  12. У меня 17.0.11 (зато легальная 🙂 К сожалению такой менюшки нет. Вот так выглядит.
  13. Создал Pad нестандартной формы как полигон, посадил на него реальный pad. Все работает, за исключением одной засады. Если этот Pad сидит на земле, то внешняя заливка делает отступы только от реального pad'а (который под полигоном). А внешний полигон сливается с внутренним, из которого сформирован pad. Можно как-то заставить AD сделать термальные отступы для полигона в полигоне, когда цепи этих полигонов совпадают?
  14. Вот мы и вернулись к самому началу. Конечно-же ВАХ давно снята, именно из нее найден пик мощности, который приходится на 300-600 ом активной нагрузки. Я где-то уже говорил, что ВАХ очень круто падает в области низких сопротивлений. Они конечно все так себя ведут, но моя, видимо круче других. 🙂 Поэтому между конденсатором и источником ЭДС хочется что-то поставить, что и мощность не потеряет и источник ЭДС в более благоприятный режим загонит. Напряжения могут плавать от 2 до 15 вольт, частоты низкие 10-100 Гц. Всеми этими подробностями бесполезно делиться, в каждую задачу приходится погружаться длительное время. И да, конденсатор подключен через мостик, падение на диодах 0.4В, про мостики на полевиках рассказывать не надо. Можно, но если на каждом периоде отбирается полная мощность, то настройка на резонанс ничего не даст. LTC3108 предназначена для сбора мощности от источников с низким напряжением, если нагрузить мой источник оптимальным сопротивлением, напряжение вполне достаточно, повышать его нет необходимости. Очень даже похоже.
  15. А Вы думаете у меня ТЗ на руках, откуда можно все озвучить? Есть катушка, в которой наводится ЭДС, меняя ее параметры и параметры нагрузки можно получать самые разные условия для последующего преобразования. Могу магнитопровод поменять, могу витков больше намотать. Определенно могу сказать, что речь идет о десятых долях ватта. С самого первого поста я не спрашивал никаких готовых решений. Спрашивал только одно: где можно найти схемотехнику преобразователей, в которых можно управлять входным сопротивлением. Единственный ответ по теме: Варп, где в приведенных схемах возможность управлять входным сопротивлением? Хватит фантазировать. Автор озвучил неработоспособность для своего источника, поскольку кривая мощности от сопротивления нагрузки у меня перед глазами и она очень круто падает в области низких нагрузок, что и воспроизвелось при попытке собрать заряд в конденсатор. Ставить последовательно резистор - вариант, который мне не нравится.
  16. Для реализации алгоритмов нужны мозги, которых у меня, как Вы уже заметили, явно не хватает. Их просто нечем питать. Я прошу ткнуть меня носом в схемотехнику преобразователей с управляемым внутренним сопротивлением. Возможно, именно средним сопротивлением придется ограничится, возможно, удастся организовать ОС. Как вообще управлять входным сопротивлением? Ну это к стати, тоже вариант, оптимизировать цепь перекачки заряда за период.
  17. Не описал одну пикантную особенность. Внешнего питания - нет. Питание только от источника ЭДС.
  18. Всем привет! Есть слабый по мощности источник ЭДС, КПД которого очень сильно зависит от сопротивления на которое он нагружен. Максимум КПД приходится на диапазон 300-600 Ом. Причем, максимум плавает от внешних условий. Самый простой вариант - нагрузить на емкость - не прокатывает, источник оказывается в режиме КЗ и перестает генерировать мощность, в таком состоянии он может висеть часами. Подскажите, pls, есть ли схемы преобразователей (StepUp, StepDown, StepNowhere) у которых можно управлять входным сопротивлением. В идеале, чтобы преобразователь сам адаптировался под наилучший режим работы.
  19. Всем привет! Никому не попадались материалы у которых магнитная проницаемость зависит от электрического поля? Нашел упоминание о том, что хотя сегнетоэлектрики не содержат "магнитные" атомы, имеют не единичную магнитную проницаемость, которая зависит от электрического поля. Но ни графиков ни цифр - нет. Может были попытки скрестить ферромагнетики и сегнетоэлектрики???
  20. Я в качестве второго эшелона защиты рассматривал входной ОУ AD8602. Он не очень дорогой, относительно широкополосный 8 Мhz, однополярный rail-to-rail. Морально готов был менять, но кажется, так ни разу и не довелось. Банальные КД522 (1N4148) оказались достаточны. Суппрессоры и варисторы в моем случае не рассматривались, из-за больших емкостей.
  21. Защита при угрозе выхода из строя - спору нет, это не задача регулирования. Вообще, зря я сказал про аварийный режим. Хотел подчеркнуть скачкообразное изменение управляемой величины именно в задаче регулирования. В целом, ответ "ничего" - понятен. 🙂
  22. Мне кажется, за кадром осталось самое интересное. Какие существуют алгоритмы регулирования, когда ошибка вдруг стала аномально большой. Те самые, алгоритмы, которые quark предлагает вынести за границы PID регулятора. Выход за динамический диапазон предлагаю не рассматривать, поскольку в этом случае управление физически нереализуемо. (либо измерению нельзя верить, либо управление больше 100% нельзя сформировать). Так по каким? У меня ситуация с регулированием высокого напряжения вполне реальная, например, к источнику питания может быть подключен потребитель с емкостной нагрузкой - это практически кратковременный пробой. Что есть более совершенное, чем примитивное ограничение интегральной составляющей?
  23. Не очень убедительно. Системы регулирования могут быть самыми разными. Например, при управлении температурой, мне anti widup действительно не требовался. А в системе регулирования высокого напряжения очень даже помог, особенно, когда возникали нештатные ситуации типа пробоев. Разница между требуемой и измеренной величиной вдруг оказывается несколько порядков! Иногда такое возможно.
  24. Признаюсь, всю тему не читал, но если вы обсуждаете зашкал по интегральной составляющей, то это хорошо известное явление. Ищется по фразе anti windup for PID control.
×
×
  • Создать...