Что происходит с сигналом ШИМ при "зависании" МК?

Обсуждаем контроллеры компании Atmel.
Ответить
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Если я правильно понимаю, ШИМ задается таймером. Таймер тикает по каждому такту ядра. Если ядро встанет, остановится и таймер. Если таймер встанет, то ШИМ превратится в сигнал либо высокого уровня, либо низкого уровня на ноге. Причем заранее это узнать невозможно.

Я все правильно понимаю?
Реклама
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Таймер тикает не по такту ядра, а от осциллятора. Что там делает ядро и в каком оно состоянии - таймеру до фонаря. Лишь бы осциллятор работал.
Если про ШИМ говорить буквально (именно МОДУЛЯЦИЯ), то модуляция меняться не будет - ядро висит, скважность менять некому. Будут идти импульсы с заданной регистрами скважностью.
Реклама
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Тогда, я сделал неправильную защиту цепи от "зависаний". Будем переделывать.

Спасибо. :)
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Для начала надо понять, что такое зависание МК или ЦПУ.
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Т.е. кроме ядра МК может повиснуть его периферия?
Реклама
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Зависание - это когда выполение программы зацикливается на её фрагменте. Зависание может быть штатным: ждём данных, поднятия флага, кода активации и прочее. Может быть не штатным: по какой-то причине в счётчик команд записался неправильный адрес и выполнение программы пошло по непредсказуемому кругу. Уязвимое место здесь - это счётчик команд. У периферии нечему зависать - данные блоком USART, например, будут приняты в любом случае, если USART включен и разрешена его работа. Следующий пакет данных он также примет, даже если старый пакет не был прочитан.
Реклама
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Значит тактирование ядра вообще ни когда не прекращается? Ядро уходит либо в "петлю" выполнения команд, либо в "петлю" ожидания команды или данных? А зависание в следствие электрических помех может произойти только в том устройстве, где есть какая-либо память? Т.е. происходит ошибка записи данных и как следствие сбой в программе?

Добавлено after 7 minutes 19 seconds:
Т.е. физически ядро не останавливается?
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Kalisnik",url="/forum/viewtopic.php?p=4043435#p4043435"]Т.е. физически ядро не останавливается?[/uquote]
При так называемом "зависании" - нет.
Только нужно понимать, что нештатное зацикливание кода может произойти и через необрабатываемые исключения. А потому исполнение через хард фолт отправится на ресет. И тогда регистры модуля ШИМ отресетятся в дефолт и инициализируются по новой. Это вызовет сбой диаграммы, которую генерирует ШИМ.
При штатном останове тактирования ядра (есть такой режим - idle) ШИМ модуль останется под тактированием и продолжит функционирование.
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

и физически и химически юзеру или перифери фиолетова что конкретно и почему зависло в железяке если она перестала отвечать на команды или реагировать на поток даных!!!!
вобще говоря в обычных проциках без интерфэйса JTAG это определить ваше нереално
тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Собаку я сбрасываю по совокупности значений флагов, которые расположены в разных функциях. Есть вачдоги с оконным таймером - сбросил вачдог раньше времени - вачдог сбросил МК.
Это не хвост, это антенна
Сообщения: 1324
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства. МК после инициализации периферии должен разблокировать выдачу управления на исполнительные устройства. В случае с ШИМ не сложно посадить собаку, которая даст МК сигнал в случае пропадания ШИМ, даже одного импульса. В серьёзных системах управления смотрят не только наличие или отсутствие ШИМ, но и в случае многоканальной системы учитываю корреляцию между управляющими импульсами.
МК- это сложная цифровая схема, и как она поведёт себя при сбое не возможно предсказать.
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

А как собака подаст сигнал, если прерывания запрещены?
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

прерывание - никак, а вот сигнал сброса - запросто, у ноги ресет ведь это получается, и собака может :)
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

КРАМ писал(а):А потому исполнение через хард фолт отправится на ресет.
Что такое хард фолт?
musor писал(а):тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама
Собака может не сработать? Это возможно?
tonyk писал(а):Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства.
Не совсем понял для чего это нужно? Периферия разве не перезагружается вместе с ядром? Т.е. при ресете ШИМ останавливается, а потом инициализируется заново?
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Kalisnik",url="/forum/viewtopic.php?p=4043533#p4043533"]Что такое хард фолт?[/uquote]
Аппаратное исключение. Это фатальное для программы событие. Например, ошибка адреса, ошибка ДМА или деление на ноль.
Для таких событий есть немаскируемые прерывания, которые надо обрабатывать. Если по этим векторам (вектору) обработчика нет, код через ловушку в конце IVT уйдет на ресет.
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

КРАМ, спасибо за разъяснение. :)
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Kalisnik",url="/forum/viewtopic.php?p=4043533#p4043533"]Не совсем понял для чего это нужно?[/uquote]
Есть куча схем с большой энергетикой в целевом устройстве, которым управляет ШИМ. Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар. Поскольку индуктивная нагрузка очень не любит протекания через нее постоянного тока (постоянной составляющей тока). Пусть даже и пульсирующего.
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

КРАМ писал(а):Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар.
1. Вы написали в произвольной позиции... Вы имеете в виду обесточивание цепи нагрузки управляемой ШИМом в некоторых аварийно опасных режимах работы нагрузки? ШИМ ведь не может при ресете остановиться с высоким уровнем на ноге?
2. Если блокировать управляющие сигналы идущие на периферию перед ресетом, то ШИМ (без модуляции, т.е. с заданной на момент ресета скважностью) будет работать пока ядро перезагружается?
Друг Кота
Аватара пользователя
Сообщения: 25398
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Kalisnik",url="/forum/viewtopic.php?p=4043553#p4043553"]Вы имеете в виду обесточивание[/uquote]
Небольшой пример из МОЕЙ практики.
Есть такое серийное устройство (выпускает наша контора, где я работаю) - акустомагнитный деактиватор. По сути - размагничивающее устройство.
Размагничивающий ток через катушку формируется с помощью вертикальной стойки IGBT, питаемой от блока предварительно заряженных до 350 вольт электролитов. сама катушка включена последовательно с пленочным конденсатором и образует резонансный контур с частотой примерно 1,5 кГц.
Управление стойкой производится через бутстрепный драйвер, а сам драйвер управляется ШИМом через обратную связь. Так случилось, что в обратной связи не доглядели и возникал глитч по отрицательной полуволне входного сигнала, который вызывал ресет контроллера и обрыв управления (резко в произвольный момент транзисторы останавливались в переключении и ток через контур разрывался. Вкачанная в контур энергия выжигала и стойку и драйвер и даже пины ШИМ контроллера...
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

КРАМ, вполне доходчиво. Спасибо. ))

Добавлено after 2 minutes 30 seconds:
По пункту 2... я правильно понял?
Ответить

Вернуться в «AVR»