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

1 минуту назад, Vladimir_T сказал:

Благодарю всех за толковые советы.

На плате плате установил мигающий светодиод, который управляется из основного программного цикла. Увидел, что МК работает на -50, а вот связь по CAN обрывается, МК - ведомый. Вот поэтому я ошибочно считал и всех вас переполошил, будто МК зависает. А перед тем, как связь терялась шли пакеты с ошибками, потому я считал, что данные портятся в ОЗУ. 

Кварц 16 МГц для задающего генератора уже менял, может он "плывет"?!  Буду разбираться с системой тактирования CAN, чтобы понять почему набегает рассинхронизация приема.

Покажите настройки BTR CAN и какова битовая скорость?

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


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

Позволю себе процитировать одну известную и давнюю книгу от мэтров программирования: (извиняюсь, пдф-ка без распознавания текста, только в виде картинок)

 

1.jpg

Снимок экрана 2024-09-08 002828.jpg

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


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

Позволю себе процитировать одну известную и давнюю книгу от мэтров программирования
Автор. Название. Издательство. Год издания.

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


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

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

Иногда, ценой бага является человеческа жизнь. "Не паникуй!".

И да - зачастую "в поле" хотя бы переместить баг в другое место проявления, не мешающий в данных конкретных условиях работе, чтобы потом уже в лаборатории спокойно разобраться - куда лучше для себя же (своих нервов, здоровья), чем руководствоваться принципом "спокойно, надо найти причину". Сидя в промерзшей степи.

Я не спорю, что из отладочных поисков багов даже в степи нужно извлечь максимальную выгоду, но не до маразма. В поле нам "не очень комфортно", поэтому это стресс, а стресс не благоприятствует рациональному и методичному поиску багов. Чего бы там не писали умные книжки.

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


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

Дэвид Томас, Эндрю Хант, "Программист-прагматик". Да, книга содержит довольно много философских понятий и написана она около 20 лет назад и не для сферы эмбедда. Я, когда раньше её читал, тоже плевался и не мог понять, че за фигня. Однако, когда перечитываешь её несколько раз, начинаешь понимать, в чем же суть. А оказывается, довольно много правильного. 

Фраза "не паникуй" применяется к процессу отладки, а не к тому, что вы забили на отладку и выпустили косячный продукт, который где-то посреди поля грозит жизням людей. 
Да нет, на самом деле, перечитайте книгу несколько раз, и станет понятно.

---
В частности, в рассматриваемой проблеме топикстартера, если бы он перед натурными испытаниями на вход алгоритма вычисления температуры он подал данные, соотсветствующие принятым из датчика, то есть просто сэмулировал поведение датчика, то обошлось бы без заморозки всего прибора в термокамере. Хотя, топикстартер еще вовремя обнаружил проблему, протестировав прибор в термокамере, а не сразу отдал в поле, где при -25 зимой он бы заглючил. То есть, ТС успел вскочить в последний вагон уходящего поезда, образно выражаясь.

Тут на форуме около года назад была тема, где разработчик сообщал, что готовые и выпущенные в эксплуатацию приборы начали неожиданно возвращаться по рекламации с неисправностью "полный кирпич". Это как раз тот случай, когда тестирование провели неполное, пропустили баг, который при определенных обстоятельствах окирпичивал всё устройство. И тот разработчик точно так же начал искать неисправность совсем в другом месте - дескать, виновата не косячная программа, а производитель микроконтроллера.

Когда разбираешь подобные случаи, много интересного можно подчерпнуть. Обычно люди начинают не с поиска собственных ошибок, а с подозрений на производителя микроконтроллеров, дескать, это у них проблемы, а не у меня. 
И в приведенной выше книге как раз и сказано - вначале проверьте себя. Даже если вам кажется, что "этого просто не может быть", всё равно проверяйте, поскольку это уже случилось.
Ну и на практике, получается, что грубо говоря, один случай на тыщщу, что проблема именно не в ваших багах.
 

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

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


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

13 часов назад, Vladimir_T сказал:

а вот связь по CAN обрывается, МК - ведомый. Вот поэтому я ошибочно считал и всех вас переполошил, будто МК зависает.

Так может с кан-драйвера начать, в смысле микросхемы физического трансивера?

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


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

6 минут назад, mantech сказал:

Так может с кан-драйвера начать, в смысле микросхемы физического трансивера?

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

Я спросил ТС про настройки CAN в МК - молчит, видимо, уже все нашел.

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


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

7 минут назад, Arlleex сказал:

подозревать дубовый CAN-драйвер - это последнее, что нужно делать

С каном дел не имел, а вот 485е драйвера на холоде глючили...

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


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

Не знаю конкретно насчёт STM32F405, но в других МК обычно для CAN настраиваются различные заданные моменты внутри периода одного бита CAN. Которые программист может варьировать.

Например поля SJW,TSEG1,TSEG2 в XMC4700:

image.thumb.png.8573a880ef9e944da9d272d72f247388.png

Почти точно такие же поля есть и у LPC17xx:

image.thumb.png.9d45c9cf86e2c6abb22936281f72e750.png

Качать и читать мануал STM32F405 мне лень, но думаю - что-то аналогичное должно быть и в нём. Если есть, то возможно проблема в том, что какая-то из таких настроек находится на грани работоспособности. А в температуре уходит за эту грань. Можно попробовать покрутить её чуть-чуть в обе стороны и протестить в температуре.

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


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

Можно ничего не качать. запустить куб и там сразу всё показывается.

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


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

18 минут назад, x893 сказал:

Можно ничего не качать. запустить куб и там сразу всё показывается.

Не стоит учить плохому. Плохому и сами научатся.  :wink:

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


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

2 часа назад, x893 сказал:

запустить куб и там сразу всё показывается.

и программа сама делается, нужно только галочки ставить и Ок нажимать)))))))))

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


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

2 hours ago, jcxz said:

Не стоит учить плохому. Плохому и сами научатся. 

Если в голове нет опилок - не научатся. Ни хорошему, ни плохому.

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


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

Уважаемые, коллеги, прошу меня не ругать, мне и так... Причина  в самоуверенности. Пока не заглянул в регистры RCC. МК тактировался от внутреннего RC-генератора, на каком этапе это влепил... Потому замена кварца, от чем уже писал, была тщетной! Сейчас работает система великолепно во всем диапазоне температур, это такой концентратор для передачи данных с тензодатчиков. 

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

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


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

18 минут назад, Vladimir_T сказал:

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

Зато честно)) бывает, шо уж.

 

Цитата

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

Скорее всего, увидели бы, что счетчики ошибок передачи долетели до 255 и контроллер ушел в состояние BUS OFF.

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


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

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

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

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

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

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

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

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

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

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