Обсуждаем контроллеры компании Atmel.
Сб июн 05, 2021 23:13:07
Если я правильно понимаю, ШИМ задается таймером. Таймер тикает по каждому такту ядра. Если ядро встанет, остановится и таймер. Если таймер встанет, то ШИМ превратится в сигнал либо высокого уровня, либо низкого уровня на ноге. Причем заранее это узнать невозможно.
Я все правильно понимаю?
Вс июн 06, 2021 00:58:13
Таймер тикает не по такту ядра, а от осциллятора. Что там делает ядро и в каком оно состоянии - таймеру до фонаря. Лишь бы осциллятор работал.
Если про ШИМ говорить буквально (именно МОДУЛЯЦИЯ), то модуляция меняться не будет - ядро висит, скважность менять некому. Будут идти импульсы с заданной регистрами скважностью.
Вс июн 06, 2021 12:18:02
Тогда, я сделал неправильную защиту цепи от "зависаний". Будем переделывать.
Спасибо.
Вс июн 06, 2021 12:24:02
Для начала надо понять, что такое зависание МК или ЦПУ.
Вс июн 06, 2021 12:25:57
Т.е. кроме ядра МК может повиснуть его периферия?
Вс июн 06, 2021 13:15:27
Зависание - это когда выполение программы зацикливается на её фрагменте. Зависание может быть штатным: ждём данных, поднятия флага, кода активации и прочее. Может быть не штатным: по какой-то причине в счётчик команд записался неправильный адрес и выполнение программы пошло по непредсказуемому кругу. Уязвимое место здесь - это счётчик команд. У периферии нечему зависать - данные блоком USART, например, будут приняты в любом случае, если USART включен и разрешена его работа. Следующий пакет данных он также примет, даже если старый пакет не был прочитан.
Вс июн 06, 2021 13:43:21
Значит тактирование ядра вообще ни когда не прекращается? Ядро уходит либо в "петлю" выполнения команд, либо в "петлю" ожидания команды или данных? А зависание в следствие электрических помех может произойти только в том устройстве, где есть какая-либо память? Т.е. происходит ошибка записи данных и как следствие сбой в программе?
Добавлено after 7 minutes 19 seconds:
Т.е. физически ядро не останавливается?
Вс июн 06, 2021 13:59:46
Т.е. физически ядро не останавливается?
При так называемом "зависании" - нет.
Только нужно понимать, что нештатное зацикливание кода может произойти и через необрабатываемые исключения. А потому исполнение через хард фолт отправится на ресет. И тогда регистры модуля ШИМ отресетятся в дефолт и инициализируются по новой. Это вызовет сбой диаграммы, которую генерирует ШИМ.
При штатном останове тактирования ядра (есть такой режим - idle) ШИМ модуль останется под тактированием и продолжит функционирование.
Вс июн 06, 2021 14:06:30
и физически и химически юзеру или перифери фиолетова что конкретно и почему зависло в железяке если она перестала отвечать на команды или реагировать на поток даных!!!!
вобще говоря в обычных проциках без интерфэйса JTAG это определить ваше нереално
тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама
Вс июн 06, 2021 15:03:32
Собаку я сбрасываю по совокупности значений флагов, которые расположены в разных функциях. Есть вачдоги с оконным таймером - сбросил вачдог раньше времени - вачдог сбросил МК.
Вс июн 06, 2021 15:32:35
Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства. МК после инициализации периферии должен разблокировать выдачу управления на исполнительные устройства. В случае с ШИМ не сложно посадить собаку, которая даст МК сигнал в случае пропадания ШИМ, даже одного импульса. В серьёзных системах управления смотрят не только наличие или отсутствие ШИМ, но и в случае многоканальной системы учитываю корреляцию между управляющими импульсами.
МК- это сложная цифровая схема, и как она поведёт себя при сбое не возможно предсказать.
Вс июн 06, 2021 16:53:15
А как собака подаст сигнал, если прерывания запрещены?
Вс июн 06, 2021 17:14:06
прерывание - никак, а вот сигнал сброса - запросто, у ноги ресет ведь это получается, и собака может
Вс июн 06, 2021 17:16:14
КРАМ писал(а):А потому исполнение через хард фолт отправится на ресет.
Что такое хард фолт?
musor писал(а):тут единственый выходд не дождавшисть реакци дергать ресет или питание если штатная собака чипа не сделала этого сама
Собака может не сработать? Это возможно?
tonyk писал(а):Твоя собака должна не только сбрасывать МК, но блокировать выдачу сигналов управления на исполнительные устройства.
Не совсем понял для чего это нужно? Периферия разве не перезагружается вместе с ядром? Т.е. при ресете ШИМ останавливается, а потом инициализируется заново?
Вс июн 06, 2021 17:20:03
Что такое хард фолт?
Аппаратное исключение. Это фатальное для программы событие. Например, ошибка адреса, ошибка ДМА или деление на ноль.
Для таких событий есть немаскируемые прерывания, которые надо обрабатывать. Если по этим векторам (вектору) обработчика нет, код через ловушку в конце IVT уйдет на ресет.
Вс июн 06, 2021 17:22:14
КРАМ, спасибо за разъяснение.
Вс июн 06, 2021 17:24:41
Не совсем понял для чего это нужно?
Есть куча схем с большой энергетикой в целевом устройстве, которым управляет ШИМ. Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар. Поскольку индуктивная нагрузка очень не любит протекания через нее постоянного тока (постоянной составляющей тока). Пусть даже и пульсирующего.
Вс июн 06, 2021 17:46:56
КРАМ писал(а):Простой останов ШИМа в произвольной позиции может вызвать большой бах, а паче вообще пожар.
1. Вы написали в произвольной позиции... Вы имеете в виду обесточивание цепи нагрузки управляемой ШИМом в некоторых аварийно опасных режимах работы нагрузки? ШИМ ведь не может при ресете остановиться с высоким уровнем на ноге?
2. Если блокировать управляющие сигналы идущие на периферию перед ресетом, то ШИМ (без модуляции, т.е. с заданной на момент ресета скважностью) будет работать пока ядро перезагружается?
Вс июн 06, 2021 18:04:32
Вы имеете в виду обесточивание
Небольшой пример из МОЕЙ практики.
Есть такое серийное устройство (выпускает наша контора, где я работаю) - акустомагнитный деактиватор. По сути - размагничивающее устройство.
Размагничивающий ток через катушку формируется с помощью вертикальной стойки IGBT, питаемой от блока предварительно заряженных до 350 вольт электролитов. сама катушка включена последовательно с пленочным конденсатором и образует резонансный контур с частотой примерно 1,5 кГц.
Управление стойкой производится через бутстрепный драйвер, а сам драйвер управляется ШИМом через обратную связь. Так случилось, что в обратной связи не доглядели и возникал глитч по отрицательной полуволне входного сигнала, который вызывал ресет контроллера и обрыв управления (резко в произвольный момент транзисторы останавливались в переключении и ток через контур разрывался. Вкачанная в контур энергия выжигала и стойку и драйвер и даже пины ШИМ контроллера...
Вс июн 06, 2021 18:44:50
КРАМ, вполне доходчиво. Спасибо. ))
Добавлено after 2 minutes 30 seconds:
По пункту 2... я правильно понял?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.