Ruslan1 17 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба Здравствуйте! Использую 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 подключить могу и теоретизировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба А сам ST485 сгореть не мог? Приемная с линии часть. Там, по-моему, больше шансов сдохнуть. И, если микросхемы залиты - не перегреваются? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба И, если микросхемы залиты - не перегреваются? И еще не понятно чем и как залито - может просто механически отрывается/теряется контакт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба Если есть доступ через отладчик - то перевести ногу Rx в режим GPIO, растянуть входы 485 "наоборот", прочитать состояние ноги. Если не изменилось (а скорее всего так и будет) - перевести ногу в режим вывода, подергать ее через регистр вывода порта. Если "дерганье" отражается в регистр ввода - нога жива и обрыв где-то дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба Спасибо за идеи. На компаунд и некачественный монтаж подумали в первую очередь. Озадачило однообразие проблемы- неполадки в монтаже бы более разнообразно проявились. На данном этапе ни одну из версий не отбрасываю, просто решил спросить, нет ли у кого проблем с толерантностью входов у STM32F0, вдруг я что-то просто не дочитал в документации. Так совпало, что перешли на новый компаунд в этом устройстве, и дизайн новый. Так что все может быть. Пока что да, в замене другой компаунд зальем, более проверенный временем. Ну и предусмотрю больше возможностей как расковырять в случае чего. Если есть доступ через отладчик - то перевести ногу Rx в режим GPIO, растянуть входы 485 "наоборот", прочитать состояние ноги. Если не изменилось (а скорее всего так и будет) - перевести ногу в режим вывода, подергать ее через регистр вывода порта. Если "дерганье" отражается в регистр ввода - нога жива и обрыв где-то дальше. спасибо, это могу. попробую завтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 12 сентября, 2017 Опубликовано 12 сентября, 2017 · Жалоба Если есть доступ через отладчик - то перевести ногу 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 не виноват. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 12 сентября, 2017 Опубликовано 12 сентября, 2017 · Жалоба сдох приемник в драйвере ST485 и его "RO" вывод всегда в третьем состоянииИли обрыв сигнала на пути к входу RE. Когда расковыряете компаунд, отпишитесь о результатах - любопытно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 12 сентября, 2017 Опубликовано 12 сентября, 2017 · Жалоба ST485 мрет хорошо, когда на его вход подается больше 16-22В даже кратковремено. Что лего обеспечивается подключением на "горячую" на 24В технике при отсутствии его защиты. SN65176 в этом плане более "дубовые", хоть и жрут много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 12 сентября, 2017 Опубликовано 12 сентября, 2017 · Жалоба ST485 мрет хорошо, когда на его вход подается больше 16-22В даже кратковремено. Что лего обеспечивается подключением на "горячую" на 24В технике при отсутствии его защиты. SN65176 в этом плане более "дубовые", хоть и жрут много. У меня установлены 12-вольтовые супрессоры (SMAJ12CA), и перед ним PTC Fuse от постоянно поданного напряжения, и еще газовые разрядники на входе. Но да, все может быть. Если расковыряю- скажу что там сгорело. Про "мрет хорошо, когда на его вход подается больше 16-22В даже кратковремено" - не знал, спасибо, учту. 16 вольт могут и проскочить через 12-вольтовый супрессор, так что, получается, нужно на меньшие величины переходить. У него предельное по даташиту +/- 14V только. а SN65176 да, дешевый и вроде бы проблем никогда не было, но вот жрет он шо дурной. Кстати, 12-вольтовые супрессоры с тех пор исторически и ставлю, но, видимо, уменьшать нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 12 сентября, 2017 Опубликовано 12 сентября, 2017 · Жалоба У меня установлены 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-ку надо (и лучше однонаправленную), чтобы без проблем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 12 сентября, 2017 Опубликовано 12 сентября, 2017 · Жалоба Хе, 12В? Да еще и 2-хнаправленный? .... Ставить 6-ку надо (и лучше однонаправленную), чтобы без проблем. да-да. Согласен. Уши растут из старых конструкций, а сейчас да, все что больше пяти вольт- можно нужно отрезать. Upd: хотя да, и 6.8V тоже много ставил, но тут 12-вольтовый стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 13 сентября, 2017 Опубликовано 13 сентября, 2017 · Жалоба расковырял, получил доступ к нижней стороне печатной платы. Причина проблемы- обрыв дорожки. Соединил дорожку- устройство заработало. Причина обрыва- коррозия. Вот фотка, качество не айс, делал мобильником через окуляр микроскопа. Видно, что и другим дорожкам в этой области досталось. Причем именно локально проявилось, в основном плата выглядит красиво даже в микроскоп. Причина коррозии- блок плат снизу закрыт изолирующей платой. Эта плата была прижата к основной так сильно, что компаунд, которым блок заливается после помещения в металлический корпус, не проник между смонтированной платой и изолирующей платой. В результате плата снизу оказалась полностью не защищена, и пофиг что снаружи все выглядит как цельнозалитый кирпич с проводами. Заливали не в вакууме, вероятность конденсата есть. Разъело за какой-то месяц или два, и паяльная маска любой толщины тут мало поможет, разве что отдалит "день Х". Ну и, может быть, маска в этом месте была повреждена при монтаже (царапины, сколы...) Как бороться- понятно, сначала все-таки лакировать нужно, и только потом заливать. Ну и, конечно, это не отменяет установку не-12вольтных суппресоров, поменял на 5-вольтовые, которые под рукой были. Но в будущем буду ставить 7-вольтовые- у них ток утечки в 4 раза меньше, чем у 5-вольтовых. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 13 сентября, 2017 Опубликовано 13 сентября, 2017 · Жалоба Причина проблемы- обрыв дорожки. нога жива и обрыв где-то дальше. Угадал. Пойду за пирожком :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 13 сентября, 2017 Опубликовано 13 сентября, 2017 · Жалоба Угадал. Пойду за пирожком :) Пирожок мало. Нужно что-то посерьезнее. :) Спасибо всем за помощь! STM32, как выяснилось, ни в чем не виноват. :) И что любопытно- несколько устройств с таким же дефектом. Видимо, причина в том, что данная дорожка- с самого края платы, и до нее силы природы добрались раньше, чем до других. Но открывать другие коробки, чтоб проверить- желание есть, но время тратить жалко. Лучше тоже пирожок съем... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 13 сентября, 2017 Опубликовано 13 сентября, 2017 (изменено) · Жалоба Невзирая на толерантности к 5V всяких ног, никогда не мешает влепить резистор компромиссной величины между источником 5V сигнала и ногой MCU. Кстати, RS-485. Есть у нас ряд устройств и большой опыт связки RS-485 приемопередатчиков и MCU. От слова DMX. Так вот, из опыта есть у меня жестокое подозрение, что всякие пики на шине, безобидные для самого RS-485 трансивера, как-то могут пролезать через него до процессора, в результате чего убивались ноги MCU, хотя трансивер даже не 5V, а 3V3 был. Начали ставить резистор, как предложено выше, с тех пор горя не знаем. Изменено 13 сентября, 2017 пользователем KnightIgor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться