Memory Map – Firmware version FAxx

Technosoft drives/motors works with 2 separate address spaces: one for TML programs and the other for data. Each space accommodates a total of 64K 16-bit word.

The first 16K of the TML program space (0 to 3FFFh) is reserved and can’t be used. The next 16K, from 4000h to 7FFFh are mapped to a serial SPI-connected EEPROM with the maximum size 32K bytes (seen as 16K 16-bit words). The exact amount of EEPROM memory is specific for each drive/motor. This space is used to store TML programs, cam tables, the setup data and the product ID.

The recommended way to use the EEPROM memory space is:

TML programs from the beginning of the EEPROM, starting with first address 4000h
Cam tables, after the TML program, until the beginning of the setup data
Setup data and product ID. Other data until the end of the EEPROM

Remarks:

The space needed for the setup data and the product ID is automatically computed by EasySetUp
The overall dimension of a TML program includes apart from the main section, the TML interrupt vectors table, the interrupt service routines (ISRs) for the TML interrupts and the TML functions

For most of the Technosoft drives/motors, the next 2K of the TML program space from 8000h to 87FFh represent the drive/motor internal RAM memory. From it, the first 270h, from 8000h to 826Fh are reserved for the internal use. The rest from 8270h to 87FFh may be used to temporary store TML programs. The remaining TML program space from 8800h to FFFFh is invalid. Some Technosoft drives have an extended internal RAM going from 8000h to FFFFh. From it, the first 270h are reserved for the internal use. In this case, the TML programs space goes from 8270h to FFFFh.

The data memory space is used to store the TML data (registers, parameters, variables), the cam tables during runtime (after being copied from the EEPROM memory) and for data acquisitions. The TML data are stored in a reserved area, while the others are using the same internal RAM memory used for TML programs. Though physically the RAM memory is the same for both, the TML programs and data, the first 2K are mapped at different address ranges: The TML program space from 8000h to 87FFh is seen in the data space from 800h to 9FFh. As the first 270h from it are reserved, the effective data memory space goes from A70h to FFFh. Apart from this space, the drives with extended internal RAM have another 32k of data memory, from 0x8000 to 0xFFFF.

Remark: As the same RAM memory is used both for TML programs and for data, it is the user responsibility to decide how to split these spaces in order to avoid their overlap.

The recommended way to use the RAM memory (both for TML programs and data) is:

TML programs from the beginning of the SRAM memory
Data acquisitions, after the TML programs
Cam tables, after data acquisitions, until the end of the RAM

In the case of the drives/motors with normal RAM memory, you should start by checking if or how much space you need to reserve for cam tables, and use the rest of the SRAM for data acquisitions. As concerns the TML programs, it is highly preferable to store them in the EEPROM.

Remark: In configurations with feedback devices like the SSI or EnDat encoders, the TML programs must execute from SRAM memory. This is because these feedback devices are using the same SPI interface to read the feedback position like the EEPROM, which is disabled after the execution of ENDINIT command. Therefore, at power-on, the TML program needs to be copied from the EEPROM into the RAM where it is executed

MemoryMap

 

Basic Concepts next topics:

AUTORUN mode

 

See also:

Basic Concepts

TML Description