Arlleex 187 7 сентября Опубликовано 7 сентября · Жалоба 1 минуту назад, Vladimir_T сказал: Благодарю всех за толковые советы. На плате плате установил мигающий светодиод, который управляется из основного программного цикла. Увидел, что МК работает на -50, а вот связь по CAN обрывается, МК - ведомый. Вот поэтому я ошибочно считал и всех вас переполошил, будто МК зависает. А перед тем, как связь терялась шли пакеты с ошибками, потому я считал, что данные портятся в ОЗУ. Кварц 16 МГц для задающего генератора уже менял, может он "плывет"?! Буду разбираться с системой тактирования CAN, чтобы понять почему набегает рассинхронизация приема. Покажите настройки BTR CAN и какова битовая скорость? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 85 7 сентября Опубликовано 7 сентября · Жалоба Позволю себе процитировать одну известную и давнюю книгу от мэтров программирования: (извиняюсь, пдф-ка без распознавания текста, только в виде картинок) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 7 сентября Опубликовано 7 сентября · Жалоба Позволю себе процитировать одну известную и давнюю книгу от мэтров программирования Автор. Название. Издательство. Год издания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 7 сентября Опубликовано 7 сентября · Жалоба В данном фрагменте, к сожалению, приведены довольно философские доводы, которые на реальной практике зачастую не могут быть применимы. Иногда, ценой бага является человеческа жизнь. "Не паникуй!". И да - зачастую "в поле" хотя бы переместить баг в другое место проявления, не мешающий в данных конкретных условиях работе, чтобы потом уже в лаборатории спокойно разобраться - куда лучше для себя же (своих нервов, здоровья), чем руководствоваться принципом "спокойно, надо найти причину". Сидя в промерзшей степи. Я не спорю, что из отладочных поисков багов даже в степи нужно извлечь максимальную выгоду, но не до маразма. В поле нам "не очень комфортно", поэтому это стресс, а стресс не благоприятствует рациональному и методичному поиску багов. Чего бы там не писали умные книжки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 85 8 сентября Опубликовано 8 сентября (изменено) · Жалоба Дэвид Томас, Эндрю Хант, "Программист-прагматик". Да, книга содержит довольно много философских понятий и написана она около 20 лет назад и не для сферы эмбедда. Я, когда раньше её читал, тоже плевался и не мог понять, че за фигня. Однако, когда перечитываешь её несколько раз, начинаешь понимать, в чем же суть. А оказывается, довольно много правильного. Фраза "не паникуй" применяется к процессу отладки, а не к тому, что вы забили на отладку и выпустили косячный продукт, который где-то посреди поля грозит жизням людей. Да нет, на самом деле, перечитайте книгу несколько раз, и станет понятно. --- В частности, в рассматриваемой проблеме топикстартера, если бы он перед натурными испытаниями на вход алгоритма вычисления температуры он подал данные, соотсветствующие принятым из датчика, то есть просто сэмулировал поведение датчика, то обошлось бы без заморозки всего прибора в термокамере. Хотя, топикстартер еще вовремя обнаружил проблему, протестировав прибор в термокамере, а не сразу отдал в поле, где при -25 зимой он бы заглючил. То есть, ТС успел вскочить в последний вагон уходящего поезда, образно выражаясь. Тут на форуме около года назад была тема, где разработчик сообщал, что готовые и выпущенные в эксплуатацию приборы начали неожиданно возвращаться по рекламации с неисправностью "полный кирпич". Это как раз тот случай, когда тестирование провели неполное, пропустили баг, который при определенных обстоятельствах окирпичивал всё устройство. И тот разработчик точно так же начал искать неисправность совсем в другом месте - дескать, виновата не косячная программа, а производитель микроконтроллера. Когда разбираешь подобные случаи, много интересного можно подчерпнуть. Обычно люди начинают не с поиска собственных ошибок, а с подозрений на производителя микроконтроллеров, дескать, это у них проблемы, а не у меня. И в приведенной выше книге как раз и сказано - вначале проверьте себя. Даже если вам кажется, что "этого просто не может быть", всё равно проверяйте, поскольку это уже случилось. Ну и на практике, получается, что грубо говоря, один случай на тыщщу, что проблема именно не в ваших багах. Изменено 8 сентября пользователем EdgeAligned Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 8 сентября Опубликовано 8 сентября · Жалоба 13 часов назад, Vladimir_T сказал: а вот связь по CAN обрывается, МК - ведомый. Вот поэтому я ошибочно считал и всех вас переполошил, будто МК зависает. Так может с кан-драйвера начать, в смысле микросхемы физического трансивера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 8 сентября Опубликовано 8 сентября · Жалоба 6 минут назад, mantech сказал: Так может с кан-драйвера начать, в смысле микросхемы физического трансивера? За свою практику понял, что подозревать дубовый CAN-драйвер - это последнее, что нужно делать, ибо он надежен как автомат. Я спросил ТС про настройки CAN в МК - молчит, видимо, уже все нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 8 сентября Опубликовано 8 сентября · Жалоба 7 минут назад, Arlleex сказал: подозревать дубовый CAN-драйвер - это последнее, что нужно делать С каном дел не имел, а вот 485е драйвера на холоде глючили... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 сентября Опубликовано 8 сентября · Жалоба Не знаю конкретно насчёт STM32F405, но в других МК обычно для CAN настраиваются различные заданные моменты внутри периода одного бита CAN. Которые программист может варьировать. Например поля SJW,TSEG1,TSEG2 в XMC4700: Почти точно такие же поля есть и у LPC17xx: Качать и читать мануал STM32F405 мне лень, но думаю - что-то аналогичное должно быть и в нём. Если есть, то возможно проблема в том, что какая-то из таких настроек находится на грани работоспособности. А в температуре уходит за эту грань. Можно попробовать покрутить её чуть-чуть в обе стороны и протестить в температуре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 8 сентября Опубликовано 8 сентября · Жалоба Можно ничего не качать. запустить куб и там сразу всё показывается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 8 сентября Опубликовано 8 сентября · Жалоба 18 минут назад, x893 сказал: Можно ничего не качать. запустить куб и там сразу всё показывается. Не стоит учить плохому. Плохому и сами научатся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 8 сентября Опубликовано 8 сентября · Жалоба 2 часа назад, x893 сказал: запустить куб и там сразу всё показывается. и программа сама делается, нужно только галочки ставить и Ок нажимать))))))))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 8 сентября Опубликовано 8 сентября · Жалоба 2 hours ago, jcxz said: Не стоит учить плохому. Плохому и сами научатся. Если в голове нет опилок - не научатся. Ни хорошему, ни плохому. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 10 сентября Опубликовано 10 сентября · Жалоба Уважаемые, коллеги, прошу меня не ругать, мне и так... Причина в самоуверенности. Пока не заглянул в регистры RCC. МК тактировался от внутреннего RC-генератора, на каком этапе это влепил... Потому замена кварца, от чем уже писал, была тщетной! Сейчас работает система великолепно во всем диапазоне температур, это такой концентратор для передачи данных с тензодатчиков. Настройки CAN довольно стандартные (приведу их завтра). Но для надежности, нужно обязательно обрабатывать ошибки приема-передачи: можно ли почитать об этом, из практического опыта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 187 10 сентября Опубликовано 10 сентября · Жалоба 18 минут назад, Vladimir_T сказал: Уважаемые, коллеги, прошу меня не ругать, мне и так... Причина в самоуверенности. Зато честно)) бывает, шо уж. Цитата Настройки CAN довольно стандартные (приведу их завтра). Но для надежности, нужно обязательно обрабатывать ошибки приема-передачи: можно ли почитать об этом, из практического опыта? Скорее всего, увидели бы, что счетчики ошибок передачи долетели до 255 и контроллер ушел в состояние BUS OFF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться