Осциллограф Rigol DS1054Z и его небольшая программная доработка

Эта модель осциллографа не новая и уже несколько лет назад обозревалась здесь. Но тот обзор был «взглядом снаружи» и лишь поверхностно касался внутренностей. Мой обзор будет ориентирован именно на внутренности устройства и его программное обеспечение. Предупреждение: Много букв и картинок. Заранее приношу извинения за многословность — некоторые вещи не получается изложить кратко.


С 2009 года я имел в хозяйстве более старую модель Rigol — DS1052E. К тому времени он уже успел отхватить в США награду «Продукт года» и был заметной вехой в развитии осциллографов с точки зрения цена/качество. В принципе, модель не сильно устарела и сейчас, только экран маловат и разрешение всего 320х200. Но в последнее время часто приходилось работать с SPI и желание трех-четырех каналов становилось все сильнее. Последним толчком послужила просьба друга найти ему нормальный недорогой осциллограф. После уточнения, что двухканального более чем достаточно, а 4 канала не требуется даже в теории, я расстался с DS1052E и заказал себе DS1054Z.

Некоторые моменты, связанные с публикацией обзора
Этот обзор мог появиться еще в прошлом году, но я покупал осциллограф в «неправильном» месте. Про конкретное место покупки писать не буду, скажу только, что покупал у местных «спекулянтов». Это чуть дороже, но немного быстрее и, главное, гарантирует отсутствие таможенных проблем и наличие (теоретически) гарантии.
Что хуже — я увидел место своей покупки в списке магазинов, но не дочитал правила до пункта 1. В силу этого, обзор более полугода валялся в отклоненных — стирать жалко, а причин для запроса перемодерации нет. Но в конце марта я, наконец, довел измененную прошивку до состояния, когда можно публиковать и решил изменить обзор с переносом его в другую категорию.
Все-таки большинство обзоров внутренностей DS1054Z на английском, да еще и в виде ютубовских роликов. Если долгое текстовое изложение не заинтересует — на всякий случай заранее приношу извинения за отнятое время.
Мои критерии выбора осциллографа
Выбирая любое устройство, нужно определить для себя, как планируется его использовать. Устройство, универсально-пригодное для всех или многих приложений, в большинстве случаев будет либо дорогим, либо универсально-средне-пригодным к работе. Я выбирал осциллограф под свои критерии, не претендуя на их универсальность для всех.

Первый свой критерий я уже озвучил — 4 канала. Собственно, суть замены и состояла в переходе от двух к большему числу каналов. Т.к. более чем четырехканальные широкополосные осциллографы — большая редкость (и стоимость!), выбора по сути и нет. Остается только четырехканальный вариант.

Второй критерий — относительная широкополосность и частота сэмплирования не менее 1Гс/с. Собственно, одно с другим пересекается. При работе с импульсными сигналами, все красивые меандры на частотах, близких к полосе пропускания, превратятся в синусоиды, а о наблюдении выбросов на фронтах/спадах можно и не мечтать. В этом смысле 50-100-200 МГц — оптимальная полоса.
Выше 200 устройства обычно становятся дорогими (причем все устройства — и осциллограф, и кабели к нему, об активных пробниках и не говорю), а их влияние на схему чрезмерным. 7-10пф собственной емкости кабеля — это очень немало на 100 МГц.
Ниже 50 МГц уже сложно наблюдать даже сигналы на 10-20 МГц, а это вполне распространенные скорости передачи. В этом случае, сигнал очень распространенного генератора на 24 МГц будет уже почти синусоидой.
Относительно высокая частота сэмплирования тоже нужна. Мой личный эмпирический критерий — не менее 10 точек на период. Для четкого наблюдения формы сигнала — ближе к 50-100. На 4-5 точках можно лишь понять, что по проводу что-то идет. Поэтому, если брать модель менее чем на 1 ГГц (например — 500 МГц), сигналы выше 50 МГц могут выглядеть непонятными дергающимися кривульками. Сразу оговорюсь, что это не касается строго повторяющихся периодических сигналов. Для тех сигналов есть всякие полу-честные стробоскопические режимы (то, что в документации на многие осциллографы обозвано «Эквивалентная частота дискретизации» и указаны бешеные гигагерцы).
При этом я готов мириться с разделением частоты сэмплирования по каналам (т.е. на 2х — 500 МГц, на 4 — 250 МГц). Нет, разумеется, если бы модели с отдельным честным АЦП на каждый канал стоили, как и с «нечестным» — выбор однозначен. Но таковых как-то не просматривается. Аналогично — и с более высокой частотой (2ГГЦ). Стоимость таких устройств растет в разы.

Третий критерий — устройство должно быть не новым и уже тестированным другими людьми. Хотя бы полгода/год. Как показывает практика, обещания в стиле «сейчас ошибки есть, но мы вот-вот их всех исправим» срабатывает менее чем в половине случаев. И ждать исправления год-другой (или вечно) — не хочется. В этом смысле DS1054Z тоже отметился — ОЧЕНЬ неприятную ошибку с джиттером сигнала при изменении режима синхронизации исправили только спустя пару лет с момента выхода. Поэтому свежие устройства или устройства, не накопившие заметного количества отзывов пользователей, я принципиально не рассматриваю.

И последний по списку (но не по важности) — цена. Осциллограф для меня не является фетишем или прибором для непосредственного зарабатывания денег. Поэтому брать профессиональное (и недешевое) устройство — неразумно, достаточно любительского или полупрофессионального уровня. Технически, я и так при необходимости имею доступ к устройствам, имеющим на порядок (десятичный) более высокие характеристики. Но они не под рукой и, скажем так, их можно назвать переносными весьма условно. Но и дома возникает желание/необходимость проверить внезапно возникшие идеи. Не говоря уже о чисто хоббийном применении или «посмотреть, почему БП не работает».
Если говорить о конкретных цифрах, то мое ограничение было $500, включая все затраты.

Отдельным бонусом Rigol'у идет то, что с Rigol'ом я уже давно работал и привык к его глюкам фичам. Помнится, что попытка посмотреть на очень недешевом Тектрониксе (но без большой памяти в стиле DS1052E) один хитрый длинный сигнал привела к тому, что я просто не смог сделать это. А дома на втрое (если не вчетверо) более дешевом китайце сие делалось совершенно элементарно. Это не к тому, что Тектроникс — хлам, просто тогда у них не было такой нужной фичи даже на моделях среднего уровня.

И, разумеется, при выборе я учитывал возможность/легкость раскрытия дополнительных возможностей какими-либо средствами. Что также дает бонус Rigol'у.

В результате поисков согласно вышеуказанным критериям, ничего лучше DS1054Z я не нашел. Да, у него есть некоторое количество недостатков и багов, но идеальных аппаратов нет, и тем более — нет за такие деньги.

По разным причинам мне не понравился OWON XDS3104E, а всякие KEYSIGH, Tektronix, да и Siglent явно не вписываются в бюджет. GDS-71054B идет чуть выше бюджета, и не вполне понятно, можно ли его «дотянуть» до 71104 (это модель на честные 100 МГц, которая совсем не вписывается в бюджет).

Комплект поставки


Комплект прибора минимально-достаточный:
1) Провод питания
2) Четыре щупа на 150 МГц
3) Кабель USB
4) Бумажки и мини-описание

Провод питания угловой, и (на мой взгляд) с неправильным углом — разъем питания установлен сбоку, но комплектный провод направлен не к центру прибора, а наружу. Вид сзади:
Это особенно обидно, поскольку входные и выходные вентиляционные отверстия сильно утоплены в боковинки корпуса, и прибор можно ставить вплотную к стенкам полки не боясь перекрыть поток воздуха. Уточню — справа можно, слева угловой провод питания будет выходить за габарит на 3-4 сантиметра. В этом случае прямой провод получается удобнее, но будет большой зазор сзади. Пока углового провода, развернутого на 180 градусов, найти не удалось.

Щупы — стандартные для Rigol'а, PVP2150. Если их и выпускает другой производитель, то специально для Rigol'а, даже на коаксиальном кабеле нет никакого текста, кроме «RIGOL» и «MADE IN CHINA». Еще хочется отметить, что аксессуары у Rigol'а не дешевые. Есть приблуды для DS1000Z, которые стоят в 10 (десять!) раз дороже самого прибора. Пассивный щуп на 500 МГц (RP3500A) стоит $231. Причем примерно за эту цену он реально и продается. Железка для монтажа в стойку обойдется в $144 (набор обычных крашеных железок на 4U и два десятка стандартных винтов к ним). Доставка в стоимость не входит.
Комплектный PVP2150 стоит $35.

В связи с этим, позволю себе маленькое отступление о соотношении цен на старую и новую модели. По сайту DS1052E дешевле DS1054Z на $53, в продаже разница будет несколько больше (по rurigol — около $60). Но к DS1054Z в комплекте идет на два кабеля больше. $35 * 2 = $70. Если исходить из формально-математического расчета, стоимость самих тушек получается практически одинаковой, а то и с перевесом в сторону DS1052E. Вот такой он, маркетинг…

USB кабель — 28AWG/2C+28AWG/1P, ферриты на концах имеются. Маркировки Rigol'а не имеется ;)

Один шнур и USB:


Комплектные бумажки особого интереса не представляют. Описание очень краткое, полное лучше взять с сайта. Лично я сразу засунул их в секцию шкафа, где хранятся подобные описания из категории «выбросить жалко, но не потребуются никогда».

Возможные альтернативы DS1054Z у Rigol'a.


Когда я выбирал обновку, то, разумеется, посмотрел — нет ли другого варианта Rigol'а, отвечающего исходному критерию «недорогой на 4 канала». Далее изложены краткие результаты сравнения линеек Rigol.

Итак, по сериям:

Простая (не Z) 1000-я серия несколько устарела (ей уж лет 10), экран меньше, а о разнице в стоимости с учетом комплекта щупов я уже писал. Каких-то существенных преимуществ у этой серии нет. Ранее у Rigol'a на сайте было разделение на 1000В/1000D/1000E/1000CA (там заметные отличия в аппаратуре), сейчас часть моделей перестали выпускать, а оставшиеся условно свели в одну серию. Видимо, назвать получившуюся серию «старье» показалось не политкорректным, поэтому назвали «1000 Series».

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

2000-я серия не имеет четырехканальных моделей, да и заметно дороже серии 1000Z. Модели 2000E можно относить к этой серии весьма условно — частота АЦП у них 1Г/с (как и у 1000z), а даже младшие модели «честных» двухтысячников (с 2Гс/с) сразу минимум вдвое дороже. Если брать модель на 200 МГц — более чем втрое дороже (и всего два канала!). Это довольно старая (почти как и 1000) серия. Доступен хакерский апдейт, подобно 1000 и 1000z.

На серии 4000 возвращаются модели на 4 канала, но цена становится не совсем для личного использования — они от $2000 и выше (самая старшая модель — более $8000). Что там с возможностью взлома на большие частоты — вопрос открытый, но весьма вероятный. По крайней мере, официальная опция софтового обновления с 200 до 500 МГц на сайте Rigol'а есть. Всего за $6064.

Про серию 6000 промолчу по понятным причинам.

Если вернуться к 1000z, то, несмотря на внешнюю многочисленность моделей, по факту все они — это DS1054Z с добавлениями. Есть следующие опции:
1) Доступные частоты (1054/1074/1104)
2) Генератор сигналов (постфикс S)
3) Возможность (разъем) подключения логического анализатора (постфикс Plus)
4) Логический анализатор (префикс MSO вместо DS)

Есть еще всякие опции декодеров, триггеров и т.п., но они не зависят от модели и едины для всех тушек. Если просуммировать официальную стоимость всех опций и частот, разрешаемых программным апгрейдом, то получится около $1000. Впрочем, сейчас Rigol зачастую дает бесплатно эти опции при покупке нового аппарата.

Хотя все 13 моделей в линейке получены путем добавления функций к базовой модели DS1054Z, у самого DS1054Z опции официально недоступны — считается младшей моделью со всеми вытекающими.

По ценам опций раскладка получается следующая (они немного зависят от других опций):
50->70 МГЦ: +$70
70->100 МГц: +$50..$100
Разъем для логического анализатора: +$40..60
Полный логический анализатор: +$180..230
Генератор: +$180..200

Про опцию частот написано неоднократно — это программное ограничение, никакой дополнительной аппаратуры не требующее. Элементная база идентична, подозрения о разбраковке по частотам пока ничем не подтверждены, а по тестам отличия между моделью на 100 МГц и разблокированной 50 МГц получаются такого же порядка, как между разными оригинальными на 100 МГц.
По поводу легкости разблокировки ходит относительно достоверная конспирологическая теория, что ситуация выгодна самому Rigol'у. Вставить в прошивку стойкий криптоалгорим, не позволяющий разблокировку без модификации прошивки, довольно несложно даже студенту. Вместо этого, уже более 10 лет Rigol для проверки валидности ключа используются слабые, легко реверсируемые алгоритмы. Понятно, что серьезные организации не будут заниматься взломом прошивок. Rigol'ы есть в реестре СИ, и не думаю, что взломанному аппарату дадут свидетельство о поверке. В то же время, возможность легкого апгрейда будет работать более чем хорошо как реклама марки. Осциллограф с набором опций, обошедшийся домашнему пользователю в $400, при официальной покупке организацией потянет на более чем $1300.

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

Вот передняя панель моего аппарата:

Вот полнофункциональный MSO1104Z:

Видно отсутствие двух кнопок под CH4.

Фрагмент моей передней панели крупнее:

А теперь тот же фрагмент в момент включения аппарата и теста светодиодов:

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

Опция Plus включает в себя разъем на передней панели и уже упомянутую кнопку. Стоимость по комплектующим — явно не более $5. Вот этот разъем с кабелем:
Rigol хочет за него от $40 и выше. Были ревизии основной платы Rigol с местом для установки дополнительного чипа, но реально он никогда туда не ставился. Сейчас вся электроника логического анализатора установлена во внешнем модуле RPL1116. Если потом покупать отдельно, RPL1116 обойдется в $293. В сумме с опцией Plus — порядка $350. Поэтому если нужен логический анализатор от Rigol, лучше купить его сразу в версии MSO (там полный комплект: и разъем, и RPL1116 вместе) — будет почти вдвое дешевле.

Вообще, опция логического анализатора обходится дорого. Разница между DS1054Z и MSO1074Z — $300. За эти деньги можно взять более чем неплохую приставку к компьютеру. Из своего личного опыта могу сказать, что в большинстве случаев достаточно либо пятибаксового анализатора на 68013, либо 4х каналов осциллографа. Логический анализатор Rigol целесообразен в довольно узкой области, когда:
1) Число сигналов более четырех и не более 16.
2) Частота больше 50 МГц (короткий отрезок 68013 может захватить и на 48 МГц, если с доработками)
3) Частота меньше 100-150 МГц
4) На плате есть выводы для подключения тест-клипс.

Добавлю, что при отладке FPGA проще и удобнее использовать функцию встроенного логического анализатора. Для Альтеры она поддерживается для всех сколь-нибудь серьезных чипов (основной критерий — наличие блоков памяти), у Xilinx тоже что-то такое имеется.

По поводу частот. Несмотря на анонсируемые частоты захвата в 500 МГц и выше, на частотах выше 100 МГц клипсы логического анализатора вносят такое влияние в схему, что ее поведение становится совершенно непохожим на состояние без клипс. Но даже если и это не учитывать, позволю себе привести выдержку из описания логического анализатора серии 1000z:
Peak Detect Digital channel: 4 ns
Minimum Detect Pulse Width digital channel: 10 ns
Т.е. пики менее 4 ns анализатор имеет право вообще не заметить, а полнофункционально он может работать с частотами менее 100 МГц. Также нужно учесть, что при использовании 8 каналов ЛА остается только 3 канала осциллографа, при 16 — только два.

На мой взгляд, проще и выгоднее взять приставку к компьютеру типа LA5016, к которому есть SDK для написания своих анализаторов. По скорости захвата близко, а стоит менее $200. Или hantek на 32 канала… или еще много вариантов, в зависимости от потребностей и кошелька.

Генератор представляет собой небольшую дочернюю плату, устанавливаемую на разъем основной платы осциллографа:

К ней подключены два отдельно монтируемых BNC-разъема, выходящие на заднюю часть прибора (рядом с существующим разъемом).
Выглядит это так:

Дополнительно, на передней панели имеется еще кнопка (Source, ниже предыдущей). Теоретически, генератор полезен и, на первый взгляд, соответствует Rigol-овскому DS1022z. Совпадают частота сэмплирования (200 МГц), число каналов (2), разрядность ЦАП (14) и максимальная частота сигнала (25 МГц). Но, если присмотреться, то отличия есть. Во-первых, точность частоты. Для DS1022z это 1-2 ppm, для встроенного — 50-100 ppm. 50 ppm — это обычная точность кварца среднего уровня. Видимо, именно такой и стоит на дочерней плате. Шаг выставления частоты также отличается (1 мкГц против 0.1Гц). С длиной памяти сэмплов отличия еще больше — 2Mpts против 16Kpts. Причем в отдельном генераторе память можно раскрыть до 16Mpts (без аппаратных доработок, софтовым ключом). Аналогичные отличия есть и в скорости нарастания, точности амплитуды, джиттере, THD. Это все можно было бы и простить, если бы модуль стоил порядка $50-100. Но отдельно плата не продается и в DS1054Z не устанавливается. Т.е. разница по стоимости между DS1054Z (без генератора) и DS1074Z-S (самая дешевая модель с генератором) будет $260. Учитывая, что за $359 можно купить целый отдельный генератор DG1022Z, имеющий свой экран, цифровую клавиатуру для ввода частоты, значительно большую память точек, локальную сеть, больше выходов BNC и лучшие параметры, получается не так интересно.

А простенький отдельный китайский генератор с 100ppm частоты обойдется существенно дешевле.

Итак, если оставить только «знаковые» модели, получается:
$400 — DS1054Z (без генератора и ЛА)
$660 — DS1074Z-S (с генератором)
$700 — MSO1074Z (с ЛА)
$900 — MSO1074Z-S (с генератором и ЛА)

На мой взгляд, если нет требований к компактности, лучше взять DS1054Z, программно раскрыть его до DS1104Z и (при необходимости) докупить отдельный внешний генератор и логический анализатор-приставку к компьютеру. Как-нибудь «сэкономить» с аппаратными опциями, используя хакерские методы, невозможно — добавить кнопки и разъем на переднюю панель не сложно, но потребуется еще блок логического анализатора, стоящий примерно те же $300, а модуля генератора и вовсе нет в свободной продаже.

Отличия от DS1052E.


Если сравнивать с предыдущей моделью, то (кроме увеличения количества каналов), принципиальных отличий не очень много. Экран стал более четким, стало вдвое больше контекстных кнопок. Правая часть передней панели несколько сжалась (отдавая место экрану). Самое непривычное отличие — другое расположение кнопки включения, первое время рука на автомате тянулась к верхней крышке.
В отзывах некоторые владельцы жаловались на сильный шум вентилятора. Да, шум есть, но по моим ощущениям совершенно такой же, как и в DS1052E. Как по силе, так и по тональности. По сути, это даже не столько шум вентилятора, сколько шум воздуха, проходящего через все дырки и извилины внутри осциллографа. Уменьшать его за счет большего нагрева внутренности — не самая лучшая идея.
Отличия в менюшках для меня оказались не существенными — чуть больше пунктов, чуть иначе расположены.
Габариты прибора остались практически прежними, на столе он встал точно на место прежней модели.

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

Что внутри

Обзор был бы совсем неинтересен без «вскрытия». Вскрытие будет производиться по двум направлениям — аппаратура и анализ прошивки.

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

Первый блок осциллографа, куда приходят сигналы — входные усилители. В DS1054Z их четыре штуки, все каналы одинаковы. В отличие от многих других, тут нет отдельного канала запуска. В классическом осциллографе канал запуска подключался к компаратору, определяющему момент начала развертки. Для нормального отображения сигнала в аналоговых осциллографах приходилось применять специальные линии задержки, обычно представляющие собой моток (или отрезок) коаксиального кабеля. В цифровых для этого используется память.
В DS1054Z источником запуска можно выбрать любой из каналов. Никакого отдельного компаратора тоже нет, сигналы сравниваются после оцифровки. Это дает возможность введения сложных триггеров, сильно упрощает схему и работу синхронизации, но имеет и свои минусы.
С правой стороны сзади расположен один BNC-разъем. У него две выбираемые функции. Через него может выдаваться сигнал соответствия/несоответствия осциллограммы и задаваемого шаблона. Для домашнего использования это практически бесполезная функция.
Также этот BNC может быть выходом срабатывания триггера. Вот тут и проявляются подводные грабли. Сигнал триггера запуска формируется программно, путем обработки отсчетов АЦП уже в цифровом виде. Как следствие — огромная задержка относительно входного сигнала, обусловленная задержками внутри АЦП (до 128 тактов) и при дальнейшей передаче. Суммарно получаются сотни наносекунд. Сюда еще добавляем имеющийся джиттер относительно исходного сигнала в единицы наносекунд (обусловлен частотой сэмплирования АЦП и частотами обработки в цифровой части). Получившийся в результате сигнал запуска становится употребим с большими оговорками. Вот скриншот с примером:

В канал 2 подан исходный сигнал. Выход триггера соединен кабелем с входом 3. Курсор А установлен на момент срабатывания триггера (-4нс, но это не принципиально). Курсор B установлен в самое начало фронта выхода триггера. Результат — задержка в 350нс. Если менять уровень триггера (пометка «T» справа), то задержка совершенно не меняется.
Впрочем, если нужно синхронизировать внешний логический анализатор, имеющий буфер и настраиваемое положение триггера запуска, все не так и плохо. Но иметь в виду эту задержку нужно, т.к. выход аппаратного триггера запуска у более дорогих аппаратов дает задержку в сотню раз меньше.

Каждый из каналов входных усилителей выполняет несколько функций:
1) Усиление/ослабление входного сигнала для приведения его в диапазон работы АЦП.
2) Управление полосой сигнала (аналоговый фильтр низких частот)
3) Переключение между открытым и закрытым входом. Если несколько упростить, то в режиме закрытого входа в цепь подключен конденсатор, отсекающий постоянную составляющую сигнала.
4) Согласование с входом АЦП. В большинстве современных скоростных АЦП используется дифференциальный вход. Входной усилитель получает сигнал через один провод (коаксиальный), а выдает в АЦП два сигнала (взаимно инверсных). Дифференциальная линия повышает устойчивость к помехам.

Входные схемы с передней стороны:

Хорошо видно, что два канала имеют не только идентичную схему, но даже расположение компонентов совпадает. Кроме дискретных компонентов, в схеме присутствует сдвоенный низкошумящий усилитель TL072С, трехканальный коммутатор HC4053 (третий канал которого явно заземлен и не используется), 8-битный сдвиговый регистр 595 (SN74AHC595) и цифровой сдвоенный потенциометр AD5207. HC4053, TL072C и AD5207 поделены пополам между каналами.

Задняя часть:

С обратной стороны все каналы одинаковы, микросхемы не делятся. Кроме дискретных элементов имеется вспомогательный усилитель TLC274 (маркировка P274), коммутатор HC4053 (на нем собран эрзац-ЦАП), реле FTR-B3-GA4.5Z (smd, standard type, напряжение — 4.5В, покрытие — золото по никелю) и твердотельное реле cosmo y214s.
Если кого-то интересуют подробности, то на eevblog были рукописные картинки с фрагментами схем входных цепей.
Пока же отмечу только тот факт, что ВЧ-цепочка входного усилителя собрана целиком на дискретных элементах. Все микросхемы обеспечивают только управление уровнем, компенсацию постоянного смещения и другие вспомогательные функции. Кстати, набор этих микросхем (и релюшек) практически не изменился по сравнению с DS1052E. В DS1052E использовалась дополнительная ВЧ-микросхема (AD8370?), которая в DS1054Z заменена на несколько транзисторов.

Далее все каналы сходятся к АЦП:

Маркировка Rigol не должна смущать, энтузиасты давно докопались, что это фактически HMCAD1511 от AD. В старом DS1052E стояли пять двухканальных AD9288 (причем есть подозрения, что в слегка «разогнанном» варианте).

Внутри HMCAD1511 находится четырехканальный переконфигурируемый АЦП, обеспечивающий суммарную скорость по всем каналам в 1 ГС/с. Соответственно, при двух каналах — по 500, при четырех — по 250.
Выходные каналы — последовательные (LVDS). Микросхема стоит на сайте AD $47.
На картинке хорошо видно, как сверху подходят 4 дифференциальные линии от входных усилителей.
Справа от АЦП на картинке расположен синтезатор частоты ADF4360-7. Тоже от AD. Он заметно дешевле — $3.3.

Если поверхностно прочитать документацию, может возникнуть вопрос — как прибор обеспечивает 12 бит при 8-битном АЦП? Ответ довольно прост — суммированием отсчетов. В 12-битном режима сумма 16-ти последовательных отсчетов даст дополнительные четыре бита, при этом пропорционально уменьшая частоту. И это не Rigol такие «жулики» — подобный механизм есть в приборах многих фирм. К сожалению, скоростные АЦП на 12-14 бит дороже, а схемотехника осциллографа становится сложнее. Осциллографы с более чем 14 аппаратными битами нужно очень поискать (и запастись чемоданом денег) — это одна из причин, почему обычным цифровым осциллографом невозможно протестировать качественный аудиотракт. Его восьми бит разрешения попросту не хватит для вылавливания искажений на уровне 16-24-битного звука.

Общая схема функционирования следующая:
1) Процессор настраивает синтезатор частоты и АЦП
2) Синтезатор выдает нужную частоту на АЦП.
3) АЦП преобразует входные сигналы и выдает по LVDS (там несколько линий данных и синхронизации) в сторону FPGA.

Что такое FPGA и зачем она в осциллографе
FPGA (Field-Programmable Gate Array) или по-нашему — программируемая логическая интегральная схема (ПЛИС). Как часто бывает, расшифровка аббревиатуры не дает четкого понимания, чем ПЛИС отличается от микроконтроллера. Если несколько упростить, то ПЛИС — это такая большая макетка с набором 155ЛА3 и 155ТМ2, к которой прилагается большой моток МГТФ. Еще нужен «паяльник» от производителя ПЛИС, причем в большинстве случаев сколько-нибудь хороший «паяльник» не бесплатен.
Первые ПЛИС были очень небольшие — на единицы-десятки логических элементов (бывало даже без триггеров — только чистые логические функции) и брали скорее компактностью корпуса и гибкостью в работе, чем стоимостью. Сейчас за пару десятков $ на том же Ali вполне можно купить тестовую плату с ПЛИС на несколько тысяч логических элементов, причем под словосочетанием «логический элемент» понимается не 155ЛА3, а существенно более сложная схема. Например, для дешевых серий Altera (Cyclone) логический элемент состоит из блока вычисления логической функции (из четырех входных параметров получается один выходной) и D-триггера. 5000 таких произвольно соединенных элементов с произвольными функциями в каждом элементе могут заменить очень большую макетку. А из-за компактности все это может легко (ну, почти легко) работать на тактовой частоте в 200-300 МГц (и даже выше), что для стандартных печатных плат такого размера практически недостижимо. Развитие ПЛИС шло не только экстенсивным путем — по дороге они обзавелись специализированными модулями (блоки памяти, перемножители, синтезаторы частот, специальные скоростные интерфейсы и т.п.). Лет 10-15 назад началась мода делать прямо внутри ПЛИС процессор на логических элементах. Сейчас история завершила очередной виток и производители стали встраивать уже готовое процессорное ядро прямо в кристалл ПЛИС. На эту тему можно говорить долго, остановимся на принципиальном отличии ПЛИС от микроконтроллера.
Если отбросить дополнительные аппаратные блоки (видеоконтроллер, последовательные порты, сеть и т.п.), то процессор ориентирован на выполнение последовательности команд. ПЛИС же оперирует переходами из одного состояния в другое, причем за один такт тысячи триггеров могут поменять свое состояние. В микроконтроллере в каждый момент времени выполняется одна команда (если микроконтроллер большой, с несколькими ядрами — две, четыре, пусть 8, но немного), а скорость выполнения последовательности команд не совсем стабильна (в силу переключения задач, конкуренции доступа к памяти и т.п.). В ПЛИС в каждый момент времени одновременно будут выполняться тысячи операций. И, главное, точность их выполнения зависит только от точности тактовой частоты. Если обычный микроконтроллер будет «дергать» ножкой, то он сможет обеспечить частоту в мегагерцы, может — десятки мегагерц. И только на одной ножке, независимое управление несколькими выводами сразу понизит частоту. ПЛИС же может независимо управлять всеми своими ножками с частотами в сотни мегагерц. Ограничением для ПЛИС обычно является электрическая мощность выходного буфера и его способность «раскачать» емкость линии на высокой частоте.
Основной недостаток ПЛИС в том, что она работает медленнее, чем готовый спроектированный блок жесткой (не перепрограммируемой) логики и обойдется дороже. Но, увы, стоимость разработки и запуска в производство микросхемы с жесткой логикой окупится только при очень больших тиражах. А если рассмотреть совсем даже не гипотетический вариант с ошибкой при разработке, незамеченной до начала продаж — то ситуация совсем печальна. В случае с ПЛИС проблему обычно можно решить простой заменой прошивки.

В осциллографе ПЛИС обеспечивает стыковку АЦП с процессором и предобработку данных. У большинства дешевых процессоров общего назначения просто нет встроенного интерфейса для подключения используемого АЦП. Через обычный порт ввода-вывода физически невозможно протащить гигабайт постоянно приходящих данных. Да и обработать непросто. А применение ПЛИС позволяет переложить на ее плечи «непрофильную» для процессора работу, требующую быстрого выполнения множества простых операций, и «склеить» АПЦ и процессор. Процессору достаточно будет выводить на экран изображение со скоростью частоты смены кадров экрана, можно даже ниже. Даже при передаче данных в локальную сеть (чем занимается процессор) поток ограничен скоростью локальной сети — т.е. где-то в 100 раз ниже исходной.
Используемая связка (ПЛИС+процессор) очень популярна во многих сложных устройствах. Использовать только ПЛИС — дорого, только процессор — не успевает.


В осциллографе процесс получения данных с АЦП работает постоянно, до смены режима. Что пропустить, а с какого места захватить сигнал — определяют настройки FPGA. Она является логическим центром осциллографа. В DS1052E стояла Altera (EP3C5, Cyclone 3), в DS1054Z поставили Xilinx XC6SLX25 в BGA корпусе на 488 выводов. Стоит около $50. Несколько новее и мощнее, чем Cyclione 3. Самая младшая в таком корпусе из всей линейки Spartan 6. На плате закрыта радиатором, который добрые люди уже снимали:


Непосредственно к FPGA подключены две микросхемы памяти — H5PS5162GFR (64МБ 667MHz DDR2 с организацией 16*32М) и CY7C1360C-200AXC (256K*36 200MHz Pipelined SRAM).

Суммарно оба чипа обойдутся примерно в $10.
Чип памяти DDR2 по теоретической пропускной способности даже немножко превышает требуемый гигабайт в секунду. При обмене безусловно имеются задержки и накладные затраты (в том числе — на динамическую регенерацию), но внутри чипа FPGA тоже наберется под сотню килобайт модулей памяти и писать по одному байту никто не будет. Каким образом используется синхронная память мне неизвестно. В DS1052E стояла только она.
К сожалению, какие-то конкретные детали работы с памятью выяснить сложно, практически невозможно. Прошивка хоть и открыта, но IDA для FPGA не существует ;)

Кроме основной FPGA, в приборе имеется еще Actel ProASIC3 A3P030 VQG100 на 30000 вентилей.

По всей вероятности, выполняет вспомогательные функции и используется для подключения всяких кнопок и прочего. Основное отличие от главной — прошивка сидит у нее внутри (XC6SLX25 загружается извне и сразу после включения прибора не может работать). Также вполне возможно, что это защита от тиражирования — прошивку из Актеля просто так не вытащить и не скопировать. Это единственный не копируемый элемент осциллографа — остальные прошивки можно либо считать, либо они открыто лежат в памяти. Чип стоит менее $10.

Последним важным элементом является главный мозг осциллографа — микроконтроллер MCIMX283DVM4B. Это процессор с ядром ARM926EJ-S семейства i.MX28 от nxp/freescale. Работает на 450 МГц и внутри содержит много всего:
— Ethernet контроллер
— Два USB контроллера
— Контроллер LCD (видеокарта-лайт)
— стандартная кучка PWM/последовательных каналов/низкоскоростных ЦАП/АЦП и т.п.
Стоимость чипа — около $10. Отнюдь не самый производительный процессор, однако его вполне хватает даже на относительно тяжелые задачи, типа преобразование Фурье и вывода результата в реальном времени.
Возвращаясь к сравнению FPGA vs CPU можно сказать, что даже на в пять раз более дорогой XC6SLX25 не получится создать аналог этого процессора — просто не хватит логических ячеек на реализацию всех встроенных аппаратных функций.

К микроконтроллеру подцеплена DRAM (H5PS5162GFR, как и у FPGA)

и flash H27U1G8F2BTA на 128М.

В продаже именно такой не нашел, но дорогой она не может быть.
Эта память разделена на два раздела: пользовательский раздел для хранения данных (внутри прибора монтируется в /user) и системную область (монтируется в /sys). На пользовательский раздел отведено 90МБ, остальное — системе. Системный раздел для пользователя невидим, при выборе места для сохранения показывается только /user.

Для стыковки микроконтроллера с сетью используется чип Micrel KSZ8051RNL (Ethernet PHY, 100 М). Стоит около $2. Ничего интересного, обычный стык MII <-> Ethernet.

Также на плате имеется nvram winbond 25x40BVNIG (W25X40VNIG) — 4Mbit (256KB) с шиной SPI (там хранится первичный загрузчик и настройки). Прочую мелочевку (транзисторы, стабилизаторы и т.п.) я рассматривать не буду, там ничего особо интересного нет.

Осталось упомянуть о нескольких имеющихся интерфейсах.
USB host процессора выведен на переднюю панель — туда можно подключать флешки для сохранения данных. В DS1052E аналогичный вход располагался там же. Скорость записи зависит от флешки, но в целом пишет медленно.

Второй USB (OTG) выведен сзади, рядом с сетевым гнездом. Через него можно управлять осциллографом или распечатывать на принтере через pictbridge. В опциях еще имеется GPIB адаптер по доступной цене в $346. В чем ценность управления осциллографом через GPIB — «мне не понять, я не рыбак». Впрочем, для какой-то реальной производственной задачи это не такие большие деньги.

Вместо ранее имевшегося RS-232, установлено гнездо локальной сети. Подключение к сети обычное, без каких-то real-time расширений или специальных промышленных протоколов. О его возможностях разговор будет далее, при анализе прошивки.

Прошивка.


Далее будет только текст, картинки кончились. Вполне вероятно, текст покажется скучным, занудным или изобилующим непонятными терминами. Мое дело предупредить ;)

Еще до получения прибора я посмотрел его прошивку. Это у меня нечто среднее между хобби и навязчивой идеей. Кто-то вяжет носки, кто-то фигурки девушек собирает, кто-то в обед раскладывает пасьянс, а мне интересно разглядывать программные кишки чужих устройств. Без какой-то явной коммерческой выгоды (хотя и такое бывало, постфактум), «only for fun».
На сайте Rigol прошивка отдается свободно, без регистраций или долгих поисков. Но только последней версии. Возможно, что там где-то лежат и старые версии, но не настолько открыто. В сети можно найти еще пяток разных версий, особой пользы от которых нет — в последней прошивке пока не нашли (за полгода) новых глюков, зато исправлены некоторые (но не все) старые.
Все модели семейства DS1000Z имеют идентичное программное обеспечение. Отличия возникают уже после загрузки, когда прибор опрашивает внешние модули и проверяет лицензии (опции). Единство прошивки — это принципиальное отличие от нынешнего состояния серии 1000, где тип прошивки зависит как минимум от суффикса модели.

Вообще то, правильнее говорить не о прошивке, а о файле обновления. Почему? — этот файл не является монолитом, это архив, содержащим несколько независимых файлов, которые распаковываются в процессе обновления и записываются в разные места. Причем набор файлов в разных обновлениях отличается — один из предыдущих файлов включал в себя обновление загрузчика. Последние версии его (загрузчик) не обновляют. Я анализировал прошивку 04.04.03.02.
Формат GEL-файла достаточно прозрачен и хорошо реверсируется без какой-либо документации. Единственная небольшая помеха — некоторые файлы (в том числе исполняемая часть прошивки) сжаты. К счастью, в сети есть небольшая программа, предназначенная для распаковки GEL-файлов Rigol. Она в пару кликов вытаскивает из архива файлы, распаковывая запакованные. Дальнейший анализ прошивки показал, что там используется стандартный алгоритм, замечательно распаковываемый (и запаковываемый) исходниками 7zip.
В типичной прошивке имеются следующие файлы:
/sys/SparrowAPP.out — основное приложение
/sys/SparrowFPGA.hex — прошивка основной FPGA
/sys/SparrowDGFPGA.hex — прошивка FPGA дополнительной платы генератора
/sys/logo.hex — стандартная заставка при включенни (800 x 480)
/sys/guiResData.hex — разные ресурсы (менюшки, несколько шрифтов, справка)
/sys/guiPicData.hex — большие картинки (хранится упакованным)
/sys/SparrowConfig.hex — заставка при включенни для Plus-моделей
Еще пара файлов содержит всякие заготовки для калибровки и прочего:
/sys/SparrowWaveTable.hex
/sys/SparrowCalFile.hex

Исполняемым файлом является SparrowAPP.out. Технически это обычный файл в формате elf, который можно без проблем загрузить в IDA и там рассматривать. Механизмы защиты целостности довольно просты, используется огромное количество CRC32 — иногда 3 разных для одного файла (запакованный, распакованный + внутри elf). Для нормального рассматривания прошивки необходимо не забыть, что стандартный инициализатор перемещает инициализируемые данные при старте программы. Таких данных там много, отнюдь не только нулевых.

О коде прошивки


В приборе не используются «большие» операционные системы. Собственно, это было понятно уже по размеру файла обновления (менее 5МБ). В качестве ядра (для функций запуска процессов, синхронизации, выделения памяти и т.п.) используется не самая новая версия MQX (3.7 или 3.8 — точно не пытался определить). Ядро относительно небольшое, размер идет на десяток килобайт исполняемого кода, с драйверами может за сотню перевалит. Здесь о драйверах можно говорить смело, поскольку работа со многими устройствами идет в стиле open/write/read/ioctl/close. Даже если нужно прочитать пару байт по одной из внутренних шин SPI, никакого ожидания битов готовности, прерываний на каждый байт и т.п. нет. Подготавливается буфер, настраивается устройство и контроллер DMA, запускается процесс обмена. Далее совершенно не важно, будет ли передано 2 байта или 2 мегабайта. Аналогично и с сетью, и с обоими USB, и с i2c.

Язык написания — «C» с очень небольшим налетом плюсовости. Таблицы функций есть, но наследование и прочие подобные вещи не применяются (или настолько редки, что я их просто не заметил). По всей видимости, откомпилирован чем-то типа IAR, скорее всего без опций оптимизации. Вот типичный пример ассемблерного кода внутри прошивки:
ADD R1, R9, R9,LSL#2
LDR R2, =SRQ_SendData
STR R5, [R2,R1,LSL#3]
ADD R1, R9, R9,LSL#2
LDR R2, =SRQ_SendData
ADDS R1, R2, R1,LSL#3
STR R4, [R1,#SRQ_Struct.field_4]
ADD R1, R9, R9,LSL#2
LDR R2, =SRQ_SendData
ADDS R1, R2, R1,LSL#3
STRB R0, [R1,#SRQ_Struct.field_18]
ADD R0, R9, R9,LSL#2
LDR R1, =SRQ_SendData
ADDS R0, R1, R0,LSL#3
STR R6, [R0,#SRQ_Struct.field_8]

Т.е. для заполнения четырех соседних полей в массиве структур, компилятор каждый раз загружает адрес массива и умножает индекс в массиве на размер структуры. Минимальный оптимизатор просто выбросил бы повторные вычисления и выдал бы что-то вроде следующего:
ADD R1, R9, R9,LSL#2
LDR R2, =SRQ_SendData
ADDS R1, R2, R1,LSL#3
STR R5, [R1]
STR R4, [R1,#SRQ_Struct.field_4]
STRB R0, [R1,#SRQ_Struct.field_18]
STR R6, [R1,#SRQ_Struct.field_8]
С другой стороны, это очень упрощает анализ кода, реверсировать до C можно практически по шаблону.

В прошивке достаточно сильное разделение на модули, порождающее кучу вложенных вызовов. Но это еще полбеды. Несколько выбивается из «микроядерности» интерфейс между различными модулями. Модулем в данном случае я называю набор функций для какой-то отдельной задачи. Например — модуль работы с опциями, модуль параметров вертикальной развертки, модуль логического анализатора, модуль управления генератора и так далее.
Всем этим модулям часто требуется получать параметры от других или, наоборот, отдавать им команду. Для этого каждый модуль регистрирует свое имя в некотором пространстве имен и таблицу-массив с идентификаторами запросов и ссылками на подпрограммы, реализующие эти запросы. У каждого идентификатора обычно есть до трех методов: получить параметр, задать параметр и проверить доступность параметра.
Пример такой таблицы:
ConfDescr <0xA00, sub_402609B0, NULL, NULL, NULL, 0>
ConfDescr <0xA02, sub_402609F4, sub_40260B7C, NULL, NULL, 0>
ConfDescr <0xA01, sub_40260A7C, sub_40260AEC, NULL, NULL, 0>
ConfDescr <0xA05, sub_40260F18, NULL, NULL, NULL, 0>
ConfDescr <0x100000E, sub_402611D4, NULL, NULL, NULL, 0>
ConfDescr <0x1000004, sub_402609F4, NULL, NULL, NULL, 0>

Вызов для получения данных (параметра) выглядит следующим образом:
MOVS R2, SP; Buffer
MOV R1, 0x601
LDR R0, =aMeasure_1
BL GetSettings

Если перевести на «C»: GetSettings(«Measure», 0x601, Buffer);

Несколько упрощая, GetSettings сначала находит модуль с указанным именем (простым тупым поиском по списку), потом пытается найти в таблице строку с заданным идентификатором (тоже последовательным поиском). Если нашла — ставит в системную очередь запрос на вызов подпрограммы. Сначала я не понял, зачем такой хитрый вызов в монолитном приложении. На первый взгляд, заголовочный файл с именами функций вида Name_of_module__GetSome ничуть не хуже, чем заголовочник с кучей define-идентификаторов. В первом случае вызов функции потребует в тысячи раз (это не преувеличение!) меньше времени, да и при компиляции будет явно видно, если какую-то функцию забыли или неправильно вызвали. Например, если в применяемом варианте указать имя одного модуля, а идентификатор от другого, то на этапе компиляции проблема найдена не будет.
Но при дальнейшем анализе выяснилось, что этими функциями пользуются не только подпрограммы внутри исполняемого файла. Файл описания меню тоже содержит ссылки для обращения к данным модулям. Видимо, Rigol решил создать свою версию чего-то типа activeX. Для менюшек — понятно. Но они в этот же интерфейс завернули обработку запросов по USB и сети. Боюсь, такое решение не ускорило работу этих функций…

В силу использования микроядра, имеющихся 64 Мегабайт оперативной памяти более чем достаточно, особенно учитывая, что для хранения/захвата сигналов у FPGA есть собственные 64 МБ. Немного забегая вперед скажу, что у осциллографа практически всегда свободно более 20 МБ памяти для malloc. Никакой особой оптимизации использования памяти не производится. Например, когда осциллограф обновляет прошивку (а он это делает не выходя в какое-то специальное состояние), то он просто резервирует память под образ прошивки (5 мегабайт), потом резервирует память под распакованные файлы (еще около 4 МБ) и запускает распаковку.

Кроме самого ядра и драйверов устройств, внутри имеются еще многочисленные библиотеки:
lwip — для сетевого стека
libpng — работа с картинками в формате png
zlib — для png
libjpeg — для сохранения в jpeg
что-то не идентифицируемое (практически без текстовых сообщений) для tiff и bmp
uffs — поддержка файловых систем на внутренней флешке
Есть куски криптографических библиотек для RC5, XXTEA и т.п.

Часть библиотек легко идентифицируются по именам файлов в assert, например:
E:\SparrowVersionRelease\VersionGit\00.04.04.00.00_20160126\Code\Vendor\MQX\usb\host\source\classes\msd\usb_host_msd_bo.c
или:
E:\Pragram\DP800\lxi\lwip\core\dhcp.c

Авторское название каталога (во втором случае) оставлено как есть.

Есть следы еще нескольких мелких библиотек, но надежно идентифицировать их затруднительно. Библиотеки с названиями типа «minixml» пишет каждый второй студент-программист. Да и смысла особого нет, никакой полезной информации эта идентификация не принесет.

Очень много места занимают шрифты и картинки-иконки. Шрифты растровые, с поддержкой большой таблицы символов (часть строк — ascii, часть — unicode на два байта). Картинки хранятся в виде 16-битных образов RGB565 с заголовком из полей ширины и высоты.
Для таблиц символов используется что-то типа 16-битного юникода, хотя практически все текстовые сообщения в elf восьмибитные. Используются два уровня локализации — системные сообщения могут быть английские и китайские (и в паре мест — только китайские), а интерфейс пользователя многоязычный (10 языков). Но русификация мне как-то не понравилась, надежнее использовать английскую версию. Минимум половина русских сокращений настолько непонятны, что без документации не догадаться. Вероятно, китайскую еще надежнее (фирменная опечатка Rigol — pulses/pluses), но я еще не настолько пессимист из анекдота. Встроенная справка есть только на английском и китайском. Справка не очень полезная, скорее из разряда «чтоб было».

Сеть и порты, используемые в осциллографе


Сетевой стек обеспечивает возможность подключения к осциллографу по сети, но функций самостоятельного подключения к внешним ресурсам не имеет (и хорошо, а то эта повсеместно внедряемая облачная идеология уже переходит в извращения). Даже функция connect из lwip не вкомпилировалась в приложение. Максимум — рассылка broadcast/udp внутри локальной сети.
На задней части осциллографа можно видеть «рекламу» LXI протокола. Практически все порты так или иначе относятся к реализации этого стандарта. Там реализовано достаточно много функций — 1117 (тысяча сто семнадцать!). Один из популярных вариантов первого использования SCPI — ввод опций, не ломая пальцы на встроенном редакторе кода опции, командой :SYSTem:OPTion:INSTall . Таким же образом можно их и снести («SYSTem: OPTion: UNINSTall»), вернув аппарат к исходному состоянию. Методы совершенно официальные, документированные Rigol. Если не учитывать того, откуда получена строка лицензии ;)

TCP/80 — http, web сервер. Для пользователя ничего особо полезного нет. Включен для обеспечения требований lxi и выдает несколько xml-страничек описания устройства.

UDP/111, TCP/111 — VXI-11 Sun-RPC и port-mapper. Для LXI.
TCP/617 — часть VXI-11
TCP/618 — часть VXI-11
TCP/619 — часть VXI-11

TCP/943 — При некоторых настройках может выдавать текстовую строчку и сразу отключаться. Внутреннее имя «silverlight».

TCP/4530 — недокументированная альтернатива 5555. Внутреннее имя «silver server».

UDP/5353 — mDNS (Multicast DNS) Это такой локальный DNS без выделенного сервера. Читать по ключевым словам zeroconf, bonjour, avahi. Часть стандарта LXI.

TCP/5555 — SCPI интерфейс. Если кратко, то удаленное управление осциллографом. Почти полностью описан в «RIGOL Programming Guide» для DS1000Z. Там 260 страниц. Часть функций не описано или описано в аналогичном документе на другие модели. Не думаю, что как-то секретят, скорее имеет место быть легкое разгильдяйство — функции пишут одни, документацию — другие. Этот интерфейс доступен и через USB с идентичным синтаксисом команд. Часть LXI.

TCP/5566 — недокументированная альтернатива 5555

UDP/6000 — В ответ на пакет с "?" выдает информацию об устройстве (модель, серийный номер). Внутреннее имя «seek resource». Я его тоже использовал для определения IP-адреса осциллографа в локальной сети.

TCP/6666 — Текстовый интерфейс, куда можно послать команды «KILL SOCKET:5555» и «KILL SOCKET:5566» — вызывает отключение всех клиентов по указанным портам. Внутреннее имя «socketControl».

Как можно заметить, никаких telnet/ssh нет.

Обновление ПО


Когда прибор обнаруживает вставленную usb-флешку (при запуске загрузчика или при вставке в процессе работы), он проверяет наличие файла с именем DS1000ZUpdate.GEL и, при его наличии, выдает сообщение пользователю. Далее происходит следующее:
1) Пользователь подтверждает обновление (или не подтверждает — тогда все заканчивается)
2) Прибор загружает файл в оперативную память (все несколько мегабайт), проверяет его корректность и переносит в системный раздел флеш-памяти.
3) Старые файлы стираются
4) Новые файлы распаковываются из GEL и записывается.

Прошивка пишется не в какой-то определенный адрес флеша, а как обычный файл на диск. Единственное исключение — прошивки с встроенным первичным загрузчиком. В этом случае образ загрузчика записывается в SPI NVRAM.
Первичный загрузчик находит прошивку только по имени. Если при обновлении возникла ошибка, есть шанс выжить — загрузчик умеет дораспаковывать GEL-файл, если не находит распакованной версии. Впрочем, лучше не проверять надежность этого алгоритма.
Возможности обновления по сети нет.
После завершения обновления нужно перезагрузить устройство. До перезагрузки можно работать как обычно.

Также в осциллографе есть скрытая функция — если в резервных секторах FAT32 на usb-флешке обнаруживается сектор со специальной сигнатурой, в прошивке раскрываются дополнительные возможности, позволяющие легко «окирпичить» осциллограф. Из полезных функций — возможность просмотреть системный раздел и возможность загрузить предыдущую версию прошивки. Механизм независим от обновлений (т.е. флешка может иметь прошивку и не иметь сигнатуры, иметь сигнатуру и не иметь прошивки и так далее..)

Запуск


Загрузка прибора производится в две стадии. Сначала в адрес 0x41000000 загружается относительно небольшой первичный загрузчик (сотни килобайт) из SPI nvram. Это штатная функция процессора. Загрузчик меняется достаточно редко, последнее его обновление вышло несколько лет назад. Является сильно урезанным вариантом основной прошивки, включает в себя только системные функции и файловые библиотеки. Сети нет. Основные функции — загружать основную прошивку в формате elf и обновлять ее с флешки.

После загрузки основного приложения SparrowAPP.out (стартовый адрес — 0x40000000, начало памяти), управление передается ему и первичный загрузчик более не используется. Приложение производит стандартную инициализация MQX (стеки, приоритеты и прочие моменты, одинаковые для всех приложений), потом запускается настройка самого прибора.
Упрощенная последовательность запуска:
1) Первичная инициализация (DMA, IO, ...)
2) Монтируем /sys (3 повтора при ошибках)
3) Загружаем в память /sys/SparrowFPGA.hex — прошивка основной FPGA
4) Загружаем в память /sys/SparrowDGFPGA.hex — прошивка FPGA генератора
5) Загружаем основную FPGA (10 попыток)
6) Получаем ревизию платы
7) Если есть, загружаем FPGA генератора (10 попыток)
8) Загружаем /sys/guiResData.hex — картинки
9) Регистрируем модули, запускаем процессы.

Далее в приборе работает несколько независимых процессов, переключаемых по таймеру ядром. Есть системный процесс (обозванный framework), который ожидает сообщений в своей очереди сообщений и обрабатывает их, вызывая вспомогательные модули.

Ошибки в ПО и их устранение


Последняя официальная прошивка вышла примерно год назад. Сразу хочу отметить, что каких-то заметных проблемных мест в ней немного. Есть несколько опечаток в интерфейсе и командах, пара ошибок в обработчике протокола запросов, легкое несоответствие стандарта обмена через USB (но не в самом протоколе). И, разумеется, есть относительно много моментов, которые хоть и не являются ошибками, но интересны с точки зрения доработки и улучшения.

Что касается опечаток, то их исправление обычно не является сложным. К сожалению — не в этот раз. Фирма Rigol приложила определенные усилия, чтобы исправить прошивку было не просто. В файле прошивки имеется специальный фрагмент, содержимое которого специальным образом преобразуется и сверяется с прошивкой. Причем, можно менять все файлы, кроме исполняемого. Код, занимающийся этой проверкой в загрузчике, удалось найти довольно быстро, но он занимал чуть менее 10 килобайт. Понять, что делают 10 килобайт неизвестного кода (ничего похожего я не видел), выполняющего какие-то хитрые манипуляции со сверхдлинными целыми числами возможно, но… лень. Впрочем eevblog есть инициативная группа из пары людей, занимающаяся процессом анализа этого кода, которые обещают, что вот-вот решат проблему. В прошлом году близкого решения не было, и я решил поискать обходные пути. Если в горе сложно пробить туннель, то ее можно обойти. И только я начал анализировать, как именно проверяется прошивка, меня ждало удивительно открытие. Оказывается, сверяется только текстовая строчка версии прошивки и значение ее CRC32. Строчку версии менять вообще никакого резона нет, а подделать CRC — элементарная задача. Тем более, что проверяется контрольная сумма запакованного потока, к концу которого можно легко добавить 4 байта. Таким образом, и загрузчик был удовлетворен, и в образ (после распаковки) не нужно вносить изменений. Пожалуй, в этом весь Rigol — накрутить сложных алгоритмов, и оставить рядом потенциальную дыру. Что мешало воспользоваться каким-нибудь более-менее стойким алгоритм ЭЦП — совершенно непонятно.

Когда программа для разборки и сборки прошивки была готова, а пара известных опечаток устранены, встал вопрос — как устранять и отлаживать ошибки, чуть более сложные, чем опечатки? Все-таки, сам процесс загрузки новой прошивки занимает несколько минут и не совсем безопасен даже для оригинальной прошивки. И пусть даже зависание при загрузке можно устранить заливкой оригинальной прошивки через загрузчик, так работать неудобно.
Первоначально, я подумывал о внедрении своего относительно большого фрагмента кода с запуском дополнительной задачи, обслуживающей какой-нибудь порт UDP или TCP. Но подумав еще, я решил не плодить лишние сущности — есть ранее упомянутый порт 6000/UDP с практически нулевым функционалом, отвечающим на всего одну команду. К нему был дописан фрагмент, выполняющий три дополнительные команды:
1) читать блок памяти
2) писать двойное слово
3) вызвать подпрограмму
Плюс такого решения — пока нет пакетов на порт 6000, мое дополнение не запускается и мои потенциальные ошибки никак не приведут осциллограф к зависанию при запуске.

Все эти простые действия растянулись почти на полгода. На текущий момент имеется прошивка для DS1000Z и утилита к ней со следующим функционалом:
1) Возможность прочитать память осциллографа. Рекордов скорости нет, но сотни килобайт в секунду обеспечиваются. Т.е. скачать даже всю память осциллографа (в чем обычно нет никакой необходимости) можно менее чем за 10 минут. Прошивка из памяти (3.5 МБ) скачивается менее чем за 10 секунд.
2) Возможность записать память осциллографа. Тут несколько медленнее, но загружать больше десятка килобайт требуется редко, а это занимает секунды.
3) Возможность выполнить вызов функции с не более чем двумя параметрами и получить ответ

Эти три функции позволяют загружать небольшие программы в память осциллографа и выполнять их там.

Последовательность обычно следующая:
1) Вызвать функцию malloc прошивки для получения блока памяти под программу (адрес malloc мне известен).
2) Записать в выделенный блок программу. Т.к. блок выделен стандартным образом, не нужно беспокоиться, что кто-то его перетрет или он перетрет что-то
3) Запустить загруженную программу.
Для удобства, эта последовательность реализована в программе по отдельному ключу.

Далее есть два варианта:
— если программа простая/быстрая, то можно просто ее выполнить и вернуть управление обработчику, освободив память.
— если программа долгая или постоянно работающая, то можно запустить новую задачу, а после запуска вернуть управление обработчику (и не освобождать память).

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

Там лежит измененная прошивка, набор утилит, библиотека и примеры загружаемых модулей. Все (включая патч) в исходных текстах. Примеры модулей простенькие — мигания светодиодами.
Исключительно для шутки (как раз на 1 апреля) добавлен модуль, заставляющий осциллограф играть марш из Star Wars на встроенном динамике. Функциональность осциллографа при работе этого модуля полностью сохраняется. Переделка со старой досовской программы заняла всего минут 15.

Откомпилировать свой модуль несложного — достаточно иметь IAR, примеры модулей есть. Существенно больше времени требует разборки с «внутренними кишками» осциллографа. Но мое дело дать удочку — за рыбу я не в ответе.
На этом заканчиваю, т.к. более 150К букв не дают. К счастью.
На всякий случай, сама рыба:

Он не умер, просто любит стоять на голове.
Добавить в избранное +135 +195
+
avatar
  • maks740
  • 15 апреля 2018, 17:54
0
(короткий отрезок 68013 может захватить и на 48 МГц, если с доработками)
Поделитесь, плз, информацией на эту тему.
+
avatar
  • kon-nor
  • 15 апреля 2018, 18:07
+3
Внутри есть несколько килобайт буферной памяти. Максимальная частота чтения с шины — 48 МГц. Другое дело, что в режиме постоянной передачи в ПК так не получится, т.к. предельная скорость около 40МБ/с. А частоту захвата можно делить только на 2 — т.е. либо 48, либо 24. Как вариант — внешняя синхронизация, но тогда это уже не будет устройством за $5.
+
avatar
+2
осцил хороший, но устарел. sds1104x-e стоит 429 евро и интересней
+
avatar
  • ua3mjx
  • 15 апреля 2018, 18:02
0
Где его можно купить за 429 евро?
+
avatar
+1
www.siglent.eu/sds1104x-e.html
free shipping
если вы в РФ, то даже растаможку не нужно будет. у нас в офлайне официальный представитель продает за 471 евро
+
avatar
  • Kartus
  • 15 апреля 2018, 21:42
0
если вы в РФ, то даже растаможку не нужно будет.
Да, таможенник просто откажет в выпуске как товар не для личного пользования и ничего платить не придется)))
+
avatar
  • INN36
  • 15 апреля 2018, 22:04
0
таможенник просто откажет в выпуске как товар не для личного пользования
Как говориться в старинный грузинский пословица, на всякий хитрый попа найдется винт с левая резьба.
У приличных китайских продаванов в последнее время вдруг стала обнаруживаться опция «Купить со склада в Москве». Лично я подобное устройство так и купил. Давеча.
+
avatar
  • Kartus
  • 16 апреля 2018, 07:22
0
И что характерно, хитрая попа китайского разлива отнюдь не означает отсутствие гемороя время от времени. Не, не, не, я как бы ничуть не сомневаюсь, что вам таки повезет, но видя куда поворачивается эта жизнь, предполагаю что это не навсегда.
+
avatar
0
Да, таможенник просто откажет в выпуске как товар не для личного пользования
как повезет. можно и неофициально
+
avatar
  • Kartus
  • 16 апреля 2018, 07:22
0
как повезет.
Вот! Вот именно это слово)))
+
avatar
  • qwerty2
  • 16 апреля 2018, 14:05
0
А если вы в европе, то прибавьте еще около 90 евро налога.
+
avatar
  • kon-nor
  • 15 апреля 2018, 18:03
+3
Если сравнивать по амазону, то ригол с стоит $349 с бесплатной доставкой в РФ, а Siglent SDS1104X-E — $500 + $60 за доставку. 350 vs 560 — это уже сильно разные ценовые категории.
И у Ригола — In Stock, а SDS: «Usually ships within 3 to 5 weeks.»
+
avatar
0
del
+
avatar
  • kon-nor
  • 15 апреля 2018, 18:33
0
ну просто вы писали в статье, что предел у вас 500 долларов. а сиглент очень близко. плюс в этом сигленте очень интересные фишки есть
Тут сразу несколько моментов. Во первых, я понимаю слово предел — именно как предел. Постепенным увеличением в сторону лучших моделей можно и за $1K перевалить. Во-вторых, я покупал осциллограф в сентябре 2017. Тогда SDS еще и не очень продавался (первые обзоры на eevblog пошли в конце ноября/декабре 2017). Я не просто так писал, что принципиально не беру новые модели — спасибо, прецеденты были.
А главное отличие по ТТХ — наличие двух АЦП и, как следствие, не такое резкое падение частоты сэмплирования с увеличением количества задействованных каналов. Остальной функционал близко-похож.
+
avatar
+1
Тогда SDS еще и не очень продавался
вроде и не было его тогда. 4 канальный x-e недавно появился
Я не просто так писал, что принципиально не беру новые модели
1104x-e, 1204x-e это, по сути, доработанные 1102 и 1202 плюс два канала. там баги поправили софтовые и хардварные и добавили bode plot
Остальной функционал близко-похож
в сигленте 'фосфор' есть, bode plot, сразу с коробки бесплатное декодирование I2C, SPI, UART, RS232, CAN, LIN, подключение по лан и опция по wi-fi, встроенный веб сервер, захват больше >100k Wfm/s, память 2 x 14Mpts или 4 x 7Mpts, ну и для такого бюджетника реально низкий уровень шума
+
avatar
0
В риголе 1054 тоже «фосфор» есть
+
avatar
  • kon-nor
  • 15 апреля 2018, 19:27
+2
1104x-e, 1204x-e это, по сути, доработанные 1102 и 1202 плюс два канала. там баги поправили софтовые и хардварные
Но аппаратная платформа уже немного другая.

в сигленте 'фосфор' есть,
В Rigol — тоже.

bode plot,
Вещь интересная, но на специализированном устройстве все равно удобнее.

сразу с коробки бесплатное декодирование I2C, SPI, UART, RS232, CAN, LIN,
В Rigol они появляются тоже бесплатно через 15 минут для всех, кто хочет. И это совершенно не секрет, даже для представителей Rigol.

подключение по лан
Есть в Rigol.

и опция по wi-fi,
Бесполезная вещь, которую проще (и дешевле) реализвать внешним роутером.

встроенный веб сервер,
Тоже есть, но ни разу не пытался использовать за ненадобностью.

захват больше >100k Wfm/s,
Да, у Rigol меньше 100к. Но это не самая важная характеристика при работе.

память 2 x 14Mpts или 4 x 7Mpts
У Rigol 1x24, 2x12 или 4x6. Разница малозаметна, а в одноканальном режиме Ригол превосходит.

Прошу меня понять правильно — Siglent по некоторым параметрам лучше. Но не принципиально лучше, это не стоит увеличения цены в полтора раза.
+
avatar
  • gorbln
  • 24 апреля 2018, 20:08
0
В Rigol они появляются тоже бесплатно через 15 минут для всех, кто хочет. И это совершенно не секрет, даже для представителей Rigol.
А можно подробностей? Меня очень печалят триальные 30 часов анализатора, от которых осталось 1.5 =(
+
avatar
  • kon-nor
  • 24 апреля 2018, 20:26
+1
gotroot.ca/rigol/riglol/ — обычно, это первый вариант, если забить в гугл что-то типа «rigol keygen».
+
avatar
  • gorbln
  • 25 апреля 2018, 09:37
0
Нда. Для MSO, к сожалению, ничего не поменялось.
It is possible to hack it but it's much more involved than just entering a code generated online using your serial number. You need to open up your 'scope and use a JTAG device to dump the contents of the flash memory for the keygen.
Если бы осцилл бы мой, я бы, конечно, его разобрал, но в рабочий лезть не хочется.
+
avatar
  • kon-nor
  • 25 апреля 2018, 19:34
+2
C MSO дела не имел, я как раз за простую модель агитировал ;).
Но патченная прошивка сделана как раз для того, чтобы не нужно было ни разбирать осциллограф, ни использовать jtag. Оперативная память сливается без дополнительных хитростей (просто ключем), большинство других действий можно сделать несколькими командами. Если задача совсем сложна, можно написать плагин. Менять местами патченную и оригинальную прошивки можно без проблем и ограничений.
Как быстрое и временное решение, можно просто сбросить время работы скопа — затереть нулями переменные 406BF3C8 и 406BE108 (каждая переменная — 8 байт). Если после этого сменить через менюшки какую-то другую настройку, сброшенное время работы должно сохраниться в памяти настроек.
+
avatar
0
Глядь, как я отстал от жизни! :(
+
avatar
0
А в более старых версиях фосфора нет(CNL/CML/DL/F)?
+
avatar
0
ну просто вы писали в статье, что предел у вас 500 долларов. а сиглент очень близко. плюс в этом сигленте очень интересные фишки есть
SDS: «Usually ships within 3 to 5 weeks
на официальном сайте тоже In stock
+
avatar
  • pashist
  • 15 апреля 2018, 18:47
0
Интересней SDS1202X-E за 359 :)
+
avatar
0
ну там два канала. и если брать SDS1202X, то последней ревизии. там хардварный баг с переключением x1 x10 поправили
+
avatar
  • snejink
  • 30 августа 2018, 22:02
0
Привет, народ. Подскажите какой осциллограф сейчас можно купить, как вариант обозреваемому. Может есть смысл добавить и получить получше
Требования: только 4 канала, не менее 100Mhz, крайне желательна возможность сохранения осциллограмм (но не как картинок) для последующего анализа на ПК, соответственно софт что был рабочий. ну и если к компу подключить (а лучше к планшету) то вообще шоколадно, так как для работы в поле.
желательно чтобы был в госреестре и можно было купить в России, так как на организацию.
генератор и анализатор не нужны. только осциллограф
Бюджет хотел бы не более 1200 баксов
Подскажите если не конкретную модель, то хотя бы бренд которому стоит уделить внимание, ну или русскоязычный форум спецов по этой теме.
что скажете про GW Instek, АКИП?
+
avatar
0
если не дорого и сердито siglent sds1204x-e
+
avatar
0
А я себе купил micsig 1104. Тоже в районе 500$
micsig.com/html/30.html
+
avatar
  • AndyBig
  • 15 апреля 2018, 19:08
+11
Обзор просто шикарен! Даже не припомню когда я получал такое наслаждение от чтения обзора на муське :)
Большое спасибо :)
+
avatar
0
в прошлом году какая-то акция на partsdirect.ru была. и там DS1054Z раздавали по 26к чтоли. я не успел и в итоге через неделю взял за 24к «в мятой коробке» (это где-то 420$) :) а хотел-то изначально вообще младшую модель 1052 с 2 каналами. девайс, конечно хороший, спору нет. ни разу не жалею что с запасом взял.
+
avatar
  • futsker
  • 15 апреля 2018, 19:26
+2
Пока углового провода, развернутого на 180 градусов, найти не удалось.
а если не провод перевернутый искать, а перевернуть ответную часть в корпусе?
+
avatar
  • kon-nor
  • 15 апреля 2018, 19:44
0
Идея интересная, но я не хочу вносить изменения в конструкцию, пусть даже и минимальные. Тем более, что сейчас аппарат стоит так, что это не мешает. Отчасти, я отметил проблему, поскольку меня удивило отсутствие зеркальных угловых кабелей.
+
avatar
0
Можно воспользоваться таким переходником ru.aliexpress.com/item/IEC-320-C14-Male-to-C13-Female-PLug-PDU-UPS-Extension-Power-Connector-Up-90-degrees/32671593391.html

Либо изготовить кабель питания самостоятельно, использовав разъем ru.aliexpress.com/item/1pcs-C13-Power-Plug-90-Degree-Angled-IEC-320-C13-Female-Plug-AC-10A-250V-Power/32828415760.html
+
avatar
  • u3712
  • 15 апреля 2018, 20:12
0
При режиме отображения «High Resolution» выполняется оверсемплинг, что снижает уровень шума, но вывод на экран так и остается 8-битным. В результате, зашумленные ровные линии (для normal) становятся лесенкой. Смотрится гадко. Честно, бесит.
Это безобразие может когда исправили, или хотя-бы подретушировали? (DS1074z)
+
avatar
  • mzr910
  • 15 апреля 2018, 20:43
0
когда то после хантека мне ригол 1054 казался хорошим, но это пока я Keysight 3012 не купил по случаю, там кстати вариантов по народному творчеству гораздо больше — открытие всех опций чуть сложнее чем в риголе но его можно путем перепайки резисторов сделать на 350 мгц а если поменять деталей на 20 долларов то и в 500 мгц можно переделать, анализатор есть сразу и генератор тоже — включается программно как и все остальное, короче если смотрите на варианты от 800 зелени и больше смотрите уже не на ригол
+
avatar
+2
Простите, Вы ноликом не ошиблись?
DSOX3012T в Польше стоит 5500$, на Украине примерно 5000$, в России дешевле всего (ну или замануха) — 4200$. Но никак не 800
+
avatar
  • mzr910
  • 15 апреля 2018, 21:19
0
ну 20xx модели в принципе почти тоже самое периодически распродаются по около штуки зелени и новые и бу видел по 500 — 600 зелени
+
avatar
0
но вы же писали про открытие опций на 3012
+
avatar
  • mzr910
  • 16 апреля 2018, 00:39
0
одинаково у них все открывается и конструкция почти одинаковая, в 2xx памяти меньше
+
avatar
0
открытие всех опций чуть сложнее чем в риголе но его можно путем перепайки резисторов сделать на 350 мгц а если поменять деталей на 20 долларов то и в 500 мгц можно переделать
а подробнее можно? в разных теках тоже можно было, проблема в том, что его потом калибровать надо было серьезным генератором
+
avatar
  • mzr910
  • 16 апреля 2018, 00:41
0
ну в теках то опции нахаляву не откроешь, а так в агиленте меняются бутстрап резисторы на определение при старте на 350 мгц и еще надо дросселей и точных резаков напаять и софтовая вктивация 350 в 500, в теории можно до 1 ггц расширить но там надо еще активные элементы менять и вч реле ставить, на форуме eevblog все обсуждено
+
avatar
0
ну в теках то опции нахаляву не откроешь
там именно нахаляву. для переделки в старшую модель перепаивалось 2 резистора, для увеличения памяти доступной тоже что-то перепаивалось. сейчас не помню точно
надо дросселей и точных резаков напаять и софтовая вктивация 350 в 500
я понимаю. чем потом калибровку делали? для тека надо было в лабу нести с серьезным генератором, что бы новые частоты корректно показывало. а в кейсайте как?
+
avatar
0
А конкретную модель можно? И чтоб за 800 баксов?
А то валерианкой после обзора цен отпиваюсь.
+
avatar
  • mzr910
  • 16 апреля 2018, 16:31
0
сейчас на барахолке нотебук1 только 2014 видел за 70т р, но не берут — может за 800 и отдаст
+
avatar
  • romxx
  • 15 апреля 2018, 21:10
+10
Отличный обзор. Вот почему по-настоящему хороший, важный и полезный обзор отклоняется по формальным признакам, а какая-нибудь тоскливая керня, вида «еще стотыщмильон способов купить никому не нужную хрень за доллар с бесплатной доставкой» и прочие «дрипки пипки и жижки» тут постятся, уже колесико у мышки стерлось их проматывать (зато все посты по правилам), а по-настоящему серьезные обзоры — «лежат по полгода»?
+
avatar
+1
Задачи у ресурса таковы.

Автору +, но изначально стоило указать: «купил в рознице, вы покупайте по желанию — тут или там...».
+
avatar
  • kon-nor
  • 15 апреля 2018, 22:46
0
На момент первой попытки публикации там был еще целый раздел на тему «какая гадость этот СДЭК». В конце сентября у них был большой завал при доставке на такие дальние и сложные расстояния, как из Москвы в Питер.
+
avatar
+2
Так можно про любых написать, было бы желание.
Мне прошлым летом прибор доставляли СПСР. Звонок в дверь, открываю — стоят две молодые (20-25) девчонки очень симпатичной наружности. Честно признаться — я аж растерялся: брать коробку или всех вместе.
+
avatar
0
Честно признаться — я аж растерялся: брать коробку или всех вместе
ну вот. растерялись и ушли девочки)
+
avatar
  • CuMr
  • 16 апреля 2018, 19:33
+1
с коробкой :D
+
avatar
0
Мне нельзя в Бельдяжки, я женат.
+
avatar
+1
кому это когда-то мешало)
+
avatar
  • kon-nor
  • 16 апреля 2018, 21:35
0
Насчет любых — не знаю, но экспресс доставка из Москвы в Питер за две недели (с момента получения товара на их московском складе) — это чуть-чуть перебор. Девочки мне в дверь не звонили, но когда на мой звонок (после превышения контрольного срока доставки) милая девушка говорит, что понятия не имеет где моя посылка и предлагает уточнить на следующей неделе — она становится существенно менее милой. Если бы не продажа Теслой с наложенным платежом, я бы ей даже что-нибудь нехорошее бы сказал… наверное…
+
avatar
  • uZver
  • 16 апреля 2018, 08:54
0
Добавьте игнор этих тем в профиле и проблема решена.
+
avatar
  • s0me0ne
  • 15 апреля 2018, 21:25
0
автор, добавь цену в шапку.
+
avatar
  • kon-nor
  • 15 апреля 2018, 22:41
0
В этом разделе такой функции нет. Да и смысла особо нет — сейчас эта модель идет в устаревшие и есть большая вероятность попасть под какую-нибудь акцию. А цены сентября 2017 и подавно не интересны.
+
avatar
0
Спасибо за прекрасное изложение. Интересный и полезный материал.
+
avatar
+4
Wow. Монументально. Читал с большим интересом, тем более что сам купил именно этот осциллограф буквально пару недель назад соблазнившись на цену в 330$. Этой мой первый хоть сколь нибудь серьезный осциллограф и от открывшихся возможностей до сих пор рябит в глазах. Свободное время теперь уходит на изучение различных сигналов. Пред мной открылся огромный мир, представления о котором я хоть и имел, но никогда своими глазами не видел в таких подробностях.
Быть может запилю как нибудь обзорчик на тему практического применения в условиях своего вялотекущего хобби. Это я к тому, что большой необходимости в нем не было, да и жаба давала о себе знать. Но в итоге я ни сколько не пожалел о покупке. Это просто мастхев пусть даже и образовательных целях, в коих он пока что и используется преимущественно.
+
avatar
  • INN36
  • 15 апреля 2018, 22:59
+2
Быть может запилю как нибудь обзорчик на тему практического применения в условиях своего вялотекущего хобби.
Обязательно упомяните ситуации использования 4 каналов одновременно.
Мне действительно было бы интересно, ибо я отстал от жизни лет на 30.
После АЦП открывается иной мир, где можно сделать все.
Только что? И зачем.
+
avatar
  • kirich
  • 15 апреля 2018, 22:13
+3
Осциллограф для меня не является фетишем или прибором для непосредственного зарабатывания денег. Поэтому брать профессиональное (и недешевое) устройство — неразумно, достаточно любительского или полупрофессионального уровня.
Почитал обзор, посмотрел фотки и подумал, как я обхожусь DS203 :)
На самом деле я считаю, что цена и возможности устройства мало связаны с понятием — для зарабатывания денег. Кому-то для хобби мало осцилла за 500, а кто-то вполне нормально зарабатывает и с тем же DS203. Главное чтобы прибор решал поставленные задачи.

Вопрос к автору, возможно проглядел в обзоре, а какой сценарий использования осциллографа у Вас?

Вообще обзор интересный и очень полезный, действительно редко бывают обзоры подобных товаров, а кроме того настолько подробные.
+
avatar
  • ksiman
  • 15 апреля 2018, 22:24
+2
и подумал, как я обхожусь DS203 :)
Опыт компенсирует убогость прибора.
Тоже таким обхожусь :)
+
avatar
  • kon-nor
  • 15 апреля 2018, 22:39
+4
Я больше программер, но иногда приходится возвращаться в реальный мир и смотреть железо — иначе непонятно. Из относительно недавнего применения — глючили устройства на последовательной шине (тактовая чуть меньше 20 МГц). Программно было совершенно непонятно. А осциллографом сразу нашлось место с заваленным фронтом. Выяснилось, что при монтаже опытного изделия вместо резистора 10К запаяли мелкий конденсатор. Какая гадость эти 0402 ;) Разумеется, я бы и двухканальным нашел проблему. Но с четырехканальным проще — один канал на CLK, один на вход, один на выход — сразу видны относительные задержки и различия.
Этот осциллограф у меня строго домашний(не дикий) и стационарный.

В качестве портативно-выездного, стыдно сказать, PV6501 с ноутом до сих пор использую. Ему уже лет 15, тогда просто не было ничего типа DS203. Зато в нем есть простенький генератор и гальваноразвязка.
+
avatar
  • kirich
  • 15 апреля 2018, 23:08
0
Выяснилось, что при монтаже опытного изделия вместо резистора 10К запаяли мелкий конденсатор.
Хм…
Монтаж опытного изделия предполагает после этого серию, а серийное производство и отладка как-то не очень попадают под хобби ;)

Этот осциллограф у меня строго домашний(не дикий) и стационарный.
Так мне вот и интересно, что за хобби у Вас такое :)

В качестве портативно-выездного, стыдно сказать, PV6501 с ноутом до сих пор использую.
Чего стыдиться? Устройство решает задачу, почему за него должно быть стыдно?
+
avatar
  • kon-nor
  • 15 апреля 2018, 23:35
+1
Монтаж опытного изделия предполагает после этого серию,
Серия там — одно название. Счет идет на десятки в год.
а серийное производство и отладка как-то не очень попадают под хобби
Я человек устаревшей формации, и любая производственная деятельность, происходящая не «за проходной», для меня приравнивается к хобби. :)

Чего стыдиться? Устройство решает задачу, почему за него должно быть стыдно?
Сейчас модно часто менять устройства. Да и железка действительно устаревшая, производители уже не выпускают под нее обновление софта. Но жаба не подписывается под покупкой чего-то нового, когда старое еще ± нормально работает.
+
avatar
  • mzr910
  • 16 апреля 2018, 00:49
+1
до дс203 не опускался — тогда их и не было еще, советские были — размером в основном не устраивали, для ремонта в принциипе что хантек 5102 что кейсайт 3012 подходят оба но кейсайтом пользоваться приятнее и удобнее да и плюшек типа декодирования больше

и если в целом разбиратся ебей полон полурабочих теков и агилентов прошлых лет которые стоили десятки тысяч зелени а сейчас продаются полурабочие в лучшем случае за сотни долларов да и тут халявы хватает, я 3012 смешно сказать покупал за 600 зелени полностью рабочий но без щупов (1 битый пиксель на экране ) и там их было еще а 2012 — 2014 были вообще по 400
+
avatar
0
В обзоре было указано что-то про флешки и про возможность окирпичивания. Вот что-то этот пункт я не понял. В своем, кстати, заметил, что он правильно работает у меня лишь с одной флешкой — какой-то старой на 4ГБ, а с десяток других в упор не понимает. И картинки на нее записывает меееедленно так…
А обзор мне очень понравился, хотя по началу казалось, что будет раскрыта тайна бюджетного превращения DS1054Z в MSO1104Z-S, но в заголовке-то четко написано. Даже подумываю, а не прошить ли мне вашу кастомную прошивку)))
+
avatar
  • kon-nor
  • 15 апреля 2018, 22:52
+1
Окирпичивание просто так не произойдет. Для этого нужно:
1) Сгенерировать специальный блок на 512 байт
2) Вписать его в нужный сектор флешки
3) Засунуть полученную флешку в осциллограф

Далее есть несколько вариантов:
a) Влезть на раздел /sys и стереть системный файл — это восстановимый кирпич, можно прошить из загрузчика
б) После запуска осциллографа набрать секретную последовательность кнопок, стирающую загрузчик — это кирпич, восстановимый только с помощью программатора и паяльника.
+
avatar
  • SAIRUS
  • 15 апреля 2018, 23:19
0
про генератор

«Dear Felix,

This is Wendy from customer service Dep. of RIGOL. I'm glad to help you.

I consulted our repair engineer about this issue.

If you need to change a new FG board ,You have to change the mainboard as
well because they are paired.

So we'll need to charge you 370US dolloars, if you agree with it, we'll
arrange quick shipment of new FG board and mainboard to you.

If you have any question, feel free to contact me.

Best regard,
Wendy»
+
avatar
  • kon-nor
  • 15 апреля 2018, 23:37
0
Красиво послали, иначе сказать не могу. Плата генератора пришла еще с предыдущей серии (которая не Z). Как она может быть строго «they are paired» с основной платой — мне не понять.
+
avatar
  • SAIRUS
  • 15 апреля 2018, 23:44
0
я пытался их перехитрить сказав мол у меня 1074Z-S и я повредил плату генератора, сервисов мол поблизости нет, пересылать осциллограф стрёмно, признаю свою вину и прошу продать отдельно плату генератора для ремонта (планировал установить её в 1054Z).
+
avatar
  • Kartus
  • 16 апреля 2018, 07:32
0
я пытался их перехитрить
Интересно, на сколько шагов была продумана легенда. А если бы, как это довольно часто встречается среди европейских брендов, было бы предложено сообщить серийный номер модельки и выслать платку?)))
+
avatar
  • SAIRUS
  • 16 апреля 2018, 12:06
0
По легенде я был владелец DS1074Z-S серийник DS1ZB161650325 который умудрился вырвать с мясом BNC ))) да серийник спрашивали в самом начале переговоров
Кстати большая ручка энкодера стоит 20$.
+
avatar
0
Схожие по дизайну :)

+
avatar
  • pet80
  • 15 апреля 2018, 23:23
0
Предпринималась ли попытка снять АЧХ осциллографа со штатными щупами?
+
avatar
  • kon-nor
  • 15 апреля 2018, 23:40
0
На eevblog этим занимались с куда более мощным оборудованием, чем есть у меня под рукой. Тем более, что штатные щупы я использую редко. Обычно воткнуты HP9258 (они x100 и 250 МГц).
+
avatar
  • kven
  • 16 апреля 2018, 00:00
0
мой DS1054Z (SWver 00.04.03, Bver 0.1.1) пару раз после включения не реагировал на органы управления, выкл/вкл помогало, прошивка старая, про этот баг что-нибудь известно?

и еще вопрос, я брал свой прибор три года назад в московском Ирите, в комплекте были щупы RP2200, а у вас PVP2150, может такое быть, что первые комплектации шли со старыми щупами?
+
avatar
  • SAIRUS
  • 16 апреля 2018, 00:27
0
В моём (куплен в 2014) были RP2200…
+
avatar
0
У моего аналогичный баг — каждое 3-е — 5-е включение не загораются лампочки подсветки клавиш и при загрузке осциллограф не реагирует на кнопки (остальное, щупы и показания работают). Лечится включением-выключением. Проблему так и не решил (забил). Перепробывал все доступные версии прошивок — не помогает.
+
avatar
  • kon-nor
  • 16 апреля 2018, 21:25
+1
Сожалею, но прошивки и не должны были помочь. Судя по симптомам, глючит контроллер клавиатуры (он расположен на задней части большей клавиатурной панели). Можно посмотреть, что именно там стоит (говорили, что бывают разные), найти ножку сброса и попробовать сбросить (когда не работает). Тот микроконтроллер подцеплен к основному процессору по I2C. Если есть другой осциллограф ;), то можно посмотреть на обмен. Там все несложно, пакеты одинаковой длины (по 11 байт).
+
avatar
0
Ок, попробую. А если дело в нем, то если найти аналогичный, то нужен программатор и прошивка соответствующая для этого контроллера? Эту прошивку реально найти?
+
avatar
  • kon-nor
  • 16 апреля 2018, 21:55
0
Нет, прошивки в доступе нет. Но, с большой вероятностью, там может быть какая-то проблема начального запуска, решаемая внешней цепью сброса (на чем-нибудь типа MAX803). Вот если бы он вообще никодга не запускался — тогда плохо.
+
avatar
  • kon-nor
  • 16 апреля 2018, 21:20
0
Мне кажется, что старые щупы по характеристикам не сильно отличаются от новых. На приборах не сравнивал (когда пришел новый скоп, старого уже не было), но беглый просмотр ТТХ дает практически полное совпадение, только в режиме 1x на риголе написано 35Mhz, а в некоторых других местах — 7.
Видимо где-то в 16 году перешли на новую модель с несколько более тонким корпусом.
+
avatar
  • kven
  • 17 апреля 2018, 23:20
0
так то да, но новые малость изящнее
+
avatar
  • zoromll
  • 16 апреля 2018, 00:05
+4
Очень жаль, что могу поставить только один плюс.
За такой обзор сто плюсов мало.
+
avatar
0
Цену бы ещё указать во вступлении.
+
avatar
0
...Охренеть..-но плюс поставил…
Мда-а-а… за такой трактат и двух не жалко!
Резюме:-пожалуй, не буду я спешить избавляться от советского, двухлучевого…
Ибо, в академики уже поздно, а Нобелевская никогда и не грозила навестить(на пару с Абрамовичем..)…
+
avatar
0
Я скрупулезно выбираю осцилл и давлю жабу.
Rigol я уже точно не возьму, 1054Z хорош функционалом, но фича с одним блоком энкодеров на все каналы, это слишком неудобно для работы.
Пока целюсь на Siglent какой-нибудь, если по жиру, то SDS1102X-C за 378 баксов, либо по скромному SDS1122E+ за 246 баксов.
+
avatar
0
Свою жабу уговорил на Keysight но не надо кидаться в омут и делать глупости как я покупая новый. Тут уже выше даже написали что на eBay много подержаных Keysight / Agilent, Tektronix которые скидывают в 3-4 раза дешевле.
+
avatar
0
При выборе старенький Текс TDS1012 и новый Siglent SDS1122E+, при примерно равных ТТХ и равной цене 100MHz, 1GSa/s что брать?
Что первично? Базовые ТТХ, категория бренда, год выпуска?

Смотрю в сторону новых, потому что хочется автоматизировать измерения.
Как у сисадмина, у меня патологическая лень и маниакальная тяга к написанию скриптов.
+
avatar
  • kon-nor
  • 17 апреля 2018, 09:09
0
Не буду агитировать за Siglent (не работал с ним и не знаю, насколько он проблемный), но у текса буфер захвата всего 2.5К. Это даже 10 лет назад было мало, а сейчас вообще не смотрится на фоне буферов на миллионы точек у бюджетных моделей.
+
avatar
0
Ну я о том же и думаю, если для работы, чисто смотреть сигнал тут нужен бренд, чтоб быстро отрисовывал, а для хобби, для вдувчивого ковыряния брать проще и современнее и чтобы памяти побольше.
+
avatar
+2
В принципе Rigol для нечастого любительского использования вполне нормальный аппарат. К управлению со временем привыкаешь и дискомфорта не ощущается. Хотя, по большому счёту, в ремонтной практике редко бывают нужны сильно многоканальные режимы работы.
+
avatar
  • SAIRUS
  • 17 апреля 2018, 11:55
0
Хотите сказать что вам просто необходимо одновременно по несколько каналов настраивать?)
+
avatar
  • Nuts_
  • 16 апреля 2018, 19:19
+4
Очередной раз убедился что хабр (geektimes) уже не торт — усмельцы вполне могут быть и на «сайте с долларовыми безделушками»
+
avatar
  • kven
  • 16 апреля 2018, 21:53
0
там еще и система с кармой отвратительная, ничего нельзя против мейнстрима сказать, тут с этим намного лучше, даже не смотря на все недостатки
+
avatar
  • kven
  • 17 апреля 2018, 23:16
+1
хахаха, минус )))
отличная иллюстрация
+
avatar
  • qu1ck
  • 19 апреля 2018, 08:32
0
Спасибо за работу над прошивкой. Я сначала ваш топик на eevblog увидел и подумал: о, наш человек. И тут как раз ваш обзор с деталями истории подоспел. С удовольствием прочитал.

Скажите, возможно как-то значения автокалибровки подстроить? Я имею ввиду баг, когда после автокалибровки линия луча не совсем на нуле сидит (3-й пункт в «багтрекере» на еевблоге). По идее это просто должно быть записано по какому-то адресу, написать плагин который этот кусок памяти вручную обновит не должно быть трудно, если этот адрес найти.
+
avatar
  • kon-nor
  • 19 апреля 2018, 21:11
+1
Там не вполне понятно, как и где применяются эти значения. Я отследил фрагмент, настраивающий fine gain в АЦП. И с удивлением обнаружил, что в регистры подстройки точного усиления заносятся исключительно нули.
Вот эта функция:

4003AE98; int __cdecl ADC_SetupFineGain(int DisableFineGainFlg, int UnusedChNo, int UnusedValue)
P4:4003AE98 ADC_SetupFineGain; CODE XREF: CalibrationSettingsLoad+6Cp
P4:4003AE98; CalibrationSettingsLoad+90p
P4:4003AE98; CalibrationSettingsLoad+B4p
P4:4003AE98; CalibrationSettingsLoad+D8p
P4:4003AE98 STMFD SP!, {R12,LR}; Store Block to Memory
P4:4003AE9C CMP R0, #0; Set cond. codes on Op1 — Op2
P4:4003AEA0 BEQ loc_4003AEB4; Branch
P4:4003AEA4 MOV R1, #3; Value
P4:4003AEA8 MOV R0, #0x33; Address
P4:4003AEAC BL ADC_WriteRegister; Branch with Link
P4:4003AEB0 B loc_4003AEC0; Branch
P4:4003AEB4; — P4:4003AEB4
P4:4003AEB4 loc_4003AEB4; CODE XREF: ADC_SetupFineGain+8j
P4:4003AEB4 MOV R1, #0; Value
P4:4003AEB8 MOV R0, #0x33; Address
P4:4003AEBC BL ADC_WriteRegister; Branch with Link
P4:4003AEC0
P4:4003AEC0 loc_4003AEC0; CODE XREF: ADC_SetupFineGain+18j
P4:4003AEC0 LDR R0, =ADC_Gain_Save; Load from Memory
P4:4003AEC4 LDRSB R0, [R0,#1]; Load from Memory
P4:4003AEC8 LDR R1, =ADC_Gain_Save; Load from Memory
P4:4003AECC LDRSB R1, [R1]; Load from Memory
P4:4003AED0 ORRS R1, R1, R0,LSL#8; Rd = Op1 | Op2
P4:4003AED4 MOV R1, R1,LSL#16; Rd = Op2
P4:4003AED8 MOVS R1, R1,LSR#16; Value
P4:4003AEDC MOV R0, #0x34; Address
P4:4003AEE0 BL ADC_WriteRegister; Branch with Link
P4:4003AEE4 ;---
P4:4003AEE4 LDR R0, =ADC_Gain_Save; Load from Memory
P4:4003AEE8 LDRSB R0, [R0,#3]; Load from Memory
P4:4003AEEC LDR R1, =ADC_Gain_Save; Load from Memory
P4:4003AEF0 LDRSB R1, [R1,#2]; Load from Memory
P4:4003AEF4 ORRS R1, R1, R0,LSL#8; Rd = Op1 | Op2
P4:4003AEF8 MOV R1, R1,LSL#16; Rd = Op2
P4:4003AEFC MOVS R1, R1,LSR#16; Value
P4:4003AF00 MOV R0, #0x35; Address
P4:4003AF04 BL ADC_WriteRegister; Branch with Link
P4:4003AF08 ;--
P4:4003AF08 LDR R0, =ADC_Gain_Save; Load from Memory
P4:4003AF0C LDRSB R0, [R0,#5]; Load from Memory
P4:4003AF10 LDR R1, =ADC_Gain_Save; Load from Memory
P4:4003AF14 LDRSB R1, [R1,#4]; Load from Memory
P4:4003AF18 ORRS R1, R1, R0,LSL#8; Rd = Op1 | Op2
P4:4003AF1C MOV R1, R1,LSL#16; Rd = Op2
P4:4003AF20 MOVS R1, R1,LSR#16; Value
P4:4003AF24 MOV R0, #0x36; Address
P4:4003AF28 BL ADC_WriteRegister; Branch with Link
P4:4003AF2C ;---
P4:4003AF2C LDR R0, =ADC_Gain_Save; Load from Memory
P4:4003AF30 LDRSB R0, [R0,#7]; Load from Memory
P4:4003AF34 LDR R1, =ADC_Gain_Save; Load from Memory
P4:4003AF38 LDRSB R1, [R1,#6]; Load from Memory
P4:4003AF3C ORRS R1, R1, R0,LSL#8; Rd = Op1 | Op2
P4:4003AF40 MOV R1, R1,LSL#16; Rd = Op2
P4:4003AF44 MOVS R1, R1,LSR#16; Value
P4:4003AF48 MOV R0, #0x37; Address
P4:4003AF4C BL ADC_WriteRegister; Branch with Link
P4:4003AF50 LDMFD SP!, {R0,PC}; Load Block from Memory
P4:4003AF50; End of function ADC_SetupFineGain

Как несложно увидеть, передаваемые значения R1 и R2 нигде не используются. К переменной ADC_Gain_Save обращений из других мест я не нашел. Учитывая, что на моем экземпляре этой проблемы нет, пока непонятно, куда копать.
+
avatar
  • qu1ck
  • 20 апреля 2018, 01:46
0
Вроде это не в калибрации усиления надо смотреть, а калибрацию смещения. Это вроде в ds1054z отдельным формируемым на ad5207 и потом примешиваемым после атенюатора напряжением делается, если верить схеме Дейва.
www.eevblog.com/files/Rigol-DS1054Z-Schematic-FrontEnd.pdf

Я в асме не силен, да и микроконтролерами не так давно начал заниматься, но может и сам попробую покопаться. Не скинете базу и версию ida pro?
+
avatar
  • kon-nor
  • 20 апреля 2018, 08:43
0
Схемы я видел. Но там в прошивке многие вещи сделаны очень странно (пример функции я привел именно как иллюстрацию).
Функции управления ad5207 пока не «расковырял». Часть линий управления идет через Actel и не вполне понятно что к чему подключено. Причем даже наличие полной электрической схему (но без исходников actel) проблему не упростило бы.
Базу id'ы я не раздаю по двум причинам: Ильфак очень «любит» включать в нее постороннюю информацию (о лицензии — еще полбеды, но ходят слухи, что и о самом компьютере), а я в этом плане немного «параноик по должностным обязанностям». Второй момент — базы моей ida часто просто не читаются пиратскими, видимо лицензия старая и не совсем стандартная.
Список имен функций (как я их распознал) с привязкой к адресам есть в архиве с плагинами.
+
avatar
  • qu1ck
  • 20 апреля 2018, 12:08
0
Схемы я видел. Но там в прошивке многие вещи сделаны очень странно (пример функции я привел именно как иллюстрацию).
Это скорее всего из-за переиспользования кода других вариаций. У 1052е например отдельный ОУ был в во входной части, может для него была функция настройки усиления, а в 1054z уже просто заглушка.
Функции управления ad5207 пока не «расковырял». Часть линий управления идет через Actel и не вполне понятно что к чему подключено. Причем даже наличие полной электрической схему (но без исходников actel) проблему не упростило бы.
Можно попробовать просто всю структуру конфига сдампить и попробовать менять байты и смотреть на экран? Если не слишком большая то с программкой может выйдет побрутфорсить. Или попытаться дампить конфиг во время калибрации и смотреть что меняется когда там луч подгоняется к центру. Ну или смотреть куда пишется положение луча если просто двигать его ручкой и с чем это значение потом складывается.
Базу id'ы я не раздаю по двум причинам...
Вполне понимаю, спасибо все равно, буду копать.
+
avatar
  • kon-nor
  • 20 апреля 2018, 18:11
0
Это скорее всего из-за переиспользования кода других вариаций. У 1052е например отдельный ОУ был в во входной части, может для него была функция настройки усиления, а в 1054z уже просто заглушка.
Там несколько другая ситуация. Во-первых, в 1052 были совершенно другие АЦП, с которыми имеющаяся подпрограмма никак не могла работать. Во-вторых, в АЦП 1054Z есть регистр подстройки усиления. Есть подпрограмма, которая загружает в этот регистр значения из своих статических переменных. Есть четыре вызова этой подпрограммы (на каждый из каналов). Вот только параметр усиления, передаваемый в подпрограмму, никак не используется и не записывается в статические переменные. На англоязычных форумах после такого обычно вопрошают: WTF?
Можно попробовать просто всю структуру конфига сдампить и попробовать менять байты и смотреть на экран?
Конфиг калибровки почти 4 килобайта, там куча профайлов на разные частоты, разные усиления и т.п. Подбором такое точно не решить.

Но я тут несколько с другой стороны подошел к поиску обращений к AD5702 и нашел-таки подпрограмму настройки. Если есть желание проверить диапазон регулировки, это можно сделать следующими командами:
rigolif.exe c -a0x4003B324 -p10xFfFfFfFf
rigolif.exe c -a0x4003B324 -p10x00000000

Параметр вызываемой подпрограммы — четыре значения цифровых потенциометров (по 8 бит), упакованные в слово.
Это все нигде не сохраняется и работает до следующей перестройки режима или выключения осциллографа.
+
avatar
  • qu1ck
  • 21 апреля 2018, 08:41
0
Я попробовал этот метод и результаты неоднозначны. Задокументировал тут:
imgur.com/a/PQzQmwo
Картинки подписаны но я продублирую на русском:
1 — состояние после автокалибровки
2 — записано 0xffffffff
3 — записано 0x00000000
4 — лучший результат чего я мог добиться
5 — то же значение не работает если сдвинуть луч в другое место на экране, надо другое подбирать.
6 — то же значение не работает если переключить вертикальное разрешение (1вольт на деление -> 5)

Несколько моментов сразу заметны:
* 3-му каналу все эти манипуляции глубоко фиолетовы (pun intended)
* Размах калибрации этим методом небольшой, но достаточно тонкий. Возможно из-за нелинейности остальных компонентов добиться лучшей калибрации просто невозможно, хотя тот факт что простое смещение луча по экрану не меняет абсолютную ошибку на замерах и на глаз, оставляет надежду что это не так.

Можно проверить при простом смещении луча эти значения для ad5702 меняются? Если да то это совсем трудно будет подстраивать для всех комбинаций усиления, положения луча и т.д.
+
avatar
  • kon-nor
  • 21 апреля 2018, 11:31
0
Для более тонких экспериментов нужно разбирать аппарат и смотреть на реальные напряжения смещения. Может там какой-нибудь брак при пайке или битая микросхема?

Можно проверить при простом смещении луча эти значения для ad5702 меняются?
Функции, позволяющей прочитать текущие значения из АЦП нет. Могу только предложить прочитать память.
В переменной 406C4274 хранится текущее значение настроек в процессе калибровки.

Для чтения текущих рабочих настроек процедура несколько сложнее. Сначала нужно определить адрес блока параметров — он хранится по адресу 406449E0. Текущее значение хранится в блоке по смещению 0x74.

Если да то это совсем трудно будет подстраивать для всех комбинаций усиления, положения луча и т.д.
Калибровка не просто так идет продолжительное время. Осциллограф тупо перебирает все возможные режимы для всех каналов.
+
avatar
  • xcom
  • 26 июня 2018, 00:03
0
>И это не Rigol такие «жулики» — подобный механизм есть в приборах многих фирм.

Это просто все жулики — они не упоминают маленький нюанс: да, разрешающая способность растет, но точность как была 3%, так и осталась. Т.е. как не усредняй показания вольтметра 5.5, а точность 6.5 все равно не получишь.
+
avatar
0
Еще одно удивление от этих риголовских четырехканальников – нет входа внешней синхронизации. Этого маркетингового хода я понять не смог ))))
+
avatar
  • kon-nor
  • 26 января 2019, 11:10
0
Rigol совсем автор этого тренда, он ему только следует. Так сделано практически у всех современных цифровников. Если у двухканальных отдельный вход еще встречается, то в 4-х канальниках он большая редкость даже в моделях за десятки килобаксов.
Вот, например, MSOS804A Infiniium серии V от Keysight (которая бывшая Agilent, которая бывшая HP) — те же 4 канала без отдельного канала синхронизации всего за $76973 (typical price).
+
avatar
0
Хреновый тренд, на самом деле. Независимо от того, Ригол это, Кейсайт, Тектроникс, Роде и Шварц, Лекрой и т.д. по списку.
+
avatar
  • kon-nor
  • 27 января 2019, 19:45
0
Я в своей практике даже не припомню случая, когда бы не хватило четырех каналов и потребовался бы еще дополнительный вход синхронизации. Отдельный упрощенный канал синхронизации — это просто некая привычка от аналоговых скопов, где четырехлучевой (не четырехканальный!) аппарат был очень редким и дорогим. Для цифровика стоимость организации отдельного канала синхронизации соизмерима со стоимостью обычного канала, а универсальность в использовании — меньше.
+
avatar
0
Еще вопрос про старый баг с джиттером. В текущих версиях аппарата он исправлен программно, или какие-то аппаратные изменения тоже были? И насколько безопасна (в этом плане) покупка с Али? Известны ли диапазоны серийников и пр.?
+
avatar
  • ALeX_71
  • 22 января 2020, 18:07
0
Очень подробно вникли в вопрос) Огромное спасибо за материал!
Кстати микросхема не H27U1G8F2BTA, а H27U1G8F2BTR это R.

Вопрос у меня есть rigol 1074z plus (c платой генератора), проблема в том что он висит на заставке ригол.
Включение, мигнули все кнопочки, потухли. Потом загорелся CH1, затем через примерно 5 секунд зажглись CH2, CH3, CH4, math, ref. И весит логотип ригол. По USB и LAN не определяется.
Вы могли бы помочь с дампами например на winbond 25x40BVNIG для начала, а может и дело в H27U1G8F2BTR. Эти две я своим программатором смогу прошить. Либо я не в том направлении думаю?
+
avatar
0
CAN декодер точно есть в Rigol DS1054Z?
Я вот вчера купил, залил последнюю официальную прошивку, разлочил кодом (all), а CAN декодер не появился.
Спасибо.
+
avatar
  • Pireus
  • 09 августа 2021, 16:06
+2
Здравствуйте. Недавно получил «Rigol1102Z-E». Обнаружил, что не работает внешняя синхронизация. Хотел проверить на другой прошивке, но новой не нашёл, скачал за 2019г, но она не определялась, так ка для этой серии прошивки идут с именем DS1000Z-EUpdate, а старые с именем DS1000ZUpdate. Но, так как руки очень сильно чесались, я изменил имя, прибор прошивку увидел и прошился. Всё работает штатно, проблема с синхронизацией осталась и появилась новая — перепрошить обратно теперь не могу: прежнюю прошивку(с именем DS1000Z-EUpdate) он теперь не видит, переименованую начинает прошивать и где то через минуту процесс обрывается. Помощь от китайца была в виде новой прошивки за этот год, но она, естественно, тоже не заходит. Есть ли у меня шанс как то это исправить? Спасибо.
+
avatar
  • YaDoncy
  • 11 августа 2021, 10:52
+1
Имею аналогичную ситуацию с Rigol1102Z-E.
Подаю с генератора UTG962, в sweep режиме, сигнал синхронизации на вход EXT, переключаю соответственно вход триггера на внешний тактовый сигнал EXT, пытаюсь синхронизировать ручкой Trigger LEVEL и ничего… синхронизацию не поймать. Думал что я что то не так понимаю, но вариантов нет.
Я попробовал в качестве канала синхронизации использовать вход 2. И это работает. Конечно, при этом наблюдаю второй луч на экране, с меандром синхросигнала, но хотя бы первый канал, в этом случае, синхронизируется.
В моем случае, software version 00.06.02
На сайте ru.rigol.com я вижу только v00.06.01.00.00 от 2019-10-17
Подумал, при перепрошивке, не рухнут ли дополнительные активированные опции? Если выйдет новая версия…
Информации особой нет, наверное внешняя синхронизация, спросом не пользуется.
Ваше сообщение первое, по этой проблеме. Не знаю что делать.
+
avatar
  • Pireus
  • 11 августа 2021, 11:38
+1
Вот как раз эту прошивку я скачал и установил таким способом, как описал выше. У меня была установлена версия 00.06.02.00.01. Китаец мне выслал версию этого года 00.06.03.01.01. Обращался в службу помощи оф. сайт Rigol, попросили выслать серийный номер, и через пару дней дали ответ, что это китайская версия(я просил выслать какие либо файлы для восстановления через компьютер), и выложили мне ту же прошивку, что и китаец. Написал аналогичное письмо в китайский сайт Rigol, но ответа пока нет.
Кстати, если делаете синхронизацию вторым каналом, то не обязательно его включать, синхронизация будет работь и так.
+
avatar
  • YaDoncy
  • 11 августа 2021, 12:51
+1
Спасибо, попробую такой вариант (со 2м каналом). Мне было странно, что переключаясь на EXT вход, с экрана пропадает линия уровня Trigger LEVEL. Хотя, в правом верхнем углу, установка напряжения срабатывания T триггера отображается. Подумал, ну может так задумано?
Вероятно нет связи, между входом EXT и входными цепями триггера. Может это программно, а может на компонентном уровне, что то не допаяли… можно только гадать. Вскрывать пока не пробовал.
А С1-94, у меня, хорошо синхронизируется, по внешнему сигналу )))
Не знаю, остается только ждать реакции разработчика, на этот баг.
Вам спасибо, за подсказку.
+
avatar
  • Pireus
  • 11 августа 2021, 14:06
