Программа IMSProg
(Онлайн справочник радиолюбителя)
Программа IMSProg предназначена для работы с программаторами CH341a в ряде операционных систем Linux и поддерживает запись, чтение, стирание и проверку I2C, SPI и MicroWire EEPROM/Flash микросхем (серий 24xxx, 25xxx, 93xxx).


Для работы с этими популярными программаторами (называемыми просто по цвету печатной платы "зелеными" и "черными" CH341a) под Windows существует ряд программ - CH341Programmer, NEOProgrammer, ASProgrammer, SIBERIAProg и других. А вот удобной универсальной программы с графическим интерфейсом для ОС Linux до недавнего времени не существовало.

Программа IMSProg написана на QT5, использует графический виджет шестнадцатиричного редактора QHexEdit2 и доработанный набор библиотек программатора SNANDer. Формат базы данных микросхем основан на формате программаторов EZP2019, EZP2020, EZP2023, Minpro I, XP866+. Для ее редактирования используется отдельный компонент программы.
Установка программы
Для ОС Linux Debian, Ubuntu, Kubuntu, Lubuntu, MX, Mint можно установить программу из DEB-пакета. Для этого необходимо скачать пакет здесь в папку Загрузки и открыть с помощью файлового менеджера, который сам запустит графический установщик пакетов. Можно также открыть папку Загрузки в терминале и выполнить команду
где 1.x.xx-x - номер текущей версии скачанного файла.
Для РЕД ОС достаточно в терминале набрать команду:
Сборка программы из исходного кода
Если у вас другой дистрибутив Linux или есть желание собрать программу самостоятельно - это можно сделать при помощи cmake. Для этого сначала нужно установить дополнительные пакеты: cmake, qt5base, libusb, pkg. Для Debian, Ubuntu, Kubuntu, Lubuntu, MX, Mint это можно сделать так:
sudo apt-get install libusb-1.0-0 libusb-dev libusb-1.0-0-dev
sudo apt-get install qtbase5-dev
sudo apt-get install pkg-config
Для RedHat, Centos, Fedora, REDOS это можно сделать так:
sudo dnf install libusb libusb-devel libusb1 libusb1-devel
sudo dnf install qt5-qtbase-devel
sudo dnf install pkgconf-pkg-config
Далее необходимо скачать репозиторий программы с сайта GitHub здесь, распаковать полученный файл в папку Загрузки, перейти в распакованную папку IMSProg-main и открыть в ней терминал. Теперь нужно откомпилировать отдельно оба компонента:
- программатор
mkdir build
cd build
cmake ..
make -j4
sudo make install
- редактор базы микросхем
mkdir build
cd build
cmake ..
make -j4
sudo make install
В результате установки DEB-пакета или сборки программы из исходного кода в меню Разработка появятся две иконки - программатора и
редактора базы микросхем.
Подключение программатора
Вставьте микросхему в соответствующий разъем программатора CH341a. Микросхемы серий 24xxx и 25xxx должны быть вставлены непосредственно, в соответствии с маркировкой на печатной плате программатора CH341a.
Микросхемы серии 93xxx необходимо вставить в адаптер 93xxx, а адаптер - в гнездо программатора с маркировкой 25xxx.

Если напряжение питания микросхемы составляет 1,8 вольта, то его необходимо вставить в адаптер 1,8 вольта, а адаптер - в нужное гнездо программатора.
При работе программы программатор CH341a можно вынимать и вставлять в USB-порт компьютера в любой момент времени, за исключением времени выполнения операций чтения, записи стирания и проверки микросхемы.
Работа с программой
Общие сведения
Основное окно программы поделено на три логических части: сверху слева - панель параметров текущей микросхемы, снизу слева - панель управления функциями режима "авто", справа - шестнадцатиричный редактор буфера микросхемы. Кроме того есть верхнее текстовое и графическое меню и строка состояния. Язык программы определяется значением текущей локали Linux и изменяется автоматически при загрузке программы. Сейчас доступны английский, русский, немецкий и испанский языки.
Выбор типа микросхемы
Выберите тип используемой микросхемы из выпадающего меню Type: SPI FLASH при использовании микросхем SPI NOR FLASH серии 25xxx, 24_EEPROM при использовании i2c EEPROM серии 24xxx, 93_EEPROM при использовании MicroWire EEPROM серии 93xxx.
При использовании микросхем SPI NOR FLASH серии 25xxx будет доступна кнопка Поиск. При нажатии кнопки Поиск или или ‹Ctrl+D› считывается информация JEDEC о микросхеме и загружаются все параметры этой микросхемы из базы данных. Любой параметр (объем микросхемы, размер страницы, размер блока, напряжение питания (VCC) и поддержка 4-битного адреса) может быть изменен вручную.
Вручную достаточно ввести данные выпадающего `Произв.` и `Название` - все остальные параметры будут автоматически загружены из базы данных микросхем.
При использовании микросхем серий 24xxx или 93xxx необходимо вручную ввести данные всплывающего меню `Произв.` и `Название`, поскольку для этих типов микросхем автоопределение не поддерживается, все остальные параметры будут автоматически загружены из базы данных микросхем.
Операции с программатором
- Нажатие кнопки Считать или
или ‹Ctrl+R› вызывает функцию чтения данных из микросхемы в буфер компьютера.
- Нажатие кнопки
или ‹Ctrl+W› вызывает функцию записи данных из буфера компьютера в микросхему.
- Нажатие кнопки
или ‹Ctrl+E› приводит к стиранию всех данных микросхемы.
- Нажатие
или ‹Ctrl+T› вызывает процесс побайтового сравнения данных в микросхеме и в буфере компьютера.
- Индикатор выполнения показывает ход выполнения операций чтения, стирания и проверки.
- Кнопка Старт! используется для последовательного выполнения операций стирания, записи и верификации. Если одна или две из этих операций не нужны, можно снять флажки с чекбоксов этих операций.
- Нажатие
или ‹Ctrl+I› позволяет аварийно прервать операции чтения, записи, стирания или сравнения данных микросхемы.
Операции с файлами
-
или ‹Ctrl+S› используется для записи содержимого буфера компьютера в файл.
-
или ‹Ctrl+O› используется для загрузки файла в буфер программы (HEX-редактор).
-
или ‹Ctrl+Shift-S› используется для сохранения части компьютерного буфера в файл (необходимо ввести начальный адрес и длину части или конечный адрес). Эта операция может быть использована при разбиении двоичного образа данных на части.
-
или ‹Ctrl+Shift-O› используется для загрузки небольшого файла по определенному адресу в буфере. При этом фрагмент данных в буфере будет заменен новыми данными из файла.
-
или ‹Ctrl+Q› служит для вызова модуля редактора базы данных микросхем.
Операции с буфером (шестнадцатиричным редактором)
Шестнадцатиричный или HEX-редактор микросхем (правая часть экрана) используется для отображения и изменения данных буфера.
Редактор содержит следующие элементы управления: или ‹Ctrl+Z› отмена последней операции,
или ‹Ctrl+Shift+Z› повтор операции и
или ‹Ctrl+F› функция поиска/замены кода или строки. Сочетание клавиш ‹Ctrl+A› производит пересчет контрольной суммы буфера по алгоритму CRC32.
Операции поиска - замены

Поиск и замену можно производить как шестнадцатиричного кода (опция `Hex` в выпадающем меню), так и текстовую информацию (`UTF-8` в выпадающем меню). Возможен поиск как вперед, так и назад.
Для удобства поиска внизу формы есть панель `Стандартные заголовки`. С помощью клавиш на этой панели поле поиска автоматически заполняется стандартными заголовками архивов, изображений или системных разделов.
Редактор базы микросхем

Редактор базы микросхем - IMSProg editor это самостоятельная программа, которая может быть запущена как из меню `Разработка`, так и из программы IMSProg нажатием на .
Все операции в редакторе становятся доступными только после загрузки файла базы микросхем с расширением .Dat.
Меню `Файл`
- `Открыть` или ‹Ctrl+O› или
позволяет загрузить файл данных.
- `Сохранить` или ‹Ctrl+S› или
сохраняет таблицу параметров микросхем в файл базы данных.
- `Выход` или ‹Ctrl+X› или
- выход из редактора.
- `Экспорт в CSV формат` или ‹Ctrl+X› или
позволяет выгрузить данные о микросхемах в формате CSV для дальнейшей обработки программой электронных таблиц - Libre Office Calc, Open Office Calc, Google Tables и т. д.
- `Импорт из CSV файла` или ‹Ctrl+Shift+X› или
- загружает таблицу в формате CSV и добавляет данные из нее к существующим данным в таблице.
Меню `Редактировать`
- `Удалить строки` или ‹Del› или
- удаляет одну или несколько строк.
- `Добавить строку` или ‹Ins› или
- добавляет строку ниже выделенной и копирует все данные из выделенной строки в новую.
- `Переместить вверх` или ‹Ctrl+Вверх› или
- перемещает выделенную строку вверх.
- `Переместить вниз` или ‹Ctrl+Вниз› или
- перемещает выделенную строку вниз.
- `Импорт выделенных строк в CSV формат` или
- сохраные выделенные строки в файл формата CSV.
Дополнительная информация:
Адаптеры - переходники для микросхем i2c (24xxx) в корпусе SOT-23-5 и для микросхем MicroWire (93xxx) в корпусе SOT-23-6 могут быть собраны по этим рисункам:
В заключении небольшое демонстрационное видео:
История изменений:
- Ver. 1.0.0 - 1.0.18 - частично рабочие версии.
- Ver. 1.0.19 - Исправлен неверный уровень на выводе SDA в i2c EEPROM. Удалена старая функция "ch341a_spi_init" в файле "ch341spi.c", заменена на "ch341a_init" (это ошибка SNANDer).
- Ver. 1.0.20 - Исправлена неправильная последовательность байт при чтении/записи Microwire EEPROM в 16-битном режиме (Файл программы SNANder "bitbang_microwire.c" функции - Write_EEPROM_3wire, Read_EEPROM_3wine заменены на Write_EEPROM_3wire_param, Write_READ_3wire_param).
- Ver. 1.0.21 - Рабочая, нестабильная версия
- Ver. 1.0.22 - Рабочая, стабильная версия. Добавлены языки. Исправлена совместимость цветов шрифтов в светлой и темной темах интерфейса.
- Ver. 1.0.23 - Рабочая, стабильная версия. Удалены неиспользуемые C-функции и таблицы переменных в коде. Исправлены переводы. Исправлено: очистка поля JEDEC ID пи смене типа микросхемы. Добавлены микросхемы в базу данных. Исправление записей в базе данных.
- Ver. 1.0.24 - В интерфейс добавлена клавиша STOP. Улучшен рендеринг интерфейса. Исправления в переводах.
Комментарии:
A 24.09.2023 19:56
Спасибо!!!!!!! Давно ждал. А как насчет Xgecu TL866,T46,T56 под линукс? Сможешь сделать?
admin 24.09.2023 20:24
A, пока слАбо. Сейчас допиливаю этот программатор. Потом очень хочется взяться за EZPxxxx. В понедельник будет новая версия IMSProg (ее уже можно собрать через cmake). Хотя, насчет TL866 - интересная идея, придется его покупать.
A 25.09.2023 12:25
На видео заметил 2 недочета: после загрузки прошивки сразу доступны кнопки для отмены и возврата изменений (стрелки влево,вправо, undo,redo) хотя мы не делали изменений — нужно сделать их серыми (не активными). Второй недочет — после верификации нет информации, что верификация прошла успешно (можно добавить в статус панель информацию). Ну и у меня была мысль, может сделать окно ЛОГа ?
Admin 25.09.2023 13:23
A, видео уже устарело, перезалью. Более праводподобный вариант - здесь. Про стрелки undo/redo - посмотрю. Согласен. Про окно после верификации подумаю. Про окно лога - не согласен, и так все видно на экране. При верификации ошибки сразу показываются - адрес, значение байта буфера и микросхемы.
Admin 25.09.2023 15:14
A, после верификации сделал всплывающее, что все хорошо. Видео перезалил, специально на этапе записи нажал кнопку STOP, чтобы создать ошибку проверки.
A 25.09.2023 16:24
Возможно я не внимательный, но я просмотрел и старое видео и новое, и они совпадают на 99 (длительность разная) может вы не то видео выложили или я не прав. ну да ладно. По поводу уведомления после верификации я имел ввиду, добавить в стусбар(нижняя полоска слева снизу) там отобразить — Verify OK. И еще пожалуйста обновляйте не только deb файлы, но appimage. Если я не ошибаюсь, то на форуме просили вынести пакеты(deb,appimage) в Github Releases.
Admin 25.09.2023 16:26
A, нажмите F5 в браузере, видео должно обновиться. Там по гаснущим верхним иконкам сразу будет видно. Appimage перезалил. Все, как и просили, лежит в папке release - appimage (папка release/build ), deb (новый) и rpm (пока не совсем новый).
А 25.09.2023 16:47
Я понял в чем была проблема с видео. Я видео скачивал с гитхаба, первое видео было 9:32 мин, второе видео 4:52 мин и это тоже самое видео, что и первое только короче. А на этом сайте — видео другое(новое). Остальсоль сделать undo/redo не активными и активными после измения значений.
Admin 25.09.2023 16:48
А, тут пока засада - в готовом плагине QHexEdit нет сигналов о состоянии этих кнопок. Буду думать.
Добавить комментарий: