leoniv (leoniv) wrote,
leoniv
leoniv

Category:

Fake FT232RL



В последнее время заказчики начали жаловаться на проблемы с преобразователями USB -> RS485, которые выполнены на микросхеме FT232RL. Проблема, в общем, известная - китайцы освоили выпуск клонов, которые почти повторяют оригинальную микросхему. А фирма FTDI, защищая свои интересы, в новых драйверах (начиная с версии 20814) применила интересный ход. При обнаружении поддельной микросхемы она выводится из строя и больше системой не определяется. Возник вопрос, как отличить оригинал, чтобы заказчику снова не поставить китайскую подделку? На моем компьютере все микросхемы, как оригинальные, так и поддельные, работают прекрасно. Потому что я всегда пользуюсь принципом "Работает - не трожь!" и ничего не обновлял уже лет 5. Но у заказчиков и Windows поновее, и автообновление обычно включено.



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

Вот как выглядит оригинальная микросхема:





А вот так выглядит подделка:





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

Поэтому нужны более достоверные методы отличия. Энтузиасты дизассемблировали фрагмент нового драйвера и установили, каким именно образом он повреждает поддельные чипы. Драйвер записывает во внутреннюю EEPROM чипа по адресу 0x002 нули (а это как раз PID устройства), а по адресу 0x03e записывает такой код, чтобы сошлась CRC (расположенная по адресу 0x03f). На оригинальном чипе эти операции ни к чему не приводят, потому что у него EEPROM имеет 32-разрядную организацию. При записи слова с четным адресом происходит только его буферизация, а при записи слова по нечетному адресу происходит запись сразу двух слов. Поддельный чип выполняет запись каждого слова, поэтому у него портится PID (становится равным 0x0000). Поэтому поддельный чип при первом подключении нормально определяется (пока данные в EEPROM верные), а после повторного подключения определяться перестает. Вот только интересно, не будет ли этот драйвер портить оригинальные чипы предыдущего поколения FT232BM с внешней EEPROM, которая имеет 16-разрядную организацию?

Чтобы снова увидеть поврежденный чип, нужно установить немного модифицированный драйвер. В файлы inf добавляются строчки с PID_0000, тогда он будет поддерживать как оригинальные, так и "испорченные" поддельные чипы. Но только до первого обновления драйвера.

Чтобы оперативно отличать оригинальные чипы от поддельных, я написал небольшую утилитку, которая пытается записать данные по четному адресу EEPROM. Если это удается - чип поддельный. Затем утилита восстанавливает прежнее значение. Кроме того, утилита позволяет восстановить PID (у оригинального чипа он равен 0x6001) без нарушения CRC. Конечно, этот номер пройдет только с установленным модифицированным драйвером.



Кстати, эта утилита определяет оригинальную FT232BM с внешней EEPROM как FAKE. Что вполне логично, ведь внешняя EEPROM позволяет записывать отдельно четное и нечетное 16-разрядное слово. Получается, фирменная закладка в драйвере покусает своих!

Для экспериментов я частично собрал две платки переходников на FT232RL, благо, несколько таких заводских плат валялось без дела. Одну собрал на оригинальном чипе, другую - на китайском. Оказалось, что есть более простой способ отличить чипы. На плате разведен дроссель в цепи питания FT. Я вместо него запаял резистор 10 Ом. Измерив тестером падение на этом резисторе, можно вычислить потребляемый ток. Оказалось, что у оригинального чипа падение равно 88.5 мВ (ток потребления 8.85 мА), а у китайского - 355 мВ (ток потребления 35.5 мА). Подделка оказалась очень прожорливой!



Не факт, конечно, что на этом поставлена точка. Говорят, что в самой последней версии драйверов от FTDI уже нет порчи PID, но с подделкой они все равно не работают. Говорят также, что китайцы выпустили новую версию подделки, которая обходит проверки. Ждем продолжения истории.

Tags: electronics, ft232rl
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 72 comments