Copyright © Siemens AG 2016. All rights reserved
126
ERTEC 200P-2 Manual
Technical data subject to change
Version 1.0
Workaround:
1. Disable the JOB (JOB_EN = 0).
2. Wait until JOB stops copying. Check whether JOB has been completed.
3. If the JOB has not been completed, the first transfer of the new partial transfer
list is copied from the transfer list to the interrupt memory (JOB stack) of the
JOB.
4. The JOB is enabled (JOB_EN = 1), but not started.
Errors in JOB Stop with GDMA_MAIN_CTRL.DMA_EN = 0:
Conditions:
- 1 job (GDMA_JOB0_CTRL)
- 1 transfer record run by that job
- SW triggering with GDMA_JOB0_CTRL.SW_JOB_START = 1
If you stop processing globally with GDMA_MAIN_CTRL.DMA_EN = 0 (GDMA_JOB0
_CTRL.JOB_EN = 1), GDMA_JOB_COUNT continues to be incremented cyclically
and
GDMA_ACTUAL_STATUS = 0x00000000 (no job running, actual job number 0) set.
This behavior is not correct as DMA_EN is supposed to pause job processing (and
therefore also the GDMA _JOB_COUNT).
(Data sheet: When bit DMA_EN is reset while a DMA job is running, this job is inter-
rupted and no new job begins to run. When subsequently bit DMA_EN is set again,
the interrupted job will continue. DMA_EN has the same function as JOB_EN, but for
all jobs).
Workaround:
The difference in GDMA_ACTUAL_STATUS poses no problem as the content of
this register is only valid when bit 5 = 1. When bit 5 = 0, the content of the regis-
ter must not be evaluated!
It is not OK that the job counter keeps counting when
GDMA_MAIN_CTRL.DMA_EN = 0. However, this is only a minor flaw as the job
counter is designed to measure the runtime of a job and the job cannot be disa-
bled because that distorts the measurement. This is therefore not an appropriate
use case.
2.3.4.4 Address Mapping
Address range allocation for the GDMA registers and the transfer list RAM:
Start_Address End_Address
Modul/Memory_Name Interface
0h
12AFh
gdma
B0h
10AFh
LIST_RAM
10B0h
12AFh
JOB_STACK_RAM