И снова про китайские анализаторы (доработка клона USBee DX)

Так вышло, что мне подарили китайский клон анализатора USBee DX. Мне понравилось то, что он собран в алюминиевом корпусе, и у него есть нормальные аналоговые щупы. Вот так он выглядит на столе:

И вроде-бы всё мне в нём нравилось — и железка, и софт (ну разве что некоторые его притормаживания), пока я не увидел софт Saleae. Сначала это был шок: как быстро он работал, и сколько полезных мелочей было в нём учтено. Потом мне очень захотелось заполучить такую штуковину.

Краем уха я слышал, что все эти анализаторы собраны на одном контроллере и отличаются только прошивкой. Естественно, у меня зачесались руки добавить в эту коробку поддержку Saleae. Краткое гугление показало, что собраны они на CY7C68013 и прошивка в них каждый раз грузится в RAM, а во внешний EEPROM записаны только USB VID и PID.

Поскольку EEPROM там стандартный I²C, и используется в нём только первый банк (точнее, первые несколько байт), то подойдёт практически любая микросхема вида 24Cxx. У меня как раз валялась пара ненужных 24LC16B. „2 Кб хватит с лихвой“ — подумал я, и развинтил анализатор:

Как много уже где обсуждалось, USBee DX состоит из двух контроллеров CY7C68013A-56PVXC, соединённых хабом. К одному из них подключена пара АЦП и он отвечает за аналоговую часть (осциллограф), а другой — за цифровую часть (логический анализатор), его-то мы и будем «переделывать» под Saleae.

Единственная проблема: как видно из рисунка, китайцы решили сэкономить один EEPROM и соединили всё параллельно. Не долго думая, я припаял имевшийся у меня EEPROM на свободное место, правда он был в корпусе DIP, поэтому пришлось повесить его на проводах. Также я вернул на место недостающие резисторы подтяжки (3к), перемычки на WP и SDA, и убрал запраллеливающие smd-перемычки R12, R13. Теперь у каждого контроллера свой EEPROM, и надо их прошить: новый под USBee DX, старый — под Saleae.

Снимаем оба джампера с одного из EEPROM’ов: теперь один из контроллеров должен определиться как Cypress USB Generic / Cypress FX2LP / Cypress EZ-USB в зависимости от установленного у вас драйвера. Если девайс не определился, то идём сюда, если у вас Windows7 x64, как у меня; если у вас другая версия винды, то драйвер пак лежит тут. Теперь нам нужна утилита для прошивки: CyControl (для Win7x64) или CyConsole, которые входят в состав вот этого пака: SuiteUSB 3.4.

Итак, новый EEPROM мы припаяли, от контроллера его отключили (с помощью джампера), и видим в CyControl’е:

Следующим шагом нам надо прошить туда VID и PID. Сначала возвращаем джампер на SDA. Потом берём любой HEX-редактор*, создаём в нём новый файл, и вставляем туда 256 нулевых байт. Начало заполняем так: C0 XX YY ZZ WW, где XX YY ZZ WW — 4 байта VID и PID, записанных в обратном порядке. VID и PID для DX мне был известен (VID_08A9&PID_0015), и я его прошил:

Теперь ставим джампер на WP, снимаем оба джампера с родного EEPROM’а и переподключаем анализатор, устройства поменялись местами:

Ставим один джампер (SDA) на место. Тем же методом прошиваем в него VID_0925&PID_3881. Ставим второй джампер на место. И снова переподключаем девайс: ура, у нас в девайс-менеджере появился один USBee DX, и один Saleae Logic:

Запускаем оболочку Saleae и… она крашится:

Видать, не сильно она хочет работать с китайскими клонами. Краткий поиск в гугле не дал ничего хорошего, кроме того, что версии 1.1.xx не работают с пиратскими подами, а 1.0.xx прекрасно работали. Скачиваем, ставим, запускаем:

Красота! Только не умеет разбирать USB (хотя это и редко требуется). Кстати, софт Saleae версии 1.0.xx написан на .NET WPF, так же как и софт USBee Suite. Но при этом работает всё равно на порядки шустрее и плавнее, вот что значит прямые руки!

Выходы saleae и usbee dx не совпадают, вот примерное соответствие:
0 DCH → Ch 4
1 DCH → Ch 5
2 DCH → Ch 6
3 DCH → Ch 7
4 DCH → Ch 3
5 DCH → Ch 2
6 DCH → Ch 1
7 DCH → Ch 0
Наверное, сделаю для Saleae отдельный шнурок с щупами правильного цвета.

Но всё-же очень хочется завести свежий софт. Где-то в еепроме должен быть прошить идентификатор устройства, но я не стал искать где. Поэтому три условных перехода были исправлены на переходы безусловные (вы легко можете их найти по выдаваемым сообщениям): (см EDIT2 в конце поста)

Попутно, правда, оторвалось изменение заголовка окна, но кнопка Start/Start Simulation работает исправно. Кстати, софт переписали на Qt, видать чтобы портировать на мак и линукс, но разбор USB в нём всё ещё не появился.

Теперь хочется по мановению руки переключателя превращать анализатор обратно в USBee DX. Для этого берём движковый переключатель и припаиваем средний контакт к цифровому контроллеру, правый — к SDA старого еепрома, левый — к SDA нового. SCL остаётся общим: понадеемся, что конфликтов не возникнет. При этом надо аккуратно развешать резисторы подтяжки: один общий на SCL и по одному на пинах EEPROM’ов, а не контроллеров, как они висели на родной плате. У меня получилось вот так:

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

Собираем, переключаем на старый еепром, запускаем USBee Suite:

Вроде-бы всё работает как и было. Но запускаем аналоговую часть и тут нас поджидает засада:

По всем аналоговым телеканалам нам показывают ровный 0 (в данном случае один из каналов должен показывать то же, что и Dig0, а другой — шум).
Фак, мы убили Кенни! Наверное я спалил что-то, пока паял? Разбираем, смотрим питание ОУ и АЦП — на месте, смотрим выходы операционников обычным тестером — работают. Вешаем щупы цифровой части на выходы АЦП, (да да, вот так этому пробнику можно посмотреть внутрь самого себя, благо обе части — отдельные USB-устройства) — на выходах АЦП тоже всё нормально. Да что же это такое?!

Идём снова копать инет и форумы: оказывается, кроме VID и PID для нормальной работы надо таки прошить ещё какие-то числа, и калибровочные значения в EEPROM, теперь он начинается так: C0 A9 08 15 00 D2 04. Прошиваем — не помогло. Лезем в нутро USBee Suite.exe и видим, что оно хранит калибровочные данные начиная с адреса 0x60. Наугад забиваем остаток файла начиная с 0x60 байтами 0xFF (как у пустого еепрома). Вуаля!

Итак, мы получили два ЛА из одного всего-лишь допаяв один EEPROM и переключатель. А также получили кучу полезного опытана своих ошибках.

Наверное, стоит нормально откалибровать осциллограф (он врёт на 0,08 вольт). А также заставить работать свежий софт Saleae без залезания к нему в кишки, но на сегодня, считаю, хватит — пора спать…

EDIT: вынес полноразмерные картинки за ссылки.
EDIT2: спасибо dosikus и Kabron, с прошивками из этого поста софт Saleae заработал без использования бубна.
Также помогает убрать джампер с WP его еепрома, как сообщил Vga.
  • +11
  • 25 февраля 2012, 11:07
  • atd

Комментарии (30)

RSS свернуть / развернуть
голосовать не могу, просто респект )
0
Спасибо за статью. Было очень интересно и познавательно читать!
0
Не знаю что у вас там танцы с бубном…
У меня софт от Saleae 1.1.15 работает с самопальной платой и серийником от Kabron.
Может снова дело в пине Wakeup не притянутом к питанию ???
0
а «серийник от Kabron» где можно взять?
0
+1
Он должен USB Full speed декодировать.
У тебя точно клон?
0
  • avatar
  • a9d
  • 25 февраля 2012, 12:49
Кто должен? С logic16 не путаешь ????
Плата самый что ни наесть клон :)))
0
Это клон Logic, а не Logic16
0
А клона Logic16 и нету пока.
Повторюсь моя плата клон Logic_U, USBeeAX — по схеме и прошивки Kabron.
Единственное что чип на 100 лап…
0
Видать, не сильно она хочет работать с китайскими клонами. Краткий поиск в гугле не дал ничего хорошего, кроме того, что версии 1.1.xx не работают с пиратскими подами, а 1.0.xx прекрасно работали.
Еще одно решение — сдернуть с ЕЕПРОМ для Saleae джампер защиты от записи.
0
  • avatar
  • Vga
  • 25 февраля 2012, 18:12
Спасибо, будет ещё одно решение. Но пока что помогла прошивка от Kabron’a )
0
1.1.15 не работает при установленной защите от записи. Сам прыгал пока не додумался снять защиту.
0
Забавно получается, для USBee защита нужна, а для Saleae не нужна.
0
Как я понял именно так. Точнее пришел экспериментальным путем:)
0
Кстати, у меня сейчас работает нормально с поставленной на место защитой. Видать однажды что-то записывает в еепром, а потом больше не меняет.
0
atd крут, спасибо ему
0
  • avatar
  • tugo
  • 26 февраля 2012, 00:28
Эдорово.
Вопрос. А USB изолирован? Подозреваю, что нет. Так что можно легко убить PC.
0
  • avatar
  • Myron
  • 26 февраля 2012, 03:54
Да, во всех дешёвых анализаторах USB не изолирован. Причём это не только в китайских клонах, но и в оригиналах.
Всё потому что за боле-менее адекватные деньги изоляторы есть только на Full-speed (12Mbps) а нам тут надо Hi-speed (480Mbps).

Да и в радиолюбительской практике проще всего соединить проводом корпус PC и землю (макетной) платы, и не париться.
0
Подскажите, заинтересовал данный анализатор в качестве осциллографа для начинающего (цена в 100$ приемлемая и доставка бесплатная, а с большими и дорогими боязно связываться то ли на таможне застрянет то ли дойдет в разобранном виде ), так вот вопрос стоит он того или есть лучше аналоги?
0
  • avatar
  • Dr333
  • 26 февраля 2012, 09:24
Сейчас я бы лучше взял китайскую подделку под Saleae (15$), т.к. там негде накосячить, а 8 цифровых каналов обычно хватает + отдельный DSO
0
есть уже готовые клоны USBee DX с встроенным двойным EEPROM и переключателем, я как раз написал обзор на свой. От вашего кроме этого он ничем не отличается, просто микросхемы в других корпусах.
0
Ссылка уже мертва. Не подскажете продавца, у которого на данный момент можно купить клон usbee + saleae, с аналоговой частью и не требующий переделки?
0
Я поступил несколько проще. На самом деле не надо ничего перепаивать, переносить резисторы подтяжки, и т.д.

1. Напаиваем на плату все недостающие детали, то есть микросхему EEPROM, резисторы подтяжки (3 штуки) и два джампера. В принципе, дальше можно уже ничего не переделывать, это решение вполне работоспособно, просто будет не очень удобно переключать.
2. Сдергиваем джампер на первом EEPROM, и ставим на втором, то есть на том, который припаяли. После установки софта от Cypres устройство будет опознаваться как два кита. Прошивам lic от Saleae. Теперь устройство видно как ДВА Saleae Logic (чипов-то два). Запускаем оболочку от Saleae, даем на первый пин какой-нибудь сигнал (можно калибровочный от осциллографа), и смотрим, видно ли его в оболочке. Если не видно, то отключаем в менеджере устройств один из Saleae Logic. Если опять не видно, подключаем его, и отключаем другой. В системе должен остаться один, второй выключен — это нормальное состояние.
3. Ставим в удобное место переключатель, и соединяем его с двумя джамперами (теми, которые стоят на линиях SDA микросхем памяти). Таким образом будет подключена или одна, или другая микросхема, в зависимости от положения переключателя.
4. Все. Теперь в зависимости от переключателя имеем или DX или Saleae.

Если подключаем к другому компьютеру, надо точно также определить, с каким чипом работает оболочка Saleae, и отключить другой. Эти настройки запоминаются в системе, и делать это надо только один раз.

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

У меня бОльшая часть проводов из-за еепрома в корпусе дип (не было под рукой нормального). А резисторы все, кроме одного, сели на те места, которые им и полагались. Ну и некоторые надо выкинуть, да. Зато не надо лезть в девайс-менеджер на каждом новом компе :)
0
Ктсати, было бы неплохо, если бы ты привел принципиальную схему на доработку — как было и как стало.
0
Госпоа, повернтие плиз лицом в нужную сторону, приобрёл себе такой же DX с дино, подключил, определился как две штуки «Half of a USBee DX Test Pod». Проблема следующие:
1. Старый софт запускается и даже как-то работает, но с каждым новым стартом окошко с частотой краснеет и частота понижается автоматом, её можно опять руками конечно вернуть, но всё же как-то не понятно.
2. Новый софт запускается, говорит что конектед, при первом же старте вся эта песня вываливается отображая невнятную кривулину на осциллографе, изменения частоты семплирования и буфера ничего не дают.

Вот мне и интересноэто у всех так, или я мож чё не так делаю?
Автор в красках описывает как новый софт работает, но чёт у меня не хочет.
Девайс ещё не переделывался, ничего не допаивалось, и не шилось…
0
Купил точно такую, запросил у продавца софт. Он прислал. Все запустилось.
0
Время доброе, купил я себе у братьев китайцев вот такую платку на ней стоял eeprom at29с128 при попытке прошить его писал Falled. Подумал может епром накуренный запаял туда at2416b (от старой валяющейся без дела оперативки). На удивление епром зашился, но после реконекта CyControl’е перестал видеть платку. В системе появился usb контроллер PID 0014 VID 08A9 (система не смогла обнаружить драйвера на него, в ручную драйвера киклона тоже не хочет есть) ну и в USBee естественно тоже не подхватилась платка. Подскажите в что делать? в чем может быть проблема и почему киклон перестал видеть плату.
0
p.s. Удалось запустить Saleae logic (естественно прошитый под него). USBee так и отказывается подхватывать девайсину
0
АЦП какое название имеют, посмотрите пжлста
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.