Working with TMPM370 / TMPM470
RAM loader
A custom RAM Loader is used for working with TMPM370 and TMPM470. What is it?
Bootloader, ram loader, flash routine — basic concepts in device programming.
RAM (Random Access Memory) — volatile memory with random access.
Loader, Bootloader — a special program that can overwrite Flash memory. Usually, the controller starts by running the Bootloader (Boot — loading), then switches to user code. To avoid confusion, the loader loaded after startup is called simply Loader.
Flash routine, flash algorithm — a subroutine within the loader responsible for direct Flash memory programming. It is a lower-level component than the loader and is often encapsulated, meaning we only have access to the loader itself.
Why load the Loader into RAM?
RAM allows writing arbitrary code (not limited by size or sectors) and keeps it until power-off or reset. This code can also be executed.
So we write code, load it into MCU RAM, and then it executes it?
Yes, exactly.
Why write your own Loader?
A custom loader provides full control and enables implementing any functionality in a convenient way. Often the factory bootloader (which is already a Bootloader) is functionally limited, has inconvenient command sets, and some commands may be missing.
What does a custom RAM Loader provide in the context of TMPM?
For example, EEPROM: the boards for which the TMPM module was created have an onboard EEPROM next to the MCU.
| MCU | EEPROM 1 (I2C) | EEPROM 2 (SPI) |
|---|---|---|
| TMPM370 | 24C04 | 93C66 |
| TMPM470 | — | 93C86 |
- TMPM370 boards typically have a 24C04 (I2C) and sometimes a 93C66 (SPI).
- TMPM470 boards (added in MultiProg 2.3.0) only carry a 93C86 SPI EEPROM. No I2C EEPROM is supported on TMPM470.
This means there is no need to disassemble the module or change connections — working with each target (the MCU and its EEPROMs) goes through a single connector. In the Target Selector, choose:
- TMPM370 / TMPM370_24C04 / TMPM370_93C66, or
- TMPM470 / TMPM470_93C86.
How the RAM Loader works (24C04 example)
- The TMPM is under our control — our RAM Loader runs there.
- The TMPM receives a command from TGSN to read, for example, 24C04.
- It accesses the I2C bus and reads or writes 24C04.
- If 24C04 is absent on the I2C bus, an error will occur.
With SPI (93C66 / 93C86) it is more complicated.
A factory 93C66 / 93C86 has no feedback on Connect or Read — only on Write / Erase.
93C66 / 93C86
- The TMPM receives a command from TGSN to read the SPI EEPROM.
- It accesses the SPI bus; technically there is no way to detect whether the EEPROM is present or not.
- It reads the SPI bus; if the EEPROM is not on the board, anything can be on the bus, but usually zeros are received.
- The presence of the EEPROM can only be verified by Write / Erase commands.
Is it mandatory to erase EEPROM before writing?
Yes — otherwise a Target BlankCheck error will occur.
This is our concept: before writing, the user must erase memory
to eliminate the risk of accidental overwrite.
Connection

The 5-wire AbstractTable is identical for both families:
BOOT → GND, TxD → TOOL0, RxD → RX, +5V → 5V, GND → GND.
RESET is not used.