Электромагнитные наводки и преобразователь логических уровней

b707
Offline
Зарегистрирован: 26.05.2017

Продолжение проблемы, что я затронул в теме про "кривые руки".

Предисловие - управляю RGB матрицами на СТМ32. Матрицы на 5в, стм - 3.3в. Некоторые матрицы заводятся от 3.3в, другим требуется преобразователь. Сигнал (16 линий) передается по ленточным кабелям, которые соединяются разъемами с интерфейсом HUB75:

преобразователь уровня собрал на двух 8-миканальных чипах TXS0108E. Пины с левой половины разъема HUB75 заведены на один чип, с правой - на другой.

Вот как выглядит чистый сигнал

а вот так - после преобразователя

насколько я понимаю, пачки выбросов на линиях LAT, OE и A - это наводки от сигнала CLK. Но ведь сигналы CLK и LAT идут через две разные микрсхемы конвертеров уровня?! - значит это наводки еще в кабеле? (линии LAT CLK в ленточном кабеле - соседние, OE и A - тоже рядом). Но почему тогда в чистом сигнале, который я снимаю с этого же кабеля, этих наводок нет?

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

Вопрос - прав ли в своих предположениях и, главное, можно ли эти наводки как-то устранить?

 

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

Green
Offline
Зарегистрирован: 01.10.2015

На приёмном конце нужно иметь сопротивление. Какое? Длина кабелей какая?

b707
Offline
Зарегистрирован: 26.05.2017

Green пишет:

На приёмном конце нужно иметь сопротивление. Какое? Длина кабелей какая?

в данном случае на приемном конце стоит логиканализатор Салеае, думаю у его входов входное сопротивление порядка мегаома или более.

Длина кабелей 15см до преобразователя и 15см после. От длины не очень зависит, если взять метровый кабель - внешне картинка не меняется.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

в данном случае на приемном конце стоит логиканализатор Салеае, думаю у его входов входное сопротивление порядка мегаома или более.

Попробуй нагрузить, хотя бы для пробы - 1кОм. Изменится картина?

nik182
Offline
Зарегистрирован: 04.05.2015

В похожей ситуаци пустил CLK отдельно по экранированному проводу с нагрузкой 50 Ом. Проблемы ушли.

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:

В похожей ситуаци пустил CLK отдельно по экранированному проводу с нагрузкой 50 Ом. Проблемы ушли.

с нагрузкой 50 ом - как это? через 50 омный резистор?

 

Блин, ну почему на HCT244 нет таких проблем?

nik182
Offline
Зарегистрирован: 04.05.2015

Нагрузка на конце провода. Вообще обычно все такие проблемы решатся правильной нагрузкой. На заре компостроения основным способом коммуникации были токовые петли. Как раз из за борьбы с наводками. Чем меньше сопротивление нагрузки, тем лучше ситуация с наводками. Это общий принцип. Последуй совету BOOM. Нагрузи входы на которых возникают наводки. Резистор в идеале 50 Ом. Но можно поиграть до 100k  в зависимости от длины провода. Чем длиннее провод, тем меньше резистор.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

nik182 пишет:

Нагрузка на конце провода. Вообще обычно все такие проблемы решатся правильной нагрузкой. На заре компостроения основным способом коммуникации были токовые петли. Как раз из за борьбы с наводками. Чем меньше сопротивление нагрузки, тем лучше ситуация с наводками. Это общий принцип. Последуй совету BOOM. Нагрузи входы на которых возникают наводки. Резистор в идеале 50 Ом. Но можно поиграть до 100k  в зависимости от длины провода. Чем длиннее провод, тем меньше резистор.

Одним словом "терминатор", не ?
Зависит от волнового сопротивления линии...

Green
Offline
Зарегистрирован: 01.10.2015

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

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:

Нагрузка на конце провода. Вообще обычно все такие проблемы решатся правильной нагрузкой. Чем меньше сопротивление нагрузки, тем лучше ситуация с наводками. Это общий принцип. Последуй совету BOOM. Нагрузи входы на которых возникают наводки. Резистор в идеале 50 Ом.

нагрузка - это значит между сигналом и GND - я верно понял? Потому как включать резистор последовательно сигналу не вижу ни малейшего смысла.

Но если между логической единицей и GND поставить 50 ом - ток через выход СТМ32 составит 3.3 в / 50 ом = 66 мА. что явно больше предельно допустимого тока GPIO 20 мА. То есть либо я нихера не понял и резистор включается как-то по другому. либо 50 Ом слишком мало и надо включать не менее 500 ом - 1 к. как советует BOOM

rkit
Offline
Зарегистрирован: 23.11.2016

поставь минимальную скорость фронтов в настройках пинов

Green
Offline
Зарегистрирован: 01.10.2015

Просто pullup на 1-10 ком.

b707
Offline
Зарегистрирован: 26.05.2017

Green пишет:

Просто pullup на 1-10 ком.

имхо,  pullUP тут нахер не нужен, если уж ставить. то только pulldown.

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

b707
Offline
Зарегистрирован: 26.05.2017

В общем спасибо, попробую для начала притянуть все проблемные пины к земле резистороами 1-3к. О результате отпишу.

Green
Offline
Зарегистрирован: 01.10.2015

Да похрен. Хоть up, хоть down.

nik182
Offline
Зарегистрирован: 04.05.2015

Вешать 50 Ом на ногу STM это конечно круто :-)  50 ом ставят в длинных линиях после шинных и прочих формирователей сигналов. Для коротких проводов соласование не столь актуално, но нагрузка на не большое сопротивление помогает уйти от таких, как у тебя наводок. При этом pullUP или pullDOWN без разницы. Это отределяется логикой схемы. Для STM 3.3к с 1мА нагрузки на ногу вполне достаточно. Ставить резистор желательно как можно ближе к входу, куда соединяется провод.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

можно попробовать кинуть по трём проводам, сам сигнал по среднему, а крайние заземлить

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

можно попробовать кинуть по трём проводам, сам сигнал по среднему, а крайние заземлить

в кабеле 14 сигнальных проводов, вокруг каждого по два GND кидать? :)

Green
Offline
Зарегистрирован: 01.10.2015

На 15 см ничего кидать не надо. Нужно обеспечить только НЕ ВЫСОКИЙ импенданс линий.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Green пишет:

На 15 см ничего кидать не надо. Нужно обеспечить только НЕ ВЫСОКИЙ импенданс линий.

+100500.  Не 50 Ом, конечно. Но провести испытания в этом направлении. Вообще такая наводка - ненормально и хорошо бы причину найти, но можно и "костылём" лечить. Вот таким. Проверь еще раз программные моменты - а именно точно ли выходные пины в OUTPUT? Не поверишь, но такие наводки признак несбалансированной линии - высокое выходное сопротивление передатчика, при высоком же входном на приемнике.

Теперь уже и сам сообразишь, что проверять и как лечить, да?

svm
Offline
Зарегистрирован: 06.11.2016

b707 пишет:

ua6em пишет:

можно попробовать кинуть по трём проводам, сам сигнал по среднему, а крайние заземлить

в кабеле 14 сигнальных проводов, вокруг каждого по два GND кидать? :)

В шлейфах HDD, так и сделано.

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

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

да не... не такая уж это наводка...

Обьясняю - для удобства коммутации кабелей HUB75 сделал на jlcpcb плату, у которой один вход и три выхода. Один выход пустил через конвертер уровня. а два параллельно ему - напрямую. И на прямых выходах ОДНОВРЕМЕННО с тем, как на конвертере это безобразие - никаких наводок нет. Так что источник сигнала вне подозрений, да и проверен он давно. я на этом коде уже наверно под сотню примеров запустил.

считаю что виноваты китайские конвертеры, которые транслируют шумы на входе как высокий уровень на выходе. Это китайское чудо TXS0108 почему-то считает шумы в кабеле "настоящими" сигналами и усиливает их до нормального логического уровня. Кстати сказать. конвертеры на чипах HCT244 такого эффекта не имеют(проверяю не только на том же коде, но и конкретно на той же СТМ32 и тех же самых кабелях)

На конвертерах на основе HCT244 я успешно работаю с этим протоколом уже три месяца. Но они у меня собраны на трех отдельных макетках с огромной бородой проводов (и даже в этом состоянии шумов не дают!). А с этими китайцами я связался именно для того, чтобы убрать провода и "сделать красиво" :) - развел специальную плату, припаял чипы... и вот на тебе. такой облом :)

vrd
Offline
Зарегистрирован: 20.01.2022

Простейший конвертер.

+питания МК -> резистор на ногу МК -> диод между МК и нагрузкой -> резистор на +питания нагрузки

Всё!

Подобрать резисторы чтоб не спалить МК и пользоваться.

vrd
Offline
Зарегистрирован: 20.01.2022

Если разброс между питанием МК и нагрузкой большой - между ногой мк и диодом влепить рёзюк килоом на 100, до мегаома. Ведь на входе полевики, а им важна напруга.

b707
Offline
Зарегистрирован: 26.05.2017

vrd - прочитайте тему сначала, а потом....  комментируйте

sadman41
Offline
Зарегистрирован: 19.10.2016

В ленточных кабелях, по-моему, GND пускают через одну жилу: GND-SIG1-GND-SIG2-GND-....
Это увеличивает зазор между сигнальными проводами, снижает наводки и т.д.

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:
В ленточных кабелях, по-моему, GND пускают через одну жилу: GND-SIG1-GND-SIG2-GND-.... Это увеличивает зазор между сигнальными проводами, снижает наводки и т.д.

Гриша, здесь пихать GND просто некуда, в кабеле 16 жил, 14 из которых сигнальные....

sadman41
Offline
Зарегистрирован: 19.10.2016

Я тут не причём.

Можно, наверное, высокочастотные не рядом располагать, а раделив менее шумными. Искусство это целое - наэкономить в кабеле проводников.

b707
Offline
Зарегистрирован: 26.05.2017

результаты вечерних тестов -  снижение импеданса линий дало очень мало. Поставил между каждым сигнальным проводом и GND по резистору 2.7к. Наводки стали реже на тех проводах. что далеко от высокочастного сигнала, на соведних практически не уменьшились. Снижать ниже 2.7К - не думаю, что это что-то даст...

Короче, эта идея не прошла, давайте другую :)

nik182
Offline
Зарегистрирован: 04.05.2015

Я рассказывал про выделение высокочастотного в отдельный экранированный провод. Но! Если 2.7 к не помогло, то вывод печален - полная хрень с землёй. Чисто для проверки возьми толстый медный кабель и протяни землю от ближайшего к МК керамического конденсатора к земле микросхемы уровней. Ну и по плате своей землю толстыми медными проводниками позакорачивай в разных углах. Глядишь найдёшь откуда наводка лезет.   

b707
Offline
Зарегистрирован: 26.05.2017

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

Зы. это я не спорю - это просто для информации.

попробую выложить картинку печатки, если найду

b707
Offline
Зарегистрирован: 26.05.2017

Плата, обсирайте

Лицевая сторона

Разъем INPUT1 - соответвенно основной вход, правее U1 U2 - микросхемы конвертеров, правее них по направлению нарисованной стрелки - выводной разъем (зеркально, припаяивается с обратной стороны)

В нижней части два других разьема, совмещенных по пинам со входом INPUT1 и блок преобразователя напряжения 5в -> 3.3в

оборот

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так красиво, но не наблюдаю ни одной керамики по питанию около МС. Попробуй для начала прямо над корпусами по 0.1мкф на ноги земля - +5 и +3 припаять. 

b707
Offline
Зарегистрирован: 26.05.2017

Попробую зачистить маску и припаять смд кондеры вот так: - больше некуда

но это уже завтра...

nik182
Offline
Зарегистрирован: 04.05.2015

Может всё ж просто на ноги припоять для проверки?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:
Может всё ж просто на ноги припоять для проверки?

по даташиту керамика по 0.1 обязательна

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:
Может всё ж просто на ноги припоять для проверки?

на какие ноги? если ноги микросхемы - то там питание и GND на разных концах, не знаю как туда можно припаять

SLKH
Offline
Зарегистрирован: 17.08.2015

sadman41 пишет:
В ленточных кабелях, по-моему, GND пускают через одну жилу: GND-SIG1-GND-SIG2-GND-.... Это увеличивает зазор между сигнальными проводами, снижает наводки и т.д.
И к каждому сигналу своя сигнальная земля.

Классическая цоколевка: https://pinov.net/connector/FDD

lean_74
Offline
Зарегистрирован: 22.12.2015

https://www.chipdip.ru/product0/77059545

а так ты просто неудачный чип выбрал, вернись к 244, 245 

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

ты просто неудачный чип выбрал, вернись к 244, 245 

у 244-ого распиновка уродская... у него входы и выходы через один по одной стороне...

b707
Offline
Зарегистрирован: 26.05.2017

SLKH пишет:

