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

 
 
> Контроллер (lpc2132) умер после добавления фунцкии ресета
SanvaldYV
сообщение Nov 1 2007, 14:41
Сообщение #1


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Всем доброго времени суток!

Понадобилось мне в приложении иметь возможность в определенной ситуации перезагрузить контроллер(lpc2132). Решил осуществлять это при помощи watchdog'a. Добавил следующую функцию:

Код
__disable_interrupt();    
   WDTC = (u32)(F_PCLK/1000); // установка задержки перед сбросом (размер не важен)
   WDMOD_bit.WDRESET = 1; WDMOD_bit.WDEN = 1; // разрешен ресет и прерывание
   WDFEED = 0xAA; WDFEED = 0x55; // запуск
  __enable_interrupt();
  for(;;);


Поставил просто в мэйне в пустой рабочий цикл, вся инициализация проведена нормально, взята из рабочего приложения, после загрузки этого приложения контроллер нельзя ни стереть, ни перешить (использую JLink). То идентификатор ядра не определяется, то не в JTAG режиме контроллер, то клоков нет, то еще какие то сообщения.

Подскажите, пожалуйста, что такого криминального я написал???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
vesago
сообщение Nov 1 2007, 15:10
Сообщение #2


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



к сожалению, когда приложение ресетится по вачдогу оно гробит и жтаг. Я намедни тоже бился, бился - проклинал мтлинк за глючность, пока не догодался отключить вачдог. Сказывается привычка работы с авр. В вашем случае надобно потереть приложение штатным загрузчиком.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Nov 1 2007, 15:11
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Юрий Санвальд @ Nov 1 2007, 19:41) *
Всем доброго времени суток!

Понадобилось мне в приложении иметь возможность в определенной ситуации перезагрузить контроллер(lpc2132). Решил осуществлять это при помощи watchdog'a. Добавил следующую функцию:

Код
__disable_interrupt();    
   WDTC = (u32)(F_PCLK/1000); // установка задержки перед сбросом (размер не важен)
   WDMOD_bit.WDRESET = 1; WDMOD_bit.WDEN = 1; // разрешен ресет и прерывание
   WDFEED = 0xAA; WDFEED = 0x55; // запуск
  __enable_interrupt();
  for(;;);


Поставил просто в мэйне в пустой рабочий цикл, вся инициализация проведена нормально, взята из рабочего приложения, после загрузки этого приложения контроллер нельзя ни стереть, ни перешить (использую JLink). То идентификатор ядра не определяется, то не в JTAG режиме контроллер, то клоков нет, то еще какие то сообщения.

Подскажите, пожалуйста, что такого криминального я написал???

Переведите контроллер в режим бутлоадера, он станет доступным по JTAG.
Когда контроллер программируется по JTAG программа из внутренней флеши успевает запустаться, и отрабатывать по WDT, сбрасывая контроллер, поэтому у вас JTAG начинает глючить.
Ровно тот же эффект будет при отладке, если вы включите WDT. При останове на брейкпоинте у вас контроллер аппаратно пересброситься, и будет все глючить.
WDT при отладке включать не нужно.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Nov 1 2007, 17:30
Сообщение #4


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Спасибо за разъяснение! a14.gif

А правильно ли я понял из ЮзерГида, что для перевода в режим бутлоадера достаточно только притянуть ножку Р0.14 к 0 на время ресета (внешнего)?
Просто есть такая фраза:"If P0.14 is sampled low and the watchdog overflow flag is set, the external hardware request to start the ISP command handler is ignored."
Go to the top of the page
 
+Quote Post
Maximm
сообщение Nov 1 2007, 18:58
Сообщение #5


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

Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137



Цитата(Юрий Санвальд @ Nov 1 2007, 20:30) *
Спасибо за разъяснение! a14.gif

А правильно ли я понял из ЮзерГида, что для перевода в режим бутлоадера достаточно только притянуть ножку Р0.14 к 0 на время ресета (внешнего)?
Просто есть такая фраза:"If P0.14 is sampled low and the watchdog overflow flag is set, the external hardware request to start the ISP command handler is ignored."


Да, именно так и нужно переводить в бутлоад режим!


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Nov 2 2007, 08:07
Сообщение #6


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Всем спасибо, контроллер реанимировался!
Go to the top of the page
 
+Quote Post

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

 


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


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