ITADN
bigbigmdm/IMSProg
bigbigmdm/IMSProg · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

IMSProg

IMSProg - I2C、MicroWire 和 SPI EEPROM/Flash 芯片 Programmer - 是一款用于读取和写入 EEPROM 芯片的程序,使用 CH341A programmer 设备和 CH347T programmer 设备。

CH341A/B v1.2CH341A v1.7CH347T v1.0CH347T v1.1
CH341A black CH341A greenCH341A greenCH347T v1.0CH347T v1.1

IMSProg 致敬 QHexEdit2 十六进制编辑器和 SNANDer 编程器。 芯片数据库的格式基于 EZP2019、EZP2020、 EZP2023、Minpro I、XP866+ 编程器中使用的格式。警告,格式并不相同!

IMSProg 是一组工具的集合:

  1. IMSProg - 芯片编程器(它是主要部分)。

  2. IMSProg_editor - 芯片数据库编辑器。

  3. IMSProg_database_update - 使用外部 web-server 更新芯片数据库。

CH341A EEPROM programmer

CH341A EEPROM programmer

编译项目

git clone https://github.com/bigbigmdm/IMSProg.git && cd IMSProg
sudo ./build_all.sh

系统软件要求

Linux

构建所需:

  • g++ 或 clang
  • CMake
  • libusb 1.0
  • Qt5 或 Qt6
  • Qt5LinguistTools 或 Qt6LinguistTools
  • pkgconf 或 pkg-config
  • udev

在 Debian 及其衍生发行版上:

  • 对于 Qt5:

sudo apt-get install cmake g++ libusb-1.0-0-dev qtbase5-dev qttools5-dev pkgconf

  • 适用于 Qt6:

sudo apt-get install cmake g++ libusb-1.0-0-dev pkgconf qt6-base-dev qt6-tools-dev linguist-qt6 qt6-l10n-tools qt6-base-dev-tools qt6-tools-dev-tools

在 Debian >=13 和 Ubuntu >=24.04 上:

sudo apt-get install systemd-dev

在较旧的版本上:

sudo apt-get install udev

:information_source: 不支持 Debian < 11 和 Ubuntu < 20.04,您可能 无法在这些系统上使其正常工作。

在 Fedora 及其衍生版上:

  • 对于 Qt5:
sudo dnf install cmake libusb libusb1 libusb1-devel qt5-qtbase-devel
sudo dnf install pkgconf-pkg-config qt5-linguist
  • 对于 Qt6:
sudo dnf install cmake gcc-c++ libusb1-devel pkgconf-pkg-config qt6-qtbase-devel
sudo dnf install qt6-qttools-devel qt6-linguist

在 OpenSUSE 及其衍生版本上:

  • 对于 Qt5:
sudo zypper install cmake gcc-c++ libqt5-qtbase-devel
sudo zypper install libqt5-linguist-devel libusb-1_0-devel
  • 对于 Qt6:
sudo zypper install cmake gcc-c++ libqt6-qtbase-devel
sudo zypper install libqt6-linguist-devel libusb-1_0-devel

macOS

如果使用 Homebrew,则 Xcode Command Line Tools 将默认安装,否则 请从终端手动安装:

xcode-select --install

安装所需的软件包

使用 brew:

brew install qt@6 libusb cmake pkgconf

如果未使用 build_all.sh 脚本,请确保 libusb 位于 您的 C_INCLUDE_PATH

export C_INCLUDE_PATH=/usr/local/opt/libusb/include

使用方法:

注意:在 macOS 上,请使用 CMD 代替 CTRL 作为键盘快捷键。

芯片编程器

启动

可以通过在终端中运行以下命令来启动

$ IMSProg

连接

  • 将芯片插入 CH341A 编程器的相应插槽。 24xxx25xxx 系列芯片必须直接插入,依据 CH341A 编程器 PCB 上的 标记。93xxx 系列芯片必须插入 93xxx adapter,并将适配器插入标记为 25xxx 的编程器插槽。DataFlash AT45DBxxx 系列芯片必须安装在 SOP-8 DIP-8 中,并将此适配器插入 45xxx 适配器。 45xxx 适配器必须安装在标记为 25xxx 的编程器插槽中。 SPI NAND Flash 芯片必须安装在 WSON-8 DIP-8 适配器中。此 适配器必须安装在标记为 25xxx 的编程器插槽中。

[!NOTE] 在当前版本中,MicroWire (93Cxx) 协议 不受 CH347 编程设备支持。

CH347T V1.1 - 速度低于 CH347T V1.0 的设备。

Adapter

  • 如果芯片的供电电压为 1.8 伏,则必须将其插入 1.8 volt adapter,并将适配器插入所需的编程器插槽。

Adapter

  • 将 CH341A 编程器插入计算机的 USB 接口并运行 IMSProg
  • 只要未进行基本操作(读取、检查和编程),您可以随时将编程器设备(CH341A) 插入或拔出 USB 端口。
  • 有关适配器的更多信息,请参见 此处

芯片类型选择

Type 弹出菜单中选择所使用的芯片类型:使用 25xxx 系列的 SPI NOR FLASH 芯片时选择 SPI_FLASH,使用 SPI NAND FLASH 芯片时选择 SPI_NAND,使用 24xxx 系列的 I2C EEPROM 时选择 24_EEPROM,使用 93xxx 系列的 MicroWire EEPROM 时选择 93_EEPROM,使用 AT45DBxxx 系列的 DataFlash 芯片时选择 45_EEPROM。 当使用 25xxx 系列的 SPI NOR FLASH 芯片(菜单项 type -> SPI_FLASH), 或 SPI NAND FLASH 芯片(菜单项 type -> SPI_NAND),或 AT45DBxx 系列 SPI FLASH(菜单项 type -> 45_EEPROM)时,Detect 按钮将 可用。当按下 Detect 按钮或 Detect<Ctrl+D> 时,将从芯片中读取 JEDEC 信息,并从芯片数据库中加载该芯片的所有参数。 任何参数(sizepage sizeblock sizeVCC voltageand 4-bit address length)都可以手动 更改。您可以手动输入 ManufactureName 弹出菜单数据 - 其他所有参数将从芯片数据库中自动加载。 当使用 24xxx93xxx95xxx25xxx SPI EEPROM(非 NOR FLASH) 系列芯片时,必须手动输入 ManufactureName 弹出菜单数据 - 其他所有参数将从芯片数据库中自动加载。

文件操作

  • Save<Ctrl+S> 按钮用于将 计算机缓冲区保存到文件。

  • Open<Ctrl+O> 按钮用于将文件保存到 计算机缓冲区。

  • SavePart<Ctrl+Shift-S> 按钮用于 将计算机缓冲区的一部分保存到文件(必须输入该部分的起始地址和长度)。此操作用于将二进制 数据映像拆分为多个部分。

  • LoadPart<Ctrl+Shift-S> 按钮用于 将小文件加载到缓冲区中的特定地址。缓冲区中的数据片段将被文件中的新数据替换。

  • Edit<Ctrl+Q> 按钮用于调用 芯片数据库编辑器。

  • 菜单项 File / Import from Intel HEX 用于将 Intel HEX 文件保存到计算机缓冲区。

  • 菜单项 File / Export to Intel HEX 用于将计算机缓冲区 保存为 Intel HEX 格式的文件。

基本编程器操作

  • 按下 ReadRead<Ctrl+R> 从 芯片读取数据到计算机缓冲区。

  • 按下 Write<Ctrl+W> 将数据从 计算机缓冲区写入芯片。

  • 按下 Erase<Ctrl+E> 将擦除芯片中的所有数据。

  • 通过选择 Main Menu -> Chip -> Check erase 或按下 <Ctrl+J>,您 可以检查芯片中的所有数据是否已正确删除。

  • 按下 Verify<Ctrl+T> 按钮将比较 芯片中和计算机缓冲区中的数据。

进度条显示读取、擦除和验证操作的进度。

  • Auto 按钮用于依次执行擦除、擦除检查、写入和校验操作。如果不需要其中某项操作,您可以取消勾选该操作对应的复选框。

  • Stop<Ctrl+I> 键用于强制中断芯片的读取/写入/擦除/校验操作。

  • i 键显示连接至 CH341A 设备的芯片图像形式。

  • Main menu -> Chip -> Chip info<Ctrl+P> 项显示 SPI NOR 闪存芯片的 Serial Flash Discoverable Parameter (SFDP) 寄存器和状态寄存器。

SFDP

如果 SPI NOR FLASH 芯片被正常检测到,但无法读取(显示消息 Error reading sector 0),则可以在 Chip info 窗口中将位 BP4BP3 更改为零,并按下 Write registers 按钮。 然后重复芯片读取操作。

SFDP

如果 SPI NOR FLASH 芯片读取不可靠(每次读取的校验和都不同),且芯片中可用 Status Register 2,您可以将位 DRV0DRV1 更改为零,然后按下 Write Registers 按钮。这将 增加芯片 DO 引脚输出级的驱动能力。然后 重复芯片读取操作。

对于仅有一个状态 寄存器的 25xxx95xxx45xxx 系列芯片,Chip info 格式如下:

SFDP

对于 SPI NAND FLASH 芯片,Chip info 形式如下:

SFDP

  • 使用 Main menu -> Chip -> Security Registers<Ctrl+U> 项 来处理 SPI NOR FlashSPI NAND FLASH 安全寄存器数据。此 格式允许从计算机读取、写入、擦除、保存和加载安全寄存器数据。

Security registers

表单底部的按钮(ReadEraseWriteOpenSave)执行的功能与主表单顶部的按钮类似。Security register number: 下拉菜单允许您为当前芯片选择 一个用于操作的有效寄存器。安全 寄存器可以被永久锁定以防止写入。如果您想了解此功能, 请参阅 Main Menu -> Chip -> Chip Information 项或 <Ctrl+P>,以及 Status register 1LB3LB2LB1 的数据 字段。 有关详细信息,请参阅您芯片的数据手册。 对于 NAND FLASH 芯片,您可以扫描坏块,使用 Main Menu -> Chip -> Bad block management<Ctrl+B> 键。

Bad block scan

对于这些芯片,你还可以在此菜单中更改擦除和写入参数。

Bad block scan

[!NOTE] 在此版本的 IMSProg 中,执行 NAND Flash 芯片的 VerifyCheck erase 函数时,不会跳过损坏的块。如果您的芯片 包含损坏的块,请勿使用这些函数。

Buffer (Hex editor) operations

十六进制芯片编辑器(屏幕右侧)用于显示和 修改缓冲区数据。

它包含以下控件:Undo 撤销, Redo 重做,以及 Search 查找/替换。[Ctrl+A] 键用于更新 CRC24 校验和。 [Ctrl+G] 键用于将光标移动到输入的地址。[Ctrl+L] 键用于用特殊的测试数组填充十六进制编辑器缓冲区。 [Ctrl+K] 键用于用用户代码填充十六进制编辑器缓冲区。 [Ctrl+M] 键用于比较上次和上上次芯片 读取或文件打开操作的结果。

compare

程序员类型

Main menu -> Programmer 项用于更改程序员类型。

快捷键列表:

快捷键功能
Ctrl+A校验和计算
Ctrl+BNAND 芯片坏块管理
Ctrl+C复制选定字节 (Hex editor)
Ctrl+D检测芯片
Ctrl+E擦除芯片
Ctrl+F查找/替换 (Hex editor)
Ctrl+G跳转地址 (Hex editor)
Chrl+H关于 IMSProg
Ctrl+I强制停止芯片操作
Ctrl+J检查擦除芯片
Ctrl+K填充用户代码 (Hex editor)
Ctrl+L填充测试阵列 (Hex editor)
Ctrl+M比较文件 (Hex editor)
Ctrl+N编辑芯片数据库
Ctrl+O打开文件
Ctrl+P芯片信息 (SFDP + 状态寄存器)
Ctrl+Q退出
Ctrl+R读取芯片
Ctrl+S保存文件
Ctrl+T校验芯片
Ctrl+U安全寄存器
Ctrl+V粘贴选定字节 (Hex editor)
Ctrl+W写入芯片
Ctrl+X退出
Ctrl+Y重做(十六进制编辑器)
Ctrl+Z撤销(十六进制编辑器)

芯片数据库编辑器

Chip editor

芯片基础编辑器 - IMSProg_editor 是一个独立程序,可以从 Development 菜单或 IMSProg 程序中通过点击 Edit 启动。

只有在加载了扩展名为 .Dat 的芯片基础文件后,编辑器中的所有操作才可用。

菜单 File

  • Open[Ctrl+O]open 允许您 加载数据文件。
  • Save[Ctrl+S]save 将芯片 参数表保存到数据库文件。
  • Exit[Ctrl+X]exit - 退出 编辑器。
  • Export to CSV format[Ctrl+X]export 允许以 CSV 格式卸载芯片数据,以便通过电子表格软件进行进一步处理 - LibreOffice Calc、OpenOffice Calc、Google 表格等。
  • Import from CSV file[Ctrl+Shift+X]import - 加载 CSV 格式的表格,并将 其中的数据添加到表格中现有的数据中。

菜单 Edit

  • Delete RowsDeldelete - 删除一个 或多个行。
  • Add RowInsadd - 在选定的行下方添加一行, 并将选定行的所有数据复制到新行。
  • Move Up 或 '[Ctrl+Up]` 或 up - 将选定的 行向上移动。
  • Move Down' or [Ctrl+Down]` 或 down - 将选定的 行向下移动。
  • Import selected rows to CSV formatimport
  • 将选定的行保存到 CSV 文件。

芯片数据库文件的最新版本可以从此页面下载,提供 .Dat 和 .csv 两种格式。

芯片更新器

运行 IMSProg_database_update 应用程序后,下载的数据库会被复制 到 ~/.local/share/imsprog 文件夹。然后脚本会显示更新前后数据库中的 芯片数量。

支持的芯片列表

I2C EEPROM

24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C128, 24C256, 24C512, 24LC515*, 24C1024, 24LC1025*, 24M02

[!NOTE] 对于 24LC515 和 24LC1025:引脚 3 必须与地引脚断开,并通过 4.7 kΩ 电阻连接到 VCC 引脚。

I2C FeRAM

  • RAMXEED

MB85RC04, MB85RC16, MBRC64, MB85RC128, MB85RC256, MB85RC512, MB85RC1MT

  • RAMTRON

FM24C04A, FM24C16A, FM24C32A, FM24C64A, FM24C128, FM24C256, FM24C512, FM24CL04A, FM24CL16A, FM24CL32A, FM24CL64A

MicroWire EEPROM(仅适用于 CH341A 编程器)

93C46, 93C56, 93C66, 93C76, 93C86

Serial SPI Bus EEPROM

  • ST

M95010, M95020, M95040, M95080, M95160, M95320, M95640, M95128, M95256, M95512, M95M01, M95M02

  • ATMEL

AT25010, AT25020, AT25040, AT25080, AT25160, AT25320, AT25640, AT25128, AT25256, AT25F512, AT25F1024, AT25F2048, AT25F4096

  • MICROCHIP

25AA010, 25AA020, 25AA040, 25AA080, 25AA160, 25AA320, 25AA640, 25AA128, 25AA256, 25AAF512, 25AAF1024, 25LC010, 25LC020, 25LC040, 25LC080, 25LC160, 25LC320, 25LC640, 25LC128, 25LC256, 25LC512, 25LC1024

  • ONSEMI

CAT25C01, CAT25C02, CAT25C04, CAT25C08, CAT25C16, CAT25C32, CAT25C64, CAT25C128, CAT25C256, CAT25C512

串行 SPI 总线 FeRAM

  • RAMXEED

MB85RS16N, MB85RD16LX, MB85RS64VY, MB85RS64V, MB85RS128TY, MB85RS128B, MB85RS256TY, MB85RS256LYA, MB85RS256B, MB85RS512TY, MB85RS512LY, MS85RS1MLY, MB85RS1MT, MB85RS2MTY, MB85RS2MLY, MB85RS4MTY, MB85RS4MLY

DataFlash 45xx

  • ATMEL

AT45DB011, AT45DB021, AT45DB041, AT45DB081, AT45DB161, AT45DB321

  • ADESTO

AT45DB011, AT45DB021, AT45DB041, AT45DB081, AT45DB161, AT45DB321, AT45DB641

SPI NOR Flash

  • SPANSION

FL016AIF, S25FL016P, S25FL032P, FL064AIF, S25FL064P, S25FL256S, S25FL128P, S25FL129P, S25FL204K, S25FL208K, S25FL116K, S25FL132K, S25FL164K

  • XTX

XT25F02E, XT25F04D, XT25F08B, XT25F16B, XT25F32F, XT25F64F, XT25F128F, XT25F256B, XT25W02E, XT25W04D, XT25Q08D(1.8V), XT25Q16D(1.8V), XT25Q64D(1.8V), XT25F128D(1.8V)

  • ACE

ACE25AC512G, ACE25AC100G, ACE25AC200G, ACE25AC400G

  • EON

EN25B10T, EN25B20T, EN25B40T, EN25B80T, EN25B16T, EN25B32T, EN25B64T, EN25P64, EN25Q40A, EN25Q80B, EN25Q16, EN25Q32C, EN25Q64, EN25Q128, EN25F10A, EN25F20A, EN25F40, EN25F80, EN25F16, EN25F32, EN25S10A(1.8V), EN25S20A(1.8V), EN25S40A(1.8V), EN25S80B(1.8V), EN25S16B(1.8V), EN25S64A(1.8V), EN25QE16A, EN25QE32A, EN25E10A, EN25E40A, EN25SE16A(1.8V), EN25SE32A(1.8V), EN25T80, EN25T16, EN25QA32B, EN25QA64A, EN25QA128A, EN25QW16A, EN25QW32A, EN25QH16, EN25QH32B, EN25QH64A, EN25QH128A, EN25Q256, EN25QX64A, EN25QX128A, EN25QX256A, EN25QY256A, EN25SX64A(1.8V), EN25SX128A(1.8V)

  • ATMEL

AT25LS321(1.8V), AT25LS128A(1.8V), AT25LS641(1.8V), AT26DF161, AT25DF321, AT25DF641

  • MICRON

M25P10, M25P20, M25P40, M25P80, M25P016, M25P32, M25P64, M25P128, N25Q032A, N25Q064A, MT25QL64AB, N25Q128A, MT25QL128AB, N25Q256A, MT25QL256AB, MT25QL512AB, N25Q032A(1.8V), N25Q064A(1.8V), MT25QU64AB(1.8V), N25Q128A(1.8V), MT25QU128AB(1.8V), MT25QU256AB(1.8V), MT25QU512AB(1.8V)

  • XMC

XM25QH10B, XM25QH20B, XM25QH40B, XM25QH80B, XM25QH16C, XM25QH32B, XM25QH64C, XM25QH128C, XM25QH256C, XM25QH512C, XM25LU64C(1.8V), XM25LU128C(1.8V), XM25QU256C(1.8V), XM25QU512C(1.8V), XM25QW16C, XM25QW32C, XM25QW64C, XM25QW128C, XM25QW256C, XM25QW512C, XM25QU41B(1.8V), XM25QU80B(1.8V), XM25QU16C(1.8V), XM25LU32C(1.8V), XM25QH32A, XM25QH64A, XM25QH128A

  • AMIC

AT25L05P, A25L10PU, A25L20PU, A25L40PU, A25L80PU, A25L16PU, A25L10PT, A25L20PT, A25L40PT, A25L80PT, A25L16PT, A25L010, A25L020, A25L040, A25L040, A25L080, A25L016, A25L032, A25LQ080, A25LQ16, A25LQ32, A25LQ64

  • EXCELSEMI

ES25P10, ES25P20, ES25P40, ES25P80, ES25P16, ES25P32, ES25M40A, ES25M80A, ES25M16A

  • DOUQI

DQ25Q64AS

  • Zbit

ZB25LD10A(1.8V), ZB25LD20A(1.8V), ZB25LD40B(1.8V), ZB25LD80(1.8V), ZB25D10A, ZB25D20A, ZB25D40B, ZB25D80B, ZB25VQ16, ZB25VQ32, ZB25VQ64, ZB25VQ128, ZB25LQ16(1.8V), ZB25LQ32(1.8V), ZB25LQ64(1.8V), ZB25LQ128(1.8V), ZB25VQ20A, ZB25VQ40A, ZB25VQ80A, ZB25VQ16A, ZD25D20, ZD25D40, ZD25D80

  • ONSemi

LE25U20AMB, LE25U40CMC

  • Boya

BY25Q05AW, BY25Q10AW, BY25Q20BL(1.8V), BY25Q40BL, BY25Q80AW(1.8V), BY25Q16BL(1.8V), BY25D05AS, BY25D10AS, BY25D20AS, BY25D40AS, BY25Q80BS, BY25Q16BS, BY25Q32BS, BY25Q64AS, BY25Q128AS, BY25Q256ES, BY25Q10AL(1.8V), BY25Q20AL(1.8V), BY25Q40AL(1.8V), BY25Q32AL(1.8V), BY25Q64AL(1.8V), BY25Q128EL(1.8V)

  • PFLASH

Pm25LQ512B, Pm25LQ010B, Pm25LD020, Pm25LQ020B, PM25LQ016, PM25LQ032, PM25LQ064, PM25LQ128, Pm25LV010, Pm25LV020, Pm25LQ040B, Pm25LV040

  • Puya

P25Q06H, P25Q40H, PY25Q128HA, PY25Q256HB, PY25Q512HB, P25Q11H, P25Q21H, P25Q10H, P25Q20H, P25Q80H, P25Q16H, P25Q32H, P25Q64H, P25Q128H

  • ESMT

F25L004A, F25L008A, F25L016, F25L032, F25L064, F25L16QA, F25L32QA, F25L64QA

  • ISSI

IS25WQ020(1.8V), IS25WQ040(1.8V), IS25WQ080(1.8V), IS25LQ010, IS25LQ020, IS25LP040E, IS25LP080D, IS25LP016D, IS25LP032D, IS25LP064D, IS25LP128F, IS25LP256D, IS25LP512D, IS25WP512E(1.8V), IS25WP010E(1.8V), IS25WP020E(1.8V), IS25WP040D(1.8V), IS25WP080D(1.8V), IS25WP016D(1.8V), IS25WP032D(1.8V), IS25WP064D(1.8V), IS25WP128F(1.8V), IS25WP256D(1.8V), IS25WP512D(1.8V)

  • 复旦

FM25W02, FM25W04, FM25W16, FM25W32, FM25W64, FM25W128, FM25F005, FM25F01B, FM25F02A, FM25F04A, FM25Q04, FM25Q08, FM25Q16, FS25Q32, FS25Q64, FS25Q128

  • Zetta

ZD25Q64B, ZD25LQ128(1.8V), ZD25LQ64(1.8V), ZD25WD20B, ZD25WD40B, ZD25Q80C, ZD25Q16B, ZD25Q32C

  • PCT

PCT25VF016B, PCT25VF032B, PCT25VF064C, PCT25VF020B, PCT25VF040B, PCT25VF080B, PCT26VF016, PCT26VF032, PCT25VF010A

  • MXIC

MX25L512E, MX25L1006E, MX25L2005, MX25L4005A, MX25L8005M, MX25L1605D, MX25L3205D, MX25L6405D, MX25L12805D, MX25L25635E, MX25L51245G, MX25L5121E, MX25L1021E, MX25L1633E, MX25L1635E, MX25U5121E(1.8V), MX25U1001E(1.8V), MX25U2035F(1.8V), MX25U4035F(1.8V), MX25U80356(1.8V), MX25U1632F(1.8V), MX25U3232F(1.8V), MX25U6432F(1.8V), MX25U12832F(1.8V), MX25U25643G(1.8V), MX25U51245G(1.8V), MX25L1655D, MX25L6455E, MX25L12855E, MX25L25655E, MX25R1035F, MX25R2035F, MX25R4035F, MX25R8035F, MX25R1635F, MX25R3235F, MX25R6435F, MX25L3225D, MX25L3255D

  • Giantec

GT25D05C, GT25D10C, GT25D20C, GT25Q40C, GT25D05E, GT25D10E, GT25D20E, GT25Q80A, GT25Q16A, GT25Q32A-H, GT25Q64A-S

  • GigaDevice

GD25F40, GD25F80, GD25D40, GD25D80, GD25D05C, GD25D10C, GD25Q20C, GD25Q40C, GD25Q80C, GD25Q16C, GD25Q32, GD25Q64CSIG, GD25Q128CSIG, GD25Q256CSIG, GD25VQ21B, GD25VQ40C, GD25VQ80C, GD25VQ16C, GD25LD05C(1.8V), GD25LD10C(1.8V), GD25LD20C(1.8V), GD25LD40C(1.8V), GD25LQ80C, GD25LQ16C, GD25LQ32E, GD25LQ64E(1.8V), GD25LQ128(1.8V), GD25LQ256D(1.8V), GD25WD05C, GD25WD10C, GD25WD20E, GD25WD40E, GD25WD80C, GD25WQ20E, GD25WQ40E, GD25WQ80E, GD25WQ16E, GD25WQ32E, GD25WQ64E, GD25WQ128E, GD25WB256E, GD25LB512ME(1.8V), YC25Q128

  • Nantronix

N25S80, N25S32

  • PARAGON

PN25F08, PN25F16, PN25F32, PN25F64, PN25F128

  • DOSILICON

DS25Q64A, DS25Q4AA, DS25M4CB, DS25M64E, DS25M4AE, DS25M4AB, DS25M4BA

  • WINBOND

W25P80, W25P16, W25P32, W25P64, W25X05, W25X10, W25X20, W25X40, W25X80, W25X16, W25X32VS, W25X64, W25Q05CL, W25Q10Cl, W25Q20CL, W25Q40BV, W25Q80BL, W25Q16DV, W25Q32BV, W25Q64BV, W25Q128BV, W25Q256FV, W25Q20BW(1.8V), W25Q80, W25Q10EW(1.8V), W25Q20EW(1.8V), W25Q40EW(1.8V), W25Q80EW(1.8V), W25Q16JW(1.8V), W25Q32FW(1.8V), W25Q64DW(1.8V), W25Q128FW(1.8V), W25Q256JW(1.8V), W25M512JW(1.8V), W25Q512JV, W25M512JV, W25Q32JW(1.8V)

  • Fidelix

FM25Q04A, FM25Q08A, FM25Q16A, FM25Q32A, FM25Q64A, FM25Q128A, FM25M04A(1.8V), FM25M08A(1.8V), FM25M16A(1.8V), FM25M32A(1.8V), FM25M64A(1.8V), FM25M4AA(1.8V)

  • UCUNDATA (UCUN Technology)

UC25HQ05, UC25HQ10, UC25HQ20, UC25HQ40, UC25HQ80, UC25HQ16, UC25HQ32, UC25HQ64, UC25IQ128

SPI NAND Flash

  • ESMT

F50L2G41XA, F50L1G41LB(2M), F50L512M41A, F50L4G41XB

  • MICRON

MT29F4G01ABBFD12, MT29F4G01ABAFD12, MX35LF1G24AD-Z41, MX35LF2G24AD-Z41

  • MXIC

MX35LF4G24AD-Z41, MX35LF2G24AD-Z418, MX35LF4G24AD-Z418, MX35LF1GE4AB, MX35UF1G24AD-Z4I, MX35UF2G24AD-Z4I, MX35UF4G24AD-Z4I, MX35UF2G24AD-Z4I8, MX35UF4G24AD-Z4I8, MX35UF1G14AC, MX35UF2G14AC, MX35UF1GE4AC, MX35UF2GE4AC, MX35UF1GE4AD, MX35UF2GE4AD, MX35UF4GE4AD, MX35LF2GE4AD, MX35LF4GE4AD

  • WINBOND

W25N512GW, W25N512GV, W25N01KW, W25N01KV, W25N01JW, W25N01GW, W25N01GV, W25N02KW, W25N02KV, W25N02JW, W25N04LW, W25N04KW, W25N04KV

  • XTX

XT26G01C, XT26G01A, XT26G01D, XT26G11C, XT26G11D, XT26Q01D, XT26G02D, XT26G02C, XT26G12D-B, XT26Q02D, XT26Q04D XTX XT26Q14D

  • Dosilicon

DS35Q12B, DS35M12B, DS35Q12C, DS35M12C, DS35Q1GA, DS35M1GA, DS35Q1GB, DS35M1GB, DS35Q2GA, DS35M2GA, DS35Q2GB, DS35M2GB, DS35Q2GBS, DS35M2GBS, DS35Q4GM, DS35Q4GM, DS35Q4GB, DS35M4GB

  • ZETTA

ZD35Q1GC-IB

  • FORESEE

F35SQA001G, F35SQB004G, F35SQA512M, F35UQA002G, F35SQA002G, GD5F1GQ5UExxG

  • GigaDevice

GD5F1GQ5RExxG, GD5F1GM7UExxG, GD5F1GM7RExxG, GD5F1GM9UExxG, GD5F1GM9RExxG, GD5F1GQ4UFxxG, GD5F1GQ4RFxxG, GD5F1GQ4UAxxG, GD5F2GQ5UExxG, GD5F2GQ5RExxG, GD5F2GM7UExxG, GD5F2GM7RExxG, GD5F4GQ6UExxG, GD5F4GQ6RExxG, GD5F4GM8UExxG, GD5F4GM8RExxG, GD5F1GQ4UExxG, GD5F1GQ4RExxG, GD5F1GQ4UFxxS, GD5F1GQ4RFxxS, GD5F2GQ4UExxG, GD5F2GQ4RExxG

芯片数据库的最新版本可以在 此处]找到。 您可以将其下载并复制到 ~/.local/share/imsprog 文件夹:

cp IMSProg.Dat ~/.local/share/imsprog

软件包

  • 正在推进将 IMSProg 添加到官方 Debian(以及 衍生版本仓库)的工作

    对于某些 Ubuntu 版本,你可以通过将 ppa:bigmdm/imsprog 添加到系统的软件源来使用此 PPA。

sudo add-apt-repository ppa:bigmdm/imsprog
sudo apt update
sudo apt install imsprog

也可以使用 debian/latest 分支手动构建 deb 软件包。

  • 对于某些版本的 Fedora,你可以使用官方仓库。
sudo dnf install imsprog
Packaging status

项目结构

IMSProg _files_							          _folder_
================================================================================
IMSProg                                                  /usr/bin
IMSProg_editor                                           /usr/bin
IMSProg_database_update                                  /usr/bin

IMSProg_programmer/database/IMSProg.Dat                  /usr/share/imsprog
                                                         ~/.local/share/imsprog

IMSProg_programmer/other/71-CH341.rules                  /lib/udev/rules.d

IMSProg_programmer/other/index.html                      /usr/share//doc/imsprog/html

IMSProg_programmer/language/chipProgrammer_ru_RU.qm      /usr/share/imsprog
IMSProg_programmer/language/chipProgrammer_es_ES.qm      /usr/share/imsprog
IMSProg_programmer/language/chipProgrammer_de_DE.qm      /usr/share/imsprog
IMSProg_programmer/language/chipProgrammer_zH_CN.qm      /usr/share/imsprog
IMSProg_programmer/language/chipProgrammer_uk_UA.qm      /usr/share/imsprog
IMSProg_programmer/language/chipProgrammer_hu_HU.qm      /usr/share/imsprog
IMSProg_programmer/language/chipProgrammer_pt_BR.qm      /usr/share/imsprog

IMSProg_editor/language/chipEditor_ru_RU.qm              /usr/share/imsprog
IMSProg_editor/language/chipEditor_de_DE.qm              /usr/share/imsprog
IMSProg_editor/language/chipEditor_es_ES.qm              /usr/share/imsprog
IMSProg_editor/language/chipEditor_zh_CN.qm              /usr/share/imsprog
IMSProg_editor/language/chipEditor_uk_UA.qm              /usr/share/imsprog
IMSProg_editor/language/chipEditor_hu_HU.qm              /usr/share/imsprog
IMSProg_editor/language/chipEditor_pt_BR.qm              /usr/share/imsprog

IMSProg_database_update/language/chipUpdater_ru_RU.qm    /usr/share/imsprog
IMSProg_database_update/language/chipUpdater_de_DE.qm    /usr/share/imsprog
IMSProg_database_update/language/chipUpdater_es_ES.qm    /usr/share/imsprog
IMSProg_database_update/language/chipUpdater_zh_CN.qm    /usr/share/imsprog
IMSProg_database_update/language/chipUpdater_uk_UA.qm    /usr/share/imsprog
IMSProg_database_update/language/chipUpdater_hu_HU.qm    /usr/share/imsprog
IMSProg_database_update/language/chipUpdater_pt_BR.qm    /usr/share/imsprog

IMSProg_programmer/other/IMSProg.desktop                 /usr/share/applications
IMSProg_programmer/other/IMSProg_editor.desktop          /usr/share/applications
IMSProg_database_update/other/IMSProg_database_update.desktop /usr/share/applications

IMSProg_editor/other/IMSProg_editor.1.gz                   /usr/share/man/man1
IMSProg_programmer/other/IMSProg.1.gz                      /usr/share/man/man1
IMSProg_database_update/other/IMSProg_database_update.1.gz /usr/share/man/man1

IMSProg_programmer/img/IMSProg64.png                     /usr/share/pixmaps
IMSProg_database_update/img/IMSProg_database_update.png  /usr/share/pixmaps
img/chipEdit64.png                        /usr/share/pixmaps

IMSProg_programmer/other/other/io.github.bigbigmdm.imsprog.metainfo.xml /usr/share/metainfo
IMSProg_editor/other/other/io.github.bigbigmdm.imsprog_editor.metainfo.xml /usr/share/metainfo
IMSProg_database_update/other/io.github.bigbigmdm.imsprog_database_update.metainfo.xml /usr/share/metainfo

芯片数据库格式

IMSProg.Dat 文件结构:

芯片字符串长度:0x44 (68) 字节;

offset	 Size   Value
00 -     2F     ASCII Chip type, Name and Manufacture, 0x00 filling
30        1     NOR FLASH Chip Size code   / 0x00 - other chips
31        1     NOR FLASH Chip ID Code     / 0x00 - other chips
32        1     NOR FLASH Manufacture code / 0x00 - other chips
33              0x00
34        4     Chip Size
35 	
36 	  
37
38        2     Sector size
39
3A        1     Binary chip type:
                - 0x00 - SPI NOR FLASH
                - 0x01 - 24xxx I2C
                - 0x02 - 93xxx MicroWire
                - 0x03 - 25xxx SPI EEPROM
                - 0x04 - 95xxx ST SPI EEPROM
                - 0x05 - AT45DBxxx SPI EEPROM
3B        1     Algorithm code number:
                - SPI NOR Flash always 0x00
                - I2C (24xxx) 0x?1 - address size 1 byte
                - I2C (24xxx) 0x?2 - address size 2 bytes
                - I2C (24xxx) 0x?A - address size 2 bytes, for 24LC1025
                - I2C (24xxx) 0x?E - address size 2 bytes, for 24LC515
                - I2C (24xxx) 0x1? - address mask 1
                - I2C (24xxx) 0x3? - address mask 3
                - I2C (24xxx) 0x7? - address mask 7
                - MicroWire (93xxx) - 0x1? - organisation 16 bit
                - MicroWire (93xxx) - 0x0? - organisation 8 bit
                - MicroWire (93xxx) - 0x?7 -  7 bit address number
                - MicroWire (93xxx) - 0x?9 -  9 bit address number
                - MicroWire (93xxx) - 0x?A - 10 bit address number
                - MicroWire (93xxx) - 0x?B - 11 bit address number
                - 95xxx ST SPI EEPROM - 0x01 - 8 bit address
                - 95xxx ST SPI EEPROM - 0x02 - 16 bit address
                - 25xxx SPI EEPROM  - 0x?0 - 8 bit address
                - 25xxx SPI EEPROM  - 0x?1 - 16 bit address
                - 25xxx SPI EEPROM  - 0x?2 - 24 bit address
                - 25xxx SPI EEPROM  - 0x0? - fill erasing
                - 25xxx SPI EEPROM  - 0x1? - The third bit of the command is used for the high bit of the address
                - 25xxx SPI EEPROM  - 0x2? - erasing with use CHIP  FULL ERASE command
                - 45xxx SPI EEPROM  - 0x0? - ATMEL command pattern
                - 45xxx SPI EEPROM  - 0x1? - ADESTO command pattern
                - 45xxx SPI EEPROM  - 0x?9 -  9 bit sector address number
                - 45xxx SPI EEPROM  - 0x?A - 10 bit sector address number
                - 45xxx SPI EEPROM  - 0x?B - 11 bit sector address number
                - 45xxx SPI EEPROM  - 0x?C - 12 bit sector address number
                - 45xxx SPI EEPROM  - 0x?D - 13 bit sector address number
                - 45xxx SPI EEPROM  - 0x?F - 15 bit sector address number
                - SPI NOR Flash - algorithm number for working with  security registers
                - SPI NAND Flash - algorithm number for reading status and security registers
3C        2     Timing parameter:
3D              3000/1000/500/300/200/100 - NOR FLASH, 4000/2000 - 24xxx, 100 - 93xxx
3E        2     SPI NOR Flash 4bit address type:
                - 0x?0 - Not used (3 bit address data)
                - 0x?1 - Used (4 bit address data)
                - 0x01 - Default 4 bit command using
                - 0x11 - Winbond algorithm
                - 0x21 - Spansion algorithm
3F        1     0x00
40        1     SPI NOR FLASH block size in KB (64K = 0x40)
41        1     0x00
42        1     - EEPROM pages 0x01 - 0x04
                - For SPI NAND Flash - ECC Size / 64
43        1     VCC 00=>3.3V 01=>1.8V 02=>5.0V 03=>2.5V
The end record is 0x44 (68) zero bytes.

许可

版权所有 (C) 2023 - 2026 Mikhail Medvedev。 本项目使用 GPL-3+ 许可证, 部分代码取自项目 SNANDerGPL-2+,以及来自 QHexEdit2 的部分为 LGPL-2.1 以及 CH347 部分为 BSD-1-Clause

翻译

任何人都可以通过提交拉取请求(pull request)来添加或改进翻译。 翻译文件位于:IMSProg_programmer/language/IMSProg_editor/language/ 以及 IMSProg_database_update/language/

您还可以为桌面文件添加翻译(IMSProg.desktopIMSProg_database_update.desktopIMSProg_editor.desktop),

以及 appstream 元数据文件(io.github.bigbigmdm.imsprog_editor.metainfo.xml, io.github.bigbigmdm.imsprog_database_update.metainfo.xml, io.github.bigbigmdm.imsprog.metainfo.xml)。