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

Сгорел ли пин контроллера или нужно еще поковыряться в настройках

STM32H7

Все пины порта C настроены на выход, и на все пины подан меандр.

Вот осциллограмма со здорового пина

D0Vcxmey.png?download=1&name=%D0%A1%D0%B

 

А вот с проблемного пина - PC2

GC4wamct.png?download=1&name=%D0%A1%D0%B

 

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

 

Вот настройка


GPIO_InitTypeDef GPIO_InitStruct = {0};
	 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

 

 

Вот что видно в отладчике

VoaqDm8M.png?download=1&name=%D0%A1%D0%B

tkMCzCTj.png?download=1&name=%D0%A1%D0%B

 

ca5r0VJy.png?download=1&name=%D0%A1%D0%B

 

Как видно, в регистрах нормального пина PC0 и проблемного PC2 - все идентично (в остальных, не приведенных в скринах) все так же.

 

Резюмируя - нога отпаяна, посторонние влияния, коротыши, исключены.

С регистрами тоже все в порядке, никакой "жучок" их состояния не портит.

Вопрос - контроллер на выброс?   

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

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

 

 

P.S. - в настроенном на альтернативную функцию режиме ( ULPI_DIR) пин тоже не работает....

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

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


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

Разве что если не подали питание на одну из питающих ног, к которой привязан и этот -- но тогда подобное поведение будет у всей группы ног, подключённых к общему питанию (это не обязательно ноги одного порта). Но, скорей всего, нога таки убита (статикой, например -- у меня такое было, но с совершенно другим МК и лет 10 назад). Ну а на выброс или нет -- зависит от того, насколько дохлая нога реально нужна.

 

ADD. Если он с открытым стоком (OD вроде ж это означает?), то надо обеспечить подтяжку к питанию. Вы её сделали?

 

ADD2. А нет, OD -- это выходные данные, а не открытый сток, который явным образом нигде, похоже, не задаётся...

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


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

PC2  - имеет особенность не знаю за все но  для STM32H750    I/O structure _  FT_a  таб.7 DS12556 Rev 4


Direct channels are connected to analog I/Os (PA0_C, PA1_C, PC2_C and PC3_C) to optimize ADC performance.

Посмотрите RM0433 Rev 6     10.3.13 Analog configuration  почитайте может причина в этом

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


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

24 minutes ago, Vasil_Riabko said:

PC2  - имеет особенность не знаю за все но  для STM32H750    I/O structure _  FT_a  таб.7 DS12556 Rev 4


Direct channels are connected to analog I/Os (PA0_C, PA1_C, PC2_C and PC3_C) to optimize ADC performance.

Посмотрите RM0433 Rev 6     10.3.13 Analog configuration  почитайте может причина в этом

Да я уже в общем то контроллер сдула. 

Новый не напаяла но вы меня так пугаете. Перспективой переделывать плату. 

Это намёк на что? На то, что нога железно присоединена к АЦП?  И настройками это не вырубить? Вряд ли - у этой ноги есть альтернативная функция - ULPI_DIR,  она есть только на этой ноге, стало быть как то это можно отключать. 

Но я АЦП не использую. Так что вряд-ли причина в этом. К тому же на другой плате я уже использовала USB HS на данном контроллере и именно эту ногу, проблем не было. 

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


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

Было бы смешно, если бы не было так грустно... 

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

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

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

Скорее всего проблема первично локализовалась в USB3300, а попытка включить все ноги в режим меандр выжигала одну из ног. 

Лезу в даташит. Из даташит узнаю, что линия DIR оказывается дёргается не контроллером, а микросхемой USB3300, то есть, она является мастером, а не STM.

А  вход DIR у Stm32 является именно входом 

 

Отсюда вопрос - мог ли, исходя из особенностей схемотехники портов ввода-вывода, подобный конфликт убить ногу контроллера? Иными словами, если есть две микросхемы, обе ноги которых расстроены на выход, то возможен ли выход из строя одной из них, если на этих выводах появятся разноименные сигналы? 

Насколько я знаю, ногу Stm32 можно припаять к земле и подать на неё логическую 1, при этом с ней ничего не случится...

