Is provisioning available on ICP programmers?
Yes, provisioning is available for several MCUs and ICs, such as the PSC3 (Infineon), SHA204, and ECC608 (Microchip). Please contact Softlog for details.
What is the decryption method for a SEN file?
SEN file decryption is performed exclusively by the firmware. The ICP software does not process the SEN file; it simply transfers it as a bulk data array.
How can I get PJ2 checksums without a connected programmer, for example directly from a PJ2 file?
Environment (PJ2) checksum and HEX file checksum inside *.PJ2 file can be got by direct read from the PJ2 file (as binary image) at fixed offsets as follows (2 bytes for each, LSB first): PJ2 file checksum: 0x02 Hex file checksum: 0xA5 The Environment (PJ2) checksum and the HEX file checksum stored inside a *.PJ2 […]
How can I turn on Gap Eliminator?
You can turn the Gap Eliminator on as follows: ICP for Windows (enabled by default): – Options – Preferences – Gap Eliminator for PM- Options – Preferences – Gap Eliminator for DM (for devices with DM) ICP DLL (disabled by default; not affected by settings in icp01.cfg): IcpSetGapElimination(PM_SPACE+DM_SPACE, 1) ICP Command Line (disabled by default, […]
PASS or FAIL 5VDC signal stays on until the next test. Is there a way to reset the device other than a 120VAC power cycle to where neither the PASS or FAIL light is on going into the next test?
You can use ICP DLL functions to turn off the LEDs after programming is completed: err=Icp2PinState(G3_GPF_OUT_PASS, PIN_LOW, &pin_state); //PASS/FAIL outputs err=Icp2PinState(G3_GPF_OUT_FAIL, PIN_LOW, &pin_state); //+err=Icp2PinState(LED_INT_PASS, PIN_LOW, &pin_state); //PASS/FAIL LEDs err=Icp2PinState(LED_INT_FAIL, PIN_LOW, &pin_state); //+err=Icp2PinState(G3_LED_PASS_EXT, PIN_LOW, &pin_state); //PASS/FAIL LEDs (ICP2GANG/COMBO) err=Icp2PinState(G3_LED_FAIL_EXT, PIN_LOW, &pin_state); //+
Why do I need to refresh the environment?
The IcpRefreshEnv() function may be invoked prior to programming to achieve maximum reliability. Note that the environment refresh or reload rate is approximately 1 MB per second.
What does the Advanced Command Line do?
The Advanced Command Line is designed primarily for secure programming tasks (e.g., SEN file generation). It also supports a range of advanced operations, such as data preservation, GANG channel control, and other complex functions.
Do I need the RS-232 communication?
You can use high-level RS-232 communication without using a PC to enable autonomous data exchange between embedded components; this approach removes the dependency on operating systems.
How can I overwrite the number of boxes or channels defined in the icp01.cfg file for the ICP2-GANG(G3) or ICP2-COMBO(G3) programmer?
The following DLL functions can be used to configure and query the number of boxes and channels for ICP2-GANG(G3) and ICP2-COMBO(G3) programmers: – IcpGangNumberBoxesSet – IcpGangNumberBoxesGet – IcpGangChannelSet – IcpGangChannelGet Advanced Command Line sections in INI file: [Gang] GangNumberBoxesSet GangChannelsBox1 GangChannelsBox2 … GangChannelsBox16
I’m using an ICP2(G3) to do a single word write/read to the EEPROM of an ATTiny817 at address 0x1413 and I’m having issues
Reprogramming 1 byte is not possible due to page of 32 bytes. The recommendation is to reprogram the entire EEPROM as shown below: Step 1: Read entire EEPROM (0x1400…0x147F): IcpDoAction(ACT_READ, DM_SPACE, 0, 0, 0, 0, “tmp.hex”); //it reads to “tmp.hex” and PC buffer Step 2: Modify address 0x1413 (offset 0x13): IcpBufWr(DM_SPACE, 0x13, ); //offset is […]
How to erase a controller (UUT)? Are there any hidden buttons in the software (ICP for Windows) or is not possible?During programming I am trying to clear the entire memory. Unfortunately, the memory seems to stay after programming the processor and running it
There is no “hidden” button, erase your controller as follows: Step 1: Run ICP for Windows Step 2: Keep “Bulk erase device before programming” Step 3: Don’t load a HEX file. If a HEX is already loaded then clear all buffers by “Edit – Clear All memory buffers” Step 4: Disable Gap Eliminators – it […]
We would like to request you to please send us the procedure to reset the Batch
Number of our “ICP2-Portable(G3)” programmer unit once it reaches the maximum limit: 32,767 You can “reset” the batch number by re-sending your Security ID File (*.SID) to the programmer with any batch value: Run ICP Secure Programming Utility (ADMIN) Product – Select Product Admin – Create Security ID File Select your current *.SID file Press […]
We have two ICP2(G3) programmers installed in one PC and plan to program concurrently (in parallel), we would like to know any method to avoid queueing when programming concurrently?
(A) DLL use Rename icpdll.dll to icpdll1.dll, icpdll2.dll (any different name) and run each thread with its “own” DLL copy. No conflict occurs since every programmer gets its own COM number (B) Command Line use If you use ICP Command Line then you can’t rename the DLL since the EXE uses the original name, but you can […]
I’m using ICP2(G3) to program ATmega640V. I have two HEX files — one for the program memory and another for the data memory. If I want to use the command-line interface, what command should I use to program both files?
You should use a HEX file in “Softlog format” which contains all memory areas to be programmed: (A) One-time operation Run ICP for Window Load PM Load DM Edit fuses if required Validate that everything works as expected Save to HEX: File – Save As (Export) (B) Multiple operations Use the saved HEX file with […]
How can I program different HEX files on different channels of the ICP2-GANG(G3) or ICP2-COMBO(G3)?
Follow these steps to transfer different environments (each containing its corresponding HEX file) to different channels: Create separate environment files (*.PJ2), for example: Env1.pj2, Env2.pj2, Env3.pj2, and Env4.pj2. Select Environment → Transfer Different Environments to ICP2-GANG / …
When do I need to select the ICP2-GANG (Single) or ICP2-COMBO(Single) programmer?
The single-channel mode enables each channel to run independently in full PC-driven mode, facilitating system debugging. This mode is also beneficial for executing short, PC-driven operations on individual channels.
How can I set the security bit on the ATSAMD20E15B? The main purpose is to lock the chip memory to prevent any further access to internal data through external programming and debugging interfaces. Once the security bit is set, how can I clear it?
The security bit on SAMC/D/L/R devices can be programmed and subsequently reprogrammed (i.e., “erased”) without limitations. Note: Unlike most other device families, the Security Bit is not included in the HEX file for SAMC/D/L/R devices To set the security bit in ICP for Windows, follow the sequence below: – Do not use Wizards — they […]
Do ICP family programmers operate in fully standalone mode (without PC)?
Yes, all ICP family programmers can operate in a fully standalone mode. The programming environment (algorithm, HEX file, settings, etc.) is transferred as a PJ2 file from the PC to the ICP’s non-volatile memory. Once transferred, standalone programming is performed using the GO, PASS, and FAIL pins. Additionally, the ICP2-COMBO(G3), ICP2-ISO(G3), and ICP2-LAN(G3) models include […]