|
Чем внешний watchdog лучше встроенного в МК? |
|
|
|
Aug 20 2012, 14:02
|
Группа: Новичок
Сообщений: 1
Регистрация: 20-08-12
Пользователь №: 73 199

|
Интересно мнение других. Сам пока не вижу большого смысла во внешнем, если есть внутренний. Есть предположение, что по внешнему можно сбрасывать не только процессор, но и другие микросхемы на плате. Хотя опять же это можно делать программно, если ножки сброса подключить к МК. Какие есть еще соображения?
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 38)
|
Aug 20 2012, 14:42
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(scifi @ Aug 20 2012, 16:13)  У некоторых МК watchdog бывает глюкавый. Если не хочется выяснять, глюкавый он или нет, можно поставить внешний и не париться. Помимо этого есть много всяких нужных фичей, епром, фрам, супервизор, продвинутая калибровка часов ...
|
|
|
|
|
Aug 21 2012, 00:12
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(r0pegig @ Aug 20 2012, 18:02)  по внешнему можно сбрасывать не только процессор, но и другие микросхемы на плате При желании, по внутреннему тоже. В большинстве современных МК, пин RESET организован как открытый сток и может работать на выход. Кроме того, зачем искать приключения и тянуть какие-то внешние дорожки к пину RESET? Т.е., по сути, присоединять антенну для ловли помех ко входу RESET.
|
|
|
|
|
Aug 21 2012, 02:28
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Цитата(_Артём_ @ Aug 20 2012, 17:51)  А почём это всё нынче? Да, некоторые вещи дорогие, но когда надо, вопрос о деньгах не стоит.
|
|
|
|
|
Aug 21 2012, 08:07
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(r0pegig @ Aug 20 2012, 17:02)  Интересно мнение других. Сам пока не вижу большого смысла во внешнем, если есть внутренний. Есть предположение, что по внешнему можно сбрасывать не только процессор, но и другие микросхемы на плате. Хотя опять же это можно делать программно, если ножки сброса подключить к МК. ИМХО, но времена когда микроконтроллерам нужен был внешний WDT уже прошли. Нынче вместо WDT ставят отдельный внешний мелкий микроконтроллер если речь идет о системах на ARM9 и выше. В лэптопах это очень часто можно увидеть. В надежных роутерах так делают. В промышленных же дивайсах, например в софтстартерах для двигателей где применяют PIC-и, AVR-ы, Zilog-и и т.д. внешних WDT не встречал. Для Cortex-M3,M4 внешний WDT тоже не нужен. И, кстати, для холодного сброса системы watchdog там не совсем годится. Для этого есть отдельные регистры в ядре. На больших платах с DDRAM, модулями, разными типами Flash памяти в качестве внешнего WDT лучше применить микроконтроллер, тот же Cortex-M0 или M3 и чтобы не только сбрасывал, но и отключал питание от основной системы. Бывают такие баги в больших чипах которые можно сбросить только отключением питания. Учитывая, что errat-ы пополняются в течении нескольких лет от начала производства чипов, то иметь интеллектуальный внешний супервизор очень даже актуально.
|
|
|
|
|
Aug 21 2012, 12:11
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата Бывают такие баги в больших чипах которые можно сбросить только отключением питания. Обсалютно точно. Во первых надо разделить апельсины от софта. Откуда берется зависание? 1. От не запланированного хода выполнения кода программы. 2. От внешних факторов - грязное питание, и, в основном, от статических разрядов. В первом случае внешняя собака не нужна. Во втором случае, многие из ARMов не возможно сбросить по резету в 50% зависания. Поэтому если использовать внешнюю собаку, то обязательно нужен механизм дерганья питания.
|
|
|
|
|
Aug 21 2012, 15:57
|
Знающий
   
Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594

