Vladimir_T 1 7 сентября Опубликовано 7 сентября · Жалоба Здравствуйте, уважаемые коллеги, встречался ли кто-нибудь с зависание STM32F405RGT6 уже на -25 град, хотя эти процессоры для диапазона -40 +85 град. МК тактируется от кварца 16 МГц (пробовал разные хорошие), переводил и на внутреннее тактирование - при заморозке ниже -25, зависает. Сами МК фирменные. Подскажите, пожалуйста, может есть какие особенности? Заранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 85 7 сентября Опубликовано 7 сентября · Жалоба Может быть снижение напряжения питания, может повышенная относительная влажность с выпадением конденсата, может, виноваты внешние цепи и микросхемы. А зависает как - прекращается генерация на выходе MCO (проверить генерацию по этому выходу) или начинаются сбои в программе? Кстати, как вариант - при охлаждении может изменяться геометрия платы, где-то что-то изгибается, отходит, плохой контакт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 7 сентября Опубликовано 7 сентября · Жалоба Питание проверено - в норме. Конденсат - убрал селекогелем, внешние цепи уже отключил. Сбои начинаются в программе: по CAN передаются данные с датчика температуры, замечено, что перед зависанием результаты вычислений резко искажаются, видимо в SRAM результаты искажаются. Плат однотипных несколько, поведение - одинаковое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 12 7 сентября Опубликовано 7 сентября · Жалоба смотрите на чём зависает, может там hardfault обычный, раз данные "искажаются". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 7 сентября Опубликовано 7 сентября · Жалоба 8 minutes ago, kpv said: смотрите на чём зависает, может там hardfault обычный, раз данные "искажаются". До -25 град работает прекрасно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 7 сентября Опубликовано 7 сентября (изменено) · Жалоба 55 минут назад, Vladimir_T сказал: передаются данные с датчика температуры, замечено, что перед зависанием результаты вычислений резко искажаются Методом исключения, напишите тестовую программу вычислений чего-либо в ОЗУ, побольше вывода в консоль и проверяйте, так, в готовой программе, где куча всего очень трудно выявлять какую-либо причину... ИМХО у меня в подобных случаях наоборот отказывал флеш... Изменено 7 сентября пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 7 сентября Опубликовано 7 сентября · Жалоба 2 часа назад, Vladimir_T сказал: Здравствуйте, уважаемые коллеги, встречался ли кто-нибудь с зависание STM32F405RGT6 уже на -25 град, хотя эти процессоры для диапазона -40 +85 град. МК тактируется от кварца 16 МГц (пробовал разные хорошие), переводил и на внутреннее тактирование - при заморозке ниже -25, зависает. Сами МК фирменные. Подскажите, пожалуйста, может есть какие особенности? Заранее благодарен. На этом МК у меня работает довольно большое количество изделий. Нареканий нет, морозили до -50. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 7 сентября Опубликовано 7 сентября · Жалоба 2 часа назад, Vladimir_T сказал: Питание проверено - в норме. Конденсат - убрал селекогелем, внешние цепи уже отключил. Все колёса уже пропинаны, зеркала - протираны, осталось - искать программные баги. 2 часа назад, Vladimir_T сказал: Сбои начинаются в программе: по CAN передаются данные с датчика температуры, замечено, что перед зависанием результаты вычислений резко искажаются, видимо в SRAM результаты искажаются. Т.е. - отделения мух от котлет ещё даже не пытались делать? Почему не пришла логичная мысль, что портится что-то в программе и поэтому зависает? Например - портится память где-то, и сперва некритичные данные, а потом - например уже портится что-то, от чего зависит ход выполнения программы? PS: Конечно - искать программную ошибку у себя много сложнее, чем валить всё на контроллер. Но может стоит попробовать? Можно ведь написать простейший код, использующий тот-же источник тактирования, но из которого вырезан почти весь функционал. И проверить его работу в тех же условиях. А также можно выяснить - что такое "зависает"? Подключить отладочный эмулятор к примеру и выяснить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 7 сентября Опубликовано 7 сентября · Жалоба 8 минут назад, jcxz сказал: Например - портится память где-то, и сперва некритичные данные, а потом - например уже портится что-то, от чего зависит ход выполнения программы? Припоминаю, как однажды в коде видел участок, где неправильно обрабатывалось знаковое расширение при работе с отрицательной температурой датчика, из-за чего программа уже работала некорректно. Всякое может быть - я бы не стеснялся в камеру засунуть ST-Link или что там у ТС за отладчик - да и посмотреть в реалтайме, что там происходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 7 сентября Опубликовано 7 сентября · Жалоба 1 час назад, Arlleex сказал: Припоминаю, как однажды в коде видел участок, где неправильно обрабатывалось знаковое расширение при работе с отрицательной температурой датчика, из-за чего программа уже работала некорректно. Да - может быть что угодно: И некорректная реакция на какие-то значения измеренной температуры; и неучёт разброса частот тактирования от температуры, из-за чего что-то начинает неуспевать или наоборот - успевать слишком много. Идти (имхо) можно методом пошагового исключения вероятных факторов: Отключать по очереди куски кода. 1 час назад, Arlleex сказал: я бы не стеснялся в камеру засунуть ST-Link или что там у ТС за отладчик - да и посмотреть в реалтайме, что там происходит. В первую очередь - узнать что такое "виснет"? И где? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Priest_89 8 7 сентября Опубликовано 7 сентября · Жалоба Проверьте код обработчика датчика температуры, в этих контроллерах там как раз число 25 должно присутствовать, может в этом баг и скрылся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kpv 12 7 сентября Опубликовано 7 сентября · Жалоба 4 hours ago, Vladimir_T said: До -25 град работает прекрасно... по бразильской системе: разработчика вместе с отладкой сажаете в холодильник с минус 30 градусами, и пусть ищет ошибку. Не выпускаете, пока не разберётся. А то привыкли, видишь ли, на столе у него работает, при +25 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 85 7 сентября Опубликовано 7 сентября · Жалоба 5 часов назад, Vladimir_T сказал: Сбои начинаются в программе: по CAN передаются данные с датчика температуры, замечено, что перед зависанием результаты вычислений резко искажаются, Вот с этого и надо было начинать! 🙂 Проверьте вычисления, проверьте программный код, проверьте вообще сами данные с интрефейса осциллографонм или анализатором Обычно не бывает так резко и точно - до -25 работает, после -25 не работает. Если проблема физическая, должен быть разброс температур начала зависания Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 7 сентября Опубликовано 7 сентября · Жалоба 30 минут назад, kpv сказал: по бразильской системе: разработчика вместе с отладкой сажаете в холодильник с минус 30 градусами, и пусть ищет ошибку. Не выпускаете, пока не разберётся. Если в том холодильнике он найдёт пивас, то может долго там её искать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 7 сентября Опубликовано 7 сентября · Жалоба Благодарю всех за толковые советы. На плате плате установил мигающий светодиод, который управляется из основного программного цикла. Увидел, что МК работает на -50, а вот связь по CAN обрывается, МК - ведомый. Вот поэтому я ошибочно считал и всех вас переполошил, будто МК зависает. А перед тем, как связь терялась шли пакеты с ошибками, потому я считал, что данные портятся в ОЗУ. Кварц 16 МГц для задающего генератора уже менял, может он "плывет"?! Буду разбираться с системой тактирования CAN, чтобы понять почему набегает рассинхронизация приема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться