|
STM32F070: может ли 5V-толерантный вывод сгореть от 5 V ?, Или у всех все ОК ? Или я еррату пропустил какую-то? |
|
|
|
Sep 11 2017, 15:46
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Здравствуйте!
Использую 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 подключить могу и теоретизировать.
|
|
|
|
|
 |
Ответов
|
Sep 12 2017, 08:42
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(Сергей Борщ @ Sep 11 2017, 22:32)  Если есть доступ через отладчик - то перевести ногу 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 не виноват.
|
|
|
|
|
Sep 12 2017, 09:27
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Ruslan1 @ Sep 12 2017, 11:42)  сдох приемник в драйвере ST485 и его "RO" вывод всегда в третьем состоянии Или обрыв сигнала на пути к входу RE. Когда расковыряете компаунд, отпишитесь о результатах - любопытно.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
Ruslan1 STM32F070: может ли 5V-толерантный вывод сгореть от 5 V ? Sep 11 2017, 15:46 ViKo А сам ST485 сгореть не мог? Приемная с линии часть... Sep 11 2017, 16:29 adnega Цитата(ViKo @ Sep 11 2017, 19:29) И, если... Sep 11 2017, 18:52  Ruslan1 Спасибо за идеи.
На компаунд и некачественный монт... Sep 11 2017, 20:42 Alechek ST485 мрет хорошо, когда на его вход подается боль... Sep 12 2017, 09:42 Ruslan1 Цитата(Alechek @ Sep 12 2017, 11:42) ST48... Sep 12 2017, 10:16  Alechek Цитата(Ruslan1 @ Sep 12 2017, 15:16) У ме... Sep 12 2017, 15:01   Ruslan1 Цитата(Alechek @ Sep 12 2017, 17:01) Хе, ... Sep 12 2017, 15:15    Ruslan1 расковырял, получил доступ к нижней стороне печатн... Sep 13 2017, 10:52 Сергей Борщ QUOTE (Ruslan1 @ Sep 13 2017, 13:52) Прич... Sep 13 2017, 12:39 Ruslan1 Цитата(Сергей Борщ @ Sep 13 2017, 14:39) ... Sep 13 2017, 13:15  KnightIgor Цитата(Ruslan1 @ Sep 13 2017, 14:15)
Нев... Sep 13 2017, 15:05   Ruslan1 Цитата(KnightIgor @ Sep 13 2017, 17:05) Н... Sep 13 2017, 16:28 V_G Может, не импульсы и не иголки, а банальные КЗ? На... Sep 13 2017, 22:35 Axel Цитата(V_G @ Sep 14 2017, 01:35) Может, н... Sep 14 2017, 04:03 uriy Есть же супрессоры специально для RS485 с ассиметр... Sep 14 2017, 05:01 vladec ЦитатаЕсть же супрессоры специально для RS485 с ас... Sep 14 2017, 07:56 Ruslan1 Цитата(vladec @ Sep 14 2017, 09:56) Еще, ... Sep 14 2017, 08:19 Alechek Цитата(vladec @ Sep 14 2017, 12:56) Еще, ... Sep 14 2017, 18:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|