Silicon Labs .hex To .svf Conversion Utility Info
Example using UrJTAG:
! Write 4 bytes at address 0x00004000 STATE DRPAUSE; SDR 39 TDI(0x00004000) TDI(0xDEADBEEF) TDI(0x01) ! addr, data, command RUNTEST 50000 TCK; STATE DRPAUSE; SDR 8 TDI(0x00) TDO(0x01) MASK(0x01); ! Check flash busy bit
Document Version: 2.0 Last Updated: February 2025 Compatible with: Silicon Labs Simplicity Studio v5+ devices Silicon Labs .HEX to .SVF Conversion Utility
STATE RESET; STOP; END; The generated .svf file can be played back using:
! Enter JTAG and select Flash Controller STATE RESET; STATE IDLE; STATE IRPAUSE; SIR 5 TDI(0x0C) TDO(0x00) MASK(0x1F); Example using UrJTAG:
| Tool/Software | Command | |---------------|---------| | | jtag> svf program.svf | | OpenOCD (with SVF plugin) | svf program.svf | | Xilinx iMPACT | svf -f program.svf | | FTDI FT2232H + libftdi | Custom SVF player |
1. Introduction 1.1 Purpose The Silicon Labs .HEX to .SVF Conversion Utility is a specialized software tool designed to convert Intel HEX formatted firmware files ( .hex ) into Serial Vector Format ( .svf ) files. The primary purpose of this conversion is to enable in-system programming (ISP) of Silicon Labs microcontrollers (e.g., EFM8, EFM32, EFR32, 8051-based devices) through standard JTAG or Boundary-Scan hardware that accepts SVF commands. 1.2 Background Silicon Labs devices are commonly programmed using proprietary tools like Flash Utility , Simplicity Studio , or third-party debuggers (J-Link, USB Debug Adapter). However, in high-volume manufacturing or automated test environments, engineers often rely on generic JTAG controllers (e.g., Xilinx Platform Cable, FTDI-based JTAG dongles, or FPGA-based testers) that support SVF—a text-based, human-readable format defined by ASSET InterTech (IEEE 1149.1 standard). SVF files contain low-level JTAG state transitions, TDI/TDO data, and timing information, making them ideal for boundary-scan test and programming. Check flash busy bit Document Version: 2
While not as fast as dedicated programmers, its compatibility with universal JTAG tools makes it indispensable for high-mix, low-volume production, or when integrating into existing boundary-scan test suites. Future versions will further optimize speed and file size, making SVF-based programming viable even for large-flash devices. Device Configuration Database Structure (JSON) Appendix B: Sample SVF Player in Python (using pyftdi ) Appendix C: Silicon Labs Flash Controller Command Set Reference
! Repeat for next address... ! (Compressed using loops)
