реклама на сайте
подробности

 
 
> Чем внешний watchdog лучше встроенного в МК?
r0pegig
сообщение Aug 20 2012, 14:02
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 20-08-12
Пользователь №: 73 199



Интересно мнение других. Сам пока не вижу большого смысла во внешнем, если есть внутренний.
Есть предположение, что по внешнему можно сбрасывать не только процессор, но и другие микросхемы на плате. Хотя опять же это можно делать программно, если ножки сброса подключить к МК.
Какие есть еще соображения?
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 38)
scifi
сообщение Aug 20 2012, 14:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



У некоторых МК watchdog бывает глюкавый. Если не хочется выяснять, глюкавый он или нет, можно поставить внешний и не париться.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 20 2012, 14:25
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(r0pegig @ Aug 20 2012, 18:02) *
Интересно мнение других. Сам пока не вижу большого смысла во внешнем, если есть внутренний.
Есть предположение, что по внешнему можно сбрасывать не только процессор, но и другие микросхемы на плате. Хотя опять же это можно делать программно, если ножки сброса подключить к МК.

У внешнего обычно нет кварца, а чем меньше деталей, тем надежнее.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
andron86
сообщение Aug 20 2012, 14:42
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Цитата(scifi @ Aug 20 2012, 16:13) *
У некоторых МК watchdog бывает глюкавый. Если не хочется выяснять, глюкавый он или нет, можно поставить внешний и не париться.

Помимо этого есть много всяких нужных фичей, епром, фрам, супервизор, продвинутая калибровка часов ...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 20 2012, 15:45
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Имхо - самый главный плюс внешнего по сравнению с внутренним - это то что его невозможно отключить. Ведь внутренний обычно нужно сперва разрешить после сброса.
А у помех есть такое скотское свойство - ходить пачками. Т.е. - скажем если по первому импульсу из пачки помех у вас происходит пересброс проца, то если второй импульс пачки придёт раньше, чем вы успеете программно разрешить внутренний WD, то устройству обеспечен мёртвый зависон. Т.е. - оно не соответствует требованиям ГОСТ по помехоустойчивости.
Мы в своих устройствах ОБЯЗАТЕЛЬНО и ВСЕГДА ставим внешний WD. Причём обязательно такой, который нельзя программно отключить никакими комбинациями сигналов.

Имхо - внутренний имеет смысл использовать только для быстрого аппаратного сброса CPU, не более.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 20 2012, 15:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(andron86 @ Aug 20 2012, 17:42) *
Помимо этого есть много всяких нужных фичей, епром, фрам, супервизор, продвинутая калибровка часов ...

А почём это всё нынче?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 20 2012, 16:01
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Фрам - вещь довольно дорогая, да и часы с погрешностью +-2ppm от всех факторов - тоже.
Но к сожалению они почему-то не уживаются в одном корпусе sad.gif
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Aug 21 2012, 00:12
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(r0pegig @ Aug 20 2012, 18:02) *
по внешнему можно сбрасывать не только процессор, но и другие микросхемы на плате

При желании, по внутреннему тоже. В большинстве современных МК, пин RESET организован как открытый сток и может работать на выход.

Кроме того, зачем искать приключения и тянуть какие-то внешние дорожки к пину RESET? Т.е., по сути, присоединять антенну для ловли помех ко входу RESET.
Go to the top of the page
 
+Quote Post
andron86
сообщение Aug 21 2012, 02:28
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Цитата(_Артём_ @ Aug 20 2012, 17:51) *
А почём это всё нынче?

Да, некоторые вещи дорогие, но когда надо, вопрос о деньгах не стоит.
Go to the top of the page
 
