«Мы любознательны, но не любопытны»
Недавно, при отладке одного устройства, внезапно выяснилось, что RS485 не хочет работать (вернее, работает через раз), если два устройства не связаны землей, от слова совсем. Вообще‑то данный факт не является откровением и я в своих кабелях земли протаскиваю, но в данном конкретном случае имел место обрыв провода. Но после того, как дефект был обнаружен и устранен, внезапно возник вопрос — а как вообще устроен приемник сигналов, если в соответствии со стандартом он должен правильно обрабатывать сигналы, имеющие общее напряжение (Vcm) от -7В до 12В, питаясь при этом от 3.3В (ну или от 5В) относительно земли. Да, я знаю о существовании операционных усилителей (а компаратор — тот же ОУ), способных обрабатывать сигналы “rail‑to‑rail” (импорто‑замещенное обозначение «от шины до шины» мне не нравится, можете пожаловаться кому следует), но в данном случае входные сигналы откровенно за шины (землю и питание) выходят.
Если Вам тоже интересно, Вам сюда.
Вариант с формированием внутренних значительных напряжений питания (в том числе отрицательного) оставим на крайний случай, это будет очень дорого. Сначала попробуем преобразовать входные сигналы в приемлемый диапазон (глубоко внутри значений от земли до питания) простыми средствами. Варианты с ограничением входного напряжения нам явно не подходят, поскольку мы будем сравнивать преобразованные сигналы между собой, значит проектируем делитель со сдвигом, рисунок 1.
Мы имеем схему с тремя изменяемыми параметрами (два номинала резисторов и напряжение смещения), а ограничений только два - на краях диапазона, причем мы должны их задать сами. Примем минимальное обрабатываемое напряжение за 0.2В, а максимальное за 2.0В. Можно составить 2 уравнения с 2 неизвестными (отношение резисторов и смещение) и честно решить эту систему, но можно пойти легким путем. Если входному диапазону изменения напряжения в 12В-(-7В)=19В соответствует выходной диапазон изменения напряжения в 2.0-0.2=1.8В, то коэффициент передачи (коэффициент деления на резистивной схеме) составит k=1.8/19~1/10. Отсюда соотношение резисторов получается автоматом r1=(k-1)*r2=9*r2. Тогда из левой точки диапазона со входным значением -7В и требуемым значением 0.2В легко найти
Us=(0.2+7/10)*10/9=(0.2*10+7)/9=9/9=1.0В.
Зададимся r1=10кОм и можем расставить на схеме 1 номиналы. Пнп: задаемся входным резистором, исходя из требований стандарта к входному сопротивлению приемника.
Вообще-то, эта схема не вполне рабочая, поскольку получение напряжения смещения осталось за скобками. Конечно, можно поставить ограничитель напряжения и сделать смещение из питания, тогда потребуется стабилитрон именно на нужное напряжение, но есть способ намного интереснее. Добавим к схеме на рисунке 1 еще один резистор и воспользуемся принципом суперпозиции (теорема Тевенина, если память мне не изменяет, проверять в Гугле принципиально не буду, пусть мне будет стыдно, если ошибусь), тогда
U=Ui*R2'/(r1+R2')+Up*R3'/(r2+R3'), где r2'=r2||r3, r3'=r1||r3.
Пнп: я честно попытался переписать это в виде формулы, но совершенно дикие отступы сверху и снизу меня огорчили, так что формулы остались в текстовом виде.
Тогда при соответствующих значениях r2 и r3 получим требуемое значение напряжения смещения (второй член суммы) в 1В (хотя следует твердо понимать, что это не 1В, а питание напряжением 3.3В, деленное на 3.3). Считая, что r1>>r3, легко найти соотношение резисторов k2=r2/r3, а потом составить и решить уравнение
k*r1=r2||r3=k2*r3||r3=k2*r3*r3/(k2*r3+r3)=k2*r3/(k2+1),
откуда r3=(r1*k)(k2+1)/k2 и можно расставить номиналы.
Пнп: воспользуемся одним из правил Кирхгофа (равенством суммы токов нулю), что приводит к уравнению (U1-Ux)/r1+(U2-Ux)/r2+(U3-Ux0)/r3=0, которое после несложных преобразований, в предположении r2=r3 и U3=0, превратится в простое выражение
Ux=U1*r2/(r2+2*r1)+U2*r1/(r2+2*r1)
или, при r1>>r2
Ux=1/2*U1*r2/r1+1/2*U2.
Пнп: все-таки не удержался, посмотрел, теорема Тевенина немного о другом, но тоже где-то рядом, так что оставлю в тексте, как было.
На этом следовало бы закончить, но, как известно, "любопытство погубило кошку". Возникает желание проверить свое решения и посмотреть, а как входной каскад реализован в выпускаемых серийно микросхемах приемников RS485. После ряда безуспешных попыток (ну не желают определенные производители открывать свои секреты) я все-таки нашел схему входного каскада в описании микросхемы SN65LBC108A от Texas Instruments - смотри рисунок 3 (спасибо, коллеги, я всегда в Вас верил, хотя историю с Luminary "не забудем, не простим").
Смотрим на схему и видим, что законы электроники (вообще‑то, электротехники) работают точно так же в штате Техас, как и вокруг меня, и схема вполне соответствует ожидаемой. Если не обращать внимание на защитные диоды на входе, растяжку линий для обеспечения гарантированного уровня при простое передатчика (100кОм) и еще один защитный диод вместе с загадочным кружочком (эмиттерным повторителем?) на выходе (все лишнее обведено красным), то в сухом остатке будут все те же три резистора, хотя и немного других номиналов. В общем, «здесь зрители начинают аплодировать...аплодируют... аплодируют.... аплодируют... кончили аплодировать».
Обратим внимание на один немаловажный аспект — хотя абсолютные значение резисторов не столь важны и мы можем себе позволить значительные (единицы процентов) отклонения в коэффициенте передачи, расхождение этих параметров в двух каналах (у нас ведь два провода, Вы не забыли, воут?) совершенно недопустимо. Дело в том, что мы должны выделить разницу в 200 мВ между входами, в условиях присутствия общего напряжения от -7 до +12В. Соответственно, общее напряжение должно быть подавлено таким образом, чтобы не «перекосить» разницу. Чтобы изменение общего напряжения на 20В на входе не перекосило разницу в 200мВ, нам нужно подавление общего напряжения более, чем в 100 раз или на 40 дБ. А последнее требование означает, что резисторы в обоих делителях должны иметь точность в 0.5% минимум, лучше 0.1%. Я никоим образом не специалист в производстве микросхем, но, как мне кажется, задача весьма нетривиальная. Пнп: вообще то, задача о точности коэффициента передачи резистивного делителя интересна сама по себе, смотри опрос в конце поста.
Возвращаемся к рассматриваемому вопросу и выясняем, почему зрители внезапно перестали аплодировать — дело в том, что это была не первая схема входного каскада приемника RS485, которую я обнаружил, и даже не вторая. Второй была схема на рисунке 4 из микросхемы SN75 179B, и вот она коренным образом отличается от моей и от первой — она содержит в себе 2 транзистора, 2 диода и 5 резисторов.
Вариант ответа, что разработчикам TI платят за количество транзисторов, отметаем с негодованием, как недостойный, и, тем не менее, видим то, что видим. Ладно, идем на любимый сайт falstad.com, рисуем схему и запускаем моделирование. Видим, в общем то, ожидаемую картину — входной сигнал ослабляется в 16 раз во всем диапазоне за исключением небольшой (0.9В) зоны вблизи напряжения смещения 2.5В, где ослабление падает до 4 — смотри рисунок 5.
Зачем сделано такое схемное решение, лично для меня остается загадкой и в документации фирмы нет ни малейшего намека на причину. Пнп: если подать на вход схемы треугольный сигнал, то осциллограмма выходного сигнала будет представлять собой переходную характеристику в соответствующем масштабе.
На самом деле все еще хуже, потому что первая схема, которую я увидел, представлена на рисунке 6 и она имеется в микросхеме AM26LV32.
Исследуем ее аналогичным способом и получаем следующую переходную характеристику, из которой видно, что схема работает, как делитель с коэффициентом 1.5/2/(1.5/2+15)~1/21 и смещением 0.6, но это до точки закрывания верхнего транзистора (входное напряжение около 9В), где она превращается в делитель с коэффициентом 1.5/(1.5+15)=1/11 и смещением практически 0. Очень странное решение, особенно если учесть, что рабочий диапазон входных напряжения установлен документацией на эту микросхему в -0.5В : 5.5В (что, на секундочку, не соответствует стандарту) и указанное превышение над 9 вольтами нас никак не должно волновать.
Но модели моделями, а давайте теоретически разберемся в работе данной схемы. Нижний транзистор в режиме насыщения (это гипотеза), верхний в активном режиме (еще одна), диоды смещены в прямом направлении. Тогда Ub2=0.6В, Ub1=ub2+2*Udf =1.8В, Ib1<<Ib2 => Ir2=0.6/7.2к~0.1мА, Ir1=(3.3-1.8)/7.2к~0/2мА, ib2=Ir1-Ir2=0.1мА, Ie1=Ik2=(Ue1-uK2)/(r3+r4)=1.2/3~0.4mA, Ik2<<b2*Ib2- гипотезы подтверждены. Тогда Uk2~0.1, Ue1=Ub1-0.6~1.2В и верхний транзистор закроется, когда напряжение на его эмитере превзойдет 1.2В, а это случится при входном напряжении 1.2(15+1.5/2)/(1.5/2)=1.2*2*15+1.5)/1.5=1.2/1.5*31=1.2*31~23В. Как то не соответствует наблюдениям на модели, смотрим на нее внимательнее и обнаруживаем, что падения на диодах составляют не ожидаемые 0.6В, а всего лишь по 0.35В в силу очень малых токов, через них протекающих, отчего и получается расхождение с расчетом. Маловероятно, чтобы такой тонкий эффект лежал в основе схемы, скорее все таки прямое напряжение на диодах в реальном изделии составит 0.6 и в пределах диапазона допустимых входных напряжений излома передаточной характеристики не будет.
Тогда мы можем сделать предположения о назначение верхнего транзистора с диодами — сформировать опорное напряжение, слабо зависящее от питания, хотя необходимость такого решения от меня ускользает. Непонятным остается и наличие нижнего транзистора, которое приводит к аналогичному изменению коэффициента передачи для напряжений, меньших -9В, а это напряжение явно вне рабочего диапазона.
Но со схемой на рисунке 5 данный подход не проходит — напряжения на коллекторах верхнего и нижнего транзистора от питания явно зависят, так то наличие излома характеристики посредине нельзя объяснить вообще ничем, поэтому лично я остаюсь в тягостном недоумении. Если кто может его развеять, прошу в комментарии.
Единственное, что внушает оптимизм — это то, что «правильная» схема с тремя резисторами применена в последней по времени из трех представленных микросхем (документация датирована 1990, 1995 и 2000 годами соответственно) и просто разработчики TI нащупали методом проб и ошибок верное решение, которое автором поста было придумано сразу. На этой радостной ноте я, пожалуй, и закончу обзор темы.
Комментарии (23)
vk6677
13.12.2023 14:29Стандартно защищал шину 485 с помощью sm-712. Но и они умудрились уйти в обрыв при подаче по ошибке 24 В.
Из-за обрыва стабилитронов сгорели пару микросхем 485 интерфейса.
Теперь дополнительно ставлю стабилитроны, которые в случае повреждения уходят не в обрыв, а в КЗ, и этим защищают шину, т.к. источник питания выключается из-за КЗ.
Ну и обязательно гальваническая развязка шины, это позволяет быстро починить с минимальным временем простоя и затратами.
Был случай попадания межфазного напряжения на шину. Выгорела часть платы, от микросхем гальваноразвязки остались только припаянные "ножки". Но микроконтроллер уцелел и сообщил - какая-то проблема с датчиком.
Oangai
13.12.2023 14:29так гальваническая развязка в серии денег стоит, её обычно избегают если нет необходимости. У вас похоже питание от силовой сети может попадать, тогда конечно, это уже другой уровень. В нашем случае 24V питания от общего источника, по общему 0.75mm² кабелю с шиной данных, там только transients в момент подключения потребителя, но вот уже их достаточно чтобы драйвер убить.
Еще, многие забывают в характеристику tvs диода заглянуть когда в схему ставят, а он ведь на заявленное напряжение только начинает открываться, несколько лишних вольт еще сверх пропустить может.
eri
13.12.2023 14:29Насколько сильно защита нужна в в короткой линии? От кабины грузовика до компрессора гидравлики. Max485 воткнул пока. Мелкая серия
Oangai
13.12.2023 14:29хоть какая-то защита нужна всегда, элементарно если вдруг гроза и молния рядом шарахнет. Но в большинстве случаев при нескольких метрах кабеля думаю вот этот sm712 достаточно хорошо защитит, если риск только наведённые токи поймать и нет риска что питание на шину попасть может. Хотя, я с автомобильными сетями особо не работал, знаю только что там всё сильно грязнее в плане наводок и бросков питания. Скорее всего есть какие-то типовые гайдлайны на эту тему.
eri
13.12.2023 14:29Пока защитил только терминатором) сразу переделывать или погонять пилотную серию? Питание стабилизированное через buck драйвер какой-то до 5в . скакать вроде не должно.
Oangai
13.12.2023 14:29смотря какая серия, если небольшая, можете погонять и посмотреть как себя вести будет, собрать опыт. Но если есть какие-то финансовые риски изза отказов, то лучше подумать как хотя-бы навесным монтажом диоды в THT исполнении добавить.
По питанию, нужно смотреть чтобы сам buck- конвертер не пробило, по входу. Для автомобильной электроники обычно рекомендуют иметь запас в 2-2.5 раз по входному напряжению, смотря какое у вас бортовое
vk6677
13.12.2023 14:29Есть простая проверка. Взять пьезоэлемент от зажигалки и бить разрядами прямо по контактам. Плюсом можно взять пускатель электромагнитный помощнее и рядом установить. Как только перестанет ломаться - тогда с железом норм. Плюс потеря и искажение информации неизбежна, но это за счёт ПО.
lelik363
13.12.2023 14:29Открывайте стантарты автомобильной промышленности и смотрите какие внешние воздействия должно выдерживать оборудование. А дальше будет понятно какая защита нужна.
nikolz
13.12.2023 14:29Почему-то всегда полагал, что электрические цепи выгорают не от напряжения, а от тока. И всегда удивляют фразы "У клиента по линии в момент подключания пробегал транзиентный импульс обратного тока вольт +-12..." ...Но ток никогда не измеряют в вольтах!!!.
Может поэтому и схемы Ti малопонятны?
Oangai
13.12.2023 14:29имелось в виду конечно импульс с амплитудой до +-12 вольт. Транзиентный бывает именно ток, поскольку кабель представляет из себя колебательную систему, в момент подключения нагрузки возникает импульс тока в обратную сторону, к источнику, и трансформаторным эффектом наводит на проходящей параллельно шине данных импульс с напряжением порядка сравнимого с напряжением питания. Изза колебательного характера линии полярность успевает раз-два смениться, пока затухнет. Если транзисторы на выходе драйвера шины подвержены эффекту лавинного пробоя (а от какого-то напряжения любой полупроводник подвержен), то собственно их кратковременно пробивает на КЗ и вся энэргия импульса стекает через них. Один такой пробой еще не заметен, но повреждения кристалла накапливаются, после нескольких пробоев он или полностью выгорает, или сильно шуметь начинает.
Oangai
13.12.2023 14:29Вот кстати sm712 указали, от Semtech: они как раз на этом эффекте работают, в отличии от обычного tvs стабилитрона там у них контроллируемый лавинный пробой, чтобы он мог резко срабатывать, потому что у простых tvs характеристика плавная. Но мелковат, если на него вдруг питание попадет.
VT100
13.12.2023 14:29Малый ток, текущий через вывод не в том направлении, усиливается паразитными транзисторами. В результате, в кристалле ИМС выделяется не запланированная энергия.
VT100
13.12.2023 14:29с загадочным кружочком
Вероятно - это источник тока в эмиттерной цепи дифференциального усилителя.
mikelavr
13.12.2023 14:29Возможно изготовитель сделал подгонку резисторов на кристалле лазером на производстве. Хотя это и весьма неудобная операция, сильно повышающая себестоимость - микросхему нужно подключать при разваренных ножках, но не залитую пластиком сверху.
aumi13
13.12.2023 14:29важна не абсолютная точность, а отностительная в пределах пластины. а это ужэ определяеца соблюдением технологии.
kvazimoda24
13.12.2023 14:29Я бы даже добавил, что если геометрически два резистора "нарисованы" на шаблоне для фотолитографии одинаково, то добиться разницы в значении сопротивления будет крайне сложно.
GarryC Автор
13.12.2023 14:29То есть воспроизводимость сопротивлений будет большая, главное, чтобы рядом были?
Я просто, как и сказал в посте, в технологиях не силен, помню из институтских лекций о лазерной подгонке резисторов, правда, в пленочных технологиях, а не в объемных.
kvazimoda24
13.12.2023 14:29Точный данных у меня нет, но думаю в пределах одной пластины вряд ли разброс будет более десятой процента. А в пределах одного кристалла на порядок, а то и два, меньше.
kvazimoda24
13.12.2023 14:29Немного разверну свой ответ.
С технологической точки зрения резистор представляет из себя участок кремния P-типа, легированного чем-нибудь типа мышьяка. Думаю, нможно резистор сделать и из кремния N-типа, но сходу нагуглилось, что из P-типа. Понятное дело, что форму этому участку можно задать любую, но упростим до прямоугольника. Тогда сопротивление резистора будет зависеть от длинны участка, ширины, глубины легирования и степени легирования (концентрации носителей заряда).
Ширина и длинна участка задаются маской из фоторезиста, которая в свою очередь определятся фотошаблоном. Ну, т.е. если проектировщик нарисовал поле 0,2 мкм на 1 мкм, то с определённой точностью таким оно и будет. Конечно, с помощью экспозиции и времени проявки можно в некоторых пределах менять эти размеры, но во-первых, это порочная практика, ведущая к браку, а во-вторых, два одинаковых резистора останутся в этом случае одинаковыми, просто сопротивление у них одинаково уедет в ту или иную сторону. После формирования маски происходит процесс легирования, это может быть диффузионное легирование, где пластину помещают в печь с атмосферой из какого-нибудь дико ядовитого газа, типа арсина, и ионы мышьяка диффундируют в кремний. Да, вокруг масочного окна в кремнии получается некое облако из ионов мышьяка, т.е. сама область будет заведомо больше окна, но зная температуру в печи, концентрацию газа и размер этого самого окна, можно расчитать полученный размер итоговой области. Соответственно, изменяя эти параметры, можно и изменять полученное сопротивление резистора. Но опять-таки, в рамках одной пластины все резисторы будут изменяться одинаково, т.е. между собой два одинаковых резистора так и останутся одинаковыми.
Для более высокой точности часто используют не диффузионное, а ионно-лучевое легирование. Там механизм ближе к работе электролучевой трубки. Это позволяется достич меньшего проникновения ионов под маску, т.е. легированная область получается более "вертикальной" с более чёткими границами. Там тоже можно регулировкой параметров изменять концентрацию ионов и глубину имплантации, но снова в рамках одной пластины это будет влиять одинаково на все резисторы.
В итоге получаем, что да, за счёт геометрических размеров пластины, за счёт возможных искажений объектива фотолитографической установки, каких-то допусков по времени экспонирования каждого кадра, толщины слоя фоторезиста, мы можем получить некоторую разность в размерах окон маски в разных областях пластины, но размер кристалла зачастую меньше размера кадра, т.е. в одном кадре несколько кристаллов. И вот в рамках одного кристалла эта разница будет на столько незначительной, если вообще будет, что позволяет строить такие схемы, которые никогда не заработают, если их собирать из рассыпухи. И не заработают именно из-за того, что вы никогда не подберёте два одинаковых транзистора или 100 одинаковых резисторов...
select26
13.12.2023 14:29Зачем сделано такое схемное решение, лично для меня остается загадкой и в документации фирмы нет ни малейшего намека на причину.
Может для обеспечивания гистерезиса? Чтобы исключить дрожание фронта и улучшить детектирование.
Oangai
тоже поделюсь опытом по теме, можен кому пригодится, довелось на одном проекте расследовать странные выгорания драйвера, вроде тот-же SN65LBC180 что у вас в одной схеме (правда у вас там опечатка в номере, 108).
Проект был не мой, помогал коллегам, попросили найти ошибку: прибор они разработали, первые сэмплы сделали и у себя всё протестировали, всё вроде чисто, работало. Заказали первый charge в пред-серию, передали клиенту, и тут начинаются жалобы: у клиента драйверы стабильно горят после нескольких включений, хотя причин никаких не видно - земля в порядке, силовых линий поблизости не проходит, линия всего 10-15 метров, на конце нагрузочка ватт на 20.
Вобщем, выяснилось: коллеги использовали на линии rs485 биполярные tvs диоды на 12V, из экономии все одинаковые взяли. Когда тестировали, использовали оригинальные микросхемы от TI, и для них несколько вольт несоответствия спеку не проблема, держали, никто не заметил. Потом, для пред-серии, заказали у китайцев, а те поставили свой клон с идентичной маркировкой, вообще не отличишь, пластик корпуса только под микроскопом минимально отличается. Только, если давать на линию где-то -10V, у них уже лавинный эффект случался, и после нескольких пробоев он совсем выгорал. У клиента по линии в момент подключания пробегал транзиентный импульс обратного тока вольт +-12, этого хватало для лавинного пробоя.
Дело в том, что лавинный эффект в основном от качества кристалла зависит, и китайцы там похоже степень паршивости своего кремния точненько под спек подобрали, чтобы заявленные -7V еще как-то выдерживал, а большего вам никто и не обещал. Тогда как оригинальные от TI вольт до 50 выдерживали.
Вобщем, вывод: ребята, не пренебрегайте правильными ограничительными диодами
Hlad
Правильные ТВС-ки тоже не всегда панацея: у них достаточно пологая характеристика срабатывания... После них ещё и стабилитрон желательно ставить.