sadman41 пишет:
В ленточных кабелях, по-моему, GND пускают через одну жилу: GND-SIG1-GND-SIG2-GND-.... .
И к каждому сигналу своя сигнальная земля.

ребяты... я не против... но это же не я выдумал! Описанный мной кабель - это промышленный стандарт для DMD-матриц. Применяется миллионами экземпляров. И как-то же он работает у всех без наводок.

Так что скорее всего дело не в кабеле, а в том что я где-то накосячил. надо найти где.

nik182
Offline
Зарегистрирован: 04.05.2015

В старых платах логики керамику паяли на каждый чип именно сверху корпуса ногами конденсатора по кратчайшему расстоянию от земли до питания.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Надо просто логически подумать - От чего (из-за чего) могут быть такие выбросы?

1. Не согласованность линии, уже выше советовали притянуть ее резисторами (как я понял не помогло, но попробовать уменьшить резистор до 1...0,5кОм все же нужно).

2. Возбуд может такой эффект давать? Тогда нужны блокировочные емкости.

3. Наводки от рядом идущих линий. Что там в стандарте для DMD-матриц говорится? Может логические уровни другие?

4. Мошт реально земли больше нужно? Попробуй еще отдельными проводами все земли соединить (на КВ частотах часто без подобного ничего работать не будет по хорошему).

5. Думаем дальше вместе...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Б707! Выложи еще и принципиальную схему. Причем именно от твоей платы. Не может таких помех быть без ошибки. Нужно её просто найти!

На всякий случай можешь без платы, на макетке собрать модель и проверить, будет ли тоже самое? Микрухи к макетке пристыковать через переходную платку, если есть. Если нет - тут конечно сложно будет. Переходник можно быстренько ЛУТом или фоторезистом сделать. Я держу в мастерской "фирменные", типа таких, только красненькие! ;))

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:
В старых платах логики керамику паяли на каждый чип именно сверху корпуса ногами конденсатора по кратчайшему расстоянию от земли до питания.

понял. Не уверен, что у меня есть выводная керамика 0.1, если найду - припаяю как советуешь. Если нет - напаяю смд как выше рисовал - смд 0.1 у меня есть точно

 

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

Б707! Выложи еще и принципиальную схему. Причем именно от твоей платы. Не может таких помех быть без ошибки. Нужно её просто найти!

ща выложу

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

конечно есть :) Напомню - все началось с того, что я купил эти левелконверты как раз на таких платах и снял их оттуда феном :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

b707 пишет:

конечно есть :) Напомню - все началось с того, что я купил эти левелконверты как раз на таких платах и снял их оттуда феном :)

Супер! Я, грешным делом, подумал, что с какой-то рабочей платы сдувал, а не с переходника. Береги переходники! Они в ЧиД денег стоят - нереально много!

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

b707
Offline
Зарегистрирован: 26.05.2017

схема

могу еще фото готовой платы выложить, если надо :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Вроде я ничего не вижу. Собирай макет. Попробуй стянуть к земле через 10К сигналы. Хоть один, на который наводятся помехи от клока. И погляди осликом или логаном. У меня как-то открывался мосфет в корпусе д2пак от проходящей параллельно чужому гейту дорожке. 

Попробуй так - стянуть к земле. Потом посмотрим. Просто в разъем воткни резистор 10К между сигналом и землей. Даже паять не надо. И посмотри, изменится ли картинка.

b707
Offline
Зарегистрирован: 26.05.2017

wdrakula пишет:

Попробуй так - стянуть к земле. Потом посмотрим. Просто в разъем воткни резистор 10К между сигналом и землей. Даже паять не надо. И посмотри, изменится ли картинка.

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

в приведенной тобой картинке с логана помеха есть только тогда, когда сигнал в низком уровне. Отсюда возникла мысль, что низкий "слабоват". Сними осликом прямо на чипе преобразователя входной и выходной сигналы. А то фигня какая-то! Ей Б..гу!

И все же стенд без платы желателен. Без тройника многоногого, вдруг там что-то? самый "чистый" стенд.  может просто два искусственных сигнала - типа клока и того, который "портится".

Можно еще такой эксперимент: на вот-эту-вот, свою плату запусти не рабочий, а искусственный сигнал, спецом его сделай на СТМ-ке. Будет ли тоже самое?

Я просто, как еще 30 лет назад меня учили - "ловлю льва в пустыне" ;). Исключаю варианты, пусть даже они и странными кажутся.