Обсуждаем контроллеры компании Atmel.
Ответить

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

Сб июн 05, 2021 23:13:07

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

Я все правильно понимаю?

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

Вс июн 06, 2021 00:58:13

Таймер тикает не по такту ядра, а от осциллятора. Что там делает ядро и в каком оно состоянии - таймеру до фонаря. Лишь бы осциллятор работал.
Если про ШИМ говорить буквально (именно МОДУЛЯЦИЯ), то модуляция меняться не будет - ядро висит, скважность менять некому. Будут идти импульсы с заданной регистрами скважностью.

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

Вс июн 06, 2021 12:18:02

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

Спасибо. :)

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

Вс июн 06, 2021 12:24:02

Для начала надо понять, что такое зависание МК или ЦПУ.

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

Вс июн 06, 2021 12:25:57

Т.е. кроме ядра МК может повиснуть его периферия?

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

Вс июн 06, 2021 13:15:27

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

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

Вс июн 06, 2021 13:43:21

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

Добавлено after 7 minutes 19 seconds:
Т.е. физически ядро не останавливается?

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

Вс июн 06, 2021 13:59:46

Т.е. физически ядро не останавливается?

При так называемом "зависании" - нет.
Только нужно понимать, что нештатное зацикливание кода может произойти и через необрабатываемые исключения. А потому исполнение через хард фолт отправится на ресет. И тогда регистры модуля ШИМ отресетятся в дефолт и инициализируются по новой. Это вызовет сбой диаграммы, которую генерирует ШИМ.
При штатном останове тактирования ядра (есть такой режим - idle) ШИМ модуль останется под тактированием и продолжит функционирование.

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

Вс июн 06, 2021 14:06:30

и физически и химически юзеру или перифери фиолетова что конкретно и почему зависло в железяке если она перестала отвечать на команды или реагировать на поток даных!!!!
вобще говоря в обычных проциках без интерфэйса JTAG это определить ваше нереално
тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама

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

Вс июн 06, 2021 15:03:32

Собаку я сбрасываю по совокупности значений флагов, которые расположены в разных функциях. Есть вачдоги с оконным таймером - сбросил вачдог раньше времени - вачдог сбросил МК.

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

Вс июн 06, 2021 15:32:35

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

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

Вс июн 06, 2021 16:53:15

А как собака подаст сигнал, если прерывания запрещены?

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

Вс июн 06, 2021 17:14:06

прерывание - никак, а вот сигнал сброса - запросто, у ноги ресет ведь это получается, и собака может :)

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

Вс июн 06, 2021 17:16:14

КРАМ писал(а):А потому исполнение через хард фолт отправится на ресет.

Что такое хард фолт?
musor писал(а):тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама

Собака может не сработать? Это возможно?
tonyk писал(а):Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства.

Не совсем понял для чего это нужно? Периферия разве не перезагружается вместе с ядром? Т.е. при ресете ШИМ останавливается, а потом инициализируется заново?

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

Вс июн 06, 2021 17:20:03

Что такое хард фолт?

Аппаратное исключение. Это фатальное для программы событие. Например, ошибка адреса, ошибка ДМА или деление на ноль.
Для таких событий есть немаскируемые прерывания, которые надо обрабатывать. Если по этим векторам (вектору) обработчика нет, код через ловушку в конце IVT уйдет на ресет.

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

Вс июн 06, 2021 17:22:14

КРАМ, спасибо за разъяснение. :)

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

Вс июн 06, 2021 17:24:41

Не совсем понял для чего это нужно?

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

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

Вс июн 06, 2021 17:46:56

КРАМ писал(а):Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар.

1. Вы написали в произвольной позиции... Вы имеете в виду обесточивание цепи нагрузки управляемой ШИМом в некоторых аварийно опасных режимах работы нагрузки? ШИМ ведь не может при ресете остановиться с высоким уровнем на ноге?
2. Если блокировать управляющие сигналы идущие на периферию перед ресетом, то ШИМ (без модуляции, т.е. с заданной на момент ресета скважностью) будет работать пока ядро перезагружается?

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

Вс июн 06, 2021 18:04:32

Вы имеете в виду обесточивание

Небольшой пример из МОЕЙ практики.
Есть такое серийное устройство (выпускает наша контора, где я работаю) - акустомагнитный деактиватор. По сути - размагничивающее устройство.
Размагничивающий ток через катушку формируется с помощью вертикальной стойки IGBT, питаемой от блока предварительно заряженных до 350 вольт электролитов. сама катушка включена последовательно с пленочным конденсатором и образует резонансный контур с частотой примерно 1,5 кГц.
Управление стойкой производится через бутстрепный драйвер, а сам драйвер управляется ШИМом через обратную связь. Так случилось, что в обратной связи не доглядели и возникал глитч по отрицательной полуволне входного сигнала, который вызывал ресет контроллера и обрыв управления (резко в произвольный момент транзисторы останавливались в переключении и ток через контур разрывался. Вкачанная в контур энергия выжигала и стойку и драйвер и даже пины ШИМ контроллера...

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

Вс июн 06, 2021 18:44:50

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

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