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

Сдох контроллер или..?

Компилятор KEIL, контроллер - STM32F103RET6

 

При попытке прошить через J-LINK интерфейс SWD выдает среди прочего

* JLink Info: Found SWD-DP with ID 0x1BA01477

* JLink Info: Found SWD-DP with ID 0x1BA01477

* JLink Info: Found Cortex-M3 r1p1, Little endian.

* JLink Info: FPUnit: 0 code (BP) slots and 0 literal slots

ROMTableAddr = 0xE00FF003

Error: Flash Download failed - Target DLL has been cancelled

Flash Load finished at 16:22:40

 

А в окошке alert выскакивает Invalid ROM Table

Изменено пользователем murmur

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


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

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

Танцы с бубном привели к следующему - если поставить в настройках J-Link галочку "autoClk", то выставляется 200 кГц и программирование идет очень медленно.

Запускается программа, работает штатно, но тоже ооооочень медленно - вывод на экран замедлен.

 

Раньше нормально работавший код

TIM_TimeBaseStructure.TIM_Period = 5;
TIM_TimeBaseStructure.TIM_Prescaler = 7200-1;  
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

// Output Compare Toggle Mode configuration: Channel3

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OC3Init(TIM2, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Disable);

 

выдает импульсы диной не 500 мкс, как расчитано, а около 5 мс.

 

 

Как думаете, кварц?

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


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

Если раньше в этой же конфигурации работало, то смотрите что изменилось - кабели, программы и т.д.

Перво-наперво проверить контакты, у меня снижало скорость из-за плохого контакта "разъем кабеля-разъем на плате", хотя до этого всё работало.

Еще может быть критична длина проводов от отладчика до контроллера - сделали на плате длинные дорожки и "приплыли".

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


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

Программа (скажу даже в более широком смысле - проект) не изменилась.

Еще раз пропаяла замененный контроллер - вроде бы он стал работать с нормальной скоростью. Но прошивка все равно идет только на 200 кГц. Иногда контроллер не запускается вообще, тогда помогает только перепрошивка.

 

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

 

дорожки+кабель - 12 см. 2 недели до этого все шилось нормально.

Единственно, что было накануне -в 1 см от кварца есть микросхема в корпусе SO-8, накануне она подвергалась замене феном, теоретически я могла перегреть кварц и конденсаторы. Но непосредственно после пайки все работало около 10 минут.

 

Скажите, объяснимо ли такое поведение (нормальная работа контроллера и низкая скорость прошивки) проблемами с кварцем? Вообще кварц принимает какое либо участие в работе контроллера, когда последний прошивается?

 

Еще одна тонкость - NRST у меня в воздухе. Хорошо ли он подтянут внутри контроллера? НЕ может ли он наловить помех?

Изменено пользователем murmur

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


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

Причина практически нашлась.

Видать какие-то помехи наводятся на NRST. У меня на нем резистор на плюс 10 кОм и керамика 0.1 мкф - на минус.

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

 

Зато если прикоснуться пальцем к точке,гда соединюятся конденсатор резистор и NRST - проблема исчезает навсегда.

 

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

 

 

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


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

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

Покажите лучше, как это выглядит смонтированным.

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


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

Не хочется методом тыка дальше работать, хочу спросить, что правильнее сделать

Если уж совсем правильно - то поставить нормальный супервизор. Ну, или поиграться уменьшением сопротивления, увеличением емкости :laughing:

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


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

Зато если прикоснуться пальцем к точке,гда соединюятся конденсатор резистор и NRST - проблема исчезает навсегда.

Непропай ножки?

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


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

У меня нормально работает плата с не подключенной никуда ногой NRST. Там, судя по даташиту, внутри и подтяжка имеется и некая схема, которая игнорирует короткие импульсы. Дорожки от ноги процессора нет. Т.е. вообще не подключена.

 

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

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


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

Непропай ножки?

Угу, или непропай резистора/конденсатора, или брак в переходном отверстии. Скорее всего в той цепи, которая идёт от NRST в землю

В общем, ткнутся осциллографом и глянуть что происходит при включении и при касании.

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


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

У этого контроллена NRST имеет внутранний PU резистор, поэтому внешний не нужен. Попробуйте поднять ножку или перерезать проводник NRST. Скорее всего на проводник наводится помеха извне.

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


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

Какая-то дрянь все-таки на ножку проникает.

Пойман всплеск до 5 вольт(входное напряжение, до преобразователя, около 6-ти вольт).

Но, к слову, большинство осциллограмм без этого всплеска, но устройство в эти моменты не запускается. Может быть всплески столь коротки, что осциллографи их не ловит. Схему и топологию вы видели, что может быть источником этого всплеска?

 

Вот что на осциллограмме при подключении питания к устройству.

post-64708-1454787756_thumb.jpg

Изменено пользователем murmur

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


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

Вот что на осциллограмме при подключении питания к устройству.

А откуда у вас 5В на STM32? Тем более такой красивый прямоугольник, его просто не должно быть - конденсатор должен сгладить. Где-то при измерениях проблема - в земле, в подключении щупов и т.д.

Посмотрите осциллограмму напряжения питания при включении - отдельно на выводе питания STM32 и отдельно на выводе конденсатора на NRST который подключен к питанию. При этом крокодил щупа(общий) надо подключить к одному из заземленных выводов STM32(хоть проводок припаивайте к нему)

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


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

HardEgor, вот честно, еще до вашего сообщения сама к этому пришла.

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

Бракованый преобразователь получается.

 

P.S. сколько раз при подобных проблемах (не запускается, не программируется и пр.) первые советы, которые давали - посмоти помехи, посмотри разводку, посмотри длину кабелей. Некоторые, взглянув на топологию, критиковали разводку земли и били себя в грудь, что именно в этом дело. Никогда вышеперечисленное не оказывалось причиной, она жевсегда была банальна. Вроде нынешней.

Изменено пользователем murmur

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


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

Сложно говорить точно, но обычно преобразователь должен быть чем-то подгружен и иметь соответствующие емкости на входе и на выходе(с учетом ESR)

Не соблюдение этого может приводить к звону(возбуждению обратной связи). Но такой четкий 5В прямоугольник... Это не похоже на правду. Слишком крутые оба фронта. Емкости по питанию, расположенные на плате, не позволили бы даже бракованному стабилизатору создать такие фронты.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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