‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Categories:

Гальваническая изоляция I2C и не только.

Чудо технологий - ADuM1250: в одном SOIC-8 корпусе размещается микросборка из двух кристаллов и нескольких микротрансформаторов - самая удобная фигулька для гальванической развязки I2C. Но как-то я упустил из виду, что два её порта неравноценны: логические уровни одного (#1, "совместимый с I2C", т.е. работать будет, но есть нюансы) не совпадают с уровнями другого (#2, "соответствующий стандарту" - т.е. характеристики совпадают со стандартными и для включения в протяжённые шины с множеством устройств этот порт гораздо более пригоден), дабы не было ситуации "bus lock". В принципе, при аккуратном монтаже чип можно установить зеркально, повернув кверху брюшком и выгнув выводы (очень осторожно - материал довольно-таки хрупкий), но по-хорошему надо бы переделать плату.

А я не буду ни извращаться с монтажом, ни перезаказывать платы из-за одной этой ошибки.
Я поставлю PCA9517 между этой платой и остальной системой! Она тоже не симметричная, но совсем иначе. Характеристики её порта A подходят для подключения к порту #1 проблемной платы, а порт B будет торчать в общую шину, к которой подключены порты #2 всех остальных ADuM1250 (забавно, эти чипы выпускаются как минимум двумя вендорами - NXP и Texas Instruments - и паспортные характеристики у них слегка разные).

ADuM1250

PCA9517 (NXP)

Side 1

Side 2

Port A

Port B

Vil

< 500 mV

<0.3*Vdd2

<0.3*Vdda

<400mV

Vih

> 700 mV (?)

>0.7*Vdd2

>0.7*Vdda

>0.7*Vddb

Vol

< 900 mV

< 400 mV

< 200 mV

< 600 mV



Видно, что относительно высокий максимальный уровень "нуля" у Side 1 (0.9В!) подпадает под условие <0.3*Vdda при питании Vdda == 3.3V (т.е. не более 0.99В), при этом выходной уровень "нуля" у Side 2 и нижний порог Port B совпадают - не более 400 мВ. То есть, если я всё правильно понял, к общей шине, в которую включено несколько микросхем ADuM1250 своими Side 2 (см. аппнот AN-913, рис. 8) можно включить одну микросхему PCA9517 портом B (две и больше тоже можно, но из-за того, что у этих чипов на порту B уровнень Vol больше, чем Vil, будут проблемы с передачей из сегмента шины в сегмент - впрочем, если это не важно, то и хрен с ним). Итого получается такой уродский выверт:

MCU ↔ (2)ADuM1250(1) ↔ (A)PCA9517(B) ↔|↔ (2)ADuM1250(1) ↔ MCU
                                      |↔ (2)ADuM1250(1) ↔ MCU
                                     ...
                                      |↔ (2)ADuM1250(1) ↔ MCU
                                      |↔ Main MCU

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

И всё это из-за того, что даташиты надо внимательнее читать. Буду утешать себя тем, что PCA9517 всё-таки не абы что, а буфер. Более дешёвый PCA9515 не подходит - он не распознает 900 мВ как "нуль".


Ещё в этом семействе нашлись ADuM140x - четырёхканальные изоляторы. Три версии направлений ("все четыре туда", "три туда, один обратно", "два туда, два обратно"), три скоростных класса - A (самый медленный, всего 1 МБит), B, C (самый быстрый, аж до 90 МБит).. и вот как раз "цэ" идеально подходит для решения задачи "а как бы это нам избавиться от петли в земляной цепи и при этом прокачать 30-мегагерцовый тактовый сигнал для АЦП". Причём всё это относительно недорого, что очень приятно.

Ещё более скоростные - ADuM344x (до 150 МБит) приобрести сложнее и целесообразность их применения в моём проекте сомнительна.
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments