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

 
 
> Вопрос про искусственный холодный старт, нет ли каких подводных камней ?
ttron
сообщение Jan 10 2007, 17:28
Сообщение #1


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

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



Нужно организовать искусственный холодный старт микроконтроллера PIC16F877. Для этого просто сбрасываю в ноль бит POR регистра PCON и перехожу на 0-й адрес (обычно этот бит сбрасывается аппаратно при включении питания). Там программа анализирует этот бит и работает по "холодному" старту, а затем устанавливает бит POR, чтобы все остальные рестарты были "теплые".
Корректно ли так делать, или есть какие-то подводные камни?


--------------------
"Регистрируй, наблюдай, экономь микросекунду, зря вопрос не задавай, не запоминай ерунду" (с) не помню, чье
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DL36
сообщение Jan 11 2007, 11:45
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



Цитата(ttron @ Jan 10 2007, 18:28) *
Нужно организовать искусственный холодный старт микроконтроллера PIC16F877. Для этого просто сбрасываю в ноль бит POR регистра PCON и перехожу на 0-й адрес (обычно этот бит сбрасывается аппаратно при включении питания). Там программа анализирует этот бит и работает по "холодному" старту, а затем устанавливает бит POR, чтобы все остальные рестарты были "теплые".
Корректно ли так делать, или есть какие-то подводные камни?

Наверно так будет не совсем корректно.
Посмотрите на таблицу состояния регистров после сброса. В Вашем случае это выполнено не будет. Если есть свободная нога то ее завести на сброс. После сброса порт будет в третьем состоянии, вывод инициализируем 1 и вперед. Резистор ом так 300 не забыть.

Сообщение отредактировал DL36 - Jan 11 2007, 11:48
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 14 2007, 15:58
Сообщение #3





Guests






Цитата(DL36 @ Jan 11 2007, 11:45) *
Наверно так будет не совсем корректно.
Посмотрите на таблицу состояния регистров после сброса. В Вашем случае это выполнено не будет. Если есть свободная нога то ее завести на сброс. После сброса порт будет в третьем состоянии, вывод инициализируем 1 и вперед. Резистор ом так 300 не забыть.

Хороший способ. Только внутрисхемное программирование становится невозможным. На сброс (MCLR) при этом подается 13В и на вход, соединенный с ним - тоже, что недопустимо! Нужно предусмотреть "развязку".
Go to the top of the page
 
+Quote Post
DL36
сообщение Jan 14 2007, 18:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



Цитата(@Ark @ Jan 14 2007, 16:58) *
Хороший способ. Только внутрисхемное программирование становится невозможным. На сброс (MCLR) при этом подается 13В и на вход, соединенный с ним - тоже, что недопустимо! Нужно предусмотреть "развязку".

Да для развязки транзистор прийдется поставить.
Хотя автор молчит наверно это ему уже неинтересно.
Go to the top of the page
 
+Quote Post
ttron
сообщение Jan 15 2007, 00:34
Сообщение #5


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

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



Цитата
Хотя автор молчит наверно это ему уже неинтересно.

Всем спасибо. Автор не молчит, у него был день рожденья, который на некоторое время выбил его из колеи праведной жизни tort.gif

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

В любом случае спасибо все неравнодушным a14.gif


--------------------
"Регистрируй, наблюдай, экономь микросекунду, зря вопрос не задавай, не запоминай ерунду" (с) не помню, чье
Go to the top of the page
 
+Quote Post



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

 


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


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