|
Вопрос про искусственный холодный старт, нет ли каких подводных камней ? |
|
|
|
 |
Ответов
Guest_@Ark_*
|
Jan 15 2007, 02:15
|
Guests

|
Цитата(rezident @ Jan 15 2007, 00:47)  Может я не совсем в тему, но вроде как "холодный" старт подразумевает выключение/включение питания, или нет? "Горячий"-же сброс через всякие ватчдоги, BOR, RESET и прочие не гарантирует сброс периферии и других устройств. А также требует реинициализации всей периферии. Особенно проблематично сбросить "горячим" сбросом, когда произошло зависание по причине "защелкивания" входов. Например, для большинства LСD коммутация питания для сброса это просто необходимость. Иначе готовое устройство скорее всего не пройдет тесты на EMI совместимость. Чаще всего LCD по которому "лупили" разрядом, можно сбросить только сняв и вновь подав питание. Будем говорить применительно к PIC16F877. Процедура (последовательность) сброса - одна и та же, а причины сброса могут быть различны: включение питания, снижения питания, внешний сброс (по MCLR), ошибка четности памяти и т.п. Состояние регистров по выходу из состояния сброса (начало работы) могут быть различны в зависимости от причины сброса. Кстати, для решения, предложенного DL36, состояние регистров будет соотвествовать внешнему сбросу (по MCLR), а не сбросу по включению питания, как это имеет место при "холодном старте". Состояния регистров могут отличаться! Так что полной имитации "холодного старта" - может и не получиться (см. Data Sheet) . Но нужно ли это в данном конкретном случае - не уверен. Что касается "зависаний", то сброс по WDT как раз предназначен для вывода устройства из таких состояний. Насколько это надежно - не берусь судить. Например устройство может "зависнуть" и при старте, непосредственно в состоянии сброса (при слишком медленном нарастании напряжения питания). Здесь WDT не поможет. Только включение/выключение.
|
|
|
|
|
Jan 15 2007, 10:33
|

Частый гость
 
Группа: Свой
Сообщений: 134
Регистрация: 1-06-05
Из: Москва
Пользователь №: 5 634

|
Цитата(@Ark @ Jan 15 2007, 02:15)  Цитата(rezident @ Jan 15 2007, 00:47)  Может я не совсем в тему, но вроде как "холодный" старт подразумевает выключение/включение питания, или нет? "Горячий"-же сброс через всякие ватчдоги, BOR, RESET и прочие не гарантирует сброс периферии и других устройств. А также требует реинициализации всей периферии. Особенно проблематично сбросить "горячим" сбросом, когда произошло зависание по причине "защелкивания" входов. Например, для большинства LСD коммутация питания для сброса это просто необходимость. Иначе готовое устройство скорее всего не пройдет тесты на EMI совместимость. Чаще всего LCD по которому "лупили" разрядом, можно сбросить только сняв и вновь подав питание.
Будем говорить применительно к PIC16F877. Процедура (последовательность) сброса - одна и та же, а причины сброса могут быть различны: включение питания, снижения питания, внешний сброс (по MCLR), ошибка четности памяти и т.п. Состояние регистров по выходу из состояния сброса (начало работы) могут быть различны в зависимости от причины сброса. Кстати, для решения, предложенного DL36, состояние регистров будет соотвествовать внешнему сбросу (по MCLR), а не сбросу по включению питания, как это имеет место при "холодном старте". Состояния регистров могут отличаться! Так что полной имитации "холодного старта" - может и не получиться (см. Data Sheet) . Но нужно ли это в данном конкретном случае - не уверен. Что касается "зависаний", то сброс по WDT как раз предназначен для вывода устройства из таких состояний. Насколько это надежно - не берусь судить. Например устройство может "зависнуть" и при старте, непосредственно в состоянии сброса (при слишком медленном нарастании напряжения питания). Здесь WDT не поможет. Только включение/выключение. Вы совершенно правы. Собственно производитель и накрутил кучу флагов, чтобы можно было распознать причину сброса и адекватно на нее прореагировать. В моем случае надо было "обмануть" программу. Чтобы приблизиться к имитации холодного старта, я программно сбрасываю все нужные мне регистры аппаратуры в состояние, имеющее место при включении питания. В моей ситуации это оказалось сделать возможно. Наверное, бывают ситуации, когда это проблематично. В любом случае благодарю всех откликнувшихся - небольшая дискуссия позволила упорядочить информацию на эту тему
--------------------
"Регистрируй, наблюдай, экономь микросекунду, зря вопрос не задавай, не запоминай ерунду" (с) не помню, чье
|
|
|
|
Сообщений в этой теме
ttron Вопрос про искусственный холодный старт Jan 10 2007, 17:28 DL36 Цитата(ttron @ Jan 10 2007, 18:28) Нужно ... Jan 11 2007, 11:45 @Ark Цитата(DL36 @ Jan 11 2007, 11:45) Наверно... Jan 14 2007, 15:58  DL36 Цитата(@Ark @ Jan 14 2007, 16:58) Хороший... Jan 14 2007, 18:43   ttron ЦитатаХотя автор молчит наверно это ему уже неинте... Jan 15 2007, 00:34 xemul Цитата(ttron @ Jan 10 2007, 17:28) Нужно ... Jan 11 2007, 16:19  DL36 Цитата(@Ark @ Jan 15 2007, 03:15) Будем г... Jan 15 2007, 09:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|