+Quote Post
редактор
сообщение Aug 21 2012, 07:31
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Нужно читать внимательно доку на МК. Есть WD которые разрешены сразу (по Silabs на этом форуме организовано тем 5 на моей памяти, когда симулятор работает а в железе нет, потому что не выключили WDT). Есть WD который надо именно разрешить, выключен по умолчанию.
Главный недостаток многих встроенных WDT - то что они тактируются от того-же источника что и ядро. (Исключение кажется PIC но не уверен).
Поэтому если внешний кварц заглючил (из-за помех) то и внутренний WDT не спасет. Нет тактов->нет счета->нет сброса->нет переключения на внутреннюю частоту. А по сбросу многие МК начинают работать именно от внутреннего источника тактирования.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 21 2012, 08:07
Сообщение #11


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-ы пополняются в течении нескольких лет от начала производства чипов, то иметь интеллектуальный внешний супервизор очень даже актуально.

Go to the top of the page
 
+Quote Post
vlad_new
сообщение Aug 21 2012, 12:11
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Цитата
Бывают такие баги в больших чипах которые можно сбросить только отключением питания.

Обсалютно точно. Во первых надо разделить апельсины от софта. Откуда берется зависание?
1. От не запланированного хода выполнения кода программы.
2. От внешних факторов - грязное питание, и, в основном, от статических разрядов.
В первом случае внешняя собака не нужна.
Во втором случае, многие из ARMов не возможно сбросить по резету в 50% зависания. Поэтому если использовать внешнюю собаку, то обязательно нужен механизм дерганья питания.


Go to the top of the page
 
+Quote Post
kan35
сообщение Aug 21 2012, 13:18
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Для STM32 точно не нужен внешний, так как ST даже сертифицировались для применения в консьюмерских приборах без внешнего, где внешний обязателен (стиралки микроволновки и проч.). Благодаря отдельному генератору WDT видимо.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 21 2012, 13:29
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(vlad_new @ Aug 21 2012, 15:11) *
многие из ARMов не возможно сбросить по резету в 50% зависания

Это о каких АРМах речь?
К СМ3, СМ0 тоже относится?
Go to the top of the page
 
+Quote Post
kan35
сообщение Aug 21 2012, 15:57
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Цитата(_Артём_ @ Aug 21 2012, 17:29) *
Это о каких АРМах речь?
К СМ3, СМ0 тоже относится?

блок Reset не входит в состав ядра, поэтому такой вопрос не корректен. Лучше пусть скажет конкретные серии микроконтроллеров.
я считаю, что это не правда :-) - может быть какие то специфические экземпляры и страдают такой болезнью, но говорить о 50% никак нельзя так как точно не относится к мэнстримовым чипам популярных брендов.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 21 2012, 17:00
Сообщение #16


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(редактор @ Aug 21 2012, 10:31) *
Главный недостаток многих встроенных WDT - то что они тактируются от того-же источника что и ядро. (Исключение кажется PIC но не уверен).
Поэтому если внешний кварц заглючил (из-за помех) то и внутренний WDT не спасет. Нет тактов->нет счета->нет сброса->нет переключения на внутреннюю частоту. А по сбросу многие МК начинают работать именно от внутреннего источника тактирования.

Нету такого! От кварца никто "сабаку" не тактирует. Берут внутренний RC генератор, как самый надежный источник клока.

Сообщение отредактировал _Pasha - Aug 21 2012, 17:00
Go to the top of the page
 
+Quote Post
scifi
сообщение Aug 21 2012, 17:03
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(_Pasha @ Aug 21 2012, 21:00) *
Берут внутренний RC генератор, как самый надежный источник клока.

Ага, если он есть. Ознакомьтесь со всем зоопарком микроконтроллеров. Имя им - легион :-)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 21 2012, 17:15
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(_Pasha @ Aug 21 2012, 20:00) *
От кварца никто "сабаку" не тактирует.

Тактируют, тактируют.
Например от часового кварца (но это не обязательно единственный источник).

Цитата(_Pasha @ Aug 21 2012, 20:00) *
Берут внутренний RC генератор, как самый надежный источник клока.

Надёжный, но точность ± лапоть.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Aug 21 2012, 22:25
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Цитата(_Артём_ @ Aug 21 2012, 17:29) *
Это о каких АРМах речь?
К СМ3, СМ0 тоже относится?

Вот к ним, в первую очередь и относится.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 21 2012, 22:33
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(vlad_new @ Aug 22 2012, 01:25) *
Вот к ним, в первую очередь и относится.

"имя сестра, имя..."
в смысле производитель-тип- и тп и тп...
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Aug 21 2012, 22:33
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Цитата(kan35 @ Aug 21 2012, 19:57) *
блок Reset не входит в состав ядра, поэтому такой вопрос не корректен. Лучше пусть скажет конкретные серии микроконтроллеров.
я считаю, что это не правда :-) - может быть какие то специфические экземпляры и страдают такой болезнью, но говорить о 50% никак нельзя так как точно не относится к мэнстримовым чипам популярных брендов.

Я имел ввиду в 50% при сбоеях резет не помагает ( лапка не чует ничего ), а не весь парк чипов. Есно к PIC это не относится. Но поскольку мы в теме АРМов, то они и имелись ввиду. Cortex0,3,4. Касается ли это 8,9 ядер - не знаю. Но поскольку механизм ядра разделен от переферии, то думаю, что и там будет то же самое.

Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 21 2012, 22:58
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 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 не сбрасывает ядро в таких-то условиях".
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 22 2012, 02:09
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Aug 21 2012, 14:07) *
ИМХО, но времена когда микроконтроллерам нужен был внешний WDT уже прошли.
Нынче вместо WDT ставят отдельный внешний мелкий микроконтроллер если речь идет о системах на ARM9 и выше.
В лэптопах это очень часто можно увидеть. В надежных роутерах так делают.
Наверно мы с вами живём в разные времена wink.gif
Во-первых: а если этот ваш мелкий зависнет, что делать? wink.gif
Можно сделать и так, но поставив внешний 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-ы пополняются в течении нескольких лет от начала производства чипов, то иметь интеллектуальный внешний супервизор очень даже актуально.
Только не забывайте - чем более интеллектуальный, тем более подвержен зависонам. Как вы его отвешивать будете? sm.gif

Цитата(kan35 @ Aug 21 2012, 19:18) *
Для STM32 точно не нужен внешний, так как ST даже сертифицировались для применения в консьюмерских приборах без внешнего, где внешний обязателен (стиралки микроволновки и проч.). Благодаря отдельному генератору WDT видимо.
Сколько Вам ST платит? wink.gif
В этих ST, о которых Вы говорите, WD по умолчанию после сброса в каком состоянии? Включен?
Вот именно что в "консьюмерских". Там где всегда рядом есть юзер. На него и возлагаются обязанности собаки wink.gif
А если ваш девайс находится в труднодоступном месте (или вообще недоступном - не дай бог - на Марсе wink.gif ), кто его пересбросит?
Цитата(AlexandrY @ Aug 21 2012, 14:07) *
В промышленных же дивайсах, например в софтстартерах для двигателей где применяют PIC-и, AVR-ы, Zilog-и и т.д. внешних WDT не встречал.
А сейчас вообще трудно встретить компетентных разработчиков. Мало осталось. Поэтому у нас спутники и падают.
Go to the top of the page
 
+Quote Post
ut1wpr
сообщение Aug 22 2012, 05:11
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 98
Регистрация: 20-06-05
Пользователь №: 6 150



Цитата(_Артём_ @ Aug 21 2012, 20:15) *
Надёжный, но точность ± лапоть.

Ты тактом собаки будешь 1PPS GPS поверять? Она там нужна, эта точность? Нафига там метрология? Что произойдет, если собака дернет ядро на сброс не через пол-лаптя, а через пол-лаптя +- 1/100 лаптя? sm.gif

Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 22 2012, 07:20
Сообщение #25


Профессионал
*****

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



Цитата(jcxz @ Aug 22 2012, 06:09) *
А сейчас вообще трудно встретить компетентных разработчиков. Мало осталось. Поэтому у нас спутники и падают.


Нет, не поэтому спутники падают.
По крайней мере, это не основная причина (по секрету, работаю в военке и кое-что об этом мне известно...).

