Если я правильно понимаю, ШИМ задается таймером. Таймер тикает по каждому такту ядра. Если ядро встанет, остановится и таймер. Если таймер встанет, то ШИМ превратится в сигнал либо высокого уровня, либо низкого уровня на ноге. Причем заранее это узнать невозможно.
Таймер тикает не по такту ядра, а от осциллятора. Что там делает ядро и в каком оно состоянии - таймеру до фонаря. Лишь бы осциллятор работал. Если про ШИМ говорить буквально (именно МОДУЛЯЦИЯ), то модуляция меняться не будет - ядро висит, скважность менять некому. Будут идти импульсы с заданной регистрами скважностью.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Зависание - это когда выполение программы зацикливается на её фрагменте. Зависание может быть штатным: ждём данных, поднятия флага, кода активации и прочее. Может быть не штатным: по какой-то причине в счётчик команд записался неправильный адрес и выполнение программы пошло по непредсказуемому кругу. Уязвимое место здесь - это счётчик команд. У периферии нечему зависать - данные блоком USART, например, будут приняты в любом случае, если USART включен и разрешена его работа. Следующий пакет данных он также примет, даже если старый пакет не был прочитан.
Значит тактирование ядра вообще ни когда не прекращается? Ядро уходит либо в "петлю" выполнения команд, либо в "петлю" ожидания команды или данных? А зависание в следствие электрических помех может произойти только в том устройстве, где есть какая-либо память? Т.е. происходит ошибка записи данных и как следствие сбой в программе?
Добавлено after 7 minutes 19 seconds: Т.е. физически ядро не останавливается?
При так называемом "зависании" - нет. Только нужно понимать, что нештатное зацикливание кода может произойти и через необрабатываемые исключения. А потому исполнение через хард фолт отправится на ресет. И тогда регистры модуля ШИМ отресетятся в дефолт и инициализируются по новой. Это вызовет сбой диаграммы, которую генерирует ШИМ. При штатном останове тактирования ядра (есть такой режим - idle) ШИМ модуль останется под тактированием и продолжит функционирование.
и физически и химически юзеру или перифери фиолетова что конкретно и почему зависло в железяке если она перестала отвечать на команды или реагировать на поток даных!!!! вобще говоря в обычных проциках без интерфэйса JTAG это определить ваше нереално тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Собаку я сбрасываю по совокупности значений флагов, которые расположены в разных функциях. Есть вачдоги с оконным таймером - сбросил вачдог раньше времени - вачдог сбросил МК.
Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства. МК после инициализации периферии должен разблокировать выдачу управления на исполнительные устройства. В случае с ШИМ не сложно посадить собаку, которая даст МК сигнал в случае пропадания ШИМ, даже одного импульса. В серьёзных системах управления смотрят не только наличие или отсутствие ШИМ, но и в случае многоканальной системы учитываю корреляцию между управляющими импульсами. МК- это сложная цифровая схема, и как она поведёт себя при сбое не возможно предсказать.
прерывание - никак, а вот сигнал сброса - запросто, у ноги ресет ведь это получается, и собака может
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
А потому исполнение через хард фолт отправится на ресет.
Что такое хард фолт?
musor писал(а):
тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама
Собака может не сработать? Это возможно?
tonyk писал(а):
Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства.
Не совсем понял для чего это нужно? Периферия разве не перезагружается вместе с ядром? Т.е. при ресете ШИМ останавливается, а потом инициализируется заново?
Аппаратное исключение. Это фатальное для программы событие. Например, ошибка адреса, ошибка ДМА или деление на ноль. Для таких событий есть немаскируемые прерывания, которые надо обрабатывать. Если по этим векторам (вектору) обработчика нет, код через ловушку в конце IVT уйдет на ресет.
Есть куча схем с большой энергетикой в целевом устройстве, которым управляет ШИМ. Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар. Поскольку индуктивная нагрузка очень не любит протекания через нее постоянного тока (постоянной составляющей тока). Пусть даже и пульсирующего.
Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар.
1. Вы написали в произвольной позиции... Вы имеете в виду обесточивание цепи нагрузки управляемой ШИМом в некоторых аварийно опасных режимах работы нагрузки? ШИМ ведь не может при ресете остановиться с высоким уровнем на ноге? 2. Если блокировать управляющие сигналы идущие на периферию перед ресетом, то ШИМ (без модуляции, т.е. с заданной на момент ресета скважностью) будет работать пока ядро перезагружается?
Небольшой пример из МОЕЙ практики. Есть такое серийное устройство (выпускает наша контора, где я работаю) - акустомагнитный деактиватор. По сути - размагничивающее устройство. Размагничивающий ток через катушку формируется с помощью вертикальной стойки IGBT, питаемой от блока предварительно заряженных до 350 вольт электролитов. сама катушка включена последовательно с пленочным конденсатором и образует резонансный контур с частотой примерно 1,5 кГц. Управление стойкой производится через бутстрепный драйвер, а сам драйвер управляется ШИМом через обратную связь. Так случилось, что в обратной связи не доглядели и возникал глитч по отрицательной полуволне входного сигнала, который вызывал ресет контроллера и обрыв управления (резко в произвольный момент транзисторы останавливались в переключении и ток через контур разрывался. Вкачанная в контур энергия выжигала и стойку и драйвер и даже пины ШИМ контроллера...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения