Перейти к содержанию
    

LPC2478 не запускается ИНОГДА

Хм... не знаю не знаю насчет Р2.10. Для пробы поставил кондер 0.1uF между этим пином и землей. Разряжаю его перемычкой. Запускаю плату - висит. Но ресет при этом поиагает. Т.е. по симтомам не совсем совпадает. Плюс там еще экран есть, и там очень характерный паттерн появляется на экране, а в моем тесте просто черный.

 

При каких вообще обстоятельствах ресет может не действовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы где-нибудь на этапе до всякой инициализации в ПО на неиспользуемой внешней ноге установите уровень, по которому можно посмотреть скопом, проходит проц этот участок кода или нет. Если используете IAR, то лучше сделать в __low_level_init в самом начале, для других кросс-компиляторов должны быть подобные механизмы, или стартап поправить.

Вы таким образом практически однозначно определите, стартует у вас контроллер из флэш и выполняет ваше ПО, а потом виснет, или сваливается в бутлоадер.

Если вы используется C++, то проблема может заключаться в конструкторе глобальных объектов, которые вызываются при инициализации системы.

Да мало ли там еще может быть причин. По вашим постам не совсем понятно, как и где вы инициализируете систему и что у вас там наворочено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы таким образом практически однозначно определите, стартует у вас контроллер из флэш и выполняет ваше ПО, а потом виснет, или сваливается в бутлоадер.

Да, пожалуй так и сделаю. Использую GNU ARM, вся инфраструктура взята из кода EA.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это пишут в разделе Programmer's model. Прерыванием он является только с этой стороны.

Где пишут иначе? И почему тогда до полного обесточивания чипа я наблюдаю отказ обработки ресета?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где пишут иначе? И почему тогда до полного обесточивания чипа я наблюдаю отказ обработки ресета?

В других разделах. Неужели Вы действительно полагаете, что сигналы IRQn и RESETn чем-то похожи?

Конвеер, разумеется, по сбросу очищается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели Вы действительно полагаете, что сигналы IRQn и RESETn чем-то похожи?

А как тогда быть с soft-reset (armv7)?

 

Конвеер, разумеется, по сбросу очищается.

Если "разумеется", почему ресет не отрабатывает?

 

В других разделах.

А грубить-то зачем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как тогда быть с soft-reset (armv7)?

Сравните методы вызова "программного" сброса и честного исключения типа SVC. Разница заметна?

Первое - не более чем взвод битика в периферийном модуле (пусть и являющимся неотъемлемой частью ядра),

приводящий в результате к активации вполне себе "железных" цепей сброса, а не выполнению

некой программной последовательности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как тогда быть с soft-reset (armv7)?

Но всё же LPC2478 у ТС совсем не armv7, вроде нет там никакого soft-reset...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про P2.10 -- у меня эта версия вызывает определенные сомнения, т.к. этот пин в момент включения подтянут к VDD (внутренниий пуллап)... Вот пин RTCK никуда не подтянут, проверяю эту версию с ним. Там симптомы более похожи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про P2.10 -- у меня эта версия вызывает определенные сомнения, т.к. этот пин в момент включения подтянут к VDD (внутренниий пуллап)... Вот пин RTCK никуда не подтянут, проверяю эту версию с ним. Там симптомы более похожи.

 

UM10237 (Rev. 04 — 26 August 2009), page 676

 

Pin P2.10 that is used as hardware request for ISP requires special attention. Since P2.10

is in high impedance mode after reset, it is important that the user provides external

hardware (a pull-up resistor or other device) to put the pin in a defined state. Otherwise

unintended entry into ISP mode may occur.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UM10237 (Rev. 04 — 26 August 2009), page 676

Спасибо. Да, это полезная инфа, любопытно что этот косяк присутсвует на плате EA, которые официальные разработчики демок для LPC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Да, это полезная инфа, любопытно что этот косяк присутсвует на плате EA, которые официальные разработчики демок для LPC

я на эти грабли наступал, тоже долго не мог понять, что происходит

а по поводу платы - возможно, у вас старая ревизия и артисты уже пофиксили в новых версиях... все бывает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, поставил пуллапы на П2.10 и на RTCK, эффекта никакого. Т.е. все продолжает виснуть как и раньше. Но, проявления теперь в точности как при подтяжке к нулю RTCK (пытался сам такое зависание каким-то образом воспроизвести). Ресет так же не помогает и в течении секунд 20-30 программа нормально стартует.

 

Пуллапы 11К. Еще странность на которую обратил внимание но не успел исследлвать, странный уровень напряжения на П2.10, около 2.5В (без пуллапа). Питание чипа 3.3В

 

Да, посмотрел еще на схематику демки олимекса. У них схема программатора джамперами отделена от чипа с пуллапом, и подтяжки стоят на всех линниях jTAG. Попробую тоже добавить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы все же разобрались, стартует у вас бутлоадер, ваш код, или ни то и ни другое и контроллер находится в каком-то неопределенном вами состоянии?

Не понятна фраза "Ресет так же не помогает и в течении секунд 20-30 программа нормально стартует."

Может кратко в одном посте можете описать последовательность действий и состояний контроллера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понятна фраза "Ресет так же не помогает и в течении секунд 20-30 программа нормально стартует."

Может кратко в одном посте можете описать последовательность действий и состояний контроллера?

Да немного приболел последние 3 дня так что не занимался проблемой.

 

Ресет не работает, т.е. никакого видимого эффекта на плату не производит. Если же ее не трогать, она через какое-то время начинает работать как и должна, это я имел ввиду под словами "в течении секунд 20-30 программа нормально стартует". Все тоже самое я наблюдаю если запускать плату с притянутым к нулю RTCK.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...