SLAZ616AA August   2014  – August 2021 MSP430FR68891

 

  1.   1
  2.   2
  3.   3
  4.   4
  5.   5
    1.     6
    2.     7
      1.      8
      2.      9
    3.     10
  6.   11
    1.     12
    2.     13
    3.     14
    4.     15
    5.     16
    6.     17
    7.     18
    8.     19
    9.     20
    10.     21
    11.     22
    12.     23
    13.     24
    14.     25
    15.     26
    16.     27
    17.     28
    18.     29
    19.     30
    20.     31
    21.     32
    22.     33
    23.     34
    24.     35
    25.     36
    26.     37
    27.     38
    28.     39
    29.     40
    30.     41
    31.     42
    32.     43
    33.     44
    34.     45
    35.     46
    36.     47
    37.     48
    38.     49
    39.     50
    40.     51
    41.     52
    42.     53
    43.     54
    44.     55
    45.     56
    46.     57
  7.   58

ESI2

ESI Module

Category

Functional

Function

TSM1 register corruption

Description

When CPU performs write operations to any ESI register during active TSM (Timing State Machine) sequence, the TSM1 register might be corrupted. The critical scenario is a CPU write access at the end of the TSM sequence.

Workaround

Gate ESI write accesses during TSM active phase by reading the TSM register pointer from ESIDEBUG2 to ensure TSM is in IDLE state (TSM_Index = 0).



__bic_SR_register(GIE);     // disable interrupts  important
                            // to not interrupt the SW gating

while (ESIDEBUG2_H != 0x00);// check TSM state pointer to 
                            // ensure IDLE state before 
                            // write access

ESICNT2 = 0x00000;          // example write to any ESI 
                            // register

__bis_SR_register(GIE);     // re-enable interrupts        



Due to this workaround the device stays maximum 1 TSM sequence longer in Active mode.

The CPU access must not extend the Idle time of the TSM.
The gating should be used for each write operation or a sequence of ESI write accesses in a row.