Наш канал в telegram

101 применение шлюза UART-to-I2C/SPI/1W (RH-0004). Часть 8. USB программатор микросхем с интерфейсом 1-Wire

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

У такого решения было несколько причин:

  • Во-первых, устройства 1-Wire гораздо сильнее отличаются друг от друга по функционалу и набору команд, чем устройства SPI и I2C.
  • Во-вторых, изначально я полагал, что люди сами будут писать программы для работы со шлюзом, а я только покажу пару примеров. Для этого я полностью открыл API, написал DLL-ку, однако… почему-то не все вокруг оказались программистами (хм, неожиданно).

В общем, в итоге я оказался неправ, люди хотели не писать программы, а пользоваться готовыми. Ну, ок, пусть будет так. Cегодня я представляю вашему вниманию единую программу для работы через шлюз с микросхемами 1-Wire. То есть теперь шлюз RH-0004 можно будет использовать как полноценный USB-программатор различных устройств с интерфейсом 1-Wire.

С точки зрения железа всё стандартно и аналогично USB-программаторам I2C и SPI. Нам понадобится сам шлюз RH-0004 + конвертер USB-to-UART RH-0003. UART-разъём конвертера — это ответная часть UART-разъёма шлюза, поэтому для их соединения вам не придётся ничего изобретать. Конвертер позволяет не только организовать обмен данными между шлюзом и компьютером, но и запитать шлюз (причём любым напряжением: +3,3В или +5В, оба они присутствуют на разъёме конвертера как раз в нужных местах). Всё вместе это выглядит вот так:

USB-программатор 1-Wire

Теперь переходим к программной части.

Во-первых, нужно установить на компьютер драйвера для USB-to-UART конвертера. Конвертер сделан на базе чипа cp2102 фирмы silabs, дрова для него (VCP Drivers) можно скачать на их официальном сайте, вот по этой ссылке.

После установки драйверов на USB-to-UART конвертер у вас на компьютере появляется виртуальный com-порт, через который специально написанная программа может общаться со шлюзом. Эта программа сама устанавливает нужный для данного чипа режим 1-Wire и реализует нужные для работы с чипом алгоритмы. Ссылки для скачивания смотрите в конце статьи).

Окно программы показано на картинках ниже.

программа для работы с USB-программатором 1-Wire
программа для работы с USB-программатором 1-Wire

Работать с программой достаточно просто, — выбираем com-порт, выбираем чип, вводим ROM, подключаемся и можем c этим чипом работать. Либо просто запускаем поиск, который найдёт и отобразит в специальном окне все подключенные к шлюзу устройства 1-Wire, а нам останется только выбрать нужное устройство, щёлкнув по нему правой кнопкой мыши и подтвердив выбор во всплывающем контекстном меню. Для удобства в правом верхнем углу программы отображается схема подключения шлюза к выбранному чипу (к каким ногам что подключать).

Через верхнее меню доступны сохранение / загрузка данных памяти в файлы форматов bin и hex, сохранение логов работы в текстовые файлы, выбор языка (пока только английский и русский). Кроме того, специально добавил возможность ручного ввода ROM, на случай, если вдруг у чипа он окажется нестандартным (я такого ни разу не видел, но пользователи писали, что такое бывает).

Если нужного чипа нет в списке — можно написать на форум или в личку админу (rhf-admin) письмо с указанием того, какой чип вы хотели бы добавить. Если интересно — можете попробовать добавить нужный чип сами, программа выложена с исходниками на C++ Builder.

Протокол 1-Wire подробно описан вот здесь.

Список функций и регистров шлюза можно посмотреть здесь.

Программа Исходники Описание (поддерживаемые чипы, изменения в коде и т.д.) Поддерживаемые ОС
1-Wire Programmer v.3.0 v.3.0 sources DS1425, DS1427, DS18B20, DS18S20, DS1822, DS1963L, DS1991, DS1992, DS1993, DS1994, DS1995, DS1996, DS2405, DS2415, DS2417, DS2423, DS2430A, DS2431, DS24B33, DS2890 Windows XP, Windows Vista, Windows 7, Windows 8
1-Wire Programmer v.3.1 v.3.1 sources Update 14.05.2020

  • Добавлена возможность работы с ключами RW1990
  • Добавлена кнопка расчёта CRC для произвольного ROM
  • -/-
    1-Wire Programmer v.3.2 v.3.2 sources Update 29.06.2020

  • Добавлены чипы: DS1920, DS1961S, DS1971, DS2404, DS2432, DS28E05, DS28E07, DS1982*, DS2502*
  • Добавлены ключи: AN1990*, TM2004*
  • Добавлена документация (pdf) на большинство чипов
  • -/-

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

    P.S. Меня также просили сделать поддержку чипов DS2432 и я её обязательно сделаю, как только до меня доедут заказанные в Китае чипы (ещё зимой заказывал, но из-за пандемии первый заказ отменили, а второй вроде выслали, но он всё никак не может до меня добраться).

    P.P.S. Наконец-то дошли чипы DS2432 с алишки. Как и обещал, выкладываю новую версию программы (3.2), в которую добавлена возможность работы с этими крипточипами. Чуть позже будет видос по работе с DS2432 и некоторыми другими чипами.

    P.P.P.S. Вот и обещанное видео.

    1. Часть 1. USB программатор микросхем EPROM с интерфейсом I2C
    2. Часть 2. USB программатор микросхем EPROM с интерфейсом SPI
    3. Часть 3. USB-термометр на DS18B20 с передачей данных по сети
    4. Часть 4. USB программатор микросхем EPROM DS2430
    5. Часть 5. USB-программатор микросхем EPROM DS24B33
    6. Часть 6. Подключение 3-осевого гироскопа/акселерометра MPU6050 к компьютеру
    7. Часть 7. USB-программатор микросхем EPROM DS2431
    8. Часть 8. USB-программатор микросхем 1-Wire

    Добавить комментарий