Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сбои в работе UART на чипе F2618
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Pavel V.
На днях столкнулся со странной неисправностью.

Дано: 4 одинаковых платы на контроллере MSP430F2618. Плата подключается к компьютеру через COM-порт, в качестве преобразователя уровней на плате установлена MAX3232. Прошивка везде одинаковая, компьютер и софт тоже одни и те же.

3 платы работают без вопросов, одна же вытворяет чудеса. А конкретно - через какое-то время она перестает отвечать по UART.
Модуль UART тактируется от SMCLK (ВЧ кварц на 11.0592 МГц).

При первых разборках оказалось, что срывается генерация на ВЧ кварце, пробовал менять кварц - не помогает.

Тогда переделал прошивку на работу от DCO, который калибруется по НЧ генератору на часовом кварце. Первый запуск - полет нормальный, UART работает. Прошло пару часов.. Такая же хрень! Процессор перестал отвечать.

Причем, ни ресет, ни полное обесточивание платы работоспособность не восстанавливают (перепрошивка тоже). Для того, чтобы она заработала, необходимо было обесточить плату на несколько минут! Никаких больших емкостей на плате нет, нагреваться тоже нечему.

Загнать процессор в этот зависон удавалось многократно в течение дня, в том числе под отладчиком. При дебаге выяснилось, что в таком состоянии, прерывание по приему байта происходит, однако, принимается мусор (0xFF).

Но и это еще не все, я взял сбойную плату на выходные домой. На текущий момент она отработала уже 8 часов, но ситуация пока не повторяется..

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

Осциллографа, к сожалению, нет. Хотя он бы мне очень помог..
rezident
Для начала нужно выяснить, аппаратные это проблемы или программные?
В части аппаратных возникают вопросы. Какова помеховая обстановка в месте эксплуатации? От какого источника питается устройство? Внешний супервизор питания имеется или SVS используете? MAX3232 менять не пробовали? Фото платы или рисунок трассировки есть?
В части программных. Реализована ли обработка сбоя кварца (обработчик по вектору NMI) или проблему с генератором только купировали, а не ликвидировали? При ошибке делается полная реинициализация (всех регистров) USCI или только подстройка DCO? Не пробовали урезать программу, исключив все лишнее, кроме функциональных модулей обмена через UART и получить такой же результат "зависона"?
Pavel V.
Цитата(rezident @ Oct 16 2010, 18:14) *
Для начала нужно выяснить, аппаратные это проблемы или программные?

Вот это и не понятно пока. Смущает то, что проблема проявляется только на одном приборе из четырех при одинаковых условиях. А сейчас вообще перестала проявляться sad.gif

Цитата
В части аппаратных возникают вопросы. Какова помеховая обстановка в месте эксплуатации? От какого источника питается устройство?

Место эксплуатации пока на столе, питание от лабораторного источника. Пробовал как напрямую запитывать процессор (от 3.3В), так и через штатный преобразователь, установленный в приборе. Проблемы удавалось наблюдать в обоих случаях.

Цитата
Внешний супервизор питания имеется или SVS используете?

Внешний супервизор имеется.

Цитата
MAX3232 менять не пробовали? Фото платы или рисунок трассировки есть?

MAX пока менять не пробовал. Фото платы я тут выкладывал в одной теме: http://electronix.ru/forum/index.php?showt...st&p=765314

Цитата
В части программных. Реализована ли обработка сбоя кварца (обработчик по вектору NMI) или проблему с генератором только купировали, а не ликвидировали?

Пока работал от ВЧ кварца, обработчик сбоя кварца присутствовал, после того как перешел на DCO, убрал его.

Цитата
При ошибке делается полная реинициализация (всех регистров) USCI или только подстройка DCO? Не пробовали урезать программу, исключив все лишнее, кроме функциональных модулей обмена через UART и получить такой же результат "зависона"?

Реинициализацию при сбое не делал (не помогало даже физическое отключение питания, вряд ли дело в этом). Насчет урезания функциональности хорошая идея, обязательно попробую как только удастся воспроизвести проблему.

Я больше склоняюсь к версии, что это аппаратная проблема, если бы программная, то наверняка помогал бы ресет.

rezident
Цитата(Pavel V. @ Oct 16 2010, 20:35) *
Фото платы я тут выкладывал в одной теме: http://electronix.ru/forum/index.php?showt...st&p=765314

Мда. На мой взгляд кварцы излишне далеко вынесены от кристалла, да еще и (хотя и выделенный, но) на излишне большой полигон подключены. Поэтому сбои их вполне объяснимы. Сплошная заливка всей платы земляным полигоном не очень разумная идея. Нужно было выделить "грязную" землю возле разъемов. MAX3232 вынесен к разъему, вместо того, чтобы поставить его ближе к кристаллу и тянуть к разъему по плате уже линии RS232. Вполне допускаю, что совокупность недостатков трассировки привела к проявлению их только в одном устройстве.
Pavel V.
Цитата(rezident @ Oct 16 2010, 19:29) *
Мда. На мой взгляд кварцы излишне далеко вынесены от кристалла, да еще и (хотя и выделенный, но) на излишне большой полигон подключены. Поэтому сбои их вполне объяснимы. Сплошная заливка всей платы земляным полигоном не очень разумная идея. Нужно было выделить "грязную" землю возле разъемов. MAX3232 вынесен к разъему, вместо того, чтобы поставить его ближе к кристаллу и тянуть к разъему по плате уже линии RS232. Вполне допускаю, что совокупность недостатков трассировки привела к проявлению их только в одном устройстве.

Согласен, что разводка не идеальная, но не до такой же степени, чтобы в тепличных условиях давать сбои.. Скорость UART 19200 бит/с - у меня даже на макетке с беспорядочной кучей проводов все работало нормально.

До сих пор так и не смог воспроизвести дома этот сбой - проблема как будто испарилась. Грешу или на MAX3232 или на сам процессор. Если дома не получится, отнесу опять на работу, может быть именно там есть условия необходимые для возникновения проблемы.

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

А у Вас ФЛЛ в чипе разве нету? С ней и калибровка не нужна, она сама калибратором является.
Pavel V.
Цитата(jorikdima @ Oct 18 2010, 12:30) *
А у Вас ФЛЛ в чипе разве нету? С ней и калибровка не нужна, она сама калибратором является.

Нет, к сожалению, FLL нет. Насколько я знаю, это только в серии 4х.

ПС
Сбои полностью прекратились, я так и не понял причины, что меня очень огорчает.
MrYuran
Цитата(Pavel V. @ Oct 18 2010, 12:51) *
Сбои полностью прекратились,

Нет, они затаились до следующего раза
Pavel V.
Цитата(MrYuran @ Oct 18 2010, 15:28) *
Нет, они затаились до следующего раза

Скорее всего да sad.gif В любом случае, пока проблема снова не возникнет, понять причину будет невозможно. В следующей партии устройств постараюсь оптимизировать печатную плату.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.