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

STM32F070: может ли 5V-толерантный вывод сгореть от 5 V ?

Здравствуйте!

 

Использую STM32F070CBT6 (питание 3.3 В) в связке с драйвером ST485BDR (питание 5 В).

Используется UART2.

Подключено:

RX (из драйвера) - PA15 (pin 38) - 5V- tolerant

RTS (в драйвер) - PA1 (pin 11)

TX (в драйвер) - PA2 (pin 12)

 

RX толерантен к 5В, RTS и TX - нет.

 

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

Проблема в том, что устройства залиты до уровня кирпича, и просто так разобрать и осциллографом ткнуть в нужную дорожку- практически невозможно. В одном добрался до разъема программирования, подключил дебаггер- процессор просто не видит ничего в регистре RX порта, будто сигнал не подключен. Остальная функциональность не нарушена.

 

Предполагаю, что RX пин (который 5В-толерантный и напрямую подключен к 5В) выгорел, возможно такое? Может, STM32 замечены в "неполной толерантности"?

 

У 32F070 заявлено, что на 5V-толерантный пин можно подавать на 4 В больше чем VDD. Теоретически у меня 5В возникает раньше чем 3.3, так как 3.3 делается из 5, задержка небольшая, но есть (думаю до единиц миллисекунд может дойти). То есть во время включения ражим нарушен, может это приводит к сбою во время работы?

 

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

 

Конечно, может и не STM32 у меня виноват, но уж больно красиво все совпадает. По возможности попробую добраться до пинов микроконтроллера, тогда бы понятней стало. А пока только ST-Link подключить могу и теоретизировать.

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


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

А сам ST485 сгореть не мог? Приемная с линии часть. Там, по-моему, больше шансов сдохнуть.

И, если микросхемы залиты - не перегреваются?

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


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

И, если микросхемы залиты - не перегреваются?

И еще не понятно чем и как залито - может просто механически отрывается/теряется контакт.

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


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

Если есть доступ через отладчик - то перевести ногу Rx в режим GPIO, растянуть входы 485 "наоборот", прочитать состояние ноги. Если не изменилось (а скорее всего так и будет) - перевести ногу в режим вывода, подергать ее через регистр вывода порта. Если "дерганье" отражается в регистр ввода - нога жива и обрыв где-то дальше.

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


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

Спасибо за идеи.

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

На данном этапе ни одну из версий не отбрасываю, просто решил спросить, нет ли у кого проблем с толерантностью входов у STM32F0, вдруг я что-то просто не дочитал в документации.

Так совпало, что перешли на новый компаунд в этом устройстве, и дизайн новый. Так что все может быть.

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

 

Если есть доступ через отладчик - то перевести ногу Rx в режим GPIO, растянуть входы 485 "наоборот", прочитать состояние ноги. Если не изменилось (а скорее всего так и будет) - перевести ногу в режим вывода, подергать ее через регистр вывода порта. Если "дерганье" отражается в регистр ввода - нога жива и обрыв где-то дальше.

спасибо, это могу. попробую завтра.

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


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

Если есть доступ через отладчик - то перевести ногу Rx в режим GPIO, растянуть входы 485 "наоборот", прочитать состояние ноги. Если не изменилось (а скорее всего так и будет) - перевести ногу в режим вывода, подергать ее через регистр вывода порта. Если "дерганье" отражается в регистр ввода - нога жива и обрыв где-то дальше.

Перевел под отладчиком ноги в GPIO, все оказалось именно так, как Вы и предположили:

1. При изменении сигнала RS485 этот пин RX ничего не видит (состояние регистра IDR не меняется)

2. При установке в output я вижу в регистре ввода (IDR) устанавливаемое мной (через регистр ODR) состояние пина

3. Дополнительно попробовал разрешить pull-up и pull-down на RX: регистр ввода корректно показывает 1 и 0, будто пин ни к чему не подключен. Причем это происходит при любом уровне на RTS. (на работающей плате, если RS485 драйвер на приеме, никакой pull не перетянет реальный сигнал от драйвера)

 

При этом передатчик работает, TX и RTS пины работают корректно.

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

 

 

В-общем, по всему получается, что прав ViKo : сдох приемник в драйвере ST485 и его "RO" вывод всегда в третьем состоянии. Ну или из-за злого компаунда или неровного монтажника оторвало ногу корпуса драйвера или МК от платы.

 

Большое спасибо всем за советы, по всему видно, что STM32 не виноват.

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


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

сдох приемник в драйвере ST485 и его "RO" вывод всегда в третьем состоянии
Или обрыв сигнала на пути к входу RE.

 

Когда расковыряете компаунд, отпишитесь о результатах - любопытно.

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


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

ST485 мрет хорошо, когда на его вход подается больше 16-22В даже кратковремено.

Что лего обеспечивается подключением на "горячую" на 24В технике при отсутствии его защиты.

SN65176 в этом плане более "дубовые", хоть и жрут много.

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


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

ST485 мрет хорошо, когда на его вход подается больше 16-22В даже кратковремено.

Что лего обеспечивается подключением на "горячую" на 24В технике при отсутствии его защиты.

SN65176 в этом плане более "дубовые", хоть и жрут много.

У меня установлены 12-вольтовые супрессоры (SMAJ12CA), и перед ним PTC Fuse от постоянно поданного напряжения, и еще газовые разрядники на входе.

Но да, все может быть.

Если расковыряю- скажу что там сгорело.

 

Про "мрет хорошо, когда на его вход подается больше 16-22В даже кратковремено" - не знал, спасибо, учту. 16 вольт могут и проскочить через 12-вольтовый супрессор, так что, получается, нужно на меньшие величины переходить. У него предельное по даташиту +/- 14V только.

 

а SN65176 да, дешевый и вроде бы проблем никогда не было, но вот жрет он шо дурной. Кстати, 12-вольтовые супрессоры с тех пор исторически и ставлю, но, видимо, уменьшать нужно.

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


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

У меня установлены 12-вольтовые супрессоры (SMAJ12CA), и перед ним PTC Fuse от постоянно поданного напряжения, и еще газовые разрядники на входе.

Но да, все может быть.

Хе, 12В? Да еще и 2-хнаправленный?

 

Не смущает, что у ST485 по ТТХ:

- 7 V to 12 V common mode input voltage range

?

 

И то, что у 12В супрессора

Breakdown Voltage MAX 14.7V

и

Maximum Clamping Voltage 19.9V

 

Ставить 6-ку надо (и лучше однонаправленную), чтобы без проблем.

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


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

Хе, 12В? Да еще и 2-хнаправленный?

....

Ставить 6-ку надо (и лучше однонаправленную), чтобы без проблем.

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

Upd: хотя да, и 6.8V тоже много ставил, но тут 12-вольтовый стоит.

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


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

расковырял, получил доступ к нижней стороне печатной платы.

Причина проблемы- обрыв дорожки.

Соединил дорожку- устройство заработало.

 

Причина обрыва- коррозия.

 

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

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

post-15025-1505299268_thumb.jpg

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

Разъело за какой-то месяц или два, и паяльная маска любой толщины тут мало поможет, разве что отдалит "день Х". Ну и, может быть, маска в этом месте была повреждена при монтаже (царапины, сколы...)

 

Как бороться- понятно, сначала все-таки лакировать нужно, и только потом заливать.

 

Ну и, конечно, это не отменяет установку не-12вольтных суппресоров, поменял на 5-вольтовые, которые под рукой были. Но в будущем буду ставить 7-вольтовые- у них ток утечки в 4 раза меньше, чем у 5-вольтовых.

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


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

Причина проблемы- обрыв дорожки.

нога жива и обрыв где-то дальше.

Угадал. Пойду за пирожком :)

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


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

Угадал. Пойду за пирожком :)

Пирожок мало. Нужно что-то посерьезнее. :)

 

 

Спасибо всем за помощь! STM32, как выяснилось, ни в чем не виноват. :)

 

И что любопытно- несколько устройств с таким же дефектом. Видимо, причина в том, что данная дорожка- с самого края платы, и до нее силы природы добрались раньше, чем до других. Но открывать другие коробки, чтоб проверить- желание есть, но время тратить жалко. Лучше тоже пирожок съем...

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


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

Невзирая на толерантности к 5V всяких ног, никогда не мешает влепить резистор компромиссной величины между источником 5V сигнала и ногой MCU. Кстати, RS-485. Есть у нас ряд устройств и большой опыт связки RS-485 приемопередатчиков и MCU. От слова DMX. Так вот, из опыта есть у меня жестокое подозрение, что всякие пики на шине, безобидные для самого RS-485 трансивера, как-то могут пролезать через него до процессора, в результате чего убивались ноги MCU, хотя трансивер даже не 5V, а 3V3 был. Начали ставить резистор, как предложено выше, с тех пор горя не знаем.

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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