реклама на сайте
подробности

 
 
> STM32F070: может ли 5V-толерантный вывод сгореть от 5 V ?, Или у всех все ОК ? Или я еррату пропустил какую-то?
Ruslan1
сообщение Sep 11 2017, 15:46
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 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 подключить могу и теоретизировать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Sep 11 2017, 20:32
Сообщение #2


Гуру
******

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



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Sep 12 2017, 08:42
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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 не виноват.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 12 2017, 09:27
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 12:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016