Что скажете? К сожалению, в даташите на USB3300  нет ничего про схемотехнику линий управления...

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


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

19 minutes ago, murmur said:

Отсюда вопрос - мог ли, исходя из особенностей схемотехники портов ввода-вывода, подобный конфликт убить ногу контроллера?

Едва ли: гарантированную смерть драйвера вызывает подача напряжения выше VCC, но не конфликт.

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


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

44 minutes ago, murmur said:

Отсюда вопрос - мог ли, исходя из особенностей схемотехники портов ввода-вывода, подобный конфликт убить ногу контроллера? Иными словами, если есть две микросхемы, обе ноги которых расстроены на выход, то возможен ли выход из строя одной из них, если на этих выводах появятся разноименные сигналы?

Ну, классические ТТЛ-микросхемы в таких случаях дохли, из-за чего там и нельзя было параллелить выходы (если они не с открытым коллектором). С КМОПами, по идее, тоже будет проблема: если один из транзисторов включает питание, а второй -- землю, потечёт большой ток, ограниченный только сопротивлением открытых транзисторов (оно очень небольшое) и сопротивлением дорожки, ног и т.п. проводников (которое вообще можно считать практически нулевым). Так что, вполне вероятно, Ваша проблема именно отсюда и проистекает...

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


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

Насколько я знаю, ногу Stm32 можно припаять к земле и подать на неё логическую 1, при этом с ней ничего не случится...


Сотрите, здесь и начинающие ведь бывают...
Никогда так не делайте! Push-pull-выход на землю "накоротко" - над вами чёрно пошутили.

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


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

Вот ведь как... Все было дело в неисправной  USB3300. Поменяла её, поменяла Stm32, все заработало, осциллограммы в норме, инициализация usb проходит, класс MSC регистрируется. 

8 hours ago, Obam said:

Сотрите, здесь и начинающие ведь бывают...

Маленькие дети! 

Ни за что на свете! 

Не подключайте, дети,  push pull к земле... 

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


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

11 часов назад, murmur сказал:

Иными словами, если есть две микросхемы, обе ноги которых расстроены на выход, то возможен ли выход из строя одной из них, если на этих выводах появятся разноименные сигналы? 

У вас теперь есть целых два полуживых контроллера с целой кучей еще живых ног. Замкните две любых ноги, подайте противофазные меандры, повторите с другими ногами, наберите статистику. Потом расскажете нам - нам тоже интересно, а лишних H750 нету. :biggrin:

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


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

3 hours ago, Сергей Борщ said:

Замкните две любых ноги, подайте противофазные меандры,

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

В моей ситуации было 2 особенности

1. Вторая микросхема была "чужеродна".

2. Вторая микросхема к тому же была и неисправна. У нее есть еще ноги, которые только на выход, почему у контроллера перегорела в обоих случаях именно DIR

 

3 hours ago, x893 said:

Всего то одна ногп отвалилась.

Вот именно. У меня есть куда воткнуть оба контроллера, ну подумаешь, USB нельзя использовать.

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


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

15 часов назад, SII сказал:

Ну, классические ТТЛ-микросхемы в таких случаях дохли,

Уж да ладно ? От менее 30 mA ?

13 часов назад, Obam сказал:


Никогда так не делайте! Push-pull-выход на землю "накоротко" - над вами чёрно пошутили.

Дубовые 5-вольтовые (PIC, AVR) такое выдерживают, хоть ток у драйвера будет солидный. Долго ли - не проверял. STM32 нежнее - может быть и в самом деле убивает ?

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


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

34 минуты назад, murmur сказал:

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

Почему вы так считаете? "Противофазный меандр" означает, что когда на одной ноге ноль - на второй единица и наоборот. Если они такие нежные, что вылетают от внешней микросхемы, постоянно выдающей один уровень - то уж от такой встряски одна из ног точно поломается, а именно это мы и хотим узнать.

41 минуту назад, murmur сказал:

ну подумаешь, USB нельзя использовать

А там нет встроенного FS-трансивера как у младших моделей? Не всегда же необходим HS. Или его нога тоже на этом выводе?

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


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

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

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

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

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

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

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

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

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

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