«Мы любознательны, но не любопытны»

Недавно, при отладке одного устройства, внезапно выяснилось, что RS485 не хочет работать (вернее, работает через раз), если два устройства не связаны землей, от слова совсем. Вообще‑то данный факт не является откровением и я в своих кабелях земли протаскиваю, но в данном конкретном случае имел место обрыв провода. Но после того, как дефект был обнаружен и устранен, внезапно возник вопрос — а как вообще устроен приемник сигналов, если в соответствии со стандартом он должен правильно обрабатывать сигналы, имеющие общее напряжение (Vcm) от -7В до 12В, питаясь при этом от 3.3В (ну или от 5В) относительно земли. Да, я знаю о существовании операционных усилителей (а компаратор — тот же ОУ), способных обрабатывать сигналы “rail‑to‑rail” (импорто‑замещенное обозначение «от шины до шины» мне не нравится, можете пожаловаться кому следует), но в данном случае входные сигналы откровенно за шины (землю и питание) выходят.

Если Вам тоже интересно, Вам сюда.

Вариант с формированием внутренних значительных напряжений питания (в том числе отрицательного) оставим на крайний случай, это будет очень дорого. Сначала попробуем преобразовать входные сигналы в приемлемый диапазон (глубоко внутри значений от земли до питания) простыми средствами. Варианты с ограничением входного напряжения нам явно не подходят, поскольку мы будем сравнивать преобразованные сигналы между собой, значит проектируем делитель со сдвигом, рисунок 1.

Рис. 1. Начало
Рис. 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.

Пнп: я честно попытался переписать это в виде формулы, но совершенно дикие отступы сверху и снизу меня огорчили, так что формулы остались в текстовом виде.

Рис. 2. Модификация
Рис. 2. Модификация


Тогда при соответствующих значениях 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 "не забудем, не простим").

Рис. 3 SN65LBC180A
Рис. 3 SN65LBC180A

Смотрим на схему и видим, что законы электроники (вообще‑то, электротехники) работают точно так же в штате Техас, как и вокруг меня, и схема вполне соответствует ожидаемой. Если не обращать внимание на защитные диоды на входе, растяжку линий для обеспечения гарантированного уровня при простое передатчика (100кОм) и еще один защитный диод вместе с загадочным кружочком (эмиттерным повторителем?) на выходе (все лишнее обведено красным), то в сухом остатке будут все те же три резистора, хотя и немного других номиналов. В общем, «здесь зрители начинают аплодировать...аплодируют... аплодируют.... аплодируют... кончили аплодировать».

Обратим внимание на один немаловажный аспект — хотя абсолютные значение резисторов не столь важны и мы можем себе позволить значительные (единицы процентов) отклонения в коэффициенте передачи, расхождение этих параметров в двух каналах (у нас ведь два провода, Вы не забыли, воут?) совершенно недопустимо. Дело в том, что мы должны выделить разницу в 200 мВ между входами, в условиях присутствия общего напряжения от -7 до +12В. Соответственно, общее напряжение должно быть подавлено таким образом, чтобы не «перекосить» разницу. Чтобы изменение общего напряжения на 20В на входе не перекосило разницу в 200мВ, нам нужно подавление общего напряжения более, чем в 100 раз или на 40 дБ. А последнее требование означает, что резисторы в обоих делителях должны иметь точность в 0.5% минимум, лучше 0.1%. Я никоим образом не специалист в производстве микросхем, но, как мне кажется, задача весьма нетривиальная. Пнп: вообще то, задача о точности коэффициента передачи резистивного делителя интересна сама по себе, смотри опрос в конце поста.

Возвращаемся к рассматриваемому вопросу и выясняем, почему зрители внезапно перестали аплодировать — дело в том, что это была не первая схема входного каскада приемника RS485, которую я обнаружил, и даже не вторая. Второй была схема на рисунке 4 из микросхемы SN75 179B, и вот она коренным образом отличается от моей и от первой — она содержит в себе 2 транзистора, 2 диода и 5 резисторов.