Небольшой офф:
Падают они из-за беспредельной бюрократии и чудовищной неповоротливости всей этой военной машины.
Разрабы и рады бы сделать все возможное, но от них люди сверху требуют невозможного, сами того не понимая, чем эти требования могут обернуться....
К тому же некомпетентность тех, кто стоит сверху (я бы даже сказал отсталость от времени в силу ряда причин), вынуждает делать так,
лишь бы по документам все было тип-топ, а это всегда приводит к неприятностям, очень большим неприятностям...

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

А если бы вы тока знали, насколько дибильные схемные решения используются в спутниках: "барадатая" схемотехника, куча ненужных проводов, жгутов, разъемов,
от которых можно было бы легко избавиться, если бы все было иначе в общем структуре нашей военной электроники...
А схемные решения получаются дебильными вовсе не потому, что разрабы дибилы (хотя и такое бывает), а из-за того, что, например,
список разрешенных комплектующих, созданный чуть ли не 80..90-е годы прошлого века, практически нереально чем-то пополнить или заменить.
В итоге, проще делать на том, что разрешено... В итоге получается такая барада, которая вообще удивительно, что она работает sm.gif








--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
kan35
сообщение Aug 22 2012, 07:25
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Цитата(vlad_new @ Aug 22 2012, 02:33) *
Я имел ввиду в 50% при сбоеях резет не помагает ( лапка не чует ничего ), а не весь парк чипов. Есно к PIC это не относится. Но поскольку мы в теме АРМов, то они и имелись ввиду. Cortex0,3,4. Касается ли это 8,9 ядер - не знаю. Но поскольку механизм ядра разделен от переферии, то думаю, что и там будет то же самое.

Есть ли подтверждения ваших умоаключений какими нибудь производителями или если вы грешите на ядро, ARMом? Несколько лет работаю с STM32, ранее работал с ARM7 и разными 8 битниками и чтобы в каких то случаях внешний ресет не работал - не встречалось ни разу и ни от кого не слышал.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 22 2012, 14:26
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ut1wpr @ Aug 22 2012, 08:11) *
Она там нужна, эта точность?

Но есть же такая возможность (тактировать WDT от кварца), наверное потому что кому-то это надо.
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Aug 22 2012, 14:43
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



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

У меня есть версия. Это пошло от криворуких программеров, которые не инициализируют грамотно периферию, а полагаются на POR. Соотв., после того, как сработал WD, часть периферии не инициализирована полностью, отсюда и мифы о "недосбросе". sm.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 22 2012, 14:48
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Tahoe @ Aug 22 2012, 17:43) *
Соотв., после того, как сработал WD, часть периферии не инициализирована полностью, отсюда и мифы о "недосбросе". sm.gif

Да, но сброс от WDT не должен разве приводить периферию в исходное состояние?
Go to the top of the page
 
+Quote Post
Forger
сообщение Aug 22 2012, 15:20
Сообщение #30


Профессионал
*****

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



Цитата(Tahoe @ Aug 22 2012, 18:43) *
У меня есть версия. Это пошло от криворуких программеров, которые не инициализируют грамотно периферию, а полагаются на POR. Соотв., после того, как сработал WD, часть периферии не инициализирована полностью, отсюда и мифы о "недосбросе". sm.gif

Во-во! Полностью подтверждаю!
Не раз чехлил своих программеров за подобную лень sm.gif

Цитата(_Артём_ @ Aug 22 2012, 18:48) *
Да, но сброс от WDT не должен разве приводить периферию в исходное состояние?

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Aug 22 2012, 19:04
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(_Артём_ @ Aug 22 2012, 18:48) *
Да, но сброс от WDT не должен разве приводить периферию в исходное состояние?

Не обязан, по WDT можно сохранять предсмертный дамп или просто уйти на "полный" reset.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 22 2012, 20:23
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 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();

?
Это то хоть полный сброс?
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Aug 22 2012, 22:07
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(_Артём_ @ Aug 22 2012, 18:48) *
Да, но сброс от WDT не должен разве приводить периферию в исходное состояние?

А кто ж его заставит? Да и надо ли?