+1
Мне было странно, что переключаясь на EXT вход
При внешней синхронизации линия не отображается. У меня есть ещё Hantek DSO2C10, купил перед этим за не дорого, то там нет ни линии, ни регулировки уровня при внешней синхронизации, но она работает. С этим Hantek у многих проблемы, возвращают назад или пытаются самостоятельно их устранять.На форуме по Hantek послал сообщение одному из пользователей, который тоже купил себе такой же Rigol, что бы он проверил у себя внешнюю синхронизацию. Возможно, что китайская версия у всех такая.
+
avatar
  • moyemail
  • 11 августа 2021, 14:15
0
Недавно получил «Rigol1102Z-E». Обнаружил, что не работает внешняя синхронизация.
Доброго вам!
Т.е., если заказывал Rigol1102Z-E в ноябре прошлого года, однозначно — такая же беда?
Аппарат стоит на другой квартире, в коробке ещё, руки не дошли поковырять.
Брал у этого продавана, со склада в РФ.
+
avatar
  • Pireus
  • 11 августа 2021, 14:24
+1
Я заказывал где то 1,5 месяца назад у этого же продавца, Надо бы попробовать на последней прошивке, хотя сомневаюсь, что в ней причина. Мог бы кому то отправить, или попросите у китайца. Продавец или не знает об этой проблеме, или делает вид.
+
avatar
  • YaDoncy
  • 13 августа 2021, 11:38
0
Вы не задавали вопрос на форуме eevblog? EXT TRIG
Я смотрю эту тему, с аналогичным багом, у DS1202Z-E. Сброс к заводским установкам, кому то помогает восстановить работу EXT входа. Я пока не пробовал. Не уверен в своей компетентности. Написал вопрос продавцу с Shop5592146 Store.
+
avatar
  • Pireus
  • 13 августа 2021, 11:57
0
Спасибо за подсказку по EEVblog. Сегодня сделаю сброс к заводским установкам и посмотрю на результат. По этому сбросу мне китаец ничего не ответил. Но уже пришёл ответ от европейского филиала Rigol, попросили выслать опять скрин моей версии. Посмотрим, что они скажут, а может повезёт со сбросом и это решит мою главную проблему с перепрошивкой.
+
avatar
  • Pireus
  • 13 августа 2021, 14:48
0
Сброс к заводским устраняет проблему с внешней синхронизацией, но, к сожалению, мою проблему с прошивкой — нет.
+
avatar
  • YaDoncy
  • 13 августа 2021, 17:18
0
Да, жалко у вас что то пошло не так. Даже читая обзор от автора, понятно, что есть «подводные камни».
Если не помогут китайцы, может автор обзора сможет дать совет, как привести в порядок осциллограф? Здесь нужно иметь представление, о взаимодействии частей ПО и железа. Нужен практический опыт… Попробуйте обратиться к автору, хотя бы за советом.
+
avatar
  • YaDoncy
  • 13 августа 2021, 22:43
0
На вопрос к продавцу — Имею баг. Не работает вход внешней синхронизации EXT. Могу ли я получить помощь, совет, что-нибудь?
Получил ответ на следующий день — Вы можете скачать инструкции с нашего сайта…
… ну о чем говорить… Отправлять с рекламацией? Они знают, что мало кто на это решится. Прибор, в общем, работает.
+
avatar
  • Pireus
  • 14 августа 2021, 12:37
0
Да, максимум вышлют новую прошивку. Тут на EEVblog есть соседняя ветка с аналогичной моей проблемой. Возможно, что не всё ещё потеряно.
Сброс к заводским настройкам, как там описано, запускает внешнюю синхронизацию. Попробуйте,
+
avatar
  • kon-nor
  • 14 августа 2021, 13:33
0
Т.к. вопрос уже неоднократно поднимался в частной переписке, поясню проблему с совместимостью прошивок Z и Z-E.

По формату они одинаковы, отличаются только имена. Но у Rigol загрузчик прошивок сверяет номер версии и не дает прошить предыдущую. А вот версии отличаются, поэтому при заливке неверной прошивки ее откат не всегда возможен.
Но у Rigol есть секретная сигнатура для флешки, которая отключает многие проверки и дает доступ к сервисным функциям.
Сигнатурой является сектор с таим содержимым:
0000000000: 2D 1F 30 E6 39 50 7E DA │ 74 D4 E6 EC 6E BF 1B EB
0000000010: AB D9 89 39 0A 3D 11 19 │ FE CF 08 75 EC 32 32 C0
0000000020: CD 80 21 6E AE 54 12 E0 │ AD FD 09 CA 57 4B FB B0
0000000030: 33 F5 75 93 9E 2C 8B A9 │ 8D 3E 78 72 D4 DB 31 67
0000000040: 72 91 71 6A 33 D4 8D 8E │ 56 B7 FE 08 E4 BC E4 72
0000000050: 8C 03 23 25 48 48 1F 21 │ C9 74 C9 80 43 9C CE 52
0000000060: 93 BF A8 28 F8 89 65 1E │ A8 DC E3 10 84 65 17 BF
0000000070: 31 9F 73 F6 DA 43 87 4E │ 59 1F 3E 30 AF BA 28 7C
0000000080: 4B EA AC F1 0D 2C 33 45 │ 32 74 C2 9F 51 BA C9 5F
0000000090: 88 00 28 C9 AB 7D 77 1F │ EA CC 5D C7 29 D3 F9 3D
00000000A0: 33 89 89 42 80 8F 42 5F │ AD C6 24 45 A6 92 07 4C
00000000B0: 4E 24 16 1E 7E E8 93 C3 │ 86 28 6C CF D1 9B BF 8F
00000000C0: F7 30 BA ED BE 5A EF 8B │ 58 8C 52 9E F4 D2 81 5B
00000000D0: F0 C5 03 FB 3C 6A E5 E4 │ 53 46 D6 B0 A4 FA DD 6F
00000000E0: 55 03 B3 58 1F 73 01 B0 │ 1A 91 4E 90 ED 04 5F 02
00000000F0: B2 D7 D2 94 16 51 9A 84 │ 5D 7B 54 8C 4A 4E 4F 5C
0000000100: 00 F6 FC CA 1A 83 84 7A │ CB 0D 26 DB BE 88 B4 7A
0000000110: F6 F9 5C D7 0F 17 5A 3C │ F6 72 6A 27 C6 EE BC 62
0000000120: D1 83 E2 D4 FE 9C F2 60 │ EF B7 B6 11 EF 81 6D E3
0000000130: 56 73 86 8E BB EC 5A 0F │ 36 B5 34 64 6E 34 EB 5E
0000000140: D2 B3 D4 30 B3 FB FF 36 │ A6 5F B8 A1 D0 FA 5E 85
0000000150: B3 E2 89 00 61 9C 6A 84 │ E0 9C 07 4A 28 E7 83 EA
0000000160: 82 EA D6 95 12 13 01 0C │ 0F E0 31 15 D9 4D 66 30
0000000170: BC FE 1D 0A A7 4C 2D 97 │ DA 4F 4A B4 E3 4A B8 2B
0000000180: 6A DB 4D 98 7C 71 78 69 │ AA AB 30 0D D0 51 DF 8F
0000000190: 76 27 FA 24 CD F5 32 9B │ C6 01 9B CD E3 AC E5 C8
00000001A0: 5C 75 89 19 65 52 C3 E9 │ 22 46 A3 D3 11 00 3C 0B
00000001B0: 64 DA 43 98 A7 A1 E9 88 │ 33 A0 38 87 0B 92 94 7F
00000001C0: 44 3D 02 ED AB 84 06 3D │ 85 93 00 05 AF CC D8 B1
00000001D0: 3F 48 3E F8 E2 73 87 13 │ B4 5C BE 17 69 B3 A6 9F
00000001E0: 11 56 19 BD B4 16 C8 8A │ 9B C2 03 E1 EE 76 4F 0B
00000001F0: 2F 4D 83 6A 01 F2 9D 9B │ C5 6A 40 2D 3C EB 50 EA

Его необходимо записать в последний резервный сектор (сразу за этим сектором ним будет FAT).
Обычно последний резервный сектор — это сектор 31 файловой системы.
Записать можно через winhex.

Только пожалуйста, будьте осторожны! Используйте это ТОЛЬКО для возврата прошивки и ТОЛЬКО если вы уверены, что прошивка корректна. Не нужно пытаться запускать открывшиеся сервисные функции. Ничего особо интересного там все равно нет (мне, по крайней мере, ничего и никогда не пригодилось), зато есть функция полного стирания загрузочного чипа. После этого — осциллограф превратится в тыкву.
+
avatar
  • Pireus
  • 15 августа 2021, 23:31
0
kon-nor, спасибо за ответ. Но я хотел бы уточнить порядок действий, так как от программирования далёк.
Я должен открыть флешку winhex-ом, нахожу 31-й сектор, записываю туда ваши данные, сохраняю. Далее подключаю флешку с файлом прошивки к осциллографу и запускаю прошивку.
+
avatar
  • kon-nor
  • 16 августа 2021, 19:23
0
Только не 31-й сектор флешки, а 31-й сектор раздела файловой системы. Для проверки можно сместиться на следующий сектор — winhex должен в окне информации, что это первый сектор FAT.
+
avatar
  • Pireus
  • 16 августа 2021, 20:25
0
Понятно. Значит не туда записал. Плюс ещё скачал не полную версию, где нельзя было сохранить изменения. Потом записывал другой программой.
+
avatar
  • Pireus
  • 16 августа 2021, 16:09
0
Флешку записал, но сервисное меню не появляется при подключении к осциллографу. Смущает то, что даже ту прошивку, что я принудительно залил, она тоже не прошивается, процесс прошивки начинается как бы не с начала, судя по положению полосы, и как только она сдвигается через секунд 40, тут же пишет failure.
+
avatar
  • Pireus
  • 16 августа 2021, 18:12
0
Ура. Получилось. С форума EEVblog скачал файл для создания 'Rigol sign disk', переименовал файл последней прошивки на DS1000ZUpdate и он прошился. Теперь видит ту прошивку, что надо. Почти неделю ходил в трауре. Спасибо всем за внимание и поддержку.
+
avatar
  • YaDoncy
  • 16 августа 2021, 22:45
0
Хотелось бы сказать, что, техническая поддержка Rigol, не даром ест свой хлеб.
Но нет повода, так сказать…
Если бы не инициативные группы, технически грамотные, интересующиеся люди, было бы совсем плохо.
То есть, вы вернулись к штатной прошивке 00.06.02?
И всё хотел узнать. Платные опции у вас, были активированы, при покупке?
Если да, что с ними сейчас, после таких опасных операций?
… ну и хотя бы, синхронизация появилась )))
+
avatar
  • Pireus
  • 16 августа 2021, 23:18
0
Я сразу установил последнюю прошивку, что выслали китайцы. Опции были все активированы и остались таковыми. Синхронизация появилась ещё до того, после сброса к заводским настройкам и сейчас тоже есть.В последней прошивке в описании есть упоминание о внешней синхронизации, так что может быть, что она появится после прошивки. От «Rigol» тоже пришло сообщений с двумя файлами для восстановления, но они, опять же, сами по себе не установились. Но теперь уже и не надо. Так, что, да, благодаря таким технически грамотным людям мне удалось восстановить свой прибор, за что я им очень благодарен.
+
avatar
  • YaDoncy
  • 17 августа 2021, 09:53
0
Хороший опыт, благо что все закончилось.
Вчера смотрел на риголовских сайтах, новую прошивку, не обнаружил.
rigol.eu
int.rigol.com
rigolna.com
На всех висит v00.06.02.00.01 от 2019-10-17
Единственное где, это на rigol.com v00.06.03.01.01 от 2021-06-30
Но обязательно — «Зарегистрируйтесь как член Puyuan» и заполните необходимую информацию
Европейцев, новой прошивкой, пока не балуют. Подождем ))
+
avatar
  • Pireus
  • 17 августа 2021, 10:20
0
Китайский сайт требует для регистрации номер телефона, и это проблема, пишет, что номер не подходит. Мне китаец с магазина давал эту ссылку, но я так и не смог зарегистрироваться и попросил выслать мне файл на почту. Почему на других не выкладывают-не понятно, но по запросу — дают. Могу Вам выслать на почту, если хотите.
+
avatar
  • YaDoncy
  • 17 августа 2021, 11:51
0
Я ответил вам в личном сообщении. Спасибо.
+
avatar
  • SEG
  • 07 сентября 2021, 23:04
0
Вот тут я смог скачать прошивку, без регистрации и СМС, для 1054Z.
Как быстро появляются тут последние версии прошивок, я не знаю.
www.rigolna.com/firmware/

Latest Oscilloscope Firmware
DS1000E 00.04.02.01.00 Release notes
DS1000Z 00.04.04.04.03 Release Notes ( << эту я искал)
DS1000Z-E 00.06.02.00.01 Release Notes (<< а это 00.06.02.00.01 для «E», новой пока нету)
DS2000A/E 03.06.00.00 Release Notes



«Зарегистрируйтесь как член Puyuan»
Можно попросить китайцев скачать, тех же продавцов на Али.
ps: я слепой! Pireus уже это сделал.
+
avatar
  • SEG
  • 07 сентября 2021, 23:07
0
//
+
avatar
  • Pireus
  • 23 сентября 2021, 22:05
0
Интересный момент обнаружил — если на китайском сайте в поиске написать нужную модель, то появляется страница с файлами и прошивкой, которые можно скачать без регистрации.
+
avatar
  • Pireus
  • 12 октября 2021, 20:52
0
На Китайском сайте для DS1000Z-E появилась новая прошивка.