|
Цитата(_Артём_ @ Aug 21 2012, 17:29)  Это о каких АРМах речь? К СМ3, СМ0 тоже относится? блок Reset не входит в состав ядра, поэтому такой вопрос не корректен. Лучше пусть скажет конкретные серии микроконтроллеров. я считаю, что это не правда :-) - может быть какие то специфические экземпляры и страдают такой болезнью, но говорить о 50% никак нельзя так как точно не относится к мэнстримовым чипам популярных брендов.
|
|
|
|
|
Aug 21 2012, 17:15
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(_Pasha @ Aug 21 2012, 20:00)  От кварца никто "сабаку" не тактирует. Тактируют, тактируют. Например от часового кварца (но это не обязательно единственный источник). Цитата(_Pasha @ Aug 21 2012, 20:00)  Берут внутренний RC генератор, как самый надежный источник клока. Надёжный, но точность ± лапоть.
|
|
|
|
|
Aug 21 2012, 22:25
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата(_Артём_ @ Aug 21 2012, 17:29)  Это о каких АРМах речь? К СМ3, СМ0 тоже относится? Вот к ним, в первую очередь и относится.
|
|
|
|
|
Aug 21 2012, 22:33
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Цитата(kan35 @ Aug 21 2012, 19:57)  блок Reset не входит в состав ядра, поэтому такой вопрос не корректен. Лучше пусть скажет конкретные серии микроконтроллеров. я считаю, что это не правда :-) - может быть какие то специфические экземпляры и страдают такой болезнью, но говорить о 50% никак нельзя так как точно не относится к мэнстримовым чипам популярных брендов. Я имел ввиду в 50% при сбоеях резет не помагает ( лапка не чует ничего ), а не весь парк чипов. Есно к PIC это не относится. Но поскольку мы в теме АРМов, то они и имелись ввиду. Cortex0,3,4. Касается ли это 8,9 ядер - не знаю. Но поскольку механизм ядра разделен от переферии, то думаю, что и там будет то же самое.
|
|
|
|
|
Aug 21 2012, 22:58
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(vlad_new @ Aug 22 2012, 01:33)  Я имел ввиду в 50% при сбоеях резет не помагает ( лапка не чует ничего ) Понятно, что вы имели в виду. Но неясно, что за сбои такие, что ресет отключается. И к каким конкретно моделям это относится, то есть не CortexMx, а например lpc11xx или EFM32G Цитата(vlad_new @ Aug 22 2012, 01:33)  Есно к PIC это не относится. B к АВР не относится, также как и ко многим другим. Цитата(vlad_new @ Aug 22 2012, 01:33)  Cortex0,3,4. Касается ли это 8,9 ядер - не знаю. Но поскольку механизм ядра разделен от переферии, то думаю, что и там будет то же самое. Если блок управления сбросом отделён от ядра, а это часто так и есть, то нельзя сказать "CortexMx не реагирует на ресет в таких-то условиях", а можно так - " у модели xxx reset unit не сбрасывает ядро в таких-то условиях".
|
|
|
|
|
Aug 22 2012, 02:09
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(AlexandrY @ Aug 21 2012, 14:07)  ИМХО, но времена когда микроконтроллерам нужен был внешний WDT уже прошли. Нынче вместо WDT ставят отдельный внешний мелкий микроконтроллер если речь идет о системах на ARM9 и выше. В лэптопах это очень часто можно увидеть. В надежных роутерах так делают. Наверно мы с вами живём в разные времена  Во-первых: а если этот ваш мелкий зависнет, что делать?  Можно сделать и так, но поставив внешний WD на этого мелкого. Во-вторых: не весь парк электроники состоит из лэптопов и жирных роутеров. Есть ещё более мелкая электроника, где цена каждого чипа и их кол-во имеет значение. И такой электроники думаю существенно больше чем жирной. А также ещё учтите что, так как становится на один программируемый компонент больше, то при этом увеличивается стоимость и сроки разработки, кол-во багов, сложности если необходимо удалённое обновление ПО и т.п. Цитата(AlexandrY @ Aug 21 2012, 14:07)  Для Cortex-M3,M4 внешний WDT тоже не нужен. Обоснуйте. Цитата(AlexandrY @ Aug 21 2012, 14:07)  И, кстати, для холодного сброса системы watchdog там не совсем годится. Для этого есть отдельные регистры в ядре. Если есть. Никто не спорит. Цитата(AlexandrY @ Aug 21 2012, 14:07)  Учитывая, что errat-ы пополняются в течении нескольких лет от начала производства чипов, то иметь интеллектуальный внешний супервизор очень даже актуально. Только не забывайте - чем более интеллектуальный, тем более подвержен зависонам. Как вы его отвешивать будете?  Цитата(kan35 @ Aug 21 2012, 19:18)  Для STM32 точно не нужен внешний, так как ST даже сертифицировались для применения в консьюмерских приборах без внешнего, где внешний обязателен (стиралки микроволновки и проч.). Благодаря отдельному генератору WDT видимо. Сколько Вам ST платит?  В этих ST, о которых Вы говорите, WD по умолчанию после сброса в каком состоянии? Включен? Вот именно что в "консьюмерских". Там где всегда рядом есть юзер. На него и возлагаются обязанности собаки  А если ваш девайс находится в труднодоступном месте (или вообще недоступном - не дай бог - на Марсе  ), кто его пересбросит? Цитата(AlexandrY @ Aug 21 2012, 14:07)  В промышленных же дивайсах, например в софтстартерах для двигателей где применяют PIC-и, AVR-ы, Zilog-и и т.д. внешних WDT не встречал. А сейчас вообще трудно встретить компетентных разработчиков. Мало осталось. Поэтому у нас спутники и падают.
|
|
|
|
|
Aug 22 2012, 07:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(jcxz @ Aug 22 2012, 06:09)  А сейчас вообще трудно встретить компетентных разработчиков. Мало осталось. Поэтому у нас спутники и падают. Нет, не поэтому спутники падают. По крайней мере, это не основная причина (по секрету, работаю в военке и кое-что об этом мне известно...). Небольшой офф: Падают они из-за беспредельной бюрократии и чудовищной неповоротливости всей этой военной машины. Разрабы и рады бы сделать все возможное, но от них люди сверху требуют невозможного, сами того не понимая, чем эти требования могут обернуться.... К тому же некомпетентность тех, кто стоит сверху (я бы даже сказал отсталость от времени в силу ряда причин), вынуждает делать так, лишь бы по документам все было тип-топ, а это всегда приводит к неприятностям, очень большим неприятностям... Представьте себе щепки, плывущие по реке, щепки - небольшие, но весьма сильные и эффективные фирмы, раскиданные по все стране. А река - головная контора, которая раздает проект этим "щепкам" по кускам, каждой свое, одновременно проектирую взаимодействия этих "щепок" друг с другом. Если эта река изначально движется в неверном направлении, или же взаимодествие между щепками было спректировано неверно, то ни одна из "щепок" никак не сможет повлиять на проект и хоть как-то поправить общее дело, вообще никак. А если бы вы тока знали, насколько дибильные схемные решения используются в спутниках: "барадатая" схемотехника, куча ненужных проводов, жгутов, разъемов, от которых можно было бы легко избавиться, если бы все было иначе в общем структуре нашей военной электроники... А схемные решения получаются дебильными вовсе не потому, что разрабы дибилы (хотя и такое бывает), а из-за того, что, например, список разрешенных комплектующих, созданный чуть ли не 80..90-е годы прошлого века, практически нереально чем-то пополнить или заменить. В итоге, проще делать на том, что разрешено... В итоге получается такая барада, которая вообще удивительно, что она работает
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 22 2012, 07:25
|
Знающий
   
Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594

|
Цитата(vlad_new @ Aug 22 2012, 02:33)  Я имел ввиду в 50% при сбоеях резет не помагает ( лапка не чует ничего ), а не весь парк чипов. Есно к PIC это не относится. Но поскольку мы в теме АРМов, то они и имелись ввиду. Cortex0,3,4. Касается ли это 8,9 ядер - не знаю. Но поскольку механизм ядра разделен от переферии, то думаю, что и там будет то же самое. Есть ли подтверждения ваших умоаключений какими нибудь производителями или если вы грешите на ядро, ARMом? Несколько лет работаю с STM32, ранее работал с ARM7 и разными 8 битниками и чтобы в каких то случаях внешний ресет не работал - не встречалось ни разу и ни от кого не слышал.
|
|
|
|
|
Aug 22 2012, 14:43
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(kan35 @ Aug 22 2012, 11:25)  Есть ли подтверждения ваших умоаключений какими нибудь производителями или если вы грешите на ядро, ARMом? Несколько лет работаю с STM32, ранее работал с ARM7 и разными 8 битниками и чтобы в каких то случаях внешний ресет не работал - не встречалось ни разу и ни от кого не слышал. У меня есть версия. Это пошло от криворуких программеров, которые не инициализируют грамотно периферию, а полагаются на POR. Соотв., после того, как сработал WD, часть периферии не инициализирована полностью, отсюда и мифы о "недосбросе".
|
|
|
|
|
Aug 22 2012, 15:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Tahoe @ Aug 22 2012, 18:43)  У меня есть версия. Это пошло от криворуких программеров, которые не инициализируют грамотно периферию, а полагаются на POR. Соотв., после того, как сработал WD, часть периферии не инициализирована полностью, отсюда и мифы о "недосбросе".  Во-во! Полностью подтверждаю! Не раз чехлил своих программеров за подобную лень  Цитата(_Артём_ @ Aug 22 2012, 18:48)  Да, но сброс от WDT не должен разве приводить периферию в исходное состояние? Как оказывается, что не обязан, тут нужно смотреть даташит и еррату обязательно. Поскольку такие баги особенно в новых чипах - хоть и редкость, но бывают.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 22 2012, 20:23
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(DmitryM @ Aug 22 2012, 22:04)  Не обязан, по WDT можно сохранять предсмертный дамп А где его определять тогда? В WDT_Handler-е (если есть) или Reset_Handler-е? Цитата(DmitryM @ Aug 22 2012, 22:04)  просто уйти на "полный" reset. Типа так: Код if (watch_dog_reset_was) NVIC_SystemReset(); ? Это то хоть полный сброс?
|
|
|
|
|
Aug 22 2012, 22:07
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(_Артём_ @ Aug 22 2012, 18:48)  Да, но сброс от WDT не должен разве приводить периферию в исходное состояние? А кто ж его заставит? Да и надо ли? Простая периферия, типа таймера, просто инициализируется и запускается заново. Периферия посложнее, типа USB-контроллера, как правило имеет свой бит сброса в одном из управляющих регистров. Цитата(_Артём_ @ Aug 23 2012, 00:23)  А где его определять тогда? В WDT_Handler-е (если есть) или Reset_Handler-е? Ясно дело, в WDT_Handler.
|
|
|
|
|
Aug 23 2012, 05:23
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ Aug 22 2012, 21:20)  Во-во! Полностью подтверждаю! Не раз чехлил своих программеров за подобную лень  Бывает периферия (внутренняя), которую невозможно сбросить НИКАК иначе как по внешнему ресету или ресету от внутреннего сторожевика. Сам сталкивался с таким. Пример: FIFO-буфер DMA-канала в TI CC5502. Если остановить DMA в момент, когда чтение источника произошло, а запись в приёмник - ещё нет (т.е. - FIFO DMA содержит данные), то сбросить этот FIFO нет никакой возможности (в DMA-контроллере нет битов сброса, а enable каналов не влияет на fifo). Сбросить можно только через reset. Если не сбросить FIFO - думаю понятно что будет. С тех пор как столкнулся с этим, всегда выполняю перезапуск firmware аппаратным сбросом (через WD или соотв. биты если есть). Цитата(dinam @ Aug 23 2012, 09:50)  Хоть и не ARM, но могу в качестве примера привести самый популярный мк с USB 2.0 - CY7C68013A. Если сбрасывать с отключением питания, то работает замечательно, что естественно для USB устройств. Если питание не отключать, то иногда на сброс не реагирует. Спасает только отключение питания. Работал с CY7C68013A, вроде не замечал проблем. А может у вас не на сброс не реагировал, а по сбросу прошивку с внешней I2C-EEPROM не считывал или криво считывал и соответственно запускал прошивку не с EEPROM, а свою внутреннюю? Цитата(Слесарь @ Aug 23 2012, 10:01)  Хорошо что это не требуется делать в PIC. Я обычно сначала эксплуатирую устройство без WDT и если в течении месяца другого не происходит зависаний, можно смело запускать только внутренний WDT. Вы наверно не пользовались испытательными генераторами импульсных помех  Когда-то помню испытывал устройство (в котором был только внутренний сторожевик) генератором ИГЭ15.2 - подавал пачки эл-статических разрядов. Примерно на каждой 10 пачке устройство висло. Хотя разрешение внутреннего сторожевика было в самом начале main(). Видно второй импульс пачки приходил когда управление находилось ещё внутри bootROM процессора (ещё не проверено состояние бут-пинов и не передано управление рабочему ПО), либо управление было в startup-коде си-программы.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|