Рис 4 SN75179B
Рис 4 SN75179B

Вариант ответа, что разработчикам TI платят за количество транзисторов, отметаем с негодованием, как недостойный, и, тем не менее, видим то, что видим. Ладно, идем на любимый сайт falstad.com, рисуем схему и запускаем моделирование. Видим, в общем то, ожидаемую картину — входной сигнал ослабляется в 16 раз во всем диапазоне за исключением небольшой (0.9В) зоны вблизи напряжения смещения 2.5В, где ослабление падает до 4 — смотри рисунок 5.

Рис5. Передаточная характеристика схемы на рисунке 4
Рис5. Передаточная характеристика схемы на рисунке 4

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

На самом деле все еще хуже, потому что первая схема, которую я увидел, представлена на рисунке 6 и она имеется в микросхеме AM26LV32.

Рис. 6 AM26LV326
Рис. 6 AM26LV326

Исследуем ее аналогичным способом и получаем следующую переходную характеристику, из которой видно, что схема работает, как делитель с коэффициентом 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 вольтами нас никак не должно волновать.

Рис.7 Передаточная характеристика схемы на рисунке 6
Рис.7 Передаточная характеристика схемы на рисунке 6

Но модели моделями, а давайте теоретически разберемся в работе данной схемы. Нижний транзистор в режиме насыщения (это гипотеза), верхний в активном режиме (еще одна), диоды смещены в прямом направлении. Тогда 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)


  1. Oangai
    13.12.2023 14:29

    тоже поделюсь опытом по теме, можен кому пригодится, довелось на одном проекте расследовать странные выгорания драйвера, вроде тот-же SN65LBC180 что у вас в одной схеме (правда у вас там опечатка в номере, 108).

    Проект был не мой, помогал коллегам, попросили найти ошибку: прибор они разработали, первые сэмплы сделали и у себя всё протестировали, всё вроде чисто, работало. Заказали первый charge в пред-серию, передали клиенту, и тут начинаются жалобы: у клиента драйверы стабильно горят после нескольких включений, хотя причин никаких не видно - земля в порядке, силовых линий поблизости не проходит, линия всего 10-15 метров, на конце нагрузочка ватт на 20.

    Вобщем, выяснилось: коллеги использовали на линии rs485 биполярные tvs диоды на 12V, из экономии все одинаковые взяли. Когда тестировали, использовали оригинальные микросхемы от TI, и для них несколько вольт несоответствия спеку не проблема, держали, никто не заметил. Потом, для пред-серии, заказали у китайцев, а те поставили свой клон с идентичной маркировкой, вообще не отличишь, пластик корпуса только под микроскопом минимально отличается. Только, если давать на линию где-то -10V, у них уже лавинный эффект случался, и после нескольких пробоев он совсем выгорал. У клиента по линии в момент подключания пробегал транзиентный импульс обратного тока вольт +-12, этого хватало для лавинного пробоя.

    Дело в том, что лавинный эффект в основном от качества кристалла зависит, и китайцы там похоже степень паршивости своего кремния точненько под спек подобрали, чтобы заявленные -7V еще как-то выдерживал, а большего вам никто и не обещал. Тогда как оригинальные от TI вольт до 50 выдерживали.

    Вобщем, вывод: ребята, не пренебрегайте правильными ограничительными диодами


    1. Hlad
      13.12.2023 14:29

      Правильные ТВС-ки тоже не всегда панацея: у них достаточно пологая характеристика срабатывания... После них ещё и стабилитрон желательно ставить.


  1. vk6677
    13.12.2023 14:29

    Стандартно защищал шину 485 с помощью sm-712. Но и они умудрились уйти в обрыв при подаче по ошибке 24 В.

    Из-за обрыва стабилитронов сгорели пару микросхем 485 интерфейса.

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

    Ну и обязательно гальваническая развязка шины, это позволяет быстро починить с минимальным временем простоя и затратами.

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


    1. Oangai
      13.12.2023 14:29

      так гальваническая развязка в серии денег стоит, её обычно избегают если нет необходимости. У вас похоже питание от силовой сети может попадать, тогда конечно, это уже другой уровень. В нашем случае 24V питания от общего источника, по общему 0.75mm² кабелю с шиной данных, там только transients в момент подключения потребителя, но вот уже их достаточно чтобы драйвер убить.

      Еще, многие забывают в характеристику tvs диода заглянуть когда в схему ставят, а он ведь на заявленное напряжение только начинает открываться, несколько лишних вольт еще сверх пропустить может.


      1. eri
        13.12.2023 14:29

        Насколько сильно защита нужна в в короткой линии? От кабины грузовика до компрессора гидравлики. Max485 воткнул пока. Мелкая серия


        1. Oangai
          13.12.2023 14:29

          хоть какая-то защита нужна всегда, элементарно если вдруг гроза и молния рядом шарахнет. Но в большинстве случаев при нескольких метрах кабеля думаю вот этот sm712 достаточно хорошо защитит, если риск только наведённые токи поймать и нет риска что питание на шину попасть может. Хотя, я с автомобильными сетями особо не работал, знаю только что там всё сильно грязнее в плане наводок и бросков питания. Скорее всего есть какие-то типовые гайдлайны на эту тему.


          1. eri
            13.12.2023 14:29

            Пока защитил только терминатором) сразу переделывать или погонять пилотную серию? Питание стабилизированное через buck драйвер какой-то до 5в . скакать вроде не должно.


            1. Oangai
              13.12.2023 14:29

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

              По питанию, нужно смотреть чтобы сам buck- конвертер не пробило, по входу. Для автомобильной электроники обычно рекомендуют иметь запас в 2-2.5 раз по входному напряжению, смотря какое у вас бортовое


            1. vk6677
              13.12.2023 14:29

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


        1. lelik363
          13.12.2023 14:29

          Открывайте стантарты автомобильной промышленности и смотрите какие внешние воздействия должно выдерживать оборудование. А дальше будет понятно какая защита нужна.


  1. nikolz
    13.12.2023 14:29

    Почему-то всегда полагал, что электрические цепи выгорают не от напряжения, а от тока. И всегда удивляют фразы "У клиента по линии в момент подключания пробегал транзиентный импульс обратного тока вольт +-12..." ...Но ток никогда не измеряют в вольтах!!!.

    Может поэтому и схемы Ti малопонятны?


    1. Oangai
      13.12.2023 14:29

      имелось в виду конечно импульс с амплитудой до +-12 вольт. Транзиентный бывает именно ток, поскольку кабель представляет из себя колебательную систему, в момент подключения нагрузки возникает импульс тока в обратную сторону, к источнику, и трансформаторным эффектом наводит на проходящей параллельно шине данных импульс с напряжением порядка сравнимого с напряжением питания. Изза колебательного характера линии полярность успевает раз-два смениться, пока затухнет. Если транзисторы на выходе драйвера шины подвержены эффекту лавинного пробоя (а от какого-то напряжения любой полупроводник подвержен), то собственно их кратковременно пробивает на КЗ и вся энэргия импульса стекает через них. Один такой пробой еще не заметен, но повреждения кристалла накапливаются, после нескольких пробоев он или полностью выгорает, или сильно шуметь начинает.


    1. Oangai
      13.12.2023 14:29

      Вот кстати sm712 указали, от Semtech: они как раз на этом эффекте работают, в отличии от обычного tvs стабилитрона там у них контроллируемый лавинный пробой, чтобы он мог резко срабатывать, потому что у простых tvs характеристика плавная. Но мелковат, если на него вдруг питание попадет.


    1. VT100
      13.12.2023 14:29

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


  1. VT100
    13.12.2023 14:29

    с загадочным кружочком

    Вероятно - это источник тока в эмиттерной цепи дифференциального усилителя.


  1. mikelavr
    13.12.2023 14:29

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


    1. aumi13
      13.12.2023 14:29

      важна не абсолютная точность, а отностительная в пределах пластины. а это ужэ определяеца соблюдением технологии.


      1. kvazimoda24
        13.12.2023 14:29

        Я бы даже добавил, что если геометрически два резистора "нарисованы" на шаблоне для фотолитографии одинаково, то добиться разницы в значении сопротивления будет крайне сложно.


        1. GarryC Автор
          13.12.2023 14:29

          То есть воспроизводимость сопротивлений будет большая, главное, чтобы рядом были?

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


          1. kvazimoda24
            13.12.2023 14:29

            Точный данных у меня нет, но думаю в пределах одной пластины вряд ли разброс будет более десятой процента. А в пределах одного кристалла на порядок, а то и два, меньше.


          1. kvazimoda24
            13.12.2023 14:29

            Немного разверну свой ответ.

            С технологической точки зрения резистор представляет из себя участок кремния P-типа, легированного чем-нибудь типа мышьяка. Думаю, нможно резистор сделать и из кремния N-типа, но сходу нагуглилось, что из P-типа. Понятное дело, что форму этому участку можно задать любую, но упростим до прямоугольника. Тогда сопротивление резистора будет зависеть от длинны участка, ширины, глубины легирования и степени легирования (концентрации носителей заряда).

            Ширина и длинна участка задаются маской из фоторезиста, которая в свою очередь определятся фотошаблоном. Ну, т.е. если проектировщик нарисовал поле 0,2 мкм на 1 мкм, то с определённой точностью таким оно и будет. Конечно, с помощью экспозиции и времени проявки можно в некоторых пределах менять эти размеры, но во-первых, это порочная практика, ведущая к браку, а во-вторых, два одинаковых резистора останутся в этом случае одинаковыми, просто сопротивление у них одинаково уедет в ту или иную сторону. После формирования маски происходит процесс легирования, это может быть диффузионное легирование, где пластину помещают в печь с атмосферой из какого-нибудь дико ядовитого газа, типа арсина, и ионы мышьяка диффундируют в кремний. Да, вокруг масочного окна в кремнии получается некое облако из ионов мышьяка, т.е. сама область будет заведомо больше окна, но зная температуру в печи, концентрацию газа и размер этого самого окна, можно расчитать полученный размер итоговой области. Соответственно, изменяя эти параметры, можно и изменять полученное сопротивление резистора. Но опять-таки, в рамках одной пластины все резисторы будут изменяться одинаково, т.е. между собой два одинаковых резистора так и останутся одинаковыми.

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

            В итоге получаем, что да, за счёт геометрических размеров пластины, за счёт возможных искажений объектива фотолитографической установки, каких-то допусков по времени экспонирования каждого кадра, толщины слоя фоторезиста, мы можем получить некоторую разность в размерах окон маски в разных областях пластины, но размер кристалла зачастую меньше размера кадра, т.е. в одном кадре несколько кристаллов. И вот в рамках одного кристалла эта разница будет на столько незначительной, если вообще будет, что позволяет строить такие схемы, которые никогда не заработают, если их собирать из рассыпухи. И не заработают именно из-за того, что вы никогда не подберёте два одинаковых транзистора или 100 одинаковых резисторов...


  1. Yurii69
    13.12.2023 14:29

    Хорошая статья! Тридцать три раза массаракш!


  1. select26
    13.12.2023 14:29

    Зачем сделано такое схемное решение, лично для меня остается загадкой и в документации фирмы нет ни малейшего намека на причину.

    Может для обеспечивания гистерезиса? Чтобы исключить дрожание фронта и улучшить детектирование.