Простая периферия, типа таймера, просто инициализируется и запускается заново. Периферия посложнее, типа USB-контроллера, как правило имеет свой бит сброса в одном из управляющих регистров.

Цитата(_Артём_ @ Aug 23 2012, 00:23) *
А где его определять тогда? В WDT_Handler-е (если есть) или Reset_Handler-е?

Ясно дело, в WDT_Handler.
Go to the top of the page
 
+Quote Post
dinam
сообщение Aug 23 2012, 03:50
Сообщение #34


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(kan35 @ Aug 22 2012, 14:25) *
Есть ли подтверждения ваших умоаключений какими нибудь производителями или если вы грешите на ядро, ARMом? Несколько лет работаю с STM32, ранее работал с ARM7 и разными 8 битниками и чтобы в каких то случаях внешний ресет не работал - не встречалось ни разу и ни от кого не слышал.
Хоть и не ARM, но могу в качестве примера привести самый популярный мк с USB 2.0 - CY7C68013A. Если сбрасывать с отключением питания, то работает замечательно, что естественно для USB устройств. Если питание не отключать, то иногда на сброс не реагирует. Спасает только отключение питания.
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Aug 23 2012, 04:01
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Цитата(jcxz @ Aug 20 2012, 18:45) *
если по первому импульсу из пачки помех у вас происходит пересброс проца, то если второй импульс пачки придёт раньше, чем вы успеете программно разрешить внутренний WD, то устройству обеспечен мёртвый зависон.

Хорошо что это не требуется делать в PIC.

Я обычно сначала эксплуатирую устройство без WDT и если в течении месяца другого не происходит зависаний, можно смело запускать только внутренний WDT.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 23 2012, 05:23
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Forger @ Aug 22 2012, 21:20) *
Во-во! Полностью подтверждаю!
Не раз чехлил своих программеров за подобную лень sm.gif
Бывает периферия (внутренняя), которую невозможно сбросить НИКАК иначе как по внешнему ресету или ресету от внутреннего сторожевика.
Сам сталкивался с таким. Пример: 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.
Вы наверно не пользовались испытательными генераторами импульсных помех sm.gif
Когда-то помню испытывал устройство (в котором был только внутренний сторожевик) генератором ИГЭ15.2 - подавал пачки эл-статических разрядов. Примерно на каждой 10 пачке устройство висло. Хотя разрешение внутреннего сторожевика было в самом начале main(). Видно второй импульс пачки приходил когда управление находилось ещё внутри bootROM процессора (ещё не проверено состояние бут-пинов и не передано управление рабочему ПО), либо управление было в startup-коде си-программы.
Go to the top of the page
 
+Quote Post
dinam
сообщение Aug 23 2012, 05:28
Сообщение #37


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(jcxz @ Aug 23 2012, 12:11) *
Работал с CY7C68013A, вроде не замечал проблем. А может у вас не на сброс не реагировал, а по сбросу прошивку с внешней I2C-EEPROM не считывал или криво считывал и соответственно запускал прошивку не с EEPROM, а свою внутреннюю?
Сбросом отдельно дергаете, не отключая питания?
Честно говоря я так и не понял в чем засада. И почему он тогда не считывал из внешней EEPROM или криво?
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Aug 23 2012, 05:38
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Цитата(jcxz @ Aug 23 2012, 08:23) *
разрешение внутреннего сторожевика было в самом начале main().

Полный девайс ресет по сигналу WDT вызывает сброс счетчика WDT, как и команда CLRWDT.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 23 2012, 06:46
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dinam @ Aug 23 2012, 11:28) *
Сбросом отдельно дергаете, не отключая питания?
Честно говоря я так и не понял в чем засада. И почему он тогда не считывал из внешней EEPROM или криво?
Я уже не помню дергал-ли отдельно сбросом. Помню что была проблема с чтением EEPROM сразу после ресета или включения питания. Но контроллер при этом перезапускался и работал как если бы EEPROM не было.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 15:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01769 секунд с 7
ELECTRONIX ©2004-2016