|
Сдох контроллер или..? |
|
|
|
Feb 3 2016, 13:22
|
Местный
  
Группа: Участник
Сообщений: 425
Регистрация: 30-04-11
Пользователь №: 64 708

|
Компилятор 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 - Feb 3 2016, 13:27
|
|
|
|
|
 |
Ответов
(15 - 29)
|
Feb 7 2016, 17:42
|
Местный
  
Группа: Участник
Сообщений: 425
Регистрация: 30-04-11
Пользователь №: 64 708

|
ПРичиной появления пятивольтового импульса была "культура производства" - плохой контакт земли с земляным "крокодильчиком" осциллографа (все это сносно и даже без искажений компенсировалось связью по земле USB осцилографа и J-LINK, как оказывается для работы этого достаточно, а в моменты включения происходят перекосы). Пятивольтовый импульс исчез, на осциллографе плавное нарастание напряжения до 3.3 вольт. Но вот проблемы это почему-то не решило. Контроллер бывает не стартует. Может какая наносекундная помеха? У меня осциллограф всего 200 кГц дискретизации, может и не поймать. Цитата Сомневаюсь в браке преобразователя Подтверждаю. Я отпаяла преобразователь и запитала схему от импульсника на LM2596s - та же периодически возникающая проблема. Цитата теперь питание идёт через паразитную землю через щупы осциллографа или через плату отладки или еще как... Полностью отключила плату от паразитов, ни осциллографа, ни программатора, только питание - знаете, частота сбоев только возросла. Будем искать...
|
|
|
|
|
Feb 9 2016, 04:56
|
Местный
  
Группа: Участник
Сообщений: 425
Регистрация: 30-04-11
Пользователь №: 64 708

|
Разрешилось. Прям как в анекдоте - Владимир Владимирович, скажите, что делаю российские войска на Украине? - Что делают? Отсутствуют.
Так и тут. Почему не запускается контроллер? Да на самом деле он запускался и наверное все это время тихо надо мной посмеивался. На самом деле ПЕРИОДИЧЕСКИ не стартовал не контроллера, а дисплей, программа контроллера узрев ошибку дисплея, спокойно шла дальше, а так как никаких других исполнительных устройств на плате нет, догадаться что контроллер работает никак было нельзя. Вы скажете, эх ты раззява, а отладчик на что? Дело в том, что, как я уже писала выше, за день до этого была замена микросхемы феном. С противоположной стороны платы располагается дисплей, его контроллер как раз в проекции микросхемы. Перегрела я контроллер и теперь дисплей должен 2-3 секунды после включения прогреться, тогда он заводится и работает без сбоев.
Так вот по поводу отладчика - пока прошьешь контроллер, пока повозишься с кнопками - дисплей прогревается и обретает работоспособность. И когда происходит ресет, запускается функция инициализации дисплея и устройство в целом работает нормально. Иными словами, отладчиком по определению нельзя было поймать момент сбоя.
А как же прикосновение пальца? Вот как раз прикосновение пальцем после прогрева дисплея и вызывало ресет и нормальный запуск устройства. Доказательство вышесказанному - убрала RC цепочку с NRST - все работает нормально.
Как вылечилось? В конечном устройстве конечно же будет установлен исправный дисплей, но в программу добавлена проверка работоспособности дисплея в цикле, пока дисплей не откликнется.
Спасибо за поддержку)
|
|
|
|
|
Feb 9 2016, 12:31
|
Местный
  
Группа: Участник
Сообщений: 425
Регистрация: 30-04-11
Пользователь №: 64 708

|
Дисплей не мешал контроллеру. Еще раз говорю - кто-то мне посоветовал в SWD кабеле пустить только линии данных и плюса питания. У него видимо работало благодаря земле USB. У меня (еще 2 недели назад) не заработало, я соединила минус питания с землей J-LINK. Заработало. я осталась довольна. Нужен этот разъем был на один раз (при серийном производстве), почему бы и нет. Не знаю почему, может положение кабеля питания относительно какого-нибудь источника помех поменялось, но программироваться контроллер перестал. Когда я стала играться с RC-цепочкой на NRST, предположение о ресете от помех было ошибочным - как в том анекдоте про таракана, который без ног не слышит, а потому не реагирует на команды. Вылечилось только тогда, когда я подпаяла провод поближе к SWD и соединила его с землей J-LINK. На этом проблемы с прошивкой контроллера исчезли. Но осталась проблема с запуском. Цитата Вообще-то, по уму, в отлаживаемых устройствах всегда желательно иметь какой-либо канал вывода отладочного лога. Так мне SWD для отладки хватало выше крыши. На худой конец, отлаживаемую информацию я выводила на экран. Все ножки контроллера были задействованы, UART-не вариант. Код дисплея был отработанный, проверенный, сам дисплей надежно припаян, исправен, как казалось. Поэтому когда включаешь устройство и видишь пустой экран, который даже не моргает от инициализации, первая мысль - про контроллер. Цитата Я так и не понял причину. Дисплей наводил помеху на цепи NRST? как дисплей мог наводить помеху, если он не работал? Ничего он не наводил. Еще раз говорю, контроллер работал, просто если он обращался к дисплею в первую секунду после включени питания (не запуска, контроллера, а именно включения питания), дисплей молчал. Дисплей прогревался 2-3 секунды, обретал работоспособность и если контроллер перезагружался дисплей работал. Цитата Мне кажется это все опять притянуто за уши. Программа перестроена так, что контроллер обращается к дисплею непрерывно после старта, пока тот не ответит. В результате - холодное устройство выводит на экран информацию через 3-4 секунды, прогретое- сразу же. RC-цепочку с NRST убрала, ситуация не ухудшилась. Все программирутеся, все запускается, ничто не ресетится само.
|
|
|
|
|
Feb 9 2016, 12:46
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(murmur @ Feb 9 2016, 18:31)  Так мне SWD для отладки хватало выше крыши. На худой конец, отлаживаемую информацию я выводила на экран. Все ножки контроллера были задействованы, UART-не вариант. Код дисплея был отработанный, проверенный, сам дисплей надежно припаян, исправен, как казалось. Поэтому когда включаешь устройство и видишь пустой экран, который даже не моргает от инициализации, первая мысль - про контроллер. Как видите - не хватало. И не бывает "отработанного и проверенного кода". Бывает только "код с пока непроявившимися багами"  И не всё можно отладить точками останова и т.п. Особенно в реал-тайм системах. Вот тут как раз удобен UART.
|
|
|
|
|
Feb 9 2016, 14:08
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(murmur @ Feb 9 2016, 13:31)  только линии данных и плюса питания это как это Цитата(murmur @ Feb 9 2016, 13:31)  Так мне SWD для отладки хватало выше крыши хотя бы светодиодиком красным мигайте
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|