|
|
  |
Сбои в работе UART на чипе F2618 |
|
|
|
Oct 16 2010, 14:02
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742

|
На днях столкнулся со странной неисправностью.
Дано: 4 одинаковых платы на контроллере MSP430F2618. Плата подключается к компьютеру через COM-порт, в качестве преобразователя уровней на плате установлена MAX3232. Прошивка везде одинаковая, компьютер и софт тоже одни и те же.
3 платы работают без вопросов, одна же вытворяет чудеса. А конкретно - через какое-то время она перестает отвечать по UART. Модуль UART тактируется от SMCLK (ВЧ кварц на 11.0592 МГц).
При первых разборках оказалось, что срывается генерация на ВЧ кварце, пробовал менять кварц - не помогает.
Тогда переделал прошивку на работу от DCO, который калибруется по НЧ генератору на часовом кварце. Первый запуск - полет нормальный, UART работает. Прошло пару часов.. Такая же хрень! Процессор перестал отвечать.
Причем, ни ресет, ни полное обесточивание платы работоспособность не восстанавливают (перепрошивка тоже). Для того, чтобы она заработала, необходимо было обесточить плату на несколько минут! Никаких больших емкостей на плате нет, нагреваться тоже нечему.
Загнать процессор в этот зависон удавалось многократно в течение дня, в том числе под отладчиком. При дебаге выяснилось, что в таком состоянии, прерывание по приему байта происходит, однако, принимается мусор (0xFF).
Но и это еще не все, я взял сбойную плату на выходные домой. На текущий момент она отработала уже 8 часов, но ситуация пока не повторяется..
Уже не знаю что делать, прибор ответственный, зависание должно быть исключено. Монтаж качественный - паял сам и очень аккуратно.
Осциллографа, к сожалению, нет. Хотя он бы мне очень помог..
--------------------
Good News Everyone!
|
|
|
|
|
Oct 16 2010, 14:35
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742

|
Цитата(rezident @ Oct 16 2010, 18:14)  Для начала нужно выяснить, аппаратные это проблемы или программные? Вот это и не понятно пока. Смущает то, что проблема проявляется только на одном приборе из четырех при одинаковых условиях. А сейчас вообще перестала проявляться  Цитата В части аппаратных возникают вопросы. Какова помеховая обстановка в месте эксплуатации? От какого источника питается устройство? Место эксплуатации пока на столе, питание от лабораторного источника. Пробовал как напрямую запитывать процессор (от 3.3В), так и через штатный преобразователь, установленный в приборе. Проблемы удавалось наблюдать в обоих случаях. Цитата Внешний супервизор питания имеется или SVS используете? Внешний супервизор имеется. Цитата MAX3232 менять не пробовали? Фото платы или рисунок трассировки есть? MAX пока менять не пробовал. Фото платы я тут выкладывал в одной теме: http://electronix.ru/forum/index.php?showt...st&p=765314Цитата В части программных. Реализована ли обработка сбоя кварца (обработчик по вектору NMI) или проблему с генератором только купировали, а не ликвидировали? Пока работал от ВЧ кварца, обработчик сбоя кварца присутствовал, после того как перешел на DCO, убрал его. Цитата При ошибке делается полная реинициализация (всех регистров) USCI или только подстройка DCO? Не пробовали урезать программу, исключив все лишнее, кроме функциональных модулей обмена через UART и получить такой же результат "зависона"? Реинициализацию при сбое не делал (не помогало даже физическое отключение питания, вряд ли дело в этом). Насчет урезания функциональности хорошая идея, обязательно попробую как только удастся воспроизвести проблему. Я больше склоняюсь к версии, что это аппаратная проблема, если бы программная, то наверняка помогал бы ресет.
--------------------
Good News Everyone!
|
|
|
|
|
Oct 16 2010, 17:02
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742

|
Цитата(rezident @ Oct 16 2010, 19:29)  Мда. На мой взгляд кварцы излишне далеко вынесены от кристалла, да еще и (хотя и выделенный, но) на излишне большой полигон подключены. Поэтому сбои их вполне объяснимы. Сплошная заливка всей платы земляным полигоном не очень разумная идея. Нужно было выделить "грязную" землю возле разъемов. MAX3232 вынесен к разъему, вместо того, чтобы поставить его ближе к кристаллу и тянуть к разъему по плате уже линии RS232. Вполне допускаю, что совокупность недостатков трассировки привела к проявлению их только в одном устройстве. Согласен, что разводка не идеальная, но не до такой же степени, чтобы в тепличных условиях давать сбои.. Скорость UART 19200 бит/с - у меня даже на макетке с беспорядочной кучей проводов все работало нормально. До сих пор так и не смог воспроизвести дома этот сбой - проблема как будто испарилась. Грешу или на MAX3232 или на сам процессор. Если дома не получится, отнесу опять на работу, может быть именно там есть условия необходимые для возникновения проблемы. Хотел еще у Вас спросить, как часто необходимо производить перекалибровку DCO от часового кварца? Нет ли у Вас примера реализации такой схемы работы? (Я использовал пример от TI, запускаю калибровку один раз при старте). Нужно ли в этом случае как-то обрабатывать сбои генератора, и как это правильно сделать?
--------------------
Good News Everyone!
|
|
|
|
|
Oct 16 2010, 18:01
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Pavel V. @ Oct 16 2010, 23:02)  Если дома не получится, отнесу опять на работу, может быть именно там есть условия необходимые для возникновения проблемы. БП от которого питаете на работе тот же самый? Компьютер заземлен? Не может ли быть это результатом воздействия синфазной помехи через БП? Цитата(Pavel V. @ Oct 16 2010, 23:02)  Хотел еще у Вас спросить, как часто необходимо производить перекалибровку DCO от часового кварца? Универсального ответа нет. Переклибровку нужно производить тогда, когда это требуется  Для вашего случая подстройку DCO обычно делают при старте и запускают перекалбровку при возникновении многочисленных ошибок по связи и/или при значительном изменении температуры или напряжения питания. Цитата(Pavel V. @ Oct 16 2010, 23:02)  Нужно ли в этом случае как-то обрабатывать сбои генератора, и как это правильно сделать? Считаю, что обрабатывать ошибки нужно в любом случае. Даже если они не ведут к катастрофичным последствиям можно использовать статистику сбоев. Как правильно это сделать, указано в примерах TI. Я лично оформляю обработчик по вектору NMI, также как в примерах.
|
|
|
|
|
Oct 18 2010, 08:51
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742

|
Цитата(jorikdima @ Oct 18 2010, 12:30)  А у Вас ФЛЛ в чипе разве нету? С ней и калибровка не нужна, она сама калибратором является. Нет, к сожалению, FLL нет. Насколько я знаю, это только в серии 4х. ПС Сбои полностью прекратились, я так и не понял причины, что меня очень огорчает.
--------------------
Good News Everyone!
|
|
|
|
|
Oct 19 2010, 17:38
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742

|
Цитата(MrYuran @ Oct 18 2010, 15:28)  Нет, они затаились до следующего раза Скорее всего да  В любом случае, пока проблема снова не возникнет, понять причину будет невозможно. В следующей партии устройств постараюсь оптимизировать печатную плату.
--------------------
Good News Everyone!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|