cd00217364 Spc564a74xx Spc564a80xx 32 Bit Mcu Family Built On The Embedded Power Architecture Stmicroelectronics
cd00217364 Spc564a74xx Spc564a80xx 32 Bit Mcu Family Built On The Embedded Power Architecture Stmicroelectronics
Reference manual
SPC564A74xx, SPC564A80xx
32-bit MCU family built on the embedded Power Architecture®
Introduction
The primary objective of this document is to define the functionality of the SPC564A74xx,
SPC564A80xx family of microcontrollers for use by software and hardware developers. The
SPC564A74xx, SPC564A80xx family is built on Power Architecture® technology and
integrates technologies that are important for today’s lower-end applications.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Chapter organization and device-specific information . . . . . . . . . . . . . . . . . . . . . 66
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.1 The SPC564A74xx, SPC564A80xx Microcontroller Family . . . . . . . . . . . 67
1.2 SPC564A80 and SPC564A70 Device Comparison . . . . . . . . . . . . . . . . . 68
1.3 Device block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.4 Feature summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.4.1 Feature details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.4.2 e200z4 core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.4.3 Crossbar Switch (XBAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.4.4 eDMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.4.5 Interrupt controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.4.6 Memory protection unit (MPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.4.7 FMPLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.4.8 SIU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.4.9 Flash memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.4.10 BAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
1.4.11 eMIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.4.12 eTPU2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.4.13 Reaction module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.4.14 eQADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.4.15 DSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.4.16 eSCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.4.17 FlexCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.4.18 FlexRay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.4.19 System timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.4.20 Software watchdog timer (SWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
1.4.21 Cyclic redundancy check (CRC) module . . . . . . . . . . . . . . . . . . . . . . . . 89
1.4.22 Error correction status module (ECSM) . . . . . . . . . . . . . . . . . . . . . . . . . 89
2 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.2 Memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3 Signal Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.1 Signal Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.2 Signal Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
4 Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.1 Reset sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.2 Reset vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.3 Reset pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.3.1 RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.3.2 RSTOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.4 FMPLL lock gating signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.5 Reset source descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.5.1 Power-on reset (POR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.5.2 External reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.5.3 Loss of lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.5.4 Loss of clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.5.5 Core watchdog timer/debug reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.5.6 JTAG reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.5.7 Software system reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.5.8 Software external reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.6 Reset registers in the SIU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.7 Reset configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.7.1 Reset configuration half word (RCHW) . . . . . . . . . . . . . . . . . . . . . . . . 144
4.7.2 Reset configuration timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4.7.3 Reset weak pull up/down configuration . . . . . . . . . . . . . . . . . . . . . . . . 147
List of tables
Table 618. Result Message Format for External Device Operation field description . . . . . . . . . . . . 1108
Table 619. Command BUFFERx BUSY Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
Table 620. field description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
Table 621. CFIFO Scan Trigger Mode - Command Transfer Start/Stop Summary . . . . . . . . . . . . . 1128
Table 622. Command FIFO Status Switching Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
Table 623. ADC Clock Configuration Example (System Clock Frequency=120 MHz) . . . . . . . . . . . 1144
Table 624. STAC Client Submodule Server Slot Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
Table 625. Binary and Decimal Representations of the Gain Constant . . . . . . . . . . . . . . . . . . . . . . 1151
Table 626. ADC0/1_EMUX Bits Combinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
Table 627. Non-multiplexed Channel Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
Table 628. Multiplexed Channel Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
Table 629. Encoding of MA Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
Table 630. EQADC FIFO Interrupt Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
Table 631. EQADC FIFO DMA Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
Table 632. CTRL[0:1] field description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169
Table 633. Application of Each CQueue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
Table 634. Example of CQueue Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
Table 635. Calibration example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
Table 636. Terminology Comparison between QADC and EQADC . . . . . . . . . . . . . . . . . . . . . . . . . 1189
Table 637. Usage Comparison between QADC and EQADC System . . . . . . . . . . . . . . . . . . . . . . . 1189
Table 638. Decimation Filter Parameters for SPC564A74xx, SPC564A80xx . . . . . . . . . . . . . . . . . 1191
Table 639. Operation mode selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
Table 640. Decimation filter device memory map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
Table 641. DECFILTER_MCR Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198
Table 642. CASCD[1:0] – Filter Cascade mode configuration selection . . . . . . . . . . . . . . . . . . . . . 1198
Table 643. FTYPE[1:0] – Filter type selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199
Table 644. SCAL[1:0] – Filter scaling factor definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199
Table 645. ISEL/MIXM definition — Read/Write from/to Input/Output buffers . . . . . . . . . . . . . . . . . 1201
Table 646. DEC_RATE[3:0] definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
Table 647. TMODE[1:0] definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203
Table 648. DECFILTER_MSR Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
Table 649. DECFILTER_MXCR Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207
Table 650. SZROSEL – Integrator Zero mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208
Table 651. SHLTSEL – Integrator halt control selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208
Table 652. SRQSEL – Integrator output request mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209
Table 653. SENSEL – Integrator enable control selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209
Table 654. DECFILTER_MXSR Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1210
Table 655. DECFILTER_IB Register Field Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212
Table 656. DECFILTER_OB Register Field Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213
Table 657. DECFILTER_COEFn Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
Table 658. DECFILTER_TAPn Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
Table 659. DECFILTER_EDID Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215
Table 660. DECFILTER_FINTVAL Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
Table 661. DECFILTER_FINTCNT Register Field Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
Table 662. DECFILTER_CINTVAL Register Field Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217
Table 663. DECFILTER_CINTCNT Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218
Table 664. Parallel side interface memory map for decfilter data exchange . . . . . . . . . . . . . . . . . . 1218
Table 665. DECFILTER_IOB Register Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
Table 666. M_CTRL[1:0] – Decimation filter control functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
Table 667. Decimation filter cascade mode data bus field description . . . . . . . . . . . . . . . . . . . . . . . 1240
Table 668. Features in cascade mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
Table 669. Coefficient values given by SPW digital filter design tool . . . . . . . . . . . . . . . . . . . . . . . . 1243
Table 878. Frame header field description (transmit message buffer) . . . . . . . . . . . . . . . . . . . . . . . 1560
Table 879. Receive message buffer slot status content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561
Table 880. Receive Message Buffer Slot Status field description ) . . . . . . . . . . . . . . . . . . . . . . . . . 1562
Table 881. Transmit message buffer slot status content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1563
Table 882. Transmit Message Buffer Slot Status Structure field description . . . . . . . . . . . . . . . . . . 1564
Table 883. Message buffer data field minimum length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1566
Table 884. Frame data write access constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1567
Table 885. Frame Data field description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1567
Table 886. Individual message buffer types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1568
Table 887. Single transmit message buffer access regions description . . . . . . . . . . . . . . . . . . . . . . 1570
Table 888. Single transmit message buffer state description (Sheet 1 of 2) . . . . . . . . . . . . . . . . . . 1571
Table 889. Single transmit message buffer application transitions. . . . . . . . . . . . . . . . . . . . . . . . . . 1572
Table 890. Single transmit message buffer module transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1573
Table 891. Single transmit message buffer transition priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1574
Table 892. Receive message buffer access region description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579
Table 893. Receive message buffer states and access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580
Table 894. Receive message buffer application transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581
Table 895. Receive message buffer module transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581
Table 896. Receive message buffer transition priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582
Table 897. Receive message buffer update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583
Table 898. Double transmit message buffer access regions description . . . . . . . . . . . . . . . . . . . . . 1586
Table 899. Double transmit message buffer state description (commit side) . . . . . . . . . . . . . . . . . . 1587
Table 900. Double transmit message buffer state description (transmit side) (sheet 2 of 2) . . . . . . 1588
Table 901. Double transmit message buffer host transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1590
Table 902. Double transmit message buffer module transitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1590
Table 903. Double transmit message buffer transition priorities. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1591
Table 904. Message buffer search priority (static segment) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595
Table 905. Message buffer search priority (dynamic segment) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595
Table 906. Sync frame table generation modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1609
Table 907. Key slot frame type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1611
Table 908. Slot status content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1616
Table 909. FlexRay channel bit rate control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1624
Table 910. PE DRAM layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1624
Table 911. CHI LRAM layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625
Table 912. Detected memory error types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1626
Table 913. PE DRAM checkbits coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627
Table 914. FR_EERCR[CODE] PE DRAM syndrome coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628
Table 915. CHI LRAM checkbits coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628
Table 916. FR_EERCR[CODE] CHI LRAM syndrome coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629
Table 917. Maximum SYMATOR[TIMEOUT] examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632
Table 918. Minimum fchi [MHz] examples (128 message buffers) . . . . . . . . . . . . . . . . . . . . . . . . . . 1635
Table 919. Protocol control command priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1636
Table 920. Transmit buffer configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637
Table 921. Receive buffer configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637
Table 922. PIT_RTI memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1642
Table 923. Timer channel n / RTI channel registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1642
Table 924. PITMCR field descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643
Table 925. LDVAL field descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644
Table 926. CVAL field descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1645
Table 927. TCTRL field descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1646
Table 928. TFLG field descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1646
Table 929. Power management controller external signals (maximum ratings) . . . . . . . . . . . . . . . . 1652
List of figures
Figure 465. REACM Modulation Range Pulse Width Register (REACM_RANGEPWD). . . . . . . . . . . 742
Figure 466. REACM Modulation Minimum Pulse Width Register (REACM_MINPWD). . . . . . . . . . . . 743
Figure 467. REACM Modulation Control Word Bank Registers (REACM_MWBK) . . . . . . . . . . . . . . . 743
Figure 468. Reaction channel architecture simplified diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Figure 469. Modulation control word bank interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
Figure 470. Shared timer bank block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Figure 471. Hold-off timer bank block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Figure 472. Threshold bank and comparator block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Figure 473. ADC interface block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
Figure 474. ADC interface and threshold bank interconnections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Figure 475. Banked mode showing stacking of channels [0] and [1] . . . . . . . . . . . . . . . . . . . . . . . . . . 755
Figure 476. Threshold/threshold modulation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Figure 477. Threshold/hold-off modulation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Figure 478. Limitation on the OFF modulation timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
Figure 479. Early end of Timer Control pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
Figure 480. Fails detected by the modulation monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
Figure 481. Open circuit detection using hold-off timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Figure 482. Short circuit detection using hold-off timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Figure 483. DMA Req/Done protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Figure 484. Boosted Banked Direct Injection with Passive Recirculation . . . . . . . . . . . . . . . . . . . . . . 765
Figure 485. eTPU CH10/1 controlling reaction CH0/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
Figure 486. System level connection in a banked configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
Figure 487. Modulation phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
Figure 488. Modulation words for injector application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
Figure 489. Advancing modulation phase on a threshold level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
Figure 490. LOOP function used within a modulation cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
Figure 491. Four channels controlling two injector banks in banked mode . . . . . . . . . . . . . . . . . . . . . 772
Figure 492. eTPU block diagram (single-engine) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
Figure 493. eTPU engine block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
Figure 494. ETPU_MCR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
Figure 495. ETPU_CDCR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
Figure 496. ETPU_MISCCMPR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
Figure 492. ETPU_SCMOFFDATAR Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
Figure 492. ETPU_ECR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
Figure 497. ETPU_TBCR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
Figure 498. ETPU_TB1R Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
Figure 499. ETPU_TB2R Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
Figure 500. ETPU_REDCR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
Figure 501. ETPU_WDTR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
Figure 502. ETPU_IDLE Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
Figure 503. Channel registers area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
Figure 504. ETPU_CISR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
Figure 505. ETPU_CDTRSR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
Figure 506. ETPU_CIOSR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
Figure 507. ETPU_CDTROSR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
Figure 508. ETPU_CIER Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
Figure 509. ETPU_CDTRER Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Figure 510. ETPU_CPSSR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
Figure 511. ETPU_CSSR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
Figure 512. ETPU_CxCR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
Figure 513. ETPU_CxSCR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
Figure 514. ETPU_CxHSRR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
Figure 619. Conversion Command Format for the Standard Configuration. . . . . . . . . . . . . . . . . . . . 1097
Figure 620. Conversion Command Format for Alternate Configurations . . . . . . . . . . . . . . . . . . . . . . 1100
Figure 621. Write Configuration Command Format for On-Chip ADC Operation . . . . . . . . . . . . . . . 1102
Figure 622. Read Configuration Command Format for On-Chip ADC Operation . . . . . . . . . . . . . . . 1103
Figure 623. ADC Result Format when FMT=1 (Right Justified Signed) . . . . . . . . . . . . . . . . . . . . . . 1104
Figure 624. ADC Result Format when FMT=0 (Right Justified Unsigned) . . . . . . . . . . . . . . . . . . . . 1104
Figure 625. Command Message Format for External Device Operation . . . . . . . . . . . . . . . . . . . . . . 1107
Figure 626. Result Message Format for External Device Operation . . . . . . . . . . . . . . . . . . . . . . . . . 1108
Figure 627. Null Message Send Format for External Device Operation . . . . . . . . . . . . . . . . . . . . . . 1110
Figure 628. Null Message Receive Format for External Device Operation . . . . . . . . . . . . . . . . . . . . 1110
Figure 629. CFIFO Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
Figure 630. CFIFO Entry Pointer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
Figure 631. CFIFO0 in Streaming Mode Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
Figure 632. CFIFO0 in Streaming Mode Entry Pointer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
Figure 633. CFIFO0 in Streaming Mode Entry Pointer Example (Cont.) . . . . . . . . . . . . . . . . . . . . . . 1119
Figure 634. CFIFO Prioritization Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
Figure 635. ETRIG Event Propagation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
Figure 636. State Machine of CFIFO Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
Figure 637. Trigger Overrun on Level-Trigger Mode CFIFOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
Figure 638. Command Sequence Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
Figure 639. External CBuffer Status Detection at Command Sequence Transfer Start . . . . . . . . . . 1135
Figure 640. Non-Coherency Event when Different CFIFOs use the same CBuffer . . . . . . . . . . . . . . 1136
Figure 641. Non-Coherency Event when Different CFIFOs are using Different External CBuffers . . 1137
Figure 642. Non-coherency Detection when Transfers from a Command Sequence are Interrupted 1138
Figure 643. RFIFO Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
Figure 644. RFIFO Entry Pointer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
Figure 645. ADC0/1 Clock Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
Figure 646. REDLC Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
Figure 647. Timing Diagram for the STAC Bus and STAC Client Submodule Output. . . . . . . . . . . . 1148
Figure 648. MAC Unit Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
Figure 649. Gain Calibration Constant Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
Figure 650. On-Chip ADC Control Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
Figure 651. Overlapping Consecutive Conversion Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154
Figure 652. Example of External Multiplexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
Figure 653. EQADC DMA and Interrupt Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
Figure 654. EQADC Synchronous Serial Interface Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
Figure 655. Full Duplex Pin Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
Figure 656. Synchronous Serial Interface Protocol Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
Figure 657. Slave Driving the MSB and Consecutive Bits in a Data Transmission . . . . . . . . . . . . . . 1167
Figure 658. EQADC Parallel Side Interface Block Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
Figure 659. PSI Input and Output Data Buses Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169
Figure 660. RSD ADC Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
Figure 661. RSD Stage Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
Figure 662. RSD Stage Transfer Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
Figure 663. RSD Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
Figure 664. Example of a CQueue Configuring the On-Chip ADCs/External Device . . . . . . . . . . . . 1176
Figure 665. CQueue/CFIFO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1180
Figure 666. RQueue/RFIFO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181
Figure 667. EQADC Command and Result Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1183
Figure 668. Quantization error reduction during calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186
Figure 669. QADC Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187
Figure 670. EQADC System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
Figure 774. LIN transmit register (eSCI_LTR) - LIN TX frame generation. . . . . . . . . . . . . . . . . . . . . 1369
Figure 775. LIN transmit register (eSCI_LTR) - LIN RX frame generation . . . . . . . . . . . . . . . . . . . . 1369
Figure 776. LIN receive register (eSCI_LRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370
Figure 777. LIN CRC polynomial register (eSCI_LPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371
Figure 778. Control register 3 (eSCI_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371
Figure 779. LIN Byte Field Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374
Figure 780. SCI Frame Formats (8 payload bits). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374
Figure 781. SCI Frame Formats (9 payload bits). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374
Figure 782. SCI Frame Formats (2 stop bits) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375
Figure 783. Inverted SCI Frame Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375
Figure 784. LIN Break Symbol Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1376
Figure 785. SCI Break Character Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1376
Figure 786. Idle Character Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1377
Figure 787. Faster Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379
Figure 788. Slower Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380
Figure 789. Transmitter State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
Figure 790. DMA Controlled SCI Data Frame generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384
Figure 791. Receiver State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386
Figure 792. Dual Wire Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
Figure 793. Single Wire Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
Figure 794. Loop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1388
Figure 795. DMA Controlled SCI Data Frame Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1390
Figure 796. Start Bit Sampling and Strobing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391
Figure 797. Data and Stop Bit Sampling and Strobing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1393
Figure 798. Idle-Line Wake Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395
Figure 799. Address-Mark Wake Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395
Figure 800. Standard LIN frame format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
Figure 801. CRC Enhanced LIN frame format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
Figure 802. DMA Controlled LIN TX Frame generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399
Figure 803. DMA Controlled LIN RX Frame generation and reception . . . . . . . . . . . . . . . . . . . . . . . 1401
Figure 804. Fast Bit Error Detection on a LIN Bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402
Figure 805. Timing Diagram Fast Bit Error Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402
Figure 806. LIN Wake-Up Signal Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1404
Figure 807. FlexCAN block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1408
Figure 808. Typical CAN system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409
Figure 809. FlexCAN message buffer architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414
Figure 810. Message Buffer Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1415
Figure 811. Rx FIFO Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418
Figure 812. ID Table 0 – 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1418
Figure 813. Module Configuration Register (MCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1420
Figure 814. Control Register (CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425
Figure 815. Free Running Timer (TIMER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429
Figure 816. Rx Global Mask Register (RXGMASK). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429
Figure 817. Error Counter Register (ECR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1431
Figure 818. Error and Status Register (ESR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432
Figure 819. Interrupt Masks 2 Register (IMRH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1435
Figure 820. Interrupt Masks 1 Register (IMRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436
Figure 821. Interrupt Flags 2 Register (IFRH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437
Figure 822. Interrupt Flags 1 Register (IFRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438
Figure 823. Rx Individual Mask Registers (RXIMR0 – RXIMR63) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439
Figure 824. CAN engine clocking scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449
Figure 825. Segments within the Bit Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1450
Figure 982. Strobe signal timing (type = pulse, clk_offset = -2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1613
Figure 983. Strobe signal timing (type = pulse, clk_offset = +4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1613
Figure 984. Slot status vector update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615
Figure 985. Slot status counting and FR_SSCRn update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617
Figure 986. Scheme of FR_GIFER interrupt signal generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621
Figure 987. Scheme of FR_EEIFER interrupt signal generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622
Figure 988. Scheme of FR_CIFR flags generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1623
Figure 989. Transmit data not available. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1638
Figure 990. Transmit data not available. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1639
Figure 991. Block diagram of PIT_RTI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1641
Figure 992. PIT Module Control Register (PITMCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643
Figure 993. Timer Load Value Register (LDVAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644
Figure 994. Current Timer Value Register (CVAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1645
Figure 995. Timer Control Register (TCTRL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1645
Figure 996. Timer Flag Register (TFLG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1646
Figure 997. Stopping and starting a timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647
Figure 998. Modifying running timer period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647
Figure 999. Dynamically setting a new load value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647
Figure 1000.Power management controller diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651
Figure 1001.Bandgap reference block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652
Figure 1002.Module Configuration Register (MCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1654
Figure 1003.Trimming Register (TRIMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1656
Figure 1004.Status Register (SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659
Figure 1005.Vreg 3.3 V power connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1664
Figure 1006.Non-Volatile User Options Register (NVUSRO) - Array0 . . . . . . . . . . . . . . . . . . . . . . . . 1665
Figure 1007.POR rising and falling edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667
Figure 1008.POR - LVI relative rising and falling edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667
Figure 1009.JTAG STL (IEEE 1149.1) block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673
Figure 1010.5-bit Instruction Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675
Figure 1011.Device Identification Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676
Figure 1012.CENSOR_CTRL Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1677
Figure 1013.Shifting data through a register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678
Figure 1014.IEEE 1149.1-2001 TAP controller finite state machine. . . . . . . . . . . . . . . . . . . . . . . . . . 1679
Figure 1015.Nexus Port Controller block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1687
Figure 1016.4-bit Instruction Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691
Figure 1017.Nexus Device ID Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692
Figure 1018.Port Configuration Register (PCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692
Figure 1019.MSEO transfers (for 2-bit MSEO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1696
Figure 1020.Message Field Sizes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1697
Figure 1021.Transmission sequence of messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1698
Figure 1022.Shifting data into register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1698
Figure 1023.IEEE 1149.1-2001 TAP controller state machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1700
Figure 1024.NEXUS controller state machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701
Figure 1025.IEEE 1149.1 controller command input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1702
Figure 1026.DTS block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706
Figure 1027.DTO event sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706
Figure 1028.DTS device connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1707
Figure 1029.DTS_ENABLE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709
Figure 1030.DTS_STARTUP register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1710
Figure 1031.DTS_SEMAPHORE register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1711
Figure 1032.DTS startup sequence example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1712
Preface
Overview
The primary objective of this document is to define the functionality of the SPC564A74xx,
SPC564A80xx family of microcontrollers for use by software and hardware developers. The
SPC564A74xx, SPC564A80xx family is built on Power Architecture® technology and
integrates technologies that are important for today’s lower-end applications.
As with any technical documentation, it is the reader’s responsibility to be sure he or she is
using the most recent version of the documentation.
To locate any published errata or updates for this document, visit the ST Web site at
www.st.com.
Audience
This manual is intended for system software and hardware developers and applications
programmers who want to develop products with the SPC564A74xx, SPC564A80xx device.
It is assumed that the reader understands operating systems, microprocessor system
design, basic principles of software and hardware, and basic details of the Power
Architecture.
References
In addition to this reference manual, the following documents provide additional information
on the operation of the SPC564A74xx, SPC564A80xx:
● IEEE-ISTO 5001™ - 2003 and 2010, The Nexus 5001™ Forum Standard for a Global
Embedded Processor Debug Interface
● IEEE 1149.1-2001 standard - IEEE Standard Test Access Port and Boundary-Scan
Architecture
1 Introduction
Process 90 nm
Core e200z4 e200z4
SIMD Yes
VLE Yes
Cache 8 KB instruction
Non-Maskable Interrupt (NMI) NMI & Critical Interrupt
MMU 24 entry
MPU 16 entry
Crossbar switch 5×4 4×4
Core performance 0–150 MHz 0–150 MHz
Windowing software watchdog Yes
Core Nexus Class 3+ Class 3+
SRAM 192 KB 128 KB
Flash 4 MB 2 MB
Flash fetch accelerator 4 × 256-bit
External bus 16-bit (incl 32-bit muxed) 4 × 128-bit
Calibration bus 16-bit (incl 32-bit muxed) None
DMA 64 ch.
DMA Nexus None
Serial 3
eSCI_A Yes (MSC Uplink)
eSCI_B Yes (MSC Uplink)
eSCI_C Yes
CAN 3
CAN_A 64 buf
CAN_B 64 buf
CAN_C 64 buf
SPI 3
Power ArchitectureTM
e200z4
Interrupt JTAG
Controller Nexus Class 3+
SPE Nexus
VLE IEEE-ISTO
5001-2003/2010
M4 M0 M1 M6 M7
Crossbar Switch
S0 MPU S1
S2 S7
I/O Bridge
3 KB Data eTPU2
Temp Sens
FlexCAN×3
ADCi DEC
REACM
DSPI×3
eSCI×3
eMIOS
FMPLL
PMC
BAM
32
STM
x2
PIT
SWT
RAM
CRC
ADC
SIU
DTS
ADC
24 Channel
Channel 14 KB Code Nexus VGA
RAM Class 1 AMux
LEGEND
ADC – Analog to Digital Converter JTAG – IEEE 1149.1 test controller
ADCi – ADC interface MMU – Memory Management Unit
AMux – Analog Multiplexer MPU – Memory Protection Unit
BAM – Boot Assist Module PMC – Power Management Controller
CRC – Cyclic Redundancy Check unit PIT – Periodic Interrupt Timer
DEC – Decimation Filter RCOSC – low-speed RC oscillator
DTS – Development Trigger Semaphore REACM – Reaction module
DSPI – Deserial/Serial Peripheral Interface SIU – System Integration Unit
EBI – External Bus Interface SPE – Signal Processing Extension
ECSM – Error Correction Status Module SRAM – Static RAM
eDMA – Enhanced Direct Memory Access STM – System Timer Module
eMIOS – Enhanced Modular Input Output System SWT – Software Watchdog Timer
eSCI – Enhanced Serial Communications Interface VGA – Variable Gain Amplifier
eTPU2 – Second gen. Enhanced Time Processing Unit VLE – Variable Length (instruction) Encoding
FlexCAN– Controller Area Network (FlexCAN) XOSC – XTAL Oscillator
FMPLL – Frequency-Modulated Phase Locked Loop
● JTAG (5-pin)
● Development Trigger Semaphore (DTS)
– Register of semaphores (32-bits) and an identification register
– Used as part of a triggered data acquisition protocol
– EVTO pin is used to communicate to the external tool
● Clock generation
– On-chip 4–40 MHz main oscillator
– On-chip FMPLL (frequency-modulated phase-locked loop)
● Up to 120 general purpose I/O lines
– Individually programmable as input, output or special function
– Programmable threshold (hysteresis)
● Power reduction mode: slow, stop and stand-by modes
● Flexible supply scheme
– 5 V single supply with external ballast
– Multiple external supply: 5 V, 3.3 V and 1.2 V
● Packages
– LQFP176
– LBGA208
– PBGA324
– Known Good Die (KGD)
– 496-pin CSP (calibration tool only)
based upon the ID of the last master to be granted access. The crossbar provides the
following features:
● 5 master ports
– CPU instruction bus
– CPU data bus
– eDMA
– FlexRay
– External Bus Interface
● 4 slave ports
– Flash
– Calibration and EBI bus
– SRAM
– Peripheral bridge
● 32-bit internal address, 64-bit internal data paths
1.4.4 eDMA
The enhanced direct memory access (eDMA) controller is a second-generation module
capable of performing complex data movements via 64 programmable channels, with
minimal intervention from the host processor. The hardware micro-architecture includes a
DMA engine which performs source and destination address calculations, and the actual
data movement operations, along with an SRAM-based memory containing the transfer
control descriptors (TCD) for the channels. This implementation is utilized to minimize the
overall block size. The eDMA module provides the following features:
● All data movement via dual-address transfers: read from source, write to destination
● Programmable source and destination addresses, transfer size, plus support for
enhanced addressing modes
● Transfer control descriptor organized to support two-deep, nested transfer operations
● An inner data transfer loop defined by a “minor” byte transfer count
● An outer data transfer loop defined by a “major” iteration count
● Channel activation via one of three methods:
– Explicit software initiation
– Initiation via a channel-to-channel linking mechanism for continuous transfers
– Peripheral-paced hardware requests (one per channel)
● Support for fixed-priority and round-robin channel arbitration
● Channel completion reported via optional interrupt requests
● One interrupt per channel, optionally asserted at completion of major iteration count
● Error termination interrupts optionally enabled
● Support for scatter/gather DMA processing
● Ability to suspend channel transfers by a higher priority channel
For high priority interrupt requests, the time from the assertion of the interrupt request from
the peripheral to when the processor is executing the interrupt service routine (ISR) has
been minimized. The INTC provides a unique vector for each interrupt request source for
quick determination of which ISR needs to be executed. It also provides an ample number
of priorities so that lower priority ISRs do not delay the execution of higher priority ISRs. To
allow the appropriate priorities for each source of interrupt request, the priority of each
interrupt request is software configurable.
When multiple tasks share a resource, coherent accesses to that resource need to be
supported. The INTC supports the priority ceiling protocol for coherent accesses. By
providing a modifiable priority mask, the priority can be raised temporarily so that all tasks
which share the resource cannot preempt each other.
The INTC provides the following features:
● 9-bit vector addresses
● Unique vector for each interrupt request source
● Hardware connection to processor or read from register
● Each interrupt source can assigned a specific priority by software
● Preemptive prioritized interrupt requests to processor
● ISR at a higher priority preempts executing ISRs or tasks at lower priorities
● Automatic pushing or popping of preempted priority to or from a LIFO
● Ability to modify the ISR or task priority to implement the priority ceiling protocol for
accessing shared resources
● Low latency—three clocks from receipt of interrupt request from peripheral to interrupt
request to processor
This device also includes a non-maskable interrupt (NMI) pin that bypasses the INTC and
multiplexing logic.
supervisor and user mode accesses; the remaining non-core bus masters (eDMA,
FlexRay, and EBI1) support {read, write} attributes
– Automatic hardware maintenance of the region descriptor valid bit removes issues
associated with maintaining a coherent image of the descriptor
– Alternate memory view of the access control word for each descriptor provides an
efficient mechanism to dynamically alter the access rights of a descriptor only(a)
– For overlapping region descriptors, priority is given to permission granting over
access denying as this approach provides more flexibility to system software
● Support for two XBAR slave port connections (SRAM and PBRIDGE)
– For each connected XBAR slave port (SRAM and PBRIDGE), MPU hardware
monitors every port access using the pre-programmed memory region descriptors
– An access protection error is detected if a memory reference does not hit in any
memory region or the reference is flagged as illegal in all memory regions where it
does hit. In the event of an access error, the XBAR reference is terminated with an
error response and the MPU inhibits the bus cycle being sent to the targeted slave
device
– 64-bit error registers, one for each XBAR slave port, capture the last faulting
address, attributes, and detail information
1.4.7 FMPLL
The FMPLL allows the user to generate high speed system clocks from a 4 MHz to 40 MHz
crystal oscillator or external clock generator. Further, the FMPLL supports programmable
frequency modulation of the system clock. The PLL multiplication factor, output clock divider
ratio are all software configurable. The PLL has the following major features:
● Input clock frequency from 4 MHz to 40 MHz
● Reduced frequency divider (RFD) for reduced frequency operation without forcing the
PLL to relock
● 3 modes of operation
– Bypass mode with PLL off
– Bypass mode with PLL running (default mode out of reset)
– PLL normal mode
● Each of the three modes may be run with a crystal oscillator or an external clock
reference
a. EBI not available on all packages and is not available, as a master, for customer.
1.4.8 SIU
The SPC564A74xx, SPC564A80xx SIU controls MCU reset configuration, pad
configuration, external interrupt, general purpose I/O (GPIO), internal peripheral
multiplexing, and the system reset operation. The reset configuration block contains the
external pin boot configuration logic. The pad configuration block controls the static
electrical characteristics of I/O pins. The GPIO block provides uniform and discrete
input/output control of the I/O pins of the MCU. The reset controller performs reset
monitoring of internal and external reset sources, and drives the RSTOUT pin.
Communication between the SIU and the e200z4 CPU core is via the crossbar switch. The
SIU provides the following features:
● System configuration
– MCU reset configuration via external pins
– Pad configuration control for each pad
– Pad configuration control for virtual I/O via DSPI serialization
● System reset monitoring and generation
– Power-on reset support
– Reset status register provides last reset source to software
– Glitch detection on reset input
– Software controlled reset assertion
● External interrupt
– Rising or falling edge event detection
– Programmable digital filter for glitch rejection
– Critical Interrupt request
– Non-Maskable Interrupt request
● GPIO
– Centralized control of I/O and bus pins
– Virtual GPIO via DSPI serialization (requires external deserialization device)
– Dedicated input and output registers for setting each GPIO and Virtual GPIO pin
● Internal multiplexing
– Allows serial and parallel chaining of DSPIs
– Allows flexible selection of eQADC trigger inputs
– Allows selection of interrupt requests between external pins and DSPI
● Hardware and software configurable read and write access protections on a per-master
basis
● Interface to the flash array controller pipelined with a depth of one, allowing overlapped
accesses to proceed in parallel for interleaved or pipelined flash array designs
● Configurable access timing usable in a wide range of system frequencies
● Multiple-mapping support and mapping-based block access timing (0-31 additional
cycles) usable for emulation of other memory types
● Software programmable block program/erase restriction control
● Erase of selected block(s)
● Read page size of 128 bits (four words)
● ECC with single-bit correction, double-bit detection
● Program page size of 128 bits (four words) to accelerate programming
● ECC single-bit error corrections are visible to software
● Minimum program size is two consecutive 32-bit words, aligned on a 0-modulo-8 byte
address, due to ECC
● Embedded hardware program and erase algorithm
● Erase suspend, program suspend and erase-suspended program
● Shadow information stored in non-volatile shadow block
● Independent program/erase of the shadow block
1.4.10 BAM
The BAM (Boot Assist Module) is a block of read-only memory that is programmed once by
ST and is identical for all SPC564A74xx, SPC564A80xx MCUs. The BAM program is
executed every time the MCU is powered-on or reset in normal mode. The BAM supports
different modes of booting. They are:
● Booting from internal flash memory
● Serial boot loading (A program is downloaded into RAM via eSCI or the FlexCAN and
then executed)
● Booting from external memory on external bus
The BAM also reads the reset configuration half word (RCHW) from internal flash memory
and configures the SPC564A74xx, SPC564A80xx hardware accordingly. The BAM provides
the following features:
● Sets up MMU to cover all resources and mapping of all physical addresses to logical
addresses with minimum address translation
● Sets up MMU to allow user boot code to execute as either Power Architecture
embedded category (default) or as VLE code
● Location and detection of user boot code
● Automatic switch to serial boot mode if internal flash is blank or invalid
● Supports user programmable 64-bit password protection for serial boot mode
● Supports serial bootloading via FlexCAN bus and eSCI using standard protocol
● Supports serial bootloading via FlexCAN bus and eSCI with auto baud rate sensing
● Supports serial bootloading of either Power Architecture code (default) or VLE code
● Supports booting from calibration bus interface
● Supports censorship protection for internal flash memory
● Provides an option to enable the core watchdog timer
● Provides an option to disable the system watchdog timer
1.4.11 eMIOS
The eMIOS timer module provides the capability to generate or measure events in
hardware.
The eMIOS module features include:
● Twenty-four 24-bit wide channels
● 3 channels’ internal timebases can be shared between channels
● 1 Timebase from eTPU2 can be imported and used by the channels
● Global enable feature for all eMIOS and eTPU timebases
● Dedicated pin for each channel (not available on all package types)
Each channel (0–23) supports the following functions:
● General-purpose input/output (GPIO)
● Single-action input capture (SAIC)
● Single-action output compare (SAOC)
● Output pulse-width modulation buffered (OPWMB)
● Input period measurement (IPM)
● Input pulse-width measurement (IPWM)
● Double-action output compare (DAOC)
● Modulus counter buffered (MCB)
● Output pulse width and frequency modulation buffered (OPWFMB)
1.4.12 eTPU2
The eTPU2 is an enhanced co-processor designed for timing control. Operating in parallel
with the host CPU, the eTPU2 processes instructions and real-time input events, performs
output waveform generation, and accesses shared data without host intervention.
Consequently, for each timer event, the host CPU setup and service times are minimized or
eliminated. A powerful timer subsystem is formed by combining the eTPU2 with its own
instruction and data RAM. High-level assembler/compiler and documentation allows
customers to develop their own functions on the eTPU2.
SPC564A74xx, SPC564A80xx devices feature the second generation of the eTPU, called
eTPU2. Enhancements of the eTPU2 over the standard eTPU include:
● The Timer Counter (TCR1), channel logic and digital filters (both channel and the
external timer clock input [TCRCLK]) now have an option to run at full system clock
speed or system clock / 2.
● Channels support unordered transitions: transition 2 can now be detected before
transition 1. Related to this enhancement, the transition detection latches (TDL1 and
TDL2) can now be independently negated by microcode.
● A new User Programmable Channel Mode has been added: the blocking, enabling,
service request and capture characteristics of this channel mode can be programmed
via microcode.
● Microinstructions now provide an option to issue Interrupt and Data Transfer requests
selected by channel. They can also be requested simultaneously at the same
instruction.
● Channel Flags 0 and 1 can now be tested for branching, in addition to selecting the
entry point.
● Channel digital filters can be bypassed.
The eTPU2 includes these distinctive features:
● 32 channels; each channel associated with one input and one output signal
– Enhanced input digital filters on the input pins for improved noise immunity
– Identical, orthogonal channels: each channel can perform any time function. Each
time function can be assigned to more than one channel at a given time, so each
signal can have any functionality.
– Each channel has an event mechanism which supports single and double action
functionality in various combinations. It includes two 24-bit capture registers, two
24-bit match registers, 24-bit greater-equal and equal-only comparators.
– Input and output signal states visible from the host
● 2 independent 24-bit time bases for channel synchronization:
– First time base clocked by system clock with programmable prescale division from
2 to 512 (in steps of 2), or by output of second time base prescaler
– Second time base counter can work as a continuous angle counter, enabling
angle based applications to match angle instead of time
– Both time bases can be exported to the eMIOS timer module
– Both time bases visible from the host
● Event-triggered microengine:
– Fixed-length instruction execution in two-system-clock microcycle
– 14 KB of code memory (SCM)
– 3 KB of parameter (data) RAM (SPRAM)
– Parallel execution of data memory, ALU, channel control and flow control sub-
instructions in selected combinations
– 32-bit microengine registers and 24-bit wide ALU, with 1 microcycle addition and
subtraction, absolute value, bitwise logical operations on 24-bit, 16-bit, or byte
operands, single-bit manipulation, shift operations, sign extension and conditional
execution
– Additional 24-bit Multiply/MAC/Divide unit which supports all signed/unsigned
Multiply/MAC combinations, and unsigned 24-bit divide. The MAC/Divide unit
works in parallel with the regular microcode commands.
● Resource sharing features support channel use of common channel registers, memory
and microengine time:
– Hardware scheduler works as a “task management” unit, dispatching event
service routines by predefined, host-configured priority
– Automatic channel context switch when a “task switch” occurs, that is, one
function thread ends and another begins to service a request from other channel:
1.4.14 eQADC
The enhanced queued analog to digital converter (eQADC) block provides accurate and fast
conversions for a wide range of applications. The eQADC provides a parallel interface to
two on-chip analog to digital converters (ADC), and a single master to single slave serial
interface to an off-chip external device. Both on-chip ADCs have access to all the analog
channels.
The eQADC prioritizes and transfers commands from six command conversion command
‘queues’ to the on-chip ADCs or to the external device. The block can also receive data from
the on-chip ADCs or from an off-chip external device into the six result queues, in parallel,
independently of the command queues. The six command queues are prioritized with
Queue_0 having the highest priority and Queue_5 the lowest. Queue_0 also has the added
ability to bypass all buffering and queuing and abort a currently running conversion on either
ADC and start a Queue_0 conversion. This means that Queue_0 will always have a
deterministic time from trigger to start of conversion, irrespective of what tasks the ADCs
were performing when the trigger occurred. The eQADC supports software and external
hardware triggers from other blocks to initiate transfers of commands from the queues to the
on-chip ADCs or to the external device. It also monitors the fullness of command queues
and result queues, and accordingly generates DMA or interrupt requests to control data
movement between the queues and the system memory, which is external to the eQADC.
The ADCs also support features designed to allow the direct connection of high impedance
acoustic sensors that might be used in a system for detecting engine knock. These features
include differential inputs; integrated variable gain amplifiers for increasing the dynamic
range; programmable pull-up and pull-down resistors for biasing and sensor diagnostics.
The eQADC also integrates a programmable decimation filter capable of taking in ADC
conversion results at a high rate, passing them through a hardware low pass filter, then
down-sampling the output of the filter and feeding the lower sample rate results to the result
FIFOs. This allows the ADCs to sample the sensor at a rate high enough to avoid aliasing of
out-of-band noise; while providing a reduced sample rate output to minimize the amount
DSP processing bandwidth required to fully process the digitized waveform.
The eQADC provides the following features:
● Dual on-chip ADCs
– 2 × 12-bit ADC resolution
– Programmable resolution for increased conversion speed (12-bit, 10-bit, 8-bit)
12-bit conversion time: 938 ns (1 M sample/sec)
10-bit conversion time: 813 ns (1.2 M sample/second)
8-bit conversion time: 688 ns (1.4 M sample/second)
– Up to 10-bit accuracy at 500 KSample/s and 8-bit accuracy at 1 MSample/s
– Differential conversions
– Single-ended signal range from 0 to 5 V
– Variable gain amplifiers on differential inputs (×1, ×2, ×4)
– Sample times of 2 (default), 8, 64 or 128 ADC clock cycles
– Provides time stamp information when requested
– Allows time stamp information relative to eTPU clock sources, such as an angle
clock
– Parallel interface to eQADC CFIFOs and RFIFOs
– Supports both right-justified unsigned and signed formats for conversion results
● 40 single-ended input channels, expandable to 56 channels with external multiplexers
(supports four external 8-to-1 muxes)
● 8 channels can be used as 4 pairs of differential analog input channels
● Differential channels include variable gain amplifier for improved dynamic range
● Differential channels include programmable pull-up and pull-down resistors for biasing
and sensor diagnostics (200 kΩ, 100 kΩ, 5 kΩ)
● Additional internal channels for monitoring voltages (such as core voltage, I/O voltage,
LVI voltages, etc.) inside the device
● An internal bandgap reference to allow absolute voltage measurements
● Silicon die temperature sensor
– Provides temperature of silicon as an analog value
– Read using an internal ADC analog channel
– May be read with either ADC
● 2 Decimation Filters
– Programmable decimation factor (1 to 16)
– Selectable IIR or FIR filter
– Up to 4th order IIR or 8th order FIR
– Programmable coefficients
– Saturated or non-saturated modes
– Programmable Rounding (Convergent; Two’s Complement; Truncated)
– Prefill mode to precondition the filter before the sample window opens
– Supports Multiple Cascading Decimation Filters to implement more complex filter
designs
– Optional Absolute Integrators on the output of Decimation Filters
● Full duplex synchronous serial interface to an external device
– Free-running clock for use by an external device
– Supports a 26-bit message length
● Priority based queues
– Supports six queues with fixed priority. When commands of distinct queues are
bound for the same ADC, the higher priority queue is always served first
– Queue_0 can bypass all prioritization, buffering and abort current conversions to
start a Queue_0 conversion a deterministic time after the queue trigger
– Supports software and hardware trigger modes to arm a particular queue
– Generates interrupt when command coherency is not achieved
● External hardware triggers
– Supports rising edge, falling edge, high level and low level triggers
– Supports configurable digital filter
1.4.15 DSPI
The deserial serial peripheral interface (DSPI) block provides a synchronous serial interface
for communication between the SPC564A74xx, SPC564A80xx MCU and external devices.
The DSPI supports pin count reduction through serialization and deserialization of eTPU
and eMIOS channels and memory-mapped registers. The channels and register content are
transmitted using a SPI-like protocol. This SPI-like protocol is completely configurable for
baud rate, polarity and phase, frame length, chip select assertion, etc. Each bit in the frame
may be configured to serialize either eTPU channels, eMIOS channels or GPIO signals. The
DSPI can be configured to serialize data to an external device that implements the
Microsecond Bus protocol. There are three identical DSPI blocks on the SPC564A74xx,
SPC564A80xx MCU. The DSPI pins support 5 V logic levels or Low Voltage Differential
Signalling (LVDS) to improve high speed operation.
DSPI module features include:
● Selectable LVDS pads working at 40 MHZ for SOUT and SCK pins for DSPI_B and
DSPI_C
● 3 sources of serialized data: eTPU_A, eMIOS output channels and memory-mapped
register in the DSPI
● 4 destinations for deserialized data: eTPU_A and eMIOS input channels, SIU external
Interrupt input request, memory-mapped register in the DSPI
● 32-bit DSI and TSB modes require 32 PCR registers, 32 GPO and GPI registers in the
SIU to select either GPIO, eTPU or eMIOS bits for serialization
● The DSPI Module can generate and check parity in a serial frame
1.4.16 eSCI
Three enhanced serial communications interface (eSCI) modules provide asynchronous
serial communications with peripheral devices and other MCUs, and include support to
interface to Local Interconnect Network (LIN) slave devices. Each eSCI block provides the
following features:
● Full-duplex operation
● Standard mark/space non-return-to-zero (NRZ) format
● 13-bit baud rate selection
● Programmable 8-bit or 9-bit, data format
● Programmable 12-bit or 13-bit data format for Timed Serial Bus (TSB) configuration to
support the Microsecond bus standard
● Automatic parity generation
● LIN support
– Autonomous transmission of entire frames
– Configurable to support all revisions of the LIN standard
– Automatic parity bit generation
– Double stop bit after bit error
– 10- or 13-bit break support
● Separately enabled transmitter and receiver
● Programmable transmitter output parity
● 2 receiver wake-up methods:
– Idle line wake-up
– Address mark wake-up
● Interrupt-driven operation with flags
● Receiver framing error detection
● Hardware parity checking
● 1/16 bit-time noise detection
● DMA support for both transmit and receive data
– Global error bit stored with receive data in system RAM to allow post processing of
errors
1.4.17 FlexCAN
The SPC564A74xx, SPC564A80xx MCU includes three controller area network (FlexCAN)
blocks. The FlexCAN module is a communication controller implementing the CAN protocol
according to Bosch Specification version 2.0B. The CAN protocol was designed to be used
primarily as a vehicle serial data bus, meeting the specific requirements of this field: real-
time processing, reliable operation in the EMI environment of a vehicle, cost-effectiveness
and required bandwidth. Each FlexCAN module contains 64 message buffers.
1.4.18 FlexRay
The SPC564A74xx, SPC564A80xx includes one dual-channel FlexRay module that
implements the FlexRay Communications System Protocol Specification, Version 2.1 Rev
A. Features include:
● Single channel support
● FlexRay bus data rates of 10 Mbit/s, 8 Mbit/s, 5 Mbit/s, and 2.5 Mbit/s supported
● 128 message buffers, each configurable as:
– Receive message buffer
– Single buffered transmit message buffer
– Double buffered transmit message buffer (combines two single buffered message
buffer)
● 2 independent receive FIFOs
– 1 receive FIFO per channel
– Up to 255 entries for each FIFO
● ECC support
and four independent timer comparators. These comparators produce a CPU interrupt when
the timer exceeds the programmed value.
The following features are implemented in the STM:
● One 32-bit up counter with 8-bit prescaler
● Four 32-bit compare channels
● Independent interrupt source for each channel
● Counter can be stopped in debug mode
The Error Correction Status Module supports a number of miscellaneous control functions
for the platform. The ECSM includes these features:
● Registers for capturing information on platform memory errors if error-correcting codes
(ECC) are implemented
● For test purposes, optional registers to specify the generation of double-bit memory
errors are enabled on the SPC564A74xx, SPC564A80xx.
The sources of the ECC errors are:
● Flash
● SRAM
● Peripheral RAM (FlexRay, CAN, eTPU2 Parameter RAM)
1.4.27 JTAG
The JTAGC (JTAG Controller) block provides the means to test chip functionality and
connectivity while remaining transparent to system logic when not in test mode. Testing is
performed via a boundary scan technique, as defined in the IEEE 1149.1-2001 standard. All
data input to and output from the JTAGC block is communicated in serial format. The
JTAGC block is compliant with the IEEE 1149.1-2001 standard and supports the following
features:
● IEEE 1149.1-2001 Test Access Port (TAP) interface 4 pins (TDI, TMS, TCK, and TDO)
● A 5-bit instruction register that supports the following IEEE 1149.1-2001 defined
instructions:
– BYPASS, IDCODE, EXTEST, SAMPLE, SAMPLE/PRELOAD, HIGHZ, CLAMP
● A 5-bit instruction register that supports the additional following public instructions:
– ACCESS_AUX_TAP_NPC
– ACCESS_AUX_TAP_ONCE
– ACCESS_AUX_TAP_eTPU
– ACCESS_CENSOR
● 3 test data registers to support JTAG Boundary Scan mode
– Bypass register
– Boundary scan register
– Device identification register
● A TAP controller state machine that controls the operation of the data registers,
instruction register and associated circuitry
● Censorship Inhibit Register
– 64-bit Censorship password register
– If the external tool writes a 64-bit password that matches the Serial Boot password
stored in the internal flash shadow row, Censorship is disabled until the next
system reset.
device pin. There is a variety of ways this module can be used, including as a component of
an external real-time data acquisition system.
2 Memory Map
2.1 Introduction
Table 2 shows the memory map for the SPC564A74xx, SPC564A80xx. All addresses on the
SPC564A74xx, SPC564A80xx, including those that are reserved, are identified in the table.
The addresses represent the physical addresses assigned to each IP block.
Signal Description
This chapter describes signals that connect off chip. It includes a table of signal properties and the detailed descriptions of signals.
GPIO
VDDEH7
GPIO[206] ETRIG0 GPIO / eQADC Trigger Input G 00 206 I/O(9) — / Up — / Up 143 R4 AA7
Slow(10)
VDDEH7
GPIO[207] ETRIG1 GPIO / eQADC Trigger Input G 00 207 I/O(9) — / Up — / Up 144 P5 Y9
Slow
219 VDDEH7
GPIO[219] GPIO G — (11) I/O — / Up — / Up 122 T6 —
MultiV(12)
Reset / Configuration
VDDEH6 RESET / Up
RESET External Reset Input P — — I I/ Up 97 L16 R22
Slow
VDDEH6
RSTOUT External Reset Output P 01 230 O RSTOUT / Low RSTOUT / High 102 K15 P21
Slow
RM0029
GPIO[208] GPIO G 000 I/O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
PLLCFG1(13) — — — —
IRQ[5] External interrupt request A1 010 I VDDEH6
209 — / Up — / Up — — U20
DSPI_D_SOUT DSPI D data output A2 100 O Medium
GPIO[209] GPIO G 000 I/O
BOOTCFG[1] /
IRQ[3] External Interrupt Request A1 010 I VDDEH6
212 Down — / Down 85 M15 T20
ETRIG3 eQADC Trigger Input A2 100 I Slow
GPIO[212] GPIO G 000 I/O
Signal Description
GPIO[1] GPIO G 00 I/O
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
RM0029
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
17 — / Up — / Up — — T2
DATA21 External data bus A2 100 I/O Medium
GPIO[17] GPIO G 000 I/O
Signal Description
ADDR26 External address bus P 001 I/O
VDDE-EH
DATA26 External data bus A2 100 22 I/O — / Up — / Up — — W1
Medium
GPIO[22] GPIO G 000 I/O
VDDE-EH
DATA27 External data bus A2 100 23 I/O — / Up — / Up — — Y2
Medium
GPIO[23] GPIO G 000 I/O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
100/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
RM0029
ADDR20 External address bus A1 010 32 I/O — / Up — / Up — — AB7
Fast
GPIO[32] GPIO G 000 I/O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDE5
ADDR24 External address bus A1 010 36 I/O — / Up — / Up — — Y6
Fast
GPIO[36] GPIO G 000 I/O
Signal Description
DATA13 External data bus P 001 I/O
VDDE5
ADDR29 External address bus A1 010 41 I/O — / Up — / Up — — Y10
Fast
GPIO[41] GPIO G 000 I/O
101/1740
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
102/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Calibration Bus
VDDE12
CAL_CS0 Calibration chip select P 01 336 O —/— — — —
Fast
RM0029
CAL_ADDR[10] Calibration address bus A 010 338 I/O —/— — — —
Fast
CAL_WE[2]/BE[2] Calibration write/byte enable A2 100 O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Signal Description
CAL_ADDR[22] Calibration address bus P 01 I/O VDDE12
345 —/— — — —
CAL_DATA[22] Calibration data bus A 10 I/O Fast
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDE12
CAL_DATA[0] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[1] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[2] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[3] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[4] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[5] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
RM0029
VDDE12
CAL_DATA[6] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDE12
CAL_DATA[7] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[8] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[9] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[10] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[11] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Doc ID 15177 Rev 8
Fast
VDDE12
CAL_DATA[12] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[13] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[14] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_DATA[15] Calibration data bus P 01 341 I/O — / Up — / Up — — —
Fast
VDDE12
CAL_RD_WR Calibration read/write enable P 01 342 O —/— — — —
Fast
VDDE12
CAL_WE[0]/BE[0] Calibration write/byte enable P 01 342 O —/— — — —
Fast
Signal Description
VDDE12
CAL_WE[1]/BE[1] Calibration write/byte enable P 01 342 O —/— — — —
Fast
VDDE12
CAL_OE Calibration output enable P 01 342 O —/— — — —
Fast
105/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Out Fast
NEXUS
VDDEH7
EVTI Nexus event in P 01 231 I — / Up EVTI / Up 116 E15 F21
MultiV(12),(14)
VDDEH7
EVTO Nexus event out P 01 227 O MultiV(12),(14), — EVTO / — 120 D15 F22
(15)
VRC33
MCKO Nexus message clock out P — 21911 O — MCKO / — 14 F15 G20
Fast
VRC33
MDO0(16) Nexus message data out P 01 220 O — MDO[0] / — 17 A14 B20
Fast
RM0029
VRC33
MDO1(16) Nexus message data out P 01 221 O — MDO[1] / — 18 B14 C19
Fast
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VRC33
MDO2(16) Nexus message data out P 01 222 O — MDO[2] / — 19 A13 C18
Fast
VRC33
MDO3(16) Nexus message data out P 01 223 O — MDO[3] / — 20 B13 D18
Fast
Signal Description
ETPUA27_O(8) eTPU A channel (output only) A1 10 81 O — —/— 134 R10 A18
MultiV(12),(14)
GPIO[81] GPIO G 00 I/O
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDEH7
MSEO[0](16) Nexus message start/end out P 01 224 O — MSEO[0] / — 118 C15 G21
MultiV(12),(14)
VDDEH7
MSEO[1](16) Nexus message start/end out P 01 225 O — MSEO[1] / — 117 E16 G22
MultiV12,14
VDDEH7
RDY Nexus ready output P 01 226 O — — — — G19
MultiV(12),(14)
JTAG
VDDEH7
TDI JTAG test data input P 01 232 I TDI / Up TDI / Up 130 E14 D22
MultiV(12)
VDDEH7
TDO JTAG test data output P 01 228 O TDO / Up TDO / Up 123 F14 E21
MultiV(12)
VDDEH7
TMS JTAG test mode select input P 01 — I TMS / Up TMS / Up 131 D14 E20
MultiV(12)
FlexCAN
CAN_A_TX FlexCAN A TX P 01 O
VDDEH6
SCI_A_TX eSCI A TX A1 10 83 O — / Up — / Up 81 P12 Y17
Slow
GPIO[83] GPIO G 00 I/O
CAN_A_RX FlexCAN A RX P 01 I
VDDEH6
SCI_A_RX eSCI A RX A1 10 84 I — / Up — / Up 82 R12 AA18
Slow
GPIO[84] GPIO G 00 I/O
RM0029
DSPI_C_PCS[3] DSPI C peripheral chip select A1 010 O VDDEH6
85 — / Up — / Up 88 T12 AB18
SCI_C_TX eSCI C TX A2 100 O Slow
GPIO[85] GPIO G 000 I/O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
CAN_C_TX FlexCAN C TX P 01 O
VDDEH6
DSPI_D_PCS[3] DSPI D peripheral chip select A1 10 87 O — / Up — / Up 101 K13 P19
Medium
GPIO[87] GPIO G 00 I/O
CAN_C_RX FlexCAN C RX P 01 I
VDDEH6
DSPI_D_PCS[4] DSPI D peripheral chip select A1 10 88 O — / Up — / Up 98 L14 R20
Slow
GPIO[88] GPIO G 00 I/O
Doc ID 15177 Rev 8
eSCI
SCI_A_TX eSCI A TX P 01 O
VDDEH6
EMIOS13(8) eMIOS channel A1 10 89 O — / Up — / Up 100 J14 N20
Medium
GPIO[89] GPIO G 00 I/O
SCI_A_RX eSCI A RX P 01 I
VDDEH6
EMIOS15(8) eMIOS channel A1 10 90 O — / Up — / Up 99 K14 P20
Medium
GPIO[90] GPIO G 00 I/O
SCI_B_TX eSCI B TX P 01 O
VDDEH6
DSPI_D_PCS[1] DSPI D peripheral chip select A1 10 91 O — / Up — / Up 87 L13 R21
Medium
GPIO[91] GPIO G 00 I/O
SCI_B_RX eSCI B RX P 01 I
VDDEH6
DSPI_D_PCS[5] DSPI D peripheral chip select A1 10 92 O — / Up — / Up 84 M13 T19
Medium
GPIO[92] GPIO G 00 I/O
Signal Description
SCI_C_TX eSCI C TX P 01 O VDDEH6
244 — / Up — / Up — — W18
GPIO[244] GPIO G 00 I/O Medium
DSPI
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
110/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
DSPI_A_SCK(17) — — — —
VDDEH7
DSPI_C_PCS[1] DSPI C peripheral chip select A1 10 93 O — / Up — / Up — — L22
Medium
GPIO[93] GPIO G 00 I/O
DSPI_A_SIN(17) — — — —
VDDEH7
DSPI_C_PCS[2] DSPI C peripheral chip select A1 10 94 O — / Up — / Up — — L21
Medium
GPIO[94] GPIO G 00 I/O
DSPI_A_SOUT(17) — — — —
VDDEH7
DSPI_C_PCS[5] DSPI C peripheral chip select A1 10 95 O — / Up — / Up — — L20
Medium
GPIO[95] GPIO G 00 I/O
DSPI_A_PCS[0](17) — — — —
Doc ID 15177 Rev 8
VDDEH7
DSPI_D_PCS[2] DSPI D peripheral chip select A1 10 96 O — / Up — / Up — — M20
Medium
GPIO[96] GPIO G 00 I/O
DSPI_A_PCS[1](17) — — — —
VDDEH7
DSPI_B_PCS[2] DSPI B peripheral chip select A1 10 97 O — / Up — / Up — — M19
Medium
GPIO[97] GPIO G 00 I/O
CS[2] — — — —
VDDEH7
DSPI_D_SCK SPI clock pin for DSPI module A1 10 98 I/O — / Up — / Up 141 J15 M21
Medium
GPIO[98] GPIO G 00 I/O
CS[3] — — — —
VDDEH7
DSPI_D_SIN DSPI D data input A1 10 99 I — / Up — / Up 142 H13 K19
Medium
GPIO[99] GPIO G 00 I/O
DSPI_A_PCS[4](17) — — —
O VDDEH7
DSPI_D_SOUT DSPI D data output A1 10 100 — / Up — / Up — — N19
I/O Medium
GPIO[100] GPIO G 00
DSPI_A_PCS[5](17) — — —
O VDDEH7
DSPI_B_PCS[3] DSPI B peripheral chip select A1 10 101 — / Up — / Up — — N21
I/O Medium
GPIO[101] GPIO G 00
RM0029
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDEH6
DSPI_D_PCS[2] DSPI D peripheral chip select A1 10 105 O — / Up — / Up 111 G16 J21
Medium
GPIO[105] GPIO G 00 I/O
Signal Description
DSPI_B_PCS[5] DSPI B peripheral chip select P 01 O
VDDEH6
DSPI_C_PCS[0] DSPI C peripheral chip select A1 10 110 I/O — / Up — / Up 104 J13 L19
Medium
GPIO[110] GPIO G 00 I/O
111/1740
eQADC
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
112/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
RM0029
ETPUA19_O(8) eTPU A channel (output only) A2 100 O Medium
SDS eQADC Serial Data Select G 000 I/O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Medium
ETPUA29_O(8) eTPU A channel (output only) A2 100 O
VDDA
AN16 Single-ended Analog Input P — — I I/— AN[16] / — 3 C6 B7
Analog
VDDA
AN17 Single-ended Analog Input P — — I I/— AN[17] / — 2 C4 C6
Analog
VDDA
AN18 Single-ended Analog Input P — — I I/— AN[18] / — 1 D5 D9
Analog
VDDA
AN19 Single-ended Analog Input P — — I I/— AN[19] / — — — B6
Analog
VDDA
AN20 Single-ended Analog Input P — — I I/— AN[20] / — — — C7
Analog
VDDA
AN21 Single-ended Analog Input P — — I I/— AN[21] / — 173 B4 C8
Analog
Signal Description
VDDA
AN22 Single-ended Analog Input P — — I I/— AN[22] / — 161 B8 C11
Analog
VDDA
AN23 Single-ended Analog Input P — — I I/— AN[23] / — 160 C9 B11
Analog
113/1740
VDDA
AN24 Single-ended Analog Input P — — I I/— AN[24] / — 159 D8 D12
Analog
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
114/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDA
AN25 Single-ended Analog Input P — — I I/— AN[25] / — 158 B9 C12
Analog
VDDA
AN26 Single-ended Analog Input P — — I I/— AN[26] / — — — B12
Analog
VDDA
AN27 Single-ended Analog Input P — — I I/— AN[27] / — 157 A10 A12
Analog
VDDA
AN28 Single-ended Analog Input P — — I I/— AN[28] / — 156 B10 A13
Analog
VDDA
AN29 Single-ended Analog Input P — — I I/— AN[29] / — — — D13
Doc ID 15177 Rev 8
Analog
VDDA
AN30 Single-ended Analog Input P — — I I/— AN[30] / — 155 D9 C13
Analog
VDDA
AN31 Single-ended Analog Input P — — I I/— AN[31] / — 154 D10 B13
Analog
VDDA
AN32 Single-ended Analog Input P — — I I/— AN[32] / — 153 C10 B14
Analog
VDDA
AN33 Single-ended Analog Input P — — I I/— AN[33] / — 152 C11 C14
Analog
VDDA
AN34 Single-ended Analog Input P — — I I/— AN[34] / — 151 C5 D14
Analog
VDDA
AN35 Single-ended Analog Input P — — I I/— AN[35] / — 150 D11 A14
Analog
VDDA
AN36 Single-ended Analog Input P — — I I/— AN[36] / — 174 F4 B4
Analog
VDDA
AN37 Single-ended Analog Input P — — I I/— AN[37] / — 175 E3 A4
Analog
RM0029
VDDA
AN38 Single-ended Analog Input P — — I I/— AN[38] / — — — C5
Analog
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDA
AN39 Single-ended Analog Input P — — I I/— AN[39] / — 8 D2 B5
Analog
VDDA
VRH Voltage Reference High P — — I I/— VRH 163 A8 A10
—
VDDA
VRL Voltage Reference Low P — — I I/— VRL 162 A9 A11
—
eTPU2
Doc ID 15177 Rev 8
Signal Description
VDDEH4
ETPUA15_O(8) eTPU A channel (output only) A1 10 117 O — / WKPCFG GPIO / WKPCFG 58 P1 L2
Slow
GPIO[117] GPIO G 00 I/O
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
ETPUA5
eTPU A channel P 0001 I/O
ETPUA17_O(8)
eTPU A channel (output only) A1 0010 O VDDEH4
DSPI_B_SCK_LVD —/ —/
LVDS negative DSPI clock A2 0100 119 O Slow + 54 M4 K4
S- WKPCFG WKPCFG
Flexray TX data enable for ch. B A3 1000 O LVDS
FR_B_TX_EN
GPIO G 0000 I/O
GPIO[119]
ETPUA6
eTPU A channel P 0001 I/O
ETPUA18_O(8)
eTPU A channel (output only) A1 0010 O VDDEH4
DSPI_B_SCK_LVD —/ —/
LVDS positive DSPI clock A2 0100 120 O Medium + 53 L3 J3
S+ WKPCFG WKPCFG
Flexray RX data channel B A3 1000 I LVDS
FR_B_RX
Doc ID 15177 Rev 8
ETPUA7
eTPU A channel P 0001 I/O
ETPUA19_O(8)
eTPU A channel (output only) A1 0010 O VDDEH4
DSPI_B_SOUT_LV —/ —/
LVDS negative DSPI data out A2 0100 121 O Slow + 52 K3 K2
DS- WKPCFG WKPCFG
eTPU A channel (output only) A3 1000 O LVDS
ETPUA6_O(8)
GPIO G 0000 I/O
GPIO[121]
ETPUA8
eTPU A channel P 001 I/O
ETPUA20_O(8) VDDEH4
eTPU A channel (output only) A1 010 O —/ —/
DSPI_B_SOUT_LV 122 Slow + 51 N1 K1
LVDS positive DSPI data out A2 100 O WKPCFG WKPCFG
DS+ LVDS
GPIO G 000 I/O
GPIO[122]
RM0029
RCH1_C Reaction channel 1C A2 100 O Slow WKPCFG WKPCFG
GPIO[124] GPIO G 000 I/O
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Signal Description
ETPUA17 eTPU A channel P 001 I/O
DSPI_D_PCS[2] DSPI D peripheral chip select A1 010 O VDDEH1 —/ —/
131 38 H3 F3
RCH3_A Reaction channel 3A A2 100 O Slow WKPCFG WKPCFG
GPIO[131] GPIO G 000 I/O
117/1740
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
118/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDEH1 —/ —/
RCH0_B Reaction channel 0B A2 0100 134 O 35 J1 G1
Slow WKPCFG WKPCFG
FR_A_TX Flexray TX data channel A A3 1000 O
GPIO[134] GPIO G 0000 I/O
RM0029
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
ETPUA24
eTPU A channel P 001 I/O
IRQ[12] VDDEH1
External interrupt request A1 010 I —/ —/
DSPI_C_SCK_LVD 138 Slow + 28 G1 E1
LVDS negative DSPI clock A2 100 O WKPCFG WKPCFG
S- LVDS
GPIO G 000 I/O
GPIO[138]
ETPUA25
eTPU A channel P 001 I/O
IRQ[13] VDDEH1
External interrupt request A1 010 I —/ —/
DSPI_C_SCK_LVD 139 Medium + 27 G3 E3
LVDS positive DSPI clock A2 100 O WKPCFG WKPCFG
S+ LVDS
GPIO G 000 I/O
GPIO[139]
Doc ID 15177 Rev 8
ETPUA26
eTPU A channel P 001 I/O
IRQ[14] VDDEH1
External interrupt request A1 010 I —/ —/
DSPI_C_SOUT_LV 140 Slow + 26 F3 D3
LVDS negative DSPI data out A2 100 O WKPCFG WKPCFG
DS- LVDS
GPIO G 000 I/O
GPIO[140]
ETPUA27
eTPU A channel P 0001 I/O
IRQ[15]
External interrupt request A1 0010 I VDDEH1
DSPI_C_SOUT_LV —/ —/
LVDS positive DSPI data out A2 0100 141 O Slow + 25 G2 E2
DS+ WKPCFG WKPCFG
DSPI data out A3 1000 O LVDS
DSPI_B_SOUT
GPIO G 0000 I/O
GPIO[141]
Signal Description
ETPUA29 eTPU A channel P 001 I/O
DSPI_C_PCS[2] DSPI C peripheral chip select A1 010 O VDDEH1 —/ —/
143 23 F2 D2
RCH5_C Reaction channel 5C A2 100 O Medium WKPCFG WKPCFG
GPIO[143] GPIO G 000 I/O
119/1740
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
120/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
eMIOS
Doc ID 15177 Rev 8
RM0029
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Signal Description
GPIO[190] GPIO G 000 I/O
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
RM0029
Clock Synthesizer
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
VDDEH6
XTAL Crystal oscillator output P 01 — O — — 93 P16 V22
Analog
VDDE5
CLKOUT System clock output P 01 229 O — CLKOUT — — AA20
Fast
VDDE5
ENGCLK Engineering clock output P 01 214 O — ENGCLK — T14 AB21
Fast
Power / Ground
Doc ID 15177 Rev 8
Signal Description
— — I — I/— VSSA1 — A5 A15, B15
voltage
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
33,
B1, B16, A2, A20, B3,
45,
C2, D3, C4, C22, D5,
62,
Core supply for input or E4, N5, V19, W5,
VDD — — I 1.2 V I/— VDD 103,
decoupling P4, P13, W20, Y4, Y21,
132,
R3, R14, AA3, AA22,
149,
T2, T15 AB2
176
VDDE-EH External supply for EBI interfaces — — I 3.0 V - 5 V I/— VDDE-EH — — R3, W2
RM0029
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
RM0029
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
Signal Description
125/1740
Table 3. SPC564A74xx, SPC564A80xx signal properties (continued)
126/1740
Signal Description
PCR Status(7) Package pin #
P I/O (5)
(1) PA PCR Voltage /
Name Function A (4)
Field Type Pad Type(6) After
G(2) (3) During Reset 176 208 324
Reset
A1, A16,
B2, B15, A1, A22, B2,
B21, C3, C20,
C3, C14,
D4, D19, J9,
D4, D13,
15, J10, J11, J12,
29, G7, G8, J13, K9, K10,
43, G9, K11, K12, K13,
57, G10, K14, L9, L10,
72, H7, H8, L11, L12, L13,
90, H9, H10, L14, M11,
Doc ID 15177 Rev 8
1. For each pin in the table, each line in the Function column is a separate function of the pin. For all I/O pins the selection of primary pin function or secondary function or
GPIO is done in the SIU except where explicitly noted. See the Signal details table for a description of each signal.
2. The P/A/G column indicates the position a signal occupies in the muxing order for a pin—Primary, Alternate 1, Alternate 2, Alternate 3, or GPIO. Signals are selected by
setting the PA field value in the appropriate PCR register in the SIU module. The PA field values are as follows: P - 0b0001, A1 - 0b0010, A2 - 0b0100, A3 - 0b1000, or G -
0b0000. Depending on the register, the PA field size can vary in length. For PA fields having fewer than four bits, remove the appropriate number of leading zeroes from
these values.
3. The Pad Configuration Register (PCR) PA field is used by software to select pin function.
4. Values in the PCR No. column refer to registers in the System Integration Unit (SIU). The actual register name is “SIU_PCR” suffixed by the PCR number. For example,
PCR[190] refers to the SIU register named SIU_PCR190.
5. The VDDE and VDDEH supply inputs are broken into segments. Each segment of slow I/O pins (VDDEH) may have a separate supply in the 3.3 V to 5.0 V range (-
10%/+5%). Each segment of fast I/O (VDDE) may have a separate supply in the 1.8 V to 3.3 V range (+/- 10%).
RM0029
6. See Table 4 for details on pad types.
RM0029
7. The Status During Reset pin is sampled after the internal POR is negated. Prior to exiting POR, the signal has a high impedance. Terminology is O - output, I - input, Up -
weak pull up enabled, Down - weak pull down enabled, Low - output driven low, High - output driven high. A dash for the function in this column denotes that both the input
and output buffer are turned off. The signal name to the left or right of the slash indicates the pin is enabled.
8. Output only.
9. When used as ETRIG, this pin must be configured as an input. For GPIO it can be configured either as an input or output.
10. Maximum frequency is 50 kHz.
11. The SIU_PCR219 register is unusual in that it controls pads for two separate device pins: GPIO[219] and MCKO. Section , Pad Configuration Register 219 (SIU_PCR219)”.
12. Multivoltage pads are automatically configured in low swing mode when a JTAG or Nexus function is selected, otherwise they are high swing.
13. On LQFP176 and LBGA208 packages, this pin is tied low internally.
14. Nexus multivoltage pads default to 5 V operation until the Nexus module is enabled.
15. EVTO should be clamped to 3.3 V to prevent possible damage to external tools that only support 3.3 V.
16. Do not connect pin directly to a power supply or ground.
17. This signal name is used to support legacy naming.
18. During and just after POR negates, internal pull resistors can be enabled, resulting in as much as 4 mA of current draw. The pull resistors are disabled when the system
clock propagates through the device.
Doc ID 15177 Rev 8
19. For pins AN12-AN15, if the analog features are used the VDDEH7 input pins should be tied to VDDA because that segment must meet the VDDA specification to support
analog input function.
20. Do not use VRC33 to drive external circuits.
21. VDDA0 and VDDA1 are shorted together internally in BGA packages. In the QFP package the two pads are double bonded on one pin called VDDA.
22. VSSA0 and VSSA1 are shorted together internally in BGA packages. In the QFP package the two pads are double bonded on one pin called VSSA.
23. VDDE2 and VDDE3 are shorted together in all production packages.
24. VDDE2 and VDDE3 are shorted together in all production packages.
25. VDDEH1A, VDDEH1B, and VDDEH1AB are shorted together in all production packages. The separation of the signal names is present to support legacy naming, however
they should be considered as the same signal in this document.
26. VDDEH4, VDDEH4A, VDDEH4B, and VDDEH4AB are shorted together in all production packages. The separation of the signal names is present to support legacy
naming, however they should be considered as the same signal in this document.
27. VDDEH6, VDDEH6A, VDDEH6B, and VDDEH6AB are shorted together in all production packages. The separation of the signal names is present to support legacy
naming, however they should be considered as the same signal in this document.
Signal Description
127/1740
Signal Description RM0029
LVDS —
SIN_B
SIN_C DSPI_B - DSPI_D DSPI data in
SIN_D
SOUT_B
SOUT_C DSPI_B - DSPI_D DSPI data out
SOUT_D
The ADDR[10:31] signals specify the physical address of the
bus transaction.
FR_A_TX_EN
FlexRay FlexRay transmit enable (Channels A, B)
FR_B_TX_EN
FR_A_TX
FlexRay Flexray transmit (Channels A, B)
FR_B_TX
JCOMP JTAG Enables the JTAG TAP controller.
TCK JTAG Clock input for the on-chip test logic.
TDI JTAG Serial test instruction and data input for the on-chip test logic.
TDO JTAG Serial test data output for the on-chip test logic.
TMS JTAG Controls test mode operations for the on-chip test logic.
EVTI is an input that is read on the negation of RESET to
enable or disable the Nexus Debug port. After reset, the EVTI
EVTI Nexus pin is used to initiate program synchronization messages or
generate a breakpoint.
The IRQ[0:15] pins connect to the SIU IRQ inputs. IMUX Select
Register 1 is used to select the IRQ[0:15] pins as inputs to the
IRQs.
IRQ[0:5] SIU - External
IRQ[7:15] Interrupts See Section 16.6.19: External IRQ Input Select Register
(SIU_EIISR) for more detail.
SIU - External
NMI Non-Maskable Interrupt
Interrupts
Configurable general purpose I/O pins. Each GPIO input and
output is separately controlled by an 8-bit input (GPDI) or
GPIO[0:3] output (GPDO) register. Additionally, each GPIO pins is
configured using a dedicated SIU_PCR register.
GPIO[8:43]
GPIO[62:65]
The GPIO pins are generally multiplexed with other I/O pin
GPIO[68:70] functions.
GPIO[75:145] SIU - GPIO
GPIO[179:204]
See the following sections for more information:
GPIO[208:213] – Section 16.6.15: Pad Configuration Registers (SIU_PCR)
GPIO[219] – Section 16.6.16: GPIO Pin Data Output Registers
GPIO[244:245] (SIU_GPDO0_3 – SIU_GPDO412_413)
– Section 16.6.17: GPIO Pin Data Input Registers
(SIU_GPDI0_3 – SIU_GPDI_232)
The RESET pin is an active low input. The RESET pin is
asserted by an external device during a power-on or external
reset. The internal reset signal asserts only if the RESET pin
asserts for 10 clock cycles. Assertion of the RESET pin while
the device is in reset causes the reset cycle to start over.
RESET SIU - Reset
The RESET pin has a glitch detector which detects spikes
greater than two clock cycles in duration that fall below the
switch point of the input buffer logic of the VDDEH input pins.
The switch point lies between the maximum VIL and minimum
VIH specifications for the VDDEH input pins.
VDDE2 1.8 V - 3.3 V CS0, CS1, CS2, CS3,RD_WR, BDIP, WE0, WE1, OE, TS, TA
VDDE3 1.8 V - 3.3 V ADDR12, ADDR13, ADDR14, ADDR15
DATA0, DATA1, DATA2, DATA3, DATA4, DATA5, DATA6,
VDDE5 1.8 V - 3.3 V DATA7, DATA8, DATA9, DATA10, DATA11, DATA12,
DATA13, DATA14, DATA15, CLKOUT, ENGCLK
CAL_CS0, CAL_CS2, CAL_CS3 CAL_ADDR12,
CAL_ADDR13, CAL_ADDR14, CAL_ADDR15,
CAL_ADDR16, CAL_ADDR17, CAL_ADDR18,
CAL_ADDR19, CAL_ADDR20, CAL_ADDR21,
CAL_ADDR22, CAL_ADDR23, CAL_ADDR24,
CAL_ADDR25, CAL_ADDR26, CAL_ADDR27,
VDDE12 1.8 V - 3.3 V
CAL_ADDR28, CAL_ADDR29, CAL_ADDR30, CAL_DATA0,
CAL_DATA1, CAL_DATA2, CAL_DATA3, CAL_DATA4,
CAL_DATA5, CAL_DATA6, CAL_DATA7, CAL_DATA8,
CAL_DATA9, CAL_DATA10, CAL_DATA11, CAL_DATA12,
CAL_DATA13, CAL_DATA14, CAL_DATA15, CAL_RD_WR,
CAL_WE0, CAL_WE1, CAL_OE, CAL_TS
ADDR16, ADDR17, ADDR18, ADDR19, ADDR20, ADDR21,
VDDE-EH 3.0 V - 5 V ADDR22, ADDR23, ADDR24, ADDR25, ADDR26, ADDR27,
ADDR28, ADDR29, ADDR30, ADDR31
ETPUA10, ETPUA11, ETPUA12, ETPUA13, ETPUA14,
ETPUA15, ETPUA16, ETPUA17, ETPUA18, ETPUA19,
VDDEH1 3.3 V - 5.0 V ETPUA20, ETPUA21, ETPUA22, ETPUA23, ETPUA24,
ETPUA25, ETPUA26, ETPUA27, ETPUA28, ETPUA29,
ETPUA30, ETPUA31
VDDREG 5V —
VRCCTL — —
VDDPLL 1.2 V —
0.95–1.2 V
(unregulated —
VSTBY mode)
2.0–5.5 V
—
(regulated mode)
VSS — —
1. Do not use VRC33 to drive external circuits.
4 Resets
Note: Throughout this text the phrase “reset configuration pins” is used to refer to WKPCFG,
BOOTCFG, and PLLREF pins.
Not all packages have BOOTCFG[0]. In this case, BOOTCFG[0] is sampled as 0b0.
The Reset Status Register (SIU_RSR) gives the source, or sources, of the last reset and
indicates whether a glitch has occurred on the RESET pin. The SIU_RSR is updated for all
reset sources except JTAG reset.
All reset sources initiate execution of the Boot Assist Module (BAM) program with the
exception of the Software External Reset.
The Reset Configuration Half Word (RCHW) determines the MCU configuration after reset.
The RCHW is stored in internal flash, or a default configuration is used. During reset, the
RCHW is read from internal flash memory. The BOOTCFG[0:1](c) pins are defined in
Chapter 16: System Integration Unit (SIU). The BAM program reads the value of the
BOOTCFG[0:1] pins from field SIU_RSR[BOOTCFG], then reads the RCHW from the
specified location, and then uses the RCHW value to determine and execute the specified
boot procedure. Note: the reset controller latches the value on the BOOTCFG input to the
SIU four clock cycles prior to the negation of RSTOUT.
4.3.1 RESET
The RESET pin is an active low input. The RESET pin must be asserted by an external
device during a power-on or whenever an external reset is required. The internal reset
signal asserts only if the RESET pin asserts for 10 clock cycles. Assertion of the RESET pin
while the reset state machine is already processing a reset causes the reset cycle to start
over. The RESET pin has a glitch detector which detects spikes greater than two clocks in
duration that fall below the switch point of the input buffer logic of the VDDEH input pins.
The switch point lies between the maximum VIL and minimum VIH specifications for the
VDDEH input pins. Figure 2 and Figure 3 show logic flows of the reset state machine on
assertion of RESET.
4.3.2 RSTOUT
The RSTOUT pin is an active low output that uses a push/pull configuration. The RSTOUT
pin is driven to the low state by the MCU for all internal and external reset sources.
Depending on the PLL configuration, External Reference or Crystal Mode, the RSTOUT pin
is asserted after a delay defined in Table 9, plus four cycles for sampling of the configuration
pins.
The RSTOUT pin can also be asserted by a write to the SER bit of the System Reset
Control Register (SIU_SRCR). Asserting SIU_SRCR[SER], the RSTOUT duration will follow
the value specified in Table 9.
F
RESET
Asserted?
Wait 2
Clock Cycles
F
RESET
Asserted?
Set Latch,
Wait 8 Clock
Cycles
F
RESET
Set RGF Bit
Asserted?
To entry point in
A
internal reset flow
T T T
Assert Internal
Resets and Assert
RSTOUT
RSTOUT
Apply
WKPCFG Pin A Wait CNT1
Clock Cycles
Entry point from
external reset flow
and POR
Reset F Update Reset
Request Status Register
Negated?
T
Negate Internal
Resets and
RSTOUT
F
Crystal Stable?
Wait CNT1
Clock Cycles
Latch
WKPCFG Pin
Wait 4
Clock Cycles
NOTES:
1. The clock count CNT depends on the reset source and type of clock reference. Please refer to Table 9.
associated bits/fields are updated in the SIU_RSR. In addition, SIU_RSR[LLRS] is set, and
all other reset status bits in the SIU_RSR are cleared. Refer to Section 17.5.3, Lock
detection, for more information on loss of lock.
state of the RSTOUT pin is determined by the JTAG instruction. The value on the WKPCFG
pin is applied at the assertion of the internal reset signal, as is the PLLREF value. After the
JTAG reset request is negated, the reset controller waits for a predetermined number of
clock cycles (refer to Section 4.3.2, RSTOUT). Once the clock count finishes the WKPCFG
and BOOTCFG[0:1] pins are sampled, and the associated bits/fields are updated in the
SIU_RSR. The reset status bits in the SIU_RSR are unaffected. Refer to 36, JTAG
Controller (JTAGC), for more information.
after the RCHW must be programmed with the user application’s starting address. The BAM
passes control to the user application at this starting address.
On every reset except the Software External Reset (SER), in internal or external boot
modes, the BAM attempts to read the RCHW from internal or external memory respectively.
The locations for the RCHW are given in Table 10. For internal boot, the predefined
locations are searched in the order given in the table. If a valid RCHW is not found in
internal boot mode or in external boot mode, the BAM initiates the serial boot mode. Note
that in serial boot mode, a user defined start address must still be supplied as part of the
download protocol. Refer to the BAM Chapter for complete details.
External 0x0000_0000
0x0000_0000
0x0000_4000
0x0001_0000
Internal
0x0001_C000
0x0002_0000
0x0003_0000
RCHW structure
When booting from the external flash device, the RCHW must reside in the first 16 bits of
memory.
Reserved
0–3
These bit values are ignored when the halfword is read. Program to 0 for future compatibility.
Software watchdog timer enable
This bit determines if the software watchdog timer is enabled after passing control to the user
SWT application code.
0 Disable software watchdog timer
1 Enable software watchdog timer after reset. The timeout period is 261,600 system clocks.
MCU core watchdog timer enable
This bit determines if the core software watchdog timer is enabled.after passing control to the user
WTE application code.
0 Disable core software watchdog timer
1 Enable core watchdog timer after reset. The timeout period is 2.5*217 system clocks.
Port size
Defines the width of the data bus connected to the memory on D_CS0. After system reset, the BAM
changes D_CS0 to a 16-bit port to fetch the RCHW from either 16- or 32-bit external memories.
Then the BAM reconfigures the EBI as a 16- or 32-bit port, depending on this bit.
PS0
0 32-bit D_CS0 port size
1 16-bit D_CS0 port size
Used in development bus boot modes only (not available on all packages). Do not clear this bit if the device
only has a 16-bit data bus.
When enabled by RCHW[SWT, WTE] bits, the watchdog timeout periods are as shown in
Table 12.
Note the following:
● The SWT clock source is directly from the crystal oscillator. The core WD is clocked by
the PLL.
● The core WD timeouts reported here correspond to the PLL settings after reset. Core
WD timeouts will change as soon as the PLL is programmed with different multipliers.
8 40.1 32.7
12 27.3 21.8
16 20.5 16.35
20 16.4 13.08
40 8.2 6.54
1. 327,680 system clocks
2. 261,600 system clocks
the WKPCFG and BOOTCFG[0:1] pins are latched four clock cycles before the negation of
the RSTOUT pin and stored in the SIU_RSR.
VDD
POR
RESET
(4 clock cycles)
RSTOUT
NOTE:
1. The clock count CNT depends on the reset source and type of clock reference. Please refer to Table 9.
5.1 Overview
This section gives a brief overview of the operating modes of this device.
Standby mode
In this mode, the power is removed from all functions except the standby RAM. Standby
mode is entered by removing all power supplies except the one on the VSTBY pin. The
device is recovered from the standby mode when powered again; see Chapter 4: Resets for
more information.
5.3.1 Overview
This section describes different sources for the system clocks. The SPC564A74xx,
SPC564A80xx clocking architecture consists of the following:
● On-chip MHz oscillator: Range (4–40 MHz)
● Relaxation oscillator (RCOSC): 16 MHz
● Phase-locked loop (PLL): VCO range (256–512 MHz)
● PLLREF top level pin to control PLL reference
● Clock quality monitor
● System Clock Divider (SYSDIV) used to further reduce the system clock frequency
● Register to control system clock source and programming of PLL parameter
● Clock gating for individual modules controlled by either SIU_HLT register or module’s
MDIS register bit
clkcfg[0] bypass_sysdiv
siu_system_div[1:0]
0
EXTAL
1
1
CLKIN SYSDIV
XTAL OSC 0
XTAL FMPLL PHI /2, /4, /8, /16 system
clock
PLLREF IDF NDIV ODF PD Lock
loss of loss of
VCO Reference
RCOSC
Clock Quality Monitor
(CQM)
CLKIN PHI
/IDF Charge pump
PFD VCO /ODF
Low Pass Filter
PHI1
/6
/NDIV
FM
Controller FMPLL
Figure 7. FMPLL
Upon Reset, the system clock source is the oscillator clock with either crystal as reference
or bypassed based on the PLLREF pin value driven during system reset.
Please note the following:
1. RCOSC is never used as a source of system clock.
2. PHI1 output from PLL is never used as a source of system clock. It is used as one of
the clock sources for the FlexRay module.
3. See the FMPLL chapter for details on FMPLL operation.
The reset state of the FMPLL is enabled with the pre-divider set such that it inhibits the clock
to the PLL Phase detector, making the VCO run within its free-running frequency range of
25 MHz to 125 MHz, unconnected from the system clock (since bypass is the default mode
at reset). If using crystal reference, after power-on reset the Clock Quality Monitor (CQM)
inhibits the system clock and keep system reset asserted while the crystal oscillator has not
stabilized. The PLLREF pin must be kept stable during the whole period while system reset
is asserted.
clkcfg[0]
bypass_sysdiv
siu_system_div[1:0]
1
EXTAL
1
0
CLKIN SYSDIV
XTAL OSC 0 FMPLL
XTAL PHI /2, /4, /8, /16 system
clock
PLLREF IDF NDIV ODF PD Lock
loss of loss of
VCO Reference
RCOSC
Clock Quality Monitor
(CQM)
clkcfg[0]
bypass_sysdiv
siu_system_div[1:0]
1
EXTAL
1
0
CLKIN SYSDIV
XTAL OSC 0 FMPLL
XTAL PHI /2, /4, /8, /16 system
clock
clkcfg[0]
bypass_sysdiv
siu_system_div[1:0]
1
EXTAL
1
0
CLKIN SYSDIV
XTAL OSC 0 FMPLL
XTAL PHI /2, /4, /8, /16 system
clock
clkcfg[0]
bypass_sysdiv
siu_system_div[1:0]
1
EXTAL
1
0
CLKIN SYSDIV
XTAL OSC 0 FMPLL
XTAL PHI /2, /4, /8, /16 system
clock
implemented in some of the IP modules, which allows software to disable the non-memory-
mapped portions of the modules by setting the module disable (MDIS(d)) bits in the registers
within the modules. The second tier is provided by the SIU_HLT register, which can be used
to halt the clock of both memory-mapped and non-memory-mapped portions of each
module. The third tier is provided by the WAIT instruction of the Power Architecture
instruction set, which controls the clock gating of the CPU itself. Figure 12 illustrates how
the MDIS and halt bits affect the clocks to the modules.
IP
IP Inactive
SIU
ipg_stop_ack
ipg_stop
HLT
HLTACK
d. For compatibility with legacy devices, the default value of MDIS bit is zero.
The modules that implement the MDIS function are listed in Table 14, along with the
registers and bits that disable each module. The software controlled clocks are enabled
when the CPU comes out of reset.
Note: To gate the CPU clock you need to first program the SIU_HLT register bit assigned for CPU
and then execute the CPU WAIT instruction.
The CPU recovers from the halted state when one of the following events happens:
● A valid pending interrupt is detected by the core
● A request to enter debug mode is made by setting the DR bit in the OnCE control
register (OCR)
● The processor is in a debug session
● A request to enable the CPU clock input has been made by setting the WKUP bit in the
OCR
When one of these events is detected, the CPU asserts an asynchronous output signal that
re-enables the clock to the CPU so that it can exit the stopped state. Typically, the wake-up
interrupt request will come from one of three sources: periodic interval timer (PIT) interrupt,
external pin interrupt or CAN wake-up interrupt.
When the clock to the CPU is gated, the clocks to the platform, the system RAM and the
flash memory are also gated. The platform logic includes the cross-bar, peripheral bridge,
DMA and flash memory controller. Note that the interrupt controller (INTC) and the SIU are
not clock gated to allow interrupts to be used to recover the CPU halt state.
Clock dividers
The MCU provides five clock dividers:
● System Clock Divider (SYSDIV)
● External Bus Clock Divider (CLKOUT-DIV)
● Nexus Message Clock Divider (MCKO-DIV)
● Engineering Clock Divider (ENGDIV)
● FlexCAN clock divider (CAN2:1)
6.1 Introduction
The SPC564A74xx, SPC564A80xx contains several features that can influence the overall
level of performance provided by the device.
Some of these features may be initialized upon negation of reset either by a software
program called the Boot Assist Module (BAM), by a hardware state machine or by
appropriate default register settings. Although the device exits the reset state into a
functional state it does not necessarily have the default optimum performance settings for
any given application.
This chapter provides guidance for users to fully optimize their application to achieve the
highest possible performance from the SPC564A74xx, SPC564A80xx. It provides a
description of the areas that should be focused on when optimizing an application for
performance by describing the features and recommending settings to be applied. It focuses
on hardware configurations although certain aspects of the application software such as
compiler settings and optimizations will be discussed.
6.2 Features
The SPC564A74xx, SPC564A80xx has the following hardware features that can be
configured to impact the overall performance of the device:
● Branch Prediction
– Branch Target Buffer
– Branch Prediction Control
● Frequency-modulated PLL
● Flash Bus Interface Unit
– Flash access wait state and address pipelining control
– Flash instruction prefetching
– Flash data prefetching
● Crossbar switch
● System Cache
– Instruction Cache
● Memory Management Unit
Further application level features can impact the application performance:
● Hardware Single Precision Floating point
● Signal Processing Extension (SPE-APU)
● Variable Length Encoding (VLE)
● Compiler optimizations
Further factors that impact the overall application performance are the use of the intelligent
peripherals:
● Use of DMA rather than CPU to transfer data efficiently
● Use of DMA service requests rather than CPU interrupts to avoid software polling
● Off-loading tasks from the CPU to the eTPU2 or eDMA
● Careful allocation of cache usage for code and data ranges, particularly when using
with external memories.
Different items in this list will have different performance impacts in a real system. Features
like the system cache, the FMPLL and the flash access times tend to provide the most
significant performance impacts in terms of hardware settings.
The subsequent sections in this chapter describe how to configure and use these features.
Recommended configuration
By default, this BTB is disabled following negation of reset. It is controlled by the Branch
Unit Control and Status Register (BUCSR). The BTB’s contents should be flushed and
invalidated by writing BUCSR[BBFI] = 1, and it may be enabled by subsequently writing
BUCSR[BPEN] = 1.
Additional control is available in BUCSR[BPRED] and BUCSR[BALLOC] to control whether
forward or backward branches (or both) are candidates for entry into the BTB, and thus for
branch prediction. By default the BUCSR[BPRED] and BUCSR[BALLOC] fields are set to
0b00, which enables forward and backward branch prediction. It is recommended to not
disable branch prediction although for extremely fine tuning of a given application the
optimum setting of BUCSR[BPRED] and BUCSR[BALLOC] should be assessed.
.
BPRED
BPEN
BBFI
0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 1013; Read/Write; Reset - 0x0
Further details of the BUCSR can be found in the e200z4 Power Architecture® Core
Reference Manual.
Recommended configuration
The default operating frequency of the SPC564A74xx, SPC564A80xx device is 2 to 3 times
the crystal reference frequency depending on the state of the PLL configuration pins as
reset negates. Typically, the system frequency is increased shortly after reset negates to
provide acceptable performance. 17, Frequency-modulated phase locked loop (FMPLL),
Recommended configuration
As the operating frequency of the device is set by configuring the FMPLL (see Section 6.3.2,
Frequency-modulated PLL), the number of cycles required to access the internal array
should be configured accordingly. Note that the Flash BIUCRx registers cannot be altered
by code executing from the Flash array. Code for configuring the Flash should be executed
from a separate memory array i.e copied to and executed from system RAM.
Section , Bus Interface Unit Configuration Register (BIUCR), documents the register fields
used to configure flash wait state settings. The “Platform flash controller electrical
characteristics” section of the device data sheet contains the specific values for the flash
wait state settings for a given operating frequency. This also provides recommendations for
the prefetch buffer settings. Note that the BIUCRx settings may vary between revisions of
the SPC564A74xx, SPC564A80xx.
The main goal of the XBAR is to increase overall system performance by allowing multiple
masters to communicate concurrently with multiple slaves. In order to maximize data
throughput it is essential to keep arbitration delays to a minimum. The configuration of the
crossbar can have implications for the performance of a system and particular care should
be taken when assigning master priorities in a fixed priority application. Further, by correctly
parking saves on relevant masters the initial access times to the slaves can be minimized by
negating any initial arbitration penalties.
Recommended configuration
The specific settings for a given situation are application dependent and thus should be
assessed by the user. However, some general guidelines are available.
Optimal XBAR settings are application dependent, but in e200z4/7 (Harvard configuration)
based devices assigning the CPU data bus to have highest priority and parking the slave
port associated with system RAM on this master generally provides the best overall
performance.
To reconfigure the XBAR as described on the SPC564A74xx, SPC564A80xx, write the
following registers:
1. XBAR_SGPCR2 = 0x0000_0001. This parks slave 2 (internal SRAM) on master port 1
(CPU data bus).
2. Write XBAR_MPR0 = 0x5432_0001. This sets slave port 0 (Flash) to give the master
port 1 (CPU data bus) highest priority.
On the e200z4 based devices it may also be beneficial to assign the eDMA to have highest
priority for the Flash slave port depending upon the application.
More details of the XBAR register configuration can be found in Section 9.2, XBAR
registers.
6.3.5 Cache
Description
The SPC564A74xx, SPC564A80xx provides an 8 KB Instruction, 2-way or 4-way set-
associative, Harvard cache design with a 32-byte line size. The cache is disabled by default
when reset is negated.
The cache improves system performance by providing low-latency instructions to the
e200z4 instruction pipelines, which decouples processor performance from system memory
performance. There are several stages to enabling the cache. Not only does the cache itself
have to be invalidated then enabled, but memory regions upon which it can operate must be
configured in the MMU to permit cache access.
Recommended configuration
The exact usage of cache is application dependent but some general guidelines for using
cache to improve performance in a typical application are listed below:
● Enable instruction cache for all internal and external memories that code is being
executed from.
● Consider locking critical performance routines in cache.
The process of enabling the instruction cache involves first invalidating the cache (by setting
L1CSR1[ICINV]) then when invalidation is completed (L1CSR1[ICINV, ICABT] = 0) enabling
the cache (by setting L1CSR1[ICE]).
The L1CSR1 special purpose register is detailed below.For further details of cache
configuration registers, refer to the e200z4 Power Architecture® Core Reference Manual.
ICORG
ICECE
ICLOA
ICEDT
ICABT
ICLFC
ICINV
ICLO
ICEA
ICUL
ICEI
ICE
0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 1011; Read/Write; Reset - 0x0
Note that configuration of the cache has to be performed in conjunction with configuration of
the Memory Management unit. Refer to Section 6.3.6, Memory management unit (MMU).
Recommended configuration
The core uses MMU Assist Registers (MASx) which are special purpose registers to
facilitate reading, writing and searching the Translation Lookaside Buffer (TLB) entries.
These MAS registers are software managed by tlbre, tlbwe, tlbsx, tlbsync, and tlbivax
instructions. Refer to the core reference manual for full details of the MMU and its
configurations.
There are several MMU Assist Register registers (MAS0–3) that require configuring. Details
of these are provided in the e200z4 Power Architecture® Core Reference Manual.
Specifically, the MAS2 register contains the fields to control whether a specified memory
region described by the valid TLB Entry is cache inhibited or whether VLE encoding is valid.
EPN 0 W I M G E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 626; Read/Write
W Write-through required
Cache inhibited
I 0: This page is considered cacheable
1: This page is considered cache-inhibited
M Memory coherence required
G Guarded
E Endianness
Refer to the e200z4 Power Architecture® Core Reference Manual for further details of MMU
configuration registers.
1.2
0.8
Trade-off
0.6
0.4
0.2
Speed optimized
0
0 0.2 0.4 0.6 0.8 1 1.2
Normalized Code Size
Figure 16. Influence of compiler settings on application performance and code size
Note: Data measured using Dhrystone version 2.1 run on a Power Architecture based powertrain
device that uses a standard commercial compiler.
The compiler optimizations do not necessarily have to be applied to the entire application.
Analysis of an application can identify time critical functions that may subsequently be
targeted for performance optimization, without incurring the impact of optimizing the entire
application.
There are several other aspects of the compiler and linker that should be considered. In
particular, the use of Small Data Areas (SDAs, sometimes referred to as Special Data
Areas) can make a significant performance improvement. Refer to compiler documentation
for usage guidelines on Small Data Areas.
UCLE
SPE
WE
ME
PR
CE
DE
DS
EE
FP
RI
IS
0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Read / Write; Reset - 0x0
1. Select the appropriate compiler target and option to generate VLE code.
2. Configure the Memory Management Unit (MMU) to specify VLE attributes for the
relevant MMU pages. Refer to the register description in Section 6.3.6, Memory
management unit (MMU).
VLE-enabled cores run both Power Architecture and VLE instruction encodings on a page
by page basis, with pages defined by the MMU. The reduction is code size is typically
between 25% and 30%.
Use eDMA rather than the core to move data where possible. Most peripherals can generate eDMA requests to
shift data.
– Use eDMA to control movement of commands and results from ADC and to maintain circular buffers in system
memory.
– Create circular buffers so that ADC results can be stored in RAM with no core overhead.
Shift loading from the CPU to the eTPU2 whenever possible.
– The eTPU2 can provide effective CPU off-loading for time and angle based operations.
– The eTPU2 can trigger the ADC directly with no need for CPU interruption.
Avoid software polling and allow peripherals to trigger interrupts or request eDMA servicing.
– Use hardware instead of software vectored interrupts to reduce latency.
– Trigger eDMA requests rather than interrupting the CPU to move data/results.
Configure the external memory interface.
– Enable bursting on the external bus.
– Reduce external bus wait states from default maximum settings.
– Place time critical functions in internal memory.
– Small, but frequently executed routines can be considered as candidates to be locked in cache.
7 e200z4 Core
7.1 Overview
The microcontroller’s cost-efficient e200z4 host processor core is built on the Power
Architecture technology and designed specifically for embedded applications.
The e200z4 is a dual-issue, 32-bit Power Architecture compliant design with 64-bit general
purpose registers (GPRs). Power Architecture floating-point instructions are not supported
by this core in hardware, but are trapped and may be emulated by software.
An Embedded Floating-point (EFPU) APU is provided to support real-time single-precision
embedded numerics operations using the general-purpose registers.
A Signal Processing Extension (SPE) APU is provided to support real-time SIMD fixed point
and single-precision, embedded numerics operations using the general-purpose registers.
All arithmetic instructions that execute in the core operate on data in the general purpose
registers (GPRs). The GPRs have been extended to 64-bits in order to support vector
instructions defined by the SPE APU. These instructions operate on a vector pair of 16-bit or
32-bit data types, and deliver vector and scalar results.
In addition to the base Power Architecture instruction set support, the e200z4 core also
implements the VLE (variable-length encoding) technology, providing improved code
density.
The e200z4 processor integrates a pair of integer execution units, a branch control unit,
instruction fetch unit and load/store unit, and a multi-ported register file capable of
sustaining six read and three write operations per clock. Most integer instructions execute in
a single clock cycle. Branch target prefetching is performed by the branch unit to allow
single-cycle branches in many cases.
The e200z4 contains an 8 KB Instruction Cache as well as a Memory Management Unit. A
Nexus Class 3 module is also integrated.
7.2 Features
Features of the e200z4 core include:
● Dual issue, 32-bit Power Architecture compliant CPU
● Implements the VLE APU for reduced code footprint
● In-order execution and retirement
● Precise exception handling
● Branch processing unit
– Dedicated branch address calculation adder
– Branch target prefetching using 8-entry BTB
● Supports independent instruction and data accesses to different memory subsystems,
such as SRAM and Flash memory via independent Instruction and Data BIUs
● Load/store unit
– 2 cycle load latency
– Fully pipelined
– Big and Little endian support
– Misaligned access support
● 64-bit General Purpose Register file
● 64-bit Instruction bus, 64-bit Data bus
● Memory Management Unit (MMU) with 24-entry fully-associative TLB and multiple
page size support
● 8 KB, 2-way or 4-way Set Associative Instruction Cache
● Signal Processing Extension (SPE1.1) APU supporting SIMD fixed-point operations
using the 64-bit General Purpose Register file.
● Embedded Floating-Point (EFP2) APU supporting scalar and vector SIMD single-
precision floating-point operations, using the 64-bit General Purpose Register file.
● Nexus Class 3 real-time Development Unit
● Power management
– Power saving mode: WAIT
● Process ID manipulation for the MMU using an external tool
The integer execution unit consists of a 32-bit Arithmetic Unit (AU), a Logic Unit (LU), a 32-
bit Barrel shifter (Shifter), a Mask-Insertion Unit (MIU), a Condition Register manipulation
Unit (CRU), a Count-Leading-Zeros unit (CLZ), a 32x32 Hardware Multiplier array, and
result feed-forward hardware. Integer EU1 also supports hardware division.
Most arithmetic and logical operations are executed in a single cycle with the exception of
multiply, which is implemented with a 2-cycle pipelined hardware array, and the divide
instructions. A Count-Leading-Zeros unit operates in a single clock cycle.
The Instruction Unit contains a PC incrementer and dedicated Branch Address adders to
minimize delays during change of flow operations. Sequential prefetching is performed to
ensure a supply of instructions into the execution pipeline. Branch target prefetching using
the BTB is performed to accelerate taken branches. Prefetched instructions are placed into
an 8-entry instruction buffer, with each entry capable of holding a single 32-bit instruction or
a pair of 16-bit instructions.
Branch target addresses are calculated in parallel with branch instruction decode.
Conditional branches, which are not taken execute in a single clock. Branches with
successful BTB target prefetching have an effective execution time of one clock if correctly
predicted.
Memory load and store operations are provided for byte, halfword, word (32-bit), and
doubleword data with automatic zero or sign extension of byte and halfword load data as
well as optional byte reversal of data. These instructions can be pipelined to allow effective
single cycle throughput. Load and store multiple word instructions allow low overhead
context save and restore operations. The load/store unit contains a dedicated effective
address adder to allow effective address generation to be optimized. There is a single load-
to-use bubble for load instructions.
The Condition Register unit supports the condition register (CR) and condition register
operations defined by the Power Architecture technology. The condition register consists of
eight 4-bit fields that reflect the results of certain operations, such as move, integer and
floating-point compare, arithmetic, and logical instructions, and provides a mechanism for
testing and branching.
Vectored and autovectored interrupts are supported by the CPU. Vectored interrupt support
is provided to allow multiple interrupt sources to have unique interrupt handlers invoked with
no software overhead.
The SPE APU supports vector instructions operating on 16 and 32-bit fixed-point data types,
as well as 32-bit IEEE-754 single-precision floating-point formats, and supports single-
precision floating-point operations in a pipelined fashion. The 64-bit general purpose
register file is used for source and destination operands, and there is a unified storage
model for single-precision floating-point data types of 32-bits and the normal integer type.
Low latency fixed-point and floating-point add, subtract, multiply, multiply-add, multiply-sub,
divide, compare, and conversion operations are provided, and most operations can be
pipelined.
CONTROL
OnCE/NEXUS CPU
EXTENDED INST
CONTROL LOGIC CONTROL LOGIC FUNCTIONAL
SPE
UNIT UNIT
INTERFACE DATA
MEMORY
MANAGEMENT LR INTEGER
UNIT CR EXECUTION
SPR CTR GPR
UNITS
XER
ADDRESS
INSTRUCTION BUFFER
32
CONTROL
INSTRUCTION CACHE
EXTERNAL
DATA
SPR
64
INTERFACE DATA
(MTSPR/MFSPR)
CONTROL
PC BRANCH
UNIT UNIT
N
LOAD/
STORE
UNIT
32 64 N
ADDRESS DATA CONTROL
8.1 Introduction
This device includes an enhanced direct memory access controller (eDMA) block. The
eDMA is a second-generation platform block capable of performing complex data
movements through 64 programmable channels with minimal intervention from the host
processor. The hardware microarchitecture includes a DMA engine that performs source
and destination address calculations, and the actual data movement operations, along with
an SRAM-based memory containing the transfer control descriptors (TCD) for the channels.
eDMA SRAM
transfer control descriptor
(TCD)
Slave write address
Slave write data
SRAM TCD0
Slave interface
System bus
TCDn – 1*
eDMA engine
Bus read data
Program model/
channel arbitration
Address
Data path Control
path Slave read data
Bus address
8.1.2 Features
The eDMA has these major features:
● All data movement via dual-address transfers: read from source, write to destination
– Programmable source, destination addresses, transfer size, and support for
enhanced addressing modes
● Both 32- and 64-channel implementation performs complex data transfers with minimal
intervention from a host processor
– 32 bytes of data registers, used as temporary storage to support burst transfers
(refer to SSIZE bit)
– Connections to the crossbar switch for bus mastering the data movement
● Transfer control descriptor organized to support two-deep, nested transfer operations
– An inner data transfer loop defined by a minor byte transfer count
– An outer data transfer loop defined by a major iteration count
● Channel activation via 1 of 3 methods:
– Explicit software initiation
– Initiation via a channel-to-channel linking mechanism for continuous transfers
– Peripheral-paced hardware requests (one per channel)
All three methods require one activation per execution of the minor loop
● Support for fixed-priority and round-robin channel arbitration
● Support for complex data structures
● Support to cancel transfers via software
● Channel completion reported via optional interrupt requests
– 1 interrupt per channel, optionally asserted at completion of major iteration count
– Error terminations are optionally enabled per channel and logically summed
together to form a single error interrupt (32-channel eDMA) or two error interrupts
(64-channel eDMA).
● Support for scatter-gather DMA processing
● Support for complex data structures
● Any channel can be programmed to be suspended by a higher priority channel’s
activation, before completion of a minor loop.
Normal mode
In normal mode, the eDMA is used to transfer data between a source and a destination. The
source and destination can be a memory block or an I/O block capable of operation with the
eDMA.
Debug mode
In debug mode, the eDMA does not accept new transfer requests when its debug input
signal is asserted. If the signal is asserted during transfer of a block of data described by a
minor loop in the current active channel’s TCD, the eDMA continues operation until
completion of the minor loop.
EDMA_BASE
EDMA_CR—eDMA control register on page 8-188 32
(0xFFF4_4000)
EDMA_BASE + 0x0004 EDMA_ESR—eDMA error status register on page 8-191 32
EDMA_ERQRH—eDMA enable request high register
EDMA_BASE + 0x0008 on page 8-194 32
(channels 63–32)
EDMA_ERQRL—eDMA enable request low register
EDMA_BASE + 0x000C on page 8-194 32
(channels 31–00)
EDMA_EEIRLH—eDMA enable error Interpol register
EDMA_BASE + 0x0010 on page 8-195 32
(channels 63–32)
EDMA_EEIRL—eDMA enable error interrupt register
EDMA_BASE + 0x0014 on page 8-195 32
(channels 31–00)
EDMA_BASE + 0x0018 EDMA_SERQR—eDMA set enable request register on page 8-196 8
EDMA_BASE + 0x0019 EDMA_CERQR—eDMA clear enable request register on page 8-197 8
EDMA_BASE + 0x001A EDMA_SEEIR—eDMA set enable error interrupt register on page 8-198 8
EDMA_BASE + 0x001B EDMA_CEEIR—eDMA clear enable error interrupt register on page 8-198 8
EDMA_BASE + 0x001C EDMA_CIRQR—eDMA clear interrupt request register on page 8-199 8
eDMA Enable Error Interrupt Low eDMA Enable Error Interrupt Low
0xFFF4_4014
(EDMA_EEIRL, channels 31–16) (EDMA_EEIRL, Channels 15–00)
eDMA Set Enable eDMA Clear Enable eDMA Set Enable eDMA Clear Enable
0xFFF4_4018 Request Request Error Interrupt Error Interrupt
(EDMA_SERQR) (EDMA_CERQR) (EDMA_SEEIR) (EDMA_CEEIR)
eDMA Clear Interrupt eDMA Clear eDMA Set Start Bit, eDMA Clear Done
0xFFF4_401C Request Error Activate Channel Status Bit
(EDMA_CIRQR) (EDMA_CER) (EDMA_SSBR) (EDMA_CDSBR)
eDMA Interrupt Request High eDMA Interrupt Request High
0xFFF4_4020
(EDMA_IRQRH channels 63–48) (EDMA_IRQRH, Channels 47–32)
eDMA Interrupt Request Low eDMA Interrupt Request Low
0xFFF4_4024
(EDMA_IRQRL, channels 31–16) (EDMA_IRQRL, Channels 15–00)
eDMA Hardware Request Status Low eDMA Hardware Request Status Low
0xFFF4_4034
(EDMA_HRSL, channels 31–16) (EDMA_HRSL, Channels 15–00)
0xFFF4_4038 –
Reserved
0xFFF4_40FC
eDMA Channel 0 eDMA Channel 1 eDMA Channel 2 eDMA Channel 3
0xFFF4_4100 Priority Priority Priority Priority
(EDMA_CPR0) (EDMA_CPR1) (EDMA_CPR2) (EDMA_CPR3)
eDMA Channel 4 eDMA Channel 5 eDMA Channel 6 eDMA Channel 7
0xFFF4_4104 Priority Priority Priority Priority
(EDMA_CPR4) (EDMA_CPR5) (EDMA_CPR6) EDMA_CPR7)
eDMA Channel 8 eDMA Channel 9 eDMA Channel 10 eDMA Channel 11
0xFFF4_4108 Priority Priority Priority Priority
(EDMA_CPR8) (EDMA_CPR9) (EDMA_CPR10) (EDMA_CPR11)
eDMA Channel 12 eDMA Channel 13 eDMA Channel 14 eDMA Channel 15
0xFFF4_410C Priority Priority Priority Priority
(EDMA_CPR12) (EDMA_CPR13) (EDMA_CPR14) (EDMA_CPR15)
eDMA Channel 16 eDMA Channel 17 eDMA Channel 18 eDMA Channel 19
0xFFF4_4110 Priority Priority Priority Priority
(EDMA_CPR16) (EDMA_CPR17) (EDMA_CPR18) (EDMA_CPR19)
eDMA Channel 20 eDMA Channel 21 eDMA Channel 22 eDMA Channel 23
0xFFF4_4114 Priority Priority Priority Priority
(EDMA_CPR16) (EDMA_CPR17) (EDMA_CPR18) (EDMA_CPR19)
eDMA Channel 24 eDMA Channel 25 eDMA Channel 26 eDMA Channel 27
0xFFF4_4118 Priority Priority Priority Priority
(EDMA_CPR16) (EDMA_CPR17) (EDMA_CPR18) (EDMA_CPR19)
eDMA Channel 28 eDMA Channel 29 eDMA Channel 30 eDMA Channel 31
0xFFF4_411C Priority Priority Priority Priority
(EDMA_CPR16) (EDMA_CPR17) (EDMA_CPR18) (EDMA_CPR19)
eDMA Channel 32 eDMA Channel 33 eDMA Channel 34 eDMA Channel 35
0xFFF4_4100 Priority Priority Priority Priority
(EDMA_CPR32) (EDMA_CPR33) (EDMA_CPR34) (EDMA_CPR35)
eDMA Channel 36 eDMA Channel 37 eDMA Channel 38 eDMA Channel 39
0xFFF4_4104 Priority Priority Priority Priority
(EDMA_CPR36) (EDMA_CPR37) (EDMA_CPR38) EDMA_CPR39)
eDMA Channel 40 eDMA Channel 41 eDMA Channel 42 eDMA Channel 43
0xFFF4_4108 Priority Priority Priority Priority
(EDMA_CPR40) (EDMA_CPR41) (EDMA_CPR42) (EDMA_CPR43)
eDMA Channel 44 eDMA Channel 45 eDMA Channel 46 eDMA Channel 47
0xFFF4_410C Priority Priority Priority Priority
(EDMA_CPR44) (EDMA_CPR45) (EDMA_CPR46) (EDMA_CPR47)
eDMA Channel 48 eDMA Channel 49 eDMA Channel 50 eDMA Channel 51
0xFFF4_4110 Priority Priority Priority Priority
(EDMA_CPR48) (EDMA_CPR49) (EDMA_CPR50) (EDMA_CPR51)
Priority Registers (EDMA_CPRn). In round-robin arbitration mode, the channel priorities are
ignored and the channels within each group are cycled through, from channel 15 down to
channel 0,without regard to priority.
The group priorities operate in a similar fashion. In group fixed-priority arbitration mode,
channel service requests in the highest priority group are executed first where priority level 3
(eDMA) is the highest and priority level 0 is the lowest. The group priorities are assigned in
the GRPnPRI fields of the eDMA control register (EDMA_CR). All group priorities must have
unique values prior to any channel service requests occur, otherwise a configuration error is
reported. In group round-robin mode, the group priorities are ignored and the groups are
cycled through, from group 3 (eDMA) down to group 0, without regard to priority.
Minor loop offsets are address offset values added to the final source address (SADDR) or
destination address (DADDR) upon minor loop completion. When minor loop offsets are
enabled, the minor loop offset (MLOFF) is added to the final source address (SADDR) or to
the final destination address (DADDR) or to both addresses prior to the addresses being
written back into the TCD. If the major loop is complete, the minor loop offset is ignored and
the major loop address offsets (SLAST and DLAST_SGA) are used to compute the next
EDMA_TCD[SADDR] and EDMA_TCD[DADDR] values.
When minor loop mapping is enabled (EDMA_CR[EMLM] = 1), TCDn word2 is redefined. A
portion of TCDn word2 is used to specify multiple fields: a source enable bit (SMLOE) to
specify that the minor loop offset should be applied to the source address (SADDR) upon
minor loop completion, a destination enable bit (DMLOE) to specify the minor loop offset
should be applied to the destination address (DADDR) upon minor loop completion, and the
sign extended minor loop offset value (MLOFF). The same offset value (MLOFF) is used for
both source and destination minor loop offsets.
When either of the minor loop offsets is enabled (SMLOE is set or DMLOE is set), the
NBYTES field is reduced to 10 bits. When both minor loop offsets are disabled (SMLOE is
cleared and DMLOE is cleared), the NBYTES field becomes a 30-bit vector.
When minor loop mapping is disabled (EDMA_CR[EMLM] = 0), all 32 bits of TCDn word2
are assigned to the NBYTES field. See Section , Transfer control descriptor (TCD) for more
details.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CX ECX
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
EDBG
ERGA
ERCA
R 0
HALT
HOE
CLM
Reset 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0
Cancel Transfer
0 Normal operation
CX 1 Cancel the remaining data transfer. Stop the executing channel and force the minor loop to be
finished. The cancel takes effect after the last write of the current read/write sequence. The CX bit
clears itself after the cancel has been honored. This cancel retires the channel normally as if the
minor loop was completed.
Error cancel transfer
0 Normal operation
1 Cancel the remaining data transfer in the same fashion as the CX cancel transfer. Stop the
executing channel and force the minor loop to be finished. The cancel takes effect after the last
ECX
write of the current read/write sequence. The ECX bit clears itself after the cancel has been
honored. In addition to cancelling the transfer, the ECX treats the cancel as an error condition;
thus updating the EDMA_ESR register and generating an optional error interrupt. See Section ,
eDMA Error Status Register (EDMA_ESR).
Channel group 3 priority
GRP3PRI
Group 3 priority level when fixed priority group arbitration is enabled.
Channel group 2 priority
GRP2PRI
Group 2 priority level when fixed priority group arbitration is enabled.
Channel group 1 priority
GRP1PRI
Group 1 priority level when fixed priority group arbitration is enabled.
Channel group 0 priority
GRP0PRI
Group 0 priority level when fixed priority group arbitration is enabled.
Enable minor loop mapping
0 Minor loop mapping disabled. TCD Word 2 is defined as a 32-bit nbytes field.
EMLM 1 Minor loop mapping enabled. When set, TCDn Word 2 is redefined to include individual enable
fields, an offset field and the NBYTES field. The individual enable fields allow the minor loop offset
to be applied to the source address, the destination address, or both. The NBYTES field is
reduced when either offset is enabled.
Continuous link mode
0 A minor loop channel link made to itself goes through channel arbitration before being activated
again.
CLM 1 A minor loop channel link made to itself does not go through channel arbitration before being
activated again. Upon minor loop completion, the channel is active again if that channel has a
minor loop channel link enabled and the link channel is itself. This effectively applies the minor
loop offsets and restarts the next minor loop.
Halt DMA operations
0 Normal operation
HALT
1 Stall the start of any new channels. Executing channels are allowed to complete. Channel
execution resumes when the HALT bit is cleared.
Halt on error
0 Normal operation
HOE
1 Any error causes the HALT bit to be set. Subsequently, all service requests are ignored until the
HALT bit is cleared.
A transfer may be cancelled by software via the bit EDMA_CR[CX]. When a cancel transfer
request is recognized, the eDMA engine stops processing the channel. The current read-
write sequence is allowed to finish. If the cancel occurs on the last read-write sequence of a
major or minor loop, the cancel request is discarded and the channel retires normally.
The error cancel transfer is the same as a cancel transfer except the DMAES register is
updated with the cancelled channel number and error cancel bit is set. The TCD of a
cancelled channel has the source address and destination address of the last transfer
saved in the TCD. It is the responsibility of the user to initialize the TCD again should the
channel need to be restarted because the aforementioned fields have been modified by the
eDMA engine and no longer represent the original parameters. When a transfer is cancelled
via the error cancel transfer mechanism (setting EDMA_CR[ECX]), the channel number is
loaded into field EDMA_ESR[ERRCHN] and the bits EDMA_ESR[ECX] and
EDMA_ESR[VLD] are set. In addition, an error interrupt may be generated if enabled. Refer
to Section , eDMA Error Registers (EDMA_ERH, EDMA_ERL).
The occurrence of any type of error causes the DMA engine to stop the active channel and
the appropriate channel bit in the eDMA error register to be asserted. At the same time, the
details of the error condition are loaded into the EDMA_ESR. The major loop complete
indicators, setting the transfer control descriptor DONE flag and the possible assertion of an
interrupt request, are not affected when an error is detected. After the error status has been
updated, the DMA engine continues to operate by servicing the next appropriate channel. A
channel that experiences an error condition is not automatically disabled. If a channel is
terminated by an error and then issues another service request before the error is fixed, that
channel will execute and terminate with the same error condition.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R VLD 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ECX
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R GPE CPE ERRCHN SAE SOE DAE DOE NCE SGE SBE DBE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Valid Bit
Logical OR of all EDMA_ERL status bits.
VLD
0 No EDMA_ER bits are set.
1 At least one EDMA_ER bit is set indicating a valid error exists that has not been cleared.
Transfer canceled
ECX 0 No canceled transfers
1 The last recorded entry was a canceled transfer via the error cancel transfer input.
Group-priority error
0 No group-priority error
GPE
1 The last recorded error was a configuration error among the group priorities indicating not all
group priorities are unique.
Channel-Priority Error
CPE 0 No channel-priority error
1 The last recorded error was a configuration error in the channel priorities within a group,
indicating not all channel priorities within a group are unique.
Error Channel Number or Canceled Channel Number
Channel number of the last recorded error (excluding GPE and CPE errors) or last recorded
transfer that was error cancelled.
ERRCHN
Do not rely on the number in the ERRCHN field group for channel-priority errors. Group- and Channel-
priority errors must be resolved by inspection. The application code must interrogate the priority
registers to find groups or channels with duplicate priority level.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ERQ63
ERQ62
ERQ61
ERQ60
ERQ59
ERQ58
ERQ57
ERQ56
ERQ55
ERQ54
ERQ53
ERQ52
ERQ51
ERQ50
ERQ49
ERQ48
R
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ERQ47
ERQ46
ERQ45
ERQ44
ERQ43
ERQ42
ERQ41
ERQ40
ERQ39
ERQ38
ERQ37
ERQ36
ERQ35
ERQ34
ERQ33
ERQ32
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ERQ31
ERQ30
ERQ29
ERQ28
ERQ27
ERQ26
ERQ25
ERQ24
ERQ23
ERQ22
ERQ21
ERQ20
ERQ19
ERQ18
ERQ17
ERQ16
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 19 19 20 21 22 23 24 25 26 27 28 29 30 31
ERQ15
ERQ14
ERQ13
ERQ12
ERQ10
ERQ09
ERQ08
ERQ07
ERQ06
ERQ05
ERQ04
ERQ03
ERQ02
ERQ01
ERQ00
ERQ11
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
As a given channel completes processing its major iteration count, there is a flag in the
transfer control descriptor that may affect the ending state of the EDMA_ERQR bit for that
channel. If bit EDMA_TCD[D_REQ] is set, then the corresponding EDMA_ERQR bit is
cleared after the major loop is complete, disabling the eDMA hardware request. Otherwise if
the D_REQ bit is cleared, the state of the EDMA_ERQR bit is unaffected.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
EEI63
EEI62
EEI61
EEI60
EEI59
EEI58
EEI57
EEI56
EEI55
EEI54
EEI53
EEI52
EEI51
EEI50
EEI49
EEI48
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
EEI47
EEI46
EEI45
EEI44
EEI43
EEI42
EEI41
EEI40
EEI39
EEI38
EEI37
EEI36
EEI35
EEI34
EEI33
EEI32
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
EEI31
EEI30
EEI29
EEI28
EEI27
EEI26
EEI25
EEI24
EEI23
EEI22
EEI21
EEI20
EEI19
EEI18
EEI17
EEI16
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
EEI15
EEI14
EEI13
EEI12
EEI10
EEI09
EEI08
EEI07
EEI06
EEI05
EEI04
EEI03
EEI02
EEI01
EEI00
EEI11
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7
W NOP SERQ[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
0
0 Normal operation.
NOP
1 No operation, ignore bits 1–7.
Set Enable Request
1–7
0–32 (64 for eDMA) Set corresponding bit in EDMA_ERQRH or EDMA_ERQRL.
SERQ[0:6]
64–127 Set all bits in EDMA_ERQRH and EDMA_ERQRL.
0 1 2 3 4 5 6 7
R
W NOP CERQ[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
0
0 Normal operation
NOP
1 No operation, ignore bits 1–7.
Clear Enable Request
1–7
0–32 (64 for eDMA) Clear corresponding bit in EDMA_ERQRH or EDMA_ERQRL.
CERQ[0:6]
64–127 Clear all bits in EDMA_ERQRH and EDMA_ERQRL.
0 1 2 3 4 5 6 7
W NOP SEEI[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
0
0 Normal operation
NOP
1 No operation, ignore bits 1–7.
Set Enable Error Interrupt
1–7
0–32 (64 for eDMA) Set corresponding bit in EDMA_EIRRH or EDMA_EIRRL.
SEEI[0:6]
64–127 Set all bits in EDMA_EIRRH or EDMA_EEIRL.
0 1 2 3 4 5 6 7
W NOP CEEI[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
NOP 0 Normal operation
1 No operation, ignore bits 1-7.
Clear Enable Error Interrupt
CEEI[0:6] 0–32 (64 for eDMA) Clear corresponding bit in EDMA_EEIRH or EDMA_EEIRL.
64–127 Clear all bits in EDMA_EEIRH or EDMA_EEIRL.
0 1 2 3 4 5 6 7
W NOP CINT[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
NOP 0 Normal operation
1 No operation, ignore bits 1–7.
If bit 0 is set, the CERR command is ignored. This allows multiple byte registers to be
written as a 32-bit word. Reads of this register return all zeroes.
0 1 2 3 4 5 6 7
R
W NOP CERR[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
NOP 0 Normal operation
1 No operation, ignore bits 1–7.
Clear Error Indicator
CERR[0:6] 0–32 (64 for eDMA) Clear corresponding bit in EDMA_ERH or EDMA_ERL.
64–127 Clear all bits in EDMA_ERH or EDMA_ERL.
0 1 2 3 4 5 6 7
R
W NOP SSB[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
NOP 0 Normal operation
1 No operation, ignore bits 1–7.
Set START Bit (channel service request)
SSB[0:6] 0–32 (64 for eDMA) Set the corresponding channel’s TCD START bit.
64–127 Set all TCD START bits.
0 1 2 3 4 5 6 7
R
W NOP CDSB[0:6]
Reset 0 0 0 0 0 0 0 0
No operation
NOP 0 Normal operation
1 No operation, ignore bits 1–7.
Clear DONE Status Bit
CDSB[0:6] 0–32 (64 for eDMA) Clear the corresponding channel’s DONE bit.
64–127 Clear all TCD DONE bits.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
INT63
INT62
INT61
INT60
INT59
INT58
INT57
INT56
INT55
INT54
INT53
INT52
INT51
INT50
INT49
INT48
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
INT47
INT46
INT45
INT44
INT43
INT42
INT41
INT40
INT39
INT38
INT37
INT36
INT35
INT34
INT33
INT32
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
INT31
INT30
INT29
INT28
INT27
INT26
INT25
INT24
INT23
INT22
INT21
INT20
INT19
INT18
INT17
INT16
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 19 19 20 21 22 23 24 25 26 27 28 29 30 31
R
INT15
INT14
INT13
INT12
INT10
INT09
INT08
INT07
INT06
INT05
INT04
INT03
INT02
INT01
INT00
INT11
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
indicators, setting the transfer control descriptor DONE flag and the possible assertion of an
interrupt request, are not affected when an error is detected.
The contents of this register can also be polled and a non-zero value indicates the presence
of a channel error, regardless of the state of the EDMA_EEIR. Bit EDMA_ESR[VLD] is a
logical OR of all bits in this register and it provides a single bit indication of any errors. The
state of any given channel’s error indicators is affected by writes to this register; it is also
affected by writes to the EDMA_CER. On writes to EDMA_ERH or EDMA_ERL, a ‘1’ in any
bit position clears the corresponding channel’s error status. A ‘0’ in any bit position has no
effect on the corresponding channel’s current error status. The EDMA_CER is provided so
the error indicator for a single channel can be cleared.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ERR63
ERR62
ERR61
ERR60
ERR59
ERR58
ERR57
ERR56
ERR55
ERR54
ERR53
ERR52
ERR51
ERR50
ERR49
ERR48
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ERR47
ERR46
ERR45
ERR44
ERR43
ERR42
ERR41
ERR40
ERR39
ERR38
ERR37
ERR36
ERR35
ERR34
ERR33
ERR32
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ERR31
ERR30
ERR29
ERR28
ERR27
ERR26
ERR25
ERR24
ERR23
ERR22
ERR21
ERR20
ERR19
ERR18
ERR17
ERR16
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ERR15
ERR14
ERR13
ERR12
ERR10
ERR09
ERR08
ERR07
ERR06
ERR05
ERR04
ERR03
ERR02
ERR01
ERR00
ERR11
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eDMA Error n
0–31
0 An error in channel n has not occurred.
ERRn
1 An error in channel n has occurred.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
HRS63
HRS62
HRS61
HRS60
HRS59
HRS58
HRS57
HRS56
HRS55
HRS54
HRS53
HRS52
HRS51
HRS50
HRS49
HRS48
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
HRS47
HRS46
HRS45
HRS44
HRS43
HRS42
HRS41
HRS40
HRS39
HRS38
HRS37
HRS36
HRS35
HRS34
HRS33
HRS32
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
HRS31
HRS30
HRS29
HRS28
HRS27
HRS26
HRS25
HRS24
HRS23
HRS22
HRS21
HRS20
HRS19
HRS18
HRS17
HRS16
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
HRS15
HRS14
HRS13
HRS12
HRS10
HRS09
HRS08
HRS07
HRS06
HRS05
HRS04
HRS03
HRS02
HRS01
HRS00
HRS11
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7
R GRPPRI
ECP DPA CHPRI
W
Reset 0 0 0 0 — (1)
1. The reset value for the channel priority field, CHPRI[0–3], is equal to the corresponding channel number for
each priority register; that is, EDMA_CPRI0[CHPRI] = 0b0000 and EDMA_CPR15[CHPRI] = 0b1111.
Word
offset 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0x0000 SADDR
0x000C SLAST
0x0010 DADDR
CITER.E_ LINK
CITER or
0x0014 CITER DOFF
CITER.LINKCH
0x0018 DLAST_SGA
MAJOR.E_LINK
BITER.E_ LINK
INT_HALF
INT_MAJ
ACTIVE
D_REQ
START
DONE
E_SG
BITER or
0x001C BITER BWC MAJOR LINKCH
BITER.LINKCH
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1. The fields implemented in Word 2 depend on whether EDMA_CR(EMLM) is set to ‘0’ or ‘1’. Refer to Table 24.
Note: The TCD structures for the eDMA channels shown in Figure 41 are implemented in internal
SRAM. These structures are not initialized at reset; therefore, all channel TCD parameters
must be initialized by the application code before activating that channel.
Source address
0–31 / SADDR
Memory address pointing to the source data.
0x0 [0:31] [0:31]
Word 0x0, bits 0–31.
Source address modulo
0 Source address modulo feature is disabled.
non-0 This value defines a specific address range that is specified to be the
value after SADDR + SOFF calculation is performed or the original
register value. The setting of this field provides the ability to easily
implement a circular data queue. For data queues requiring power-of-
32–36 / SMOD 2 size bytes, the queue should start at a 0-modulo-size address and
0x4 [0:4] [0:4] the SMOD field should be set to the appropriate value for the queue,
freezing the desired number of upper address bits. The value
programmed into this field specifies the number of lower address bits
that are allowed to change. For this circular queue application, the
SOFF is typically set to the transfer size to implement post-increment
addressing with the SMOD function constraining the addresses to a 0-
modulo-size range.
Source data transfer size
000 8-bit
001 16-bit
010 32-bit
37–39 / SSIZE 011 64-bit
100 Reserved
0x4 [5:7] [0:2] 101 32-byte (64-bit, 4 beat, WRAP4 burst)
110 Reserved
111 Reserved
The attempted specification of a reserved encoding causes a configuration
error.
40–44 / DMOD Destination address modulo
0x4 [8:12] [0:4] See the SMOD[0:5] definition.
45–47 / DSIZE Destination data transfer size
0x4 [13:15] [0:2] See the SSIZE[0:2] definition.
Source address signed offset
48–63 / SOFF
Sign-extended offset applied to the current source address to form the next-
0x4 [16:31] [0:15]
state value as each source read is completed.
Source minor loop offset enable
This flag selects whether the minor loop offset is applied to the source
64 SMLOE address upon minor loop completion.
0x8 [0] 0
0 The minor loop offset is not applied to the saddr.
1 The minor loop offset is applied to the saddr.
This bit must be equal to the BITER.E_LINK bit. Otherwise, a configuration error
is reported.
If the channel is configured to execute a single service request, the initial values
of BITER and CITER should be 0x0001.
Bandwidth control
This two-bit field provides a mechanism to effectively throttle the amount of
bus bandwidth consumed by the eDMA. In general, as the eDMA processes
the inner minor loop, it continuously generates read/write sequences until
240–241 / the minor count is exhausted. This field forces the eDMA to stall after the
BWC
0x1C completion of each read/write access to control the bus request bandwidth
[0:1] seen by the system bus crossbar switch (XBAR).
[16:17]
00 No DMA engine stalls
01 Reserved
10 DMA engine stalls for 4 cycles after each r/w
11 DMA engine stalls for 8 cycles after each r/w
Channel active
249 / This flag signals the channel is currently in execution. It is set when channel
ACTIVE
0x1C [25] service begins, and is cleared by the DMA engine as the inner minor loop
completes or if any error condition is detected.
Enable channel-to-channel linking on major loop completion
As the channel completes the outer major loop, this flag enables the linking
to another channel, defined by MAJOR.LINKCH[0:5]. The link target
250 / channel initiates a channel service request via an internal mechanism that
MAJOR.E_LINK sets bit EDMA_TCD[START] of the specified channel.
0x1C [26]
To support the dynamic linking coherency model, this field is forced to zero when
written to while the bit EDMA_TCD[DONE] is set.
0 The channel-to-channel linking is disabled.
1 The channel-to-channel linking is enabled.
Enable scatter-gather processing
As the channel completes the outer major loop, this flag enables scatter-
gather processing in the current channel. If enabled, the DMA engine uses
DLAST_SGA as a memory pointer to a 0-modulo-32 address containing a
32-byte data structure which is loaded as the transfer control descriptor into
251 / the local memory.
E_SG
0x1C [27]
To support the dynamic scatter-gather coherency model, this field is forced to
zero when written to while the bit EDMA_TCD[DONE] is set.
0 The current channel’s TCD is normal format.
1 The current channel’s TCD specifies a scatter gather format. The
DLAST_SGA field provides a memory pointer to the next TCD to be
loaded into this channel after the outer major loop completes its execution.
priority channel service request is asserted while the first channel is active. After a
channel is activated, it runs until the minor loop is completed unless pre-empted
by a higher priority channel. This capability provides a mechanism (optionally
enabled by EDMA_CPRn[ECP]) where a large data move operation can be pre-
empted to minimize the time another channel is blocked from execution.
– When another channel is activated, the contents of its transfer control descriptor is
read from the local memory and loaded into the registers of the other address path
channel{x,y}. After the inner minor loop completes execution, the address path
hardware writes the new values for the TCDn.{SADDR, DADDR, CITER} back into
the local memory. If the major iteration count is exhausted, additional processing
is performed, including the final address pointer updates, reloading the
TCDn.CITER field, and a possible fetch of the next TCDn from memory as part of
a scatter-gather operation.
– Data path: This module implements the actual bus master read/write datapath. It
includes 32 bytes of register storage (matching the maximum transfer size) and
the necessary mux logic to support any required data alignment. The system read
data bus is the primary input, and the system write data bus is the primary output.
– The address and data path modules directly support the two-stage pipelined
system bus. The address path module represents the 1st stage of the bus pipeline
(the address phase), while the data path module implements the second stage of
the pipeline (the data phase).
– Program model/channel arbitration: This module implements the first section of
eDMA’s programming model and also the channel arbitration logic. The
programming model registers are connected to the slave bus (not shown). The
eDMA peripheral request inputs and eDMA interrupt request outputs are also
connected to this module (via the control logic).
– Control: This module provides all the control functions for the DMA engine. For
data transfers where the source and destination sizes are equal, the DMA engine
performs a series of source read, destination write operations until the number of
bytes specified in the inner minor loop byte count has been moved.
A minor loop interaction is defined as the number of bytes to transfer (nbytes)
divided by the transfer size. Transfer size is defined as:
if (SSIZE < DSIZE)
transfer size = destination transfer size (# of bytes)
else
transfer size = source transfer size (# of bytes)
Minor loop TCD variables are SOFF, SMOD, DOFF, DMOD, NBYTES, SADDR,
DADDR, BWC, ACTIVE, AND START. Major loop TCD variables are DLAST,
SLAST, CITER, BITER, DONE, D_REQ, INT_MAJ, MAJOR_LNKCH, and
INT_HALF.
For descriptors where the sizes are not equal, multiple access of the smaller size
data are required for each reference of the larger size. For example, if the source
size references 16-bit data and the destination is 32-bit data, two reads are
performed, then one 32-bit write.
● TCD local memory
– Memory controller: This logic implements the required dual-ported controller,
handling accesses from both the DMA engine as well as references from the slave
bus. As noted earlier, in the event of simultaneous accesses, the DMA engine is
given priority and the slave transaction is stalled. The hooks to a BIST controller
for the local TCD memory are included in this module.
– Memory array: The TCD is implemented using a single-ported, synchronous
compiled RAM memory array.
eDMA SRAM
Transfer control descriptor
(TCD)
Slave write address
Slave write data
SRAM TCD0
Slave interface
System bus
TCDn – 1*
eDMA engine
Bus read data
Program model/
channel arbitration
Address
Data path Control
path Slave read data
Bus address
eDMA SRAM
Transfer control descriptor
(TCD)
Slave write address
Slave write data
SRAM TCD0
Slave interface
System bus
TCDn – 1*
eDMA engine
Bus read data
Program model/
channel arbitration
Address
Data path Control
path Slave read data
Bus address
eDMA SRAM
Transfer control descriptor
(TCD)
Slave write address
Slave write data
SRAM TCD0
Slave interface
System bus
TCDn – 1*
eDMA engine
Bus read data
Program model/
channel arbitration
Bus address
After any channel requests service, a channel is selected for execution based on the
arbitration and priority levels written into the programmer's model. The DMA engine reads
the entire TCD, including the primary transfer control parameter shown in Table 42, for the
selected channel into its internal address path module. As the TCD is being read, the first
transfer is initiated on the system bus unless a configuration error is detected. Transfers
from the source (as defined by the source address, EDMA_TCD[SADDR]) to the destination
(as defined by the destination address, EDMA_TCD.DADDR) continue until the specified
number of bytes (EDMA_TCD[NBYTES]) have been transferred. When the transfer is
complete, the DMA engine's local EDMA_TCD[SADDR], EDMA_TCD.DADDR, and
EDMA_TCD.CITER are written back to the main TCD memory and any minor loop channel
linking is performed, if enabled. If the major loop is exhausted, further post processing is
executed; for example, interrupts, major loop channel linking, and scatter-gather operations,
if enabled.
Control bit to start channel when using a software initiated DMA service
START
(Automatically cleared by hardware)
ACTIVE Status bit indicating the channel is currently in execution
Status bit indicating major loop completion (cleared by software when using a
DONE
software initiated DMA service)
Control bit to disable DMA request at end of major loop completion when using
D_REQ
a hardware-initiated DMA service
BWC Control bits for throttling bandwidth control of a channel
E_SG Control bit to enable scatter-gather feature
INT_HALF Control bit to enable interrupt when major loop is half complete
INT_MAJ Control bit to enable interrupt when major loop completes
Figure 45 shows how each DMA request initiates one minor loop transfer (iteration) without
CPU intervention. DMA arbitration can occur after each minor loop, and one level of minor
loop DMA pre-emption is allowed. The number of minor loops in a major loop is specified by
the beginning iteration count (biter).
DMA request
• Minor loop 3
•
•
DMA request
DMA request
• Minor loop 1
•
•
This scenario ensures that all channels are guaranteed service at some point, regardless of
the request rates. However, the potential latency could be high. All channels are treated
equally. Priority levels are not used in round-robin/round-robin mode.
Multiple requests
The next example is the same as previous, excepting transferring 32 bytes via two hardware
requests. The only fields that change are the major loop iteration count and the final address
offsets. The eDMA is programmed for two iterations of the major loop transferring 16 bytes
per iteration. After the channel’s hardware requests are enabled in the EDMA_ERQR,
channel service requests are initiated by the slave device (ERQR should be set after TCD).
Note that EDMA_TCD[START] = 0.
EDMA_TCD[CITER = EDMA_TCD[BITER] = 2
EDMA_TCD[NBYTES] = 16
EDMA_TCD[SADDR] = 0x1000
EDMA_TCD[SOFF] = 1
EDMA_TCD[SSIZE] = 0
EDMA_TCD[SLAST] = –32
EDMA_TCD[DADDR] = 0x2000
EDMA_TCD[DOFF] = 4
EDMA_TCD[DSIZE] = 2
EDMA_TCD[DLAST_SGA] = –32
EDMA_TCD[INT_MAJ] = 1
EDMA_TCD[START] = 0 (Must be written last after all other fields have been initialized)
All other TCD fields = 0
This generates the following sequence of events:
Modulo feature
The modulo feature of the eDMA provides the ability to implement a circular data queue in
which the size of the queue is a power of two. MOD is a 5-bit bitfield for both the source and
destination in the TCD and specifies which lower address bits are allowed to increment from
their original value after the address + offset calculation. All upper address bits remain the
same as in the original value. A setting of 0 for this field disables the modulo feature.
Table 44 shows how the transfer addresses are specified based on the setting of the MOD
field. Here a circular buffer is created where the address wraps to the original value while
the 28 upper address bits (0x1234567x) retain their original value. In this example the
source address is set to 0x12345670, the offset is set to 4 bytes and the MOD field is set to
4, allowing for a 24 byte (16-byte) size queue.
1 0x12345670
2 0x12345674
3 0x12345678
4 0x1234567C
5 0x12345670
6 0x12345674
Pre-emption status
Pre-emption is available only when fixed arbitration is selected for both group- and channel-
arbitration modes. A pre-emptable situation is one in which a pre-empt-enabled channel is
running and a higher priority request becomes active. When the eDMA engine is not
operating in fixed group, fixed-channel arbitration mode, the determination of the relative
priority of the actively running and the outstanding requests become undefined. Channel
and group priorities are treated as equal (or more exactly, constantly rotating) when round-
robin arbitration mode is selected.
Bit EDMA_TCD[ACTIVE] for the pre-empted channel remains asserted throughout the pre-
emption. The pre-empted channel is temporarily suspended while the pre-empting channel
executes one iteration of the major loop. Two EDMA_TCD[ACTIVE] bits set at the same
time in the overall TCD map indicates a higher priority channel is actively pre-empting a
lower priority channel.
channel link fields are used to determine if a channel link should be made. For example,
with the initial fields of:
EDMA_TCD[CITER.E_LINK] = 1
EDMA_TCD[CITER.LINKCH] = 0xC
EDMA_TCD[CITER] value = 0x4
EDMA_TCD[MAJOR.E_LINK] = 1
EDMA_TCD[MAJOR.LINKCH] = 0x7
will execute as:
1. Minor loop done Æ set channel 12 EDMA_TCD[START] bit
2. Minor loop done Æ set channel 12 EDMA_TCD[START] bit
3. Minor loop done Æ set channel 12 EDMA_TCD[START] bit
4. Minor loop done, major loop done Æ set channel 7 EDMA_TCD[START] bit
When minor loop linking is enabled (EDMA_TCD[CITER.E_LINK] = 1), field
EDMA_TCD[CITER] uses a 9-bit vector to form the current iteration count.
When minor loop linking is disabled (EDMA_TCD[CITER.E_LINK] = 0), field
EDMA_TCD[CITER] uses a 15-bit vector to form the current iteration count. The bits
associated with field EDMA_TCD[CITER.LINKCH] are concatenated onto the CITER value
to increase the range of the CITER.
Note: After configuration, bit EDMA_TCD[CITER.E_LINK] and bit EDMA_TCD[BITER.E_LINK]
must be equal or a configuration error is reported. The CITER and BITER vector widths
must be equal to calculate the major loop, halfway done interrupt point.
Table 45 summarizes how a DMA channel can link to another DMA channel, that is, use
another channel’s TCD, at the end of a loop.
retiring the channel. The TCD.major.e_link would be set in the programmer’s model, but it
would be unclear whether the actual link was made before the channel retired.
The coherency model in Table 46 is recommended when executing a dynamic channel link
request.
For this request, the TCD local memory controller forces the TCD.major.e_link bit to zero on
any writes to a channel’s TCD.word7 after that channel’s TCD.done bit is set, indicating the
major loop is complete.
Note: The user must clear the TCD.done bit before writing the TCD.major.e_link bit. The
TCD.done bit is cleared automatically by the eDMA engine after a channel begins
execution.
Dynamic scatter/gather
Dynamic scatter/gather is the process of setting the TCD.e_sg bit during channel execution.
This bit is read from the TCD local memory at the end of channel execution, thus allowing
the user to enable the feature during channel execution.
Because the user is allowed to change the configuration during execution, a coherency
model is needed. Consider the scenario where the user attempts to execute a dynamic
scatter/gather operation by enabling the TCD.e_sg bit at the same time the eDMA engine is
retiring the channel. The TCD.e_sg would be set in the programmer’s model, but it would be
unclear whether the actual scatter/gather request was honored before the channel retired.
Two methods for this coherency model are shown in the following subsections. Method 1
has the advantage of reading the major.linkch field and the e_sg bit with a single read. For
both dynamic channel linking and scatter/gather requests, the TCD local memory controller
forces the TCD.major.e_link and TCD.e_sg bits to zero on any writes to a channel’s
TCD.word7 if that channel’s TCD.done bit is set indicating the major loop is complete.
Note: The user must clear the TCD.done bit before writing the TCD.major.e_link or TCD.e_sg bits.
The TCD.done bit is cleared automatically by the eDMA engine after a channel begins
execution.
When the descriptors are built, write a unique TCD ID in the TCD.major.linkch field for
1
each TCD associated with a channel using dynamic scatter/gather.
Write 1b to theTCD.d_req bit.
2 Should a dynamic scatter/gather attempt fail, setting the d_req bit will prevent a future hardware
activation of this channel. This stops the channel from executing with a destination address
(daddr) that was calculated using a scatter/gather address (written in the next step) instead of
a dlast final offest value.
1 Should a dynamic scatter/gather attempt fail, setting the d_req bit will prevent a future hardware
activation of this channel. This stops the channel from executing with a destination address
(daddr) that was calculated using a scatter/gather address (written in the next step) instead of
a dlast final offest value.
9.1 Introduction
9.1.1 Overview
This section provides an overview of the multi-layer AHB crossbar switch (XBAR). The
purpose of the XBAR is to concurrently support simultaneous connections between master
ports and slave ports. The XBAR supports a 32-bit address bus width. Only a single data
bus width is supported throughout the design, thus, all master and slave ports have the
same data bus width.
The XBAR has five master ports and four slave ports. Figure 47 shows a block diagram of
the XBAR.
Master modules
Crossbar Switch
Slave modules
9.1.2 Features
The XBAR has the ability to gain control of all the slave ports and prevent any masters from
making accesses to the slave ports. This feature is useful for turning off the clocks to the
system and ensuring that no bus activity will be interrupted.
The XBAR can put each slave port into a low power park mode so that the slave port will not
dissipate any power transitioning address, control or data signals when not being actively
accessed by a master port.
Each slave port can also support multiple master priority schemes—the user can
dynamically change master priority levels on a slave port by slave port basis.
The XBAR allows concurrent transactions to occur from any master port to any slave port. It
is possible for all master ports and slave ports to be in use at the same time as a result of
independent master requests. If a slave port is simultaneously requested by more than one
master port, arbitration logic will select the higher priority master and grant it ownership of
the slave port. All other masters requesting that slave port will stalled until the higher priority
master completes its transactions.
The XBAR has a 32-bit internal address bus and a 64-bit internal data bus.
9.1.3 Limitations
The XBAR routes bus transactions initiated on the master ports to the appropriate slave
ports. There is no provision included to route transactions initiated on the slave ports to
other slave ports or to master ports. Simply put, the slave ports do not support the bus
request/bus grant protocol; the XBAR assumes it is the sole master of each slave port.
Since the XBAR appears to be just another slave to the master device, the master device
will have no knowledge of whether or not it actually owns the slave port it is targeting. While
the master does not have control of the slave port it is targeting it will simply be wait stated.
A master is given control of the targeted slave port only after a previous access to a different
slave port has completed, regardless of its priority on the newly targeted slave port. This
prevents deadlock from occurring when a master has an outstanding request to one slave
port that has a long response time, has a pending access to a different slave port, and a
lower priority master is also making a request to the same slave port as the pending access
of the higher priority master.
Once the master has control of the slave port it is targeting, the master remains in control of
that slave port until it gives up the slave port by running an IDLE cycle or by leaving that
slave port for its next access. The master could also lose control of the slave port if another
higher priority master makes a request to the slave port; however, if the master is running a
locked or fixed length burst transfer it retains control of the slave port until that transfer is
completed.
The XBAR will terminate all master IDLE transfers (as opposed to allowing the termination
to come from one of the slave busses). Additionally, when no master is requesting access to
a slave port the XBAR will drive IDLE transfers onto the slave bus, even though a default
master may be granted access to the slave port.
When a slave bus is being IDLEd by the XBAR it can park the slave port on the master port
indicated by the PARK bits in the SGPCR (Slave General Purpose Control Register). This
can be done in an attempt to save the initial clock of arbitration delay that would otherwise
be seen if the master had to arbitrate to gain control of the slave port. The slave port can
also be put into low power park mode in attempt to save power.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0
MSTR7 MSTR6 MSTR4
W
Reset 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0
MSTR1 MSTR0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
= not implemented
Reserved
0 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Master 7 Priority
These bits set the arbitration priority for master port 7 (EBI) on the associated slave port.
1:3 These bits are initialized by hardware reset. The reset value is 111.
MSTR7
000: This master has the highest priority when accessing the slave port.
...
111: This master has the lowest priority when accessing the slave port.
Reserved
4 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Master 6 Priority
These bits set the arbitration priority for master port 6 (FlexRay) on the associated slave port.
5:7 These bits are initialized by hardware reset. The reset value is 110.
MSTR6
000: This master has the highest priority when accessing the slave port.
...
111: This master has the lowest priority when accessing the slave port.
Reserved
8 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Reserved
9:11 These bits are reserved for future expansion. They are read as zero and should be written with zero
for upward compatibility.
Reserved
12 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Master 4 Priority
These bits set the arbitration priority for master port 4 (eDMA) on the associated slave port.
13:15 These bits are initialized by hardware reset. The reset value is 100.
MSTR4
000: This master has the highest priority when accessing the slave port.
...
111: This master has the lowest priority when accessing the slave port.
Reserved
16 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Reserved
17:19 These bits are reserved for future expansion. They are read as zero and should be written with zero
for upward compatibility.
Reserved
20 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Reserved
21:23 These bits are reserved for future expansion. They are read as zero and should be written with zero
for upward compatibility.
Reserved
24 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Master 1 Priority
These bits set the arbitration priority for master port 1 (e200z4 core load/store bus and e200z4 core
Nexus) on the associated slave port.
25:27
These bits are initialized by hardware reset. The reset value is 001.
MSTR1
000: This master has the highest priority when accessing the slave port.
...
111: This master has the lowest priority when accessing the slave port.
Reserved
28 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Master 0 Priority
These bits set the arbitration priority for master port 0 (e200z4 core instruction bus) on the associated
slave port.
29:31
These bits are initialized by hardware reset. The reset value is 000
MSTR0
000: This master has the highest priority when accessing the slave port.
...
111: This master has the lowest priority when accessing the slave port.
The Master Priority Register can only be accessed in supervisor mode with 32-bit accesses.
Once the RO (Read Only) bit has been set in the slave General Purpose Control Register
the Master Priority Register can only be read from, attempts to write to it will have no effect
on the MPR and result in an error response.
Note: No two available master ports may be programmed with the same priority level. Attempts to
program two or more available masters with the same priority level will result in an error
response and the MPR will not be updated.
The PARK bits determine which master the slave will park on when no master is making an
active request. Please use caution to only select master ports that are actually present in
the design. If the user programs the PARK bits to a master not present in the current design
implementation undefined behavior will result.
Note: The SGPCR can only be accessed in supervisor mode with 32-bit accesses. Once the RO
(Read Only) bit has been set in the SGPCR the SGPCR can only be read, attempts to write
to it will have no effect on the SGPCR and result in an error response.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0
HPE7
HPE6
HPE4
HPE1
HPE0
RO
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0
ARB PCTL PARK
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= not implemented
Table 52. XBAR Slave General Purpose Control Register Field Descriptions
Field Description
Read Only
This bit is used to force all of a slave port’s registers to be read only. Once written to 1 it can only be
cleared by hardware reset.
0
This bit is initialized by hardware reset. The reset value is 0.
RO
Table 52. XBAR Slave General Purpose Control Register Field Descriptions (continued)
Field Description
These bits are initialized by hardware reset. The reset value is 00.
22:23
ARB
00: Fixed Priority
01: Round Robin (rotating) Priority
10: Reserved
11: Reserved
Reserved
24:25 These bits are reserved for future expansion. They are read as zero and should be written with zero for
upward compatibility.
Parking Control
These bits determine the parking control used by this slave port.
These bits are initialized by hardware reset. The reset value is 00.
26:27 00: When no master is making a request the arbiter will park the slave port on the master port defined
PCTL by the PARK bit field.
01: When no master is making a request the arbiter will park the slave port on the last master to be in
control of the slave port.
10: When no master is making a request the arbiter will park the slave port on no master and will drive
all outputs to a constant safe state.
11: Reserved
Reserved
28 This bit is reserved for future expansion. It is read as zero and should be written with zero for upward
compatibility.
Table 52. XBAR Slave General Purpose Control Register Field Descriptions (continued)
Field Description
PARK
These bits are used to determine which master port this slave port parks on when no masters are
actively making requests and the PCTL bits are set to 00.
These bits are initialized by hardware reset. The reset value is 000.
9.2.3 Coherency
Since the content of the registers has a real time effect on the operation of the XBAR it is
important for the user to understand that any register modifications take effect as soon as
the register is written. The values of the registers do not track with slave port related AHB
accesses but instead track only with IP bus accesses.
9.3 Function
This section describes in more detail the functionality of the XBAR.
9.3.1 Arbitration
The XBAR supports two arbitration schemes: a simple fixed-priority comparison algorithm
and a simple round-robin fairness algorithm. The arbitration scheme is independently
programmable for each slave port.
control over the slave port is running a fixed length burst transfer or a locked transfer. In this
case the new requesting master will have to wait until the end of the burst transfer or locked
transfer before it will be granted control of the slave port. If the master is running an
undefined length burst transfer the new requesting master must wait until an arbitration
point for the undefined length burst transfer before it will be granted control of the slave port.
Arbitration points for an undefined length burst are defined in the MGPCR for each master.
If the new requesting master’s priority level is lower than that of the master that currently
has control of the slave port the new requesting master will be forced to wait until the master
that currently has control of the slave port either runs an IDLE cycle or runs a non IDLE
cycle to a location other than the current slave port.
Parking
If no master is currently requesting the slave port, the slave port is parked. The slave port
parks in one of three places, indicated by the value of the PCTL field in the XBAR_SGPCR.
● If park-on-specific master mode is selected, the slave port parks on the master
designated by the PARK field. When the master accesses the slave port again, a one
clock arbitration penalty is incurred only for an access request made by another master
port to the slave port. No other arbitration penalties are incurred. All other masters pay
a one clock penalty.
● If park-on-last (POL) mode is selected, then the slave port parks on the last master to
access it, passing that master’s signals through to the slave bus. When the master
accesses the slave port again, no other arbitration penalties are incurred except that a
one clock arbitration penalty is incurred for each access request to the slave port made
by another master port. All other masters pay a one clock penalty.
● If the low-power-park (LPP) mode is selected, then the slave port enters low-power
park mode. It is not under control by any master and does not transmit any master
signals to the slave bus. All slave bus activity halts because all slave bus signals are
not toggling. This saves power if the slave port is not used for some time. However,
when a master does make a request to a slave port parked in low-power-park, a one
clock arbitration delay is incurred to get ownership of the slave port.
The Peripheral Bridge (PBRIDGE) provides an interface between the system crossbar
switch bus and the lower-bandwidth peripheral bus.
Peripheral
Bridge B
(PBRIDGE0)
Off-platform IPS
on page 10-
0x0000–0x0007(1) Master Privilege Control Registers (MPCR)
248
0x0008–0x001F Reserved
on page 10-
0x0020–0x003F1 Peripheral Access Control Registers (PACR)
248
on page 10-
0x0040–0x006F1 Off-Platform Peripheral Access Control Registers (OPACR)
250
0x0070–0x3FFF Reserved
1. This memory range contains reserved areas. See Table 54.
0 1 2 3
R 0
MTR MTW MPL
W
Reset 0 1 1 1
Each PACRn field has the structure described in Figure 53 and Table 57.
0 1 2 3
R 0
SP WP TP
W
Reset 0 1 0 0
Supervisor Protect
This bit determines whether the peripheral requires supervisor privilege level for access.
SP 0 This peripheral does not require supervisor privilege level for accesses.
1 This peripheral requires supervisor privilege level for accesses. The MPCRx[MPL] control bit for
the master must be set. If not, the access is terminated with an error response and no peripheral
access is initiated on the IPS bus.
Write Protect
This bit determines whether the peripheral allows write accesses.
WP 0 This peripheral allows write accesses.
1 This peripheral is write protected. If a write access is attempted, the access is terminated with an
error response and no peripheral access is initiated on the IPS bus.
Trusted Protect
This bit determines whether the peripheral allows accesses from an untrusted master.
0 Accesses from an untrusted master are allowed.
TP
1 Accesses from an untrusted master are not allowed. If an access is attempted by an untrusted
master, the access is terminated with an error response and no peripheral access is initiated on the
IPS bus.
PACR 1 Crossbar
PACR 4 MPU
PACR 14 SWT 0100b, meaning
SP = 1
PACR 15 STM
WP = 0
PACR 16 ECSM TP = 0
PACR 17 DMA
PACR 18 Interrupt controller
OPACR 0 eQADC
OPACR 2 Decimation filter A
OPACR 3 Decimation filter B
OPACR 5 DSPI B
OPACR 6 DSPI C
OPACR 7 DSPI D
OPACR 12 eSCI A
0100b, meaning
OPACR 13 eSCI B SP = 1
OPACR 14 eSCI C WP = 0
TP = 0
OPACR 16 FlexCAN A
OPACR 17 FlexCAN B
OPACR 18 FlexCAN C
OPACR 24 FlexRay
OPACR 27 System Information Module
OPACR 31 BAM
OPACR 58 CRC
OPACR 64 FM PLL
OPACR 66 Flash module A
OPACR 68 SIU
OPACR 71 DTS
OPACR 72 eMIOS
OPACR 79 PMC
0100b, meaning
OPACR 80 eTPU2 SP = 1
OPACR 81 Reaction module WP = 0
TP = 0
OPACR 82 eTPU parameter RAM
OPACR 83 eTPU parameter RAM mirror
OPACR 84 eTPU code RAM
OPACR 92 PIT
11.1 Introduction
The SPC564A74xx, SPC564A80xx includes 192 Kbytes of general-purpose SRAM. The
first 32 Kbytes of SRAM is powered by its own power supply pin during standby operation.
11.2 Features
The SRAM controller includes these features:
● Supports read/write accesses mapped to the SRAM memory from any master
● 32-Kbyte block powered by separate supply for standby operation
● Byte, halfword, word and doubleword addressable
● 7-bit ECC
Standby Switch
VDD
SRAM
32 KB VSTBY
160 KB
The internal SRAM has no registers. Registers for the SRAM ECC are located in the ECSM.
See Chapter 18: Error Correction Status Module (ECSM).
Note: The ECSM module contains the register MUDCR that enables SRAM to be configured with
an additional wait state. This is required when the CPU is configured to operate at its
maximum frequency. See Section 18.4.3, Miscellaneous User-Defined Control Register
(ECSM_MUDCR), for details.
1. The ECC mechanism checks the entire 32 bits of data for errors, detecting and either
correcting or flagging errors.
2. The write data bytes (1- or 2-byte segment) are merged with the corrected 32 bits on
the data bus.
3. The ECC is then calculated on the resulting 32 bits formed in the previous step.
4. The 7-bit ECC result is appended to the 32 bits from the data, and the 39-bit value is
then written to SRAM.
12 Flash memory
12.1 Introduction
This section presents information about the following components on this device:
● The flash memory blocks
● The platform flash memory controller
The primary function of the flash memory module is to serve as electrically programmable
and erasable non-volatile memory. The NVM memory can be used for instruction and data
storage. The block is a non-volatile solid-state silicon memory device consisting of blocks of
single-transistor storage elements, an electrical means for selectively adding (programming)
and removing (erasing) charge from these elements, and a means of selectively sensing
(reading) the charge stored in these elements. The flash is addressable by word (32 bits)
and page (128 bits).
There are two flash array blocks (Flash_A and Flash_B). Within each flash block are two
functional units: the flash core (FC) and the memory interface (MI).
The FC is composed of arrayed non-volatile storage elements, sense amplifiers, row
selects, column selects, charge pumps, and redundancy logic. The arrayed storage
elements in the FC are subdivided into physically separate units referred to as blocks.
The MI contains the registers and logic which control the operation of the FC. The MI is also
the interface to the platform flash bus interface unit (PFBIU).
The flash array’s core has three address spaces: low-address space, mid-address space,
and high-address space (see Figure 55).
Low-address space
256 KB 8 x 16 KB + 2 x 64 KB
(128 bits wide)
Mid-address space
256 KB 2 x 128 KB
(128 bits wide)
Low-address space
256 KB
1 x 256 KB
(128 bits wide)
Mid-address space
256 KB 1 x 256 KB
(128 bits wide)
High-address space
3 MB 1 x 256 KB 1 x 256 KB
(256 bits wide)
1 x 256 KB 1 x 256 KB
1 x 256 KB 1 x 256 KB
1 x 256 KB 1 x 256 KB
1 x 256 KB 1 x 256 KB
1 x 256 KB 1 x 256 KB
Flash memory
interface
(MI)
Control/status Slave
registers bus
Flash core
Flash bus
System
interface
bus
unit
(XBAR)
(FBIU) Flash_B memory module
Flash memory
interface
(MI)
Control/status Slave
registers bus
Flash core
VPP is the only externally visible power supply that is necessary for the programming and erasing of the flash
array (see Section 12.2, External signal description).
12.1.2 Features
The flash memory module has these major features:
● Support for a 64-bit data bus for instruction fetch
● Support for a 32-bit data bus for CPU loads and DMA access. Byte, halfword, word and
doubleword reads are supported. Only aligned word and doubleword writes are
supported.
● Configurable read buffering and line prefetch support. Device flash has 2 sets of 4 line
read buffers—1 set for the 128-bit wide low- and medium-address space and 1 set for
the 256-bit wide high address space.
● Hardware and software configurable(e) read and write access protections on a per-
master basis
● Interface to the flash array controller is pipelined with a depth of 1, allowing overlapped
accesses to proceed in parallel for interleaved or pipelined flash array designs.
● Configurable access timing allowing use in a wide range of system frequencies.
● Multiple-mapping support and mapping-based block access timing (0–31 additional
cycles) allowing use for emulation of other memory types
● Software programmable block program/erase restriction control for low, mid and high
address spaces
● Erase of selected block(s)
● Read page size of 128 bits (low/mid-address space) and 256 bits (for high-address
space)
● ECC with single-bit correction, double-bit detection
● Minimum program size is 2 consecutive 32 bit words, aligned on a 0-modulo-8 byte
address, due to ECC.
● Embedded hardware program and erase algorithm
● Read-while-write with multiple partitions
● Erase suspend, program suspend and erase-suspended program
● Automotive flash which meets automotive endurance and reliability requirements
● Shadow information stored in non-volatile shadow block
● Independent program/erase of the shadow block
e. Software executing from flash must not write to registers that control flash behavior, e.g., wait state settings or
prefetch enable/disable. Doing so can cause data corruption. On SPC564A74xx, SPC564A80xx devices these
registers include BIUCR, BIUAPR, and BIUCR2.Further, flash configuration registers should be written only
with 32-bit write operations to avoid any issues associated with register “incoherency” caused by bit fields
spanning smaller size (8- and 16-bit) boundaries.
0x0000_0000 L0 128 16
0x0000_4000 L1 128 16
1
0x0000_8000 L2 128 16
0x0000_C000 L3 128 16
0x0001_0000 L4 128 16
Low-address space (Flash A)
0x0001_4000 L5 128 16
2
0x0001_8000 L6 128 16
0x0001_C000 L7 128 16
0x0002_0000 L8 128 64
3
0x0003_0000 L9 128 64
0x0004_0000 M0 128 128
Mid-address space (Flash A) 4
0x0006_0000 M1 128 128
0x0008_0000 Low-address space (Flash B) L0 128 256
5
0x000C_0000 Mid-address space (Flash B) M0 128 256
0x0010_0000 H0 256 512
6
0x0018_0000 H1 256 512
0x0020_0000 H2 256 512
High-address space 7
0x0028_0000 H3 256 512
0x0030_0000 H4 256 512
8
0x0038_0000 H5 256 512
0x0040_0000 Reserved
0x00EF_C000 Shadow row (Flash B) S0 All(1) 128 16
0x00F0_0000 Reserved
0x00FF_C000 Shadow row (Flash A) S1 All(1) 128 16
0x0100_0000 Reserved
1. For read-while-write operations, the shadow row behaves as if it is in all partitions.
on page 12-
0x0000 MCR—Module configuration register
261
on page 12-
0x0004 LMLR—Low-/mid-address space block lock register
266
on page 12-
0x0008 HLR—High-address space block lock register
267
SLMLR—Secondary low/mid-address space block lock on page 12-
0x000C
register 268
on page 12-
0x0010 LMSR—Low-/mid-address space block select register
269
on page 12-
0x0014 HSR—High-address space block select register
270
on page 12-
0x0018 AR—Address register
271
on page 12-
0x001C BIUCR(2)—Bus interface unit configuration register
272
on page 12-
0x0020 BIUAPR(2)—Bus interface unit access protection register
275
on page 12-
0x0024 BIUCR2(2)—Bus interface unit configuration register 2
276
0x0028 – 0x0038 Reserved
on page 12-
0x003C FLASH_x_UT0—User Test 0 Register
276
on page 12-
0x0040 FLASH_x_UT1—User Test 1 Register
278
on page 12-
0x0044 FLASH_x_UT2—User Test 2 Register
279
on page 12-
0x0048 UMISR0—User Multiple Input Signature Register 0
280
on page 12-
0x004C UMISR1—User Multiple Input Signature Register 1
280
on page 12-
0x0050 UMISR2—User Multiple Input Signature Register 2
280
on page 12-
0x0054 UMISR3—User Multiple Input Signature Register 3
280
on page 12-
0x0058 UMISR4—User Multiple Input Signature Register 4
280
0x005C – 0x3FFF Reserved
1. FLASH_A_REGS_BASE = 0xC3F8_8000
FLASH_B_REGS_BASE = 0xC3F8_C000
2. Register is only accessible via Flash A. Treat as “Reserved” in Flash B.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reset 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
DONE
PEAS
PSUS
ESUS
PGM ERS EHV
W w1c w1c w1c
Reset 0 0 0 0 0 0/1 1 0 0 0 0 0 0 0 0 0
Program/Erase Good
The PEG bit indicates the completion status of the last flash program or erase sequence for which high
voltage operations were initiated. The value of PEG is updated automatically during the program and
erase high voltage operations. Aborting a program/erase high voltage operation causes PEG to be
cleared, indicating the sequence failed. PEG is set to a 1 when the module is reset. PEG is read only.
The value of PEG is valid only when PGM = 1 and/or ERS = 1 and after DONE transitions from 0 to 1
due to an abort or the completion of a program/erase operation. PEG is valid until PGM/ERS makes a 1
to 0 transition or EHV makes a 0 to 1 transition. The value in PEG is not valid after a 0 to 1 transition of
PEG DONE caused by PSUS or ESUS being set to logic 1. If PGM and ERS are both 1 when DONE makes a
qualifying 0 to 1 transition the value of PEG indicates the completion status of the PGM sequence. This
happens in an erase-suspended program operation.
0: Program or erase operation failed
1: Program or erase operation successful
If program or erases are attempted on blocks that are locked, the response from flash is PEG = 1, indicating that
the operation was successful, and the contents of the block are properly protected from the program or erase
operation.
Program
PGM is used to set up flash for a program operation. A 0 to 1 transition of PGM initiates a program
sequence. A 1 to 0 transition of PGM ends the program sequence. PGM can be set only under one of the
following conditions:
– User mode read (ERS is low and UTE is low)
– Erase suspend (ERS and ESUS are 1) with EHV low
PGM PGM can be cleared by the user only when PSUS and EHV are low and DONE is high. PGM is cleared
on reset.
0: Flash is not executing a program sequence.
1: Flash is executing a program sequence.
In an erase-suspended program, programming Flash locations in blocks which were being operated on in the
erase may corrupt FC data. This should be avoided due to reliability implications.
Program Suspend
PSUS is used to indicate the flash module is in program suspend or in the process of entering a suspend
state. The module is in program suspend when PSUS = 1 and DONE = 1. PSUS can be set high only
when PGM and EHV are high. A 0 to 1 transition of PSUS starts the sequence which sets DONE and
places the flash module in program suspend. The module enters suspend within this transition.
PSUS
PSUS can be cleared only when DONE and EHV are high. A 1 to 0 transition of PSUS with EHV = 1
starts the sequence which clears DONE and returns the flash module to program. The module cannot
exit program suspend and clear DONE while EHV is low. PSUS is cleared on reset.
0: Program sequence is not suspended.
1: Program sequence is suspended.
Erase
ERS is used to set up flash for an erase operation. A 0 to 1 transition of ERS initiates an erase sequence.
A 1 to 0 transition of ERS ends the erase sequence. ERS can only be set only in user mode read (PGM
ERS is low and UTE is low). ERS can be cleared by the user only when ESUS and EHV are low and DONE is
high. ERS is cleared on reset.
0: Flash is not executing an erase sequence.
1: Flash is executing an erase sequence.
Erase Suspend
ESUS is used to indicate that the flash module is in erase suspend or in the process of entering a
suspend state. The module is in erase suspend when ESUS = 1 and DONE = 1. ESUS can be set high
only when ERS and EHV are high and PGM is low. A 0 to 1 transition of ESUS starts the sequence which
sets DONE and places the flash in erase suspend. The flash module enters suspend within this
ESUS transition.
ESUS can be cleared only when DONE and EHV are high and PGM is low. A 1 to 0 transition of ESUS
with EHV = 1 starts the sequence which clears DONE and returns the module to erase. The flash module
cannot exit erase suspend and clear DONE while EHV is low. ESUS is cleared on reset.
0: Erase sequence is not suspended.
1: Erase sequence is suspended.
Enable High Voltage
The EHV bit enables the flash module for a high voltage program/erase operation. EHV is cleared on
reset. EHV must be set after an interlock write to start a program/erase sequence. EHV may be set,
initiating a program/erase, after an interlock under one of the following conditions:
– Erase (ERS = 1, ESUS = 0)
– Program (ERS = 0, ESUS = 0, PGM = 1, PSUS = 0)
– Erase-suspended program (ERS = 1, ESUS = 1, PGM = 1, PSUS = 0)
If a program operation is to be initiated while an erase is suspended the user must clear EHV while in
erase suspend before setting PGM.
In normal operation, a 1 to 0 transition of EHV with DONE high, PSUS and ESUS low terminates the
current program/erase high voltage operation.
EHV When an operation is aborted, there is a 1 to 0 transition of EHV with DONE low and the suspend bit for
the current program/erase sequence low. An abort causes the value of PEG to be cleared, indicating a
failed program/erase; address locations being operated on by the aborted operation contain
indeterminate data after an abort.
A suspended operation cannot be aborted. EHV may be written during suspend. EHV must be high for
the flash module to exit suspend. EHV may not be written after a suspend bit is set high and before
DONE transitions high. EHV may not be set low after the current suspend bit is set low and before DONE
transitions low.
0: Flash is not enabled to perform a high voltage operation.
1: Flash is enabled to perform a high voltage operation.
Aborting a high voltage operation leaves FC addresses in an indeterminate data state. This may be recovered by
executing an erase on the affected blocks.
If the user attempts to write two or more MCR bits simultaneously then only the bit with the
lowest priority level is written. Setting two bits with the same priority level is prevented by
existing write locks or do not put the flash in an illegal state.
For example, setting ERS and PGM simultaneously results in only ERS being set.
Attempting to clear EHV while setting PSUS results in EHV being cleared, while PSUS is
unaffected.
W
Reset 0 0 0 0 0 0 0 0 0 0 0 X 0 0 X X
R 0 0 0 0 0 0 LLOCK
Reset 0 0 0 0 0 0 1* 1* 1* 1* 1* 1* 1* 1* 1* 1*
= Unimplemented or Reserved
SLOCK SLOCK is not writable once an interlock write is completed until MCR[DONE] is set at the completion
of the requested operation. Likewise, SLOCK is not writable if a high voltage operation is suspended.
SLOCK is also not writeable during UTest operations, when AIE is high.
Upon reset, information from the shadow block is loaded into SLOCK. The SLOCK bit may be written
as a register. Reset causes the bits to go back to their shadow block value. The default value of the
SLOCK bit (assuming erased shadow location) is locked.
SLOCK is not writable unless LME is high.
Mid-Address Space Block Lock
A value of 1 in a bit of the lock register signifies that the corresponding block is locked for program and
erase. A value of 0 in the lock register signifies that the corresponding block is available to receive
program and erase pulses. The block numbering for Mid-Address Space starts with MLOCK[0] and
continues until all blocks are accounted.
The lock register is not writable once an interlock write is completed until MCR[DONE] is set at the
completion of the requested operation. Likewise, the lock register is not writable if a high voltage
MLOCK[1:0] operation is suspended. MLOCK is also not writeable during UTest operations, when AIE is high.
Upon reset, information from the shadow block is loaded into the block registers. The LOCK bits may
be written as a register. Reset causes the bits to go back to their shadow block value. The default
value of the LOCK bits (assuming erased shadow location) is locked.
In the event that blocks are not present (due to configuration or total memory size), the LOCK bits
default to be locked, and are not writable. The reset value is always 1 (independent of the shadow
block), and register writes have no effect.
MLOCK is not writable unless LME is high.
Low-Address Space Block Lock
A value of 1 in a bit of the lock register signifies that the corresponding block is locked for program and
erase. A value of 0 in the lock register signifies that the corresponding block is available to receive
LLOCK[9:0] program and erase pulses. The block numbering for Low-Address Space starts with LLOCK[0] and
continues until all blocks are accounted.
For more details on LLOCK, please see MLOCK field description.
LLOCK is not writable unless LME is high.
Note: A reset value of 1* in Figure 59 indicates that the reset value of these registers is
determined by Flash values in the shadow block. An erased shadow block causes the reset
value to be 1.
T
R HBE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R 0 0 0 0 0 0 0 0 0 0 HBLOCK
Reset 0 0 0 0 0 0 0 0 0 0 1* 1* 1* 1* 1* 1*
= Unimplemented or Reserved
Field Description
SSLOCK
R SLE 0 0 0 0 0 0 0 0 0 0 0 0 SMLOCK
Reset 0 0 0 0 0 0 0 0 0 0 0 1* 0 0 1* 1*
R 0 0 0 0 0 0 SLLOCK
Reset 0 0 0 0 0 0 1* 1* 1* 1* 1* 1* 1* 1* 1* 1*
= Unimplemented or Reserved
Field Description
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MSEL
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R 0 0 0 0 0 0 LSEL
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Field Description
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R 0 0 0 0 0 0 0 0 0 0 HSEL
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Field Description
R SAD 0 0 0 0 0 0 0 0 0 0 0 0 0 ADDR[14-13]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R ADDR[12-0] 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Field Description
Shadow Address
The SAD bit qualifies the address captured during an ECC Event Error, Single Bit Correction, or State
Machine operation.
SAD
The SAD register is not writable.
0: Address Captured is from Main Array Space.
1: Address Captured is from Shadow Array Space.
Address
The ADDR field provides the first failing address in the event of ECC event error (MCR[EER] set),
single bit correction (MCR[SBC] set), as well as providing the address of a failure that may have
occurred in a state machine operation (MCR[PEG] cleared). ECC event errors take priority over single
bit corrections, which take priority over state machine errors. This is especially valuable in the event of
a RWW operation, where the read senses an ECC error or single bit correction, and the state machine
ADDR[14:0] fails simultaneously. This address is always a Double Word address that selects 64 bits.
The ADDR field is writable, and can be used in the UTEST ECC Logic Check. If the ECC logic check
is enabled (UT0[EIE] = 1) then the AR will not update for ECC event error, single bit correction or state
machine errors.
If MCR[EER] or MCR[SBC] are set, the AR is locked from writing. MCR[PEG] does not affect the
writability of the ADDR field.
M4PFE
M1PFE
M0PFE
R 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
IFPFEN
DPFEN
R 0 0 0
BFEN
Field Description
Master ID Module
MnPFE
0 z4 Core Instruction
1 z4 Core Load/Store
4 eDMA
6 FlexRay
7 External Bus Interface (EBI)
Field Description
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0
M6AP M4AP M1AP M0AP
W
Reset 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 z4 Core Instruction
1 z4 Core Load/Store
4 eDMA
6 FlexRay
7 External Bus Interface (EBI)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
W
Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
In all cases, when a buffer miss occurs, it is allocated to the least-recently-used buffer within the
group and the just-fetched entry then marked as most-recently-used. If the flash access is for the
next-sequential line, the buffer is not marked as most-recently-used until the given address
produces a buffer hit.
This field is initialized by hardware reset to the value contained in address 0x7e00 of the shadow
LBCFG
block of the flash array. An erased or unprogrammed flash sets this field to 0b11.
This field controls the configuration of both the 4 x 128 and 4 x 256 line buffers.
00: All four buffers are available for any flash access, that is, there is no partitioning of the buffers
based on the access type.
01: Reserved
10: The buffers are partitioned into two groups with buffers 0 and 1 allocated for instruction fetches
and buffers 2 and 3 for data accesses.
11: The buffers are partitioned into two groups with buffers 0,1,2 allocated for instruction fetches and
buffer 3 for data accesses.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 EA 0 AID
MRE MRV EIE AIS AIE
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Field Description
UTest Enable
This status bit gives indication when UTest is enabled. All bits in UT0, UT1, UT2, UMISR0, UMISR1,
UMISR2, UMISR3, and UMISR4 are locked when this bit is 0. This bit is not writable to a 1, but may
be cleared. The reset value is 0. The method to set this bit is to provide a password, and if the
UTE password matches, the UTE bit is set to reflect the status of enabled, and is enabled until it is cleared
by a register write. The UTE password will only be accepted if MCR[PGM] = 0 and MCR [ERS] = 0
(program and erase are not being requested). UTE can only be cleared if UT0[AID] = 1, UT0[AIE] and
UT0[EIE] = 0. While clearing UTE, writes to set AIE or set EIE will be ignored. For UTE, the password
0xF9F9_9999 must be written to the UT0 register.
ECC Algorithm. EA is a status bit that provides information about the ECC algorithm used within the
Flash. Either a modified
EA Hamming code is used, or a modified Hsiao code is used.
0: Default ECC Algorithm, modified Hamming algorithm.
1: Optional/Alternative ECC Algorithm, modified Hsiao algorithm.
Field Description
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
DAI
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
DAI
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R MS[031-016]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R MS[015-000]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
R MS[063-048]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R MS[047-032]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
R MS[095-080]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R MS[079-064]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
R MS[127-112]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R MS[111-096]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R MS[143-128]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
The UMISR provides a means to calculate an MISR during Array Integrity operations.
The MISR is calculated by taking the previous MISR value and then “exclusive ORing” the new data. In
addition the most significant bit (in this case it is MISR[144]), is then “exclusive ORed” into input of
MISR[6], MISR[5], MISR[1], and MISR[0]. The result of the “exclusive OR” is shifted left on each read.
After running the user-test-mode margin read (also referenced as factory margin read) sequence on the
C90fl flash module, the MISR registers cannot be written such that the next user-test-mode margin read
sequence cannot seed the MISRs as desired. This will cause the generated MISRs to be unexpected for
the next user margin read sequences, in case customers want to run the user margin read more than
once.
Factory Margin Read may be done to selected and unlocked blocks by combining
UT0[MRE] and UT0[MRV] with the Array Integrity check. If UT0[MRE] is set, UT0[AIS] has
no affect, and the reads will be done sequentially.
The data to be read is customer specific, thus a customer can provide user code into the
flash and the correct MISR value is calculated. The customer is free to provide any random
or non-random code, and a valid MISR signature is calculated. Once the operations is
completed, the results of the reads can be checking by reading the MISR value. Factory
Margin Read is a self timed event, and is independent of system clocks, or wait states
selected. Margin ECC corrections or detections are not done during the Factory Margin
Read test:
1. Enable UTest mode.
2. Select the block, or blocks to be receive margin read check by writing ones to the
appropriate registers in LMS or HBS/EHS registers. Make sure that selected blocks are
also unlocked.
Note: It is not possible to do UTest operations on the shadow block.
Note: It is possible to do User Mode array reads during the Factory Margin Read test, if desired,
but the partition rules for Read While Write used during program and erase are in effect
during Factory Margin Reads.
3. Set the UT0[MRE] bit.
4. Set the UT0[MRV] bit to desired value depending on it is desired to do One’s Margin or
Zero’s Margin.
5. Seed the MISR UMISR0 thru UMISR4 with desired values.
6. Set the UT0[AIE] bit.
a) If desired, the Margin Read operation may be aborted prior to UT0[AID] going
high. This may be done by clearing the UT0[AIE] bit and then continuing to the
next step. It should be noted that in the event of an aborted Margin Read check
the MISR registers will contain a signature for the portion of the operation that was
completed prior to the abort, and will not be deterministic.
7. Wait until the UT0[AID] bit goes high.
8. Read values in the MISR registers (UMISR0 through UMISR4) to ensure correct
signature.
9. Write a logic 0 to the UT0[AIE] bit.
Note: If it is desired to do two or more margin reads, and it is desired to re-seed the MISR, a reset
must be done between operations. If the subsequent margin reads can be done with the
previously calculated MISR value, then a reset is not required.
No
Step 3 Last write
?
Yes
PGM = 0 User mode read state
Step 4 Write MCR
or erase suspend
EHV = 1
WRITE
Step 5 PSUS = 1 DONE = 1
High voltage active Read MCR
Access MCR
Abort PSUS = 0 Program suspend
WRITE EHV = 1
EHV = 0 Write MCR
DONE = 0
DONE
? Note: PSUS cannot be cleared while
PEG = 0 PEG valid period DONE = 1 EHV = 0. PSUS and EHV cannot
both be changed in a single
write operation.
Step 6 Read MCR
Success Failure
PEG = 1 PEG PEG = 0
value
?
Step 7
Write MCR
EHV = 0
PGM = 0
0 ESUS 1
?
User mode read state Erase suspend
Software Locking
A software mechanism is provided to independently lock/unlock each high-, mid-, and low-
address space against program and erase.
Software locking is done through the LMLR (low/mid-address space block lock register),
SLMLR (secondary low/mid-address space block lock register), or HLR (high-address
space block lock register). These can be written through register writes and read through
register reads.
When the program/erase operations are enabled through hardware, software locks are
enforced through doing register writes.
3. Write to any address in flash. This is referred to as an erase interlock write. The
interlock write causes the values of SOC specific shadow enable to be captured and
causing MCR[PEAS] to be set/cleared.
4. Write a logic 1 to the MCR[EHV] bit to start an internal erase sequence or skip to step 9
to terminate.
5. Wait until the MCR[DONE] bit goes high.
6. Confirm MCR[PEG] = 1.
7. Write a logic 0 to the MCR[EHV] bit.
8. If more blocks are to be erased, return to step 2.
9. Write a logic 0 to the MCR[ERS] bit to terminate the erase.
The erase sequence is presented graphically in Figure 76. The erase suspend operation
detailed in Figure 76 is discussed in Section , Flash erase suspend/resume.
After setting MCR[ERS], one write, referred to as an interlock write, must be performed
before MCR[EHV] can be set to a 1. This interlock causes the values of SOC specific
shadow enable to be captured. Data words written during erase sequence interlock writes
are ignored. The user may terminate the erase sequence by clearing MCR[ERS] before
setting MCR[EHV].
An erase operation may be aborted by clearing MCR[EHV] assuming MCR[DONE] is low,
MCR[EHV] is high, and MCR[ESUS] is low. An erase abort forces the module to step 8 of
the erase sequence. An aborted erase results in MCR[PEG] being set low, indicating a
failed operation. The blocks being operated on before the abort contain indeterminate data.
The user may not abort an erase sequence while in erase suspend.
Warning: Aborting an erase operation will leave the flash core blocks
being erased in an indeterminate data state. This may be
recovered by executing an erase on the affected blocks.
ERS = 0
Step 4 Write MCR User mode read state
EHV = 1
WRITE
Step 5 ESUS = 1 DONE = 1
High voltage active Read MCR
Access MCR
Abort ESUS = 0 Erase suspend
WRITE EHV = 1
EHV = 0 Write MCR
DONE = 0
DONE EHV = 0
?
Write MCR
PEG = 0 PEG Valid Period DONE = 1
PGM = 1
ERS = 0
program the main address space and vice-versa. The user must terminate the shadow
erase operation to program or erase the main address space.
Note: If an erase of user space is requested, and a suspend is done with attempts to erase
suspend program shadow space, this attempted program will be directed to user space as
dictated by the state of MCR[PEAS]. Likewise an attempted erase suspended program of
user space, while the shadow space is being erased, will be directed to shadow space as
dictated by the state of MCR[PEAS].
The shadow block cannot use the RWW feature. After an operation is started in the shadow
block, a read cannot be done to the shadow block, or any other block. Likewise, after an
operation is started in a block in low-/mid-/high-address space, a read cannot be done in the
shadow block.
The shadow block contains information about how the lock registers are reset. The first and
second words can be used for reset configuration words. All other words can be used for
user-defined functions or other configuration words.
The shadow block may be locked/unlocked against program or erase by using the LMLR or
SLMLR discussed in Section 12.3.2, Register descriptions.
Programming the shadow row has similar restrictions to programming the array in terms of
how ECC is calculated. See Section 12.4.5, Flash Programming for more information. Only
one program is allowed per 64-bit ECC segment between erases. Erase of the shadow row
is done similarly as an array erase. See Section 12.4.6, Flash Erase for more information.
13.1 Introduction
The memory protection unit (MPU) provides hardware access control for all memory
references generated in a device. Using preprogrammed region descriptors that define
memory spaces and their associated access rights, the MPU concurrently monitors all
system bus transactions and evaluates the appropriateness of each transfer. Memory
references with sufficient access control rights are allowed to complete, but references that
are not mapped to any region descriptor or have insufficient rights are terminated with a
protection error response.
The MPU implements a set of program-visible region descriptors that monitor all system bus
addresses. The result is a hardware structure with a two-dimensional connection matrix,
where the region descriptors represent one dimension and the individual system bus
addresses and attributes are the second dimension.
13.1.1 Features
The MPU has these major features:
● Support for 16 memory region descriptors, each 128 bits in size
– Specification of start and end addresses provide granularity for region sizes from
32 bytes to 4 GB
– MPU is invalid at reset, thus no access restrictions are enforced
– 2 types of access control definitions: processor core bus master supports the
traditional {read, write, execute} permissions with independent definitions for
supervisor and user mode accesses; the remaining non-core bus masters (eDMA,
FlexRay, and EBI(f)) support {read, write} attributes
– Automatic hardware maintenance of the region descriptor valid bit removes issues
associated with maintaining a coherent image of the descriptor
– Alternate memory view of the access control word for each descriptor provides an
efficient mechanism to dynamically alter the access rights of a descriptor only
– For overlapping region descriptors, priority is given to permission granting over
access denying as this approach provides more flexibility to system software
● Support for two XBAR slave port connections (SRAM and PBRIDGE)
– For each connected XBAR slave port (SRAM and PBRIDGE), MPU hardware
monitors every port access using the preprogrammed memory region descriptors
– An access protection error is detected if a memory reference does not hit in any
memory region or the reference is flagged as illegal in all memory regions where it
does hit. In the event of an access error, the XBAR reference is terminated with an
error response and the MPU inhibits the bus cycle being sent to the targeted slave
device
– 64-bit error registers, one for each XBAR slave port, capture the last faulting
address, attributes, and detail information
f. EBI not available on all packages and is not available, as a master, for customer.
0 2 Device SRAM
1 7 Device Peripheral Bridge (PBRIDGE)
on page 13-
0x0000 MPU_CESR — MPU control/error status register
298
0x0004–0x000F Reserved
on page 13-
0x0010 MPU_EAR0 — MPU error address register, slave port 0
299
on page 13-
0x0014 MPU_EDR0 — MPU error detail register, slave port 0
300
on page 13-
0x0018 MPU_EAR1 — MPU error address register, slave port 1
299
on page 13-
0x001C MPU_EDR1 — MPU error detail register, slave port 1
300
0x0020 Reserved
0x0024 Reserved
0x0028–0x03FF Reserved
on page 13-
0x0400 MPU_RGD0 — MPU region descriptor 0
301
on page 13-
0x0410 MPU_RGD1 — MPU region descriptor 1
301
on page 13-
0x0420 MPU_RGD2 — MPU region descriptor 2
301
on page 13-
0x0430 MPU_RGD3 — MPU region descriptor 3
301
on page 13-
0x0440 MPU_RGD4 — MPU region descriptor 4
301
on page 13-
0x0450 MPU_RGD5 — MPU region descriptor 5
301
on page 13-
0x0460 MPU_RGD6 — MPU region descriptor 6
301
on page 13-
0x0470 MPU_RGD7 — MPU region descriptor 7
301
on page 13-
0x0480 MPU_RGD8 — MPU region descriptor 8
301
on page 13-
0x0490 MPU_RGD9 — MPU region descriptor 9
301
on page 13-
0x04A0 MPU_RGD10 — MPU region descriptor 10
301
on page 13-
0x04B0 MPU_RGD11 — MPU region descriptor 11
301
on page 13-
0x04C0 MPU_RGD12 — MPU region descriptor 12
301
on page 13-
0x04D0 MPU_RGD13 — MPU region descriptor 13
301
on page 13-
0x04E0 MPU_RGD14 — MPU region descriptor 14
301
on page 13-
0x04F0 MPU_RGD15 — MPU region descriptor 15
301
0x00500–0x07FF Reserved
on page 13-
0x0800 MPU_RGDAAC0 — MPU RGD alternate access control 0
306
on page 13-
0x0804 MPU_RGDAAC1 — MPU RGD alternate access control 1
306
on page 13-
0x0808 MPU_RGDAAC2 — MPU RGD alternate access control 2
306
on page 13-
0x080C MPU_RGDAAC3 — MPU RGD alternate access control 3
306
on page 13-
0x0810 MPU_RGDAAC4 — MPU RGD alternate access control 4
306
on page 13-
0x0814 MPU_RGDAAC5 — MPU RGD alternate access control 5
306
on page 13-
0x0818 MPU_RGDAAC6 — MPU RGD alternate access control 6
306
on page 13-
0x081C MPU_RGDAAC7 — MPU RGD alternate access control 7
306
on page 13-
0x0820 MPU_RGDAAC8 — MPU RGD alternate access control 8
306
on page 13-
0x0824 MPU_RGDAAC9 — MPU RGD alternate access control 9
306
on page 13-
0x0828 MPU_RGDAAC10 — MPU RGD alternate access control 10
306
on page 13-
0x082C MPU_RGDAAC11 — MPU RGD alternate access control 11
306
on page 13-
0x0830 MPU_RGDAAC12 — MPU RGD alternate access control 12
306
on page 13-
0x0834 MPU_RGDAAC13 — MPU RGD alternate access control 13
306
on page 13-
0x0838 MPU_RGDAAC14 — MPU RGD alternate access control 14
306
on page 13-
0x083C MPU_RGDAAC15 — MPU RGD alternate access control 15
306
0x0840–0x3FFF Reserved
supported access type (for example, a write to a read-only register or a read of a write-only
register) generate a bus error termination.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R HRL
SPERR[0:7](1)
W
Reset 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R NSP NRGD
VLD
W
Reset 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
= not implemented
1. Each SPERR bit can be cleared by writing a one to the bit location.
Bit 0 indicates an SRAM access protection error and bit 1 a peripheral bridge protection error.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R EADDR[31:16]
W
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R EADDR[16:0]
Reset – – – – – – – – – – – – – – – –
= not implemented
g. See Table 80 in Section 13.2, MPU-to-XBAR slave port mapping, for MPU slave port details.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R EACD
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Reset – – – – – – – – – – – – – – – –
= not implemented
h. See Table 80 in Section 13.2, MPU-to-XBAR slave port mapping, for MPU slave port details.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R SRTADDR[26:11]
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SRTADDR[10:0]
Reset – – – – – – – – – – – 0 0 0 0 0
= not implemented
Start Address
0–26
This field defines the most significant bits of the 0-modulo-32 byte start address of the memory
SRTADDR
region.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R ENDADDR[26:11]
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R ENDADDR[10:0]
Reset – – – – – – – – – – – 1 1 1 1 1
= not implemented
End Address
0–26 This field defines the most significant bits of the 31-modulo-32 byte end address of the memory
ENDADDR region. There are no hardware checks to verify that ENDADDR > SRTADDR; the software must
properly load these region descriptor fields.
Address: MPU_BASE (0xFFF1_0000) + 0x400 + (16*n) + 0x8 (MPU_RGDn.Word2) Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
M7WE
M6WE
M4WE
M7RE
M6RE
M4RE
R
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R M0UM
M0PE
M0SM
W r w x
Reset – – – – – – – – – – – – – – – –
= not implemented
Refer to Table 49, in the XBAR chapter, to see the Master ID assignments.
26 Bus Master ID 0 (Core) Process Identifier Enable. If set, this flag specifies that the process identifier and
mask defined in MPU_RGDn.Word3 are to be included in the region hit evaluation. If cleared, the region
M0PE hit evaluation does not include the process identifier.
Bus Master ID 0 (Core) Supervisor Mode Access Control
This 2-bit field defines the access controls for bus master ID 0 when operating in supervisor mode. The
27–28 M0SM field is defined as:
00 r, w, x = read, write and execute allowed
M0SM
01 r, –, x = read and execute allowed, but no write
10 r, w, – = read and write allowed, but no execute
11 Same access controls as that defined by M0UM for user mode
Bus Master ID 0 (Core) User Mode Access Control
29–31 This 3-bit field defines the access controls for bus master ID 0 when operating in user mode. The M0UM
field consists of three independent bits, enabling read, write, and execute permissions: {r, w, x}. If set,
M0UM
the bit allows the given access type to occur; if cleared, an attempted access of that mode may be
terminated with an access error (if not allowed by any other descriptor) and the access not performed.
Address: MPU_BASE (0xFFF1_0000) + 0x400 + (16*n) + 0xc (MPU_RGDn.Word3) Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
PID PIDMASK
W
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
VLD
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= not implemented
Process Identifier
0–7 This 8-bit field specifies that the optional process identifier is to be included in the determination of
PID whether the current access hits in the region descriptor. This field is combined with the PIDMASK and
included in the region hit determination if MPU_RGDn.Word2[MxPE] is set.
Process Identifier Mask
8–15 This 8-bit field provides a masking capability so that multiple process identifiers can be included as part
of the region hit determination. If a bit in the PIDMASK is set, the corresponding bit of the PID is ignored
PIDMAS
in the comparison. This field is combined with the PID and included in the region hit determination if
K
MPU_RGDn.Word2[MxPE] is set. For more information on the handling of the PID and PIDMASK, see
Section , Access Evaluation—Hit Determination.
Valid
This bit signals the region descriptor is valid. Any write to MPU_RGDn.Word{0,1,2} clears this bit, but a
31
write to MPU_RGDn.Word3 sets or clears this bit depending on bit 31 of the write operand.
VLD
0 Region descriptor is invalid
1 Region descriptor is valid
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
M7WE
M6WE
M4WE
M7RE
M6RE
M4RE
R 0 0 0 0 0 0 0 0 0 0
Reset – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 M0UM
M0PE
M0SM
W r w x
Reset – – – – – – – – – – – – – – – –
= not implemented
In this example, there are eight descriptors used to span nine regions in the three main
spaces of the system memory map (flash, RAM, and IPS peripheral space). Each
region indicates the specific permissions for each of the four bus masters and this
definition provides an appropriate set of shared, private and executable memory
spaces.
Of particular interest are the two overlapping spaces: region descriptors 2 and 3, and 3
and 4.
The space defined by RGD2 with no overlap is a private data and stack area that
provides read/write access to CP0 only. The overlapping space between RGD2 and
RGD3 defines a shared data space for passing data from CP0 to CP1 and the access
controls are defined by the logical OR of the two region descriptors. Thus, CP0 has
(r w – | r – –) = (r w –) permissions, while CP1 has (– – – | r – –) = (r – –) permission in
this space. Both DMA engines are excluded from this shared processor data region.
The overlapping spaces between RGD3 and RGD4 defines another shared data
space, this one for passing data from CP1 to CP0. For this overlapping space, CP0 has
(r – – | – – –) = (r – –) permission, while CP1 has (r w – | r – –) = (r w –) permission.
The non-overlapped space of RGD4 defines a private data and stack area for CP1
only.
The space defined by RGD5 is a shared data region, accessible by all four bus
masters. Finally, the slave peripheral space mapped onto the peripheral bus is
partitioned into two regions: one (RGD6) containing the MPU’s programming model
accessible only to the two processor cores, and the remaining peripheral region
(RGD7) accessible to both processors and the traditional eDMA master.
This example is intended to show one possible application of the capabilities of the
memory protection unit in a typical system.
Warning: Program code occupies the end of the MPU region (#0) in
which core instruction accesses are allowed. The address
region immediately afterwards is protected by the MPU
(region #1) from instruction fetches by the core (or any PID=1
access).
If the last instruction in the MPU region #0 space is a branch which the core takes while the
core attempts to fetch instructions via instruction cache line fill from the MPU region #1 the
MPU asserts a bus error (a PID=1 executable access into a region which only allows
read/write accesses from PID=2). The core immediately takes the exception as a 'machine
check'.
In this case, modify the 'machine check' exception handler to expect this behavior.
14.2 Introduction
The External Bus Interface (EBI) provides an on-board interface for mapping external
memory to the SPC564A74xx, SPC564A80xx microcontroller. The EBI includes a memory
controller that generates interface signals to support a variety of external memory types,
including Single Data Rate (SDR) burst mode flash, SRAM, and asynchronous memories.
14.2.1 Overview
On the SPC564A74xx, SPC564A80xx microcontroller, the EBI supports two sets of external
signals: the EBI bus signals and the calibration bus signals. They are very similar in function
but have different purposes.
The calibration bus is a powerful development feature that enables system designers to
interface dual-port SRAM with a system under development. This gives the system the
capability of loading engine calibration data into SRAM instead of flash memory, making
reprogramming the calibration data considerably faster and avoids the necessity of having
to reconfigure pins each time calibration data is changed.
Note: The calibration signals are only available on the calibration package. It is a very useful
development feature but not used in production systems.
Figure 85 shows an overview of the EBI, including the calibration signals. Each external
memory component used is mapped to its own addressing region. Each region is separately
programmable with region address and bus configuration information.
Available bus configurations include 16-bit, 16-bit multiplexed and 32-bit multiplexed. In the
multiplexed modes. address and data signals are multiplexed on the same pins.
Cal_ADDR[13:30]
Cal_DATA[0:31]
ALE
CLKOUT
Cal_TS
Cal_OE Region 0 Region 2 Region 3
Cal_WE[0:1]
Cal_RD_WR Controls Controls Controls
Cal_WE[2:3]/BE[2:3]
Calibration EBI Controls
Cal_CS0
Cal_CS2
Cal_CS3
CS0
CS1
CS2
CS3
ALE System EBI Controls
CLKOUT
TS Region 0 Region 0 Region 2 Region 3
TA Controls Controls Controls Controls
OE
WE[0:3]
BDIP
RD_WR ADDR[13:30]
WE[0:1]/BE[0:1] DATA[0:31]
14.2.2 Features
Note: This list is a superset list of all possible features the EBI supports. Refer to Section 14.1,
Information Specific to This Device, for details on specifics for a particular device due to
package limitations.
● 32-Bit Address bus with transfer size indication (only 24-29 available on pins)
● 32-Bit Data bus (16-bit Data Bus Mode also supported)
● Multiplexed Address on Data pins (single master)
● Memory controller with support for various memory types:
– synchronous burst SDR flash and SRAM
– asynchronous/legacy flash and SRAM
● Burst support (wrapped only)
● Bus monitor
● Port size configuration per chip select (16 or 32 bits)
● Configurable wait states
● Configurable internal or external transfer acknowledge (TA) per chip select
● Support for Dynamic Calibration with up to 4 chip-selects
● Four Write/Byte Enable (WE[0:3]/BE[0:3]) signals
● Slower-speed clock modes
● Stop and Module Disable Modes for power savings
● Optional automatic CLKOUT gating to save power and reduce EMI
● Misaligned access support (for chip-select accesses only)
Stop mode
When a request is made to enter Stop Mode (controlled in device logic outside EBI), the EBI
block completes any pending bus transactions and acknowledges the stop request. After
the acknowledgement, the system clock input may be shut off by the clock driver on the
MCU. While the clocks are shut off, the EBI is not accessible. While in stop mode, accesses
to the EBI from the internal master will terminate with transfer error.
Slower-speed modes
In slower-speed modes, the external CLKOUT frequency is divided (by 2, 3, etc.) compared
with that of the internal system bus. The EBI behavior remains dictated by the mode of the
EBI, except that it drives and samples signals at the CLKOUT frequency rather than the
internal system frequency. This mode is selected by writing a clock control register in a block
outside of the EBI. Refer to the device-specific documentation to see which slower-speed
modes are available for a particular MCU (1/2, 1/3, etc.).
Debug mode
When the MCU is in Debug Mode, the EBI behavior is unaffected and remains dictated by
the mode of the EBI.
CS[0:3],
CS[0:3], ADDR[8:11] CS[0:3] or GPIO[0:3]
0:3 ADDR[8:11] or — — —
or GPIO[0:3] as rqd.(4) as rqd.(4)
GPIO[0:3] as rqd.(4)
8 ADDR[12] 0b001 ADDR[12] 0b001 GPIO[8](5) 0b000
9:10 ADDR[13:14] 0b001 ADDR[13:14] 0b001 WE[2:3] 0b100
11 ADDR[15] 0b001 ADDR[15] 0b001 GPIO[11](5) 0b000
GPIO[12:27] or 0b000 / DATA[16:31] /
12:27 ADDR[16:31] 0b001 0b100
FlexRay usage(5) 0b010 ADDR[16:31](6)
DATA[0:15] / DATA[0:15] /
28:43 DATA[0:15] 0b001 0b001 0b001
ADDR[16:31] ADDR[0:15](6)
62 RD_WR 0b001 RD_WR 00b01 RD_WR 0b001
63 BDIP 0b001 BDIP 0b001 BDIP 0b001
64 WE[0]/BE[0] 0b001 WE[0]/BE[0] 0b001 WE[0]/BE[0] 0b001
65 WE[1]/BE[1] 0b001 WE[1]/BE[1] 0b001 WE[1]/BE[1] 0b001
68 OE 0b001 OE 0b001 OE 0b001
69 TS 0b001 ALE 0b010 ALE 0b010
70 TA 0b001 TS 0b010 TS 0b010
1. 16-bit non-multiplexed mode supported for EBI configured with EBI_MCR[D16_31]=0, and respective
BRx/CAL_BRx[AD_MUX]=0. Pin multiplexing does not support 16-bit non multiplexed mode for EBI configured with
EBI_MCR[D16_31]=1.
2. 16 bit multiplexed mode shown for EBI configured with EBI_MCR[D16_31]=0, and respective BRx/CAL_BRx[AD_MUX]=1.
This is the optimal 16 bit mux mode, as it allows access to FlexRay signals on unused EBI signals. Operation also possible
with EBI_MCR[D16_31]=1, using DATA[16:31] signals for EBI and leaving DATA[0:15] balls available for GPIO use.
3. 32-bit multiplexed mode shown for EBI configured with EBI_MCR[D16_31]=0, and respective BRx/CAL_BRx[AD_MUX]=1.
4. Pin functionality chosen dependent on required addressing range and chip select availability.
5. Pin function/s not required to support EBI in this usage mode.
6. Data/address dynamically multiplexed internally by EBI, not SIU pin muxing.
14.3.1 Overview
Table 92 lists the external pins used by the EBI. Not all signals listed here are available
external to the chip.
CLKOUT — Clockout
CLKOUT is a general-purpose clock output signal to connect to the clock input of SDR
external memories and in some cases to the input clock of another MCU in multi-master
configurations.
OE — Output Enable
OE is used to indicate when an external memory is permitted to drive back read data.
External memories must have their data output buffers off when OE is negated. OE is only
asserted for chip-select accesses.
For read cycles, OE is asserted one clock after TS assertion and held until the termination of
the transfer. For write cycles, OE is negated throughout the cycle.
TA — Transfer Acknowledge
TA is asserted to indicate that the slave has received the data (and completed the access)
for a write cycle, or returned data for a read cycle. If the transaction is a burst read, TA is
asserted for each one of the transaction beats. For write transactions, TA is only asserted
once at access completion, even if more than one write data beat is transferred.
TA is driven by the EBI when the access is controlled by the chip selects (and SETA=0).
Otherwise, TA is driven by the slave device to which the current transaction was addressed.
TS — Transfer Start
TS is asserted by the current bus owner to indicate the start of a transaction on the external
bus.
TS is only asserted for the first clock cycle of the transaction, and is negated in the
successive clock cycles until the end of the transaction.
ADDR[3:31] 0 1
BDIP 0 1
CAL_CS[0:3] 0 1
Only 1 during write access or on Address
DATA[0:31] 0
phase when Addr/Data muxing is enabled.
OE 0 1
RD_WR 0 1
Only 1 during chip-select (or cal-chip-
TA 0
select) SETA=0 access
TS 0 1
WE[0:3]/BE[0:3] 0 1
1. The values in this table only indicate when signals are strongly driven, not the logic value on the pin itself.
2. This assumes that the clock to the EBI is shut off when MDIS=1. This is an optional device feature. If the clocks are left
running to EBI even when MDIS=1, then the EBI OBE behavior is as if in Single Master Mode (though EBI accesses are not
supported in this scenario).
See Section 14.6.1, Booting from external memory for related application information.
EBI_BASE+0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0
AD_MUX
D16_31
ACGE
MDIS
DBM
W
RESET: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
= Unimplemented or Reserved
The ACGE bit enables the EBI feature of turning off CLKOUT (holding it high) during idle periods
16
in-between external bus accesses.
ACGE
The MDIS bit controls an internal EBI “enable clk” signal which can be used (if MCU logic supports)
to control the clocks to the EBI. The MDIS bit allows the clock to be stopped to the non-memory
25 mapped logic in the EBI, effectively putting the EBI in a software controlled power-saving state.
MDIS See Section , Module disable mode for more information. No external bus accesses can be
performed when the EBI is in Module Disable Mode (MDIS=1).
The D16_31 bit controls whether the EBI uses the DATA[0:15] or DATA[16:31] signals, when in 16-
29 bit Data Bus Mode (DBM=1) or for chip-select accesses to a 16-bit port (PS=1). For systems using
D16_31 A/D muxing with a 16-bit port, it is recommended to set D16_31 to 1.
The AD_MUX bit controls whether non-chip-select accesses have the address driven on the data
30
bus in the address phase of a cycle.
AD_MUX
31 The DBM bit controls whether the EBI is in 32-bit or 16-bit Data Bus Mode.
DBM
1: 16-bit Data Bus Mode is used
0: 32-bit Data Bus Mode is used
EBI_BASE+0x8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BMTF
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 96. EBI Transfer Error Status Register (EBI_TESR) Field Descriptions
Name Description
31 This bit is set if the cycle was terminated by a bus monitor timeout.
BMTF
1: Bus monitor timeout occurred
0: No error
EBI_BASE+0xC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0
BMT BME
W
RESET: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 97. EBI Bus Monitor Control Register (EBI_BMCR) Field Descriptions
Name Description
16-23
This field defines the timeout period, in 8 external bus clock resolution, for the Bus Monitor. See
BMT
Section , Bus Monitor for more details on bus monitor operation.
Timeout Period = (2 + (8 * BMT)) / external bus clock frequency.
BME —Bus Monitor Enable
This bit controls whether the bus monitor is enabled for internal to external bus cycles. The BME bit
24
is ignored (treated as 0) for chip-select accesses with internal TA (SETA=0).
BME
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0
AD_MUX
WEBS
TBDIP
SETA
BA
BL
PS
BI
V
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. Some upper bits of the BA field may be tied to a fixed value, in which case the reset value is this fixed value and not zero.
Refer to Section 14.1, Information Specific to This Device, to see which bits this applies to, if any.
BA — Base Address
These bits are compared to the corresponding unmasked address signals among ADDR[0:16] of
the internal address bus to determine if a memory bank controlled by the memory controller is
being accessed by an internal bus master.
0-16
BA
An MCU may have some of the upper bits of the BA field tied to a fixed value internally in order to restrict
the address range of the EBI for that MCU. Refer to the device-specific documentation to see which
bits are tied off, if any, for a particular MCU. Tied-off bits can be read but not written. These bits are
ignored by the EBI during the chip-select address comparison. However, the internal bridge of the
MCU most likely requires that the chip-select banks be located in memory regions corresponding to the
fixed values chosen.
PS — The PS bit determines the data bus width of transactions to this chip-select bank.
20
In the case where the DBM bit in EBI_MCR is set for 16-bit Data Bus Mode, the PS bit value is ignored and
PS is always treated as a ’1’ (16-bit port).
1: 16-bit port
0: 32-bit port
The AD_MUX bit controls whether accesses for this chip select have the address driven on the
24 data
AD_MUX bus in the address phase of a cycle
Burst
Value PS # Beats in Burst(2)
Length(1)
0 (32-bit) 8
0(3) 8-word(4)
25 1 (16-bit) 16
BL
0 (32-bit) 4
1 4-word
1 (16-bit) 8
1. Total amount of data fetched in a burst transfer.
2. Number of external data beats used in external burst transfer. The size
of each beat is determined by PS value.
3. An 8-word burst length is only supported for device’s using 64-bit AMBA
data bus width to EBI.
4. A word always refers to 32-bits of data, regardless of PS.
The EBI does NOT support a 2-word external burst length. This means that neither a 4-beat burst to a 16-
bit external memory (nor a 2-beat burst to 32-bit external memory) are supported.
This bit determines how long the BDIP signal is asserted for each data beat in a burst cycle. See
27
Section , TBDIP effect on burst transfer for details.
TBDIP
1: Only assert BDIP (BSCY+1) external cycles before expecting subsequent burst data beats
0: Assert BDIP throughout the burst cycle, regardless of wait state configuration
The SETA bit controls whether accesses for this chip select will terminate (end transfer without
error) based on externally asserted TA or internally asserted TA. SETA should only be set when the
29 BI bit is 1 as well, since burst accesses with SETA=1 are not supported. Setting SETA=1 causes
SETA the BI bit to be ignored (treated as 1, burst inhibited).
1: Transfer Acknowledge (TA) is an input to the EBI, data phase will be terminated by an external
device
0: Transfer Acknowledge (TA) is an output from the EBI, data phase will be terminated by the EBI
BI — Burst Inhibit1
This bit determines whether or not burst read accesses are allowed for this chip-select bank. The
30
BI bit is ignored (treated as 1) for chip-select accesses with external TA (SETA=1).
BI
1: Disable burst accesses for this bank. This is the default value out of reset (or when SETA=1).
0: Enable burst accesses for this bank
V — Valid bit
The user writes this bit to indicate that the contents of this Base Register and Option Register pair
31
are valid. The appropriate CS signal does not assert unless the corresponding V-bit is set.
V
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0
AM SCY BSCY
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. Some upper bits of the AM field may be tied to a fixed value, in which case the reset value is this fixed value and not zero.
Refer to Section 14.1, Information Specific to This Device, to see which bits this applies to, if any.
AM — Address Mask
This field allows masking of any corresponding bits in the associated Base Register. Masking the
address independently allows external devices of different size address ranges to be used. Any
clear bit masks the corresponding address bit. Any set bit causes the corresponding address bit to
0-16 be used in comparison with the address pins. Address mask bits can be set or cleared in any order
AM in the field, allowing a resource to reside in more than one area of the address map. This field can
be read or written at any time.
An MCU may have some of the upper bits of the AM field tied to a fixed value internally in order to restrict
the address range of the EBI for that MCU. See the corresponding Note for the Base Register BA field
for more details. Refer to the device-specific documentation to see which bits are tied off, if any, for a
particular MCU. Tied-off bits can be read but not written.
This field represents the number of wait states (external cycles) inserted after the address phase in
the single transfer case, or in the first beat of a burst, when the memory controller handles the
24-27
external memory access. Values range from 0 to 15. This is the main parameter for determining the
SCY length of the cycle. These bits are ignored when SETA=1.
The total cycle length for the first beat (including the TS cycle) = (2+SCY) external clock cycles.
See Section , Example wait state calculation for related application information.
BSCY — Burst beats length in clocks(1)
This field determines the number of wait states (external cycles) inserted in all burst beats except
the first, when the memory controller starts handling the external memory access and thus is using
SCY[0:3] to determine the length of the first beat. These bits are ignored when SETA=1.
The total memory access length for each beat is (1 + BSCY) external clock cycles.
The total cycle length (including the TS cycle) = (2+SCY) + (#beats(2)-1) * (BSCY+1).
29-30
BSCY
Value Meaning
BA BA BA BA BA BA BA AM AM AM AM AM AM AM AM
[0] [1] [2] [3] [4] [15] [16] [0] [1] [2] [3] [4] [5] [6] [16]
A[0:16]
AM[0:16]
Match
When a match is found on one of the chip-select banks, all its attributes (from the
appropriate Base and Option Registers) are selected for the functional operation of the
external memory access, such as:
● Number of wait states for a single memory access, and for any beat in a burst access
● Burst enable
● Port size for the external accessed device
See Section , EBI Base Registers (EBI_BR0-EBI_BR3, EBI_CAL_BR0-3) and Section , EBI
Option Registers (EBI_OR0-EBI_OR3, EBI_CAL_OR0-3) for a full description of all chip-
select attributes.
When no match is found on any of the chip-select banks, the default transfer attributes
shown in Table 100 are used.
Bus Monitor
When enabled (via the BME bit in the EBI_BMCR), the bus monitor detects when no TA
assertion is received within a maximum timeout period for external TA accesses. The
timeout for the bus monitor is specified by the BMT field in the EBI_BMCR. Each time a
timeout error occurs, the BMTF bit is set in the EBI_TESR. The timeout period is measured
in external bus (CLKOUT) cycles. Thus the effective real-time period is multiplied (by 2, 3,
etc.) when a slower-speed mode is used, even though the BMT field itself is unchanged.
0 0 X X
0 1 X X
Byte
1 0 X X
1 1 X X
0 0 X X X X
16-bit
1 0 X X X X
Burst 0 0 X X X X X X
1. This table applies to aligned internal master transfers only. In the case of a misaligned internal
master transfer that is split into multiple aligned external transfers, not all of the write enables
X’d in the table will necessarily assert. See Section , Misaligned access support.
2. Also applies when DBM=1 for 16-bit data bus mode.
3. This case consists of two 16-bit external transactions, but for both transactions the
WE[0:1]/BE[0:1] signals are the only WE/BE signals affected.
must match the internal bus size (64-bit aligned). See Section , Misaligned access support
for more details.
External clocking
The CLKOUT signal sets the frequency of operation for the bus interface directly. Internally,
the MCU uses a phase-locked loop (PLL) circuit to generate a master clock for all of the
MCU circuitry (including the EBI) which is phase-locked to the CLKOUT signal. In general,
all signals for the EBI are specified with respect to the rising-edge of the CLKOUT signal,
and they are guaranteed to be sampled as inputs or changed as outputs with respect to that
edge.
Reset
Upon detection of internal reset assertion, the EBI immediately ends all transactions
(abruptly, not through normal termination protocol), and ignores any transaction requests
that take place while reset is asserted.
address transfer cycle. The master can stop driving the data bus as soon as it samples the
TA line asserted on the rising edge of CLKOUT. To facilitate asynchronous write support, the
EBI keeps driving valid write data on the data bus until 1 clock after the rising edge where
RD_WR and WE are negated (for chip-select accesses only). See Figure 98 for an example
of write timing. On a read cycle, the master accepts the data bus contents as valid on the
rising edge of the CLKOUT in which the TA signal is sampled asserted. See Figure 94 for an
example of read timing.
The termination phase is where the cycle is terminated by the assertion of either TA (normal
termination) or TEA (termination with error). Termination is discussed in detail in Section ,
Termination signals protocol.
Note: In the timing diagrams in this document, asynchronous relationships between signals that
switch in the same CLKOUT cycle are not guaranteed. For example, in Figure 98, WE and
write DATA change during the same CLKOUT cycle. There is no guarantee that DATA will
be stable before WE assertion. External devices should not be latching write DATA on WE
assertion, but instead must use a signal edge that takes place in a later CLKOUT cycle,
such as WE negation.
receives address
drives data
yes
CS access & !SETA?
no
receives data
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA[0:31]
TA
DATA is valid
CS[n]
OE
Figure 94. Single Beat 32-bit Read Cycle, CS Access, Zero Wait States
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA[0:31]
TA Wait state
DATA is valid
CS[n]
OE
Figure 95. Single Beat 32-bit Read Cycle, CS Access, One Wait State
CLKOUT
ADDR[3:31] *
RD_WR
BDIP
TS
DATA[0:31]
TA(input)
DATA is valid
CS[n]
OE
* The EBI drives address and control signals an extra cycle because it uses a latched
version of the external TA (1 cycle delayed) to terminate the cycle.
Figure 96. Single Beat 32-bit Read Cycle, Non-CS Access, Zero Wait States
MASTER SLAVE
receives address
drives data
receives data
yes
CS access & ! SETA?
no
waits 1 clock
stops driving data
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA is valid
DATA[0:31]
TA
CS[n]
WE[0:3]
Figure 98. Single Beat 32-bit Write Cycle, CS Access, Zero Wait States
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA is valid
DATA[0:31]
TA Wait state
CS[n]
WE[0:3]
Figure 99. Single Beat 32-bit Write Cycle, CS Access, One Wait State
CLKOUT
ADDR[3:31] *
RD_WR
BDIP
TS
DATA is valid
DATA[0:31]
TA (Input)
DATA is valid
CS[n]
WE[0:3]
* The EBI drives address and control signals an extra cycle because it uses a latched
version of the external TA (1 cycle delayed) to terminate the cycle.
Figure 100. Single Beat 32-bit Write Cycle, Non-CS Access, Zero Wait States
Back-to-Back accesses
Due to internal bus protocol, one dead cycle is necessary between back-to-back external
bus accesses that are not part of a set of small accesses (see Section , Small accesses
(Small port size and short burst length) for small access timing). A dead cycle refers to a
cycle between the TA of a previous transfer and the TS of the next transfer.
Note: In some cases, CS remains asserted during this dead cycle, such as the cases of back-to-
back writes or read-after-write to the same chip-select. See Figure 104 and Figure 105.
Besides this dead cycle, in most cases, back-to-back accesses on the external bus do not
cause any change in the timing from that shown in the previous diagrams, and the two
transactions are independent of each other. The only exceptions to this are listed below:
● Back-to-back accesses where the first access ends with an externally-driven TA or
TEA. In these cases, an extra cycle is required between the end of the first access and
the TS assertion of the second access. See Section , Termination signals protocol for
more details.
The following diagrams show a few examples of back-to-back accesses on the external bus.
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA[0:31]
TA
DATA is valid DATA is valid
CS[n]
OE
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA[0:31]
TA
DATA is valid DATA is valid
CS[n]
CS[y]
OE
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA is valid
DATA[0:31]
TA
DATA is valid
CSx
WE
CLKOUT
ADDR[3:31]
RD_WR
BDIP
DATA[0:31]
TA
CS[n]
WE
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA is valid
DATA[0:31]
TA
DATA is valid
CSx
WE
Burst transfer
The EBI supports wrapping 32-byte critical-doubleword-first burst transfers. Bursting is
supported only for internally-requested cache-line size (32-byte) read accesses to external
devices that use the chip selects(i).
Accesses to devices operating without a chip select are always single beat. If an internal
request to the EBI indicates a size of less than 32 bytes, the request is fulfilled by running
one or more single-beat external transfers, not by an external burst transfer.
An 8-word wrapping burst reads eight 32-bit words by supplying a starting address that
points to one of the words (doubleword aligned) and requiring the memory device to
sequentially drive each word on the data bus. The selected slave device must internally
increment ADDR[27:29] (also ADDR30 in the case of a 16-bit port size device) of the
supplied address for each transfer, until the address reaches an 8-word boundary, and then
wrap the address to the beginning of the 8-word boundary. The address and transfer
attributes supplied by the EBI remain stable during the transfers. Termination of each beat
transfer occurs by the EBI asserting TA (SETA=1 is not supported for burst transfers). The
EBI requires that addresses be aligned to a doubleword boundary on all burst cycles.
Table 102 shows the burst order of beats returned for an 8-word burst to a 32-bit port.
The general case of burst transfers assumes that the external memory has 32-bit port size
and 8-word burst length. The EBI can also burst from 16-bit port size memories, taking twice
as many external beats to fetch the data as compared to a 32-bit port with the same burst
length. The EBI can also burst from 16-bit or 32-bit memories that have a 4-word burst
length (BL=1 in the appropriate Base Register). In this case, two external 4-word burst
transfers (wrapping on 4-word boundary) are performed to fulfill the internal 8-word
request(j). This operation is considered atomic by the EBI, so the EBI does not allow other
unrelated master accesses or bus arbitration to intervene between the transfers. For more
details and a timing diagram, see Section , Small access example #3: 32-byte read to 32-bit
port with BL=1.
During burst cycles, the BDIP (Burst Data In Progress) signal is used to indicate the
duration of the burst data. During the data phase of a burst read cycle, the EBI receives data
from the addressed slave. If the EBI needs more than one data, it asserts the BDIP signal.
Upon receiving the data prior to the last data, the EBI negates BDIP. Thus, the slave stops
driving new data after it receives the negation of BDIP on the rising edge of the clock. Some
slave devices have their burst length and timing configurable internally and thus may not
support connecting to a BDIP pin. In this case, BDIP is driven by the EBI normally, but the
output is ignored by the memory and the burst data behavior is determined by the internal
configuration of the EBI and slave device. When the TBDIP bit is set in the appropriate Base
Register, the timing for BDIP is altered. See Section , TBDIP effect on burst transfer for this
timing.
i. Except for the special case of a 32-bit non-chip-select access in 16-bit data bus mode. See Section , Non-chip-
select burst in 16-bit data bus mode.
j. This case (of 2 external burst transfers being required) applies only to AMBA data bus width of 64 bits.
Since burst writes are not supported by the EBI(k), the EBI negates BDIP during write
cycles.
k. Except for the special case of a 32-bit non-chip-select access in 16-bit data bus mode. See Section , Non-chip-
select burst in 16-bit data bus mode.
MASTER SLAVE
receives address
drives data
receives data
assert BDIP
next to last data beat?
no
yes
negate BDIP
CLKOUT
RD_WR
TS
Expects more data
BDIP
DATA[0:31]
DATA is valid
TA
CS[n]
OE
CLKOUT
RD_WR
TS
Expects more data
BDIP
DATA[0:31]
DATA is valid
TA
Wait state
CS[n]
OE
Figure 108. Burst 32-bit Read Cycle, One Initial Wait State
asserted throughout the cycle regardless of the wait states between beats (BSCY).
Figure 109 shows an example of the TBDIP=0 timing for a 4-beat burst with BSCY=1.
CLKOUT
ADDR[3:31]
ADDR[29:31] = 000
RD_WR
TSIZ[0:1]
00
TS
DATA[0:31]
TA
Wait State
DATA is valid
OE
Figure 109. Burst 32-bit Read Cycle, One Wait State between Beats, TBDIP=0
When using TBDIP=1, the BDIP behavior changes to toggle between every beat when
BSCY is a non-zero value. Figure 110 shows an example of the TBDIP=1 timing for the
same 4-beat burst shown in Figure 109.
CLKOUT
RD_WR
BDIP
DATA[0:31]
DATA is valid
TA
Wait state
CS[n] Wait state Wait state Wait state
OE
Figure 110. Burst 32-bit Read Cycle, One Wait State between Beats, TBDIP=1
In most cases, the timing for small accesses is the same as for normal single-beat and burst
accesses, except that multiple back-to-back external transfers are executed for each
internal request. These transfers have no additional dead cycles in-between that are not
present for back-to-back stand-alone transfers except for the case of writes with an internal
request size of > 64 bits, discussed in Section , Small access example #2: 32-byte write with
external TA.
The following sections show a few examples of small accesses. The timing for the
remaining cases in Table 103 can be extrapolated from these and the other timing diagrams
in this document.
CLKOUT
ADDR[3:31] A A+2
RD_WR
BDIP
TA
CS[n]
WE
Figure 111. Single Beat 32-bit Write Cycle, 16-bit Port Size, Basic Timing
CLKOUT
RD_WR
BDIP
DATA[0:31
TA
CS[n]
WE
* This extra cycle is required after accesses 2, 4, and 6 to get the next 64-bits of internal write data.
** Four more external accesses (not shown) are required to complete the internal 32-byte request.
The timing of these is the same as accesses 1-4 shown in this diagram.
Figure 112. 32-Byte Write Cycle with External TA, Basic Timing
Small access example #3: 32-byte read to 32-bit port with BL=1
Figure 113 shows an example of a 32-byte read to a 32-bit burst enabled port with burst
length of 4 words, requiring two 16-byte external transactions. For this case, the address for
the 2nd 4-word burst access is calculated by adding 0x10 to the lower 5 bits of the 1st
address (no carry), and then masking out the lower 4 bits to fix them at zero.
CLKOUT
RD_WR
TS
Expects more data
BDIP
DATA[0:31]
DATA is valid DATA is valid
TA
CS[n]
OE
Figure 113. 32-Byte Read with B-T-B 16-Byte Bursts to 32-bit Port, Zero Wait States
CLKOUT
RD_WR
BDIP
TS
*DATA[0:15]
ABCD EFGH IJKL MNOP
TA
CSx
WE
Figure 114. Single Beat 64-bit Read Cycle, 16-bit Port Size, Basic Timing
1 1
2 2
4 4
3(1)
8
32(2)
1. Some misaligned access cases may result in 3-byte writes. These cases
are treated as power-of-2 sized requests by the EBI, using WE_BE[0:3] to
make sure only the appropriate 3 bytes get written.
2. Only supported for case of 64-bit internal AMBA data bus.
Even though misaligned non-burst transfers from internal masters are supported, the EBI
naturally aligns the accesses when it sends them out to the external bus, splitting them into
multiple aligned accesses if necessary. See Section , Misaligned access support , for these
cases.
Natural alignment for the EBI means:
● Byte access can have any address
● 16-bit access, address bit 31 must be 0
● 32-bit access, address bits 30–31 must be 0
● For burst accesses of any size, address bits 29–31 must be 0
The EBI never generates a misaligned external access. In the erroneous case that an
externally-initiated misaligned access does occur, the EBI errors the access (by asserting
TEA externally) and does not initiate the access on the internal bus.
The EBI requires that the portion of the data bus used for a transfer to/from a particular port
size be fixed. A 32-bit port must reside on data bus bits 0–31,and a 16-bit port must reside
on bits 0–15.
In the following figures and tables the following convention is adopted:
● The most significant byte of a 32-bit operand is OP0, and OP3 is the least significant
byte.
● The two bytes of a 16-bit operand are OP0 (most significant) and OP1, or OP2 (most
significant) and OP3, depending on the address of the access.
● The single byte of a byte-length operand is OP0, OP1, OP2, or OP3, depending on the
address of the access.
This can be seen in Figure 115.
0 31
OP0 OP1
OP0
OP1 BYTE
OP2
OP3
0 31 Interface
Output
OP0 OP1 OP2 OP3
Register
DATA[0:7] DATA[8:15] DATA[16:23] DATA[24:31]
OP0 OP1
16-bit port size
OP2 OP3
Table 107 lists the patterns of the data transfer for write cycles when accesses are initiated
by the MCU. The bytes indicated as ‘—’ are not driven during that write cycle.
For EBI-mastered chip-select accesses, when the SETA bit is 0, the EBI drives TA the entire
cycle, asserting according to internal wait state counters to terminate the cycle. When the
SETA bit is 1, the EBI samples the TA for the entire cycle. During idle periods on the
external bus, the EBI drives TA negated as long as it is granted the bus; when it no longer
owns the bus, it lets go of TA.
If no device responds by asserting TA within the programmed timeout period (BMT in
EBI_BMCR) after the EBI initiates the bus cycle, the internal Bus Monitor (if enabled)
asserts TEA to terminate the cycle. An external device may also drive TEA when it detects
an error on an external transaction. TEA assertion causes the cycle to terminate and the
processor to enter exception processing for the error condition. To properly control
termination of a bus cycle for a bus error with external circuitry, TEA must be asserted at the
same time or before (external) TA is asserted. TEA must be negated before the second
rising edge after it was sampled asserted in order to avoid the detection of an error for the
following bus cycle initiated. TEA is only driven by the EBI during the cycle where the EBI is
asserting TEA and the cycle immediately following this assertion (for fast negation). During
all other cycles, the EBI relies on a weak internal pullup to hold TEA negated. This allows an
external device to assert TEA when it needs to indicate an error. External devices must
follow the same protocol as the EBI, only driving TEA during the assertion cycle and 1 cycle
afterwards for negation.
When TEA is asserted from an external source, the EBI uses a latched version of TEA (1
cycle delayed) to help make timing at high frequencies. This means that for any accesses
where the EBI drives TA (chip-select accesses with SETA=0), a TEA assertion that occurs 1
cycle before or during the last TA of the access could be ignored by the EBI, since it will
have completed the access internally before it detects the latched TEA assertion. This
means that non-burst chip-select accesses with no wait states (SCY=0) cannot be reliably
terminated by external TEA. If external error termination is required for such a device, the
EBI must be configured for SCY>=1.
Note: For the cases discussed above where TEA “could be ignored”, this is not guaranteed. For
some small access cases (which always use chip-select and internally-driven TA), a TEA
that occurs 1 cycle before or during the TA cycle or for SCY=0 may in fact lead to
terminating the cycle with error. However, proper error termination is not guaranteed for
these cases, so TEA must always be asserted at least 2 cycles before an internally-driven
TA cycle for proper error termination.
External TEA assertion that occurs during the same cycle that TS is asserted by the EBI is
always treated as an error (terminating the access) regardless of SCY.
Table 108 summarizes how the EBI recognizes the termination signals provided from an
external device.
Figure 117 shows an example of the termination signals protocol for back-to-back reads to
two different slave devices who properly “take turns” driving the termination signals. This
assumes a system using slave devices that drive termination signals.
CLKOUT
BB
RD_WR
TS **
DATA[0:31]
TA, TEA
* The EBI drives address and control signals an extra cycle because it uses a latched version of TA
(1 cycle delayed) to terminate the cycle. An external master is not required to do this.
** This is the earliest that the EBI can start another transfer, in the case of continuing a set of small accesses.
For all other cases, an extra cycle is needed before the EBI can start another TS.
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS (output)
DATA[0:15]
TA (input)
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS (output)
DATA is valid
DATA is valid
DATA[0:15]
TA (input)
Minimum
3 wait states
Since the calibration bus has no arbitration signals, the arbitration on the primary bus
controls accesses on the calibration bus as well, and no external master accesses can be
performed on the calibration bus. Accesses cannot be performed in parallel on both external
busses. However, back-to-back accesses can switch from one bus to the other, as
determined by the type of chip-select each address matches.
The timing diagrams and protocol for the calibration bus is identical to the primary bus,
except that some signals are missing on the calibration bus. See the device-specific
documentation for the calibration bus signal list for a particular MCU.
There is an inherent dead cycle between a calibration chip-select access and a non-
calibration access (chip-select or non-chip-select), just like the one between accesses to
two different non-calibration chip-selects (described in Section , Back-to-Back accesses).
Figure 120 shows an example of a non-calibration chip-select read access followed by a
calibration chip-select read access. Note that this figure is identical to Figure 102, except
the CSy is replaced by CAL_CSy. Timing for other cases on calibration bus can similarly be
derived from other figures in this document (by replacing CS with CAL_CS).
CLKOUT
ADDR[3:31]
RD_WR
BDIP
TS
DATA[0:31]
TA
DATA is valid
DATA is valid
CSx
CAL_CSy
OE
Table 109. Misalignment Cases Supported by a 64 bit AMBA EBI (internal bus)
No. Program Size and Address
(1) Data Bus Byte Strobes(3) HSIZE(4) HUNALIGN(5)
byte offset [29:31](2)
Table 110 shows which external transfers are generated by the EBI for the misaligned
access cases in Table 109, for each port size.
The number of external transfers for each internal AHB master request is determined by the
HSIZE value for that request relative to the port size. For example, a half-word write to
@011 (misaligned case #2) with 16-bit port size results in 4 external 16-bit transfers
because the HSIZE is 64-bits. For cases where two or more external transfers are required
for one internal transfer request, these external accesses are considered part of a “small
access” set, as described in Section , Small accesses (Small port size and short burst
length).
Since all transfers are aligned on the external bus, normal timing diagrams and protocol
apply.
Table 110. Misalignment Cases Supported by a 64 bit AMBA EBI (external bus)
Program Size and
No.(1) PS(2) ADDR[29:31](3) WE_BE[0:3](4)
byte offset
0 000 1001
1 Half @0x1,0x9 000 1011
1
010 0111
000 1110
0
100 0111
2 Half @0x3,0xB
010 1011
1
100 0111
0 100 1001
3 Half @0x5,0xD 100 1011
1
110 0111
4 111(5) 1110
0
- Half @0x7,0xF 000 0111
4 (2 AHB transfers) 110 1011
1
- 000 0111
000 1000
0
100 0111
5 Word @0x1,0x9 000 1011
1 010 0011
100 0111
000 1100
0
100 0011
6 Word @0x2,0xA
010 0011
1
100 0011
000 1110
0
100 0001
7 Word @0x3,0xB 010 1011
1 100 0011
110 0111
Table 110. Misalignment Cases Supported by a 64 bit AMBA EBI (external bus)
Program Size and
No.(1) PS(2) ADDR[29:31](3) WE_BE[0:3](4)
byte offset
8 100 1000
0
- 000 0111
Word @0x5,0xD
(2 AHB transfers) 100 1011
8
1 110 0011
- 000 0111
9 110(6) 1100
0
- Word @0x6,0xE 000 0011
9 (2 AHB transfers) 110(6) 0011
1
- 000 0011
10 111(5) 1110
0
11 000 0001
Word @0x7,0xF
10 (2 AHB transfers) 111(5) 1011
1 000 0011
11
010 0111
12 100(7) 0000
0
- 000 0000
Doubleword @0x4,0xC 100(7) 0011
12 (2 AHB transfers) 110 0011
1
000 0011
-
010 0011
000 1100
13
0 100 0000
- 000 0011
Doubleword @0x2,0xA
(2 AHB transfers) 010 0011
13 100 0011
1 110 0011
- 000 0011
14 110(6) 1100
0 000 0000
15
100 0011
Doubleword @0x6,0xE
14 (2 AHB transfers) 110(6) 0011
1 000 0011
15 010 0011
100 0011
1. Misaligned case number, from Table 109.
2. Port size; 0=32 bits, 1=16 bits.
3. External ADDR pins, not necessarily the address on internal master AHB bus.
4. External WE_BE pins. Note that these pins have negative polarity, opposite of the internal byte strobes in
Table 109.
5. Treated as 1-byte access.
6. Treated as 2-byte access.
7. Treated as 4-byte access.
CLKOUT
*ADDR[3:31]
Addr Addr+0x2
RD_WR
BDIP
Clock Gap
TS
TA
DATA is valid
DATA is valid
CSx
OE
* While the EBI drives all of ADDR[3:31] to valid address, typically only ADDR[3:15] (or less) are used in the
system, as DATA[16:31] (or DATA[0:15]) would be used for address and data on an external muxed device.
** Or DATA[0:15], based on D16_31 bit in EBI_MCR.
Figure 121. Small access (32-bit read to 16-bit port) on Address/Data multiplexed bus
first instruction internally and configures EBI registers before branching to an external
address to “boot” externally. Refer to the device-specific documentation to see how/if
external boot is supported for a particular MCU.
If code in external memory needs to write EBI registers, this must be done in a way that
avoids modifying EBI registers while external accesses are being performed, such as the
following method:
● Copy the code that is doing the register writes (plus a return branch) to internal SRAM
● Branch to internal SRAM to run this code, ending with a branch back to external flash
CLKOUT CK
MCU SDR Burstable
CS0 CE
Flash or SRAM
TS ADV
BDIP BAA*
WE0/BE0 WE**
ADDR[3:29] A[0:21]
DATA[0:31] D[0:31]
OE OE
MCU Asynchronous
CS0 CE
Memory
WE0/BE0 WE*
ADDR[9:30] A[0:21]
DATA[0:15] D[0:15]
OE OE
* Flash memories typically use one WE signal as shown, RAMs use 2 or 4 (16-bit or 32-bit)
CLKOUT
CSx
TS
ADDR[3:31]
OE
WE[0:1]
DATA[0:31]
TA
DATA is valid
3 Wait States
Figure 124. Read Operation to Asynchronous Memory, Three Initial Wait States
CLKOUT
CSx
TS
ADDR[3:31]
WE[0:1]
OE
DATA is valid
DATA[0:31]
TA
3 Wait States
Figure 125. Write Operation to Asynchronous Memory, Three Initial Wait States
CLKOUT CK
MCU SDR Memory
CS0 CE
TS ADV
WE0/BE0 WE**
ADDR[3:29] A[0:21]
DATA[0:31] D[0:31]
OE OE
BDIP BAA*
CK
A[0:21]
WE1/BE1 WE**
BAA*
D[0:31]
OE
and arbitration pins (BB, BG, BR). This section describes how to configure dual-MCU
systems for each of those scenarios, as well as describing limitations to EBI operation when
other pins are missing (TA, TEA, BDIP). More than one section may apply if the applicable
pins are not present on one or both MCUs.
15.2 Introduction
This chapter describes the interrupt controller (INTC), which schedules interrupt requests
(IRQs) from software and internal peripherals to the e200z4 core. The INTC provides
interrupt prioritization and preemption, interrupt masking, interrupt priority elevation, and
protocol support.
Interrupts implemented by the MCU are defined in the e200z4 Power Architecture® Core
Reference Manual.
Hardware
vector
Software enable
Priority End-of- Module
set clear interrupt 1
select configuration
interrupt register
registers register
registers
Highest Lowest Vector table
1
n1 priority vector entry size
Peripheral Flag bits x 4-bits interrupt interrupt Interrupt Interrupt
interrupt requests request vector vector
8 Interrupt
requests1 n1 Priority n1 Request n1 Vector 9 9
acknowledge
arbitrator selector encoder
register
4 Highest priority
Interrupt
Pushed New
request to
4 priority 4 priority Update interrupt vector 1
Priority Current Priority processor
LIFO 4 priority 4 comparator 1
register
Popped Current
priority priority Interrupt acknowledge 1
Slave
Push/update/acknowledge 1 Slave bus
interface signals
Pop 1 for reads
and writes
Memory-mapped registers
Logic not memory-mapped
1
Although N (largest addressable IRQ vector number) = 485, this does not indicate the total number of
interrupts available on this device. The total number of available interrupts on this device is 486: 279
peripheral IRQs, 8 software-configurable IRQs, and 199 reserved.
15.2.2 Overview
Interrupt functionality for the device is handled between the e200z4 core and the interrupt
controller. The CPU core has 19 exception sources, each of which can interrupt the core.
One exception source is from the interrupt controller (INTC). The INTC provides priority-
based scheduling of interrupt requests and supports programmable preemption. This
scheduling scheme is suitable for statically scheduled hard real-time systems. The INTC is
optimized for a large number of interrupt requests.
Table 111 displays the interrupt sources and the number of interrupts available for each
module; Figure 128 shows a general diagram of INTC software vector mode.
Software 8
Watchdog 0
SRAM error correction 1
Flash error correction 1
eDMA 66
FMPLL 2
External IRQ input pins (SIU) 6
eMIOS 24
eTPU engine A 33
eQADC 31
DSPI 15
eSCI 3
FlexCAN 63
FlexRay 8
STM 5
Decimation Filter 3
System (PIT, RTI, PMC, etc) 6
External interrupt
IRQs Interrupt exception request e200z4
controller core
(INTC)
Two modes are available to determine the vector for the interrupt request source:
● Software vector mode
● Hardware vector mode
In software vector mode, as shown in Figure 128, the e200z4 branches to a common
interrupt exception handler whose location is determined by an address derived from
special purpose registers IVPR and IVOR4. The interrupt exception handler reads the
INTC_IACKR to determine the vector of the interrupt request source. Typical program flow
for software vector mode is shown in Figure 129.
Data Table
Address Instructions Address of Addresses
VTBA ISR 0 address ISR 0 ISR
Prolog
(Including ISR 1 address ISR 1 ISR
IRQ[n] IVPR + IVOR4 using IACKR • •
IACKR • •
taken to get vector • •
then bl ISR_n ISR n address ISR n ISR
• •
• •
• •
Epilog ISR N address ISR N ISR
Address Instructions
NOTE:
‘b ISR_n’ is technically IVPR + 0x0000 b handler 0 handler 0 Prolog
part of the handler. •
• ISR
•
IVPR + 0x0010 b handler 1 Epilog
• •
• •
• •
IVPR + 0x0020 b handler 2 handler n Prolog
•
• ISR
•
IRQ[n] IVPR + n [0x0010]
b handler n Epilog
taken
• •
• •
• •
Refer to definition of N b handler N handler N Prolog
ISR
Epilog
When multiple tasks share a resource, coherent accesses to that resource need to be
supported. The INTC supports the Priority Ceiling Protocol (PCP) for coherent accesses. By
providing a modifiable priority mask, the priority level can be raised temporarily so that no
task can preempt another task that shares the same resource.
Multiple processors can assert interrupt requests to each other through software
configurable interrupt requests, i.e., by using application software to assert an interrupt
request. These same software configurable interrupt requests also can be used to break the
work involved in servicing an interrupt request into a high priority portion and a low priority
portion. The high priority portion is initiated by a peripheral interrupt request, but the ISR can
assert a software configurable interrupt request to finish the servicing in a low priority ISR.
15.2.3 Features
Features include the following:
● Total number of interrupt vectors is 486, of which:
– 279 are peripheral interrupt vectors
– 8 are software configurable sources
– 199 are reserved sources
● 9-bit unique vector for each interrupt request source in hardware vector mode.
● Each interrupt source can be programmed to one of 16 priorities.
● Preemption.
– Preemptive prioritized interrupt requests to processor.
– ISR at a higher priority preempts ISRs or tasks at lower priorities.
– Automatic pushing or popping of preempted priority to or from a LIFO.
– Ability to modify the ISR or task priority. Modifying the priority can be used to
implement the PCP for accessing shared resources.
● Low latency–three clocks from receipt of interrupt request from peripheral to interrupt
request to processor.
request. The INTC_IACKR register contains a 21-bit or 20-bit address for a vector table
base address (VTBA). The address is then used to branch to the corresponding routine for
that peripheral or software interrupt source.
IVPR
0 15 16 31
PREFIX 0x0000
+ IVOR4
0 15 16 27 28 31
0x0000 OFFSET 0x00
= Interrupt exception
handler address
0 15 16 27 28 31
PREFIX OFFSET 0x00
Figure 131. Software Vector Mode: Interrupt Exception Handler Address Calculation
Reading the INTC_IACKR acknowledges the INTC’s interrupt request and negates the
interrupt request to the processor. The interrupt request to the processor does not clear if a
higher priority interrupt request arrives. Even in this case, INTVEC does not update to the
higher priority request until the lower priority interrupt request is acknowledged by reading
the INTC_IACKR. The reading also pushes the PRI value in the INTC current priority
register (INTC_CPR) to the LIFO and updates PRI in the INTC_CPR with the priority of the
interrupt request. The INTC_CPR masks any peripheral or software configurable interrupt
request at the same or lower priority of the current value of the PRI field in INTC_CPR from
generating an interrupt request to the processor.
The interrupt exception handler must write to the end-of-interrupt register (INTC_EOIR) to
complete the operation (assuming the source of the interrupt has been cleared). Writing to
the INTC_EOIR ends the servicing of the interrupt request. The INTC’s LIFO is popped into
the INTC_CPR's PRI field by writing to the INTC_EOIR, and the size of a write does not
affect the operation of the write. Those values and sizes written to this register neither
update the INTC_EOIR contents nor affect whether the LIFO pops. For possible future
compatibility, write four bytes of all 0s to the INTC_EOIR. The timing relationship between
popping the LIFO and disabling recognition of external input has no restriction. The writes
can happen in either order.
However, disabling recognition of the external input before popping the LIFO eases the
calculation of the maximum stack depth at the cost of postponing the servicing of the next
interrupt request.
(16-byte) boundary. IVOR4 is not used in this mode, and software does not need to read
INTC_IACKR to get the interrupt vector number.
IVPR
0 15 16 31
PREFIX 0x0000
+ Hardware vector
mode offset
0 15 16 18 19 27 28 31
0x0000 0b000 INTC_IACKR[INTVEC] 0b0000
= Interrupt exception
handler address
0 15 16 18 19 27 28 31
PREFIX 0b000 IRQ SPECIFIC OFFSET 0b0000
Figure 132. Hardware Vector Mode: Interrupt Exception Handler Address Calculation
The processor negates INTC’s interrupt request when automatically acknowledging the
interrupt request. However, the interrupt request to the processor do not negate if a higher
priority interrupt request arrives. Even in this case, the interrupt vector number does not
update to the higher priority request until the lower priority request is acknowledged by the
processor.
The assertion of the interrupt acknowledge signal pushes the PRI value in the INTC_CPR
onto the LIFO and updates PRI in the INTC_CPR with the new priority.
1. When the HVEN bit in the INTC_MCR is asserted, a read of the INTC_IACKR has no side effects.
2. The PRI fields are “Reserved” for peripheral interrupt requests whose vectors are labeled as Reserved in Table 117.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
HVEN
VTES
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Field Description
Hardware vector enable. Controls whether the INTC is in hardware vector mode or software vector mode.
Refer to Section 15.2.4, Modes of operation, for the details of the handshaking with the processor in each
31
mode.
HVEN
0 Software vector mode
1 Hardware vector mode
accesses. An mbar or msync instruction is also necessary after accessing the resource but
before lowering the PRI field. Refer to Section , Ensuring coherency.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0
PRI
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
= Unimplemented or Reserved
Field Description
Priority. PRI is the priority of the currently executing ISR according to the field values defined below.
1111 Priority 15 (highest)
28–31 1110 Priority 14
PRI ...
0001 Priority 1
0000 Priority 0 (lowest)
However, the time for the processor to recognize the assertion or negation of the external
input to it is not defined by the book E architecture and can be greater than 0. Therefore,
insert instructions between the reading of the INTC_IACKR and the setting of MSR[EE] that
consumes at least two processor clock cycles. This length of time allows the interrupt
request negation to propagate through the processor before MSR[EE] is set.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R INTVEC(1) 0 0
VTBA (least significant 5 bits)
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. When the VTES bit in the INTC Module Configuration Register (INTC_MCR) is asserted, INTVEC is shifted to the left one
bit. Bit 29 is read as a ‘0’. VTBA is narrowed to 20 bits in width.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
VTBA (least significant 4
R INTVEC(1) 0 0 0
bits)
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. When the VTES bit in the INTC Module Configuration Register (INTC_MCR) is asserted, INTVEC is shifted to the left one
bit. Bit 29 is read as a ‘0’. VTBA1 is narrowed to 20 bits in width.
Field Description
0–20 or
Vector table base address. Can be the base address of a vector table of addresses of ISRs. The VTBA
0–19
only uses the left-most 20 bits when the VTES bit in INTC_MCR is asserted.
VTBA
Interrupt vector. Vector of peripheral or software-configurable interrupt requests that caused the interrupt
21–29 or request to the processor. When the interrupt request to the processor asserts, the INTVEC is updated,
20–28 whether the INTC is in software or hardware vector mode.
INTVEC If INTC_MCR[VTES] = 1, then the INTVEC field is shifted left one position to bits 20–28. VTBA is then shortened
by one bit to bits 0–19.
30–31 or
Reserved, must be cleared.
29–31
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Although INTC_SSCIn is 8 bits wide, it can be accessed with a single 16-bit or 32-bit
access, provided that the access does not cross a 32-bit boundary.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CLR2 CLR3
W SET2 SET3
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Field Description
6 Set flag bits. Writing a 1 sets the corresponding CLRn bit. Writing a 0 has no effect. Each SETn is
SETn always read as a 0.
Clear flag bits. CLRn is the flag bit. Writing a 1 to CLRn clears it provided that a 1 is not written
7 simultaneously to its corresponding SETn bit. Writing a 0 to CLRn has no effect.
CLRn 0 Interrupt request not pending within INTC.
1 Interrupt request pending within INTC.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0
PRI2 PRI3
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0
PRI484 PRI485
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Field Description
language syntax for the register bit label: module_register[bit]. Interrupt requests from the
same module location are ORed together. The individual interrupt priorities are selected in
INTC_PSRn, where the priority select register is assigned according to the vector number.
Software
0x0000 0 INTC_SSCIR0[CLR0] INTC software settable Clear flag 0
0x0010 1 INTC_SSCIR1[CLR1] INTC software settable Clear flag 1
0x0020 2 INTC_SSCIR2[CLR2] INTC software settable Clear flag 2
0x0030 3 INTC_SSCIR3[CLR3] INTC software settable Clear flag 3
0x0040 4 INTC_SSCIR4[CLR4] INTC software settable Clear flag 4
0x0050 5 INTC_SSCIR5[CLR5] INTC software settable Clear flag 5
0x0060 6 INTC_SSCIR6[CLR6] INTC software settable Clear flag 6
0x0070 7 INTC_SSCIR7[CLR7] INTC software settable Clear flag 7
ECC
0x0080 8 Reserved —
ECSM combined interrupt requests:
ECSM_ESR[RNCE]
0x0090 9 Internal SRAM Non-Correctable Error and
ECSM_ESR[FNCE]
Flash Non-Correctable Error
eDMAC
0x00A0 10 EDMA_ERL[ERR31:ERR0] eDMA channel Error flags 31–0
0x00B0 11 EDMA_IRQRL[INT00] eDMA channel Interrupt 0
0x00C0 12 EDMA_IRQRL[INT01] eDMA channel Interrupt 1
0x00D0 13 EDMA_IRQRL[INT02] eDMA channel Interrupt 2
0x00E0 14 EDMA_IRQRL[INT03] eDMA channel Interrupt 3
0x00F0 15 EDMA_IRQRL[INT04] eDMA channel Interrupt 4
0x0100 16 EDMA_IRQRL[INT05] eDMA channel Interrupt 5
0x0110 17 EDMA_IRQRL[INT06] eDMA channel Interrupt 6
0x0120 18 EDMA_IRQRL[INT07] eDMA channel Interrupt 7
0x0130 19 EDMA_IRQRL[INT08] eDMA channel Interrupt 8
0x0140 20 EDMA_IRQRL[INT09] eDMA channel Interrupt 9
0x0150 21 EDMA_IRQRL[INT10] eDMA channel Interrupt 10
0x0160 22 EDMA_IRQRL[INT11] eDMA channel Interrupt 11
0x0170 23 EDMA_IRQRL[INT12] eDMA channel Interrupt 12
0x0180 24 EDMA_IRQRL[INT13] eDMA channel Interrupt 13
0x0190 25 EDMA_IRQRL[INT14] eDMA channel Interrupt 14
REACM_GE
REACM[0]
Reaction Channel Global Error
0x1690 361–365 REACM[1]
Reaction Channel 0–3Interrupt
REACM[2]
REACM[3]
ESCIC_SR[TDRE]
ESCIC_SR[TC]
ESCIC_SR[RDRF]
ESCIC_SR[IDLE] Combined Interrupt Requests of ESCI Module
ESCIC_SR[OR] C: Transmit Data Register Empty, Transmit
ESCIC_SR[NF] Complete, Receive Data Register Full, Idle
line, Overrun, Noise Flag, Framing Error Flag,
ESCIC_SR[FE]
and Parity Error Flag interrupt requests, SCI
ESCIC_SR[PF] Status Register 2 Bit Error interrupt request,
0x1D90 473
ESCIC_SR[BERR] LIN Status Register 1 Receive Data Ready,
ESCIC_SR[RXRDY] Transmit Data Ready, Received LIN Wakeup
ESCIC_SR[TXRDY] Signal, Slave TimeOut, Physical Bus Error,
CRC Error, Checksum Error, Frame Complete
ESCIC_SR[LWAKE]
interrupts requests, and LIN Status Register 2
ESCIC_SR[STO] Receive Register Overflow
ESCIC_SR[PBERR]
ESCIC_SR[CERR]
ESCIC_SR[CKERR]
474—
0x1DA0 Reserved Reserved
483
484— REACM[4]
0x1E40 Reaction Channel 4–5 Interrupts
485 REACM[5]
1. The maximum vector number (485) is used to identify the location of the last available interrupt vector in
memory for this device. Because blocks of memory throughout the total memory map are used for other
purposes, the maximum vector number does not indicate the total number of available interrupt sources for
this device.
2. Interrupt requests from the same module location are ORed together.
The peripheral or software configurable interrupt request asserts when the PRIn value in the
interrupt priority select register (INTC_PSRn) is greater than the PRIn value in interrupt
current priority register (INTC_CPR).
LIFO
The LIFO stores the preempted PRI values from the INTC_CPR. Therefore, because these
priorities are stacked within the INTC, if interrupts need to be enabled during the ISR, at the
beginning of the interrupt exception handler the PRI value in the INTC_CPR does not need
to be loaded from the INTC_CPR and stored onto the context stack. Likewise at the end of
the interrupt exception handler, the priority does not need to be loaded from the context
stack and stored into the INTC_CPR.
The PRI value in the INTC_CPR is pushed onto the LIFO when the INTC_IACKR is read in
software vector mode or the interrupt acknowledge signal from the processor is asserted in
hardware vector mode. The priority is popped into PRI in the INTC_CPR whenever the
INTC_EOIR is written.
Although the INTC supports 16 priorities, an ISR executing with PRI in the INTC_CPR equal
to 15 is not preempted. Therefore, the LIFO supports the stacking of 15 priorities. However,
the LIFO is only 14 entries deep. An entry for a priority of 0 is not needed because of how
pushing onto a full LIFO and popping an empty LIFO are treated. If the LIFO is pushed 15 or
more times than it is popped, the priorities first pushed are overwritten. A priority of 0 is an
overwritten priority. However, the LIFO pop zeros if it is popped more times than it is
pushed. Therefore, although a priority of 0 was overwritten, it is regenerated with the
popping of an empty LIFO.
Clock
Interrupt Request
to Processor
Hardware Vector
Enable
Interrupt Vector 0
Interrupt
Acknowledge
Read
INTC_IACKR
Write
INTC_EOIR
INTVEC in
INTC_IACKR 0 108
PRI in
INTC_CPR 0 1 0
Peripheral Interrupt
Request 100
Clock
Interrupt Request
to Processor
Hardware Vector
Enable
Interrupt
Acknowledge
Read
INTC_IACKR
Write
INTC_EOIR
INTVEC in
INTC_IACKR 0 108
PRI in
INTC_CPR 0 1 0
Peripheral Interrupt
Request 100
epilog:
code to restore most of context required by e500 EABI
# Popping the LIFO after the restoration of most of the context and the
disabling of processor
# recognition of interrupts eases the calculation of the maximum stack depth
at the cost of
# postponing the servicing of the next interrupt request.
mbar # ensure store to clear flag bit has completed
lis r3,INTC_EOIR@ha # form adjusted upper half of INTC_EOIR address
li r4,0x0 # form 0 to write to INTC_EOIR
wrteei0 # disable processor recognition of interrupts
stw r4,INTC_EOIR@l(r3) # store to INTC_EOIR, informing INTC to lower
priority
code to restore SRR0 and SRR1, restore working registers, and delete stack
frame
rfi
vector_table_base_address:
address of ISR for interrupt with vector 0
address of ISR for interrupt with vector 1
.
.
.
address of ISR for interrupt with vector 510
address of ISR for interrupt with vector 511
ISRx:
code to service the interrupt event
code to clear flag bit which drives interrupt request to INTC
interrupt_exception_handler_continuedx:
code to create stack frame, save working register, and save SRR0 and SRR1
epilog:
code to restore most of context required by e500 EABI
# Popping the LIFO after the restoration of most of the context and the
disabling of processor
# recognition of interrupts eases the calculation of the maximum stack depth
at the cost of
# postponing the servicing of the next interrupt request.
mbar # ensure store to clear flag bit has completed
lis r3,INTC_EOIR@ha # form adjusted upper half of INTC_EOIR address
li r4,0x0 # form 0 to write to INTC_EOIR
wrteei0 # disable processor recognition of interrupts
stw r4,INTC_EOIR@l(r3)# store to INTC_EOIR, informing INTC to lower
priority
code to restore SRR0 and SRR1, restore working registers, and delete stack
frame
rfi
ISRx:
code to service the interrupt event
code to clear flag bit which drives interrupt request to INTC
setting its enable bit or disabling the mask bit causes it to remain negated, which
consequently also does not cause an interrupt request to the processor. Since the ISRs are
outside the control of the RTOS, this ISR does not run unless called by another ISR or the
interrupt exception handler, perhaps after executing another ISR.
Ensuring coherency
Non-coherent accesses to a shared resource can occur. As an example, ISR1 and ISR2
both share a resource. ISR1 has a lower priority, therefore it executes and then writes the
new PRI value in the current priority register (INTC_CPR). The next instruction writes a
value to a shared coherent data block.
If INTC asserts the ISR2 interrupt request to the processor just before or at the same time
as the first ISR1 write, it is possible for both the ISR1 and ISR2 writes to execute while the
processor responds to the INTC request, discards the transactions, and flushes the
processing pipeline. However, ISR2 cannot access the data block coherently because the
data block is now corrupted.
OSEK uses the GetResource and ReleaseResource system services to manage access to
a shared resource. To prevent corrupting a coherent data block, use the following code to
modify the PRI in INTC_CPR. Interrupts must be enabled before executing the following
GetResource code sequence:
GetResource:
raise PRI
mbar
isync
ReleaseResource:
mbar
lower PRI
Normally you do not need to know the contents of the LIFO, or even how deep the LIFO is
nested. Although the LIFO contents are not memory mapped, you can read the contents by
popping the LIFO and reading the PRI field in the INTC current priority register
(INTC_CPR). Disabling processor recognition of interrupts while examining the LIFO
contents provides a coherent view of the preempted priorities.
The code sequence is:
pop_lifo:
store to INTC_EOIR
load INTC_CPR, examine PRI, and store onto stack
if PRI is not zero or value when interrupts were enabled, branch to
pop_lifo
When you are finished examining the LIFO contents, you can restore it in software vector
mode using the following code sequence. In hardware vector mode, reading the
INTC_IACKR does not push the INTC_CPR[PRI] onto the LIFO, therefore the LIFO
contents cannot be restored in hardware vector mode.
push_lifo:
load stacked PRI value and store to INTC_CPR
load INTC_IACKR
if stacked PRI values are not depleted, branch to push_lifo
Note: Reading the INTC_IACKR acknowledges the interrupt request to the processor and updates
the INTC_CPR[PRI] with the priority of the preempting interrupt request. If the processor
recognition of interrupts is disabled during the LIFO restoration, interrupt requests to the
processor can go undetected. However, since the peripheral or software configurable
interrupt requests are not cleared, the peripheral interrupt request to the processor re-
asserts when INTC_CPR[PRI] is lower than the priorities of those peripheral or software
configurable interrupt requests.
16.1 Overview
The System integration unit (SIU) controls this device’s reset configuration, pad
configuration, external interrupt, general purpose I/O (GPIO), internal peripheral
multiplexing, and the system reset operation. The reset configuration block contains the
external pin boot configuration logic. The pad configuration block controls the static
electrical characteristics of I/O pins. The GPIO block provides uniform and discrete
input/output control of the MCU I/O pins. The reset controller performs reset monitoring of
internal and external reset sources, and drives the RSTOUT pin. The SIU is accessed by
the core through the peripheral bus.
16.2 Features
● System configuration
– MCU reset configuration via external pins
– Pad configuration control
● System reset monitoring and generation
– Power-on reset support
– Reset Status Register provides last reset source to software
– Glitch detection on reset input
– Software controlled reset assertion
● External interrupt
– 15 interrupt requests
– 1 Non-Maskable/Critical Interrupt request (NMI)
– Rising or falling edge event detection
– Programmable digital filter for glitch rejection
● GPIO
– GPIO function on 163 I/O pins
– Dedicated input and output registers for each GPIO pin
● Internal multiplexing
– Allows serial and parallel chaining of DSPIs
– Allows flexible selection of eQADC trigger inputs
– Allows selection of interrupt requests between external pins and DSPI
– Allows selection of some eTPU inputs from external eTPU pins or deserialized
output from the DSPI module
– Allows selection of serialized data source for the DSPI
Pad Configuration
Power-on
RESET
Reset Reset
Controller
Detection RSTOUT
IRQ[0:3]
External IRQ[4:5]
IRQ /
IRQ[7:15]
Edge
Detects
Reset
BOOTCFG1_
Config IRQ[3]_
ETRIG[3]
GPIO[212]
WKPCFG_
NMI_
GPIO[213]
GPIO
RESETS
RESET Input — Reset Input Up
RSTOUT Output Slow Reset Output Up
SYSTEM CONFIGURATION
BOOTCFG0 Input Slow Boot Configuration Input Down
BOOTCFG1 Input Slow Boot Configuration Input Down
WKPCFG_ Input Weak Pull Configuration Pin / Up
NMI_ Input Slow Non-Maskable Interrupt / —
GPIO[213] I/O General Purpose I/O Up/Down
GPIO CONFIGURATION
GPIO[0:245] I/O Slow General Purpose I/O Up/Down
EXTERNAL INTERRUPT
IRQ[0:5,7:15] Input Slow External Interrupt Request Input —(2)
1. Internal weak pull up/down. The reset weak pull up/down state is given by the pull up/down state for the primary pin
function. For example, the reset weak pull up/down state of the BOOTCFG1 pin is weak pull down enabled.
2. See Table 5 in Section 3.1, Signal Properties for more information.
on page 16-
SIU_BASE MCU ID Register 2 (SIU_MIDR2) 32
420
on page 16-
SIU_BASE+0x4 MCU ID Register (SIU_MIDR) 32
422
SIU_BASE+0x8 Reserved
on page 16-
SIU_BASE+0xC Reset Status Register (SIU_RSR) 32
423
on page 16-
SIU_BASE+0x10 System Reset Control Register (SIU_SRCR) 32
425
on page 16-
SIU_BASE+0x14 SIU External Interrupt Status Register (SIU_EISR) 32
426
on page 16-
SIU_BASE+0x18 DMA/Interrupt Request Enable Register (SIU_DIRER) 32
427
on page 16-
SIU_BASE+0x1C DMA/Interrupt Request Select Register (SIU_DIRSR) 32
428
on page 16-
SIU_BASE+0x20 Overrun Status Register (SIU_OSR) 32
429
on page 16-
SIU_BASE+0x24 Overrun Request Enable Register (SIU_ORER) 32
430
External IRQ Rising-Edge Event Enable Register on page 16-
SIU_BASE+0x28 32
(SIU_IREER) 430
External IRQ Falling-Edge Event Enable Register on page 16-
SIU_BASE+0x2C 32
(SIU_IFEER) 431
on page 16-
SIU_BASE+0x30 External IRQ Digital Filter Register (SIU_IDFR) 32
432
SIU_BASE+0x34 –
Reserved
SIU_BASE+0x3F
SIU_BASE+0x40 – Pad Configuration Register 0 (SIU_PCR0) – on page 16-
16
SIU_BASE+0x37B Pad Configuration Register 413 (SIU_PCR413)(1) 434
SIU_BASE+0x37C –
Reserved
SIU_BASE+0x5FF
GPIO Pin Data Output Register 0 – 3 (SIU_GPDO0_3) –
SIU_BASE+0x600 – on page 16-
GPIO Pin Data Output Register 412 – 413 8
SIU_BASE+0x79D 551
(SIU_GPDO412_413)1
SIU_BASE+0x79E –
Reserved
SIU_BASE+0x7FF
GPIO Pin Data Input Register 0 – 3 (SIU_GPDI0_3) –
SIU_BASE+0x800 – on page 16-
GPIO Pin Data Input Register 232 – 233 8
SIU_BASE+0x8E9 552
(SIU_GPDI232_233)1
SIU_BASE+0x8EA –
Reserved
SIU_BASE+0x8FF
on page 16-
SIU_BASE+0x900 eQADC trigger IMUX Select Register (ETISR)(2) 32
553
on page 16-
SIU_BASE+0x904 External Interrupt IMUX Select Register (EIISR)(3) 32
555
on page 16-
SIU_BASE+0x908 DSPI IMUX Select Register (DISR)(4) 32
558
on page 16-
SIU_BASE+0x90C IMUX Select Register 3 (SIU_ISEL3) 32
560
SIU_BASE+0x910 –
Reserved
SIU_BASE+0x91F
on page 16-
SIU_BASE+0x920 IMUX Select Register 8 (SIU_ISEL8) 32
566
on page 16-
SIU_BASE+0x924 IMUX Select Register 9 (SIU_ISEL9) 32
568
on page 16-
SIU_BASE+0x928 IMUX Select Register 10 (SIU_ISEL10) 32
569
SIU_BASE+0x92C –
Reserved
SIU_BASE+0x97F
on page 16-
SIU_BASE+0x980 Chip Configuration Register (SIU_CCR) 32
571
on page 16-
SIU_BASE+0x984 External Clock Control Register (SIU_ECCR) 32
572
on page 16-
SIU_BASE+0x988 Compare A High Register (SIU_CARH) 32
573
on page 16-
SIU_BASE+0x98C Compare A Low Register (SIU_CARL) 32
573
on page 16-
SIU_BASE+0x990 Compare B High Register (SIU_CBRH) 32
574
on page 16-
SIU_BASE+0x994 Compare B Low Register (SIU_CBRL) 32
574
SIU_BASE+0x998 Reserved
on page 16-
SIU_BASE+0x9A0 System Clock Register (SIU_SYSDIV) 32
575
on page 16-
SIU_BASE+0x9A4 Halt Register (SIU_HLT) 32
576
on page 16-
SIU_BASE+0x9A8 Halt Acknowledge Register (SIU_HLTACK) 32
579
SIU_BASE+0x9AC –
Reserved
SIU_BASE+0x9B3
on page 16-
SIU_BASE+0x9B4 Core MMU PID Control Register (SIU_EMPCR0) 32
581
SIU_BASE+0x9B8 –
Reserved
SIU_BASE+0x9FF
1. Gaps exist in this memory space where I/O pins are not available in the specified package.
2. The ETISR is sometimes referred to as ISEL0
3. The EIISR is sometimes referred to as ISEL1
4. The DISR is sometimes referred to as ISEL2
SIU_BASE + 0x0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
TEMP_ MAX_ SUP
Function S_F FLASH_SIZE_1 FLASH_SIZE_2 Res. Res.
RANGE FREQ PLY
S_F
(1) 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0
8 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Function PART_NUMBER (ASCII Character) Res. EE Res. FR
0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1
A = 0x41
0h 16 KB
1h 32 KB
2h 64 KB
3h 128 KB
4h 256 KB
5h 512 KB
6h 1024 KB
7h 2048 KB
...
n 24+n KB
SIU_BASE + 0x4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R PARTNUM [0–15] (4 Digits)
W
Reset 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0
5 6 4 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CSP PKG [0–4] Reserved MASKNUM [0–3] - Major MASKNUM [0–3] - Minor
W
Reset —(1) —(2) — — — — 0 0 0 0 0 0 0 0 0 0
1. Values corresponding to device packaging; see Table 125.
2. Values for these bits vary according to the package. See Table 125 for details.
0x5640
0–15 PARTNUM [0–15]
CSP configuration:
16 CSP 1:Calibration tool package
0: Standard QFP package or BGA208 package
Indicate the package the die is mounted in
10001: 176-pin QFP
17–21 PKG [0–4]
10000: 208-ball BGA
10100: 324-ball BGA
22–23 — Reserved
Major MASKNUM MCU major mask number; the current value applies to revision 0 and will be
24–27
[0–3] updated for each complete resynthesis
Minor MASKNUM MCU minor mask number; the current value applies to revision 0 and will be
28–31
[0–3] updated for each mask revision
SIU_BASE + 0xC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reset(1) 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
WKPCFG
Reset(1) U(2) 0 0 0 0 0 0 0 0 0 0 0 U
(3)
0 0 0
= Unimplemented or Reserved
1. The reset values for this register are defined for power-on reset only.
2. The reset value of this bit is determined by the value latched on the associated pin at the negation of the last reset.
3. The reset value of this bit is determined by the inverse of the value latched on the associated EVTO pin.
7–13 — Reserved
Software System Reset Status
14 SSRS 1: A Software System Reset has occurred.
0: No Software System Reset has occurred.
Software External Reset Flag
15 SERF 1: A Software External Reset has occurred.
0: No Software External Reset has occurred.
Weak Pull Configuration Pin Status
1: WKPCFG pin latched during the last reset was logical one and weak pull up is the
16 WKPCFG default setting.
0: WKPCFG pin latched during the last reset was logical zero and weak pull down is
the default setting.
17–27 — Reserved
Auto Baud Rate
28 ABR 1: Auto Baud Rate Enabled.
0: Auto Baud Rate Disabled.
Reset Configuration Pin Status
The BOOTCFG field holds the value of the BOOTCFG[1] pin that was latched on the
last negation of the RSTOUT pin. The BOOTCFG field is used by the BAM program to
determine the location of the Reset Configuration Word. See Table 10 in Section ,
RCHW overview for a translation of the Reset Configuration Half Word location from
29–30 BOOTCFG[0:1] the BOOTCFG field value.
0b00: Boot from internal flash memory (default)
0b01: FlexCAN / eSCI boot
0b10: Boot from external memory (no arbitration)
0b11: Reserved
RESET Glitch Flag
This bit is set by the MCU when the RESET pin is asserted for more than 2 clock
cycles, but less than the minimum RESET assertion time of 10 consecutive clock
31 RGF cycles to cause a reset. This bit is cleared by the reset controller for a valid assertion
of the RESET pin or a power-on reset or a write of one to the bit.
1: A glitch was detected on the RESET pin.
0: No glitch was detected on the RESET pin.
SIU_BASE + 0xE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R SSR SER 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R Res. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 1(1) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit in the SPC564A74xx, SPC564A80xx MCU has no effect as checkstop reset is not supported.
SIU_BASE + 0x14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R NMI 0 0 0 0 0 0 0 SWT 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R EIF15 EIF14 EIF13 EIF12 EIF11 EIF10 EIF9 EIF8 EIF7 EIF6 EIF5 EIF4 EIF3 EIF2 EIF1 EIF0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x18
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
NMI_SEL0(1)
NMI_SEL(1)
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
EIRE15
EIRE14
EIRE13
EIRE12
EIRE11
EIRE10
EIRE9
EIRE8
EIRE7
EIRE5
EIRE4
EIRE3
EIRE2
EIRE1
EIRE0
R 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x1C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
DIRS3
DIRS2
DIRS1
DIRS0
0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x20
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
OVF15
OVF14
OVF13
OVF12
OVF10
OVF11
OVF9
OVF8
OVF7
OVF6
OVF5
OVF4
OVF3
OVF2
OVF1
OVF0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Overrun Flag x
This bit is set when an overrun occurs on the corresponding IRQx input.
OVFx
1: An overrun has occurred on the corresponding IRQx input
0: No overrun has occurred on the corresponding IRQx input
SIU_BASE + 0x24
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ORE15
ORE14
ORE13
ORE12
ORE10
ORE11
ORE9
ORE8
ORE7
ORE6
ORE5
ORE4
ORE3
ORE2
ORE1
ORE0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x28
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
(1)
(1)
0 0 0 0 0 0 0 0 0 0 0 0 0 0
NMIRE0
NMIRE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
IREE15
IREE14
IREE13
IREE12
IREE10
IREE11
IREE9
IREE8
IREE7
IREE6
IREE5
IREE4
IREE3
IREE2
IREE1
IREE0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit is cleared only by a reset.
SIU_BASE + 0x2C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
(1)
(1)
0 0 0 0 0 0 0 0 0 0 0 0 0 0
NMIFE0
NMIFE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
IFEE15
IFEE14
IFEE13
IFEE12
IFEE10
IFEE11
IFEE9
IFEE8
IFEE7
IFEE6
IFEE5
IFEE4
IFEE3
IFEE2
IFEE1
IFEE0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit is cleared only by a reset.
SIU_BASE + 0x30
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 DFL[0–3]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Equation 1
DFL[0–3] DFL
Filter Period = ( S ystemClockPeriod × 2 ) + 1 ( S ystemClockPeriod )
For a 100 MHz system clock, this gives a range of 20 ns to 328 µs. The minimum time of two clocks
accounts for synchronization of the IRQ input pins with the system clock.
Using the same calculation, for a 150 MHz system clock, this gives a range of 13.3 ns to 218 µs.
SIU_BASE + 0x2C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
(1)
(1)
0 0 0 0 0 0 0 0 0 0 0 0 0 0
NMIFE0
NMIFE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
IFEE15
IFEE14
IFEE13
IFEE12
IFEE10
IFEE11
IFEE9
IFEE8
IFEE7
IFEE6
IFEE5
IFEE4
IFEE3
IFEE2
IFEE1
IFEE0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit is cleared only by a reset.
For all PCRs where GPIO function is available on the pin, if the pin is configured as an output and
the IBE bit is set, the actual value of the pin will be reflected in the corresponding GPDIx_x register.
Negating the IBE bit when the pin is configured as an output will reduce noise and power
consumption.
Drive strength control
Controls the pad drive strength. Drive strength control pertains to pins with the fast I/O pad type.
Input hysteresis
Controls whether hysteresis is enabled for the pad.
HYS(4)
0 Disable hysteresis for the pad.
1 Enable hysteresis for the pad.
Slew rate control
Controls slew rate for the pad. Slew rate control pertains to pins with slow or medium I/O pad
types, and the output signals are driven according to the value of this field. Actual slew rate
depends on the pad type and load. Refer to the electrical specifications for this information.
SRC(3)
00 Minimum slew rate
01 Medium slew rate
10 Invalid value
11 Maximum slew rate
Weak pullup/down enable
Controls whether the weak pullup/down devices are enabled/disabled for the pad. Pullup/down
devices are enabled by default.
WPE(5)
WPS(5) The WKPCFG pin determines whether pullup or pulldown devices are enabled during reset. The
WPS bit determines whether weak pullup or pulldown devices are used after reset, or for pads in
which the WKPCFG pin does not determine the reset weak pullup/down state.
The following sections describe PCR functions using maps that show the fields contained in
each register. Refer to Table 136 for the details of each field.
Figure 157 shows a sample PCR map. Please note the following:
● The register bit numbering order follows the Power Architecture standard of the most
significant bit being bit 0. Field bit ranges are the opposite—the least significant bit is
referred to as bit 0.
● Bit 0 is an example of a reserved field. It is read-only and always returns a value of 0.
Field Name
SIU_BASE+0x40
Read values 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 OBE 0 0
Write values PA (1) IBE(2) DSC ODE HYS WPE WPS
Reset values W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. OBE bit is significant in GPIO
Signal I/O direction.
2. IBE bit is significant in GPIO “Signal” refers to position in I - Input
muxing order—Primary, ALT1, O - Output
ALT2, ALT3 or GPIO. I/O - Input or output
Signal Name Module Description I/O(1),(2) PA value
Doc ID 15177 Rev 8
PA field value
required to
Primary CS[0] EBI Chip select O 0b01 select a
signal for the
ALT1 ADDR[8] EBI Address bus I/O 0b10 pin controlled
by this PCR.
GPIO GPIO[0] EBI GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits.
Set IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x40
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CS[0] or ADDR[8] the OBE bit has no effect. When configured as GPO, set the OBE bit to one.
2. When configured as CS[0] or GPO, set the IBE bit to one to reflect the pin state in the GPDI register. When configured as
GPI, set the IBE bit to one.
3. When configured as CS[0] or ADDR[8], set the ODE bit to zero.
4. See the EBI section for weak pull up settings when configured as CS[0].
SIU_BASE+0x42
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CS[1] or ADDR[9] the OBE bit has no effect. When configured as GPO, set the OBE bit to one.
2. When configured as CS[1] or GPO, set the IBE bit to one to reflect the pin state in the GPDI register. When configured as
GPI, set the IBE bit to one.
3. When configured as CS[1] or ADDR[9], set the ODE bit to zero.
4. See the EBI section for weak pull up settings when configured as CS[1].
SIU_BASE+0x44
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CS[2] or ADDR[10] the OBE bit has no effect. When configured as GPO, set the OBE bit to one.
2. When configured as CS[2] or GPO, set the IBE bit to one to reflect the pin state in the GPDI register. When configured as
GPI, set the IBE bit to one.
3. When configured as CS[2] or ADDR[10], set the ODE bit to zero.
4. See the EBI section for weak pull up settings when configured as CS[0].
SIU_BASE+0x46
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) 4
R 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CS[3] or ADDR[11] the OBE bit has no effect. When configured as GPO, set the OBE bit to one.
2. When configured as CS[3] or GPO, set the IBE bit to one to reflect the pin state in the GPDI register. When configured as
GPI, set the IBE bit to one.
3. When configured as CS[3] or ADDR[11], set the ODE bit to zero.
4. See the EBI section for weak pull up settings when configured as CS[0].
SIU_BASE+0x50
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[12] the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as ADDR[12] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as ADDR[12], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[12]
SIU_BASE+0x52
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[13] the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as ADDR[13], WE[2] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as ADDR[13], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[13]
SIU_BASE+0x54
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[14] the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as ADDR[14], WE[2] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as ADDR[14], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[14]
SIU_BASE+0x56
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[15] the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as ADDR[15] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as ADDR[15], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[15]
SIU_BASE+0x58
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[16] or DATA[16] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[16], FR_A_TX or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[16], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[16]
SIU_BASE+0x5A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[17] or DATA[17], the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[17], FR_A_TX_EN or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[17], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[17]
SIU_BASE+0x5C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[18], FR_A_RX or DATA[18] the OBE bit has no effect. When configured as GPO, the OBE bit
should be set to one.
2. When configured as ADDR[18] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as ADDR[18], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[18]
SIU_BASE+0x5E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[19] or DATA[19] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[19], FR_B_TX or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[19], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[19]
SIU_BASE+0x60
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[20] or DATA[20] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[20], DATA[20], FR_B_TX_EN or GPO, the IBE bit may be set to one to reflect the pin state in
the corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE
bit should be set to one.
3. When configured as ADDR[20] or DATA[20], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[20] or DATA[20].
SIU_BASE+0x62
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[21], FR_B_RX or DATA[21] the OBE bit has no effect. When configured as GPO, the OBE bit
should be set to one.
2. When configured as ADDR[21], DATA[21] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[21] or DATA[21], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[21] or DATA[21].
SIU_BASE+0x64
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[22] or DATA[22] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[22] DATA[22] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as ADDR[22] or DATA[22], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[22] or DATA[22].
SIU_BASE+0x66
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[23] or DATA[23] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[23], DATA[23] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[23] or DATA[23], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[23] or DATA[23].
SIU_BASE+0x68
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[24] or DATA[24] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[24], DATA[24] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[24] or DATA[24], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[24] or DATA[24].
SIU_BASE+0x6A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[25] or DATA[25] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[25], DATA[25] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[25] DATA[25], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[25] or DATA[25].
SIU_BASE+0x6C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[26] or DATA[26] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[26], DATA[26] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[26] or DATA[26], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[26] or DATA[26].
SIU_BASE+0x6E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[27] or DATA[27] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[27], DATA[27] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[27] or DATA[27], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[27] or DATA[27].
SIU_BASE+0x70
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[28] or DATA[28] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[28], DATA[28] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[28] or DATA[28], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[28] or DATA[28].
SIU_BASE+0x72
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[29] or DATA[29] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[29], DATA[29] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[29] or DATA[29], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[29]
SIU_BASE+0x74
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[30] or DATA[30], the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[30], ADDR[6], DATA[30] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[30], ADDR[6] or DATA[30], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[30], ADDR[6] or DATA[30].
SIU_BASE+0x76
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as ADDR[31] or DATA[31] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as ADDR[31], ADDR[7], DATA[31] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as ADDR[31], ADDR[7] or DATA[31], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as ADDR[31], ADDR[7] or DATA[31].
SIU_BASE+0x78
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[0] or ADDR[16] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[0], ADDR[16] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[0] or ADDR[16], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[0] or ADDR[16].
SIU_BASE+0x7A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[1] or ADDR[17] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[1], ADDR[17] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[1] or ADDR[17], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[1] or ADDR[17].
SIU_BASE+0x7C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[2] or ADDR[18] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[2], ADDR[18] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[2] or ADDR[18], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[2] or ADDR[18].
SIU_BASE+0x7E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[3] or ADDR[19] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[3], ADDR[19] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[3] or ADDR[19], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[3] or ADDR[19].
SIU_BASE+0x80
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[4] or ADDR[20] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[4], ADDR[20] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[4] or ADDR[20], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[4] or ADDR[20].
SIU_BASE+0x82
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[5] or ADDR[21] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[5], ADDR[21] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[5] or ADDR[21], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[5] or ADDR[21].
SIU_BASE+0x84
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[6] or ADDR[22] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[6], ADDR[22] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[6] or ADDR[22], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[6] or ADDR[22].
SIU_BASE+0x86
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[7] or ADDR[23] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[7], ADDR[23] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[7] or ADDR[23], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[7] or ADDR[23].
SIU_BASE+0x88
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[8] or ADDR[24] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[8], ADDR[24] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[8] or ADDR[24], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[8] or ADDR[24].
SIU_BASE+0x8A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[9] or ADDR[25] the OBE bit has no effect. When configured as GPO, the OBE bit should be set
to one.
2. When configured as DATA[9], ADDR[25] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
3. When configured as DATA[9] or ADDR[25], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[9] or ADDR[25].
SIU_BASE+0x8C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[10] or ADDR[26] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[10], ADDR[26] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as DATA[10] or ADDR[26], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[10] or ADDR[26].
SIU_BASE+0x8E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[11] or ADDR[27] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[11], ADDR[27] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as DATA[11] or ADDR[27], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[11] or ADDR[27].
SIU_BASE+0x90
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[12] or ADDR[28] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[12], ADDR[28] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as DATA[12] or ADDR[28], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[12] or ADDR[28].
SIU_BASE+0x92
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[13] or ADDR[29] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[13], ADDR[29] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as DATA[13] or ADDR[29], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[13] or ADDR[29].
SIU_BASE+0x94
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[14] or ADDR[30] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[14], ADDR[30] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as DATA[14] or ADDR[30], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[14] or ADDR[30].
SIU_BASE+0x96
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DATA[15] or ADDR[31] the OBE bit has no effect. When configured as GPO, the OBE bit should be
set to one.
2. When configured as DATA[15], ADDR[31] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
3. When configured as DATA[15] or ADDR[31], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as DATA[15] or ADDR[31].
SIU_BASE+0xBC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as RD_WR, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as RD_WR or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as RD_WR, the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as RD_WR.
SIU_BASE+0xBE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) 4
R 0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as BDIP or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as BDIP, the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as BDIP.
Burst data in
Primary BDIP EBI O 0b1
progress
GPIO GPIO[63] SIU GPIO I/O 0b0
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the
IBE and OBE bits. Set IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between
input and output is handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xC0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as WE[0]/BE[0] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as WE[0]/BE[0], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as WE[0]/BE[0].
SIU_BASE+0xC2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as WE[1]/BE[1] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as WE[1]/BE[1], the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as WE[1]/BE[1].
SIU_BASE+0xC8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as OE or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as OE, the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as OE.
SIU_BASE+0xCA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2) (4)
R 0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as TS, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as TS or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as TS, the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as TS.
SIU_BASE+0xCC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2) (4)
0 0 0 0 PA OBE IBE DSC ODE HYS 0 0 WPE WPS
(1) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as TA, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as TA, or GPIO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as TA and external master operation is enabled, the ODE bit should be set to zero.
4. See the EBI section for weak pull up settings when configured as TA.
Transfer
Primary TA EBI I/O 0b001
acknowledge
ALT1 TS EBI Transfer start O 0b010
GPIO GPIO[70] SIU GPIO I/O 0b000
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the
IBE and OBE bits. Set IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between
input and output is handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xD6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
Message data
Primary MDO[4] Nexus O 0b01
out
ALT1 ETPU_A[2] eTPU eTPU channel O 0b10
GPIO GPIO[75] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xD8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
Message data
Primary MDO[5] Nexus O 0b01
out
ALT1 ETPU_A[4] eTPU eTPU channel O 0b10
GPIO GPIO[76] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xDA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
Message data
Primary MDO[6] Nexus O 0b01
out
ALT1 ETPU_A[13] eTPU eTPU channel O 0b10
GPIO GPIO[77] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xDC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
Message data
Primary MDO[7] Nexus O 0b01
out
ALT1 ETPU_A[19] eTPU eTPU channel O 0b10
GPIO GPIO[78] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xDE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
Message data
Primary MDO[8] Nexus O 0b01
out
ALT1 ETPU_A[21] eTPU eTPU channel O 0b10
GPIO GPIO[79] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xE0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
Message data
Primary MDO[9] Nexus O 0b01
out
ALT1 ETPU_A[25] eTPU eTPU channel O 0b10
GPIO GPIO[80] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xE2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
SIU_BASE+0xE4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (2) (3) (4)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. This bit applies only to GPIO operation.
2. The ODE bit should be set to zero for MDO operation.
3. The HYS bit has no effect on MDO operation.
4. The WPE bit should be set to zero for MDO operation.
SIU_BASE+0xE6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as CAN_A_TX or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. When configured as SCI_A_TX both OBE and IBE are set to one automatically. Setting the IBE bit to zero reduces
power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0xE8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CAN_A_RX or SCI_A_RX, the OBE bit has no effect. When configured as GPO, the OBE bit should
be set to one.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0xEA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as CAN_B_TX, DSPI_C_PCS[3], SCI_C_TX or GPO, the IBE bit may be set to one to reflect the pin state
in the corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the
IBE bit should be set to one.
SIU_BASE+0xEC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CAN_B_RX or SCI_C_RX, the OBE bit has no effect. When configured as GPO, the OBE bit should
be set to one.
2. When configured as DSPI_C_PCS[4] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
SIU_BASE+0xEE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as CAN_C_TX, DSPI_D_PCS[3] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0xF0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as CAN_C_RX, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as CAN_C_RX, DSPI_D_PCS[4] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0xF2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
SIU_BASE+0xF4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as SCI_A_RX the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as EMIOS[15] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. For SCI loop back operation the IBE bit must be set to one. Setting the IBE bit to zero reduces power
consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0xF6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as SCI_B_TX, DSPI_D_PCS[1] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. For SCI loop back operation the IBE bit must be set to one. Setting the IBE bit to zero
reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0xF8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as SCI_B_RX, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_D_PCS[5] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. For SCI loop back operation the IBE bit must be set to one. Setting the IBE bit to zero reduces power
consumption. When configured as GPI, the IBE bit should be set to one.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0xFA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The SCKA function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_C_PCS[1] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
SCKA(3)
ALT1 DSPI_C_PCS[1] DSPI Chip select O 0b10
GPIO GPIO[93] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
3. This signal name is used to support legacy naming.
SIU_BASE+0xFC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The SINA function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_C_PCS[2] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
SINA(3)
ALT1 DSPI_C_PCS[2] DSPI Chip select O 0b10
GPIO GPIO[94] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
3. This signal name is used to support legacy naming.
SIU_BASE+0xFE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The SOUTA function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_C_PCS[5] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
SIU_BASE+0x100
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PCSA[0] function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_D_PCS[2] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
PCSA0(3)
ALT1 DSPI_D_PCS[2] DSPI Chip select O 0b10
GPIO GPIO[96] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
3. This signal name is used to support legacy naming.
SIU_BASE+0x102
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (1) (3)
0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PCSA[1] function is not available on the SPC564A74xx, SPC564A80xx MCU. Do not select 0b01 or 0b11 for the PA
field.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_B_PCS[2] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
PCSA1(3)
ALT1 DSPI_B_PCS[2] DSPI Chip select O 0b10
GPIO GPIO[97] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
3. This signal name is used to support legacy naming.
SIU_BASE+0x104
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PCSA[2] function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as DSPI_D_SCK, the OBE bit should be set to one for master operation, and set to zero for slave
operation. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_D_SCK in slave operation, the IBE bit should be set to one. When configured as DSPI_D_SCK
in master operation or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x106
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (1) (3)
0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PCSA[3] function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
SIU_BASE+0x108
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PCSA[4] function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as DSPI_D_SOUT, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to
one.
3. When configured as DSPI_D_SOUT or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
PCSA4(3)
ALT1 DSPI_D_SOUT DSPI Output O 0b10
GPIO GPIO[100] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
3. This signal name is used to support legacy naming.
SIU_BASE+0x10A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PCSA[5] function is not available on the SPC564A74xx, SPC564A80xx. Do not select 0b01 or 0b11 for the PA field.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as DSPI_B_PCS[3] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
PCSA5(3)
ALT1 DSPI_B_PCS[3] DSPI Chip select O 0b10
GPIO GPIO[101] SIU GPIO I/O 0b00
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
3. This signal name is used to support legacy naming.
SIU_BASE+0x10C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DSPI_B_SCK, the OBE bit should be set to one for master operation, and set to zero for slave
operation. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_B_SCK in slave operation the IBE bit should be set to one. When configured as DSPI_B_SCK in
master operation or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x10E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DSPI_B_SIN, the OBE bit should be set to zero. When configured as PCS, the OBE bit should be set
to one.
2. When configured as DSPI_B_SIN or DSPI_C_PCS[2], the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0x110
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_B_SOUT or DSPI_C_PCS[5] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0x112
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_B_PCS[0], DSPI_D_PCS[2] or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0x114
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DSPI_D_PCS[0], the OBE bit should be set to one for master operation, and set to zero for slave
operation. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_D_PCS[0] in slave operation, the IBE bit should be set to one. When configured as PCS in
master operation or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x116
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_B_PCS[2], DSPI_C_SOUT or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0x118
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DSPI_C_SIN, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_B_PCS[3] or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
SIU_BASE+0x11A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DSPI_C_SCK, the OBE bit should be set to one for master operation, and set to zero for slave
operation. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_C_SCK in slave operation, the IBE bit should be set to one. When configured as
DSPI_B_PCS[4] or DSPI_C_SCK in master operation or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit
should be set to one.
SIU_BASE+0x11C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as DSPI_C_PCS[0], the OBE bit should be set to one for master operation, and set to zero for slave
operation. When configured as GPO, the OBE bit should be set to one.
2. When configured as DSPI_C_PCS[0] in slave operation, the IBE bit should be set to one. When configured as PCS in
master operation or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x122
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as TCRCLKA or IRQ, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to
one.
2. When configured as TCRCLKA or IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set
to one.
SIU_BASE+0x124
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[0] and GPIO[114] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[0] and GPIO[114] when configured as inputs. When configured as
ETPU_A[12] or ETPU_A[19] or when ETPU_A[0] or GPIO[114] are configured as outputs, the IBE bit may be set to one to
reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[0] pin is determined by the WKPCFG pin.
SIU_BASE+0x126
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[1] and GPIO[115] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[1] and GPIO[113] when configured as inputs. When configured as
ETPU_A[13] or when ETPU_A[1] or GPIO[115] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[1] pin is determined by the WKPCFG pin.
SIU_BASE+0x128
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[2] and GPIO[116] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[2] and GPIO[116] when configured as inputs. When configured as
ETPU_A[14] or when ETPU_A[2] or GPIO[116] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[2] pin is determined by the WKPCFG pin.
SIU_BASE+0x12A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[3] and GPIO[117] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[3] and GPIO[117] when configured as inputs. When configured as
ETPU_A[15] or when ETPU_A[3] or GPIO[117] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[3] pin is determined by the WKPCFG pin.
SIU_BASE+0x12C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[4] and GPIO[118] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[4] and GPIO[118] when configured as inputs. When configured as
ETPU_A[16] or FR_B_TX or when ETPU_A[4] or GPIO[118] are configured as outputs, the IBE bit may be set to one to
reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[4] pin is determined by the WKPCFG pin.
SIU_BASE+0x12E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[5] and GPIO[119] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[5] and GPIO[119] when configured as inputs. When configured as
ETPU_A[17] or when ETPU_A[5] or GPIO[119] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[5] pin is determined by the WKPCFG pin.
SIU_BASE+0x130
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[6] and GPIO[120] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[6] and GPIO[120] when configured as inputs. When configured as
ETPU_A[18] or when ETPU_A[6] or GPIO[119] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[6] pin is determined by the WKPCFG pin.
SIU_BASE+0x132
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[7] and GPIO[121] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[7] and GPIO[121] when configured as inputs. When configured as
ETPU_A[19] or when ETPU_A[7] or GPIO[119] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[7] pin is determined by the WKPCFG pin.
SIU_BASE+0x134
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[8] and GPIO[122] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[8] and GPIO[122] when configured as inputs. When configured as
ETPU_A[20] or when ETPU_A[8] or GPIO[122] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[8] pin is determined by the WKPCFG pin.
SIU_BASE+0x136
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[9] and GPIO[123] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[9] and GPIO[123] when configured as inputs. When configured as
ETPU_A[21] or when ETPU_A[9] or GPIO[123] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[9] pin is determined by the WKPCFG pin.
SIU_BASE+0x138
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[10] and GPIO[124] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[10] and GPIO[124] when configured as inputs. When configured as
ETPU_A[22] or when ETPU_A[10] or GPIO[124] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[10] pin is determined by the WKPCFG pin.
SIU_BASE+0x13A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPU_A[11] and GPIO[125] when configured as outputs.
2. The IBE bit must be set to one for both ETPU_A[11] and GPIO[125] when configured as inputs. When configured as
ETPU_A[23] or when ETPU_A[11] or GPIO[125] are configured as outputs, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[11] pin is determined by the WKPCFG pin.
SIU_BASE+0x13C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as PCS, the OBE bit has no effect. The OBE bit must be set to one for both ETPUA and GPIO when
configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[12] pin is determined by the WKPCFG pin.
SIU_BASE+0x13E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[13] pin is determined by the WKPCFG pin.
SIU_BASE+0x140
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[14] pin is determined by the WKPCFG pin.
SIU_BASE+0x142
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[15] pin is determined by the WKPCFG pin.
SIU_BASE+0x144
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[16] pin is determined by the WKPCFG pin.
SIU_BASE+0x146
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[17] pin is determined by the WKPCFG pin.
SIU_BASE+0x148
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[18] pin is determined by the WKPCFG pin.
SIU_BASE+0x14A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both ETPUA and GPIO when configured as outputs.
2. The IBE bit must be set to one for both ETPUA and GPIO when configured as inputs. When configured as PCS, or ETPUA
or GPO outputs, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
3. The weak pull up/down selection at reset for the ETPU_A[19] pin is determined by the WKPCFG pin.
SIU_BASE+0x14C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[20] and GPIO[134]
when configured as outputs.
2. When configured as FR_A_TX, IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both ETPU_A[20]
and GPIO[134] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[20] pin is determined by the WKPCFG pin.
SIU_BASE+0x14E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[21] and GPIO[135]
when configured as outputs.
2. When configured as FR_A_RX, IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both ETPU_A[21]
and GPIO[135] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[21] pin is determined by the WKPCFG pin.
SIU_BASE+0x150
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[22] and GPIO[136]
when configured as outputs.
2. When configured as ETPU_A[17], IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both ETPU_A[22]
and GPIO[136] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[22] pin is determined by the WKPCFG pin.
SIU_BASE+0x152
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[23] and GPIO[137]
when configured as outputs.
2. When configured as ETPU_A[21], FR_A_TX_EN, IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for
both ETPU_A[23] and GPIO[137] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[23] pin is determined by the WKPCFG pin.
SIU_BASE+0x154
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[24] and GPIO[138]
when configured as outputs.
2. When configured as DSPI_C_SCK_LVDS−, IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for
both ETPU_A[24] and GPIO[138] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[24] pin is determined by the WKPCFG pin.
SIU_BASE+0x156
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[25] and GPIO[139]
when configured as outputs.
2. When configured as IRQ, DSPI_C_SCK_LVDS+ or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for
both ETPU_A[25] and GPIO[139] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[25] pin is determined by the WKPCFG pin.
SIU_BASE+0x158
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[26] and GPIO[140]
when configured as outputs.
2. When configured as IRQ, DSPI_C_SOUT_LVDS− or GPO, the IBE bit may be set to one to reflect the pin state in the
corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for
both ETPU_A[26] and GPIO[140] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[26] pin is determined by the WKPCFG pin.
SIU_BASE+0x15A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. The OBE bit must be set to one for both ETPU_A[27] and GPIO[141]
when configured as outputs.
2. When configured as IRQ, DSPI_C_SOUT_LVDS+, SOUTB or GPO, the IBE bit may be set to one to reflect the pin state in
the corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for
both ETPU_A[27] and GPIO[141] when configured as inputs.
3. The weak pull up/down selection at reset for the ETPU_A[27] pin is determined by the WKPCFG pin.
SIU_BASE+0x15C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as PCS or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for GPIO when configured as input.
3. The weak pull up/down selection at reset for the ETPU_A[28] pin is determined by the WKPCFG pin.
SIU_BASE+0x15E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as PCS or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for GPIO when configured as input.
3. The weak pull up/down selection at reset for the ETPU_A[29] pin is determined by the WKPCFG pin.
SIU_BASE+0x160
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as ETPUA output or GPO, the OBE bit should be set to one.
2. When configured as ETPUA output, PCS, or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding
GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for ETPUA or GPIO
when configured as input.
3. The weak pull up/down selection at reset for the ETPU_A[30] pin is determined by the WKPCFG pin
SIU_BASE+0x162
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. When configured as ETPUA output or GPO, the OBE bit should be set to one.
2. When configured as ETPUA output, DSPI_C_PCS[4], ETPU_A[13] or GPO, the IBE bit may be set to one to reflect the pin
state in the corresponding GPDI register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to
one for ETPUA or GPIO when configured as input.
3. The weak pull up/down selection at reset for the ETPU_A[31] pin is determined by the WKPCFG pin.
SIU_BASE+0x1A6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[0] and GPIO[179] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[0] and GPIO[179] when
configured as inputs.
SIU_BASE+0x1A8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[1] and GPIO[180] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[1] and GPIO[180] when
configured as inputs.
SIU_BASE+0x1AA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[2] and GPIO[181] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[2] and GPIO[181] when
configured as inputs.
SIU_BASE+0x1AC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[3] and GPIO[182] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[3] and GPIO[182] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[3] pin is determined by the WKPCFG pin.
SIU_BASE+0x1AE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[4] and GPIO[183] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[4] and GPIO[183] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[4] pin is determined by the WKPCFG pin.
SIU_BASE+0x1B0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[5] and GPIO[184] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[5] and GPIO[184] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[5] pin is determined by the WKPCFG pin.
SIU_BASE+0x1B2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[6] and GPIO[185] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[6] and GPIO[185] when
configured as inputs.
SIU_BASE+0x1B4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[7] and GPIO[186] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[7] and GPIO[186] when
configured as inputs.
SIU_BASE+0x1B6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[8] and GPIO[187] when configured as outputs.
2. When configured as ETPU or SCI_B_TX, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[8] and
GPIO[187] when configured as inputs.
SIU_BASE+0x1B8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[9] and GPIO[188] when configured as outputs.
2. When configured as ETPU, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[9] and GPIO[188] when
configured as inputs.
SIU_BASE+0x1BA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[10] and GPIO[189] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[10] and GPIO[189] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[10] pin is determined by the WKPCFG pin.
SIU_BASE+0x1BC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[11] and GPIO[190] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[11] and GPIO[190] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[11] pin is determined by the WKPCFG pin.
SIU_BASE+0x1BE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for GPIO[191] when configured as an output.
2. When configured as ETPU_A[27] or GPO the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for GPIO[191] when
configured as an input.
3. The weak pull up/down selection at reset for the EMIOS[12] pin is determined by the WKPCFG pin.
SIU_BASE+0x1C0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for GPIO[192] when configured as an output.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for GPIO[192] when configured as an input.
3. The weak pull up/down selection at reset for the EMIOS[13] pin is determined by the WKPCFG pin.
SIU_BASE+0x1C2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. The OBE bit must be set to one for GPIO[193] when configured as outputs.
2. When configured as IRQ, ETPU or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for GPIO[193] when
configured as inputs.
SIU_BASE+0x1C4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. The OBE bit must be set to one for GPIO[194] when configured as outputs.
2. When configured as IRQ, ETPU or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. The IBE bit must be set to one for GPIO[194] when
configured as inputs.
SIU_BASE+0x1C6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[16] and GPIO[195] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[16] and GPIO[195] when
configured as inputs.
SIU_BASE+0x1C8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[17] and GPIO[196] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[17] and GPIO[196] when
configured as inputs.
SIU_BASE+0x1CA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[18] and GPIO[197] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[18] and GPIO[197] when
configured as inputs.
SIU_BASE+0x1CC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[19] and GPIO[198] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[19] and GPIO[198] when
configured as inputs.
SIU_BASE+0x1CE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[20] and GPIO[199] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[20] and GPIO[199] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[20] pin is determined by the WKPCFG pin.
SIU_BASE+0x1D0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 WKP
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[21] and GPIO[200] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[21] and GPIO[200] when
configured as inputs.
3. The weak pull up/down selection at reset for the EMIOS[21] pin is determined by the WKPCFG pin.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x1D2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[22] and GPIO[201] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[22] and GPIO[201] when
configured as inputs.
SIU_BASE+0x1D4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
= Unimplemented or Reserved
1. The OBE bit must be set to one for both EMIOS[23] and GPIO[202] when configured as outputs.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. The IBE bit must be set to one for both EMIOS[23] and GPIO[202] when
configured as inputs.
SIU_BASE+0x1D6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PA bit should be set to one for EMIOS and cleared to zero when used as GPIO.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as EMIOS or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x1D8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (1) (3)
0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. The PA bit should be set to one for EMIOS and cleared to zero when used as GPIO.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as EMIOS or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI
register. Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x1DC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. When
configured as GPI, the IBE bit should be set to one. Setting the IBE bit to zero reduces power consumption.
GPIO[206]
GPIO SIU GPIO I/O 0b0
ETRIG0
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x1DE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. When
configured as GPI, the IBE bit should be set to one. Setting the IBE bit to zero reduces power consumption.
GPIO[207]
GPIO SIU GPIO I/O 0b0
ETRIG1
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x1E0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as IRQ, the HYS bit should be set to one.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x1E2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1) (3)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as IRQ, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
2. When configured as IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
3. When configured as IRQ, the HYS bit should be set to one.
PLLCFG1
ALT1 IRQ[5] SIU External interrupt I 0b010
ALT2 DSPI_D_SOUT DSPI Output O 0b100
GPIO GPIO[209] SIU GPIO I/O 0b000
1. In cases where an I/O function can be either an input or an output, I/O direction is specified using the IBE and OBE bits. Set
IBE = 1 for input or OBE = 1 for output.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x1E4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0
= Unimplemented or Reserved
1. RSTCFG function is only applicable during reset. The PA bit must be set to zero for GPIO operation
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. When
configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x1E6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2) (4)
W
Reset 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0
= Unimplemented or Reserved
1. The BOOTCFG function applies only during reset when the RSTCFG pin is asserted during reset.
2. When configured as IRQ, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
3. When configured as IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
4. When configured as IRQ, the HYS bit should be set to one.
SIU_BASE+0x1E8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2) (4)
W
Reset 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0
= Unimplemented or Reserved
1. The BOOTCFG function applies only during reset when the RSTCFG pin is asserted during reset.
2. When configured as IRQ, the OBE bit has no effect. When configured as GPO, the OBE bit should be set to one.
3. When configured as IRQ or GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register.
Setting the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
4. When configured as IRQ, the HYS bit should be set to one.
SIU_BASE+0x1EA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1) (3)
R 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(2)
W
Reset 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1
= Unimplemented or Reserved
1. WKPCFG function is only applicable during reset.
2. When configured as GPO, the OBE bit should be set to one.
3. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. When
configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x1EC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 PA OBE 0 DSC ODE HYS 0 0 WPE WPS
(1)
W
Reset 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
1. ENGCLK is enabled/disabled by setting/clearing this bit.
SIU_BASE+0x1EE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1)
R 0 0 PA 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. Input and output buffers are enabled/disabled based on PA selection. Both input and output buffer disabled for AN[12]
function. Output buffer only enabled for MA[0], ETPU and SDS functions.
2. For I/O functions that change direction dynamically, such as the external data bus, switching between input and output is
handled internally and the IBE and OBE bits are ignored.
SIU_BASE+0x1F0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1)
R 0 0 PA 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. Input and output buffers are enabled/disabled based on PA selection. Both input and output buffer disabled for AN[13]
function. Output buffer only enabled for MA[1], ETPU and SDO functions.
SIU_BASE+0x1F2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1)
R 0 0 PA 0 0 0 0 ODE HYS SRC WPE WPS
(2) (3)
W
Reset 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. Input and output buffers are enabled/disabled based on PA selection. Both input and output buffer disabled for AN[14]
function. Output buffer only enabled for MA[2] and ETPU function and input buffer only enabled for SDI functions.
2. The WPE bit should be set to zero when configured as an analog input or MA[2], and set to one when configured as SDI.
3. The WPS bit should be set to one when configured as SDI.
SIU_BASE+0x1F4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1)
R 0 0 0 PA 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. Input and output buffers are enabled/disabled based on PA selection. Both input and output buffer disabled for AN[15]
function. Output buffer only enabled for FCK and ETPU functions.
SIU_BASE+0x1F6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R (2)
0 0 0 0 0 0 OBE IBE DSC[1:0] ODE HYS SRC[1:0] WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to 1.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. When
configured as GPI, the IBE bit should be set to one.
6
0 Disable output buffer for the pad.
OBE(1)
1 Enable output buffer for the pad is enabled.
00 10 pF drive strength
8–9
(2) 01 20 pF drive strength
DSC[1:0]
10 30 pF drive strength
11 50 pF drive strength
11
0 Disable hysteresis for the pad.
HYS(3)
1 Enable hysteresis for the pad.
12–13
00 Minimum slew rate
SRC[1:0](3)
01 Medium slew rate
10 Invalid value
11 Maximum slew rate
The WKPCFG pin determines whether pullup or pulldown devices are enabled during reset. The WPS
15 bit determines whether weak pullup or pulldown devices are used after reset, or for pads in which the
WPS(4) WKPCFG pin does not determine the reset weak pullup/down state.
2. If a pin is configured as an input, the ODE, SRC, and DSC bits do not apply.
3. If a pin is configured as an output, the HYS bit does not apply.
4. When a pin is configured as an output, the weak internal pull up/down is disabled regardless of the WPE or WPS settings in
the PCR.
SIU_BASE+0x1F8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x1FA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x1FC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x1FE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x202
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x204
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x206
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
SIU_BASE+0x208
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 SRC 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x20A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 PA OBE 0 DSC ODE HYS 0 0 WPE WPS
(1)
W
Reset 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
1. CLKOUT pin is enabled and disabled by setting and clearing the OBE bit.
SIU_BASE+0x20C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
= Unimplemented or Reserved
SIU_BASE+0x20E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 ODE HYS SRC WPE WPS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
SIU_BASE+0x210
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 SRC 0 0
W
Reset 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x228
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x22A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(2)
R 0 0 0 0 0 PA OBE IBE 0 0 ODE HYS SRC WPE WPS
(1)
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
= Unimplemented or Reserved
1. When configured as GPO, the OBE bit should be set to one.
2. When configured as GPO, the IBE bit may be set to one to reflect the pin state in the corresponding GPDI register. Setting
the IBE bit to zero reduces power consumption. When configured as GPI, the IBE bit should be set to one.
SIU_BASE+0x2E0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x2E4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 PA 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x2E6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 PA 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x2E8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 PA 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x2EA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1
= Unimplemented or Reserved
SIU_BASE+0x2EC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x2EE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 PA 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x2F2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 PA 0 0 DSC ODE HYS 0 0 WPE WPS
W
Reset 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
= Unimplemented or Reserved
= Unimplemented or Reserved
= Unimplemented or Reserved
= Unimplemented or Reserved
DSPI_C -
SIU_PCR 407 0x36E ETPU_A_28 — EMIOS_10 GPIO407
DSI25
DSPI_C -
SIU_PCR 408 0x370 ETPU_A_27 — EMIOS_11 GPIO408
DSI26
DSPI_C -
SIU_PCR 409 0x372 ETPU_A_26 — EMIOS_12 GPIO409
DSI27
DSPI_C -
SIU_PCR 410 0x374 ETPU_A_25 — EMIOS_13 GPIO410
DSI28
DSPI_C -
SIU_PCR 411 0x376 ETPU_A_24 — EMIOS_14 GPIO411
DSI29
DSPI_C -
SIU_PCR 412 0x378 ETPU_A_31 — EMIOS_15 GPIO412
DSI30
DSPI_C -
SIU_PCR 413 0x37A ETPU_A_30 — EMIOS_23 GPIO413
DSI31
SIU_BASE + 0x600
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 PDO 0 0 0 0 0 0 0 PDO
W 0 1
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 PDO 0 0 0 0 0 0 0 PDO
W 2 3
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SSIU_BASE + 0x79D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 PDO 0 0 0 0 0 0 0 PDO
W 412 413
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Figure 341. GPIO Pin Data Out Register 412 – 413 (SIU_GPDO410 – SIU_GPDO413)
Pin Data Out. This bit stores the data to be driven out on the external GPIO pin associated with the
register.
PDOx 0 VOL is driven on the external GPIO pin when the pin is configured as an output.
1 VOH is driven on the external GPIO pin when the pin is configured as an output.
SIU_BASE + 0x800
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 PDI 0 0 0 0 0 0 0 PDI
0 1
W
Reset 0 0 0 0 0 0 0 U 0 0 0 0 0 0 0 U
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 PDI 0 0 0 0 0 0 0 PDI
2 3
W
Reset 0 0 0 0 0 0 0 U 0 0 0 0 0 0 0 U
= Unimplemented or Reserved
SIU_BASE + 0x8EA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 PDI 0 0 0 0 0 0 0 PDI
230 231
W
Reset 0 0 0 0 0 0 0 U 0 0 0 0 0 0 0 U
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 PDI 0 0 0 0 0 0 0 0
W 232
Reset 0 0 0 0 0 0 0 U 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Figure 343. GPIO Pin Data In Register 230 – 232 (SIU_GPDI230 – SIU_GPDI232)
Pin Data In. This bit stores the input state on the external GPIO pin associated with the register.
0 Signal on pin is less than or equal to VIL.
PDIx
1 Signal on pin is greater than or equal to VIH.
and so on. Additionally, each SIU_ETISR field offers selection among a group of signals
using the corresponding field in the SIU_ISEL3 register.
Figure 344 illustrates the available trigger selections for eQADC CFIFO5.
1 T2 T3
T0 IT PI PI
PI D P D D
r r r r D N AN AN
07] ger igge igge igge igge 2 pin0 AN 0] A 8] 9 ] 0] 1] [ 10] [10] [23]
[2 ri g Tr T r T r T r 3 [3 [2 [2 [3 [3 S S S
IO I T T0 IT1 IT2 IT3 TRIGTPU TPU TPU TPU TPU TPU MIO IO MIO
GP RT PI P P P E e e e e e e e eM e
SIU_ISEL3[eTSEL5]
]
[26 [12
] 1]
_A G[
P U IOS TRI
eT eM E
00 01 10 11
SIU_ETISR[TSEL5]
SIU_BASE+0x900
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R TSEL5 TSEL4 TSEL3 TSEL2 TSEL1 TSEL0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE+0x904
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R ESEL15 ESEL14 ESEL13 ESEL12 ESEL11 ESEL10 ESEL9 ESEL8
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R ESEL7 ESEL6 ESEL5 ESEL4 ESEL3 ESEL2 ESEL1 ESEL0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
External IRQ Input Select 15. IRQ[15] input is specified by ESEL15 as follows:
0:1 00 IRQ[15] pin
01 DSPI_B[15] deserialized output
ESEL15
10 DSPI_C[0] deserialized output
11 DSPI_D[1] deserialized output
External IRQ Input Select 14. IRQ[14] input is specified by ESEL14 as follows:
2:3 00 IRQ[14] pin
01 DSPI_B[14] deserialized output
ESEL14
10 DSPI_C[15] deserialized output
11 DSPI_D[0] deserialized output
External IRQ Input Select 13. IRQ[13] input is specified by ESEL13 as follows:
4:5 00 IRQ[13] pin
01 DSPI_B[13] deserialized output
ESEL13
10 DSPI_C[14] deserialized output
11 DSPI_D[15] deserialized output
External IRQ Input Select 12. IRQ[12] input is specified by ESEL12 as follows:
6:7 00 IRQ[12] pin
01 DSPI_B[12] deserialized output
ESEL12
10 DSPI_C[13] deserialized output
11 DSPI_D[14] deserialized output
External IRQ Input Select 11. IRQ[11] input is specified by ESEL11 as follows:
8:9 00 IRQ[11] pin
01 DSPI_B[11] deserialized output
ESEL11
10 DSPI_C[12] deserialized output
11 DSPI_D[13] deserialized output
External IRQ Input Select 10. IRQ[10] input is specified by ESEL10 as follows:
10:11 00 IRQ[10] pin
01 DSPI_B[10] deserialized output
ESEL10
10 DSPI_C[11] deserialized output
11 DSPI_D[12] deserialized output
SIU_BASE+0x908
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 SINSELB SSSELB SCKSELB TRIGSELB
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SINSELC SSSELC SCKSELC TRIGSELC SINSELD SSSELD SCKSELD TRIGSELD
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0:7 Reserved
DSPI_B Data Input Select. The source of the data input of DSPI_B is specified by SINSELB as
follows:
8:9 00 DSPI_B_SIN pin
SINSELB 01 Reserved
10 DSPI_C_SOUT
11 DSPI_D_SOUT
DSPI_B Slave Select Input Select. The source of the slave select input of DSPI_B is specified by
SSSELB as follows:
10:11 00 DSPI_B_PCS[0] pin
SSSELB 01 Reserved
10 DSPI_C_PCS[0] (Master)
11 DSPI_D_PCS[0] (Master)
DSPI_B Clock Input Select. The source of the clock input of DSPI_B when in slave mode is specified
by SCKSELB as follows:
12:13 00 DSPI_B_SCK pin
SCKSELB 01 Reserved
10 DSPI_C_SCK (Master)
11 DSPI_D_SCK (Master)
DSPI_B Trigger Input Select. The source of the trigger input of DSPI_B for master or slave mode is
specified by TRIGSELB as follows:
14:15 00 Reserved
TRIGSELB 01 Reserved
10 DSPI_C_PCS[4]
11 DSPI_D_PCS[4]
DSPI_C Data Input Select. The source of the data input of DSPI_C is specified by SINSELC as
follows:
16:17 00 DSPI_C_SIN pin
SINSELC 01 Reserved
10 DSPI_B_SOUT
11 DSPI_D_SOUT
DSPI_C Slave Select Input Select. The source of the slave select input of DSPI_C is specified by
SSSELC as follows:
18:19 00 DSPI_C_PCS[0] pin
SSSELC 01 Reserved
10 DSPI_B_PCS[0] (Master)
11 DSPI_D_PCS[0] (Master)
DSPI_C Clock Input Select. The source of the clock input of DSPI_C when in slave mode is specified
by SCKSELC as follows:
20:21 00 DSPI_C_SCK pin
SCKSELC 01 Reserved
10 DSPI_B_SCK (Master)
11 DSPI_D_SCK (Master)
DSPI_C Trigger Input Select. The source of the trigger input of DSPI_C for master or slave mode is
specified by TRIGSELC as follows:
22:23 00 Reserved
TRIGSELC 01 Reserved
10 DSPI_B_PCS[4]
11 DSPI_D_PCS[4]
DSPI_D Data Input Select. The source of the data input of DSPI_D is specified by SINSELD as
follows:
24:25 00 DSPI_D_SIN pin
SINSELD 01 Reserved
10 DSPI_B_SOUT
11 DSPI_C_SOUT
DSPI_D Slave Select Input Select. The source of the slave select input of DSPI_D is specified by
SSSELD as follows:
26:27 00 DSPI_D_PCS[0] pin
SSSELD 01 Reserved
10 DSPI_B_PCS[0] (Master)
11 DSPI_C_PCS[0] (Master)
DSPI_D Clock Input Select. The source of the clock input of DSPI_D when in slave mode is specified
by SCKSELD as follows:
28:29 00 DSPI_D_SCK pin
SCKSELD 01 Reserved
10 DSPI_B_SCK (Master)
11 DSPI_C_SCK (Master)
DSPI_D Trigger Input Select. The source of the trigger input of DSPI_D for master or slave mode is
specified by TRIGSELD as follows:
30:31 00 Reserved
TRIGSELD 01 Reserved
10 DSPI_B_PCS[4]
11 DSPI_C_PCS[4]
SIU_BASE+0x90C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 eTSEL5 eTSEL4 eTSEL3
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R eTSEL eTSEL2 eTSEL1 eTSEL0
W 3
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 0 0 0 0 GPIO206 (eTRIG0)
0 0 0 0 1 RTI Trigger
0 0 0 1 0 PIT0 Trigger
0 0 0 1 1 PIT1 Trigger
0 0 1 0 0 PIT2 Trigger
0 0 1 0 1 PIT3 Trigger
0 0 1 1 0 Reserved
0 0 1 1 1 BOOTCFG[1] (eTRIG3)
0 1 0 0 0 eTPU30 AND PIT0
0 1 0 0 1 eTPU30 AND PIT1
0 1 0 1 0 Reserved
0 1 0 1 1 Reserved
0 1 1 0 0 eTPU28
0 1 1 0 1 eTPU29
0 1 1 1 0 eTPU30
0 1 1 1 1 eTPU31
1 0 0 0 0 Reserved
1 0 0 0 1 Reserved
1 0 0 1 0 Reserved
1 0 0 1 1 Reserved
1 0 1 0 0 eMIOS10 AND PIT2
1 0 1 0 1 eMIOS10 AND PIT3
1 0 1 1 0 Reserved
1 0 1 1 1 Reserved
1 1 0 0 0 Reserved
1 1 0 0 1 Reserved
1 1 0 1 0 Reserved
1 1 0 1 1 Reserved
1 1 1 0 0 Reserved
1 1 1 0 1 Reserved
1 1 1 1 0 Reserved
1 1 1 1 1 eMIOS23
0 0 0 0 0 GPIO207 (eTRIG1)
0 0 0 0 1 RTI Trigger
0 0 0 1 0 PIT0 Trigger
0 0 0 1 1 PIT1 Trigger
0 0 1 0 0 PIT2 Trigger
0 0 1 0 1 PIT3 Trigger
0 0 1 1 0 Reserved
0 0 1 1 1 PLLREF (eTRIG2)
0 1 0 0 0 eTPU31 AND PIT0
0 1 0 0 1 eTPU31 AND PIT1
0 1 0 1 0 Reserved
0 1 0 1 1 Reserved
0 1 1 0 0 eTPU28
0 1 1 0 1 eTPU29
0 1 1 1 0 eTPU30
0 1 1 1 1 eTPU31
1 0 0 0 0 Reserved
1 0 0 0 1 Reserved
1 0 0 1 0 Reserved
1 0 0 1 1 Reserved
1 0 1 0 0 eMIOS11 AND PIT2
1 0 1 0 1 eMIOS11 AND PIT3
1 0 1 1 0 Reserved
1 0 1 1 1 Reserved
1 1 0 0 0 Reserved
1 1 0 0 1 Reserved
1 1 0 1 0 Reserved
1 1 0 1 1 Reserved
1 1 1 0 0 Reserved
1 1 1 0 1 Reserved
1 1 1 1 0 Reserved
1 1 1 1 1 eMIOS23
0 0 0 0 0 GPIO206 (eTRIG0)
0 0 0 0 1 RTI Trigger
0 0 0 1 0 PIT0 Trigger
0 0 0 1 1 PIT1 Trigger
0 0 1 0 0 PIT2 Trigger
0 0 1 0 1 PIT3 Trigger
0 0 1 1 0 Reserved
0 0 1 1 1 BOOTCFG[1] (eTRIG3)
0 1 0 0 0 eTPU30 AND PIT0
0 1 0 0 1 eTPU30 AND PIT1
0 1 0 1 0 Reserved
0 1 0 1 1 Reserved
0 1 1 0 0 eTPU28
0 1 1 0 1 eTPU29
0 1 1 1 0 eTPU30
0 1 1 1 1 eTPU31
1 0 0 0 0 Reserved
1 0 0 0 1 Reserved
1 0 0 1 0 Reserved
1 0 0 1 1 Reserved
1 0 1 0 0 eMIOS10 AND PIT2
1 0 1 0 1 eMIOS10 AND PIT3
1 0 1 1 0 Reserved
1 0 1 1 1 Reserved
1 1 0 0 0 Reserved
1 1 0 0 1 Reserved
1 1 0 1 0 Reserved
1 1 0 1 1 Reserved
1 1 1 0 0 Reserved
1 1 1 0 1 Reserved
1 1 1 1 0 Reserved
1 1 1 1 1 eMIOS23
0 0 0 0 0 GPIO207 (eTRIG1)
0 0 0 0 1 RTI Trigger
0 0 0 1 0 PIT0 Trigger
0 0 0 1 1 PIT1 Trigger
0 0 1 0 0 PIT2 Trigger
0 0 1 0 1 PIT3 Trigger
0 0 1 1 0 Reserved
0 0 1 1 1 PLLREF (eTRIG2)
0 1 0 0 0 eTPU30 AND PIT0
0 1 0 0 1 eTPU30 AND PIT1
0 1 0 1 0 Reserved
0 1 0 1 1 Reserved
0 1 1 0 0 eTPU28
0 1 1 0 1 eTPU29
0 1 1 1 0 eTPU30
0 1 1 1 1 eTPU31
1 0 0 0 0 Reserved
1 0 0 0 1 Reserved
1 0 0 1 0 Reserved
1 0 0 1 1 Reserved
1 0 1 0 0 eMIOS10 AND PIT2
1 0 1 0 1 eMIOS10 AND PIT3
1 0 1 1 0 Reserved
1 0 1 1 1 Reserved
1 1 0 0 0 Reserved
1 1 0 0 1 Reserved
1 1 0 1 0 Reserved
1 1 0 1 1 Reserved
1 1 1 0 0 Reserved
1 1 1 0 1 Reserved
1 1 1 1 0 Reserved
1 1 1 1 1 eMIOS23
0 0 0 0 0 GPIO207 (eTRIG1)
0 0 0 0 1 RTI Trigger
0 0 0 1 0 PIT0 Trigger
0 0 0 1 1 PIT1 Trigger
0 0 1 0 0 PIT2 Trigger
0 0 1 0 1 PIT3 Trigger
0 0 1 1 0 Reserved
0 0 1 1 1 PLLREF (eTRIG2)
0 1 0 0 0 eTPU30 AND PIT0
0 1 0 0 1 eTPU30 AND PIT1
0 1 0 1 0 Reserved
0 1 0 1 1 Reserved
0 1 1 0 0 eTPU28
0 1 1 0 1 eTPU29
0 1 1 1 0 eTPU30
0 1 1 1 1 eTPU31
1 0 0 0 0 Reserved
1 0 0 0 1 Reserved
1 0 0 1 0 Reserved
1 0 0 1 1 Reserved
1 0 1 0 0 eMIOS10 AND PIT2
1 0 1 0 1 eMIOS10 AND PIT3
1 0 1 1 0 Reserved
1 0 1 1 1 Reserved
1 1 0 0 0 Reserved
1 1 0 0 1 Reserved
1 1 0 1 0 Reserved
1 1 0 1 1 Reserved
1 1 1 0 0 Reserved
1 1 1 0 1 Reserved
1 1 1 1 0 Reserved
1 1 1 1 1 eMIOS23
These six eTPU channels can come from the output of the DSPI or the corresponding pad.
When SIU_ISEL8 is in its default state, the eTPU pins listed in Figure 349 will not be
connected to their respective output pin, irrespective of the SIU_PCR[PA] field.
SIU_BASE+0x920
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
ESEL5
ESEL4
0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ESEL3
ESEL2
ESEL1
ESEL0
0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0:10 Reserved
eTPU input channel connected as follows:
11
0 DSPI_B[8] deserialized output
ESEL5
1 eTPU channel 29
12:14 Reserved
eTPU input channel connected as follows:
15
0 DSPI_B[9] deserialized output
ESEL4
1 eTPU channel 28
16:18 Reserved
eTPU input channel connected as follows:
19
0 DSPI_B[10] deserialized output
ESEL3
1 eTPU channel 27
20:22 Reserved
eTPU input channel connected as follows:
23
0 DSPI_B[11] deserialized output
ESEL2
1 eTPU channel 26
24:26 Reserved
eTPU input channel connected as follows:
27
0 DSPI_B[12] deserialized output
ESEL1
1 eTPU channel 25
28:30 Reserved
eTPU input channel connected as follows:
31
0 DSPI_B[13] deserialized output
ESEL0
1 eTPU channel 24
SIU_BASE+0x924
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 eTSEL0A
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 0 0 0 0 Reserved
0 0 0 0 1 RTI Trigger
0 0 0 1 0 PIT0 Trigger
0 0 0 1 1 PIT1 Trigger
0 0 1 0 0 PIT2 Trigger
0 0 1 0 1 PIT3 Trigger
0 0 1 1 0 Reserved
0 0 1 1 1 Reserved
0 1 0 0 0 eTPU30 AND PIT0
0 1 0 0 1 eTPU30 AND PIT1
0 1 0 1 0 Reserved
0 1 0 1 1 Reserved
0 1 1 0 0 eTPU28
0 1 1 0 1 eTPU29
0 1 1 1 0 eTPU30
0 1 1 1 1 eTPU31
1 0 0 0 0 Reserved
1 0 0 0 1 Reserved
1 0 0 1 0 Reserved
1 0 0 1 1 Reserved
1 0 1 0 0 eMIOS10 AND PIT2
1 0 1 0 1 eMIOS10 AND PIT3
1 0 1 1 0 Reserved
1 0 1 1 1 Reserved
1 1 0 0 0 Reserved
1 1 0 0 1 Reserved
1 1 0 1 0 Reserved
1 1 0 1 1 Reserved
1 1 1 0 0 Reserved
1 1 1 0 1 Reserved
1 1 1 1 0 Reserved
1 1 1 1 1 eMIOS23
SIU_BASE+0x928
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R HSELB ZSELB HSELA ZSELA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x980
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DISNEX
MATCH
0 0 0 0 0 0 0 0 0 0 0 0 0 0
R
W
(1) (2)
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 U U
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
CRSE
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. During reset the comparison is performed and result is uncertain
2. The value after reset is uncertain
0:13 Reserved
Compare Register Match. The MATCH bit is a read only bit that holds the value of the match input
signal to the SIU. The match bit is asserted if the password in shadow flash memory and the contents
14
of the SIU_CBRH/SIU_CBRL registers are equal.
MATCH
0 Match input signal is negated
1 Match input signal is asserted
Disable Nexus. The DISNEX bit is a read only bit that holds the value of the Nexus disable input
signal to the SIU. When system reset negates, the value in this bit depends on the censorship control
15
word and the boot configuration bits.
DISNEX
0 Nexus disable input signal is negated
1 Nexus disable input signal is asserted
16:29 Reserved
Calibration Reflection Suppression Enable. The CRSE bit enables the suppression of reflections from
the EBI’s calibration bus onto the non-calibration bus. The EBI drives some outputs to both the
calibration and non-calibration busses. When CRSE is asserted, the values driven onto the calibration
bus pins will not be reflected onto the non-calibration bus pins. When CRSE is negated, the values
driven onto the calibration bus pins will be reflected onto the non-calibration bus pins.
CRSE only enables reflection suppression for non-calibration bus pins which do not have a negated
30
state to which the pins return at the end of the access. CRSE does not enable reflection suppression
CRSE
for the non-calibration bus pins which have a negated state to which the pins return at the end of an
access. Those reflections always are suppressed. Furthermore, the suppression of reflections from
the non-calibration bus onto the calibration bus is not enabled by CRSE. Those reflections are also
always suppressed.
0 Calibration reflection suppression is disabled
1 Calibration reflection suppression is enabled
31 Reserved
SIU_BASE+0x984
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ENGSSE
ENGDIV 0 0 0 0 EBDF
EBTS
W
Reset 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
= Unimplemented or Reserved
0:15 Reserved
Engineering Clock Division Factor. The ENGDIV field specifies the frequency ratio between the system
clock and the ENGCLK. The ENGCLK frequency is divided from the system clock frequency according
to the following equation.
Equation 2
16:23
ENGDIV SystemCloc korCrystalOscillator
ENGCLK = ------------------------------------------------------------------------------------
ENGDIVx2
ENGDIV = 0 is reserved and results in the ENGCLK frequency being equal to the System Clock
Frequency.
Engineering clock (ENGCLK) source select.
24
0 ENGCLK source is system clock.
ENGSSE
1 ENGCLK source is crystal oscillator clock.
25:27 Reserved
External Bus Tap Select. The EBTS bit changes the phase relationship between the system clock and
CLKOUT. Changing the phase relationship so that CLKOUT is advanced in relation to system clock
28 increases the output hold time of the external bus signals to a non-zero value. It also increases the
EBTS output delay times, increases the input hold times to non-zero values, and decreases the input setup
times.
The EBTS bit must not be modified while an external bus transaction is in progress.
29 Reserved
External Bus Division Factor. The EBDF field specifies the frequency ratio between the system clock
and CLKOUT. The EBDF field must not be changed during an external bus access or while an access is
pending.
00 External bus division factor = 1
30:31 01 External bus division factor = 2
EBDF 10 Reserved
11 External bus division factor = 4
The reset value of the EBDF field is divide-by-2. After reset, if EBDF is changed to divided-by-1, no glitches
occurs on the CLKOUT signal, but if EBDF is changed back to divide-by-2 or divide-by-4, there is no
guarantee that the switch will be glitchless.
SIU_BASE + 0x988
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CMPAH
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CMPAH
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x98C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CMPAL
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CMPAL
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x990
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CMPBH
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CMPBH
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x994
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CMPBL
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CMPBL
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x9A0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
CAN_SRC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
BYPASS
0 0 0 0 0 0 0 0 0 0 0 SYSCLKDIV 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
= Unimplemented or Reserved
28:29
00 Divide by 2
SYSCLKDIV
01 Divide by 4
10 Divide by 8
11 Divide by 16
Note: The above four divider values can be selected only if SIU_SYSDIV[BYPASS] value = 0. If
SIU_SYSDIV[BYPASS] = 1, the system clock divider is bypassed and “divide by 1” is selected.
30:31 Reserved
SIU_BASE + 0x9A4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
REACMSTP
0 0 0 0 0 0 0
MIOSSTP
DFILSTP
CPUSTP
NPCSTP
ADCSTP
TPUSTP
EBISTP
PITSTP
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
SCICSTP
SPIDSTP
SPICSTP
SCIBSTP
SCIASTP
SPIBSTP
CNCSTP
CNBSTP
CNASTP
0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x9A8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
REACMACK
NSETIACK
MIOSACK
DFILACK
CPUACK
NPCACK
ADCACK
TPUACK
0 0 0 0 0 0
EBIACK
PITACK
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SCICACK
SPIDACK
SPICACK
SCIBACK
SCIAACK
SPIBACK
CNCACK
CNBACK
CNAACK
0 0 0 0 0 0 0
R
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SIU_BASE + 0x9B4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
EXT_PID_SYNC0
R
EXT_PID_EN
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
EXT_PID6
EXT_PID7
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Pad configuration
The Pad Configuration Registers (PCR) in the SIU allow software control of the static
electrical characteristics of external pins. The multiplexed function of a pin, selection of pull
up or pull down devices, the slew rate of I/O signals, open drain mode for output pins,
hysteresis on input pins, and the drive strength for bus signals can be specified through the
PCRs.
The digital filter length field in the IRQ digital filter register (SIU_IDFR) specifies the
minimum number of system clocks that the IRQ signal must hold a logic value to qualify the
edge-triggered event as a valid state change. When the number of system clocks in the IRQ
counter equals the value in the digital filter length field, the IRQ state latches and the IRQ
counter is cleared.
If the previous filtered state of the IRQ does not match the current state, and the rising- or
falling-edge event is enabled, the IRQ flag bit is set to 1. For example, the IRQ flag bit is set
if a rising-edge event occurs under the following conditions:
● Previous filtered IRQ state was a logic 0
● Current latched IRQ state is a logic 1
● Rising-edge event is enabled for the IRQ
When the counter for an IRQ is not enabled, the state of the IRQ is held in the current and
previous state latches. The IRQ counter operates independently of the IRQ or overrun flag
bit. Clearing the IRQ flag or overrun flag bits does not clear or reload the counter.
Refer to the following sections for more information:
● Section 16.6.6, External Interrupt Status Register (SIU_EISR)
● Section 16.6.11, IRQ Rising-Edge Event Enable Register (SIU_IREER)
● Section 16.6.12, External IRQ Falling-Edge Event Enable Register (SIU_IFEER)
● Section 16.6.13, External IRQ Digital Filter Register (SIU_IDFR)
External interrupts
The IRQ signals map to 15 independent interrupt requests output from the SIU. The IRQ
flag bit is set when a rising-edge and/or falling-edge event occurs for the IRQ. An external
IRQ signal is asserted when all of the following occur:
● Enable bit is set in the IRQ rising- and/or falling-edge event registers (SIU_IREER,
SIU_IFEER)
● IRQ flag bit is set in the external interrupt status register (SIU_EISR)
● Enable bit is cleared in the DMA/Interrupt request enable register (SIU_DIRER)
● Select bit is cleared in the DMA/Interrupt select register (SIU_DIRSR)
The NMI and SWT Interrupts can each generate an NMI Exception or Critical Interrupt
Exception as an input to the core. This selection is controlled by the NMI_SEL8 and
NMI_SEL0 (SIU_DIRER) signals respectively. When WKPCFG_NMI_GPIO213 is enabled
as NMI, the pin will override the PCR configuration after reset. The SIU_DIRER selects
between critical and non-maskable interrupt use, the SIU_EISR reports the status of NMI,
and the SIU_IFEER selects edge sensitivity of the NMI input.
SIU
SIU_DIRSR
DMA /
SIU_EISR INT interrupt
0 Select request
1
2
EIRQ 3
pins IMUX 4
or
internal
sources Interrupt
15 interrupt Controller
request
SWT 23
NMI 31
overrun
NMI_SEL8 (for SWT) (SIU_DIRER) request
NMI
Critical CPU
Interrupt
15
RTI-Trigger
PIT-0/1/2/3-Trigger
eTSEL0
ETRIG-0/3
eTPU_A-28/29/30/31
eMIOS-10/23 eTPU_A[30]
To ADC Trigger Input
eMIOS[10]
SIU_ISEL3 ETRIG[0]
ETISR[TSEL0]
applies to DSPI blocks connected to external devices of different type that have status bits
in the same bit location of the deserialized information.
See Section 16.6.19, External IRQ Input Select Register (SIU_EIISR), for more information.
eMIOS[14]_IRQ[0]_eTPU_A[29]_GPIO[193]
eMIOS[14] channel
EIISR[0:1]
17.2 Introduction
This chapter describes the features and functions of the FMPLL module.
17.2.1 Overview
The frequency modulated phase locked loop (FMPLL) allows the user to generate high
speed system clocks from a crystal oscillator or from an external clock generator.
Furthermore, the FMPLL supports programmable frequency modulation of the system clock.
The FMPLL multiplication factor, reference clock predivider factor, output clock divider ratio,
modulation depth and multiplication rate are all controllable through programmable
registers.
Figure 365 shows the block diagram of the FMPLL.
PLL
Predivider Charge
PREDIV Phase Pump Out Divider
EXTAL XTAL VCO
Detector Low Pass RFD
XTAL OSC Filter
Divider
MFD
FM
Controller
PLLREF Control/Status Registers
Reference FMPLL
Failure Failure
17.2.2 Features
The FMPLL has the following features:
● Reference clock predivider for finer frequency synthesis resolution
● Reduced frequency divider for reducing the FMPLL output clock frequency without
forcing the FMPLL to relock
● Input clock frequency range from 4 MHz to 20 or 40 MHz(p) before the predivider, and
from 4 MHz to 16 MHz after the predivider
● Voltage controlled oscillator (VCO) range from 256 MHz to 512 MHz
● VCO free-running frequency range from 25 MHz to 125 MHz
● 4 bypass modes: crystal or external reference with PLL on or off
● 2 normal modes: crystal or external reference
● Programmable frequency modulation
– Triangle wave modulation
– Register programmable modulation frequency and depth
● Lock detect circuitry reports when the FMPLL has achieved frequency lock and
continuously monitors lock status to report loss of lock conditions
– User-selectable ability to generate an interrupt request upon loss of lock
– User-selectable ability to generate a system reset upon loss of lock
● Clock quality monitor (CQM) module provides loss-of-clock detection for the FMPLL
reference and output clocks
– User-selectable ability to generate an interrupt request upon loss of clock
– User-selectable ability to generate a system reset upon loss of clock
– Backup clock (reference clock or FMPLL free-running) can be applied to the
system in case of loss of clock
p. See Section 17.1, Information specific to this device, for information on crystal frequencies supported.
1 0 1 Reserved
1 1 0 Normal mode with external reference
1 1 1 Normal mode with crystal reference
1. CLKCFG[1] is not writable to zero while CLKCFG[0] = 1.
2. The reset state of this bit is determined by the logical state applied to the PLLREF pin.
At reset the FMPLL is enabled, but the reset value of the predivider may be set by the SoC
integration to inhibit the clock to the PLL, making the VCO run within its free-running
frequency range of 25 MHz to 125 MHz, unconnected from the system clock (since bypass
is the default mode at reset). If using crystal reference, after power-on reset the Clock
Quality Monitor (CQM) will inhibit the system clock and keep system reset asserted while
the crystal oscillator has not stabilized. The PLLREF input must be kept stable during the
whole period while system reset is asserted.
modulation depth, output divider (RFD) and whether the FMPLL is modulating or not can be
programmed by writing to the FMPLL registers.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reset 0 –(1) –(1) –(1) –(1) –(1) –(1) –(1) –(1) 0 –(1) –(1) –(1) 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 LOL LOC 0 0 0 0 0 0 0 0 0 0 0 0 0
W IRQ IRQ
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. Reset value is determined by the SoC integration.
Field Description
Predivider
This 3-bit field controls the value of the divider on the input clock. The output of the predivider circuit
generates the reference clock to the FMPLL analog loop. The value 111 causes the input clock to be
inhibited.
000 Divide by 1
1–3 001 Divide by 2
PREDIV 010 Divide by 3
011 Divide by 4
100 Divide by 5
101 Divide by 6
110 Divide by 7
111 Clock inhibit
Field Description
Loss-of-clock enable
The LOCEN bit determines if the loss-of-clock function is operational. This bit only has effect in normal
13 mode. In bypass mode, the loss-of-clock function is always enabled, regardless of the state of the
LOCEN LOCEN bit. Furthermore, the LOCEN bit has no effect on the loss-of-lock detection circuitry.
0 Loss of clock disabled
1 Loss of clock enabled
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
PLL PLL
R 0 0 0 0 0 0 LOLF LOC MODE LOCKS LOCK LOCF 0 0
SEL REF
W w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 –(1) 0 0 0 0 0
1. Reset value is determined by the state of the PLLREF pin.
Field Description
Loss-of-lock flag
This bit provides the interrupt request flag for the loss-of-lock. To clear the flag, software must write a 1 to
the bit. Writing 0 has no effect. This flag bit is sticky in the sense that if lock is reacquired, the bit will
remain set until cleared by either writing 1 or asserting reset. It will not be asserted when lock is lost due
to system reset, write to the FMPLL_SYNCR in legacy mode which modifies the PREDIV or MFD fields,
22
or write to FMPLL_ESYNCR1 in enhanced mode which modifies the EMODE, EPREDIV, EMFD or
LOLF CLKCFG[1:0] fields. Furthermore, it is not asserted if the loss-of-lock condition was detected while the
FMPLL is in bypass mode. Nevertheless, going from normal to bypass will not automatically clear the flag
if it was asserted while the FMPLL was in normal mode. See Section 17.5.3, Lock detection.
0 No loss of lock detected. Interrupt service not requested.
1 Loss of lock detected. Interrupt service requested.
Field Description
Loss-of-clock
This bit is an indication of whether a loss-of-clock condition is present. If LOC = 0, the system clocks are
operating normally. If LOC = 1, the system clocks have failed due to a reference or VCO failure. If a loss-
23 of-clock condition occurs which sets this bit and the clocks later return to normal, this bit will be cleared. A
loss-of-clock condition can only be detected if LOCEN = 1. Furthermore, the LOC bit is not asserted
LOC
when the FMPLL is in bypass mode (because, in bypass, the VCO clock is not monitored and a loss-of-
clock on the reference clock causes reset). See Section 17.5.4, Loss-of-clock detection.
0 No loss-of-clock detected. Clocks are operating normally.
1 Loss-of-clock detected. Clocks are not operating normally.
Mode of operation
This bit indicates whether the FMPLL is working in bypass mode or normal mode. The reset value
indicates bypass mode. In legacy mode (FMPLL_ESYNCR1[EMODE] negated), the MODE bit will
24 change to normal mode at the first time the FMPLL_SYNCR is written. In enhanced mode
MODE (FMPLL_ESYNCR1[EMODE] asserted), the MODE bit reflects the value of the CLKCFG[0] bit of the
FMPLL_ESYNCR1.
0 Bypass mode
1 Normal mode
Mode select
Dual controller mode is not supported, therefore in legacy mode this bit resets to ‘0’ (bypass), but
25 changes to ‘1’ (normal mode) at the first time the FMPLL_SYNCR is written. In enhanced mode, the
PLLSEL MODE bit reflects the value of the CLKCFG[1] bit of the FMPLL_ESYNCR1.
0 Legacy mode: bypass or dual controller; enhanced mode: PLL off
1 Legacy mode: normal; enhanced mode: PLL on
Field Description
Loss-of-clock flag
This bit provides the interrupt request flag for the loss-of-clock. To clear the flag, software must write a 1
to the bit. Writing 0 has no effect. This flag bit is sticky in the sense that if clocks return to normal, the bit
29 will remain set until cleared by either writing 1 or asserting reset. The LOCF flag is not asserted while the
LOCF FMPLL is in bypass mode. See Section 17.5.4, Loss-of-clock detection, for information on which
operating modes and conditions can this flag be asserted.
0 No loss of clock detected. Interrupt service not requested.
1 Loss of clock detected. Interrupt service requested.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
EMODE
R 0 0 0 0 0 0 0 0
CLKCFG EPREDIV
W
Reset 0 0 1 –(1) 0 0 0 0 0 0 0 0 1 1 1 1
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0
EMFD
W
Reset 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Field Description
Enhanced predivider
This 4-bit field controls the value of the divider on the input clock. The output of the predivider circuit
generates the reference clock to the PLL analog loop. The PREDIV value 1111 causes the input clock
to be inhibited.
0000 Divide by 1
0001 Divide by 2
0010 Divide by 3
0011 Divide by 4
0100 Divide by 5
12–15 0101 Divide by 6
EPREDIV 0110 Divide by 7
0111 Divide by 8
1000 Divide by 9
1001 Divide by 10
1010 Divide by 11
1011 Divide by 12
1100 Divide by 13
1101 Divide by 14
1110 Divide by 15
1111 Clock inhibit
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
LOCIRQ
LOLIRQ
LOCRE
LOCEN
LOLRE
R 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ERFD
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
Field Description
Loss-of-clock enable
The LOCEN bit determines if the loss-of-clock function is operational. This bit only has effect in normal
8 mode. In bypass mode, the loss-of-clock function is always enabled, regardless of the state of the
LOCEN LOCEN bit. Furthermore, the LOCEN bit has no effect on the loss-of-lock detection circuitry.
0 Loss of clock disabled
1 Loss of clock enabled
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0
INCSTEP
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Field Description
Busy
This bit is asserted soon after a write access to the FMPLL_SYNFMMR, and remains asserted
while the FMPLL processes the new frequency modulation programming. The CPU must wait until
0 this bit is negated before attempting another write access to this register. Any write attempt while
BSY the BSY flag is set will have no effect.
0 Write to the FMPLL_SYNFMMR is allowed.
1 The FMPLL is still busy processing the previous change on the FMPLL_SYNFMMR; write access
to the register is not possible.
Modulation enable
1 This bit enables the frequency modulation.
MODEN 0 Frequency modulation disabled
1 Frequency modulation enabled
Modulation selection
This bit selects whether modulation will be centered around the nominal frequency or spread
2
below the nominal frequency.
MODSEL
0 Modulation centered around nominal frequency.
1 Modulation spread below nominal frequency.
Modulation period
This 13-bit field is the binary equivalent of the modperiod variable derived from the formula:
f fbk
3–15 modperiod = round(---------------------)
MODPERIOD 4 × f mod
where ffbk represents the frequency of the feedback divider, and fmod represents the modulation
frequency.
Field Description
Increment step
This 14-bit field is the binary equivalent of the incstep variable derived from the formula:
15
17–31 ( 2 – 1 ) × MD × EMFD
incstep = round(--------------------------------------------------------------)
100 × 5 × modperiod
INCSTEP
where MD represents the peak modulation depth in percentage (+/−MD for centered modulation, −
2 * MD for modulation below nominal frequency), and EMFD represents the nominal value of the
feedback loop divider.
Note: The product of INCSTEP and MODPERIOD cannot be larger than (215 − 1).
Equation 3
MFD + 4
f sys = f ref × ---------------------------------------------------------
RFD
( PREDIV + 1 ) × 2
In legacy mode, the relationship between the VCO frequency f VCO and the output frequency f sys is
determined by the value of the RFD value programmed in the SYNCR register, according to the
following equation:
Equation 4
RFD
f VCO = 4 × f sys × 2
In enhanced mode, the relationship between input and output frequency is determined by the
EPREDIV, EMFD and ERFD values programmed in the FMPLL_ESYNCR1 and FMPLL_ESYNCR2,
according to the following equation:
Equation 5
EMFD
f sys = f ref × -----------------------------------------------------------------------------
( ERFD + 1 )
( EPREDIV + 1 ) × 2
When programming the FMPLL, be sure not to violate the maximum system clock frequency or
max/min VCO frequency specification. In enhanced mode, the VCO frequency is calculated according
to the following equation:
Equation 6
EMFD
f VCO = f ref × -----------------------------------------
( EPREDIV + 1 )
Note: Maximum system clock frequency is 150 MHz and max/min VCO frequency is 256 MHz
to 512 MHz.
Furthermore, the PREDIV or EPREDIV values must not be set to any value that causes the input
frequency to the phase detector to go below 4 MHz.
The LOCK flag is immediately negated after any of the following events:
1. In legacy mode, the PREDIV or MFD fields of the FMPLL_SYNCR are changed
2. In enhanced mode, the EMODE, EPREDIV, EMFD of CLKCFG[1:2] fields of the
FMPLL_ESYNCR1 are changed(q)
Upon any of these events an internal timer is initialized to count 64 cycles of the PLL input clock.
During this period, the LOCK flag is held negated. After the timer expires, the LOCK flag reflects the
value coming from the PLL lock detection circuitry. To prevent an immediate reset, the LOLRE bit must
be cleared before doing any of the above operations.
Changing RFD or ERFD does not affect the FMPLL, hence no relock delay is incurred. Resulting
changes in clock frequency are synchronized to the next falling edge of the current system clock.
However, RFD or ERFD should only be changed when the LOCK bit is set, to avoid exceeding the
allowable system operating frequency.
q. Note that changing only the CLKCFG[0] bit to move from bypass to normal or vice-versa, and keeping the
values of the other FMPLL_ESYNCR1 fields unchanged, will not cause the PLL to lose lock or the lock flag to
be cleared.
Coming out of reset, the FMPLL will be enabled (on), but running in bypass mode. The recommended
procedure to program the FMPLL and engage normal mode is:
1. Assert the EMODE bit and program the EPREDIV and EMFD fields of FMPLL_ESYNCR1 and
the RFD field of FMPLL_ESYNCR2.
2. Poll FMPLL_SYNSR[LOCK] until it asserts.
3. If required, program the FMPLL_SYNFMMR with desired FM parameters, poll the BSY bit until it
negates, then enable FM by asserting the MODEN bit.
4. Engage normal mode by writing to FMPLL_ESYNCR1[CLKCFG].
r. See Section 17.1, Information specific to this device, for information on crystal frequencies supported.
RC oscillator
4 MHz Counter 1
In bypass mode with crystal reference, a reference fail will force a reset. In bypass mode
with external reference, no backup clock selection occurs if the reference fails.
Loss-of-clock reset
When a loss-of-clock condition is recognized, a system reset may be asserted depending
on the clock operating mode and control bits in the FMPLL registers, as shown in Table 351.
FMPLL_SYNSR[LOCF] and FMPLL_SYNSR[LOC] are cleared after reset, therefore,
another means must be used externally to determine that a loss-of-clock condition occurred.
LOCEN and LOCRE have no effect in bypass mode. If the reference fails while the FMPLL
is in bypass mode with crystal reference, a system reset is asserted regardless of the state
of LOCEN and LOCRE. Since bypass is the FMPLL reset mode, the crystal oscillator must
be present and functioning properly to exit reset when PLLREF = 1. When PLLREF = 0, the
reference clock is not checked for loss-of-clock, so exit from reset can happen regardless
the state of the reference clock. Exit from reset is not affected by the state of the FMPLL
output because the FMPLL clock is not monitored in bypass mode.
FMPLL_SYNCR in legacy mode which modifies the PREDIV or MFD fields, or a write to
FMPLL_ESYNCR1 in enhanced mode which modifies the EMODE, EPREDIV, EMFD or
CLKCFG[1:0] fields.
MD Center Spread
fsys
fsys
2 x MD Down Spread
The following equations define how to calculate MODPERIOD and INCSTEP based on the
frequency of the feedback divider (ffbk), the modulation frequency (fmod) and the modulation
depth percentage (MD):
Equation 7
f fbk
MODPERIOD = round(---------------------)
4 × fmod
Equation 8
15
( 2 – 1 ) × MD × EMFD
INCSTEP = round(-----------------------------------------------------------------)
100 × 5 × MODPERIOD
Equation 9
15
( MODPERIOD × INCSTEP ) < 2
Because of the above rounding operations, the effective modulation depth applied to the
FMPLL is given by the following formula:
Equation 10
Furthermore, when the PLL loses lock, the FM parameters are reset and the modulation is
disabled until the PLL relocks and the FMPLL_SYNFMMR is programmed again.
After programming the FM parameters, it takes some time until these parameters get
propagated to the PLL analog circuitry. During this time, the BSY bit gets asserted. The
modulation must only be enabled when the FM parameters have already propagated to the
analog circuitry. Therefore, the sequence for programming FM is:
1. Poll FMPLL_SYNSR[LOCK] until it asserts.
2. Program the MODSEL, MODPERIOD and INCSTEP fields of the FMPLL_SYNFMMR.
3. Poll FMPLL_SYNFMMR[BSY] until it negates.
4. Assert FMPLL_SYNFMMR[MODEN].
18.1 Overview
The Error Correction Status Module (ECSM) provides control functions regarding
information on memory errors reported by error-correcting codes. The ECSM is mapped into
the IPS space and supports a number of miscellaneous control functions for the platform.
18.2 Features
● Program-visible information on the platform configuration and revision
● Optional address map for device’s crossbar switch (XBAR)
● Miscellaneous Reset Status Register (ECSM_MRSR)
● Registers for capturing information on memory errors if error-correcting codes (ECC)
are implemented
ECC Configuration
0x40 Reserved
Register (ECSM_ECR)
ECC Status Register
0x44 Reserved
(ECSM_ESR)
0x48 Reserved ECC Error Generation Register (ECSM_EEGR)
0x4C Reserved
0x50 Flash ECC Address Register (ECSM_FEAR)
Flash ECC Master Flash ECC Attributes
0x54 Reserved Number Register (ECSM_FEAT)
(ECSM_FEMR) Register
0x58 Flash ECC Data Register High (ECSM_FEDRH)
0x5C Flash ECC Data Register Low (ECSM_FEDRL)
0x60 RAM ECC Address Register (ECSM_REAR)
RAM ECC Syndrome RAM ECC Master RAM ECC Attributes
0x64 Reserved Register Number Register Register
(ECSM_PRESR) (ECSM_REMR) (ECSM_REAT)
0x68 RAM ECC Data Register High (ECSM_REDRH)
0x6C RAM ECC Data Register Low (ECSM_REDRL)
0x70 – 0x7C Reserved
0 1 2 3 4 5 6 7
R POR OFPLR 0 0 0 0 0 0
Reset 1 0 0 0 0 0 0 0
= Unimplemented
0 Power-On Reset
POR 1 = Last recorded event was caused by a power-on reset (based on a device input signal)
1 Device Input Reset
OFPLR 1 = Last recorded event was a reset caused by a device input reset.
4. Once the appropriately-high interrupt request level arrives, the interrupt controller
signals its presence, and the ECSM responds by asserting an “exit_low_power_mode”
signal.
5. The external logic senses the assertion of the “exit” signal, and re-enables the
appropriate clock signals.
6. With the processor core clocks enabled, the core handles the pending interrupt
request.
0 1 2 3 4 5 6 7
R ENBWCR 0 0 0 PRILVL[0:3]
Reset 0 0 0 0 0 0 0 0
= Unimplemented
Enable WCR
0
0 = MWCR is disabled
ENBWCR
1 = MWCR is enabled
Interrupt Priority Level
The interrupt priority level is a core-specific definition. It specifies the interrupt priority level needed
to exit the low-power mode. Specifically, an unmasked interrupt request of a priority level greater
4–7 than the PRILVL value is required to exit the mode.
PRILVL[0:3]
Certain interrupt controller implementations include logic associated with this priority level that
restricts the data value contained in this field to a [0, maximum - 1] range. See the specific interrupt
controller module for details.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 SWSC 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented
0 Reserved
SRAM Wait State Control
1
0 = No additional SRAM wait states
SWSC
1 = 1 additional SRAM wait state
2–31 Reserved
The 32-bit ECC organization essentially provides two completely independent error
checking mechanisms for the total 64-bit RAM width. The ECC logic provides a 1-of-3 error
response vector for each 32 bits of memory: no error, single-bit correctable error, multi-bit
non-correctable error. Table 357 defines the association between the reported ECC result
and the RAM bank chip selects.
Table 357. AHB Response and ECC Reporting for Even and Odd ECC
RAM RAM RAM Bus RAM Bus
Reported
Valid Valid ECC Even ECC Odd Response Response AHB HRESP
ECC
Even Odd Even Odd
No access,
0 0 x x xxxx xxxx okay
No_error
1 0 none x No_error data xxxx okay
1 0 single x Even_single corrected xxxx okay
1 0 multi x Even_multi non-corrected xxxx err
0 1 x none No_error xxxx data okay
0 1 x single Odd_single xxxx corrected okay
0 1 x multi Odd_multi xxxx non-corrected err
1 1 none none No_error data data okay
1 1 single none Even_single corrected data okay
1 1 multi none Even_multi non-corrected data err
1 1 none single Odd_single data corrected okay
1 1 single single Even_single corrected corrected okay
1 1 multi single Even_multi non-corrected corrected err
1 1 none multi Odd_multi data non-corrected err
1 1 single multi Odd_multi corrected non-corrected err
1 1 multi multi Even_multi non-corrected non-corrected err
As shown in Table 357, accesses of only a single memory bank report the ECC from that
bank directly. For accesses involving both banks, the “most severe” ECC response is
reported with the even bank taking priority if the responses are equivalent. This approach
also provides improved correction capabilities compared to the 64-bit ECC implementation.
(memory address, attributes and data, bus master number, etc.) which can be useful for
subsequent failure analysis.
0 1 2 3 4 5 6 7
R 0 0 0 0
ER1BR EF1BR ERNCR EFNCR
W
Reset 0 0 0 0 0 0 0 0
= Unimplemented
ECSM_ECCRNCR_IRQ
= ECSM_ECR[ERNCR] & ECSM_ESR[RNCE] // platform ram, noncorrectable
error
ECSM_ECCFNCR_IRQ
= ECSM_ECR[EFNCR] & ECSM_ESR[FNCE] // platform flash,
noncorrectable error
ECSM_ECC2BIT_IRQ
= ECSM_ECCRNCR_IRQ // platform ram, noncorrectable error
| ECSM_ECCFNCR_IRQ // platform flash, noncorrectable error
ECSM_ECC_IRQ
= ECSM_ECC1BIT_IRQ // 1-bit correction
| ECSM_ECC2BIT_IRQ // noncorrectable error
where the combination of a properly-enabled category in the ECSM_ECR and the detection
of the corresponding condition in the ECSM_ESR produces the interrupt request.
The ECSM allows a maximum of one bit of the ECSM_ESR to be asserted at any given
time. This preserves the association between the ECSM_ESR and the corresponding
address and attribute registers, which are loaded on each occurrence of a properly-enabled
ECC event. If there is a pending ECC interrupt and another properly-enabled ECC event
occurs, the ECSM hardware automatically handles the ECSM_ESR reporting, clearing the
previous data and loading the new state and thus guaranteeing that only a single flag is
asserted.
To maintain the coherent software view of the reported event, the following sequence in the
ECSM error interrupt service routine is suggested:
1. Read the ECSM_ESR and save it.
2. Read and save all the address and attribute reporting registers.
3. Re-read the ECSM_ESR and verify the current contents matches the original contents.
If the two values are different, go back to step 1 and repeat.
4. When the values are identical, write a ‘1’ to the asserted ESR flag to negate the
interrupt request.
0 1 2 3 4 5 6 7
Reset 0 0 0 0 0 0 0 0
= Unimplemented
In the event that multiple status flags are signaled simultaneously, the ECSM records the
event with the R1BC as highest priority, then F1BC, then RNCE, and finally FNCE.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(1)
(1)
R
FRCNCI
FR1NCI
FRCAP
0 0 0 0 ERRBIT[6:0]
FRC1BI
FR11BI
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented
1. This field is writable only in test mode in cut 1.0 devices.
0 The assertion of this bit ensures that RAM data inversions can only occur from the master module
FRCAP with the master ID of 0. Since this is usually the core, this protects the RAM from errant or multiple
simultaneous attempted data inversions from other master modules and, in the case of a multi-core
system, ensures that only one core can issue a RAM data inversion.
The reset value of the bit is 0 and as a result, RAM data inversions can be requested from any
master module. It is the responsibility of the software to ensure the proper setting of this bit.
The assertion of this bit forces the RAM controller to create 1-bit data inversions, as defined by the
2 bit position specified in ERRBIT[6:0], continuously on every write operation.
FRC1BI(1)
The normal ECC generation takes place in the RAM controller, but then the polarity of the bit position
defined by ERRBIT is inverted to introduce a 1-bit ECC event in the RAM.
After this bit has been enabled to generate another continuous 1-bit data inversion, it must be
cleared before being set again to correctly re-enable the error generation logic.
Force RAM One 1-bit Data Inversion
0 = No RAM single 1-bit data inversion is generated.
1 = One 1-bit data inversion in the RAM is generated.
The assertion of this bit forces the RAM controller to create one 1-bit data inversion, as defined by
3 the bit position specified in ERRBIT[6:0], on the first write operation after this bit is set.
FR11BI(1)
The normal ECC generation takes place in the RAM controller, but then the polarity of the bit position
defined by ERRBIT is inverted to introduce a 1-bit ECC event in the RAM.
After this bit has been enabled to generate a single 1-bit data inversion, it must be cleared before
being set again to properly re-enable the error generation logic.
Force RAM Continuous Non-Correctable Data Inversions
0 = No RAM continuous 2-bit data inversions are generated.
1 = 2-bit data inversions in the RAM are continuously generated.
The assertion of this bit forces the RAM controller to create 2-bit data inversions, as defined by the
bit position specified in ERRBIT[6:0] and the overall odd parity bit, continuously on every write
6 operation.
FRCNCI
After this bit has been enabled to generate another continuous non-correctable data inversion, it
must be cleared before being set again to properly re-enable the error generation logic.
The normal ECC generation takes place in the RAM controller, but then the polarity of the bit position
defined by ERRBIT and the overall odd parity bit are inverted to introduce a 2-bit ECC error in the
RAM.
The assertion of this bit forces the RAM controller to create one 2-bit data inversion, as defined by
the bit position specified in ERRBIT[6:0] and the overall odd parity bit, on the first write operation
7 after this bit is set.
FR1NCI
The normal ECC generation takes place in the RAM controller, but then the polarity of the bit position
defined by ERRBIT and the overall odd parity bit are inverted to introduce a 2-bit ECC error in the
RAM.
After this bit has been enabled to generate a single 2-bit error, it must be cleared before being set
again to properly re-enable the error generation logic.
The vector defines the bit position which is complemented to create the data inversion on the write
operation. For the creation of 2-bit data inversions, the bit specified by this field plus the odd parity bit
of the ECC code are inverted.
The RAM controller follows a vector bit ordering scheme where LSB=0. Errors in the ECC syndrome
bits can be generated by setting this field to a value greater than the RAM width. For example,
consider a 64-bit RAM implementation and ECC organized on a 32-bit boundary.
The 32-bit ECC approach requires 7 code bits for each 32-bit word. For RAM data width of 64 bits,
the actual SRAM is 2 × (32 bits data + 7 bits for ECC) = 78 bits which is organized as two 39-bit
memory banks, “even” bank and “odd” bank. The following association between the ERRBIT field
and the corrupted memory bit is defined:
For ERRBIT values between 78 and 95, no bit position is inverted. To accommodate address bus
inversions, the ERRBIT values start at 96 as defined:
For ERRBIT values greater than 115, the address bus inversion has no effect as only the lower 20
bits are used by the platform RAM controller.
1. This field is writable only in test mode in cut 1.0 devices.
The only allowable values for the four control bit enables {FR11BI, FRC1BI, FRCNCI,
FR1NCI} are {0,0,0,0}, {1,0,0,0}, {0,1,0,0}, {0,0,1,0} and {0,0,0,1}. All other values result in
unpredictable operations.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R FEAR[31:16]
Reset — — — — — — — — — — — — — — — —
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R FEAR[15:0]
Reset — — — — — — — — — — — — — — — —
= Unimplemented
This register can only be read from the IPS programming model; any attempted write is
ignored.
0 1 2 3 4 5 6 7
R 0 0 0 0 FEMR[3:0]
Reset 0 0 0 0 — — — —
= Unimplemented
0 1 2 3 4 5 6 7
Reset — — — — — — — —
= Unimplemented
AMBA-AHB HWRITE
0
0 = AMBA-AHB read access
WRITE
1 = AMBA-AHB write access
AMBA-AHB HSIZE
0b000 = 8-bit AMBA-AHB access
1–3 0b001 = 16-bit AMBA-AHB access
SIZE[2:0] 0b010 = 32-bit AMBA-AHB access
0b011 = Reserved
0b1xx = Reserved
AMBA-AHB HPROT
PROT3: Cacheable 0 = Non-cacheable,1 = Cacheable
4–7
PROT2: Bufferable 0 = Non-bufferable,1 = Bufferable
PROTn
PROT1: Mode 0 = User mode, 1 = Supervisor mode
PROT0: Type 0 = I-Fetch, 1 = Data
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R FEDH[31:16]
Reset — — — — — — — — — — — — — — — —
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R FEDH[15:0]
Reset — — — — — — — — — — — — — — — —
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
R FEDL[31:16]
Reset — — — — — — — — — — — — — — — —
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
R FEDL[15:0]
Reset — — — — — — — — — — — — — — — —
= Unimplemented
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R REAR[31:16]
Reset — — — — — — — — — — — — — — — —
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R REAR[15:0]
Reset — — — — — — — — — — — — — — — —
= Unimplemented
0 1 2 3 4 5 6 7
R PRESR[7:0]
Reset — — — — — — — —
= Unimplemented
For correctable single-bit errors, the mapping shown in Table 367 associates the 8 bits of the
syndrome with the data bit in error.
Note: Table 367 associates the 8 bits of the ECC syndrome with the exact data bit in error for
single-bit correctable code words. This table follows the bit vectoring notation where the
LSB = 0. The syndrome value of 0x00 implies no error condition but this value is not
readable when the ECSM_PRESR is read for the no error case.
Table 367. RAM syndrome mapping for single-bit correctable errors (continued)
PRESR[7:0] Data bit in error
Table 367. RAM syndrome mapping for single-bit correctable errors (continued)
PRESR[7:0] Data bit in error
0 1 2 3 4 5 6 7
R 0 0 0 0 REMR[3:0]
Reset 0 0 0 0 — — — —
= Unimplemented
0 1 2 3 4 5 6 7
Reset — — — — — — — —
= Unimplemented
AMBA-AHB HWRITE
0
0 = AMBA-AHB read access
WRITE
1 = AMBA-AHB write access
AMBA-AHB HSIZE
0b000 = 8-bit AMBA-AHB access
1–3 0b001 = 16-bit AMBA-AHB access
SIZE[2:0] 0b010 = 32-bit AMBA-AHB access
0b011 = 64-bit AMBA-AHB access
0b1xx = Reserved
AMBA-AHB HPROT
PROT3: Cacheable 0 = Non-cacheable, 1 = Cacheable
4–7
PROT2: Bufferable 0 = Non-bufferable, 1 = Bufferable
PROTn
PROT1: Mode 0 = User mode, 1 = Supervisor mode
PROT0: Type 0 = I-Fetch, 1 = Data
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R REDH[31:16]
Reset — — — — — — — — — — — — — — — —
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R REDH[15:0]
Reset — — — — — — — — — — — — — — — —
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
R REDL[31:16]
Reset — — — — — — — — — — — — — — — —
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
R REDL[15:0]
Reset — — — — — — — — — — — — — — — —
= Unimplemented
19.2 Introduction
19.2.1 Overview
The System Timer Module (STM) is a 32-bit timer designed to support commonly required
system and application software timing functions. The STM includes a 32-bit up counter and
four 32-bit compare channels with a separate interrupt source for each channel. The counter
is driven by the system clock divided by an 8-bit prescale value (1 to 256).
on page 19-
0x0000 STM Control Register(STM_CR) 32 R/W
637
on page 19-
0x0004 STM Count Register(STM_CNT) 32 R/W
637
0x0008 Reserved — — —
0x000C Reserved — — —
on page 19-
0x0010 STM Channel 0 Control Register(STM_CCR0) 32 R/W
638
on page 19-
0x0014 STM Channel 0 Interrupt Register(STM_CIR0) 32 R/W
638
on page 19-
0x0018 STM Channel 0 Compare Register(STM_CMP0) 32 R/W
639
0x001C Reserved — — —
on page 19-
0x0020 STM Channel 1 Control Register(STM_CCR1) 32 R/W
638
on page 19-
0x0024 STM Channel 1 Interrupt Register(STM_CIR1) 32 R/W
638
on page 19-
0x0028 STM Channel 1 Compare Register(STM_CMP1) 32 R/W
639
0x002C Reserved — — —
on page 19-
0x0030 STM Channel 2 Control Register(STM_CCR2) 32 R/W
638
on page 19-
0x0034 STM Channel 2 Interrupt Register(STM_CIR2) 32 R/W
638
on page 19-
0x0038 STM Channel 2 Compare Register(STM_CMP2) 32 R/W
639
0x003C Reserved — — —
on page 19-
0x0040 STM Channel 3 Control Register(STM_CCR3) 32 R/W
638
on page 19-
0x0044 STM Channel 3 Interrupt Register(STM_CIR3) 32 R/W
638
on page 19-
0x0048 STM Channel 3 Compare Register(STM_CMP3) 32 R/W
639
0x004C – 0x3FFF Reserved — — —
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
R 0 0 0 0 0
CPS FRZ TEN
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Counter Prescaler
Selects the clock divide value for the prescaler (1 – 256)
0x00 = Divide system clock by 1
CPS
0x01 = Divide system clock by 2
...
0xFF = Divide system clock by 256
Freeze
Allows the timer counter to be stopped when the device enters debug mode
FRZ
0 = STM counter continues to run in debug mode.
1 = STM counter is stopped in debug mode.
Timer Counter Enabled
TEN 0 = Counter is disabled
1 = Counter is enabled
Offset
0x004 Access: Read/Write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
CNT
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Timer count value used as the time base for all channels
CNT
When enabled, the counter increments at the rate of the system clock divided by the prescale value.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CEN
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Channel Enable
CEN 0 = The channel is disabled.
1 = The channel is enabled.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CIF
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Offset
0x18+0x10*n Access: Read/Write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
CMP
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20.1 Introduction
20.1.1 Overview
The Software Watchdog Timer (SWT) is a peripheral module that can prevent system
lockup in situations such as software getting trapped in a loop or if a bus transaction fails to
terminate. When enabled, the SWT requires periodic execution of a watchdog servicing
operation. The servicing operation resets the timer to a specified time-out period. If this
servicing action does not occur before the timer expires the SWT generates an interrupt or
hardware reset. The SWT can be configured to generate a reset or interrupt on an initial
time-out, a reset is always generated on a second consecutive time-out.
20.1.2 Features
The SWT has the following features:
● 32-bit time-out register to set the time-out period
● Programmable selection of system or oscillator clock for timer operation
● Programmable selection of window mode or regular servicing
● Programmable selection of reset or interrupt on an initial time-out
● Programmable selection of fixed or keyed servicing
● Master access protection
● Hard and soft configuration lock bits
the HLK or SLK bits in the SWT_MCR are set then the SWT_MCR, SWT_TO, SWT_WN,
SWT_SK registers are read-only.
on page 20-
0x0000 SWT_MCR SWT Module Control Register 32 R/W
642
on page 20-
0x0004 SWT_IR SWT Interrupt Register 32 R/W
644
on page 20-
0x0008 SWT_TO SWT Time-out Register 32 R/W
645
on page 20-
0x000C SWT_WN SWT Window Register 32 R/W
645
on page 20-
0x0010 SWT_SR SWT Service Register 32 R/W
645
on page 20-
0x0014 SWT_CO SWT Counter Output Register 32 R
646
on page 20-
0x0018 SWT_SK SWT Service Key Register 32 R/W
646
0x001C – 0x3FFF Reserved — — —
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
W 0 1 2 3 4 5 6 7
Reset1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0
KEY RIA WND ITR HLK SLK CSL STP FRZ WEN
W
Reset 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0
Clock Selection
Selects the clock that drives the internal timer
CSL
0 = System clock
1 = Oscillator clock
Stop Mode Control
Allows the watchdog timer to be stopped when the device enters stop mode
STP
0 = SWT counter continues to run in stop mode
1 = SWT counter is stopped in stop mode
Debug Mode Control
Allows the watchdog timer to be stopped when the device enters debug mode
FRZ
0 = SWT counter continues to run in debug mode
1 = SWT counter is stopped in debug mode
Watchdog Enabled
WEN 0 = SWT is disabled
1 = SWT is enabled
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
TIF
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
WTO
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
WST
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W WSC
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CNT
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 0 1
Watchdog Count
When the watchdog is disabled (SWT_MCR[WEN] = 0) this field shows the value of the internal down
CNT counter. When the watchdog is enabled the value of this field is 0x0000_0000. Values in this field can lag
behind the internal counter value for up to six system plus eight counter clock cycles. Therefore, the
value read from this field immediately after disabling the watchdog may be higher than the actual value of
the internal counter.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W SK
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Service Key
SK This field is the previous (or initial) service key value used in keyed service mode. If SWT_MCR[KEY] is
set, the next key value to be written to the SWT_SR is (17*SK+3) mod 216.
two writes and the service sequence logic ignores unlock sequence writes. If the
SWT_MCR[KEY] bit is zero, the fixed sequence 0xA602, 0xB480 is written to the
SWT_SR[WSC] field to service the watchdog. If the SWT_MCR[KEY] bit is set, then two
pseudorandom keys are written to the SWT_SR[WSC] field to service the watchdog. The
key values are determined by the pseudorandom key generator defined in Equation 11. This
algorithm will generate a sequence of 216 different key values before repeating. The state of
the key generator is held in the SWT_SK register. For example, if SWT_SK[SK] is 0x0100
then the service sequence keys are 0x1103, 0x2136. In this mode, each time a valid key is
written to the SWT_SR register, the SWT_SK register is updated. So, after servicing the
watchdog by writing 0x1103 and then 0x2136 to the SWT_SR[WSC] field, SWT_SK[SK] is
0x2136 and the next key sequence is 0x3499, 0x7E2C.
Equation 11
Accesses to SWT registers occur with no peripheral bus wait states. (The peripheral bus
bridge may add one or more system wait states.) However, due to synchronization logic in
the SWT design, recognition of the service sequence or configuration changes may require
up to three system plus seven counter clock cycles.
If window mode is enabled (SWT_MCR[WND] bit is set), the service sequence must be
performed in the last part of the time-out period defined by the window register. The window
is open when the down counter is less than the value in the SWT_WN register. Outside of
this window, service sequence writes are invalid accesses and generate a bus error or reset
depending on the value of the SWT_MCR[RIA] bit. For example, if the SWT_TO register is
set to 5000 and SWT_WN register is set to 1000 then the service sequence must be
performed in the last 20% of the time-out period. There is a short lag in the time it takes for
the window to open due to synchronization logic in the watchdog design. This delay could
be up to three system plus four counter clock cycles.
The interrupt then reset bit (SWT_MCR[ITR]) controls the action taken when a time-out
occurs. If the SWT_MCR[ITR] bit is not set, a reset is generated immediately on a time-out.
If the SWT_MCR[ITR] bit is set, an initial time-out causes the SWT to generate an interrupt
and load the down counter with the time-out period. If the service sequence is not written
before the second consecutive time-out, the SWT generates a system reset. The interrupt is
indicated by the time-out interrupt flag (SWT_IR[TIF]). The interrupt request is cleared by
writing a ‘1’ to the SWT_IR[TIF] bit.
The SWT_CO register shows the value of the down counter when the watchdog is disabled.
When the watchdog is enabled this register is cleared. The value shown in this register can
lag behind the value in the internal counter for up to six system plus eight counter clock
cycles.
The SWT_CO can be used during a software self test of the SWT. For example, the SWT
can be enabled and not serviced for a fixed period of time less than the time-out value. Then
the SWT can be disabled (SWT_MCR[WEN] cleared) and the value of the SWT_CO read to
determine if the internal down counter is working properly.
21.1 Overview
The Boot Assist Module (BAM) is a 4 KB block of read-only memory (ROM) containing the
boot program code for this device.
The BAM program supports four different boot modes:
● Boot from internal Flash
● Serial boot via SCI or CAN interface
● Serial boot via SCI or CAN interface with baud rate detection
● Boot from a memory connected to the External Bus Interface (EBI)
The BAM program is executed by the core just after a device reset. Depending on the boot
mode, the program initializes appropriate minimum device resources to start user code
application.
21.2 Features
● Initial core MMU setup with minimum address translation for all internal device
resources
● MMU configuration to boot user application, compiled as Power Architecture
technology code or as VLE code
● Passes control to user application code in the internal flash memory
● Automatic switch to Serial Boot mode if internal flash is blank or invalid
● Serial boot by loading user program via CAN bus or eSCI to the internal SRAM
– User programmable 64-bit password protection
– Optional automatic detection of the host SCI or CAN speed
● Boot from an external memory device, connected to the EBI
● Controls core Watchdog Timer or/and the Software Watchdog Timer (SWT)
Reset
Internal N
Setup EBI
boot?
Y
Check RCHW
Search for RCHW
Found N
Found N RCHW?
RCHW?
Y
Y
Guarded
(1)
0 Peripheral Bridge B and BAM 0xFFF0_0000 0xFFF0_0000 1 MB Big endian
Global PID
Not guarded
1 Internal Flash 0x0000_0000 0x0000_0000 16 MB Big endian
Global PID
Not guarded
2 EBI 0x2000_0000 0x0000_0000 16 MB Big endian
Global PID
Not guarded
3 Internal SRAM 0x4000_0000 0x4000_0000 256 KB Big endian
Global PID
Guarded
4 Peripheral Bridge A(1) 0xC3F0_0000 0xC3F0_0000 1 MB Big endian
Global PID
1. This device has only a single peripheral bridge, but to match the memory map of other devices the peripherals are mapped
to appear as if they are on two different peripheral bridges.
The MMU regions are mapped with logical address the same as physical address except for
the external bus interface (EBI). The logical EBI address space is mapped to physical
address space of the internal Flash memory. This allows code, written to run from external
memory, to be executed from internal Flash.
After the MMU configuration, the BAM program checks the BOOTCFG field of the reset
status register (SIU_RSR) and the appropriate boot sequence is started as shown in
Table 387.
Depending on the values stored in the censorship word and serial boot control word in the
shadow row of the internal Flash memory, the internal Flash memory can be enabled or
disabled, the Nexus port can be enabled or disabled, the password received in the serial
boot mode is compared with the fixed public password or compared to a user programmable
password in the internal Flash memory.
The censorship word is a 32-bit word of data stored in the shadow row of internal flash
memory. This memory location is read and interpreted by hardware as part of the boot
process and is used in conjunction with the BOOTCFG pin to enable/disable the internal
flash memory and the Nexus interface. The address of the Censorship word is
0x00FF_FDE0. The censorship word consists of two fields: censorship control and serial
boot control. The censorship word is programmed during manufacturing to be
0x55AA_55AA. This results in a device that is not censored and uses a Flash-based
password for serial boot mode.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0
Serial Boot Control - showing the use of the flash based password (Factory Default)
63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48
1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
1 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
1 1 0 0 1 0 1 0 1 1 1 1 1 1 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1
BOOT_BLOCK_ADDRESS
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SWT WTE PS0 VLE 0 1 0 1 1 0 1 0
Boot Identifier = 0x5A
Reserved
bits 0–3
These bit values are ignored when the halfword is read. Write to 0 for future compatibility.
Watchdog timer enable
This bit determines if the software watchdog timer is enabled after passing control to the user
application code.
SWT
0 Disable software watchdog timer
1 Software watchdog timer maintains its default state out of reset, i.e. enabled. The timeout period is
programmed to be 261600 system clocks.
Device core Watchdog timer enable
This bit determines if the core software watchdog timer is enabled.after passing control to the user
application code.
WTE
0 Disable core software watchdog timer
1 Software watchdog timer maintains its default state out of reset, i.e. enabled. The timeout period is
programmed to be 2.5*217 system clocks.
Port size
Defines the width of the data bus connected to the memory on CS0. After system reset, CS0 is
changed to a 16-bit port by the BAM, which fetches the RCHW from either 16- or 32-bit external
memories. Then the BAM reconfigures the EBI as a 16-bit bus or a 32-bit bus, according to the
PS0 settings of this bit.
0 32-bit CS0 port size
1 16-bit CS0 port size
Used in EBI boot mode only. Do not set the port to 32-bits if the device only has a 16-bit data bus.
The watchdog timeout periods, when the watchdogs are controlled by RCHW, are shown in
Table 389.
8 40.1 32.7
12 27.3 21.8
16 20.5 16.35
20 16.4 13.08
40 8.2 6.54
1. 327,680 system clocks
2. 261,600 system clocks
BOOT_BLOCK_ADDRESS + 0x0000_0004
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31
0 0x0000_0000
1 0x0000_4000
2 0x0000_8000
3 0x0000_C000
4 0x0001_0000
5 0x0001_4000
6 0x0001_8000
7 0x0001_C000
8 0x0002_0000
9 0x0003_0000
BOOT_BLOCK_ADDRESS is the address from Table 390 where the BAM finds a valid
RCHW. If the BAM program finds a valid RCHW, the core watchdog is enabled if the
RCHW[WTE] bit is programmed high, the SWT is disabled if the RCHW[SWT] bit is
programmed low, the BAM program fetches the reset vector from the address of the
BOOT_BLOCK_ADDRESS + 0x4, and branches to the reset boot vector (shown in
Figure 404). A user application should have a valid instruction at the reset boot vector
address.
Enable/disable
Compare
Nexus client
TAP controller
JTAG Port Controller
64-bit Password
CENSOR_CTRL register
Debug/Calibration Tool
Access
1. After the RSTOUT pin has is negated, hold the device in system reset state using a
debugger or other tool.
2. While the device is being held in system reset state shift the 64-bit password into the
CENSOR_CTRL register (see Section , CENSOR_CTRL Register) via the JTAG port
using the JTAG ENABLE_CENSOR_CTRL instruction. The JTAG serial password is
compared against the serial boot flash password from the flash shadow block.
3. If there is a match the Nexus client TAP controller enters normal operation mode and
the flag SIU_CCR[DISNEX] is negated, indicating Nexus is enabled. Upon negation of
reset the debug / calibration tool is able to access the device via NEXUS port and
JTAG. If the JTAG serial password does not match the serial boot flash password or the
serial boot flash password is an illegal password then the debug / calibration tool is not
able to access the device.
After the debug port is enabled, the tool can access the censored device and can erase
and reprogram the shadow flash block in order to uncensor the device.
Note: If the shadow flash block is erased without reprogramming a new valid password before a
reset it will contain an illegal password and the debug port will be inaccessible.
4. Subsequent resets will clear the JTAG censor password register and the Nexus client
TAP controller will hold in reset again. Therefore, the tool must resend the JTAG serial
password, as described above, in order to enable the Nexus client TAP controller
again.
Table 391. CAN/eSCI pins configuration for CAN/eSCI fixed baud rate boot modes
Serial Boot Mode after a Serial Boot Mode after a
Initial Serial Boot Mode valid CAN message valid eSCI message
Reset received received
Pins
function
Pad Pad Pad
Function Function Function
configuration configuration configuration
The BAM configures the communication modules for reception with fixed baud rates as
shown in the Table 392 and waits for data reception.
.
Table 392. Serial boot mode – baud rate & watchdog summary
System Desired Actual CAN Core SWT timeout
Crystal
Clock eSCI Baud eSCI Baud eSCI Baud Watchdog(1) period during
frequency
frequency rate rate error (%) rate timeout period serial boot
(MHz)
(MHz) (baud) (baud) (baud) (s) (s)
fxtal fsys = fxtal fsys / 833.33 fsys / 832 — fsys / 40 2.5 * 227 / fsys 223696213 / fsys
8 8 9600 9615.4 0.16 200K 42 27.96
12 12 14400 14423. 0 0.16 300K 28 18.64
16 16 19200 19230.8 0.16 400K 21 13.98
20 20 24000 24038.5 0.16 500K 16.8 11.18
1. The SWT is used as a watchdog during serial boot mode, but the core watchdog is enabled just before switching to the user
application to provide compatibility with earlier parts.
If a message with 0x11 ID, containing 8 bytes, is received by the CAN controller first, the
BAM program transitions to the Serial CAN Boot sub-mode, disabling eSCI, and
reconfiguring the SCI_A_RX pin to its reset state.
If a message from eSCI is received first, the BAM program transitions to the Serial SCI Boot
submode, disables CAN_A module and configures its pins to their reset state.
Then the BAM program transitions to the serial download protocol execution.
See Table 392 for examples of baud rates. Only one message buffer 0 is used for all
communications.
The bit timing is configured as shown in Figure 406.
NRZ Signal
When the CAN is used for serial download, the data is packed into standard CAN messages
in the following manner:
● A message with 0x11 ID and 8-byte length is used to send the password. The device
transmits the same data, but the message ID is set to 0x1.
● A message with 0x12 ID and 8-byte length is used to send the start address, length,
and the VLE mode bit. The device transmits back the same data, but with ID set to 0x2.
● Messages with 0x13 ID are used to send the downloaded data. The device transmits
back received data with message ID of 0x3.
When the SCI is used for serial download, the data has to be sent on a byte-by-byte basis.
the device transmits back the received data.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
START_ADDRESS[0:15]
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
START_ADDRESS[16:31]
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
VLE CODE_LENGTH[0:14]
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
CODE_LENGTH[15:30]
Figure 407. Start address, VLE bit and download size in bytes
The start address defines where the received data will be stored and where the device
will branch after the download is finished. The two least significant bits of the start
address are ignored by the BAM program, such that the loaded code should be 32-bit
word aligned.
The length defines how many data bytes to be loaded.
The VLE mode bit instructs the device to program MMU entries 1–3 with VLE attribute.
If it is 1, the downloaded code must be compiled to VLE instructions, if it is 0 the code
contains Power instructions.
3. Download data.
Each byte of data received is stored in the device memory, starting at the address
specified in the previous protocol step, and incrementing through memory until the
number of bytes of data received and stored in memory matches the number specified
in the previous protocol step.
BAM program buffers incoming data, collecting up to eight bytes. The buffered data is
written to the RAM with 64-bit writes to prevent ECC errors, which may happen if the
device RAM is protected by 64-bit ECC code.
Once the buffered data is written to the RAM the BAM program refreshes the SWT
watchdog.
Note: Only system RAM supports 64-bit writes; therefore, attempting to download data to other
RAM apart from system RAM will cause errors.
If the start address of the downloaded data is not on an 8-byte boundary, the BAM will write
0x0 to the memory locations from the proceeding 8-byte boundary to the start address
(maximum 4 bytes). The BAM also writes 0x0 to all memory locations from the last byte of
data downloaded to the following 8 byte boundary (maximum 7 bytes) and additional 8 zero
bytes to prevent possible ECC errors may be caused by the CPU prefetching.
4. Switch to the loaded code.
The BAM program waits for the last echo message transmission to complete, then the
active communication controller is disabled. Its pins revert to GPIO inputs.
To provide compatibility with older devices, the BAM writes the core time base registers
(TBU and TBL) with 0x0 and enables the core watchdog to cause a reset after a time-
out period of 2.5 x 227 system clock cycles and disables SWT watchdog. See Table 392
for examples of time out periods.
The BAM code passes control to the loaded code at start address, which was received
in step 2 of the protocol.
Note: The loaded code must periodically refresh the core watchdog timer or change the timeout
period to a value that will not cause resets during normal operation.
8 1 3 3 2
9 2 3 3 2
10 3 3 3 2
11 4 3 3 2
12 3 4 4 2
13 4 4 4 3
14 5 4 4 3
15 6 4 4 4
16 7 4 4 3
17 8 4 4 3
18 7 5 5 4
19 8 5 5 4
20 7 6 6 4
21 8 6 6 4
22 7 6 6 4
23 8 6 6 4
24 7 7 7 4
25 8 7 7 4
Maximum and minimum speeds of the serial communication modules are defined by the
device system frequency and shown in Table 394.
Table 395. MMU Configuration for EBI Boot and Serial Boot modes
TLB Logical Physical
Region Size Attributes
Entry Base Address Base Address
Not guarded
1 Internal Flash 0x0000_0000 0x2000_0000 16 Mbytes Big endian
Global PID
Not guarded
2 EBI 0x2000_0000 0x2000_0000 16 Mbytes Big endian
Global PID
22.2 Introduction
The eMIOS200 module provides the capability to generate or measure timed events, for
example generating PWM waveforms or measuring input pulse width. It is implemented with
its own configuration of timer channels to suit the target applications needs, while
maintaining full backwards compatibility with previous eMIOS implementations. The
SPC564A74xx, SPC564A80xx has one eMIOS200 module that implements twenty-four 24-
bit counters.
The overall architecture of the eMIOS200 resembles that of its predecessor, the MIOS. The
MIOS timer block provided a framework where a set of sublocks with different timer
functions were assembled to attend the specific needs of a device. The SPC564A74xx,
SPC564A80xx eMIOS200 builds on this concept by using a modified Unified Channel
module that provides a superset of the functionality of individual MIOS channels, while
providing a consistent user interface. This allows more flexibility as each channel can be
programmed for different functions in different applications of the device. In addition, the
eMIOS200 architecture allows the use of dedicated channels that perform specific functions
not included in MIOS inheritance.
Note: The SPC564A74xx, SPC564A80xx eMIOS200 uses a modified version of the Unified
Channel block that contains a reduced set of functions . See Section 22.2.3, Channel
configurations, for details.
Figure 408 shows the block diagram of the SPC564A74xx, SPC564A80xx eMIOS200
module.
All
Submodules Channel[23] EMIOS[23]
[D]
IP • •
BIU • •
Interface • •
IIB
Channel[16] EMIOS[16]
22.2.1 Features
The eMIOS timer module provides the capability to generate or measure events in
hardware.
The eMIOS module features include:
● Twenty-four 24-bit wide channels
● 3 channels’ internal timebases can be shared between channels
● 1 timebase from eTPU2 can be imported and used by the channels
● Global enable feature for all eMIOS and eTPU timebases
● Dedicated pin for each channel (not available on all package types)
Global registers
on page 22-
0x0000 EMIOS_MCR—Module Configuration Register
678
on page 22-
0x0004 EMIOS_GFR—Global FLAG Register
680
on page 22-
0x0008 EMIOS_OUDR—Output Update Disable Register
681
on page 22-
0x000C EMIOS_UCDIS—Channel Disable Register
682
0x000C–0x001F Reserved
Channel 0 registers
on page 22-
0x0020 EMIOS_CADR[0]—Channel A Data Register
682
on page 22-
0x0024 EMIOS_CBDR[0]—Channel B Data Register
683
on page 22-
0x0028 EMIOS_CCNTR[0]—Channel Counter Register
684
on page 22-
0x002C EMIOS_CCR[0]—Channel Control Register
685
on page 22-
0x0030 EMIOS_CSR[0]—Channel Status Register
689
on page 22-
0x0034 EMIOS_ALTA[0](1)—Alternate A Register
690
0x0038–0x003F Reserved
Channel 1 registers
on page 22-
0x0040 EMIOS_CADR[1]—A Register
682
on page 22-
0x0044 EMIOS_CBDR[1]—B Register
683
on page 22-
0x0048 EMIOS_CCNTR[1]—Counter Register
684
on page 22-
0x004C EMIOS_CCR[1]—Control Register
685
on page 22-
0x0050 EMIOS_CSR[1]—Status Register
689
on page 22-
0x0054 EMIOS_ALTA[1](1)—Alternate A Register
690
0x0058–0x005F Reserved
Channel 2 registers
on page 22-
0x0060 EMIOS_CADR[2]—A Register
682
on page 22-
0x0064 EMIOS_CBDR[2]—B Register
683
on page 22-
0x0068 EMIOS_CCNTR[2]—Counter Register
684
on page 22-
0x006C EMIOS_CCR[2]—Control Register
685
on page 22-
0x0070 EMIOS_CSR[2]—Status Register
689
on page 22-
0x0074 EMIOS_ALTA[2](1)—Alternate A Register
690
0x0078–0x007F Reserved
Channel 3 registers
on page 22-
0x0080 EMIOS_CADR[3]—A Register
682
on page 22-
0x0084 EMIOS_CBDR[3]—B Register
683
on page 22-
0x0088 EMIOS_CCNTR[3]—Counter Register
684
on page 22-
0x008C EMIOS_CCR[3]—Control Register
685
on page 22-
0x0090 EMIOS_CSR[3]—Status Register
689
on page 22-
0x0094 EMIOS_ALTA[3](1)—Alternate A Register
690
0x0098–0x009F Reserved
Channel 4 registers
on page 22-
0x00A0 EMIOS_CADR[4]—A Register
682
on page 22-
0x00A4 EMIOS_CBDR[4]—B Register
683
on page 22-
0x00A8 EMIOS_CCNTR[4]—Counter Register
684
on page 22-
0x00AC EMIOS_CCR[4]—Control Register
685
on page 22-
0x00B0 EMIOS_CSR[4]—Status Register
689
on page 22-
0x00B4 EMIOS_ALTA[4](1)—Alternate A Register
690
0x00B8–0x00BF Reserved
Channel 5 registers
on page 22-
0x00C0 EMIOS_CADR[5]—A Register
682
on page 22-
0x00C4 EMIOS_CBDR[5]—B Register
683
on page 22-
0x00C8 EMIOS_CCNTR[5]—Counter Register
684
on page 22-
0x00CC EMIOS_CCR[5]—Control Register
685
on page 22-
0x00D0 EMIOS_CSR[5]—Status Register
689
on page 22-
0x00D4 EMIOS_ALTA[5](1)—Alternate A Register
690
0x00D8–0x00DF Reserved
Channel 6 registers
on page 22-
0x00E0 EMIOS_CADR[6]—A Register
682
on page 22-
0x00E4 EMIOS_CBDR[6]—B Register
683
on page 22-
0x00E8 EMIOS_CCNTR[6]—Counter Register
684
on page 22-
0x00EC EMIOS_CCR[6]—Control Register
685
on page 22-
0x00F0 EMIOS_CSR[6]—Status Register
689
on page 22-
0x00F4 EMIOS_ALTA[6](1)—Alternate A Register
690
0x00F8–0x00FF Reserved
Channel 7 registers
on page 22-
0x0100 EMIOS_CADR[7]—A Register
682
on page 22-
0x0104 EMIOS_CBDR[7]—B Register
683
on page 22-
0x0108 EMIOS_CCNTR[7]—Counter Register
684
on page 22-
0x010C EMIOS_CCR[7]—Control Register
685
on page 22-
0x0110 EMIOS_CSR[7]—Status Register
689
on page 22-
0x0114 EMIOS_ALTA[7](1)—Alternate A Register
690
0x0118–0x011F Reserved
Channel 8 registers
on page 22-
0x0120 EMIOS_CADR[8]—A Register
682
on page 22-
0x0124 EMIOS_CBDR[8]—B Register
683
on page 22-
0x0128 EMIOS_CCNTR[8]—Counter Register
684
on page 22-
0x012C EMIOS_CCR[8]—Control Register
685
on page 22-
0x0130 EMIOS_CSR[8]—Status Register
689
on page 22-
0x0134 EMIOS_ALTA[8](1)—Alternate A Register
690
0x0138–0x013F Reserved
Channel 9 registers
on page 22-
0x0140 EMIOS_CADR[9]—A Register
682
on page 22-
0x0144 EMIOS_CBDR[9]—B Register
683
on page 22-
0x0148 EMIOS_CCNTR[9]—Counter Register
684
on page 22-
0x014C EMIOS_CCR[9]—Control Register
685
on page 22-
0x0150 EMIOS_CSR[9]—Status Register
689
on page 22-
0x0154 EMIOS_ALTA[9](1)—Alternate A Register
690
0x0158–0x015F Reserved
Channel 10 registers
on page 22-
0x0160 EMIOS_CADR[10]—A Register
682
on page 22-
0x0164 EMIOS_CBDR[10]—B Register
683
on page 22-
0x0168 EMIOS_CCNTR[10]—Counter Register
684
on page 22-
0x016C EMIOS_CCR[10]—Control Register
685
on page 22-
0x0170 EMIOS_CSR[10]—Status Register
689
on page 22-
0x0174 EMIOS_ALTA[10](1)—Alternate A Register
690
0x0178–0x017F Reserved
Channel 11 registers
on page 22-
0x0180 EMIOS_CADR[11]—A Register
682
on page 22-
0x0184 EMIOS_CBDR[11]—B Register
683
on page 22-
0x0188 EMIOS_CCNTR[11]—Counter Register
684
on page 22-
0x018C EMIOS_CCR[11]—Control Register
685
on page 22-
0x0190 EMIOS_CSR[11]—Status Register
689
on page 22-
0x0194 EMIOS_ALTA[11](1)—Alternate A Register
690
0x0198–0x019F Reserved
Channel 12 registers
on page 22-
0x01A0 EMIOS_CADR[12]—A Register
682
on page 22-
0x01A4 EMIOS_CBDR[12]—B Register
683
on page 22-
0x01A8 EMIOS_CCNTR[12]—Counter Register
684
on page 22-
0x01AC EMIOS_CCR[12]—Control Register
685
on page 22-
0x01B0 EMIOS_CSR[12]—Status Register
689
on page 22-
0x01B4 EMIOS_ALTA[12](1)—Alternate A Register
690
0x01B8–0x01BF Reserved
Channel 13 registers
on page 22-
0x01C0 EMIOS_CADR[13]—A Register
682
on page 22-
0x01C4 EMIOS_CBDR[13]—B Register
683
on page 22-
0x01C8 EMIOS_CCNTR[13]—Counter Register
684
on page 22-
0x01CC EMIOS_CCR[13]—Control Register
685
on page 22-
0x01D0 EMIOS_CSR[13]—Status Register
689
on page 22-
0x01D4 EMIOS_ALTA[13](1)—Alternate A Register
690
0x01D8–0x01DF Reserved
Channel 14 registers
on page 22-
0x01E0 EMIOS_CADR[14]—A Register
682
on page 22-
0x01E4 EMIOS_CBDR[14]—B Register
683
on page 22-
0x01E8 EMIOS_CCNTR[14]—Counter Register
684
on page 22-
0x01EC EMIOS_CCR[14]—Control Register
685
on page 22-
0x01F0 EMIOS_CSR[14]—Status Register
689
on page 22-
0x01F4 EMIOS_ALTA[14](1)—Alternate A Register
690
0x01F8–0x01FF Reserved
Channel 15 registers
on page 22-
0x0200 EMIOS_CADR[15]—A Register
682
on page 22-
0x0204 EMIOS_CBDR[15]—B Register
683
on page 22-
0x0208 EMIOS_CCNTR[15]—Counter Register
684
on page 22-
0x020C EMIOS_CCR[15]—Control Register
685
on page 22-
0x0210 EMIOS_CSR[15]—Status Register
689
on page 22-
0x0214 EMIOS_ALTA[15](1)—Alternate A Register
690
0x0218–0x021F Reserved
Channel 16 registers
on page 22-
0x0220 EMIOS_CADR[16]—A Register
682
on page 22-
0x0224 EMIOS_CBDR[16]—B Register
683
on page 22-
0x0228 EMIOS_CCNTR[16]—Counter Register
684
on page 22-
0x022C EMIOS_CCR[16]—Control Register
685
on page 22-
0x0230 EMIOS_CSR[16]—Status Register
689
on page 22-
0x0234 EMIOS_ALTA[16](1)—Alternate A Register
690
0x0238–0x023F Reserved
Channel 17 registers
on page 22-
0x0240 EMIOS_CADR[17]—A Register
682
on page 22-
0x0244 EMIOS_CBDR[17]—B Register
683
on page 22-
0x0248 EMIOS_CCNTR[17]—Counter Register
684
on page 22-
0x024C EMIOS_CCR[17]—Control Register
685
on page 22-
0x0250 EMIOS_CSR[17]—Status Register
689
on page 22-
0x0254 EMIOS_ALTA[17](1)—Alternate A Register
690
0x0258–0x025F Reserved
Channel 18 registers
on page 22-
0x0260 EMIOS_CADR[18]—A Register
682
on page 22-
0x0264 EMIOS_CBDR[18]—B Register
683
on page 22-
0x0268 EMIOS_CCNTR[18]—Counter Register
684
on page 22-
0x026C EMIOS_CCR[18]—Control Register
685
on page 22-
0x0270 EMIOS_CSR[18]—Status Register
689
on page 22-
0x0274 EMIOS_ALTA[18](1)—Alternate A Register
690
0x0278–0x027F Reserved
Channel 19 registers
on page 22-
0x0280 EMIOS_CADR[19]—A Register
682
on page 22-
0x0284 EMIOS_CBDR[19]—B Register
683
on page 22-
0x0288 EMIOS_CCNTR[19]—Counter Register
684
on page 22-
0x028C EMIOS_CCR[19]—Control Register
685
on page 22-
0x0290 EMIOS_CSR[19]—Status Register
689
on page 22-
0x0294 EMIOS_ALTA[19](1)—Alternate A Register
690
0x0298–0x029F Reserved
Channel 20 registers
on page 22-
0x02A0 EMIOS_CADR[20]—A Register
682
on page 22-
0x02A4 EMIOS_CBDR[20]—B Register
683
on page 22-
0x02A8 EMIOS_CCNTR[20]—Counter Register
684
on page 22-
0x02AC EMIOS_CCR[20]—Control Register
685
on page 22-
0x02B0 EMIOS_CSR[20]—Status Register
689
on page 22-
0x02B4 EMIOS_ALTA[20](1)—Alternate A Register
690
0x02B8–0x02BF Reserved
Channel 21 registers
on page 22-
0x02C0 EMIOS_CADR[21]—A Register
682
on page 22-
0x02C4 EMIOS_CBDR[21]—B Register
683
on page 22-
0x02C8 EMIOS_CCNTR[21]—Counter Register
684
on page 22-
0x02CC EMIOS_CCR[21]—Control Register
685
on page 22-
0x02D0 EMIOS_CSR[21]—Status Register
689
on page 22-
0x02D4 EMIOS_ALTA[21](1)—Alternate A Register
690
0x02D8–0x02DF Reserved
Channel 22 registers
on page 22-
0x02E0 EMIOS_CADR[22]—A Register
682
on page 22-
0x02E4 EMIOS_CBDR[22]—B Register
683
on page 22-
0x02E8 EMIOS_CCNTR[22]—Counter Register
684
on page 22-
0x02EC EMIOS_CCR[22]—Control Register
685
on page 22-
0x02F0 EMIOS_CSR[22]—Status Register
689
on page 22-
0x02F4 EMIOS_ALTA[22](1)—Alternate A Register
690
0x02F8–0x02FF Reserved
Channel 23 registers
on page 22-
0x0300 EMIOS_CADR[23]—A Register
682
on page 22-
0x0304 EMIOS_CBDR[23]—B Register
683
on page 22-
0x0308 EMIOS_CCNTR[23]—Counter Register
684
on page 22-
0x030C EMIOS_CCR[23]—Control Register
685
on page 22-
0x0310 EMIOS_CSR[23]—Status Register
689
on page 22-
0x0314 EMIOS_ALTA[23](1)—Alternate A Register
690
0x0318–0x3FFF Reserved
1. The alternate address register provides and alternate read-only address to access A2 channel register in
GPIO modes. If EMIOS_CADR[n] is used with EMIOS_ALTA[n], both A1 and A2 registers can be
accessed in these modes.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0
GPRE[0:7]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Module Disable
Puts the eMIOS200 in low power mode. The MDIS bit is used to stop the clock to the module,
except access to the EMIOS_MCR, EMIOS_OUDR and EMIOS_UCDIS registers.
MDIS
0 Clock is running
1 Enter low power mode
Freeze
Enables the eMIOS200 to freeze the channel registers when Debug Mode is requested at the
MCU level. Each channel should have the FREN bit set in its EMIOS_CCR[n] register order to
enter the freeze state. While in Freeze state, the eMIOS200 continues to operate to allow the MCU
access to the channel registers. The channel remains frozen until the FRZ bit is written to zero, the
FRZ
MCU exits Debug mode or the channel’s FREN bit is cleared.
The Global Time Base Enable input controls the internal counters. When asserted, Internal counters are
enabled. When negated, internal counters disabled.
If ETB is set to select STAC as the counter bus[A] source, the GTBE must be set to enable the STAC to
counter bus[A]. See the STAC bus configuration register (ETPU_REDCR) section of the eTPU chapter
for more information about the STAC.
0000_0000 1
0000_0001 2
0000_0010 3
GPRE[0:7]
0000_0011 4
. .
. .
. .
1111_1110 255
1111_1111 256
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1 F0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FLAG
Fn The EMIOS_GFR is a read-only register that groups the FLAG bits from all channels. These bits
are mirrors of the FLAG bits of each channel register (EMIOS_CSR[n]). See Section , eMIOS200
Channel Status Register (EMIOS_CSR[n]), for more detail.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R OU OU OU OU OU OU
OU9 OU8 OU7 OU6 OU5 OU4 OU3 OU2 OU1 OU0
W 15 14 13 12 11 10
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 Transfer enabled. Depending on the operation mode, transfer may occur immediately or in the
next period. Unless stated otherwise, transfer occurs immediately.
1 Transfers disabled.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI CHDI
W S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
A[0:23]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Depending on the mode of operation, internal registers A1 or A2, used for matches and
captures, can be assigned to address EMIOS_CADR[n]. A1 and A2 are cleared by reset.
Table 403 summarizes the EMIOS_CADR[n] write and read accesses for all operation
modes. For more information see Section , Channel modes of operation.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
B[0:23]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R C[0:23]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. In GPIO mode or freeze action, this register is writable.
The EMIOS_CCNTR[n] contains the value of the internal counter for eMIOS channel n.
When GPIO mode is selected or the channel is frozen the EMIOS_CCNTR[n] is read/write.
For all other modes, the EMIOS_CCNTR[n] is a read-only register. When entering some
operation modes, this register is automatically cleared (refer to Section , Channel modes of
operation, for details).
Depending on its configuration, a channel may have an internal counter or not. If at least
one mode that requires the counter is implemented, the counter is present, otherwise it is
not.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
FORC FORC
R 0 0 0 ED ED
MA MB BSL MODE
SEL POL
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register contains bits reflecting the status of channel input/output signals, the overflow
condition of the internal counter, and several read/write control bits for eMIOS channel n.
Freeze Enable
The FREN bit, if set and validated by bit EMIOS_MCR[FRZ], freezes all registers’ values when in
debug mode, allowing the MCU to perform debug functions.
FREN
0 Normal operation
1 Freeze unified channel registers’ values
Output Disable
The ODIS bit allows disabling the output pin when running any of the output modes with the
exception of GPIO mode.
Prescaler
The UCPRE bits select the clock divider value for the internal prescaler of the channel controlled
by this register.
Prescaler Enable
The UCPREN bit enables the prescaler counter.
UCPREN
0 Prescaler disabled (no clock) and prescaler counter is loaded with UCPRE value
1 Prescaler enabled
Direct Memory Access
The DMA bit selects whether the FLAG generation (see Section , eMIOS200 Channel Status
Register (EMIOS_CSR[n])) is used as an interrupt or as a DMA request.
DMA
0000 Bypassed(2)
IF 0001 02
0010 04
0100 08
1000 16
All others Reserved
1. Filter latency is three clock edges.
2. The input signal is synchronized before arriving to the digital filter.
FLAG Enable
The FEN bit allows the unified channel FLAG bit to generate an interrupt signal or a DMA request
signal (the type of signal to be generated is defined by the DMA bit).
FEN
For input modes, the FORCMA bit is not used and writing to it has no effect.
Force Match B
For output modes, the FORCMB bit is equivalent to a successful comparison on comparator B
(except that the FLAG bit is not set). This bit is cleared by reset and is always read as 0. This bit is
valid for every output operation mode which uses comparator B, otherwise it has no effect.
FORCMB
0 Has no effect.
1 Force a match at comparator B.
For input modes, the FORCMB bit is not used and writing to it has no effect.
Bus Select
The BSL bits are used to select either one of the counter buses or the internal counter to be used
by the unified channel.
10 Reserved
11 All channels: internal counter
Edge Selection
For input modes, the EDSEL bit selects if the internal counter is triggered by both edges of a pulse
or by a single edge only as defined by the EDPOL bit. When not shown in the mode of operation
description, this bit has no effect.
For SAOC mode, the EDSEL bit selects the behavior of the output flip-flop at each match.
0 The EDPOL value is transferred to the output flip-flop.
1 The output flip-flop is toggled.
Edge Polarity
For input modes, the EDPOL bit asserts which edge triggers either the internal counter or an input
capture or a FLAG. When not shown in the mode of operation description, this bit has no effect.
0 Trigger on a falling edge.
EDPOL 1 Trigger on a rising edge.
For output modes, the EDPOL bit is used to select the logic level on the output pin.
0 A match on comparator A clears the output flip-flop, while a match on comparator B sets it.
1 A match on comparator A sets the output flip-flop, while a match on comparator B clears it.
Mode Selection
The MODE bits select the mode of operation of the unified channel, as shown in Table 405. Refer
MODE to Table 397 for more information on the different modes.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R OVFL 0 0 0 0 0 0 0 0 0 0 0 0 UCIN UCOUT FLAG
W w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Overrun
The OVR bit indicates that FLAG generation occurred when the FLAG bit was already set. This bit
can be cleared by clearing the FLAG bit or by software writing a ‘1’.
OVR
FLAG
0 FLAG cleared.
1 FLAG set event has occurred.
When the DMA bit is set, the FLAG bit can be cleared by the DMA controller.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ALTA[0:23]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s. The eMIOS200 Unified Channel has a reduced set of functions when compared to legacy Unified Channel
implementations.
Unified Channel
Clock Programmable
Prescaler Filter
Channel Controller
Match Logic
Mode Logic
Control Signals
uc_cnt_rd_data[n]
Comparator A
Counter Bus Comparator B
Counter Bus[0]
Counter Bus[1]
uc_cnt_rd_data[n]
input input
filter
MODE
register
mode 0 mode 1 mode n
logic logic logic
control signals
MODE
decoder
General
Purpose
Registers
Control Block
BSL[1]+logic
B1
B2 B Comparator
==
Datapath BSL[1]+logic
input signal1
FLAG pin/register
Figure 421. Single Action Input Capture with rising edge triggering example
input signal1
FLAG pin/register
FLAG clear
2
A2 (captured) value0xxxxxxx0x001000 0x001103 0x001108
Figure 422. Single Action Input Capture with both edges triggering example
no need of further writes to EMIOS_CADR[n]. The FLAG is set at the same time a match
occurs (see Figure 425).
Note: The channel internal counter in SAOC mode is free-running. It starts counting as soon as
the SAOC mode is entered.
output flip-flop
FLAG pin/register
A1 value10xxxxxxx
0x001000 0x001000 0x001000 0x001000
Notes: 1. CADR[n] = A2
A2 = A1 according to OU[n] bit
Figure 423. SAOC example with EDPOL value being transferred to the output flip-flop
output flip-flop
FLAG pin/register
A1 value10xxxxxxx
0x001000 0x001000 0x001000 0x001000
Notes: 1. CADR[n] = A2
A2 = A1 according to OU[n] bit
System Clock
A1 match
FLAG pin/register
FLAG clear
A2 value1 0x1
EDPOL = 1 B A B A B
Input signal1
FLAG pin/register
Input signal1
FLAG pin/register
The input pulse period is calculated by subtracting the value in B1 from A2.
Figure 428 shows how the channel can be used for input period measurement.
A A A
EDPOL = 1
Input signal1
Input signal1
FLAG pin/register
MODE[6] = 0 Update to
A1 and B1 A1 match B1 match A1 match B1 match
output flip-flop
FLAG pin/register
A1 value10xxxxxxx
0x001000 0x001000 0x001000
B1 value20xxxxxxx
0x001100 0x001100 0x001100
Figure 430. Double Action Output Compare with FLAG set on the second match
MODE[6] = 1 Update to
A1 and B1 A1 match B1 match A1 match B1 match
output flip-flop
FLAG pin/register
A1 value10xxxxxxx
0x001000 0x001000 0x001000
B1 value20xxxxxxx
0x001100 0x001100 0x001100
Figure 431. Double Action Output Compare with FLAG set on both matches
System Clock
enabled A1 match
enabled B1 match
FLAG pin/register
FLAG clear
OU1
A1 value2 0xx 0x1 0x1 0x1
3
A2 value 0xx 0x1 0x1 0x1
The internal counter values operates within a range from 0x1 up to register A1 value. If
when entering MCB mode exiting from GPIO mode the internal counter value is not within
that range then the A match will not occur causing the channel internal counter to wrap at
the maximum counter value which is 0xFF_FFFF for a 24-bit counter. After the counter
wrap occurs it returns to 0x1 and resume normal MCB mode operation. Thus in order to
avoid the counter wrap condition make sure its value is within the 0x1 to A1 register value
range when the MCB mode is entered.
MODE[6] bit selects internal clock source if cleared or external if set. When external clock is
selected the input channel pin is used as the channel clock source. The active edge of this
clock is defined by EDPOL and EDSEL bits in the EMIOS_CCR[n].
When entering MCB mode, if the up counter is selected by MODE[4] = 0
(MODE[0:6] = 101000b), the internal counter starts counting from its current value to up
direction until A1 match occurs. The internal counter is set to 0x1 when its value matches A1
value and a clock tick occurs (either prescaled clock or input pin event).
If the up/down counter is selected by setting MODE[4] = 1, the counter changes direction at
A1 match and counts down until it reaches the value 0x1. After it has reached 0x1 it is set to
count in up direction again. The B1 register is used to generate a match in order to set the
internal counter in up-count direction if up/down mode is selected. Register B1 cannot be
changed while this mode is selected.
Note that differently from the MC mode, the MCB mode counts between 0x1 and the A1
register value. Only values greater than 0x1 must be written at A1 register. Loading values
other than those leads to unpredictable results. The counter cycle period is equal to A1
value in up counter mode. If in up/down counter mode, the period is defined by the
expression: (2*A1)-2.
Figure 433 describes the counter cycle for several A1 values. Register A1 is loaded with the
A2 register value at the cycle boundary. Thus any value written to the A2 register within
cycle n will be updated to A1 at the next cycle boundary and therefore will be used on cycle
n+1. The cycle boundary between cycle n and cycle n+1 is defined as when the internal
counter transitions from A1 value in cycle n to 0x1 in cycle n+1. Note that the FLAG is
generated at the cycle boundary and has a synchronous operation, meaning that it is
asserted one system clock cycle after the FLAG set event.
0x000007
0x000006
0x000005
0x000001
TIME
FLAG set event
FLAG pin/register
FLAG clear
Prescaler ratio = 1
0x000007
0x000006
0x000005
0x000001
TIME
FLAG set event
FLAG pin/register
FLAG clear
A2 value 0x000005 0x000007
A1 value 0x000006 0x000005 0x000007
Prescaler ratio = 1
control the update of this register, thus allowing to delay the A1 register update for
synchronization purposes.
8
0x000008
6
0x000006
4
0x000004
0x000002
0x000001
Time
Counter = A1
A1 load signal
Prescaler ratio = 2
0x000001
TIME
Counter = 2
A1 load signal
Prescaler ratio = 2
At OPWFMB mode entry the output flip-flop is set to the value of the EDPOL bit in the
EMIOS_CCR[n].
In order to provide smooth and consistent channel operation this mode differs substantially
from the OPWFM mode. The main differences reside in the A1 and B1 registers update, on
the delay from the A1 match to the output pin transition and on the range of the internal
counter values which starts from 0x1 up to B1 register value.
If when entering OPWFMB mode exiting from GPIO mode the internal counter value is not
within that range then the B match will not occur causing the channel internal counter to
wrap at the maximum counter value which is 0xFF_FFFF for a 24-bit counter. After the
counter wrap occurs it returns to 0x1 and resume normal OPWFMB mode operation. Thus
in order to avoid the counter wrap condition make sure its value is within the 0x1 to B1
register value range when the OPWFMB mode is entered.
When a match on comparator A occurs the output register is set to the value of EDPOL.
When a match on comparator B occurs the output register is set to the complement of
EDPOL. B1 match also causes the internal counter to transition to 0x1, thus restarting the
counter cycle.
Only values greater than 0x1 are allowed to be written to B1 register. Loading values other
than those leads to unpredictable results.
Figure 437 describes the operation of the OPWFMB mode regarding output pin transitions
and A1/B1 registers match events. Note that the output pin transition occurs when the A1 or
B1 match signal is deasserted which is indicated by the A1 match negedge detection signal.
If register A1 is set to 0x4 the output pin transitions four counter periods after the cycle had
started, plus one system clock cycle. Note that in the example shown in Figure 437 the
internal counter prescaler has a ratio of two.
system clock
prescaler
8
EMIOSCNT 5
4
output pin
Prescaler ratio = 2 EDPOL = 0
transition instead of the negedge used when A1 = 0x1. Note that A1 posedge match signal
from cycle n+1 occurs at the same time as B1 negedge match signal from cycle n. This
allows using the A1 posedge match to mask the B1 negedge match when they occur at the
same time. The result is that no transition occurs on the output flip-flop and a 0% duty cycle
is generated.
write to A2
cycle n cycle n+1
system clock
prescaler
EMIOSCNT 5
4
1 1
TIME
A1 value 0x000004 0x000000
A2 value 0x000000
B1 value 0x000008
A1 match
B1 match
output pin
no transition at this point
Prescaler ratio = 2 EDPOL = 0
0x8
0x6
0x4
0x2
0x1
due to B1 match cycle n-1
Output pin
FLAG pin/register
FLAG clear
0x000008
0x000006
0x000004
0x000002
0x000001
due to B1 match cycle n-1
Output pin
FLAG pin/register
Output Disable
EMIOSCNT cycle 1 cycle 2 cycle 3 cycle 4 cycle 5 cycle 6 cycle 7 cycle 8 cycle 9
0x000008
0x000001
A1 value 0x000008 0x000007 0x000006 0x000005 0x000004 0x000003 0x000002 0x000001 0x000000
A2 value 0x000007 0x000006 0x000005 0x000004 0x000003 0x000002 0x000001 0x000000
B1 value 0x000008
EDPOL = 0
Prescaler ratio = 1
Figure 442 describes the operation of the OPWMB mode regarding A1 and B1 matches and
the transition of the channel output pin. In this example EDPOL is set to zero.
Selected 6 6 8
counter bus
4
1 1
TIME
A1 value 0x000004 0x000000
A2 value 0x000000
B1 value 0x000006
A1 match
B1 match
output pin
EDPOL = 0
FLAG pin/register
write to A2
cycle n cycle n+1
clock
prescaler
Selected 8 8
counter bus
4
1 1
TIME
A1 value 0x000004 0x000000
A2 value 0x000000
B1 value 0x000008
A1 match
B1 match
output pin
EDPOL = 0
FLAG pin/register
0x000008
0x000006
0x000004
0x000002
0x000001
due to B1 match cycle n-1
Output pin
FLAG pin/register
FLAG clear
Output Disable
Selected cycle 1 cycle 2 cycle 3 cycle 4 cycle 5 cycle 6 cycle 7 cycle 8 cycle 9
counter bus
A1 value 0x000008 0x000007 0x000006 0x000005 0x000004 0x000003 0x000002 0x000001 0x000000
A2 value 0x000007 0x000006 0x000005 0x000004 0x000003 0x000002 0x000001 0x000000
B1 value 0x000008
EDPOL = 0
Prescaler = 1
FCK
IF3 IF2 IF1 IF0
ipg_clk
clk
Prescaled Clock
5-bit up counter filter out
synchronizer
EMIOSI
clock
selected clock
EMIOSI
5-bit counter
IF [0:3] = 0010
Time
filter out
In order to ensure safe working and avoid glitches the following steps must be performed
whenever any update in the prescaling rate is desired:
1. Write ‘0’ at both bit EMIOS_MCR[GPREN] and UCPREN bit in EMIOS_CCR[n], thus
disabling prescalers;
2. Write the desired value for prescaling rate at UCPRE[0:1] bits in EMIOS_CCR[n];
3. Enable channel prescaler by writing ‘1’ at UCPREN bit in EMIOS_CCR[n];
4. Enable global prescaler by writing ‘1’ at bit EMIOS_MCR[GPREN].
The prescaler is not disabled during either freeze state or negated GTBE input.
TCR1 0
TCR2 2
Figure 448 provides a block diagram for the STAC client submodule.
System clock
STAC bus
TS[00] TS[01] TS[02] TS[03] TS[00] TS[03] TS[00] TS[01] TS[02]
(submodule input)
Time base
xx TS[01] TS[01]
(submodule output)
STAC bus (REDC input) TS[00] TS[01] TS[02] TSn1 TS[00] TS[01] TS[02]
NOTES:
1. Maximum of 16 time slots (TSn)
2. The SRV bits capture TS[01]
Figure 449. Timing diagram for STAC bus and STAC client submodule output
Every time the selected time slot changes, the STAC client submodule output is updated.
22.6.1 Considerations
Before changing an operating mode, the UC must be programmed to GPIO mode and
EMIOS_CADR[n] and EMIOS_CBDR[n] registers must be updated with the correct values
for the next operating mode. Then the EMIOS_CCR[n] can be written with the new
operating mode. If a channel is changed from one mode to another without performing this
procedure, the first operation cycle of the selected time base can be random, that is,
matches can occur in random time if the contents of EMIOS_CADR[n] or EMIOS_CBDR[n]
were not updated with the correct value before the time base matches the previous contents
of EMIOS_CADR[n] or EMIOS_CBDR[n].
When interrupts are enabled, the software must clear the FLAG bits before exiting the
interrupt service routine.
Channel/Modes initialization
The following basic steps summarize basic output mode startup, assuming the channels are
initially in GPIO mode:
23.1 Introduction
The Reaction Module (REACM) is composed of 6 channels. Each channel contains three
outputs. The primary application of this module is in the area of solenoid control for direct
injection systems, valve control in automatic transmissions and others. It is connected to the
on-chip ADC which monitors the current on the solenoid or valve. Based on that the reaction
channel generates a PWM signal that modulates the current circulating in the solenoid or
valve. It is a cost effective solution due to extensive sharing of several resources among
channels and parameterized register banks for adequate dimensioning of resources and
functionality.
23.1.1 Features
The REACM features include:
● Per-channel architecture for independent output control
● Interface with on-chip ADC for fast response times
● Hardware connection with on-chip timer channels with channel routing capability
● Innovative concept of Shared Modulation Control
● Innovative concept of dynamic timer allocation
● 3 outputs per channel to support different driver architectures
● Flexibility to operate based on timing and threshold
● On-the-fly capture of ADC result reference for fast calibration
● Open and short circuit monitoring capability
Note: DMA is not supported in SPC564A80 devices.
1. Modulation word data (see Section 23.4.2, Modulation control words bank)
2. Channel control data (see Section 23.3.7, REACM Channel n Configuration Register
(REACM_CHCRn))
3. Threshold data (see Section 23.3.12, REACM Threshold Bank Register
(REACM_THBK))
4. Timer bank data (see Section 23.3.10, REACM Shared Timer Bank Registers
(REACM_STBK))
5. Hold-off timer bank data (see Section 23.3.11, REACM Hold-off Timer Bank Registers
(REACM_HOTBK))
6. Timer router data (see Section 23.3.9, REACM Channel n Router Register
(REACM_CHRRn))
7. ADC router data (see Section 23.3.4, REACM Threshold Router Register
(REACM_THRR))
The last action to perform is to enable the channel, after which the channel is able to
respond to timer signals and ADC data, thus able to perform modulation on the output pins.
It is recommended to keep the timer signals inactive until all data to all reaction channel
modules are programmed and all channels have been put in the enabled mode.
Channel modes
After a channel is in enabled mode that channel is also said to be in the normal mode of
operation, which means it responds to timer signals from the timer inputs connected to the
reaction module and also to ADC results received from the on-chip ADC module. Channel
outputs are controlled in accordance with those inputs in order to perform an output
modulation process. When performing a modulation the reaction channel is said to be in the
active state. The modes a reaction channel can be in and the ability to execute a modulation
related to the modes are:
● Disabled: The channel cannot execute modulation.
● Enabled: The channel is able to execute a modulation. It may be in the Active or
Inactive state.
– Inactive state: The channel is not executing a modulation.
– Active state: The channel is executing a modulation.
Debug mode
The Reaction Module Debug operation is defined by bits FRZ and FREN in the REACM
module configuration register (REACM_MCR) (see Figure 453). In debug mode all timers
are halted, including the timers in the Shared Time Bank and Hold-off Timers.
The module can enter debug mode either by software control or by the hardware debug
input signal controlled by the chip logic. In both cases the reaction module only enters
debug mode if enabled by bit REACM_MCR[FREN]:
● If the FREN bit and the FRZ bit are both is asserted the module enters debug mode.
● If the FREN bit is asserted and a global debug signal is issued the module enters
debug mode.
In debug mode, the channel outputs are held at HOD (High Output Drive), LOD (Low Output
Drive), or Drive Off (DOFF) state, as determined by the current channel state. When
resuming normal operation after exiting debug mode the channel output is set to DOFF until
the next timer control rising edge occurs.
The ADC Maximum Limit Detection (REACM_CHSRn[MAXL]) flag is the only flag that
operates in debug mode. All other flags keep the state present when the module entered
debug mode. Note that the corresponding error flag in the REACM Global Error Flag
Register (REACM_GEFR) (Figure 457) is also set.
The REACM ADC Sensor Input Register (REACM_SINR) allows direct access for write to
the TAG and ADC result values input to the reaction module. This software control may be
used for module debug purposes. Please see Figure 456.
CPU
eTPU
eTPU
SDM
ADC
System
Timer (eTPU
channels channels)
side
port device pins
(PSI) ADC sampled
data
rchn_a
Reaction Module
Reaction rchn_b
register access Channels
bus rchn_c
can be driven by
CPU
Timer Timer
Bank
Timer
Channels [15:0]
Modulation CHn
Control Bank rchn_a
3 2
rchn_b 7
reaction
rchn_c
channel
Timer
Holdoff
Bank
Threshold
Comparator
Bank
6
5
allocate select
timer timeout
ch sel
Modulation 16 rch0_a
Control Bank CH0 rch0_b
32-bit reaction rch0_c
channel
address rch1_a
CH1
word n rch1_b
6 reaction
word n+1 rch1_c
channel
word n+2
data
rch2_a
CH2 rch2_b
reaction
rch2_c
channel
address rch5_a
Threshold CH5 rch5_b
Bank reaction rch5_c
32-bit channel
threshold n
threshold n+1 Timer
Hold-off
Bank
Comparator
12-bit
rch0_a eTPU14
rch0_b eTPU20
rch0_c eTPU21
rch1_a eTPU15
rch1_b eTPU9
rch1_c eTPU10
rch2_a eTPU16
rch2_b eMIOS2
rch2_c eMIOS4
rch3_a eTPU17
rch3_b eMIOS10
rch3_c eMIOS11
rch4_a eTPU18
rch4_b eTPU11
rch4_c eTPU12
rch5_a eTPU19
rch5_b eTPU28
rch5_c eTPU29
Timer channels, such as eTPU channel outputs, are connected to the Channel Router. This
submodule routes each timer channel to a reaction channel. Note that one timer channel
can be routed to more than one reaction channel.
The modulation process starts when an ADC result arrives and the time window is active.
The ADC Router sends a trigger signal to all channels indicating that an ADC result is
available. The channel address resolution is based on the TAG field received with the
incoming ADC result. After decoding the TAG field the channel accesses the modulation
word using the information stored in the REACM_CHCRn.
The Threshold Bank submodule stores values to be used on the comparison with incoming
ADC results. The address for the stored values is generated by the Modulation Control
Word Bank. This address generation is actually executed in a two-step process since the
modulation word is first addressed by the channel which then generates the address for the
Threshold Bank. After having both inputs defined the Comparator generates the comparison
result back to the channels.
The Hold-off Timer Bank address is also stored in the modulation word. The reaction
channel uses that information for the modulation process which requires the output to
remain OFF during a certain amount of time. The hold-off counter itself is located inside
each one of the channels.
on page 23-
0x0000 REACM module configuration register (REACM_MCR) 1
727
on page 23-
0x0004 REACM Timer Configuration Register (REACM_TCR) 1
728
on page 23-
0x0008 REACM Threshold Router Register (REACM_THRR) 1
729
0x000C Reserved
on page 23-
0x0010 REACM ADC Sensor Input Register (REACM_SINR) 1
730
0x0014 – 0x001F Reserved
on page 23-
0x0020 REACM Global Error Flag Register (REACM_GEFR) 1
731
0x0024 – 0x00FF Reserved
0x0100 +
Reserved (n = 0–5)
(n*0x10 + 0xC)
0x0160 – 0x02FF Reserved
on page 23-
0x0300 – 0x0308 REACM Shared Timer Bank Registers (REACM_STBK) 3
739
0x030C – 0x037F Reserved
on page 23-
0x0380 – 0x0388 REACM Hold-off Timer Bank Registers (REACM_HOTBK) 3
740
0x038C – 0x03FF Reserved
on page 23-
0x0400 – 0x045C REACM Threshold Bank Register (REACM_THBK) 24
740
0x0460 – 0x05FF Reserved
REACM ADC result maximum limit check register on page 23-
0x0600 1
(REACM_ADCMAX) 741
0x0604 – 0x067F Reserved
REACM Modulation Range Pulse Width Register on page 23-
0x0680 1
(REACM_RANGEPWD) 742
0x0684 – 0x06BF Reserved
REACM Modulation Minimum Pulse Width Register on page 23-
0x06C0 1
(REACM_MINPWD) 743
0x06C4 – 0x06FF Reserved
REACM Modulation Control Word Bank Registers on page 23-
0x0700 – 0x072C 12
(REACM_MWBK) 743
0x0730 – 0x0FFF Reserved
OVREN
HPREN
TPREN
FREN
MDIS
GIEN
FRZ
OVRC
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0
TPRE[7:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
WREN0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0
THRADC1[3:0] THRADC0[3:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ADC_RESULT[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 EF5 EF4 EF3 EF2 EF1 EF0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Address: REACM_BASE (0xC3FC_7000) + 0x0100 + (n* 0x0010 + 0x0000) Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
OCDFEN
SQEREN
RAEREN
MAXLEN
SCDFEN
R 0 0
TAEREN
DMAEN
CHOFF
SWMC
CHEN[1:0] DOFF[2:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0
BSB[2:0] MODULATION _ADDR[5:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
If CHEN is programed with 01 or 11 enabling a channel, and the eTPU time window is already
active (or SWMC = 1), the reaction channel disregards this window and waits until the next
window activation in order to start the modulation process by moving to the active state. In
order to start a modulation controlled by software, it is necessary to first write CHEN = 1
and only after that write SWMC = 1.
Address: REACM_BASE (0xC3FC_7000) + 0x0100 + (n* 0x0010 + 0x0004) Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
MODACT
SQER
OCDF
RAER
SCDF
MAXL
TAER
R 0 0 CHOUT[2:0] 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 MODULATION_POINTER[5:0]
OCDFC
SQERC
RAERC
MAXLC
SCDFC
TAERC
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The condition that sets the RAER bit must be resolved prior to clear the bit, otherwise the bit can be set
again.
Address: REACM_BASE (0xC3FC_7000) + 0x0100 + (n* 0x0010 + 0x0008) Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0
ADCR[3:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0
CHIR[3:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0b0000 10
0b0001 11
0b0010 12
0b0011 13
0b0100 14
0b0101 15
0b0110 16
0b0111 17
0b1000 18
0b1001 19
0b1010 20
0b1011 21
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
SHARED_TIMER[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
HOLD_OFF[11:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
THRESHOLD_VALUE[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ADC_MAX_LIMIT[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Figure 464. REACM ADC result maximum limit check register (REACM_ADCMAX)
ADC results are always considered unsigned unless specific note states the contrary. Since
ADC received results are 14-bit values a two bit sign extension must be performed
before any comparison is executed.
Section 23.6, Monitored modulation. This function is implemented by sharing the use of
reaction channel Hold-off counter, thus if the Hold-off timer is used by the channel sequence
mode (SM in the REACM Modulation Control Word Bank Registers (REACM_MWBK)), this
checking function is not active.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
RANGE_PWD[11:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0
The RANGE_PWD value should be calculated considering the prescaler settings used for
the HOLD_OFF counter. For a programmed (RANGE_PWD + MIN_PWD) value, a
pulse narrower than or equal to (RANGE_PWD + MIN_PWD + 1) does not set the
OCDF flag.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
MIN_PWD[11:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The MIN_PWD value should be calculated considering the prescaler settings used for the
HOLD_OFF counter.For a programmed MIN_PWD value, a pulse wider than
(MIN_PWD + 1) does not set the SCDF flag.
R 0 0 0 0
IOSS
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0
THRESPT[5:0] STPT[3:0] HDOFFTPT[3:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
For time-out event selections, it is required the related time be greater than 64 clock cycles
Threshold Pointer
17–22 The THRESPT[5:0] Threshold Pointer is the address of the Threshold Bank that holds
values to be used for ADC result comparisons in the modulation process. This pointer
THRESPT[5:0]
has the resolution for a 16-bit data stored in the register described in Section 23.3.12,
REACM Threshold Bank Register (REACM_THBK).
Shared Timer Pointer
23–26 The STPT[3:0] Shared Timer Pointer field is the pointer for the Shared Timer Bank.
STPT[3:0] The Shared Timer is used as timer sequencer defining the advance of Modulation
Words.
27 Reserved, should be cleared.
Hold-off Pointer
28–31 The HDOFFPT[3:0] field is the address of the Hold-off timer value in the Hold-off
Timer Bank that is used in the modulation cycle. Note that there are modulation
HDOFFPT[3:0]
sequences that do not require hold-off measurement such as threshold/threshold
modulations.
address
Threshold value[15:0]
ADC
address
HOD[2:0] LOD[2:0] MM[1:0] SM[1:0] HDOFFPT[3:0] THRESPT[5:0]
DOFF[2:0] MODULATION_ADDR[5:0] +1
holdoff timer
sel v
load
initial value t
output pins etpu window
Low selection
v
high selection
} t
Reaction Channel Reaction PWM
i
feed back from the controlled load
Modulated current t
Modulation Control Word Bank Registers (REACM_MWBK) and Figure 469 describes the
interfaces of this submodule with some other submodules in the Reaction Module. The
informations stored in the Modulation Word are:
● Modulation control parameters for the reaction channel
● Threshold Value Register Bank address
● Hold-off bank address
● Shared Timer bank address
● DMA support
All channels share the information stored in the Modulation Control Word Bank, which
provides a size-effective implementation avoiding the duplication of information and allowing
flexible implementation. The sharing of modulation control words allows several channels to
execute the same modulation sequence.
The Modulation Control is designed to be used by all reaction channels as a centralized
resource. However, only one channel is able to access the Modulation bank at a given time.
Therefore, there is a priority in the selection of the channel that will have the access granted,
but note that this condition does not occur too often since ADC results are provided for one
channel at a time.
An arbiter in the Modulation Control Word bank selects one of the channels which are
requesting access to a modulation word. The priority criteria is fixed and based on the
channel number, considering Channel 0 the highest priority channel. The channel selected
by the arbiter receives an acknowledge signal which indicates that channel was selected
and therefore can access the modulation word.
Note: In order to avoid an initial delay when processing a timer window start event, the channel
performs a speculative read operation of the first modulation word when it is enabled (CHEN
is configured). Therefore, when the modulation cycle is triggered by the timer window start
event, all needed information for the modulation is already stored inside the channel.
CPU
other Request[15:1]
channels
Request
REQUEST
Reaction Modulation Word
ARBITER/ sel addr
Channel LOOP IOSS MM SM HOD LOD THRESPT TIMERPT HDOFFPT
SEL
CH0 Modulation addr
Access granted
addr for the addr for the
Modulation information Threshold Bank Hold-off Bank
Holdoff addr for the
Timer Timer Bank
Bank
4 ch tag 4
4 ch tag 4
sel channel 16 16 16
16
The Modulation Control Word generates the address for the Hold-off Timer bank which then
generates the hold-off value for the channels. The channel that addressed the Modulation
Word captures the 12-bit value storing it in the channel Hold-off timer. In Figure 471 channel
CH0 is requesting access to the Modulation Word thus receiving the hold-off value from the
Hold-off Timer Bank. Each reaction channel has its own internal hold-off timer.
modulation addr
Modulation
Control
THRESPT[5:0]
adc_data[15:0]
on-chip
ADC ADC
Router Threshold
Bank Comparator
0 Reaction
COMP channel
. comparison
.
. result CHn
Write Comp
Reg
Logic Bank 31
XBAR Master or eTPU
received TAG
4
ADC Interface
PSI Bus
from eQADC ADC result for the
comparison in the
ADC_RESULT threshold bank
submodule
Control
Ack
4
ADC_TAG Connected to all
reaction channels
XBAR Master
New result received
or eTPU connected to all channels
The maximum throughput supported by the reaction module depends upon the TAG of the
incoming ADC data. If only one reaction channel is addressed by the ADC TAG then the
maximum supported ADC data rate is one sample each five clock cycles. If two reaction
channels are addressed by the same ADC TAG, thus having the same CHRRn ADCR field,
and are active at the same time, the maximum supported rate is one ADC data on each 10
clock cycles. In general if (n) channels share the same TAG and are active at the same time
the maximum supported ADC data rate is 5×(n) clock cycles.
These limitations are related to the sharing of internal reaction module resources such as
the Modulation Word bank. The ADC conversion data should remain stable in the ADC
interface until it is used by all channels which matching TAG and CHRRn ADCR fields.
Note that if all active channels have different CHRRn ADCR fields, that is, are assigned to
different TAGs, the maximum supported ADC rate is five clock cycles. If multiple channels
have the same CHRRn ADCR field but only one is active at a time, then the maximum
supported ADC data rate is also five clock cycles.
adc_data[15:0]
to Comparator
on-chip ADC
ADC Interface write to threshold bank Threshold
Bank
23.4.7 Prescalers
The prescalers provide internal system clock divided signals to be used by internal timers.
The reaction module contains two prescalers: a 12-bit prescaler HPRE[11:0] and an 8-bit
prescaler TPRE[7:0]. Both are defined in the REACM Timer Configuration Register
(REACM_TCR) (see Figure 454 for details). Prescaler HPRE[11:0] is dedicated to the Hold-
off timers within the reaction channels. Prescaler TPRE[7:0] is used by the Shared Timer
Bank counters. The HPRE[11:0] and TPRE[7:0] prescalers are enabled by HPREN and
TPREN bits, respectively, in the REACM module configuration register (REACM_MCR) (see
Figure 453). Note that prescalers operate in a similar way regarding their activation. Once
the prescaler is enabled by HPREN or TPREN bits in the REACM_MCR, it starts a new
count sequence meaning that it is put in reset state and will generate the first prescaler tick
after it reaches the programmed value defined by the HPRE or TPRE fields.
CH[0](1) BSB[0]
out[0] 0 och0_a
1 F/F ch0_a
BSB[1]
chan
active
out[1] 0 och0_b
F/F ch0_b
1
BSB[2]
out[2] 0 och0_c
F/F ch0_c
1
CH[1] BSB[0]
out[0] 0 och1_a
1 F/F ch1_a
chan BSB[1]
active
out[1] 0 och1_b
1 F/F ch1_b
BSB[2]
out[2] 0 och1_c
F/F ch1_c
1
NOTES:
1. CH[0] should be enabled by CHEN to use BSB.
Figure 475. Banked mode showing stacking of channels [0] and [1]
The Banked Mode support hardware is implemented on groups of four channels. The
groups are defined as CH[3:0] and CH[5:4]. Thus CH[3] and CH[5] do not connect to the
subsequent channel which are CH[4] and CH[0] respectively.
I
Upper Limit
Injector set output to LOD
feedback
output is LOD
Upper threshold Limit
Injector
feedback
output is HOD
hold-off hold-off hold-off hold-off
Time Time Time Time
time
i
Reaction CH0
modulated current
modulation does not
start
time
the next modulation cycle the modulation word 0 is executed first and all subsequent words
are executed in the appropriate sequence.
ON
timer
control
signal
OFF OFF
time
i
early end of pulse
DOFF time
a b c d e a b c d e
modulation word 0
modulation word 1
modulation word 2
modulation word 3
modulation word 0
modulation word 1
modulation word 2
modulation word 3
Figure 479. Early end of Timer Control pulse
Note: In some applications the modulation runs continuously and the input timer control signal is
not used as a modulation pulse control but only as an enabling signal. Therefore, if the
modulation is turned off, the REACM can issue a Modulation Word Sequence Error by
setting SQER flag. In this case, this SQER flag can be ignored (masked) without prejudice.
An option, if the application permits, is to disable the REACM channel (CHEN = 00), thus
avoiding unwanted SQER error.
Module initialization
To execute the modulation process the Reaction Module must be initialized with a correct
sequence. One method is described as follows:
A - Normal operation
B - open circuit
wide pulse
current passed
predefined limit
C - short circuit
narrow pulse
B - open circuit
wide pulse
hdo timeout
indicating error Set OCDR in the status register to indicate
short circuit
current passed
predefined limit
C - short circuit
narrow pulse
Note: In order to define RANGE_PWD value it is required to consider that the Hold-off timer
already measured MIN_PWD, thus actually the maximum allowed pulse width = (MIN_PWD
+ RANGE_PWD). In other words, RANGE_PWD = (maximum allowed pulse width −
MIN_PWD).
IF MIN_PWD = 0x00 or RANGE_PWD = 0x00 no pulse width is performed.
The CHSR SCDF flag does not set if the pulse was finished by disabling the modulation
(i.e., eTPU channel = 0 or SWMC = 0) or by disabling the channel, CHEN = 00, even if it
ended shorter than MIN_PWD. However this flag can set in some situations that really
indicates a short pulse detection but it is the result of some internal condition of the reaction
module. The known situations are listed below:
● when the shared timer error occurs (TAER flag is set), a narrow pulse can be
generated and SCDF flag is set.
● when the CHCR CHOFF bit is set, a narrow pulse can be generated and SCDF flag is
set.
The CHSR OCDF flag only sets when the channel is enabled (CHEN not null) and the eTPU
channel signal or SWMC is active too. However, the OCDF flag can set in some cases when
the CHOFF bit is set. In this case, this OCDF flag should be disregarded because it is a
false indication of the detector.
There can be a conflict of resource allocation if the Hold-off timer is used as the timer for the
sequencer mode SM = 10. In this case it is not possible to detected minimum or maximum
pulse widths thus the monitored modulation is deactivated. Which means the use of the
Hold-off timer in the sequence mode has precedence over the monitored modulation. This
configuration is not considered an error though, since it may occur during one of the phases
of a modulation cycle and return to a sequence mode where the monitored modulation is
possible. Thus no flags will be set to signal this conflict condition.
ON
timer
control
signal
OFF OFF
time
Current in
Injector
A B C D E
time
a b c d e f
modulation word 0
modulation word 1
modulation word 2
modulation word 3
modulation word 4
DMA REQ
signal
time
DMA DONE
signal
time
Vboost
Reaction Module
Vbatt
Boost
ctrl
Inj B top
Inj A top
Injector A Injector B
Inj B bot
Inj A bot
Feedback
Current Monitor
to the on-chip ADC
Resistor
eTPU CH0 ON
time control
OFF
time
v
eTPU CH1
time control
time
i
Reaction CH0
modulated current
time
i
Reaction CH1
modulated current
time
Injector B
Vbatt
Sensor
boost
circuit
Vboost
Injector A
ch5_a
ch5_b
ch5_c
ch0_a
ch0_b
ch1_a
ch1_b
ch2_a
ch2_b
ch0_c
ch1_c
ch2_c
MCU
CH0
CH1
CH2
CH5
eTPU time windows signals
eQADC
channel
Comparator
router
Timer
Modulation Word
Control Bank
ch2
ch1
Result
Bank
Reaction Module
eTPU
Interface
ADC
execute the same type of modulation and use the same threshold values. Note also that the
data stored in the Threshold bank in this case is also shared between these channels. This
is an important feature of the Reaction Module architecture since it allows the sharing of
resources and therefore provides savings in size without compromising the module
functionality.
Figure 487 shows an example of the required current levels through Injector A and B. In
order to generate this waveform, the Reaction Module uses one Modulation Control Word
for each one of the five phases of the waveform from A through F. In this example the
Module should be configured in the following way:
1. Set the REACM_CHRR0 CHIR[3:0] = 0x0, thus routing eTPU channel 0 to reaction
channel 0
2. Set the REACM_CHRR1 CHIR[3:0] = 0x1, thus routing eTPU channel 1 to reaction
channel 1
3. Set the REACM_CHRR0 ADCR[3:0] = 0x0, thus routing ADC TAG 0 to reaction
channel 0
4. Set the REACM_CHRR1 ADCR[3:0] = 0x0, thus routing ADC TAG 0 to reaction
channel 1
5. Program Modulation Word Control bank according to Figure 488
6. Program Shared Timer Bank REACM_STBK for addresses from 0 through 3 with
timing intervals related to the duration of phases A,B,C and D respectively.
7. Program appropriate values in the Threshold Bank. Since threshold-threshold
modulation is to be used in this example, four pairs of values should be provided for
phases A,B,C and D respectively. Each pair corresponds to one address of the
REACM_THBK starting at address 0x0400.
8. Program configuration registers for both channels, REACM_CHCR0/1. The parameters
are DOFF[2:0] which defines the OFF state of the channel outputs and the
MODULATION_ADDR = 0x0, which defines the address of the Modulation Control
word. It is assumed that the Modulation Word zero is the first word to be accessed by
both channels. Since four Modulation words will be used the addresses will be
incremented by the reaction channel as needed, thus only the address for the first word
is required. Note that MODULATON_ADDR = 0x0 points to the first Modulation Word in
the Modulation Word Bank.
9. Program the prescalers HPRE and TPRE in the REACM_TCR register. Also enable the
prescalers by setting the TPREN and HPREN bits in the REACM_MCR register.
10. Enable channels CH0 and CH1 to start the modulation sequence by programing field
CHEN = 01 on REACM_CHCR1/0 registers. At this time the Reaction channel CH0
accesses the Modulation Control word zero and switches to ON state as defined by the
data stored HOD[2:0] field. Up to this point any activity in the eTPU channel or income
ADC result is ignored by the Reaction module. After CHEN field is programed, the
reaction channels wait until a timer window is initiated by eTPU for the modulation
process to start.
ON
timer
eTPU control
signal
OFF OFF
time
I0
Current in
Injector
I2
I3
I4
I5
A B C D
time
a b c d e
modulation word 0
modulation word 1
modulation word 2
modulation word 3
Modulation Word is read by the channel. As a result of the second Modulation Word
decoding the Vboost voltage is disabled causing a peak modulation with Vbatt. The phase is
called the Peak Vbatt phase. For phase B a Threshold-Threshold modulation is used with
levels I2 and I3 during a period defined by TB. Please see Figure 488.
A timeout event is received from the Shared Timer submodule and a new Modulation Word
is read. Phase C corresponds to the recirculation phase. Energy from the injector is
transferred back to the boost circuitry. In this phase the current can not be measured
because there is no current flowing through the sensor resistor. A Threshold-Threshold
modulation mode is used. The Shared Timer is started at the beginning of this phase and
TD delay is measured. The channel outputs are kept in the OFF state.
When the Shared Timer times out after TD delay the Modulation Word address is
incremented, MODULATION_ADDR = 0x4 and the Hold phase is initiated. This phase is
typically longer compared to the other phases and defines the amount of fuel that will be
injected. Threshold-Threshold modulation mode is used between levels I4 and I5 and Vbatt
is selected as the power supply. The phase ends based on the eTPU time window switching
to off at point e. At this time the channel outputs are set to OFF and the channel points to
MODULATION_ADDR = 0x0 which is the address of the first Modulation Word. Note that
this address is not necessarily 0x0.
This modulation process is executed by a sequence of Modulation Words as described in
Figure 488.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
000010 (I0)
PhaseA 0 1 00 11 111 101 0001 (TB) X
000011 (I1)
000010 (I2)
Phase B 0 0 00 01 011 001 0010 (TC) X
000011 (I3)
Phase C 0 0 00 01 000 000 X (1) 0011 (TD) X
000100 (I4)
Phase D 0 0 00 00 011 001 X X
000101 (I5)
1. Any value
ON
timer
eTPU control
signal
OFF OFF
time
Current in
Injector
i0
i2
i3
i4
i5
A B C D E
time
a b c d e f
modulation word 0
modulation word 1
modulation word 2
modulation word 3
modulation word 4
Figure 490 shows the sequence of Modulation Words within a Modulation Cycle if LOOP
function is used. Note that an alternate modulated waveform is generated using only two
Modulation Words, in this case Modulation Word 0 and Modulation Word 1.
modulation cycle
Vboost ch0_a
CH0 banked Vboost
Vbatt ch0_b
logic ch0_c Vbatt
CH1 ch1_a
banked
ch1_b
logic ch1_c
Sensor
Sensor
Figure 491. Four channels controlling two injector banks in banked mode
24.2 Introduction
eTPU is an intelligent, semi-autonomous co-processor designed for timing control.
Operating in parallel with the Host CPU, the eTPU processes instructions, real-time input
events, performs output waveform generation, and accesses shared data without Host
intervention. Consequently, for each timer event, the Host CPU setup and service times are
minimized or eliminated.
High-level assembler, compiler and documentation allows customers to develop their own
functions on the eTPU.
eTPU is an enhanced version of the TPU module. Although there is no compatibility at
microcode level, eTPU maintains several features of older TPU versions, making it easy to
port older applications, at the same time adding several features listed in Section , eTPU
enhancements over TPU3.
This document also includes the new features belonging to the version of the eTPU known
as eTPU2. The new features are summarized in Section , eTPU2 enhancements over
eTPU.
eTPU architecture aims at high resolution timing capabilities. From a system perspective,
high resolution timing is limited by Host CPU overhead required for servicing timing tasks
such as period measurement, pulse measurement, pulse width modulated waveform
generation, etc. On the eTPU, high resolution timing is achieved by three main capabilities:
● Reduced latency: pin actions are immediate.
● Reduce or eliminate host interrupt service time.
● Double action channel capability reducing the channel request rate.
eTPU provides higher resolution than the Host CPU can achieve and creates no Host
overhead for servicing timing tasks.
Latency is the interval from occurrence of an event to the start of event servicing. eTPU can
service its own events without interrupting the Host. There are two types of timing events:
● Input pin transition
● Selected Time Base match, that is, a selected Time Base counter reached or exceeded
a preprogrammed value
Service time is the time spent servicing an event. In general, in microcontrollers the service
time is constrained because the instruction set is not optimized for time function synthesis.
The eTPU instruction set is optimized, so that time functions can be implemented with much
fewer instructions than the Host CPU. Instructions execute faster, service time is reduced
and program memory compacted.
Instructions executed by the eTPU are connected directly to the eTPU timing hardware and
allow parallelism of hardware related actions.
24.2.1 Overview
Figure 492 shows a top-level eTPU block diagram.
HOST CPU
SCM
SHARED CODE MEMORY
REGISTERS BIU
STAC signals
Debug If P. RAM
eTPU Engine 1
Pad-interface
signals
PINS
Each I/O signal pair is associated with a dedicated Channel, which provides hardware for
input signal processing and output signal generation, in relationship with selected Time
Bases.
The eTPU, as a microprocessed subsystem, works much like a typical real-time system: it
runs microengine code from instruction memory (SCM) to handle specific events, accessing
data memory (SPRAM) for parameters, work data and application state info; events may
originate from I/O Channels (due to pin transitions and/or time base matches), Host CPU
requests or inter-channel requests; events that call for local eTPU processing activate the
microengine by issuing a Service Request. The Service Request microcode may set an
interrupt to the Host CPU. I/O channel events cannot directly interrupt the Host CPU.
Each channel is associated with a Function, which defines its behavior: the Function is a
software entity consisting, within the eTPU, of a set of microengine routines that attend to
Service Requests. The Function routines are also responsible for Channel configuration.
Function routines reside in SCM, which may contain several Functions. A Function may be
assigned to several Channels, but a Channel can be associated with just one Function at a
given moment. The association between Functions and Channels is defined by Host CPU,
and is explained in detail in Section 24.5.1, Functions and threads.
eTPU hardware supplies resource sharing features that support concurrency:
● a hardware Scheduler dispatches the Service Request microengine routines based on
a set of priorities defined by the Host CPU. Each Channel has its associated priority;
● a Service Request routine cannot be interrupted until it ends. This sequence of
uninterrupted instruction execution is called a Thread.
● Channel-specific context (registers and flags) is automatically switched between the
end of a Thread and the beginning of the next one.
● SPRAM arbitration, a dual-parameter coherency controller and semaphores can be
used to ensure coherent access to eTPU data shared by both eTPU engines and Host
CPU.
eTPU engine
The eTPU engine consists of two 24-bit time bases, 32 independent timer channels, a task
scheduler, a microengine, and a Host interface and 32-bit Shared Parameter RAM
(SPRAM). In dual-engine implementations of the eTPU, SPRAM is used for both eTPU
engine’s data storage and for passing information between the eTPU engines and the host
CPU.
Figure 493 shows the block diagram for the eTPU engine.
IPI
SkyBlue, HOST TIMER
Green INTERFACE CONTROL SCHEDULER SERVICE REQUESTS CHANNELS
Lines
CHANNEL 0
ENGINE
CHANNEL 1
CHANNEL
CONFIGURATION TCR1
IPI TCRCLK
Indigo TCR2/
PIN ANGLE COUNT
Line TIME BASE
CONFIGURATION IPI
Purple
MICROENGINE Line
MDU
CONTROL
to NDEDI DEBUG and DATA
INTERFACE
CHANNEL 31
CODE
DATA
SHARED SHARED
PARAMETER CODE
RAM MEMORY
(SPRAM) (SCM)
Time bases
Two 24-bit counters TCR1 and TCR2 provide reference time bases for all match and input
capture events. Prescalers for both time bases are controlled by the Host CPU through bit
fields in the eTPU engine configuration registers. The eTPU is able to export/import time
to/from TCR1 or TCR2 in accordance to the Red Line bus specification.
The clock for each of TCR1 and TCR2 clock can be independently derived from the system
clock or from an external input via the TCRCLK clock pin. In addition, the TCR2 timebase
can be derived from special angle-clock hardware which enables implementing angle-based
functions. This feature is added to support advanced angle based engine control
applications.
For further details refer to Section 24.5.6, Time Bases.
Host interface
The Host interface allows the Host CPU to control the operation of the eTPU. The Host CPU
must initialize the eTPU by writing to the appropriate Host interface registers to assign a
Function and priority to each channel. In addition, the Host writes to the Host Service
Request and channel configuration registers to further define Function operation for each
initialized channel. Refer to Section 24.5.2, Host interface for a detailed description.
When the SCM is implemented by RAM, the Host must first initialize it with the proper
microcode program prior to enabling any eTPU Function, and then enable eTPU access
(which also disables Host access).
Scheduler
Out of reset, all channels are disabled. The Host CPU makes a channel active by assigning
it one of three priorities: high, middle, or low. The Scheduler determines the order in which
channels are serviced based on channel number and assigned priority. The priority
mechanism, implemented in hardware, ensures that all requesting channels are serviced.
For additional details refer to Section 24.5.3, Scheduler.
Microengine
eTPU microengine is a simple VLIW implementation that performs each instruction in a
microcycle of two system clocks, while prefetching the next instruction through an
instruction pipeline. Instruction execution time is constant unless it gets wait states from the
SPRAM arbitration. Two eTPU engines share code memory without having any
performance degradation by interleaving their accesses (the Shared Code Memory has
one-clock access time).
Instruction width is 32 bits. The microengine instruction set provides basic arithmetic and
logic operations, flow control (jumps and subroutine calls), SPRAM access, and Channel
configuration and control. The instruction formats are defined in such a way that allow
particular combinations of two or three of these operations with unconflicting resources to
be executed in parallel in the same microcycle.
Microengine has also an independent Multiply/Divide/MAC unit that performs these complex
operations in parallel with other microengine instructions.
Channel functionality is tightly integrated to the instruction set through Channel Control
operations and conditional Branch operations, which support jumps/calls on Channel-
specific conditions. This allows quick and terse Channel configuration and control code,
contributing to reduced service time.
Detailed description can be found in Section 24.5.8, Microengine.
24.2.2 Features
eTPU feature summary
The eTPU includes these distinctive features:
● Up to 32 channels per eTPU engine—each channel is associated with an I/O signal
pair.
– Enhanced input digital filters on the input pins for improved noise immunity. The
eTPU digital filter can use 2 samples, 3 samples or work in continuous mode.
– Identical, orthogonal channels, except for channel 0: each channel can perform
any time function. Each time function can be assigned to more than one channel
at a given time, so each signal can have any functionality. Channel 0 has the same
capabilities of the others, but can also work with special Angle Counter logic (see
below).
– Link Service Request allows activation of a Channel function by request of another
channel, even between eTPU engines.
– Host Service Request allows activation of a Channel function by Host CPU
request
– Each channel has an event mechanism which supports single and double action
functionality in various combinations. It includes two 24-bit capture registers, two
24-bit match registers, 24-bit greater-equal and equal-only comparators.
● 2 independent 24-bit time bases for channel synchronization:
– First time base clocked by system clock with programmable prescaler division
from 1 to 512 (in steps of 2), or by output of second time base prescaler.
– First time base can also be clocked by external signal with programmable
prescaler division of 1 to 256.
– Second time base clocked by external signal with programmable prescaler
division from 1 to 64.
– Second time base external clock source can be replaced by system clock divided
by 8.
– Both time bases can be exported or imported via Shared Time and Counter) bus.
– Second time base counter can work as an Angle counter, enabling angle based
applications to match angle instead of time.
– Second time base can also be used as a pulse accumulator gated by external
signal.
● Event-Triggered VLIW processor (microengine):
– 2 stage pipeline implementation (fetch and execution), with separate instruction
memory - SCM - and data memory - SPRAM (Harvard architecture)
– Fixed-length instruction execution in two system clock microcycle
– Interleaved SCM access in dual eTPU engine avoids contention in time for
instruction memory
– SCM address space of up to 16K positions (64 Kbytes)
– SPRAM with interleaved access in dual eTPU engine avoids contention for data
memory
– SPRAM address space of up to 8 Kbytes (both engines).
– Instruction set with embedded Channel support, including specialized Channel
control subinstructions and conditional branching on Channel-specific flags.
– Channel-oriented addressing: channel-bound address mode with Host configured
Channel Base Address allows channel data isolation, independent of microengine
application code.
– Channel-bound data address space of up to 128 32-bit parameters (512 bytes)
– Global parameter address mode allows access to common Channel data of up to
256 32-bit parameters (1024 bytes)
– Support for indirect and stacked data access schemes.
– Parallel execution of: data access, ALU, Channel control and flow control
subinstructions in selected combinations.
– 32-bit microengine registers and 24-bit resolution ALU, with 1 microcycle addition
and subtraction, absolute value, bitwise logical operations on 24-bit, 16-bit, or byte
number of parameters for each channel. Each channel can have access to at least 256
parameters.
● The Parameter RAM is fully shared by two eTPU engines (SPRAM), supporting direct
inter-engine communication with the help of hardware semaphores.
● Enhanced arithmetic operations, including add/subtract with carry, absolute value,
multiple shift and rotate, conditional execution with variable operand widths
● Enhanced logic operations, including bitwise operations (and, or, xor) and bit
manipulation, with conditional execution. Support for read-modify-write of any bit in the
SPRAM.
● Hardware for Multiply/MAC/Divide, running in parallel to execution of other operations.
The 24-bit divide result is available after 13 other unrelated instructions. Multiplication
supports any data width of both operands (8, 16 or 24 bits), signed or unsigned. A
24x24 Multiply/MAC result is available after four other unrelated instructions. A 24x8
Multiply/MAC result is available after one other unrelated instruction.
● Supports export/import of time bases from other sources through the real time bus
(STAC - Shared Time and Counter bus). This internal bus is used for sharing real time
data between multiple peripherals.
● Contains angle clock hardware, supported by microcode, which can provide a 24-bit
angle bus instead of time bus. This feature enables the eTPU to run angle based
engine control applications.
● More interrupt types. Each eTPU channel can generate a data transfer request
interrupt, in addition to regular interrupts, and one global exception interrupt. Data
Transfer requests can be used either as interrupt sources or DMA requests. This
feature takes advantage of DMA peripherals which offload the Host. Interrupt Overflow
status is also provided.
● Improved visibility to the Host (pin states, time bases, serviced channel)
● An edge case of priority inversion on TPU3 Scheduler was resolved.
● Supports channel link requests between eTPU engines
Debug Mode is characterized by the use of the debug interface features. Debug features
may be implemented using the eTPU-NDEDI internal interface. Specifically, this interface
may be used with Nexus implementation blocks to provide Nexus class 3 debug features.
The use of eTPU-NDEDI interface and Nexus implementation is MCU-dependent.
Module Disable Mode is entered by setting ETPU_ECR bit MDIS. eTPU engines can be
individually stopped going into Module Disable Mode (there is one ETPU_ECR for each
engine). Each engine can leave Module Disable Mode by writing MDIS = 0 (which can only
be done if VIS = 0).
Stop Mode is activated by IP-Bus (device stop request). In this case, the eTPU waits for
both eTPU engines to enter in stop mode, and then asserts the stop acknowledge line.
eTPU leaves Stop Mode when device stop request is negated, but only if VIS = 0. If device
stop request is negated and VIS = 1, eTPU will leave Stop Mode as soon as VIS = 0.
Note: An engine can stay in Module Disable mode when it leaves Stop Mode if its bit MDIS = 1,
even if the other leaves it.
24.3.1 Overview
There are 69 external signals associated with each eTPU engine: 32 channel input signals,
32 channel output signals, 4 output disable inputs, and TCRCLK clock input, totaling 138 in
a dual-engine system. These signals are described in Table 430.
Depending on the MCU integration, the input and output signals of a channel can be tied to
one pin. In this case, the direction of each channel signal, either output or input, is
determined by the activation of an output enable driver signal. eTPU provides one output
buffer enable signal for each channel, controlled by microcode.
The TCRCLK signal is used to clock TCR1/2 counters or gate the TCR2 clock. In Angle
Mode it is used as a tooth signal input. Refer to Section 24.5.6, Time Bases, and
Section 24.5.7, EAC – eTPU angle counter, for proper use of this signal.
ipp_ind_etpuch_1(0) to MCU
Input eTPU engine 1 channel signals —
ipp_ind_etpuch_1(31) dependent
ipp_do_etpuch_1(0) to MCU
Output eTPU engine 1 channel signals 0 / Hi-Z(1)
ipp_do_etpuch_1(31) dependent
ipp_ind_etpu_odis_1(0) to MCU
Input eTPU engine 1 output disable signals —
ipp_ind_etpu_odis_1(3) dependent
Clock/gate for eTPU engine 1 TCR counters; MCU
ipp_ind_tcrclk_1 Input —
entry of the tooth signal in Angle Mode dependent
ipp_ind_etpuch_2(0) to MCU
Input eTPU engine 2 channel signals —
ipp_ind_etpuch_2(31) dependent
ipp_do_etpuch_2(0) to MCU
Output eTPU engine 2 channel signals 0 / Hi-Z(1)
ipp_do_etpuch_2(31) dependent
ipp_ind_etpu_odis_2(0) to MCU
Input eTPU engine 2 output disable signals —
ipp_ind_etpu_odis_2(3) dependent
Clock/gate for eTPU engine 2 TCR counters; MCU
ipp_ind_tcrclk_2 Input —
entry of the tooth signal in Angle Mode dependent
1. Value 0 refers to the reset value of the signal. Hi-Z refers to the state of the pads, if controlled by the eTPU output buffer
Enable signals, i.e., eTPU output buffer Enable resets in negated state.
t. Note that the minimum pulse width is one microcycle (two system clocks), and slow 5V pads may not be able to
transfer it on time. For generation of very short pulses the eTPU pads have to be programmed by the system
integration for fast operation mode with the voltage levels defined for fast pad operation in the MCU
technology.
u. Sampled on the T4 microcycle phase, see Section 24.7.1, Microcycle and I/O timing.
same mode and sampling clock. For more information on channel input filters, refer to
Section , Enhanced Digital Filter – EDF. In one of the Angle Modes, the output of the digital
filter of channel 0 is replaced by the output of TCRCLK digital filter (see Section 24.5.7, EAC
– eTPU angle counter).
ipp_ind_etpu_odis_[1|2](0) 0 to 7
ipp_ind_etpu_odis_[1|2](1) 8 to 15
ipp_ind_etpu_odis_[1|2](2) 16 to 23
ipp_ind_etpu_odis_[1|2](3) 24 to 31
1. The ETPU2 output_disable signals ipp_ind_etpu_odis_1(0 to 3) are connected to the EMIOS channel
_flags_ (channel 11 to 8) respectively.
In a dual-engine eTPU there are 8 output disable signals for the 64 channels.
4. SCM access is available only when bit VIS = 1 on register ETPU_MCR, under certain conditions (see Section ,
ETPU_MCR – eTPU Module Configuration Register).
on page 24-
0x00 ETPU_MCR – eTPU Module Configuration Register
795
on page 24-
0x04 ETPU_CDCR – eTPU Coherent Dual-Parameter Controller Register
799
0x08 RESERVED
on page 24-
0x0C ETPU_MISCCMPR – eTPU MISC Compare Register
801
on page 24-
0x10 ETPU_SCMOFFDATAR – eTPU SCM Off-range Data Register(1)
802
on page 24-
0x14 ETPU_ECR_1 – eTPU 1 Engine Configuration Register
804
0x18 RESERVED
0x1C RESERVED
on page 24-
0x20 ETPU_TBCR_1 – eTPU 1 Time Base Configuration Register
809
on page 24-
0x24 ETPU_TB1R_A – eTPU Time Base 1 (TCR1) Visibility Register
814
on page 24-
0x28 ETPU_TB2R_A – eTPU Time Base 2 (TCR2) Visibility Register
815
on page 24-
0x2C ETPU_REDCR_1 - eTPU 1 STAC Configuration Register
816
0x30 RESERVED
0x34 RESERVED
0x38 RESERVED
0x3C RESERVED
0x40 RESERVED
0x44 RESERVED
0x48 RESERVED
0x4C RESERVED
0x50 RESERVED
0x54 RESERVED
0x58 RESERVED
0x5C RESERVED
on page 24-
0x60 ETPU_WDTR_1 – eTPU 1 Watchdog Timer Register
818
0x64 RESERVED
on page 24-
0x68 ETPU_IDLE_1 – eTPU 1 Idle Counter Register
819
0x6C RESERVED
0x70 RESERVED
0x74 RESERVED
0x78 RESERVED
0x7C RESERVED
0x80 – 0xFF RESERVED
0x100 RESERVED
0x104 RESERVED
0x108 RESERVED
0x10C RESERVED
0x110 RESERVED
0x114 RESERVED
0x118 RESERVED
0x11C RESERVED
0x120 RESERVED
0x124 RESERVED
0x128 RESERVED
0x12C RESERVED
0x130 RESERVED
0x134 RESERVED
0x138 RESERVED
0x13C – 0x1FF RESERVED
on page 24-
0x200 ETPU_CISR_1 – eTPU 1 Channel Interrupt Status Register
822
0x204 RESERVED
0x208 RESERVED
0x20C RESERVED
ETPU_CDTRSR_1 – eTPU 1 Channel Data Transfer Request Status on page 24-
0x210
Register 822
0x214 RESERVED
0x218 RESERVED
0x21C RESERVED
on page 24-
0x220 ETPU_CIOSR_1 – eTPU 1 Channel Interrupt Overflow Status Register
823
0x224 RESERVED
0x228 RESERVED
0x22C RESERVED
ETPU_CDTROSR_1 – eTPU 1 Channel Data Transfer Request Overflow on page 24-
0x230
Status Register 825
0x234 RESERVED
0x238 RESERVED
0x23C RESERVED
on page 24-
0x240 ETPU_CIER_1 – eTPU 1 Channel Interrupt Enable Register
826
0x244 RESERVED
0x248 RESERVED
0x24C RESERVED
ETPU_CDTRER_1 – eTPU 1 Channel Data Transfer Request Enable on page 24-
0x250
Register 827
0x254 RESERVED
0x258-0x27F RESERVED
on page 24-
0x280 ETPU_CPSSR_1 – eTPU 1 Channel Pending Service Status Register
828
0x284 RESERVED
0x288 RESERVED
0x28C RESERVED
on page 24-
0x290 ETPU_CSSR_1 – eTPU 1 Channel Service Status Register
828
0x294 RESERVED
0x298 RESERVED
0x29C RESERVED
0x300 – 0x3FF RESERVED
on page 24-
0x400 ETPU_C0CR_1 – eTPU 1 Channel 0 Configuration Register
832
on page 24-
0x404 ETPU_C0SCR_1 – eTPU 1 Channel 0 Status and Control Register
835
on page 24-
0x408 ETPU_C0HSRR_1 – eTPU 1 Channel 0 Host Service Request Register
838
0x40C RESERVED
on page 24-
0x410 ETPU_C1CR_1 – eTPU 1 Channel 1 Configuration Register
832
on page 24-
0x414 ETPU_C1SCR_1 – eTPU 1 Channel 1 Status and Control Register
835
on page 24-
0x418 ETPU_C1HSRR_1 – eTPU 1 Channel 1 Host Service Request Register
838
0x41C RESERVED
.
.
on page 24-
0x5F0 ETPU_C31CR_1 – eTPU 1 Channel 31 Configuration Register
832
on page 24-
0x5F4 ETPU_C31SCR_1 – eTPU 1 Channel 31 Status and Control Register
835
on page 24-
0x5F8 ETPU_C31HSRR_1 – eTPU 1 Channel 31 Host Service Request Register
838
0x5FC – 0x7FF RESERVED
0x800 RESERVED
0x804 RESERVED
0x808 RESERVED
0x80C RESERVED
0x810 RESERVED
0x814 RESERVED
0x818 RESERVED
0x81C RESERVED
.
.
.
0x9F0 RESERVED
0x9F4 RESERVED
0x9F8 RESERVED
0x9FC – 0x7FFF RESERVED
0x8000 –
Shared Parameter RAM – SPRAM
0xBFFF(2)
0xC000 –
Shared Parameter RAM—SPRAM – PSE mirror(3)
0xFFFF(2)
0x10000 –
Shared Code Memory – SCM(5)
1FFFF(4)
1. This register is not implemented in some MCUs; see Section , ETPU_SCMOFFDATAR – eTPU SCM Off-range Data
Register.
2. The actual SPRAM size is MCU-dependent.
3. Parameter Sign Extension access area, see Section , Parameter access
4. The actual SCM size is MCU-dependent. When the size not the maximum, the unused SCM address range returns the
value of the register ETPU_SCMOFFDATAR.
5. SCM access is available only when bit VIS = 1 on register ETPU_MCR, under certain conditions (see Section ,
ETPU_MCR – eTPU Module Configuration Register). SCM can only be written in 32-bit accesses.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SDMERR
SCMERR
WDTOA
WDTOB
MGE MGE
R 0 ILF1 ILF2 0 0 SCMSIZE
1 2
W GEC
Reset 0 0 0 0 0 0 0 0 0 0 0 SCMSIZE
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SCMMISCC SCMMISC
SCMMISF
R 0 0 0 0 0 0 0 0 0 0 0
SCMMISEN
GTBE
VIS
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SCMSIZE[4:0]—SCM Size
11-15 This read-only field holds the number of 2 Kbyte SCM Blocks minus 1. This bit is write protected when
any of the engines are not halted or stopped(1). When VIS = 1, the ETPU_ECR MDIS bits are write
protected, and only 32-bit aligned SCM writes are supported. The value written to SCM is unpredictable if
other transfer sizes are used.
16-19
Reserved
SCMMISEN resets automatically when MISC logic detects an error, i.e., when SCMMISF transitions from
0 to 1, disabling the MISC operation.
23-24
Reserved
This bit is write protected when any of the engines are not halted or stopped(2). When VIS = 1, the
ETPU_ECR MDIS bits are write protected, and only 32-bit aligned SCM writes are supported. The value
written to SCM is unpredictable if other transfer sizes are used.
26-30
Reserved
Global Time Base Enable action may also depend on other blocks, as explained in Section , GTBE – Global time
base enable.
When GTBE is turned off with Angle Mode enabled, the EAC must be reinitialized before GTBE is turned on again.
The EAC reinitialization procedure is described in Section , Restarting angle logic.
1. Engine is stopped in Module Disable or Stop Modes, but accesses to registers in Stop Mode is defined in the MCU level.
2. Engine is stopped in Module Disable or Stop Modes, but accesses to registers in Stop Mode is defined in the MCU level.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
STS CTBASE PBBASE
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R PWID
PARAM0 WR PARAM1
W TH
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
STS—Start Bit
This bit is set by the host in order to start the data transfer between the parameter buffer pointed by
PBBASE and the target addresses selected by the concatenation of fields CTBASE and PARAM0/1. The
0
host receives wait-states until the data transfer is complete, when this bit is reset by coherency logic (see
Section , Coherent Dual-parameter Controller (CDC)). Therefore, host always reads STS as 0.
1-5 This field concatenates with fields PARAM0/PARAM1 to determine the absolute word offset (from the
SPRAM base) of the parameters to be transferred:
Parameter 0 word address = {CTBASE, PARAM0} + SPRAM base word address
Parameter 1 word address = {CTBASE, PARAM1} + SPRAM base word address
PBBASE[9:0]—Parameter Buffer Base Address
6-15
This field points to the base address of the parameter buffer location, with granularity of 2 parameters (8
bytes). The host (byte) address of the first parameter in the buffer is PBBASE*8 + SPRAM Base Byte
Address. The microengine absolute (word) address of the first parameter in the buffer is PBBASE*2.
PWIDTH—Parameter Width Selection
16 This bit selects the width of the parameters to be transferred between the PB and the target address.
1: Transfer 32-bit parameters. All 32 bits of the parameters are written in the destination address.
0: Transfer 24-bit parameters. The upper byte remains unchanged in the destination address.
17-23 This field, in concatenation with CTBASE[4:0], determines the word address offset (from the SPRAM
base) of the parameters that are destination or source (defined by WR) of the coherent transfer. The word
SPRAM address offset of the parameters are {CTBASE, PARAM0}.Note that PARAM0 and PARAM1
allow non-contiguous parameters to be transferred coherently. The parameter pointed by {CTBASE,
PARAM0} is the first transferred.
WR—Read/Write selection
This bit selects the direction of the coherent data transfer.
24
1: Write operation. Data transfer is from the PB to the selected parameter RAM address.
0: Read operation. Data transfer is from the selected parameter RAM address to the PB.
PARAM1[6:0]—Channel Parameter number 1
25-31 This field, in concatenation with CTBASE[4:0] determines the word address offset (from the SPRAM
base) of the parameters that are destination or source (defined by WR) of the coherent transfer. The word
SPRAM address offset of the parameters are {CTBASE, PARAM1}.Note that PARAM0 and PARAM1
allow non-contiguous parameters to be transferred coherently. The parameter pointed by {CTBASE,
PARAM0} is the first transferred.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
ETPUMISCCMP[31:16]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ETPUMISCCMP[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
ETPUSCMOFFDATA[31:16]
W
Reset etpu_scm_off_range_data_plug[31:16](1)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ETPUSCMOFFDATA[15:0]
W
Reset etpu_scm_off_range_data_plug[15:0]
= Unimplemented or Reserved
1. The reset value depends on the MCU, and is usually 0xf3775ffb, an instruction that clears MRLEs, MRLs and TDLs,
disables channel service requests, ends the thread and generates an illegal instruction Global Exception.
Offset: eTPU_A: eTPU_Base + 0x014; eTPU_B: eTPU_Base + 0x018 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 STF 0 0 0 0 HLTF 0 0 0
FEND MDIS FCSS FPSCK
W
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 SPPD 0 0
CDFC ERBA ETB
W IS
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. The MDIS reset value is MCU-dependent. Please consult the Reference Manual of the specific MCU.
2. Engine may go to Debug state (halted) soon after reset, depending on the NDEDI configuration.
FEND—Force End
FEND assertion terminates any current running thread as if an END instruction have been executed (see
Section , Ending current thread – END).
Only on rare occasions (e.g., during a long stall, see Section , Microengine stall) FEND can be read as 1, because
it negates as soon as the end begins execution.
When MDIS is set, the engine shuts down its internal clocks, going into Module Disable Mode. TCR1 and
TCR2 cease to increment, and input sampling stops. The engine asserts the stop flag (STF) bit to
indicate that it has stopped However, the BIU continues to run, and the Host can access all registers
except for the channel registers (see list of channel registers on Section 24.4.7, Channel configuration
and control registers). After MDIS is set, even before STF asserts, data read from the channel registers is
not meaningful and writes are ineffective, issuing a Bus Error. When the MDIS bit is asserted while the
microcode is executing, the eTPU will stop when the thread is complete.
Stop completes on the next system clock after the stop condition is valid. The MDIS bit is write-protected
when VIS = 1.
The Timebase registers can still be read with MDIS = 1, but writes are ineffective and a Bus Error is issued. Global
Channel Registers and SPRAM can be accessed normally.
Once MDIS is switched from 1 to 0 or vice versa, it must not be written a different value until STF changes
accordingly.
2
Reserved
The eTPU system is fully stopped after the eTPU engine asserts its stop flag (STF). In case of an IP-Bus
stop, the eTPU acknowledges the stop only after any ongoing thread is complete and the eTPU engine
has stopped.
3 1: Engine has stopped (after the local MDIS bit has been asserted, or after the IP-Bus stop line has been
asserted).
0: Engine is operating.
If eTPU engine entered halt state, this flag is asserted. The flag remains asserted while the microengine
8 is in halt state, even during a single-step or forced instruction execution. See Section , Development
support features, for further details about entering Halt Mode.
Speeds up the filter clock source before the prescaler, allowing more input capture resolution at minimum
prescaling.
12
1: use system clock as EDF clock source before prescaler
0: use system clock / 2 as EDF clock source before prescaler.
FCSS = 1 also makes the channel work on T2/T4 timing mode (see Section , T2/T4 Channel Timing).
FPSCK controls the prescaling of the clocks used in digital filters for the channel input signals and
TCRCLK input, as shown in Table 439. Filtering can be controlled independently by engine, but all input
digital filters in the same engine have same clock prescaling. For more details see Section , Filter Clock
Prescaler.
A new value written to FPSCK only becomes effective when the filter prescaler finishes the current count.
These bits select a digital filtering mode for the channels when configured as inputs for improved noise
immunity (refer to Table 440). The eTPU has three digital filtering modes for the channels which provide
programmable trade-off between signal latency and noise immunity (see Section , Enhanced Digital Filter
– EDF). Changing CDFC during eTPU normal input channel operation is not recommended since it
changes the behavior of the transition detection logic while executing its operation.
TPU2/3 Two Sample Mode: Using the filter clock which is the system clock divided
16-17 by (2, 4, 8,.., 256) as a sampling clock (selected by FPSCK field in ETPU_ECR),
00
comparing two consecutive samples which agree with each other sets the input
signal state. This is the default reset state.
eTPU bypass mode: the input signal is taken unfiltered, also making the channels
01
work on T2/T4 timing mode(1).
eTPU Three Sample Mode: Similar to the TPU2/3 two sample mode, but comparing
10
three consecutive samples which agree with each other sets the input signal state.
eTPU Continuous Mode: Signal need to be stable for the whole filter clock period.
This mode compares all the values at the rate of system clock (FCSS = 1) or system
11 clock divided by two (FCSS = 0), between two consecutive filter clock pulses. Signal
needs to be continuously stable for the entire period. If all the values agree with each
other, input signal state is updated.
1. See Section , T2/T4 Channel Timing
18
Reserved
SPPDIS is used to disable the priority passing mechanism of the microengine scheduler (see Section ,
Primary scheme – priority among channels on different levels).
24
1: Scheduler priority passing mechanism disabled.
0: Scheduler priority passing mechanism enabled.
25-26
Reserved
The field determines the location of the microcode entry table for the eTPU functions in SCM (see
Section , Entry points). Table 441 shows the entry table base address options.
Offset: eTPU_A: eTPU_Base + 0x020 eTPU_B: eTPU_Base + 0x040 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0
TCR2CTL TCRCF AM TCR2P
W
Reset 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
TCR1CS
R 0 0 0 0 0
TCR1CTL TCR1P
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
These bits are part of the TCR2 clocking system (see Section 24.5.6, Time Bases). They determine the
clock source for TCR2 before the prescaler. TCR2 can count on any detected edge of the TCRCLK signal
or use it for gating system clock divided by 8. After reset - TCRCLK signal rising edge is selected. TCR2
can also be clocked by an internal peripheral timebase signal or system clock divided by 8. TCR2CTL
also determines the TCRCLK edge selected for angle tooth detection in angle mode. See Table 443.
This field controls the TCRCLK digital filter (see Section , TCRCLK digital filter), determining whether the
TCRCLK signal input (after a synchronizer) is filtered with the same filter clock as the channel input
signals (see Section , Enhanced Digital Filter – EDF) or uses the system clock divided by 2, and also
whether the TCRCLK digital filter works in integrator mode or two sample mode (see Table 444).
This field enables the Enhanced Angle Counter logic to generate angle information (see Section 24.5.7,
EAC – eTPU angle counter), and also select the tooth signal input and the channel used to process it, as
shown in Table 445. When EAC is not disabled by AM and neither TCR1 nor TCR2 are STAC Clients, the
EAC (eTPU Angle Clock) hardware provides angle information to the channels using the TCR2 bus.
When AM is reset (non-angle mode), the EAC operation is disabled, and its internal registers can be
used as general purpose. For more information, see Section 24.5.7, EAC – eTPU angle counter.
If TCR1 or TCR2 is a STAC Bus Client (see Section , STAC Interface), the EAC operation is forbidden,
and if AM is set the Angle Logic does not work properly.
Changing AM may cause spurious transition detections on the channel selected by AM, depending on the channel
mode and state (see Section , Transition Detection and Time Base Capture). If AM must be changed with
GTBE = 1, the recommended procedure is described in Section , Restarting angle logic.
7-9
Reserved
10-15 These bits are part of the TCR2 clocking system (see Section 24.5.6, Time Bases). TCR2 is clocked from
the output of a prescaler. The prescaler divides its input by (TCR2P+1) allowing frequency divisions from
1 to 64. The prescaler input is the system clock divided by 8 (in gated or non-gated clock mode), or
Internal Timebase input, or TCRCLK filtered input. This field has no effect on TCR2 in Angle Mode.
TCR1CTL—TCR1 Clock/Gate Control
16-17 TCR1CTL is part of the TCR1 clocking system (see Section 24.5.6, Time Bases). It determines, together
with TCR1CS, the clock source for TCR1. TCR1 can count on detected rising edge of the TCRCLK
signal, a Peripheral Timebase source, system clock, or the system clock divided by 2 (see Table 446).
After reset TCRCLK signal is selected
TCR1CS—TCR1 Clock Source
TCR1CS provides the option to double the TCR1 incrementing speed, using system clock as its clock
source instead of system clock / 2.
1: use system clock as TCR1 clock source before the prescaler; can only be set in specific combinations
with TCR1CTL (see Table 446).
0: use system clock / 2 as TCR1 clock source before the prescaler, if that clock source is selected by
TCR1CTL.
TCR1CS = 1 also makes the channel work on T2/T4 timing mode (see Section , T2/T4 Channel Timing).
The clock source of the EAC angle tick generator will still be an even division of system clock if TCR1CS = 1,
obeying to the fields TCR1P as if TCR1CS = 0 (see Section , Angle tick generator).
18
19-23
Reserved
Offset: eTPU_A: eTPU_Base + 0x024; eTPU_B: eTPU_Base + 0x044 Access: User read
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 TCR1[23:7]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R TCR1[8:0]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0-7
Reserved
TCR1[23:0]—TCR1 value
8-31
TCR1 value used on matches and captures. See Section 24.5.6, Time Bases.
Offset: eTPU_A: eTPU_Base + 0x028; eTPU_B: eTPU_Base + 0x048 Access: User read
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 TCR2[23:7]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R TCR2[8:0]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0-7
Reserved
Offset: eTPU_A: eTPU_Base + 0x02C; eTPU_B: eTPU_Base + 0x04C Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Reset 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
This bit enables or disables Client/Server operation to eTPU STAC resources. REN1 enables TCR1
0
STAC bus operations.
This bit selects the eTPU data resource assignment to be used as Servers or Clients. RSC1 selects the
functionality of TCR1. For Server mode, external plugging determines the unique server address
assigned to each TCR. For a Client mode, the SRV1 field determines the Server address to which the
Client listens.
1
1: Resource Server operation.
0: Resource Client operation.
When TCR1 is configured as a STAC Bus Client (REN2 = 1, RSC2 = 0) the eTPU Angle Clock hardware cannot
be used.
RSC1 must not be changed when the respective REN1 bit is asserted.
2-3
Reserved
SERVER_ID1—STAC Id 1
4-7
STAC Server Id (read-only plug values) used for TCR1 when STAC servers.
SRV1—TCR1 Resource Server
12-15
These bits select the address of the specific STAC Server to which the local TCR1 listens when
configured as a STAC Client. SRV1 selects the STAC Server of TCR1.
REN2—TCR2 Resource(2) Client/Server Operation Enable Bits
This bit enables or disables Client/Server operation to eTPU STAC resources. REN2 enables TCR2
16
STAC bus operations.
This bit selects the eTPU data resource assignment to be used as Servers or Clients. RSC2 selects the
functionality of TCR2. For Server mode, external plugging determines the unique server address
assigned to each TCR. For a Client mode, the SRV2 field determines the Server address to which the
Client listens.
17
1: Resource Server operation.
0: Resource Client operation.
When TCR1 or TCR2 is configured as a STAC Bus Client (REN2 = 1, RSC2 = 0) the eTPU Angle Clock hardware
cannot be used.
RSC2 must not be changed when the respective REN1,2 bit is asserted.
18-19
Reserved
SERVER_ID2—STAC Id 2
20-23
STAC Server Id (read-only plug values) used for TCR2 when STAC servers.
24-27
Reserved
Offset: eTPU_A: eTPU_Base + 0x060; eTPU_B: eTPU_Base + 0x070 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
WDM
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
WDCNT[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
WDM—Watchdog Mode
WDM selects the Watchdog operation mode, as shown below. For more information on the Watchdog
operation, see Section , Watchdog.
2-15
Reserved
WDCNT[15:0]—Watchdog Count
This field indicates the maximum number of microcyles allowed for a thread (in thread length mode) or a
16-31 sequence of threads (in busy length mode) before the current running thread is forced to end. For more
information on Watchdog operation, see Section , Watchdog.
Offset: eTPU_A: eTPU_Base + 0x068; eTPU_B: eTPU_Base + 0x078 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R IDLE_CNT[31:16]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R IDLE_CNT[15:0]
W ICLR
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
IDLE_CNT[31:0]—Idle Count
0-31
This is a freerunning count of the number of idle microcycles in the microengine. For more information on
idle counter operation, see Section , Idle Counter.
ICLR—Idle Clear
0x200
Global Channel Registers
0x26C
RESERVED
0x400
Engine 1 Channel Registers
0x600
RESERVED
0x800
Engine 2 Channel Registers
0xA00
RESERVED
Offset: eTPU_A: eTPU_Base + 0x200; eTPU_B: eTPU_Base + 0x204 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CIS3 CIS3 CIS2 CIS2 CIS2 CIS2 CIS2 CIS2 CIS2 CIS2 CIS2 CIS2 CIS1 CIS1 CIS1 CIS1
R
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6
CIC3 CIC3 CIC2 CIC2 CIC2 CIC2 CIC2 CIC2 CIC2 CIC2 CIC2 CIC2 CIC1 CIC1 CIC1 CIC1
W
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
For details about interrupts see Section , Channel interrupt and data transfer requests.
Offset: eTPU_A: eTPU_Base + 0x210; eTPU_B: eTPU_Base + 0x214 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
R S S S S S S S S S S S S S S S S
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
W C C C C C C C C C C C C C C C C
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
R S S S S S S S S S S S S S S S S
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
W C C C C C C C C C C C C C C C C
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
These bits mimic the corresponding ETPU DMA requests. DTRSx can be cleared by software (writing 1
0-31
to DTRCx) or by the assertion of corresponding DMA completion acknowledge line.
For details about interrupts see Section , Channel interrupt and data transfer requests.
Offset: eTPU_A: eTPU_Base + 0x220; eTPU_B: eTPU_Base + 0x224 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS
R
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CIO CIO CIO CIO CIO CIO CIO CIO CIO CIO CIO
CIOC CIOC CIOC CIOC CIOC
W C C C C C C C C C C C
31 30 29 23 22
28 27 26 25 24 21 20 19 18 17 16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS CIOS
R
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CIO CIO CIO CIO CIO CIO CIO CIO CIO CIO CIO
CIOC CIOC CIOC CIOC CIOC
W C C C C C C C C C C C
15 14 13 7 6
12 11 10 9 8 5 4 3 2 1 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Offset: eTPU_A: eTPU_Base + 0x230; eTPU_B: eTPU_Base + 0x234 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
R OS OS OS OS OS OS OS OS OS OS OS OS OS OS OS OS
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
W OC OC OC OC OC OC OC OC OC OC OC OC OC OC OC OC
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
R OS OS OS OS OS OS OS OS OS OS OS OS OS OS OS OS
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
W OC OC OC OC OC OC OC OC OC OC OC OC OC OC OC OC
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
For details about data transfer request overflow, see Section , Interrupt and data transfer request
overflow.
Offset: eTPU_A: eTPU_Base + 0x240; eTPU_B: eTPU_Base + 0x244 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE
W 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE CIE
W 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
For details about interrupts see Section , Channel interrupt and data transfer requests.
Offset: eTPU_A: eTPU_Base + 0x250; eTPU_B: eTPU_Base + 0x254 Access: User read/write
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
DTRE DTRE DTRE DTRE DTRE
E E E E E E E E E E E
W 31 30 29
28 27 26 25 24
23 22
21 20 19 18 17 16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR DTR
DTRE DTRE DTRE DTRE DTRE
E E E E E E E E E E E
W 15 14 13
12 11 10 9 8
7 6
5 4 3 2 1 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
For details about interrupts see Section , Channel interrupt and data transfer requests.
Offset: eTPU_A: eTPU_Base + 0x280; eTPU_B: eTPU_Base + 0x284 Access: User read
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R SR31 SR30 SR29 SR28 SR27 SR26 SR25 SR24 SR23 SR22 SR21 SR20 SR19 SR18 SR17 SR16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SR15 SR14 SR13 SR12 SR11 SR10 SR9 SR8 SR7 SR6 SR5 SR4 SR3 SR2 SR1 SR0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Pending SR status is a logic OR of all service requests pending: if only HSR is active, SRx clears only at
0-31 the end of the thread. SRx clear due to the other request sources is microcode dependent.
The pending service status bit for a channel is 1 when a Service Request is pending, even if the Channel is
disabled (CPRx = 0).
There can be a delay of one clock between writing HSR > 0 in register ETPU_CxHSRR of a channel and its
respective bit being asserted in ETPU_CPSSR.
Note: Channel Service Status does not always reflect decoding of the CHAN register, since the
later can be changed by the service thread microcode.
Offset: eTPU_A: eTPU_Base + 0x290; eTPU_B: eTPU_Base + 0x294 Access: User read
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R SS31 SS30 SS29 SS28 SS27 SS26 SS25 SS24 SS23 SS22 SS21 SS20 SS19 SS18 SS17 SS16
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SS15 SS14 SS13 SS12 SS11 SS10 SS9 SS8 SS7 SS6 SS5 SS4 SS3 SS2 SS1 SS0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
SSx—Service Status x
Indicates that channel x is currently being serviced. It is updated at the 1st microcycle of a Time Slot
0-31
Transition (see Section , Time slot transition), or when the microengine ends the thread.
One contiguous area is used to map all channel registers of each eTPU engine as shown in
Table 461.
There are 64 structures defined, one for each available channel in the eTPU System (32 for
each engine). The base address for the structure presented can be calculated by using the
following equation:
Channel_Register_Base = ETPU_Engine_Channel_Base + (channel_number * 0x10)
where:
ETPU_Engine_Channel_Base = ETPU_Base + 0x400 for Engine 1
ETPU_Engine_Channel_Base = ETPU_Base + 0x800 for Engine 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0
CIE DTRE CPR ETPD ETCS CFS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0
ODIS OPOL CPBA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
(This bit is mirrored from ETPU_CIER – see Section , ETPU_CIER – eTPU Channel Interrupt Enable
Register.)
31
(This bit is mirrored from ETPU_CDTRER – see Section , ETPU_CDTRER – eTPU Channel Data
Transfer Request Enable Register.)
30
CPR[1:0]—Channel Priority
This field defines the priority level for the channel, used by the Hardware Scheduler (see Section 24.5.3,
Scheduler).
2-3
00: Disabled
01: Low
10: Middle
11: High
4-5
Reserved
This bit selects which channel signal, input or output, is used in the Entry Point selection. The ETPD
6 value has to be compatible with the function chosen for the channel, selected in the field CFS. For details
about Entry Table and condition encoding schemes, refer to Section , Entry points.
This bit determines the channel condition encoding scheme that selects, according to channel conditions,
the Entry Point to be taken in an Entry Table. ETCS value has to be compatible with the function chosen
for the channel, selected in field CFS. Two condition encoding schemes are available. For details about
7 Entry Table and condition encoding schemes, refer to Section , Entry points.
The fields ETCS, CFS and CPBA must only be changed while the channel is disabled (field CPR = 00).
8-10
Reserved
This field defines the function to be performed by the channel (see Section 24.5.1, Functions and
11-15 threads). The Function assigned to the channel has to be compatible with the channel condition encoding
scheme, selected by field ETCS.
The fields ETCS, CFS and CPBA must only be changed while the channel is disabled (field CPR = 00).
ODIS—Output Disable
This bit enables the channel to have its output forced to the value opposite to OPOL when the output
16 disable input signal corresponding to the channel group that it belongs is active. See Section ,
ipp_ind_etpu_odis_[1|2]([0 – 3]) eTPU Channel Output Disable Signals and Figure 528.
Determines the output signal polarity. The activation of the output disable signal forces, when enabled by
17
the ODIS bit, the channel output signal to the opposite of this polarity (see Figure 528).
The value of this field times 8 specifies the SPRAM parameter base host (byte) address for channel x (2-
parameter granularity; see Section , SPRAM organization). As seen by the Host, the channel parameter
21-31 base (byte) address is:
without parameter sign extension: ETPU_Base + 0x8000 + CPBA*8
with parameter sign extension: ETPU_Base + 0xC000 + CPBA*8
The fields ETCS, CFS and CPBA must only be changed while the channel is disabled (field CPR = 00).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DTR
R CIS CIOS 0 0 0 0 0 0 DTRS 0 0 0 0 0 0
OS
DTR
W CIC CIOC DTRC
OC
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Reset 0/1(1) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
1. The IPS value after reset is MCU dependent
These bits are mirrored in ETPU_CISR – see Section , ETPU_CISR – eTPU Channel Interrupt Status
Register. See also Section , Channel interrupt and data transfer requests.
CIOS—Channel Interrupt Overflow Status
30
1: interrupt overflow asserted for this channel
0: interrupt overflow negated for this channel
These bits are mirrored in ETPU_CIOSR – see Section , ETPU_CIOSR – eTPU Channel Interrupt
Overflow Status Register. See also Section , Interrupt and data transfer request overflow.
2-7
Reserved
These bits are mirrored in ETPU_CISR – see Section , ETPU_CDTRSR – eTPU Channel Data Transfer
Request Status Register. See also Section , Channel interrupt and data transfer requests.
DTROS—Data Transfer Request Overflow Status
9
1: data transfer request overflow asserted for this channel
data transfer request overflow negated for this channel
DTROC—Data Transfer Request Overflow Clear
These bits are mirrored in ETPU_CDTROSR – see Section , ETPU_CDTROSR – eTPU Channel Data
Transfer Request Overflow Status Register. See also Section , Interrupt and data transfer request
overflow.
10-15
Reserved
This bit shows the current value of the filtered channel input signal state
OPS—Channel Output Pin State
17 This bit shows the current value driven in the channel output signal, including the effect of the external
output disable feature (see Section , ipp_ind_etpu_odis_[1|2]([0 – 3]) eTPU Channel Output Disable
Signals. If the channel input and output signals are connected to the same pad, OPS reflects the value
driven to the pad (if OBE = 1). This is not necessarily the actual pad value, which drives the value in the
bit IPS.
This bit shows the state of the channel output buffer enable signal, controlled by microcode.
19-29
Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0
HSR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0-28
Reserved
HSR value turns to 000 automatically at the end of microengine service for that channel, but only if the
thread started due to an HSR. Host should write HSR > 0 only when HSR = 0. Writing HSR = 000
withdraws a pending request if scheduler did not begin to resolve the Entry Point yet, but it does not abort
the service thread from that point on. For more details, see Section , Entry points, and Section , Host
service requests.
Entry points
Entry table
Each Thread has its Entry Point, which contains the SCM address of its first instruction,
besides other information. For a complete Entry Point description, see Section , Entry point
format.
Once the Scheduler chooses a channel among pending Service Requests, the Entry Point
is taken from an Entry Table, based on the Function assigned for the channel and other
conditions. Entry Table layout is shown in Figure 515.
μcode SCM
addr. host addr.
01FF 7FC
03FF FFC
05FF 17FC
CODE
32 bits μcode 07FF 1FFC
addr.
09FF 27FC
Function 0 0,0 0,1 0E00
entry points 0-31 0,30 0,31 0E0F 0BFF 2FFC
1,0 1,1 0E10
Function 1 0DFF 37FC
entry points 0-31 1,30 1,31 0E1F ENTRY TABLE 0E00
2,0 2,1 0E20 0FFF 3FFC
Function 2
entry points 0-31 2,30 2,31 0E2F 11FF 47FC
0E30
13FF 4FFC
15FF 57FC
CODE
0FEF 17FF 5FFC
Function 31 31,0 31,1 0FF0 19FF 67FC
entry points 0-31 31,30 31,31 0FFF
1BFF 6FFC
ENTRY TABLE ORGANIZATION 1DFF 77FC
1FFF 7FFC
locations for Functions 0 to 7 are used, and the Entry Table locations for functions 8 to 31
can be used as microinstruction memory (adding extra continuous 1536 bytes for
microprogram usage).
One way of implementing different sets of Functions is having more than one Entry Table,
and configuring the eTPU with the appropriate one for the application by changing field
ETPU_ECR[ETB]. Note that the engines can use different Entry Tables, with or without the
same set of Functions.
Encoded Encoded
Channel Channel
ETB[4:0] CFS[4:0] Conditions Conditions
(ETPU_ECR) (ETPU_CxCR) (C4-C1) (C0)
Note: Even if a Transition or Match Service Request is inhibited (by channel mode/state or SRI),
the Transition Detection and Match Recognition are taken into account for condition
encoding. That is, the MRLA/B and TDLA/B flags are used, not their respective Service
Requests.
Columns Host Request Bits, Link Request, MatchA/TransB, and MatchB/TransA determine
the type of event. A non-zero value in these columns represents the recognition of the
event, while “x” indicates that its recognition is irrelevant. Values 1 and 0 mean that event
was recognized or not, respectively. Note that Match and Transition events may occur and
not be recognized, and in this case it assumes value 0 for the condition encoding. The
recognition of such an occurred event depends on the channel mode assigned and other
conditions, as described in Section 24.5.5, Enhanced Channels.
The Host Service Request Bits column refers to the value written by the Host CPU to the
Host Service Request Register (ETPU_CxHSRR) of the Channel being serviced. Note that
the bits on this row are coded (3-bit representation). If the value of HSR is not zero, then the
Host actually requested service.
The Link Request column refers to the occurrence of a Channel Link request.
The MatchA/TransB column refers to the recognition of either a Match event specified by
MatchA channel register or the detection of a channel input signal event specified by the
IPACB configuration register (see Section , Pin Control Registers).
The MatchB/TransA column refers to the recognition of either a Match event specified by
MatchB channel register or the detection of a channel input signal event specified by the
IPACA configuration register (see Section , Pin Control Registers).
For the channel input signal, MatchA and MatchB provide double timeout conditions which
depend on the channel mode programming (see Section , Channel Modes). If the channel is
used for output only, there are no transition detections, so the MatchB/TransA column
represents only Match B, and MatchA/TransB column the Match A. In this case Match A and
Match B are separated to give better state resolution in double match output functions. For
more information about channel requests refer to Section 24.5.5, Enhanced Channels.
Besides those events, the following channel state conditions help to determine the Entry
Point:
1. Channel Flags 0 and 1: these are channel-internal flags (not in SPRAM) associated
with a channel. Their values are set by microcode (see Section , Channel flags
operations).
2. Input Pin state or Output Flip Flop: the state (0 or 1) of the channel input signal after the
Enhanced Filter (see Section , Enhanced Digital Filter – EDF), or the state driven to the
output signal. Which one (input or output) is used is selected by the ETPU_CxCR bit
ETPD.
The two Entry Table Condition encoding schemes combine events and state conditions
differently, as detailed in the following sections.
When HSR is 0, i.e., Host did not issue a Service Request to the channel, the other event
conditions, the input signal state and channel flags determine the Entry Point. Note that
channel flag 1 does not influence the encoding in this scheme.
Encoded Host
channel service Link MatchA / Match.2 / In/Output Channel Channel
No.
conditions request request TransB TransA pin state(1) flag1 flag0
[C4-C0] bits
0 00000 001 x x x 0 x 0
1 00001 001 x x x 0 x 1
2 00010 001 x x x 1 x 0
3 00011 001 x x x 1 x 1
4 00100 010 x x x x x x
5 00101 011 x x x x x x
6 00110 100 x x x x x x
7 00111 101 x x x x x x
8 01000 110 x x x x x x
9 01001 111 x x x x x x
10 01010 000 1 1 1 x x 0
11 01011 000 1 1 1 x x 1
12 01100 000 0 0 1 0 x 0
13 01101 000 0 0 1 0 x 1
14 01110 000 0 0 1 1 x 0
15 01111 000 0 0 1 1 x 1
16 10000 000 0 1 0 0 x 0
17 10001 000 0 1 0 0 x 1
18 10010 000 0 1 0 1 x 0
19 10011 000 0 1 0 1 x 1
20 10100 000 0 1 1 0 x 0
21 10101 000 0 1 1 0 x 1
22 10110 000 0 1 1 1 x 0
23 10111 000 0 1 1 1 x 1
Encoded Host
channel service Link MatchA / Match.2 / In/Output Channel Channel
No.
conditions request request TransB TransA pin state(1) flag1 flag0
[C4-C0] bits
24 11000 000 1 0 0 0 x 0
25 11001 000 1 0 0 0 x 1
26 11010 000 1 0 0 1 x 0
27 11011 000 1 0 0 1 x 1
28 11100 000 1 0 1 x x 0
29 11101 000 1 0 1 x x 1
30 11110 000 1 1 0 x x 0
31 11111 000 1 1 0 x x 1
1. The ETPU_CxCR bit ETPD selects between input and output pin state.
0 00000 01x x x x 0 x 0
1 00001 01x x x x 0 x 1
2 00010 01x x x x 1 x 0
3 00011 01x x x x 1 x 1
4 00100 10x/001 x x x x x x
5 00101 11x x x x x x x
6 00110 000 1 0 0 0 x x
7 00111 000 1 0 0 1 x x
8 01000 000 x 1 0 0 0 0
9 01001 000 x 1 0 0 0 1
10 01010 000 x 1 0 0 1 0
11 01011 000 x 1 0 0 1 1
12 01100 000 x 1 0 1 0 0
13 01101 000 x 1 0 1 0 1
14 01110 000 x 1 0 1 1 0
15 01111 000 x 1 0 1 1 1
16 10000 000 x 0 1 0 0 0
17 10001 000 x 0 1 0 0 1
18 10010 000 x 0 1 0 1 0
19 10011 000 x 0 1 0 1 1
20 10100 000 x 0 1 1 0 0
21 10101 000 x 0 1 1 0 1
22 10110 000 x 0 1 1 1 0
23 10111 000 x 0 1 1 1 1
24 11000 000 x 1 1 0 0 0
25 11001 000 x 1 1 0 0 1
26 11010 000 x 1 1 0 1 0
27 11011 000 x 1 1 0 1 1
28 11100 000 x 1 1 1 0 0
29 11101 000 x 1 1 1 0 1
30 11110 000 x 1 1 1 1 0
31 11111 000 x 1 1 1 1 1
1. The ETPU_CxCR bit ETPD selects between input and output pin state.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PP ME MICROCODE ADDRESS
PP—Preload Parameter
Field Description
0-13
Microcode Address
MICROCODE
This field specifies the microcode address on which the thread is to begin execution
ADDRESS
Field Description
Match Enable
ME specifies whether match event recognitions are enabled or disabled for the thread
associated with the entry point during the thread execution. If they are disabled, a match
recognition can only occur after channel service. For more details refer to Section , Match
Recognition.
Matches are disabled during the thread.
Matches are enabled during the thread.
14 The disabling of Match A/B recognition by MEF is dependent on IPACA/B configuration on the
ME serviced channel (see Section , Pin Control Registers). If IPACA = 1xx, Match A is not disabled
by ME = 0. Likewise, IPACB = 1xx overrides the effect of ME on Match B to “always on” If
IPACA/B = 0xx, Match A/B is disabled for one microcycle during TST (see Section , Time slot
transition) and is re-enabled when Entry Point is loaded, if ME = 1. Note that if the comparator is
in equal-only mode and the time base reaches the value of the Match register during the time
that recognition is disabled (beginning of TST, plus whole thread if ME = 0), the match
recognition is lost. If the comparator is in greater-equal mode, the match event may be
recognized after the disabling period if it satisfies the “greater-than” condition.
Preload Parameter
PP indicates which pair of channel parameters are loaded into registers P and DIOB from the
SPRAM prior to the execution of a thread. Preloading occurs during the time-slot transition
15 period (see Section , Time slot transition)
PP Microengine register P is preloaded from parameter 0 and DIOB from parameter 1.
Microengine register P is preloaded from parameter 2 and DIOB from parameter 3.
The parameter numbers are offsets from the channel parameter base address. For more info,
see Section , Parameter access.
The preload operation is 32-bit wide for P and 24-bit wide for DIOB. The P register is loaded
with all the 32-bit parameter. The DIOB register is loaded with the lower 24-bits of the
parameter. The microcode can switch at any time to access the lower 24-bits, upper byte, or
all the 32-bits of any parameter in the SPRAM. Preload of P-DIOB pair of parameters is
atomic with respect to Host and CDC accesses, and so are coherent with their dual-
parameter coherent transfers. For more details see Section 24.5.4, Parameter sharing and
coherency.
No instructions are executed at the engine where the time slot transition period occurs, but
the other engine can execute normally. Match A/B is unconditionally disabled on the second
TST microcycle, if IPACA/B = 0xx (respectively). During the rest of time slot transition,
match recognition can be disabled or not, depending on IPACA/B field and ME. See
Section , Match Recognition.
Time Slot Transition takes a minimum of 3 microcycles (6 system clocks), which may be
extended due to SPRAM arbitration wait-states for the first preload access (see Section ,
SPRAM Arbitration). When no wait-states are received (Figure 518), DIOB is preloaded
twice, one for each PP value, and the correct value remains in DIOB when the Entry Point is
loaded. Figure 519 and Figure 520 show the timing for one and two wait-states,
respectively.
Registers B, C, D and SR are not altered by TST and keep their values from the previous
thread. The values of registers A, MACL and MACH are not guaranteed at the thread start.
T2 T4 T2 T4 T2 T4 T2 T4 T2 T4 T2 T4 T2 T4
System Clock
CHAN Register X Y
END Signal
ERTA, ERTB
Preload
P Pentry point PP
μPC Y Entry Addr Y1st Inst Addr Y2nd Inst Addr Y 3rd Inst Addr Y4th Inst Addr
μINST END Entry Point Y 1st Inst Y 2nd Inst Y 3rd Inst
SPRAM Wait
MEF
X END TST1 TST2 TST3 Y 1st Inst Y 2nd Inst Y 3rd Inst
T2 T4 T2 T4 T2 T4 T2 T4 T2 T4 T2 T4 T2 T4
System Clock
CHAN Register X Y
END Signal
ERTA, ERTB
Preload
P Pentry point PP
SPRAM Wait
MEF
T2 T4 T2 T4 T2 T4 T2 T4 T2 T4 T2 T4 T2 T4
System Clock
CHAN Register X Y
END Signal
ERTA, ERTB
Preload
P Pentry point PP
SPRAM Wait
MEF
X END TST1 wait TST1 wait TST1 TST2 TST3 Y 1st Inst
Thread ending
Threads can finish by either:
● An instruction with the END field active (see Section , Ending current thread – END).
● A forced END by host writing to the ETPU_ECR bit FEND (see Section , ETPU_ECR –
eTPU Engine Configuration Register).
● A forced END caused by Watchdog timeout (see Section , Watchdog).
Watchdog
Each engine has a watchdog mechanism to prevent a thread or a sequence of threads from
running too long, impacting the latency of the other channel services. The watchdog is
configured through the register ETPU_WDTR (see Section , ETPU_WDTR – eTPU
Watchdog Timer Register). When the watchdog is enabled, an internal counter increments
on each microcycle when a thread is executing. If the count is greater than the value
specified in the ETPU_WDTR field WDCNT and a thread is still executing, the watchdog:
1. Forces an END of the thread
2. Issues a Global Exception and sets the ETPU_MCR bit WDTO (see Section ,
ETPU_MCR – eTPU Module Configuration Register).
The watchdog can be configured in one of the following modes, defining how the internal
watchdog count is reset:
● Thread Length Mode: the watchdog count is reset at the end of each thread.
● Busy Length Mode: the watchdog count is reset when the microengine goes idle. A
sequence of threads, one right after another, keeps the count running. The counter is
also reinitialized when a thread is forced to end, so that a new count begins if another
TST initiates at the following microcycle.
The following applies to the watchdog mechanism:
● Microcycles during TST and SDM access wait-states (on TST or instruction execution)
are counted.
● If the watchdog count equals WDCNT in the last microinstruction (with SDM wait-states
or not) of a thread servicing a channel.
● If the watchdog count expires (gets greater than WDCNT) during the TST, the thread is
forced end on its first instruction.
● The watchdog count does not wrap, so that a thread (in thread length mode) or a
thread sequence (in busy length mode) that lasts for more than the maximum value of
WDCNT does get a forced end.
Note: Watchdog must not be enabled when the microengine enters halt mode.
The counter does not run when the engine is stopped, and resets when the watchdog is
disabled.
transfer requests, indicate their status and service them. Interrupt and Data Transfer
requests have the same sets of registers and external signals, and are handled in the same
way. They differ only by the fact that Data Transfer Requests are also cleared by the
assertion of respective DMA completion acknowledge line. Data Transfer Requests can be
used as another source for Host interrupts at MCU integration if not used with a DMA.
Note: Interrupt and Data Transfer requests can be cleared even when engines are in Module
Disable Mode, through the Global Channel Registers, and also DMA completion for Data
Transfer requests.
Channel Interrupts and Data Transfer Requests can only be issued by eTPU microcode,
through one of the Channel Control instruction fields (see Section , Channel interrupt and
data transfer requests).
Both Channel Interrupt and Data Transfer requests can be individually enabled for each
channel.
eTPU Interrupt and Data Transfer Registers are mirrored in two organizations: grouped by
Channel and grouped by type (interrupt status, interrupt enable, data transfer status, data
transfer enable). This allows either “channel-oriented” or “bundled channel” Host interrupt
service schemes, or a combination of them. For a detailed description, refer to
Section 24.4.5, Channel registers layout, and Section 24.4.6, Global channel registers.
eTPU can also assert a Global Exception interrupt indicating a global illegal state. There
are three possible sources for a Global Exception:
● Execution of an illegal instruction by the microengine (see Section , Illegal Instructions).
This Global Exception source is flagged by the bits ILF1 and ILF2 in register
ETPU_MCR.
● An SCM signature mismatch detected by the Multiple Input Signature Calculator
(MISC). See Section , SCM Test – Multiple input signature calculator. This source is
flagged by the bit SCMMISF in register ETPU_MCR.
● Microcode request, through microinstruction field CIRC (see Section , Channel
interrupt and data transfer requests). This Global Exception source is flagged by bits
MGE1(Engine 1) and MGE2(Engine 2) in register ETPU_MCR. The cause of this illegal
state is application-dependent. The microcode may write an error code into the SPRAM
to indicate the cause of the exception, for instance.
● An SDM or SCM non-correctable error due to a microengine access
Global Exceptions cannot be directly disabled within eTPU, except by disabling its sources
(MISC and microcode), and it is cleared by writing 1 to the GEC bit in ETPU_MCR. Clearing
Global Exception clears all Global Exception source status bits (ILF1, ILF2, SCMMISF,
MGE1, MGE2). If GEC is written 1 at the same time any of the sources issues a Global
Exception, both the interrupt and the status bit of that source remains asserted. The
assertion of Global Exception by one of the sources above does not prevent the others from
asserting it too, so any number of them, in any combination, can be flagged.
Note: There can be a race between the clear of a Global Exception and occurrence of a new set
condition, such that the set happens just before the clear and cannot be sensed by the Host.
Therefore, Global Exception cannot be used as a normal interrupt source: it should only be
used for emergency procedures.
status can be checked by the Host in Channel Status register ETPU_CxSCR bit CIOS
(Section , ETPU_CxSCR – eTPU Channel x Status Control Register), mirrored in register
ETPU_CIOSR (Section , ETPU_CIOSR – eTPU Channel Interrupt Overflow Status
Register). Interrupt Overflow status is not cleared automatically when Interrupt Status is
cleared. The same mechanism and respective registers (ETPU_CDTROSR) are available
for Data Transfer Requests.
If interrupt is set and cleared at the same time, set prevails and overflow is not altered
(keeps the same state as it was before, asserted or not).
Global Exception has no overflow status.
Parameter access
Parameter concurrency
Host accesses to parameters may occur in parallel with eTPU Microengine accesses.
Readings taken from a group of parameters while they are being simultaneously updated
may lack coherency. eTPU provides mechanisms to ensure parameter coherency in
accesses from both Host side and Microengine side, including the use of a coherent dual-
parameter transfer mechanism, described in detail on Section 24.5.4, Parameter sharing
and coherency.
The same parameters written in the standard SPRAM address space are read from the PSE
area with the same offsets, and vice-versa. See Table 557 for a reference of the address
offsets in big and little endian machines.
This feature reliefs the Host from extending the signal of 24-bit eTPU parameters before
calculations, and from read-modify-write accesses to modify 24-bit parameters at the
SPRAM.
SPRAM organization
The SPRAM internal partition for channel allocation is dynamic and programmed in the
Channel Registers (see Section , ETPU_CxCR – eTPU Channel x Configuration Register).
The Host application is responsible for allocating a different parameter base address to
each channel during the initial eTPU configuration, and to allocate enough parameters for
the selected function, with no unintentional overlapping between parameters of different
functions.
Besides channel parameters, global areas may have to be allocated for parameters that are
shared by more than one channel, in one or both engines. Also, temporary parameter areas
should be reserved to be used by the coherent parameter transfer mechanisms described in
Section 24.5.4, Parameter sharing and coherency, if necessary.
HOST
ETPU_C0CR[CPBA]->0x014 ETPU_C0CR[CPBA]->0x010
ETPU_C1CR[CPBA]->0x018 ETPU_C1CR[CPBA]->0x150
ETPU_C2CR[CPBA]->0x168 ETPU_C2CR[CPBA]->0x160
0x6C0 ETPU2 Channel 31 Parameters0x1B0
ETPU_C3CR[CPBA]->0x172 ETPU_C3CR[CPBA]->0x00A
0xB00 0x2C0
ETPU_C30CR[CPBA]->0x180 ETPU2 Channel 2 Parameters ETPU_C30CR[CPBA]->0x100
ETPU_C31CR[CPBA]->0x16E 0xB40 0x2D0 ETPU_C31CR[CPBA]->0x0D8
ETPU1 Channel 2 Parameters
0xB70 ETPU1 Channel 31 Parameters0x2DC
0xB90 ETPU1 Channel 3 Parameters 0x2E4
0xC00 0x300
eTPU 1 ETPU1 Channel 30 Parameters eTPU 2
Host Service Request Register). There is one HSR field for each channel, so that writing to
it generates a Service Request to the respective channel only. A zero value in HSR means
no Host Service Request is pending for the channel.
HSR value turns to 000 automatically at the end of microengine service for that channel, but
only if the thread started due to an HSR.
The meaning of a non-zero HSR value depends on the Function assigned for the channel.
These bits are part of the conditions which select the Function entry point, and cannot be
tested by microcode. For more details, refer to Section , Entry points.
If Host writes HSR = 000 when a thread for the same channel is already running, the thread
runs until the end and is not aborted. If Host writes HSR>000 when an HSR thread for the
same channel is already running, HSR value resets at the end of the thread, and no new
HSR will be pending. If HSR is written before its value is resolved by the scheduler during
TST, the entry point will obey the new HSR value, and if this new value is 000, no service
thread is executed for the HSR.
The scheduling of HSRs is completely asynchronous with Host accesses, and there is no
race-free manner to change an HSR value before service thread execution, so generally the
safe way is: write HSR>0 only when HSR = 0. Error recovery or emergency host procedures
may require one to the safely abort service and reset channel state when an HSR is already
pending or executing. In these cases, the procedure below should be followed:
1. Disable the channel, writing CPR = 00 in register ETPU_CxCR. That will prevent any
pending HSR to be serviced.
2. Check if the channel is currently being serviced, reading its service status bit in register
ETPU_CSSR. If it is, wait for the time necessary to finish the service pending, or check
again until HSR == 0, or channel service bit in ETPU_CSSR is cleared.
3. Write HSR with the error recover value. This value should, possibly combined with
other host-defined flags in SPRAM or FM bits, initiate a channel reset or error recovery
procedure.
4. Re-enable the channel, writing CPR value > 0 in register ETPU_CxCR.
SCM access
Only Host can access SCM as data. Depending on the specific device, SCM may be
implemented as a RAM or ROM. This determines Host accesses to the SCM as shown
below.
clocks are automatically turned on if either one of the STF bits is negated or VIS turns to 1,
or SCMMISEN turns to 1.
SCM clocks are not turned off if any of the engines is not stopped, even if they are both
halted.
The conditions for SCM Clocks and MISC activation are summarized in Table 467.
0 x 0(1) 1 On On
0 x 0(1) 0 On off
x 0 0(1) 1 On On
x 0 0(1) 0 On off
1 1 0 0 off off
1 1 0 1 On On
1(2) 1(2) 1 0 On off
1(2) 1(2) 1 1 On off(3)
0 0 x 0 On off
0 0 x 1 On On
1. VIS cannot be written 1 if ETPU_ECR_1 bit STF = 0 or ETPU_ECR_2 bit STF = 0, and both HLTF bits are 0.
2. If VIS = 1, neither MDIS can be written 0 nor the engine leave Stop Mode, regardless of device stop request.
3. MISC resets and stays so when VIS = 1, restarting automatically when VIS goes 0 if SCMMISEN = 1.
24.5.3 Scheduler
Every Function is composed of one or more Threads. A Thread consists of a group of
instructions that, once begins execution, cannot be interrupted by host or channel events.
Each active channel intents to be serviced, being granted time for Thread execution. Since
one microengine handles several channels operating concurrently, the Function threads
must be executed serially.
v. Only part of these suggested operations can be parallelized in a single instruction, see Section ,
Microinstruction formats.
The task of the Scheduler is to recognize and prioritize the channels needing service and to
grant execution time to each channel. The time given to an individual Thread for execution
or service is called a Time Slot. The duration of a time slot is determined by the number of
instructions executed in the Thread plus SPRAM wait-states received, and varies in length.
At any time, an arbitrary number of channels can require service. To request service,
channel logic, eTPU microcode or Host application notifies the Scheduler by issuing a
Service Request.
w. Grant bits are also cleared in the next clock, when the service channel is chosen, or when the microengine is
idle, using the same scheme.
Priority level is determined based on the maximum latency desired for each channel. A
channel having a Function that requires the most frequent or more immediate service
should be allocated a high priority level.
The eTPU employs a primary and a secondary priority scheme. These two schemes
ensure frequent servicing of high-demand Functions and ensure a minimum time allocation
to all channels requesting service, regardless of their priority level. The primary scheme
prioritizes requesting channels that have different priority levels; the secondary scheme
prioritizes requesting channels that have the same priority level.
Initially, a channel requests service and is granted a time slot by the Scheduler: Service
Grant bit is asserted. If only high-level channels constantly receive service first because of
their priority level, middle- and low-level channels would only be serviced by default, i.e., if
no high-level channels request service. To ensure that each priority level receives an
opportunity for servicing, every time slot has a fixed priority level that the Scheduler honors
first. Divided into sets of seven, time slots are numbered from one to seven. Figure 522
illustrates the numbered time slots in sets of seven (fields A and B) and identifies their
assigned default priority level. The high level has more time slots than the middle and low
levels. Out of every seven time slots available, four are assigned to honor high-level
channels first, two are assigned to honor middle-level channels first, and one is assigned to
honor low-level channels first. Only one request (in each engine) is serviced per time slot.
When no channel requests service and the microengine is idle the priority scheme is
initialized to time slot one, to prevent priority inversion on the next request(x).
A B
1 2 3 4 5 6 7 1 2 3 4 5
H M H L H M H H M H L H
HIGH
MIDDLE
LOW
x. Priority inversion would occur in the following situation: no channel is requesting service, and the current time
slot is primarily assigned to a low-priority channel. If the Scheduler was not reset to time slot one and two
channels requested service at the same time, one with high priority and the other with low priority, the channel
to be serviced would be the low-priority channel.
When priority is passed to another level, that level is serviced and the fixed-priority-level
sequence is resumed with the next time slot.
Reset Slot
Number
Cycle A Cycle B Cycle C (truncated) Cycle D
SLOT Number 6 7 1 2 3 4 5 6 7 1 2 3 1 1 2 3 1
2 2 1
High Pend Count 0 2 1 0 2 1 0 1 0
Service High
1 2 1 1
Middle Pend Count 1 0 1 0 2 1 0 1 0 1 0
Service Middle
2 2
Low Pend Count 0 2 1 0 2 1 0
Service Low
SLOT ASSIGNMENTS:
DH, DH, DL - Default Service High, Middle or Low
X H>L, H>M, M>H, M>L - Priority Passing Scheme
- X New Service Requests Arrive at a Specific Priority Level
ID - Idle (no service request)
During time slot six no more high level requests are left, but two new middle-level requests
arrive, and there are also three low level pending service requests. Thus, time slot seven of
cycle B and time slot one of cycle C are passed to the middle-level which is the next priority
level after high. Time slots two and three of cycle C are passed to the low level which
contains the three remaining channel service requests. At time slot three of cycle C the last
low level request is serviced, and the Scheduler passes to idle state. At this point the cycle
C is truncated and the Scheduler passes to time slot one of cycle D.
An example of the priority passing disabling scheme is illustrated in Figure 524. The
sequence of service requests is the same as in the example of Figure 523, and although the
time slot incrementing differs, the priorities granted are the same for cycle B. Cycle C has
one of the low priority channels serviced before the second middle one. Cycle D, however,
no longer has the priority inversion.
In cycle B, after the time slot 2 only a low priority request remains, so the time slot count
advances directly to 4, which has a low priority assigned. Time slot keeps on 4 for the next
service, as only a low priority request remains also, and only time slot 4 is assigned to low.
Two high priority services contend for the next time slot 5 (assigned to High). The second
high priority channel is serviced on the next time slot, jumped to 7 because there is no
middle request, ending cycle B. Cycle C starts with time slot 2, as there are no high priority
requests and two middle and two low ones. After the first middle service, time slot count
skips 3 assigned to high (no high requests), and services a low priority channel on time slot
4. It follows the same scheme until there are no other requests and cycle C is truncated,
resetting the time slot counter to 1.
Cycle D begins with a middle request, jumping to time slot 2. During this service two
requests arrive, one high and one middle. Unlike what happened with priority passing, the
next serviced is the high priority channel, as the time slot increments to 3. The second
middle priority channel request in cycle D is finally serviced next, on time slot 5.
Reset Slot
Number
Cycle A Cycle B Cycle C (truncated) Cycle D
SLOT Number 6 7 1 2 4 4 5 7 2 4 6 4 1 2 3 5 1
2 2 1
High Pend Count 0 2 1 0 2 1 0 1 0
Service High
1 2 1 1
Middle Pend Count 1 0 1 0 2 1 0 1 0 1 0
Service Middle
2 2
Low Pend Count 0 2 1 0 2 1 0
Service Low
Slot Assignment DM DH DH DM DL DL DH DH DM DL DM DL ID DM DH DM ID
SLOT ASSIGNMENTS:
DH, DH, DL - Default Service High, Middle or Low
X
- X New Service Requests Arrive at a Specific Priority Level
ID - Idle (no service request)
grant bit is asserted. At the end of the thread, the service grant bit is negated (no more
requests of high priority level channels).
2. The Scheduler proceeds to time slot two, which has middle-level priority; however, no
middle-level channel is requesting service. Priority is passed to the high level, but no
high-level channel is requesting service; therefore, priority is passed again, and service
is granted to the single requesting low-level channel. Once serviced, this channel’s
grant bit is negated (no more low-level requests).
3. The Scheduler resumes with the fixed-priority sequence on time slot three; however, no
channels are requesting service. The Scheduler returns to time slot one, waiting for
requests.
4. Two high-level and two middle-level channels simultaneously request service. Being in
time slot one which is assigned high priority, the Scheduler finds the lowest numbered
high-level channel (secondary scheme) and selects it for service. This channel’s
service grant bit is asserted.
5. The Scheduler continues to time slot two, which has middle priority (primary scheme),
and allocates the slot to the lowest numbered middle-level channel requesting service
(secondary scheme). The Scheduler notes the still unserviced middle-level channel
and proceeds to time slot three.
6. Time slot three is allocated for high priority. The slot is allocated to the remaining
unserviced high-priority channel, and the channel’s service grant bit is asserted. The
Scheduler checks again at the end of the thread. All service grant bits of high-level
requested channels are asserted; therefore, all high-priority channels that requested
have been allocated execution time. Under this condition, all service grant bits of the
high-level serviced channels are negated. The Scheduler proceeds to time slot four.
7. Time slot four is allocated for low-priority channel; however, no low-level channel is
requesting service. Priority is passed to the high level, but no high-level channel is
requesting service; therefore, priority is passed again, and service is granted to the
remaining middle-level channel which requests service. This channel’s service grant bit
is asserted. The Scheduler checks again at the end of the thread. All grant bits of
middle-level requested channels are asserted; therefore, all middle-priority channels
have been allocated execution time. Under this condition, all service grant bits of the
middle-level serviced channels are negated. The Scheduler proceeds to time slot five.
Meanwhile a low priority channel requests service.
8. Time slot five is allocated for high-priority channels, but there are no more requests
from high-priority or middle priority channels. The single low-level channel which
required service is granted time slot five. Once serviced, the channel’s service grant bit
is asserted. Next, the service grant bit is negated (no more requests of low priority level
channels).
9. The Scheduler resumes with the fixed-priority sequence on time slot six; however, no
channels are requesting service. The Scheduler returns to time slot one and waits for
requests.
Microcycles
Time Slot 1 2 3 4 5 6
y. A microengine access to the SPRAM in the moment CDC is performing the transfer may suffer a maximum of
two wait-states.
Atomicity is not guaranteed if microengine enters halt state in the middle of a back-to-back
access (see Section , Microengine halt state): Host can access SPRAM while microengine
is halted in the middle of a back-to-back access.
z. The maximum number of Host wait states on CDC occurs when both microengines overlap their TSTs, delayed
3 system clocks from each other.
aa. One microcycle takes two system clocks. Microengines get wait-states in multiples of microcycles, while Host
and CDC wait-states are multiples of system clocks.
CDC Programming
The Coherent Dual-parameter Controller Register (see Section , ETPU_CDCR – eTPU
Coherent Dual-Parameter Controller Register) is used to configure and initiate CDC
transfers between the temporary area and channel parameter area. Host asserts STS bit in
order to start the data transfer. CDC then contends for the SPRAM and starts the transfer.
When the data transfer is complete, STS returns to 0. Host receives wait-states for writing
STS = 1 while CDC contends for SPRAM and during the transfer. The write access ends
when CDC finishes the transfer. Host receives wait-states during the CDC transfer. If Host
writes ETPU_CDCR with STS = 0 or does not write the STS byte, the CDC transfer does
not occur. CDC programming can be summarized as follows:
1. If it is a write transfer, i.e., from Host to channel, write the two parameters into
temporary area.
2. Write ETPU_CDCR with STS = 1 and the remaining CDC programming parameters:
parameter width (32 or 24 bits, field PWIDTH), transfer direction (read or write, field
WR), temporary parameter area base address (field PBBASE), and the absolute
addresses of the parameters to be transferred (concatenation of the fields CTBASE
and PARAM0/1).
3. If it is a read transfer, i.e., from channel to host, read the two parameters from the
temporary area into Host memory/registers.
Hardware Semaphores
eTPU provides Hardware Semaphores accessible by the Microengine only. It is the
responsibility of the application to ensure proper use of the semaphores (i.e., agree upon a
specific semaphore and use it properly, to ensure coherency).
The eTPU microinstruction set has support for locking and freeing the semaphores,
described in Section , Semaphore operations, and this is the only way to access them.
There are four semaphores available, which reduces the amount of collisions by assigning
unrelated data transfers to different semaphores. Semaphores are used for parameters
which can be shared by channels in different engines, and for engine-to-engine
synchronization. Semaphores are also the only way to ensure coherent access to
parameters shared between the two Microengines.
Attempting to lock one semaphore (even not successfully) frees the other locked by the
same engine, ensuring one can lock just one semaphore at a time. That prevents deadlock
conditions between the two engines.
Microcode END command or engine being in idle state (no thread executing) automatically
releases all semaphores from one engine side, even if a semaphore lock is done in parallel.
However, it is recommended to write the microcode in a way which locks semaphores for
the shortest required period, and frees them without waiting for the END command, to
improve the performance of the other microengine. Semaphores are free after reset. An
engine can only free a sempaphore locked by itself.
Semaphore lock requests are always non-blocking, in the sense that they do not suspend
the requester in case the semaphore is already locked. The semaphore status after the lock
request—indicating if it was successfully locked or not—must be tested through the SMLCK
microengine branch condition (see Section , Branch Conditions).
SPRAM Arbitration
Up to four entities can access SPRAM:
● Two Microengines (in a dual eTPU engine system)
● The Coherent Dual-parameter Controller (CDC)
● The Host CPU (direct memory-mapped access)
The following rules specify the access priorities for contended access. They keep
compatibility with the TPU3 dual-parameter access atomicity, but only between the
microengine and CDC (not Host accesses through slave bus).
1. Microengine accesses from the two eTPU engines are interleaved between each other,
but not with Host or CDC accesses;
2. The eTPU microengine(s) gives priority for SPRAM accesses to either the Host CPU or
the CDC under any of the following conditions:
a) The microengine has completed accessing the second parameter in a back-to-
back SPRAM access(ab).
b) The SPRAM was not accessed during the last arbitration slot for the microengine
and the host does not loose the access to the other engine in the current
arbitration slot(ac).
c) CDC is transferring data, after its first (read) access. Note that the CDC can be in
middle of a data transfer of another pair of parameters, unrelated to the ones that
microengine tries to access.
3. The eTPU microengine takes priority for SPRAM accesses under either of the following
conditions:
a) The Host CPU or CDC has done a data transfer during the last access arbitration
slot for the engineac. Also, the Host CPU does not hold a pending access against
the other eTPU microengine.
b) The microengine is arbitrating for the access of its second parameter in a back-to-
back accessab. All pairs of back-to-back parameter accesses are coherent with
respect to Host and CDC (not to the other microengine).
The direction (read or write) of any individual access by Host or microengine is irrelevant to
the arbitration. The use of Normal or PSE SPRAM area by the Host is also irrelevant to the
arbitration.
The first parameter preloading in a TST is considered first access by the arbiter, regardless
of any access made at the END microinstruction of the previous thread, i.e.: the last access
of a thread and the first preload are never considered a back-to-back access. On the other
hand, the TST preload accesses are considered back-to-back and are, therefore, atomic
with respect to Host or CDC.
Note: The Zero SPRAM operation (see Section , Zero SPRAM operation) is considered an
SPRAM access for arbitration purposes both on writes and reads; the fact that read SPRAM
data is discarded is irrelevant for arbitration.
ab. If microengine tries to access the SPRAM in the following microcycles, the third and fourth consecutive
accesses are considered the first and second of a new back-to-back dual access.
ac. The microengine access slot is between its own T4 and T2 edges (see Section 24.7.1, Microcycle and I/O
timing).
matches and transitions for the dual-action logic, where each event is able to block or
enable the next one. There is a full set of Channel Modes described in Section , Channel
Modes, exploring all the capabilities mentioned here.
Each channel has its own set of registers and flags. They are selected, and made
accessible to the Microengine, according to the value written into the microengine CHAN
Register that points to the desired channel. Every time the CHAN register is written, even if
with the same previous value, a channel is selected and its flags and registers are updated.
For further detail, see Section , Channel Selection Register – CHAN.
TCR1/2
TCR1
TCR2
ucode PDCM
ucode ERWA & CMW=1 ucode ERWB
MatchA MatchB
ucode
MTD TCCEA control
ER – Event Registers
Each channel contains two identical Event Register sets, named ERA and ERB,
corresponding to the two actions supported. Each Event Register set contains:
● A 24-bit Match register (Match A or Match B), which holds a match value. This value is
compared against the selected match time base (TCR1 or TCR2).
● A 24-bit Capture register (CaptureA or CaptureB), which samples the selected capture
time base (TCR1 or TCR2)
● A Time Base Selection register (TBSA or TBSB)
● A Match Recognition status flag (or latch) (MRLA or MRLB)
● A Match Recognition Enable latch (MRLEA or MRLEB)
● A Transition Detection flag (or latch) (TDLA or TDLB)
● A Transition Continuous Capture enable (TCCEA only)
ERA and ERB are associated with the first and second events in double action modes, not
necessarily in that order. The order of Match events associated with ERA and ERB depends
on the programmed channel mode, the MatchA and MatchB values, and the timebases
selected by TBSA and TBSB. Similarly, the order of Transition events associated with ERA
and ERB depends on the programmed channel mode, and the transition detection selected
by IPACA and IPACB.
These registers are directly or indirectly accessed by the microcode. TBSA and TBSB
registers are defined in Section , TBSA and TBSB – Time Base Selection Registers. The
other registers are explained in Section , Match Recognition and Section , Transition
Detection and Time Base Capture.
Access to the Event Registers is qualified by the channel currently selected by the
microengine (i.e., the channel value currently in the CHAN register). During the channel
transition period (automatic CHAN assignment), or whenever CHAN is written by
microcode, Capture values of the new selected channel are sampled into Microengine
registers ERTA and ERTB, therefore becoming visible to the microcode. At the same time,
updated values of MRLA, MRLB, TDLA and TDLB are sampled into the branch logic,
making the register values and the flags coherent with respect to each other and with the
thread selected by the Scheduler(ad).
Note: The Function Mode bits are also sampled from the Host interface on Time Slot Transition, so
that they remain constant to microengine even when Host changes them.
During service, the microcode can access updated values of the Event Registers of any
channel by writing the channel number to CHAN. Writing CHAN with the same value (CHAN
:= CHAN) updates ERTA and ERTB with the new captured values, the branch logic with
updated MRLA/B and TDLA/B flags. Writing CHAN with a different value does the same
with the values from the newly selected channel.
Match values are also accessed through ERTA and ERTB Microengine registers, which are
copied to/from the channel MatchA and MatchB registers by specific microinstruction
operations.
Microcode writes to the flags and selections (MRLA/B, TDLA/B and TBSA/B) are
immediately effective to the channel. The MRLA/B and TDLA/B branch conditions are also
ad. The thread selected is determined by the Entry Point which, in turn, is determined partially by the channel
latches. See Section , Entry point address generation.
immediately reset when their correspondent flags are reset by microcode. Match registers
are indirectly written by microcode through ERTA/B. MRLEA/B is unconditionally asserted
when respective Match register is updated from ERTA/B, and its negation is immediate.
Table 470 summarizes Event Registers accesses.
to ERTA/B on
CaptureA, CaptureB read through ERTA/B no T2ABD n.a.
CHAN assignment
ERWA,
to ERTA/B from ERTA/B CMW,
MatchA, MatchB read and write through ERTA/B n.a.
by microcode by microcode ERWB,
T4ABS
write to 0 (negate) directly; MRLE,
MRLEA, MRLEB write to 1 (assert) upon no immediate ERWA, 0, 0
MatchA/B update from ERTA/B ERWB
TBSA, 000,
TBSA, TBSB write only no immediate
TBSB 000
BCC (test)
flag test on branch, on CHAN MRLA,
MRLA, MRLB immediate 0, 0
write to 0 (negate) only assignment MRLB
(reset)
flag test on branch, on CHAN BCC (test)
TDLA, TDLB immediate 0, 0
write to 0 (negate) only assignment TDL (reset)
TCCEA write only no immediate MTD 0
1. See Section 24.5.9, Microinstruction set.
2. n.a. means that value of the register is undetermined after reset.
TBSA/B are written through the microcode fields TBSA/B (see Section , Comparator and
time base selection). Note that microcode field TBSA is also used to control the OBE pin
control register (see Section , Pin Control Registers), which is separate from the TBSA
register.
MRLA/B – Match Recognition Latches
See Section , MRLA/B – Match Recognition Latches.
MRLEA/B – Match Recognition Latch Enable
See Section , MRLEA/B – Match Recognition Latch Enable.
TDLA/B – Transition Detection Latch
See Section , TDLA/B – Transition Detect Latches.
TCCEA – Transition Continuous Capture Enable
See Section , TCCEA – Transition Continuous Capture Enable.
TBSA values 0
OBE write only no immediate
1000,1001 (negated)
on CHAN
PSS flag test on branch no BCC n.a.(2)
assignment
on CHAN
PRSS flag test on branch no BCC n.a.(3)
assignment
1. See Section 24.5.9, Microinstruction set.
2. PSS is PSTI or PSTO sampled on CHAN assignments and at thread start.
3. PRSS is PSTI sampled on channel service request.
Output Pin Control Logic and Pin State Output Register – PSTO
The output signal control logic uses OPACA/B, the Pre-defined Channel Mode (PDCM) and
the User Defined Channel Mode (UDCM), and the microcode Pin State Control (PSC and
PSCS) fields. It is responsible for setting the Pin State Output (PSTO) register to the
specified logic value required by microcode, by input events, or by Match A and/or Match B
events. The PSTO register stores the driven pin state determined by the Pin Control logic.
The Output Buffer Enable signal, if used at MCU integration, must be set by microcode
(using TBSA field) to make the pad propagate the PSTO register output to the actual pin.
PSTO register output also goes to the microengine branch logic, enabling branching on the
driven pin state (see Figure 528). PSTO is set to 0 on reset.
The PSC and PSCS microcode fields are used for setting the PSTO register to a fixed
value, or to the value specified by the OPACA or OPACB microcode field, as shown in
Table 474.
depends on the Pre-defined Channel Mode (PDCM) register and the User Defined Channel
Mode (UDCM). For details refer to Section , Match/Transition Pin Action Conflict Resolution.
PSTI and PSS – Pin State Input and Pin Sampled State Registers
During the time slot transition period, or whenever the CHAN register is written by
microcode, the filtered(ae) input signal PSTI or output signal PSTO (selected by the
ETPU_CxCR bit ETPD) is sampled into the branch logic as the PSS flag (see Figure 528
and Table 542). The microcode can then branch on either the currently driven (PSTO) or
input (PSTI) pin state, or on sampled pin state (PSS, which is stable as long as CHAN does
not change).
Note: If a transition occurs simultaneously (after the filter) with the CHAN assignment, PSS
samples the new pin value. Therefore, if TDLA/B is cleared simultaneously with the
assignment CHAN := CHAN, the occurrence of a transition at this very moment can still be
tested with PSS.
PRSS – Pin Request Service Sample
Channel logic can, depending on its state and programmed mode, request service to the
eTPU microengine (see Section 24.5.1, Functions and threads). When the channel logic
issues a service request, the filtered input signal PSTI is sampled into an internal channel
flag PRSS. There is one such PRSS flag for each channel (see Figure 528). Channel PRSS
keeps its value until all its service request sources are cleared and until a new service
request rises.
The channel PRSS flag is sampled into the branch logic as the PRSS flag (see Table 542)
during the time slot transition period, or whenever the CHAN register is written by
microcode.
OBE – Output Buffer Enable control latch
OBE latch drives the Output Buffer Enable signal, which can be used (depending on MCU
integration) to control the output signal pad driver. Channel output comes disabled from
reset. If ipp_obe_[1|2]([0-31])(af) from eTPU is used on MCU integration and a signal is
desired to be output in a channel, OBE signal must be set by microcode. Microcode field
TBSA is used to set/reset the Output Buffer Enable control when microcode field TBSA bit 3
is 1, according to Table 475
.
PRSS
Q D Q D
to branch logic
channel CDFC==01
Input Pad
CHAN Transition service request DIGITAL
0 FILTER SYNCH.
PSTI
0
PSS
Q D 1 channel input
to branch logic 1
ETPD
CHAN Transition fromETPU_CxCR
0
channel output Output Pad
S Q
OPOL 1 0
R
fromETPU_CxCR 1
ODIS
ODIS
OBE
S Q
from TBSA
R
OBE
to ETPU_CxCSR
defaults to
T4ABS, T4BBS,
CHAN read/write n.a.(2) n.a.(2) serviced channel
T2ABD
at thread start
1100
PDCM write only no immediate PDCM
(sm_st)
parameter value
from ERTA by
UDCM write only no CMW, ERWA defined at
microcode
integration
SRI write only no immediate MTD 1
branch flag test,
Flag1,Flag0 no immediate BCC,FLC 0, 0
write
1. See Section 24.5.9, Microinstruction set.
2. CHAN is common to all channels in the engine.
0000 em_b_st
0001 em_b_dt
0010 em_nb_st
0011 em_nb_dt
0100 m2_st
0101 m2_dt
0110 bm_st
0111 bm_dt
1000 m2_o_st
1001 m2_o_dt
1010 User Defined Channel Mode
1011 reserved
1100 sm_st(1)
1101 sm_dt
1110 sm_st_e
1111 n.a.(2)
1. This is the reset value, also compatible with TPU channel behavior.
2. This value is used as a neutral (do not change) value in the PDCM microinstruction field.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Rese Rese MCA M1E M1EM M1BM M2BM M2B T1BM T2BM TBM T1ET TCA
R MSR TSR
rved rved P T 2 2 1 T 1 1 2 2 P
W
MRLA/B or TDLA/B microcode branch tests nor Entry Table selection(ag). SRI is asserted
during reset and is controlled by microcode field MTD.
To unburden the microengine, SRI asserted configures a channel “dumb” regarding the
servicing of match and capture channel service requests. Even with SRI = 1, TDLA/B and
MRLA/B can still be asserted, and the level specified by the OPAC (Output Pin Action
Control) registers will be output to the pin.
Flag1,Flag0 – Channel “state resolution” flags
Each channel has a pair of flags, simply called Flag0 and Flag1, that can be set/reset by
microcode through microinstruction field FLC. FLC sets/resets Flag0/1 of the channel
selected by CHAN. These flags can be tested by microcode, and are also used to resolve
the microcode entry point for the channel service (see Section , Entry points). Flag0 and
Flag1 are, so, typically used for fast state resolution. FLC microinstruction field also allows
Flag1,Flag0 to be copied from selected bits of P register high byte, which is also meant to
be used to hold application state. Flag0 and Flag1 are both zero out of reset.
Match Recognition
The match operation is performed every microcycle by comparing the channel MatchA and
MatchB registers against the value of the TCR bus specified for each match. TCR1 or TCR2
bus is selected according to TBSA and TBSB fields. Both results have effect on the next
clock cycle (see Section 24.7.1, Microcycle and I/O timing).
A Match A/B event is qualified by a set of match enabling conditions to the Match
Recognition Registers MRLA/B. To recognize the match and assert these registers, the
following match enabling conditions are required:
● For IPACA/B = 0xx, Match Enable Flag (MEF), qualified by the channel currently being
serviced must be asserted. For IPACA/B = 1xx, Match A/B is always enabled (even
during Time Slot Transition (TST)), regardless of the state of the Match Enable Flag
(MEF). See Section , MEF – Match Enable Flag for the conditions of MEF assertion.
● Match Recognition Latch Enable 1/2 (MRLEA/B) is asserted. A match event
recognition may only occur if its corresponding MRLEA/B bit is set, which only happens
upon a write to a channel match register by the microcode, copied from ERTA/B.
MRLEA/B is negated when the respective match occurs or, in some double match
channel modes, when a match for the other Match register occurs. It ensures that the
greater-equal comparison will not cause additional matches(ah).
● In selected modes (see Section , Channel Modes), the particular conditions of MRL
and TDL flags of the other event, i.e:
– MRLA, TDLA enable or block MRLB;
– MRLB, TDLB enable or block MRLA.
● The respective MRL is negated.
● In selected modes (see Section , Channel Modes), the state of its respective TDL flag.
If the Match A and/or Match B conditions are met, the channel immediately forces the pin
state if specified by the appropriate OPACA/B registers (Output Pin Action Control 1/2) and,
in some cases, by IPACA/B registers. Refer to Section , IPACA,IPACB and OPACA,OPACB
– Input and Output Pin Action Control Registers.
ag. In TPU, SRI also blocked TDL and MDL branches and enabled any transition to capture time base.
ah. Microcode can also negate MRLEA/B.
If both Match A and Match B events occur at the same time, with conflicting pin actions, the
priority over the pin action is mode dependent. For further details on pin action resolution
refer to Section , Match/Transition Pin Action Conflict Resolution.
ai. Before that, microcode should also negate MRLA (MRLB), otherwise an old match may be recognized by the
scheduler and serviced as a new one
Note that a match event may be lost during the periods when MEF is negated only if:
● the match comparator is configured for “equal-only” behavior, and
● IPACA/B = 0xx, and
● TCR increments at the rate of system clock divided by 2 or faster.
When the comparator is configured as “greater-equal”, the match event that occurred when
MEF was negated may be recognized after MEF is asserted again, due to the “greater than”
condition.
aj. In TPU3, when TCR1 was counting at maximum rate of system clock divided by 2, the next value was
captured.
Transition A can still happen after the Match A, however, if MatchA register is
reprogrammed without clearing MRLA.
TDLA/B assertion conditions initiates a capture event of one or both selected TCR buses.
TDLA or TDLB transition event generates a Service Request, depending on channel mode,
previous events and the state of SRI. For more information on the service request scheme,
refer to Section , Entry point address generation, and Section , Channel Modes.
Assertion of TDLA/B occurs on either T2 or T4 positive edges. The capture event occurs on
the same clock, and captures the time base value present when TDLA/B was assertedaj.
TDLA and TDLB are negated during reset and may also be negated independently by
microcode. TDLA/B is reset by no way other than reset and microcode.
It is the transition from 0 to 1 in TDL that causes the Transition actions: even if TDL assert
conditions are satisfied, no action due to a Transition occurs if TDL was already set to 1.
However, if a Transition and a microoperation negating TDLs occur at the same time and
TDL was already negated, TDL negation by microcode overrides its assertion, but any
dependable captures and pin action occurs anyway.
Channel Modes
The Enhanced Channels support various modes of operation combining Match A/B
recognition and transition detection events which set MRLA/B and TDLA/B. The channel
mode is individually set for each channel by eTPU microcode, through the PDCM register
(see Section , PDCM – Predefined Channel Mode). The PDCM register selects among a set
of 13 predefined channel modes, and also a user-defined channel mode.
The order in which events occur, combined with assigned channel mode, establish which
following event detections are inhibited and/or enabled, as well as the actions taken: Time
Base capture, flag setting (MRLA/B, TDLA/B), match disabling (MRLEA/B), output signal
transition, and Service Request. Those channel mode characteristics are fixed in the
predefined modes, but can be individually programmed in the user-defined channel mode.
A generic description of channel modes from the usage point of view can be found in
Section , Channel modes overview. Each mode is named with a mnemonic acronym for
terse reference. The individual programmed attributes of the user-programmable channel
mode are also described.
The modes are used differently for input and output signals, as explained in Section ,
Predefined Channel Modes on Input Signal Processing, and Section , Channel Modes on
Output Signal Generation. Modes also allow combining input processing and output
ak. TCCEA provides compatibility with TPU when service request is inhibited.
Table 480. TCAP and TSR signals – Transition Captures and Service Requests
Value TCAP TSR
T2BM1
Transition B blocks Match A
(Transition B Blocks Match A)
T1ET2 Transition B is initially blocked, and Transition A
(Transition A Enables Transition B) enables Transition B
1. The initial condition of M1EM2 prevails over M1BM2, while M1BM2 blocking prevails over M1EM2
enabling, so that Match B stays always blocked when both M1BM2 and M1EM2 are active. This
combination is used in single-match modes (sm_*).
2. Blocking of one Match by the other is done through MRLEs.
3. Matches always block themselves by resetting their own MRLEs (Match A always blocks Match A, Match B
always blocks Match B)
TCAP TCAP
CaptureA MCAP
load enable MCAP
CaptureB
load enable
ucode TCCEA TCAP
MTD TCAP
S Q TS1 TS2
Trans.
ucode Event A sm_st_e
MTD
R
T2
MRLEA MRLEB Non-filtered Trans.
Detection B
IPACA[2] R R IPACB[2]
ucode
MEF sysclk clr MRLEA sysclk MEF
M1EM2
Comparator A Comparator B
MRLA MRLB
T1BM1 S Q Q S 0
1
T2BM1
ucode ucode
R R MRLB
MRLA TBM2
sysclk sysclk
M2BT
TSE1
TDLA TDLB TSE2
S Q Q S sm_st_e
Trans. Event A Trans. Event B
TSR
TS1 TS2
ucode TDL R R ucode TDL
sysclk sysclk
T1ET2
MSR[0]
TSR
(channels 1, 2 only)
TSR
TCCEA
Trans.Event A
CaptureB
load enable
CaptureA
TS1 Double Trans.
load enable TS2
MRLEA MRLEB
Q T4S ucode ERWA ucode ERWB T4S Q
Channel Channel
Service ucode clr Service
R ucode clr R
IPACA[2] MRLEA MRLEB IPACB[2]
MEF sysclk sysclk MEF
Comparator A Comparator B
MRLA MRLB
S Q Q S 0
1
ucode ucode
R R MRLB
Double Trans.
MRLA
T2 T2
TDLA TDLB
Trans. Event B
S Q Q S
Trans. Event A
TS1 TS2
Double Trans.
T2 T2
SRI
NOTE: all flip-flops but MRLE reset-dominant;
all control signals active high.
TCCEA
Trans.Event A
CaptureB
load enable
MRLEA MRLEB
Q T4S ucode ERWA ucode ERWB T4S Q
Comparator A Comparator B
MRLA MRLB
S Q Q S 0
1
ucode ucode
R R MRLB
Double Trans.
MRLA
T2 T2
TDLA TDLB
Trans. Event B
S Q Q S
Trans. Event A
TS1 TS2
Double Trans.
T2 T2
SRI
TCCEA
Trans.Event A
CaptureB
load enable
CaptureA
load enable
TS1 TS2 Double Trans.
MRLEA MRLEB
Q T4S ucode ERWA ucode ERWB T4S Q
Channel Channel
Service
R ucode clr R Service
IPACA[2] MRLEA ucode clr
MRLEB IPACB[2]
MEF sysclk sysclk MEF
Comparator A Comparator B
MRLA MRLB
S Q Q S 0
1
ucode ucode Double Trans.
R R MRLB
MRLA
T2 T2
TDLA TDLB
Trans. Event B
S Q Q S
Trans. Event A
TS1 TS2
Double Trans.
T2 T2
SRI
TCCEA
Trans.Event A
CaptureB
load enable
CaptureA TS1
load enable Double Trans.
Comparator A Comparator B
MRLA MRLB
0 S Q Q S 0
1 1
Double Trans. ucode ucode Double Trans.
R R MRLB
MRLA
T2 T2
TDLA TDLB
Trans. Event B
S Q Q S
Trans. Event A
TS1 TS2
Double Trans.
T2 T2
SRI
TCCEA
Trans.Event A
CaptureB
load enable
CaptureA
load enable
TS1 TS2 Double Trans.
MRLEA MRLEB
Q T4S ucode ERWA ucode ERWB T4S Q
Channel
Service ucode clr ucode clr Channel
R MRLEA MRLEB R Service
IPACA[2]
IPACB[2]
MEF sysclk sysclk MEF
Comparator A Comparator B
MRLA MRLB
S Q Q S 0
1
ucode ucode Double Trans.
R R MRLB
MRLA
T2 T2
TDLA TDLB
Trans. Event B
S Q Q S
Trans. Event A
TS1 TS2
Double Trans.
T2 T2
SRI
TCCEA
Trans.Event A
CaptureB
load enable
CaptureA
load enable
TS1 TS2 Double Trans.
MRLEA MRLEB
Q T4S ucode ERWA ucode ERWB T4S Q
TDLA TDLB
Trans. Event B
S Q Q S
Trans. Event A
TS1 TS2
Double Trans.
T2 T2
SRI
NOTE: all flip-flops but MRLE reset-dominant;
all control signals active high.
TCCEA
Trans.Event A
CaptureB
load enable
CaptureA Non-filtered Trans.
load enable TS1 event
MRLEA MRLEB
Q T4S ucode ERWA ucode ERWB T4S Q
Channel
Service ucode clr ucode clr
R MRLEA MRLEB R
IPACA[2]
MEF sysclk sysclk
Comparator A
MRLA MRLB
S Q Q S 0
ucode R ucode
MRLA R MRLB
T2 T2
TDLA TDLB
S Q Q S 0
Trans. Event A
TS1
T2 T2
SRI
NOTE: all flip-flops but MRLE reset-dominant;
all control signals active high.
service, the same code can check if the match recognition of the timed task occurred in this
period, by negating TDLA and writing to the CHAN register its own value (in order to update
the MRLA flag in the branch logic).
Either Match, Non Blocking, Double Transition (em_nb_dt)
In this mode each transition is related to one match recognition, and the match recognitions
are independent of each other. This mode can be used to give independent timeout
conditions for the first and the second signal transition recognitions, and call service in any
case of any timeout condition.
The first transition detection programmed in IPACA sets TDLA, captures its related
timebase, blocks Match A recognition and enables TDLB assertion. The second transition
detection programmed in IPACB sets TDLB, blocks Match B recognition, captures its related
timebase and generates a service request. Any match recognition that occurs captures its
related time base and generates a match service request, independent on the other match
recognition.
Match B Request, Single Transition (m2_st)
On an input signal, this mode provides an open window filter for a single signal transition.
MRLA assertion opens the window, and enables transition detection on TDLA from this time
on. MRLB assertion blocks Match A (by negating MRLEA), providing conditional window
opening, because transitions are indirectly blocked. It also generates service request, but if
it happens after Match A it does not block transitions, providing a non-blocking timeout
mechanism for the estimated signal transition time (typically it indicates a missing transition,
or mis-prediction of the transition time).
Transitions can be detected from the microcycle following MRLA assertion. The Transition A
detection asserts TDLA, blocks both matches, captures both timebases and generates
service request.
Using this mode, the channel can replace software open window filtering of qualified
transitions with the channel hardware window. The window opening and timeout can be
scheduled for any of the two time bases or combination of them. Typically, Match A will be
used to open a prediction window, and Match B will be used as a timeout condition which
does not close the prediction window. This configuration improves noise immunity from early
signal transitions, and reduces the probability for blocking late signal transitions due to
timeout mis-prediction.
Using these conditions, the microcode can easily resolve the state:
● If TDLA and MRLA are asserted and MRLB negated, signal transition is in the
expected range.
● If MRLA and MRLB are both asserted, and TDLA is asserted, the signal transition had
a timeout condition due to Match B mis-prediction.
● If MRLB is asserted and TDLA negated, a timeout condition occurred, and the
expected signal transition had not occurred yet.
● If MRLA is negated and MRLB is asserted, the conditional window did not open at all
(for example: a time window is open only after a specific angle, otherwise it is not
opened).
Match B Request, Double Transition (m2_dt)
This mode is used as an open window filter for two signal transitions. In this case the Match
A recognition opens the window (unless Match B recognition occurred first), and Match B
recognition blocks Match A and generates a match service request. It is similar to m2_st,
but in this case, it is the second transition that blocks Match B. MRLB assertion is a global
timeout condition for the two pulses. Like m2_st, MRLB can conditionally eliminate the
window from opening.
Using the TDLA, TDLB, MRLA and MRLB conditions, the microcode can easily resolve the
state, in a similar manner as m2_st, with additional information on the second transition
(TDLB).
Both Match Request, Single Transition (bm_st)
On an input signal, this is a double timeout mechanism on two different time bases. Both
match recognitions must occur before the signal transition to generate a match timeout
service request. Assertion of TDLA blocks both Match A and Match B recognitions, and
captures both time bases, indicating there was no double timeout condition from both time
bases.
Using the same timebase implements two timeout conditions, the first only sets its related
MRL and the second generates a service request. Using these flags allows the microcode to
check if one or both match recognitions precede the signal transition.
Both Match Request, Double Transition (bm_dt)
In this mode the first transition detection does not block matches, since both match
recognitions are required to generate a match service request. The second transition
detection asserts TDLB, blocks Match A and Match B, captures its related timebase and
generates transition service request. In this mode, a Match A recognition which occurs after
the assertion of TDLA does not capture a new value in CaptureA, to preserve the actual
signal transition time. Assertion of TDLA, however, always captures its related timebase.
This mode allows putting a double match timeout condition on the second transition.
Typically, a pulse trailing edge timing can be checked against two time bases, to indicate if
the pulse has not ended when both MRLA and MRLB are asserted. When a transition
service request is generated by TDLB assertion, the state of MRLA and MRLB indicates
which timeout condition occurred, if any.
Ordered Mode with Match B Request, Single Transition (m2_o_st)
On an input channel, this mode provides a closing window filter for a single signal transition.
Match A assertion captures its programmed time base in CaptureA, opens the filter window
(enables assertion of TDLA), and enables assertion of MRLB. Match B recognition captures
its related timebase, closes the window (disables assertion of TDLA) and generates a
service request. Due to Match A and Match B ordering, the window is opened for at least
one microcycle. Match B recognition indicates a window timeout condition which blocks late
signal transitions, outside the prediction window. Transition detection blocks both matches,
indicating the transition occurred inside the estimated window. Transitions can be detected
from the microcycle following MRLA assertion until the microcycle on which MRLB is
asserted. When TDLA is asserted inside the window range it disables both matches,
captures both time bases and generates a transition service request.
Using this mode, the channel can replace software window filtering of qualified transitions
with the channel hardware window. The window opening and closing time can be scheduled
for any of the two time bases or a combination of them.
Ordered Mode with Match B Request, Double Transition (m2_o_dt)
In this mode the channel logic implements a window filter for two detected signal transitions.
MRLA assertion captures its related timebase and enables the assertion of both TDLA and
TDLB. MRLB assertion captures its related timebase and disables the assertion of both
TDLA and TDLB. Transitions can be detected from the microcycle following MRLA assertion
until the microcycle on which MRLB is asserted. The first signal transition (following MRLA
assertion) asserts TDLA, captures its related timebase and enables assertion of TDLB. The
second signal transition detection asserts TDLB, blocks Match B, captures its related
timebase and generates the service request.
If both signal transitions occur inside the scheduled window, Match B recognition is blocked.
If one or both signal transitions do not occur inside the scheduled window, Match B
recognition generates a match service request and blocks further transition detections. The
microcode can resolve the state using MRLA, MRLB, TDLA and TDLB, which affect the
entry point selection.
Single Match Enhanced Mode (sm_st_e)
This is an enhanced single transition and single match channel mode which provides timing
information of the digital filter delay.
The CaptureA register captures the timebase selected by TBSA due to transition detection
specified by IPACA or match recognition, as in sm_st mode. Initially, the CaptureB register
continuously captures the unfiltered IPACB-selected signal transitions from the digital filter
input, directly from the signal synchronizer. When an IPACA-qualified, filtered transition
detection occurs, TDLA is set, MRLA assertion is blocked, and, in addition, captures into
CaptureB are also blocked. On service, CaptureA and CaptureB (copied into ERTA and
ERTB) holds the time of the qualified transition detection (ERTA), and the time of the last
signal transition at the input of the digital filter (ERTB). Subtracting the time in ERTB from
the time in ERTA provides the delay of the digital filter.
In a quiet environment, the two captures provide the accurate delay of the digital filter in
granularity of two system clocks. In a noisy environment, false transitions may be detected
at the input of the digital filter due to the noise, and the delay measurement may be reduced,
especially if IPACB selects both edge detection. The microcode can do sanity checks on this
value to recognize noise effects (for example: calculated delay is less than the minimum
delay of the digital filter).
Note: In Channel 0, if ETPU_TBCR field AM = 01 (Angle Mode), the unfiltered input comes from
TCRCLK input and the filtered input comes from the TCRCLK filter output. The edge is
selected by IPACA/B, and is independent of the edge selection by ETPU_TBCR field
TCR2CTL.
Single Match, Single Transition (sm_st)
In this mode the channel logic is functionally back-compatible to a TPU3 single action
channel, but a match or transition detection captures at once both timebases. The mode
recognizes a single transition with single match timeout. Either TDLA or MRLA generates
service request and captures both timebases. Assertion of TDLA blocks future assertions of
MRLA.
Single Match, Double Transition (sm_dt)
In this mode, the first transition detection asserts TDLA, captures a timebase in CaptureA
and enables TDLB. The second signal transition asserts TDLB, blocks Match A, captures a
timebase in CaptureB and generates a service request.
Match A (before TDLB) captures into CaptureB the timebase selected by TBSA, in order not
to overwrite the captured value of TDLA.
This mode is used for scheduling one timeout condition on two input signal transitions (pulse
timeout).
match recognitions. For example, both match recognitions can negate the signal, and
service request is generated after both conditions are met. This mechanism can set two
conditions to do a required pin action, and the first recognition changes the signal, but
service is called only after both conditions occur.
When using the same time base, these modes can generate narrow pulses in any required
order. For example, in a PWM function, when duty cycle is below 50% the function can get
service on the low time and program the pulse to the required duty cycle of the high time.
When duty cycle is equal or above 50%, the function can get service on the high time and
program a negative pulse with the width of the required low time. To switch between the two
states the function can program once the same transition time to MatchA and Match B with
a required pin action, and on the next service program double match for the new state.
Another usage is generating a required pin action on one programmed time and service
request later on another time, after the second match recognition occurs, or capturing some
timebase on one time and generating a required signal transition and service request later.
Ordered Modes with Match B Request (m2_o_st, m2_o_dt)
The order of the match recognitions imply that OPACA register programmed pin action
always precede the OPACB register pin action. Setting OPACA to no-action, based on the
greater-equal comparator, enables using Match A on one time base to delay the signal
effect of Match B on the other time base. This method implements a conditional pulse
extension or conditional delay on signal transition.
These modes can also be used for deferred pulse generation with microcode service
request after its trailing edge (if Match A condition comes after Match B condition). Another
option is having Match A recognition associated with output pin actions and Match B
recognition for a timed microcode task which has to be scheduled at a programmed time
which may be delayed by the Match A pin action.
Single Match Modes (sm_st, sm_dt, sm_st_e)
There is no difference between plain and enhanced single match modes on an output
signal.
In this mode the channel logic is functionally back-compatible to a TPU3 single match output
channel. Match A recognition generates service request and sets the pin state according to
OPACA register. It captures at once the timebase selected by TBSA in CaptureA and the
timebase selected by TBSB in CaptureB.
Match/Transition Pin Action Conflict Resolution
In output signals, matches and/or transitions automatically cause pin actions defined by the
OPACA/B and/or IPACA/B channel control registers (see Section , Pin Control Registers).
Simultaneous matches/transitions may be associated with different, possibly contradictory,
pin actions. These conflicts are resolved according to the Table 485.
If an OPACA/B = 000 (no action) prevails over non-zero OPAC according to Table 485, then
if Match A/Transition A and Match B/Transition B occur simultaneously, no output pin action
occurs, that is: a match on the action logic with OPAC = 000 inhibits simultaneous actions of
the other OPAC, if prevailing according to Table 485. That also applies when output actions
are caused by inputs (OPAC = 1xx).
output short
Input signal
Match A
Output signal
Input signal
Output signal
Input signal
Output signal
Channel Link
A channel can issue service requests to other channels through microcode, by assigning to
the write-only microengine register LINK (refer to Section , LINK Register) a value which
specifies the target channel of the Link Service Request, as shown in Figure 539.
Writing to the LINK register issues a link request to the target channel, setting its LSR flag.
Each channel has its own LSR flag, which can be tested as a microcode branch condition
(see Section , Conditional/Unconditional branch) and reset through the microcode field LSR
(see Section , Clear link service request). The link branch condition samples, at the TST
start, the value used to calculate the Entry Point.
Writing LINK with another channel target value in the same thread issues a Link Service
Request to the new target, without negating the service request to the former one. This
allows a channel to issue service requests to any number of channels, including itself.
Neither LINK nor LSR microengine accesses are qualified by the CHAN register, i.e., they
always access the serviced channel LINK and LSR, regardless of the value written in
CHAN.
If microcode executes an instruction with field LSR = 0 (clear Link Service Request), the link
branch condition is cleared. However, the link service request itself is cleared only if no link
was received by the serviced channel during the same thread(al). If microengine clears LSR
of its channel and, simultaneously, Link Service Request is issued to the current serviced
channel, the branch condition is cleared but the link service request remains pending.
7 6 5 4 3 2 1 0
Engine Selection reserved(1) Channel Number
1. Reserved bit must be written 0.
00 this Engine
01 Engine 1
10(1) Engine 2
11(1) the other Engine
1. Ignored in single-engine eTPU
The engine which receives the link cannot distinguish where the link comes from, except by
some user-programmed protocol using SPRAM parameters. All links are negated on reset.
al. That can only happen if the link service request came from the other engine or from the serviced channel itself.
Two-Sample Mode
In this mode the EDF works like the TPU2/3 digital filter. It uses the filter clock which is the
system clock divided by (2, 4, 8,.., 256) as a sampling clock. The filter clock is selected by
the FPSCK field in the Engine Configuration Register (ETPU_ECR) (see Section ,
ETPU_ECR – eTPU Engine Configuration Register). The EDF compares two consecutive
samples. If both samples have the same value, the input signal state is updated. Note that
when the FPSCK field selects the system clock divided by two, the EDF works like the TPU1
four-clock digital filter.
Three-Sample Mode
In this mode, like in the TPU2/3 mode, the EDF uses the filter clock as a sampling clock.
The EDF compares three consecutive samples. If all three samples have the same value,
the input signal state is updated.
The Three-Sample mode gives more signal latency than the Two-Sample mode, but also
better noise immunity and better ratio between minimum detected signal pulse to maximum
filtered noise pulse. When a certain filter clock frequency is selected for Two-sample mode,
double filter clock frequency can be selected to get better latency in Three-sample mode.
Continuous Mode
In this mode the EDF compares all the values sampled at the rate of system clock divided
by two, between two consecutive filter clock pulses. If the signal is continuously stable for
the entire digital filter clock period (i.e all the samples have the same signal value), the input
signal state is updated.
This method gives the same latency and the same ratio between minimum detected signal
pulse to maximum filtered noise pulse, as the Two-Sample mode, as long as there is no
noise. Each sampled noise delays the signal transition detection by at least a whole digital
filter clock period.
The Continuous mode gives the best noise immunity by comparing multiple samples of the
noise. On the other hand, when a short noise pulse appears in the middle of the filter clock
period at the same time of a real signal transition, the Continuous mode may reject a real
signal transition and delay the response to the first filter clock period in which the signal is
continuously stable. This may add to the latency and also to the minimum detected signal
pulse in a noisy environment.
Bypass Mode
In bypass mode the signal that feeds the edge detection comes directly from the output of
the synchronizer, not filtered. Bypass mode automatically makes the channel logic work in
T2/T4 timing mode (see Section , Channel Timing Modes).
Note: If the ETPU_TBCR field TCRCF selects the filter clock of the channels (see Section ,
ETPU_TBCR – eTPU Time Base Configuration Register), the TCRCLK filter will be clocked
as if FCSS = 0 always dividing system clock /2 using FPSCK, regardless if FCSS is 0 or 1.
T2 Channel Timing
In T2 timing mode the channel event state can only be updated every two system clocks
(see Figure 566). Pin state, TDLs, MRLs and Capture registers are updated on the
microengine’s T2 clock phase. MRLE clears also happen on T2, but MRLE setting occurs
on T4, together with the Match register write by microcode (see Section , Write Channel
Match and UDCM Registers).
Channels work in T2 timing mode when all the following conditions are true:
● ETPU_TBCR bit TCR1CS is 0 (see Section , ETPU_TBCR – eTPU Time Base
Configuration Register).
● the Enhanced Digital Filter is not configured as bypass (see Section , Enhanced Digital
Filter – EDF).
● ETPU_ECR bit FCSS is 0 (see Section , Filter Clock Prescaler).
imported (STAC Clients), these registers are written from the STAC bus and can only be
read by microcode. For information on STAC bus protocol and definition of STAC modules
refer to IPI STAC and Section , STAC Interface.
The TCR2 counters between the two engines are out of phase by 1 system clock, even
when Time Bases are shared between them through STAC. It also applies to TCR1
counters if ETPU_TBCR[TCR1CS] = 0, but they can be in phase otherwise.
TCRCLK Prescaler
Input Originated
In TCRCLK pin, 00
after the filter Peripheral Timebase Clock
01 TCR1
1 Prescaler TCR1
10 1,2,3,..,256
System 0
div 2 11
Clock no clock
8
TCR1CS TCR1P
TCR1CTL Red Line (STAC) bus
SYSTEM FILTER
CLOCK/2 CLOCK
GEN. eTPU ANGLE
to all channel filter
clocks COUNTER
(EAC)
ETPU_TBCR[TCRCF1]
ETPU_TBCR[TCRCF0] 0 1 ETPU_TBCRETPU_TBCR
[TCR2CTL] [TCR2P]
FILTER CLOCK
3 6
Integr.
PROGRAMMABLE 1 Angle Mode
TCRCLK DIGITAL
Pin SYNC. 2 samp 011 ETPU_TBCR[AM]
FILTER 0
010
TCR2 0 23
001 PRESC. 1
TCR2
000 1, 2, . . . , 64 0
SYSTEM CLK / 8
100
PERIPHERAL TIMEBASE 101
CLOCK STAC bus
no clock 111
Note that when TCR2 works in Angle Mode, it does not count directly from the TCR2 clock
input which indicates tooth signal transition. Its Angle counter is controlled by the Count
Control and High Rate logic (see Section , Count control and high rate logic), which provides
the interpolated pin position, and handle cases of missing tooth, acceleration, de-
acceleration and mechanical corrections.
The EAC uses the TCRCLK signal to get the tooth transition indications. The TCR2CTL field
in ETPU_TBCR has to be set for the appropriate tooth edge detection rise, fall, “rise-and-
fall” or none. TCR2 count clock comes from the EAC control and not directly from the
physical tooth. This way the EAC control processes the signal transitions and handles
missing teeth and flywheel mechanical corrections. Note that when TCR2CTL selects
“none” for tooth edge selection, the TCR2 is not necessarily frozen, but can still be
incremented by the EAC logic.
In Angle Mode, eTPU channel 0, 1 or 2 operation is combined with the EAC operation.
When channel 0 is selected for EAC operation, the TCRCLK digital filter is used both by the
EAC and by channel 0 to get full synchronization between the two logics.
The eTPU Angle Counter (EAC) logic runs continuously and updates the TCR2 Angle
counter, eliminating the microcode latency in updating the TCR2 value.
STAC Interface
Both time bases TCR1 and TCR2 can be shared between the engines and with other blocks
in the same MCU. Each one of both eTPU engines can drive their time bases to the STAC
(Shared Time and Count) bus, acting as a server, while any other block can capture the
value into its resources and behave like a client. For further reference about the STAC bus
operation refer to Section , ETPU_REDCR – eTPU STAC Configuration Register.
The eTPU can export to the STAC bus or import from the STAC bus the following internal
resources:
● TCR1: Can be exported to or imported from the STAC bus. TCR1 can only be imported
from STAC bus when the engine is not in Angle Mode. When TCR1 is imported from
the STAC bus, it becomes read-only for the microcode and reflects the imported
values. For details refer to Section , Timer Count Register 1 – TCR1.
● TCR2: Can be exported to or imported from the STAC bus. TCR2 can only be imported
from the STAC bus when engine is not in Angle Mode. When TCR2 is imported from
the STAC bus, it becomes read-only for the microcode, and reflects the imported
values. When exported to the STAC bus, TCR2 can work in either Angle Mode or as a
free running counter associated with the TCRCLK signal. For details refer to
Section 24.5.7, EAC – eTPU angle counter.
Proper configuration of the following bits is necessary to determine what can drive the STAC
bus: ETPU_TBCR[AM] and ETPU_REDCR[REN2, RSC2], according to Table 488.
00 0x (disabled) TCR2/Time x
01, 10 or 11 0x (disabled) TCR2/Angle x
00 11 (Server) TCR2/Time TCR2/Time
Note that Angle Mode is not available for STAC bus clients: configuring both at the same
time brings unpredictable results. When TCR2 is a stand-alone counter or a STAC Bus
server, the same value that is driven to the internal TCR2 bus is also exported to the STAC
bus (either Time Count or Angle).
STAC bus configuration is provided by the ETPU_REDCR bits REN1/2 and RSC1/2.
REN1/2 enable the STAC interface to interact with the resource (either TCR1 or TCR2 bus).
RSC1/2 configure the resource (either TCR1 or TCR2 bus) as Server or Client.
Each time base / angle count resource from each engine receives a unique 4-bit hard-wired
address that identifies it as a potential server. This address is used by the STAC Controller
to coordinate which resource will drive the bus at a given STAC time-slot. For any time-slot
there is a server driving the bus upon selection of the STAC Controller, and there may be a
client linked to that server by the ETPU_REDCR bits SRV1/2 on each engine. When the
server address on the STAC bus matches the value in SRV1/2, the client will load the STAC
information into the appropriate resource. For information on eTPU STAC Bus configuration
refer to Section , ETPU_REDCR – eTPU STAC Configuration Register.
The eTPU does not include a STAC Controller module, which is instantiated once in the
system integration.
Note: Setting a timebase as client of itself is forbidden, and results are unpredictable.
eTPU SYSTEM
ETPU_MCR[GTBE]
etpu_gtbe_in etpu_gtbe_out
eTPU SYSTEM
MODULE X
ETPU_MCR[GTBE]
SYNCHRONIZATION
BETWEEN eTPU TIME
SYNCHRONIZATION
BASES ONLY LOGIC
the tooth period, for predicting the period of the next tooth. The tooth period is partitioned
into a programmable number of Angle Ticks. The eTPU application will use the divider in
the MAC/Divide unit to calculate an integer and a fraction part of the angle tick such that the
full tooth period gets the correct programmed number of angle ticks with no accumulated
error.
Each single tooth can be divided in angle ticks, up to 1024. In a 60-tooth flywheel, 128 Angle
Ticks per tooth provide resolution of ~0.05 degrees per tick, which meets the accuracy
requirement of 0.1 degrees in current automotive applications.
The measurement of one tooth in angle ticks is independent on engine RPM; it is the tooth
period itself (and the corresponding tick period) that is re-calculated for each new tooth,
based on the difference between the estimated tooth and the actual detection.
For these applications, one of the eTPU channels 0, 1 or 2 is dedicated to service the
physical tooth detection. Channel 0 shares the same filtered input as the TCRCLK signal to
get the same timing as the EAC. The TCRCLK edge detection is selected by ETPU_TBCR
field TCR2CTL for the EAC, and by IPACA/B on channel 0, which must be set to detect the
same edge(s). When channels 1 or 2 are selected to work with the EAC, IPACA/B is used to
select the tooth signal edge detection for both the channel and the EAC, and the tooth signal
that feeds the EAC is the same filtered input which feeds the channel.
Channel 0, 1 or 2 generates the signal transition service request, and can also be used for
generation of a window filter on this transition, to qualify TCR2 clocks. For this purpose, the
selected channel should be configured with double match window filtering mode (refer to
Section , Channel Modes). Depending on the channel mode set for the channel, Match A
recognition opens the window, and Match B recognition may close it or leave it open. See
Section , Angle logic and channel modes, for details. Match B also generates a time-out
service request. Its input signal transition comes from the tooth. The window can be defined
by microcode to open at a predefined point inside the tooth period, and stay open for a
desired percentage to the tooth period. The window can be measured in angle or time This
method improves the noise immunity by allowing transition detection only on an expected
period, a feature which was software responsibility in previous TPU versions.
The EAC supports deceleration, acceleration, last tooth and missing tooth scenarios. The
large range of angle ticks per tooth can be used to cover longer tick counts caused by one
or more missing teeth, or to provide extra resolution for future application requirements. In
case of a missing tooth, the EAC can be configured to insert a dummy tooth or to simply
measure a longer tooth.
Figure 547 shows the block diagram of the Angle Counter system. TCR1 is used as a time
base which measures the tooth period and is used for partitioning the period to angle ticks.
is detected (see Section , High rate mode (Acceleration), and Section , TPR buffering),
which means that changes to this register may take effect only for the next tooth.
Refer to Section , Count control and high rate logic, and to Section , Special cases of
missing teeth and last tooth, until Section , Handling false tooth detection, for a detailed
explanation about the use of this register. Figure 543 provides a detailed description of the
TPR.
Several conflict issues on TPR writes are explained in Section , Special TPR write cases.
15 14 13 12 1110 9 8 7 6 5 4 3 2 1 0
MISS TPR TICK
R LAST IPH HOLD
CNT 10 S
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Field Description
[9:0]
In High Rate mode (see Section , High rate mode (Acceleration)), TPR writes are immediately
TICKS
effective only for bits IPH and HOLD. All other fields changes are “buffered” and become effective
when EAC leaves High Rate mode. See also Section , Special TPR write cases.
Bits LAST, IPH and HOLD must not be asserted all at once.
TPR register
10
Reserved bit. In Angle Mode, must always be written 0 by the user, but holds the value written, so
TPR
that TPR can be used as a general purpose register bit when angle mode is off.
Field Description
IPH reads as 1 in the next microinstruction after it is asserted, negating subsequently. However, it
can be set twice in two consecutive microinstructions to generate two teeth and make the EAC go
from Halt to Normal to High Rate Mode.
If the tooth is detected or inserted before the missing tooth tick count completes (going High Rate
mode, see Section , High rate mode (Acceleration)), MISSCNT resets immediately, but missing
teeth count continues in High Rate mode (see Section , TPR buffering).
1. Missing a physical tooth naturally causes EAC to get into Halt mode.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R 0 0 0 0 0 0 0 0
Angle Tick Counter[23:16]
W
Reset 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
Angle Tick Counter[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 30 29 26 27 26 25 24 23 22 21 20 19 18 17 16
R 0 0 0 0 0 0 0 0
INTEGER[14:7]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
INTEGER[6:0] FRACTION
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
TCR2
TCR2
COUNTER
Angle Tick
MICROCODE Generator
TICKS
Estimated Tooth Time
TCR1 clock
ESTIMATED ESTIMATED
EAC CHANNEL EAC CHANNEL TOOTH EAC CHANNEL EAC CHANNEL TOOTH
CAPTURE1:=TCR1 CAPTURE1:=TCR1 TIME TIME
(end of ticks) CAPTURE1:=TCR1 CAPTURE1:=TCR1 (end of ticks)
TCR1<estimated tooth ti
TCR1>estimated tooth time
PHYSICAL TOOTH
0 N 0 N0 N 0
Microengine A-Bus
24
24
Angle Tick Generator
Tick Rate Register
Integer Fraction
24
15
9
9
Carry
+
TCR1 9
Clock
Din Hold
Fraction Accumulator
Tick Prescaler Load
H.Rate
9
AM (ETPU_TBCR)
Angle Mode
Angle Tick
Tooth Tick Counter TCR2
Tooth
10
Angle Tick Inc/Hold
Ticks
Tooth Program Register Angle Tick Count
10 Count Contol &
High Rate Logic 24
2 Dummy Tooth Count 24
TCR2 Reset
Last Tooth
Angle Mode
AM (ETPU_TBCR) TCR2 Time Base
am. In High-rate mode, the tick keeps being updated at the rate of system clock/8 until it goes back to Normal
mode, when the new TRR value is used.
an. The tooth period (TCR1ToothPeriod) is not, in general, the value of estimated tooth time. It is obtained by
microcode by subtracting TCR1 values between two teeth detections. Its comparison with the estimated tooth
time indicates acceleration (if minor) or deceleration (if greater) to the microcode.
P1 P2 P3
Tooth Signal
Glitch rejected
Acceptance window
from EAC channel
(modes m2_o_st/dt)
EAC Channel TCR1 = 1000 TCR1 = 1023 1046
Capture
Angle Tick
TCR1 Clocks 2 4 6 9 11 13 16 18 20 23
Fraction 0 3 6 9 2 5 8 1 4 7 0 3 6 9 2 5 8 1 4 7 0 3 6
Accumulator
TCR2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
The Count Control and High Rate Logic handles deceleration, acceleration, missing teeth
and last tooth. On High Rate (acceleration) it ensures that the angle bus scans all valid
angle values in a rate which can be traced by the STAC bus. This operation enables
external STAC clients (if TCR2 is a STAC server) or channels working in “equal-only”
comparator mode to match the TCR2 exported angle information in “equal” mode, in an
exact match.
Because the eTPU channels are capable of capturing either TCR1 or TCR2 due to signal
transition, the microcode can get either the angle or time of the physical pin transition. Since
the EAC channel (0, 1 or 2) is connected to the physical tooth, the microcode can get the
EAC error in angle domain (tooth appears at the wrong angle) or time domain (physical
tooth captured time into the EAC channel, relative to the estimated tooth time). Note that in
angle mode, the transition detect logic of the channel 0, if selected as the EAC channel, is
fed from the digital filter of the TCRCLK signal, and not from the channel 0 internal digital
filter. This ensures synchronous operation of channel 0 and the EAC hardware.
Another feature of the eTPU channel, when working in Single Match And Single Transition
Enhanced Mode (refer to Section , Single Match Enhanced Mode (sm_st_e)), is capturing a
single time base due to signal transition before and after the digital filter. This option allows
subtracting the digital filter delay to get accurate signal transition timing on the channel. This
way, the TCRCLK signal may be programmed with a slow and reliable digital filter, and get
accurate time measurement of the digital filter delay.
To assert the end of the estimated tooth period the Count Control and High Rate logic
compares the TICKS field in TPR (refer to Section , Angle mode registers) with the current
value of the tooth tick counter. When the Tooth Tick value is greater or equal to TICKS, it
determines the end of the estimated tooth period. On acceleration this event occurs during
High Rate mode operation, after the arrival of a physical tooth. In deceleration, this event
occurs during Normal Mode, before the arrival of a physical tooth. On constant angular
velocity, this event appears together with the arrival of a physical tooth.
The following sections describe the operation of the Counter Control and High Rate logic.
Normal mode
In Normal mode the Counter Control logic advances TCR2 and the Tooth Tick counter as if
the engine has a constant speed during the tooth period. It receives the angle ticks from the
Angle Tick Generator in an average rate which is determined by the Tooth Rate Register
(TRR). This is the reset mode.
When the Tooth Tick Counter is about to reach the last value effectively stored in TPR field
TICKS plus one, the hardware detects the end of the estimated tooth period. If the physical
tooth and the estimated tooth arrive at the same time the EAC stays in Normal mode, the
Tooth Tick Counter is reset, and TCR2 is incremented (depending on TPR bits LAST and
MISSCNT). If the physical tooth and the estimated tooth do not arrive at the same time,
either acceleration or deceleration is detected, and the EAC switches to the proper mode.
See Figure 549 for a detailed diagram of Normal Mode behavior.
The microcode which services the EAC channel physical tooth transition may update TRR
according to various conditions to give the best estimation of the current tooth period,
according to the previous tooth period and other engine parameters.
P1 P2 P3 P4
Tooth Signal
Angle Tick
y y+n y+n+1
TCR2 - continuous
0 0 0
Tooth Tick Count
P1 P2 P3 P4
Tooth Signal
Angle Tick
Halt Mode
y y+n y+n+1
TCR2 - continuous
0 0 0
Tooth Tick Counter
current tooth, with its appropriate LAST and MISSCNT attributes. While the EAC is in High
Rate mode operation, the effect of microcode update of TPR fields LAST, MISSCNT and
TICKS is delayed to the next estimated tooth, after the High Rate mode operation is
complete(ao) (see Section , Special TPR write cases). This is because the current physical
tooth represents the next estimated tooth. If the microcode updates this field after High Rate
mode operation is complete, the current physical tooth and estimated tooth are the same,
and the effect is immediate. Either in High-Rate mode or not, the value read by microengine
is the same written, even if not yet effective, until the EAC resets LAST and/or IPH, or
decrements MISSCNT. Typically the microcode service may occur during the High Rate
mode on extreme acceleration situation at low RPM. Therefore, the microcode operations
are always related to the real physical tooth. From the above it can be seen that the
microcode updates of the TICKS field in TPR affect the end time of the current physical
tooth. For correct operation, this field should be updated before the Tooth Tick Counter has
reached either the old or the new TICKS value.
During High Rate mode operation, TRR is ignored and the Angle Tick Generator uses
system clock divided by eight. Therefore, the TRR update by microcode will take effect only
after the EAC switches back to Normal mode. If microcode service occurs after the Tooth
Tick Counter has been reset, the EAC is already back in Normal mode, and some angle
ticks may have been counted at the rate of the previous tooth. In this case the new TRR
value will have immediate effect on the angle tick period, and the microcode should take into
consideration the delay from the physical tooth to the estimated tooth in calculation of the
next tooth period. See Figure 551 for a detailed diagram of High Rate Mode behavior.
An angle error may be introduced by the duration of the High Rate mode. Also, the
scheduler latency may introduce a small accumulated error by using TRR value of the
previous estimated tooth at the beginning of the current tooth. After the estimated tooth has
advanced, the duration of the High Rate mode operation is the actual delay from the
physical tooth edge to the estimated tooth edge. This delay can be obtained by comparing
the estimated tooth time with the EAC channel capture register which captured TCR1 on the
physical pin transition.
ao. The effect of microcode writes to fields HOLD and IPH is immediate in High Rate mode.
P1 P2 P3 P4
Tooth Signal
Angle Tick
y y+n+1
TCR2
Tooth Tick Counter
case a 720 degrees engine cycle has 118 teeth. TCR2 reflects the real angle, since it counts
angle ticks continuously.
In the second option, the missing teeth are counted as “regular” teeth by automatic insertion
of “dummy” teeth. The microcode has to write a non-zero value to the MISSCNT field in
TPR. This field is a 2-bit down counter which affects the operation of the Counter Control
logic.
For example, a flywheel with 59 physical teeth (0-58) and one missing tooth (59) can be
considered as 60 teeth numbered (0-59), all having the same number of angle ticks. The
microcode has to write “01” to the MISSCNT bits during the period of tooth number 58 to
indicate that next tooth (59) is missing.
When the Tooth Tick Counter reaches the TICKS value, TCR2 is incremented as if a
physical tooth has been detected. In addition, the MISSCNT value initializes a “dummy tooth
counter” which is decremented to indicate the number of left “dummy teeth” which still need
to be generated. Because a dummy tooth was counted, EAC does not enter Halt Mode and
Tooth Tick Counter continues incrementing in the absence of a physical tooth detection.
In case of extreme acceleration on very low RPM (cold start) there can be a situation that
the first physical tooth after one or two missing teeth appears even before the “dummy”
tooth is generated. Due to the acceleration the EAC switches to High Rate mode in order to
run through all the valid angle values, including the dummy teeth. When the Tooth Tick
Counter reaches the TICKS value on High Rate mode, and the “dummy tooth” down counter
is not zero, the generated “dummy tooth” advances to the next tooth and decrements the
“dummy tooth” counter, but does not switch the EAC back to Normal mode. The last
“dummy tooth” decrements the counter to zero, indicating that no more dummy teeth are to
be inserted, and the next tooth is an estimated physical tooth. The EAC continues at High
Rate mode until the Tooth Tick Counter reaches the TICKS value again, then advances to
the next tooth while switching back to Normal mode. When in High Rate mode, the TPR
does not reflect the MISSCNT downcounting; see Section , TPR buffering, for details.
MISSCNT can be rewritten before it reaches 0, allowing it to count more than three missing
teeth, as long as no physical tooth arrives between the first MISSCNT write and the rewrite.
P1 P2 P3 P4
Tooth Signal
Dummy teeth
Angle Tick
*service request
EAC Channel Ch0
Service Time Slot
**
TPR[MISSCNT] 00 10 01 00
“Dummy Teeth”
**microcode sets TPR
TPR[LAST]
Tooth Count 56 57 58 59 0
(for reference only)
n*(TICKS+1) 0
TCR2
Tooth Tick Counter
to freeze and wait for the next physical tooth to close the gap. When the next physical tooth
arrives, HOLD is automatically negated and the EAC proceeds from that point to the
remaining portion of the tooth period, in the same mode it was when HOLD bit was
asserted.
The first tooth detected after this procedure restarts the TCR2 counting, unfreezing the
Angle Mode logic into normal mode.
TPR buffering
In High Rate mode (see Section , High rate mode (Acceleration)), TPR writes are
immediately effective only for bits IPH and HOLD. Writes to all other fields are “buffered”
and become effective when EAC leaves High Rate mode. However, if TPR is written a
second time right after IPH is asserted in Normal mode, this second write behaves as if EAC
is still in Normal mode. Only in the next microcycle (after execution of a NOP, for instance)
the TPR writes are buffered, acknowledging High Rate mode.
MISSCNT and LAST can be written any value during High Rate mode, and the value that
prevails for the next tooth is the one sampled when EAC goes back to Normal mode (or the
value written in Normal or Halt mode thereafter). If MISSCNT and/or LAST are not zero
when High Rate mode begins, they are sampled into the internal EAC logic and are effective
while High Rate lasts (missing teeth count continues and TCR2 is reset at the end of High
Rate if LAST = 1). However, their values in TPR are reset when High Rate mode starts.
After that and until the end of High Rate mode, the value read by microcode is the same
written. This behavior prevents read-modify-writes to TPR from unwillingly rewriting LAST or
MISSCNT.
24.5.8 Microengine
Each eTPU engine has a microengine that fetches, decodes and executes
microinstructions. The Microengine only works when there are service requests to be
attended, otherwise it turns to idle state, controlled by Hardware Scheduler (see
Section 24.5.3, Scheduler).
Microcode is stored in Shared Code Memory (SCM) that is 32-bit wide. Microengine can
access SPRAM using a different bus from the one used to accesses code memory, so that
code and data can be accessed at the same time (Harvard Architecture).
Some of eTPU functionality can only be made through the microengine, like configuring
channels and interrupting host. Microengine gives eTPU a high degree of flexibility, since
any desired treatment for channel’s events can be implemented; however, that flexibility
comes at the cost of channel service’s latency. Latency is worsened when channels from a
same eTPU engine contend for microengine service. In Figure 553 a block diagram of
microengine architecture is shown.
Microengine features are summarized as follows:
● P, DIOB, A, B, C, D, SR, RAR, LINK, CHAN, MACL, MACH, ERTA, ERTB, TCR1,
TCR2, TPR, TRR registers are accessible by microcode.
● 24-bit ALU and Post-ALU shifter performs basic arithmetic and logical operations
described in Section , ALU and Post-ALU Shifter.
● MDU (MAC/Divide Unit) performs integer MAC, multiply and divide operations.
● Fixed Microinstruction Size of 32 bits.
● Fixed-length instruction execution (2 system clocks)
● Static superscalar operation
CHAN 5
Address
Imm.Data 8, 16 or 24 1 & Size Calc. 1
Code Memory BUS
32
24 24
32 DIOB 24
SPRAM D.Bus
SPRAM A.Bus
24
Control
24
24
P 24
32
24
24 A 24
24
B 24
24
BS (source)
C
SCM Address
14 24
Fetch and 24
Branch Logic D 24
PC 24 24
AS (source)
AD (dest.)
BIN AIN
1
ALU
RAR EAU
Result
N, V, Z, C 4 Post-ALU 24
5
Flags to
to Branch Logic Shifter Shifter Result CHAN*
24 1 5
24
24 24 24
SR 24
8
LINK*
24 24
24
MAC MACH 24
DIVIDE 24 1
UNIT MACL RAR*
24
MN, MV, MZ, MC 1
5 24
MB Flags to
to Branch Logic ERTA 24
24
Channels + TCRs
ERTB 24
6
24
ER1 Bus
ER2 Bus
eTPU
CHANNELS
Registers
eTPU microengine accesses a total of 18 registers. Fourteen of them are special purpose
(registers A, B, C and D are for general use). Special purpose registers except CHAN and
LINK can also be used as general use if the operation that use their contents are not
performed. Register description is intended to just introduce their functionalities and not to
provide detailed explanation of it since it will be described in Section 24.5.9, Microinstruction
set. Registers less than 24 bits in size are right-justified.
None of the registers have guaranteed reset values. However, some are initialized just
before the thread starts (see Section , Time slot transition).
P Register
P register is the only one that is 32-bit wide. It can be used as source and destination for
arithmetic/logical operation, and as source and destination for SPRAM read/write
operations.
For P source/destination possibilities in ALU/MDU microoperations, see Section , Selecting
sources and destination.
When P is used as SPRAM read/write operations source or destination there are only 3
possibilities of access: all 32 bits, lower 24 bits and upper 8 bits. SPRAM operations are
explained in detail in Section , SPRAM microoperations.
P is automatically loaded with one parameter before the thread starts (parameter preload).
For more information see Section , Entry point format, and Section , Time slot transition.
Upper 8 bits of P register can be used as application state, since these bits can be tested as
branch conditions. P[31:24] is also used in dispatch microoperation (see Section , Dispatch
microoperation), and bit pairs P[29:28], P[27:26], P[25:24] can be directly copied into
Channel flags 1 and 0 using field FLC. Together with Entry Table Condition Encoding, it
provides fast state resolution without code execution.
When a thread starts to be executed, ERTA and ERTB are loaded with a copy of CaptureA
and CaptureB registers respectively. ERTA/B can be used to receive a copy of MatchA and
MatchB registers. ERTA/B are the only destination of MatchA/B read operation (see
Section , Special T4ABS source operation: Read match registers).
ERTA and ERTB also receive a copy of CaptureA and CaptureB registers when CHAN
register is written (see Section , CHAN Register). For more information about Capture and
Match registers see Section , MatchA and MatchB Registers, and Section , CaptureA and
CaptureB Registers.
SR – Shift Register
The SR is a 24-bit wide register that can be used as source and destination register for
arithmetic/logical operations. The SR can shift right its contents by 1 bit at time and, at the
same time, receive in its bit 23 the lost bit of a shift-right operation in post-ALU shifter
(Section , ALU and Post-ALU Shifter), allowing the SR to be used to perform 48-bit shift right
(see Section , Shift operations).
LINK Register
Link Register is an 8-bit wide register and can be used only as destination in arithmetic
operations. LINK is a write-only command register, which precludes its use as a source
register for ALU operations. When LINK register is written, it issues a service request for the
channel number and eTPU engine equal to the number written in LINK register (see
Section 24.5.1, Functions and threads, and Section , Channel Link, for information about
Link Service Request).
CHAN Register
CHAN is a 5-bit register that can be used as source and destination in arithmetic operations.
The contents of CHAN register affects the execution of many channel-related
microinstructions, because its number indicates the selected channel. CHAN register must
not be used to store temporary values in arithmetic operations. For more details, refer to
Section , Channel Selection Register – CHAN.
angle mode operations. For more information about those registers see Section 24.5.6,
Time Bases, and Section 24.5.7, EAC – eTPU angle counter.
ALU Flags
Four flags—Carry, Negative, Overflow, Zero—described below, are related to ALU and post-
ALU shift operations. Operation size and shifting affect flags generation logic. Operation
size determines the result boundary to be used for flags generation. Operation size is
determined by size of sources and destination (see Section , Flags sampling control). For
more information about flag generation, see Section , Flags sampling control. ALU flags can
be used as branch condition (see Section , Conditional/Unconditional branch) or conditional
ALU/MDU operation (see Section , Conditional ALU/MDU operation execution).
Field CCS/CCSV in microinstructions can force no update of all flags. Not all flags are
updated in all ALU operations: Overflow is updated only on addition and absolute value
operations, Carry flag is updated in most ALU operations, and only Zero and Negative are
updated in all ALU operations.
ALU flags are never updated when microinstruction starts an MDU operation, regardless of
CCS/CCSV, but are updated normally afterwards, on ALU operations that are executed in
parallel with an ongoing MDU operation (MDU has its own flags).
Note: Operation size can be smaller than destination register. For example: 0xFFFF + 0x0001
(both 16-bit sources) stores 0x10000 in a 24-bit register and sets Zero and Carry flags
because operation size is 16 bits.
Carry Flag (C)
In an unsigned addition without shifting, Carry Flag is the ALU carry from bit 7 to 8, 15 to 16,
or 23 to 24 on 8, 16 and 24-bit operation sizes respectively. In an unsigned subtraction
without shifting, Carry Flag represent the sign of ALU’s result considering operation size
(Carry Flag equal to 0 means a negative result).
Carry Flag definition is operation-dependent. The Carry flag in add/subtraction with Post-
ALU shift is defined in Table 493. Find the definitions for other operations in the following
sections.
Negative flag (N)
Negative flag indicates the sign of result based on the operation size, regardless of the
operation performed, as shown in Table 489.
8 bits N = result[7]
16 bits N = result[15]
24 bits N = result[23]
Note: The N flag may not reflect the sign of the value actually written into the destination register,
if it does not have the same size of the operation (see Section , Flags sampling control).
This is always the case for registers RAR (14 bits) and CHAN (5 bits).
Overflow (V)
Overflow is updated only on addition (with or without carry) and absolute value operations.
In signed operations, overflow flag indicates that the result of arithmetic operation (add or
subtraction) can not be represented by a word of the size of the operation. Overflow flag
behavior for addition is defined in Table 490. Overflow flag for Absolute operation is
explained in Section , Absolute value operation. V Flag is calculated using ALU adder
output (that is, it is not affected by 1-bit shift/rotate operations).
8 bits (AS[7] & BS[7] & !alu_adder_output[7]) | (!AS[7] & !BS[7] & alu_adder_output[7])
(AS[15] & BS[15] &!alu_adder_output[15]) |
16 bits
(!AS[15] & !BS[15] & alu_adder_output[15])
(AS[23] & BS[23] &!alu_adder_output[23]) |
24 bits
(!AS[23] & !BS[23] & alu_adder_output[23])
1. For V-flag definition on the absolute operation, see Section , Absolute value operation.
2. BS is taken after any inversion by the BINV field, but not added to the carry bit (CIN field)
1 1 AS + BS
1 0 AS + BS + 1
0 0 AS - BS
0 1 AS - BS - 1
ALU adder output can be 1-bit shifted or 1-bit rotated right as follows:
Shift right:
if BINV==1
result[23:0] = adder_output[24:1]
else
result[23:0] = adder_output[24:1] xor 0x800000
endif
Shift left:
result[23:1] = adder_output[22:0]
result[0] = 0
Rotate right:
case(opsize/CCSV)
8-bit:
result[6:0] = adder_output[7:1]
result[7] = adder_output[0]
result[23:8] = adder_output[23:8]
16-bit:
result[14:0] = adder_output[15:1]
result[15] = adder_output[0]
result[23:16] = adder_output[23:16]
24-bit:
result[22:0] = adder_output[23:1]
result[23] = adder_output[0]
ap. ALU operations only occur on formats where a destination field is found (T2ABD/T2D).
Note: Only for the Post-ALU rotate right, the operation size is determined by the field CCSV (see
Section , Flags sampling control). For example: if CCSV = 00, T4ABS = P (24-bits),
T4BBS = A (24 bits), T2ABD = B (24 bits), and ALUOP = “Add ROR”, then B gets A+ P with
bits 7:0 rotated, even though the operation size is 24 bits.
Table 493 describes Carry flag behavior.
Flags N and Z on shift are updated according to the result after shift. Flag V with shift is
updated according to the ADD operation only, the same way as without shift.
ADC operation
ADC operation is selected by the ALUOP field. CIN field is ignored when this operation is
selected. Table 494 describes how BINV change ADC operation behavior.
1 x AS + BS + C flag
0 x AS - BS - C flag
Flags behave exactly the same way as for ADD operation without shift/rotate.
Bitwise Operations
Bitwise AND, OR and XOR are selected by ALUOP field. On these operations CIN field is
ignored and BINV field inverts (bitwise NOT) BS. C and V Flags are never updated on these
operations. Table 495 Describes AND, OR and XOR bitwise operations.
10000 1 AS | BS
10000 0 AS | (~BS)
10001 1 AS ^ BS
10001 0 AS ^ (~BS)
10010 1 AS & BS
10010 0 AS & (~BS)
Exchange bit
Exchange the AS bit determined by BS[4:0] with C flag. If the bit number resolves to a value
greater than 23, no exchange is performed (i.e., result is equal to AS and C flag is not
updated). This operation overrides BS size to 8 bits. On this operation, CIN field is ignored
and BINV field inverts (bitwise NOT) BS. V flag is never updated on exchange bit operation.
C flag is always updated, regardless of CCSV, unless BS[4:0] > 23.
Exchange Bit (BINV = 1):
if BS[4:0] <= 23
begin
temp_C_flag = AS[BS[4:0]]
if C_flag == 1
result = AS | (1 << BS[4:0])
else
result = AS & ~(1 << BS[4:0])
C_flag = temp_C_flag
end
Exchange Bit (BINV = 0):
if (31 - BS[4:0]) <= 23
begin
temp_C_flag = AS[31 - BS[4:0]]
if C_flag == 1
result = AS | (1 << (31 - BS[4:0]))
else
result = AS & ~(1 << (31 - BS[4:0]))
C_flag = temp_C_flag
end
0 2
1 4
2 8
3 16
Shift right is a logical operation (i.e., zeros are inserted on left). Multibit shift and rotate
operations overrides BS size to 8 bits. The shifts and rotate operate on 24 bits,
independently of the operation size.
V flag is never updated for multibit shift or rotate operations. Carry flag behavior is described
on Table 497. CIN is ignored in these operations, but BINV is effective.
8 alu_output[[7] alu_output[7:0] == 0
16 alu_output[15] AS[23] alu_output[15:0] == 0
23 alu_output[23] alu_output[23:0] == 0
1. V, N can be 1 on 8- and 16-bit Absolute Value, because the operand sign is always taken from bit 23. V, N
can also be 1 in 23-bit Absolute Value (or 8-bit and 16-bit with sign extension), if the operand is 0x800000
(0x80, 0x8000).
aq. There is no distinct selection of 24-bit fractional multiplication, for it works exactly as a 24-bit ordinary
multiplication.
During calculations, MACH and MACL holds temporary values and should not be written,
otherwise the result is unpredictable. One must not start an MDU operation while MDU is
already busy: the result is unpredictable for both the ongoing operation and the started one.
MDU Operations update its own set of five flags, described in Section , MDU Flags. MDU
operations never update C, N, V and Z flags. CIN and BINV microinstruction fields affect
MDU operations according to Table 499.
1 1 AS mdu_op BS
0 0 AS mdu_op (-BS)
signed
1 0 reserved
0 1 reserved
1 1 AS mdu_op BS
unsigned(1) 1 0 AS mdu_op (BS+1)
0 x reserved
1. Includes the B-source (unsigned) in fmults (signed) operations.
MC is set if result can not be represented by a 48-bit unsigned non-negative number. MACU
never resets MC flag: MC flag is left as is if no carry occurs, or set otherwise. This allows
checking the carry flag only once at the end of a series of multiply-accumulate operations in
a scalar product calculation.
MDU Flags
MDU has its own flags to indicate the result and status of an MDU operation. They are: MC,
MZ, MV, MN and MB. All MDU flags are updated with the final result at the end of the
operation, and do not change until the next operation finishes. Therefore it is possible to
start a new MDU operation and test the flags of the previous one in parallel, except for
mult/mac with 8-bit operand (takes only 1 microcycle).
MDU Negative Flag – MN
MN flag is always a copy of MACH bit 23 at the end of the operation, either in signed or
unsigned ones. Note that MACH holds the rest of a division operation, which is always
unsigned.
Branch Conditions
Microengine allows conditional branch. There are five sets of flags that can be tested in a
conditional branch: ALU flags, MDU flags, P flags, Channel flags, and Semaphore flag (flag
SMLCK).
When a thread starts to be executed, the values in MDU and ALU flags are not initialized.
ALU flags are described in Section , ALU Flags. MDU flags are described in Section , MDU
Flags. MDU and ALU flags are updated during execution of microinstructions.
P flags are actually the upper byte of P register, which optionally can work as user defined
flags (see Section , P Register).
Channel flags Flags0, Flag1, MRLA, MRLB, TDLA, TDLB, PSS, PSTI and PSTO are
obtained from the selected channel (value in CHAN register), while channel flags, LSR,
FM[0] and FM[1] are selected by the serviced channel, regardless of the CHAN value(ar).
Flags TDLA/B, MRLA/B, LSR, FM[1:0] and PSS, are sampled at the beginning of a thread.
Flag PSS does not change during its execution while CHAN register is not written. When a
write in CHAN register is performed, all flags except LSR and FM[1:0] are updated
according to the channel specified by CHAN value. Flags MRLA/B and TDLA/B are reset
when their respective latches in channel are cleared by microcode.
ar. Serviced channel does not change during execution of a thread, and it is the channel that requested a service
(initial value of CHAN register when a thread starts).
Semaphore condition SMLCK always indicates if a semaphore is locked for the engine,
resolving as false before any lock attempt. For each trial, the SMLCK flag is updated. The
SMLCK value set in one thread is not meaningful to the other. After a free, the SMLCK
condition tests as false until a new lock attempt on the same thread.
Branch conditions are selected through instruction fields BCC and BCF (see Section ,
Conditional/Unconditional branch).
SPRAM microoperations
The access to SPRAM is made by providing an address and a register to perform a data
transfer, except semaphore operations, which are also classified in the SPRAM group. Only
P and DIOB registers can exchange data with SPRAM. Microengine always addresses
SPRAM in 32-bit boundaries, for 8, 24, or 32-bit wide data.
Direction is determined by the field RW in all addressing modes: RW = 0 selects read and
RW = 1 selects write.
0 P access
1 DIOB access
0 0 0 Clear P register. Size is determined by RSIZ field. See Section , SPRAM operation size.
0 0 1 Clear DIOB (all 24 bits), independently of RSIZ
Clear SPRAM parameter. Size is determined by RSIZ field. See Section , SPRAM operation
0 1 x
size.
1 RW P/D Regular SPRAM operation
Note: When field STC is present, STC = 11 also disables Zero SPRAM operation (see Table 505).
The conflicts with DIOB operations (see Section , DIOB stack operation) and ALU
operations are resolved like a normal SPRAM operation (see Table 546).
00 Post-Increment of DIOB
01 Pre-Decrement of DIOB
10 No Increment/Decrement (normal access)
11 No SPRAM Access(1)
1. Also disables Zero SPRAM operation
Semaphore operations
Semaphore lock and free operations are available through eTPU microcode. For more
information about semaphores see Section , Hardware Semaphores. Two microinstruction
fields control semaphore operations: FL (1 bit) and SMPR (2 bits). Serviced channel sees
four semaphores, selected by field SMPR.
0 = free semaphore,
FL
1 = lock semaphore
SMPR semaphore number selector
When freeing a semaphore, the field SMPR has no meaning. This is because only one
semaphore can be locked at a time by each engine, so when freeing a semaphore it is not
necessary to specify its number.
Note: If microcode tries to lock a semaphore already locked for the same engine, the semaphore
continues locked for the engine and the SMLCK branch condition resolves as true.
ALU/MDU operations
ALU/MDU microoperations mostly comprises two sources, one destination and one
operation. The operation is generally selected through fields ALUOP, ALUOPI or SHF. In
formats where there is no operation selection field (ALUOP, ALUOPI or SHF), the operation
performed is always addition; however, it is possible to perform subtraction, increment or
decrement using fields BINV (see Section , B-Source inversion) and CIN (see Section ,
Carry-in Control).
0 second
1 first
T4ABS selects one source from two register sets, shown in Table 510. ABSE and T4BBS
control which set T4ABS field uses to select the source. For more information about how to
select a register set for T4ABS and T2ABD see Section , Source and destination register set
selection. All sources are zero-filled to 24 bits, unless sign-extension is specified (see
Section , A-Source size override).
T2ABD selects the destination from one of two register sets, shown in Table 511. ABDE and
T4BBS control which set T2ABD field uses to select the destination.
x x 8 bits 8 bits
8 bits 8 bits x 8 bits
16 or 24 bits x 16 bits 16 bits
16 bits 8 or 16 bits 24 bits 16 bits
8 or 16 bits 16 bits 24 bits 16 bits
24 bits x 24 bits 24 bits
x 24 bits 24 bits 24 bits
Note: Whenever BS = (constant) 0, its size is considered 8 bits, and all 24 bits in B-bus are set to
0. Therefore, all operations with BS = (constant) 0 have their size determined by AS and
Destination only.
CCS field (1 bit) controls whether flags will be updated or not (Table 514). When CCS bit
exists in a microinstruction, the operation size will be used to sample flags. In some
microinstructions CCS field is replaced by CCSV (2 bits, Table 513). Flag sampling
according to CCSV can be set as defined by the operation size, or fixed as 8 or 16-bit
operations.
Note: For the post-ALU rotate right operation, CCSV also determines the rotate size: whether 8-
bit, 16-bit, or determined by the operation size.
When neither CCS nor CCSV are present in the microinstruction, flags are not sampled.
CCS and CCSV do not affect the Carry update on Exchange Bit operation (see Section ,
Exchange bit), but does control the N and Z flags.
B-Source inversion
The data selected as second source (T4BBS) can be inverted (bitwise boolean NOT) before
operation. This is controlled by microinstruction field BINV (1 bit, Table 515). A zero value
for BINV activates B-source inversion.
0 invert B-source(1)
1 keep B-source bus unchanged
1. Except on max-constant selection, see Section , Generating
“max” constant.
BINV also selects between adc or sbc enhanced ALU operation, using inverted C flag as
carry-in besides BS inversion for sbc. Note that BINV does not invert carry in fixed-carry
operations (see Table 516).
When BINV = 0, T4BBS = 111 and CIN = 0, the value assigned to BS is 0x800000, instead
of 0x0. See Section , Generating “max” constant, for more details.
Carry-in Control
CIN field (1 bit, Table 516) controls the carry-in for addition/subtraction operations.
Functionality of CIN field depends on the arithmetic operation selected by ALUOP. When
ALUOP is not available in microinstruction, the operation selected is add. For carry-in
control in MDU operations, see Table 499.
Shift operations
There are three types of shift operations: ALU, post-ALU and Shift Register. ALU shift
operations are covered in Section , ALU/MDU Operation Selection. Post-ALU and Shift
Register are covered in the following sections.
Shift register operations
SR can be used as a general purpose register and it can easily shift-right its contents,
combined or not to post-ALU shift operations. If field SRC (1 bit) in microcode is 0, SR will
shift its contents 1 bit to the right according to the algorithmic description below. SR shifting
operation depends also on SHF or ALUOP fields. ALUOP and SHF never exist both on the
same microinstruction format.
SR Operation:
SR[22:0] = SR[23:1];
if SHF == “01” or ALUOP == “10110” then
SR[23] = ALU_OUT[0];
else
SR[23] = 0;
endif;
Post-ALU shift operations
Post-ALU shift can be selected by SHF field (2 bits) or by some specific ALUOP field values.
SHF and ALUOP fields are never both available in the same microinstruction format. When
selecting post-ALU shift operation using ALUOP field, ALU will always add the sources
before shifting the result.
2. Some ALUOP combinations perform shift/rotate, but not using the Post-ALU Shifter (see Table 523)
Carry flag is only updated when CCS or CCSV[1:0] fields allow it (see Section , Flags
sampling control). Algorithmic descriptions of post-ALU shift operations are presented in
Section , ALU ADD Operation with and without shifting.
000
Used for A-Source size override (see Section , A-Source size override)
001
010 execute if C = 1
011 execute if C = 0
100 execute if Z = 1
101 execute if Z = 0
110 execute if N = 1
111 execute unconditionally/no size override
Other operations not related to ALU/MDU in the same microinstruction are not affected by
the AS/CE field.
If a conditional operation is selected, there is no A-Source size override; similarly, when size
override for A-Source is selected, the ALU/MDU operation executes unconditionally.
When a conditional ALU/MDU operation is not executed:
● The destination register is not updated. If the destination is CHAN, no actions
associated with CHAN assignment occur (see Section , Channel Selection Register –
CHAN).
● The ALU and MDU flags are not updated.
● MDU does not start any operation, i.e., MACH and MACL are not updated.
● SR does not shift.
● T4ABS-selected read-match does not occur.
010
011
100 Used for conditional execution (see Section , Conditional ALU/MDU operation execution)
101
110
111 execute unconditionally/no size override
Register size override zero-pads an overridden source to 24-bits (if no sign extension is
performed, see Section , A-source sign extension) and affects operation size calculation.
When register source is wider than size override, most significant bits of selected register
are not used as A source (zeros are used instead). When size override is wider than
selected register, register value is padded to zeros.When size override is used with MDU
operations, it affects only the operand values, but not the operation size: MDU operation
size is fully determined by the operation definition (fields ALUOP, ALUOPI).
A-source sign is not extended in microinstructions without SEXT field, even if AS/CE field is
present.
11011 AS ror (2^(BS[1:0]+1)) AS is rotated right: 2 bits for BS = 0; 4 for BS = 1; 8 for BS=2; 16 for BS=3
11100 AS exch BS[4:0] exchange C flag and AS bit determined by BS[4:0] (Section , Exchange bit)
11101 AS setb BS[4:0] set bit in AS determined by BS[4:0] (2)
11110 AS clrb BS[4:0] clear bit in AS determined by BS[4:0](2)
11111 n.a. RESERVED
1. Addition/Subtraction is selected by field BINV (see Section , B-Source inversion)
2. In setb and clrb operations, the register that drives A source is not changed, unless selected as destination of the
operation.
00 P[23:0]
01 A[23:0]
10 SR[23:0]
11 DIOB[23:0]
Table 525. ALU Operation Selection With Immediate Data – ALUOPI (continued)
ALUOPI Operation Comment
Table 525. ALU Operation Selection With Immediate Data – ALUOPI (continued)
ALUOPI Operation Comment
action 2 1 0
set OBE = 1 0 0 0
TBSA[3] = 1 set OBE = 0 0 0 1
do nothing 1 1 1
reserved all other values
action 2 1 0
TBSB[3] = 1 do nothing 1 1 1
reserved all other values
Table 529. Input and Output Pin Action Control – IPACA/B and OPACA/B
Value IPAC meaning OPAC meaning
Table 529. Input and Output Pin Action Control – IPACA/B and OPACA/B
Value IPAC meaning OPAC meaning
00 0 Set signal as specified by OPACA (see Section , Transition detection and pin action control)
00 1 Set signal as specified by OPACB (see Section , Transition detection and pin action control)
01 x Set signal high
10 x Set signal low
11 x Don’t change signal state
1 0 write ERTA value in MatchA. Enable matches for MatchA register (MRLEA = 1)
0 0 write ERTA value into UDCM
ERWA
1 1 don’t change UDCM, MatchA and MRLEA
0 1 reserved
1 0 write ERTB value in MatchB. Enable matches for MatchB register (set MRLEB = 1)
1
ERWB 1 don’t change MatchB and MRLEB
0
0 0 reserved
If ERTA or ERTB is a destination of an ALU operation and, at the same time, the respective
ERWA/B field is active, the new ERTA value is the one written into the MatchA/B register or
the UDCM register.
00 clear TDLA
01 clear TDLB
10 clear both TDLA and TDLB
11 do not clear TDLA or TDLB
Disable matches
Microcode field MRLE (1 bit) allows disabling matches on channel selected by CHAN
register, for both MatchA and MatchB registers, by clearing their respective MRLE bits.
Matches can be enabled for each Match register using ERWA and ERWB fields (see
Section , Write Channel Match and UDCM Registers).
Some instruction formats have a two-bit MRLE field (see Section , Microinstruction formats)
which allows independent disabling of Matches 1 and 2, as shown in Table 535.
00 SRI = 0: enable service requests for match and transition TCCEA = 0: disable transition
01 SRI = 1: disable service requests for match and transition captures(1) when TDLA = 1
0000 em_b_st
0001 em_b_dt
0010 em_nb_st
0011 em_nb_dt
0100 m2_st
0101 m2_dt
0110 bm_st
0111 bm_dt
1000 m2_o_st
1001 m2_o_dt
1010 user-defined channel mode
1011 reserved
1100 sm_st
1101 sm_dt
1110 sm_st_e
1111 keep current channel mode
Branch operations
Branch operations can be jump or call. The target address of jump or call microoperations
is always immediate and absolute. Branch microoperation is affected by FLS field (refer to
Section , Flush pipeline).
Selecting jump or call microoperations
The only difference between jump and call microoperations is that when a call is executed
the value of PC or PC+1 (depending on flush, see Section , Flush pipeline) is saved in the
RAR. The microcode field J/C (1 bit) selects whether jump or a call is executed, according to
Table 540.
0 jump
1 call
Dispatch microoperation
Dispatch microoperation is an unconditional branch where the target address is always
PC+P[31:24] (unsigned). Dispatch is affected by FLS field (refer to Section , Flush pipeline).
Dispatch microoperation is defined by R/D field (2 bits, Table 543). Field R/D can also be
used to define return from sub-routine (see Section , Return from subroutine).
Flush pipeline
When a branch, dispatch or subroutine return microoperation is executed, the next
microinstruction can be executed unconditionally before the flow change takes effect, since
microengine has a two-stage pipeline. Executing the next microinstruction after a branch
maximizes execution performance. This feature is controlled by field FLS (1 bit, Table 545).
When FLS = 0 the pipeline is flushed, so the next microinstruction placed after a branch is
decoded as NOP if the branch is taken. If FLS = 1, the microinstruction placed after the
branch is executed, either if the branch is taken or not, as shown in Figure 554.
Flush also controls which value is stored in RAR in a call: in case of no flush, it is the
address of the branch/dispatch instruction + 2, even if RAR is the ALU destination of the
instruction after the call; in case of a flush, it is the address of the instruction following
branch/dispatch.
If a branch with no flush is followed by another branch with no flush, the instructions are
executed in the following order:
1. First branch
2. Second branch
3. First branch’s destination instruction
4. Second branch’s destination instruction, and the flow proceeds normally from then on
The destination of the first branch must not be another flow changing instruction (branch,
return or dispatch). Similar flows apply when returns or dispatches are used instead of
branches. This scheme can be used to implement quick table look-ups with a dispatch
replacing the first branch, for instance.
branch branch
dispatch dispatch
return return
branch/dispatch/
return executed
INSTR INSTR
A A
branch/dispatch/
return executed
HALT microinstruction
HALT is a microinstruction provided to implement software breakpoints (see Section ,
Software breakpoints). Note that HALT is coded as a microinstruction format, not a field (see
Section , Microinstruction formats). The execution of this instruction puts the microengine in
halt state. For more information about the implications of microengine halt state, see
Section , Microengine halt state. HALT is valid only if software breakpoints are enabled at
the Debug interface (signal ndedi_enable asserted). If software breakpoints are not
enabled, HALT executes as a NOP and is treated as an Illegal Instruction (see Section ,
Illegal Instructions).
NOP microinstruction
There is not a unique microinstruction with an assigned opcode to do No Operation. NOP
microinstruction is achieved through any of the formats shown on Section Table 547.,
Microinstruction Formats where the user can assign to each individual field the
corresponding value for “No Operation”. However, to prevent future impacts of instruction
changes on object code compatibility, the instruction value 0x4FFFFFFF should always be
used for NOP.
Illegal Instructions
An instruction is considered illegal if any reserved field value is used, including when the
fields marked rsv in the instruction formats (see Table 547) are assigned value 0. A HALT
DIOB,
no no --DIOB (pre-decrement),
or DIOB++ (post-increment)
SPRAM read data
yes no
(post-inc and pre-dec ignored)
SPRAM read data
yes yes (post-inc, pre-dec and ALU result
ignored)
ALU result
no yes
(post-inc an pre-dec ignored)
Note: Read match, ERWA/B and CHAN assignment can be active at the same instruction.
Combining rules Section , CHAN assignment, Read Match and ERWA/B, and Section ,
Read Match and ERWA/B, the result is: ERTA/B receives the CaptureA/B values of the new
CHAN value, and MatchA/B of the new channel receives the old ERTA/B value(s).
Microinstruction formats
See Table 547.
RTN CCS
A1 000 IMM[15:13] IMM[7:2] IMM[23:16] IMM[11:9] T2D 00
IMM[12]
IMM[8]
A2 T4ABS T2ABD AB AB 01
IMM[1:0]
SE DE
ALUOP FLC
A3 CCSV ALUOPI AS/CE ALUOPI 0 10
[3:2] [1:0]
CCS
[1:0] SE DE
B1 10 0 T4BBS AID[7:0] (global param)
SRC
B2 1 AID[6:0] (channel param)
END
CCS
ZRO
P/D
RW
B3 000 STC AB AB rsv 11
SE DE
Doc ID 15177 Rev 8
BINV
CIN
FL
B5 0 SMPR
SEXT
B6 1 rsv AB AB
SE DE
SRC
MRLE
ABDE
ABSE
B7 011 SHF PSC
END
CCS
ERWB
ERWA
MRLA
MRLB
PSCS
TDL
C1 010 0 OPACA OPACB TBSA TBSB PDCM
LSR
C2 1 IPACA IPACB
ZRO
D0 110 0 0 PSC FLC 0 RSIZ AID[6:0] (engine param)
MRLE
CIRC[1:0]
RW
P/D
D1 1 AID[7:0] (global param)
PSCS
CIRC
FLS
R/D
D2 1 AID[6:0] (channel param)
ZRO
D3 111 1 MRLE 1 STC 11 0 0 rsv
END
FL
D4 0 rsv SMPR
MRLE
P/D
D6 1 AID[6:0] (channel param)
ZRO
ERWB
ERWA
MRLA
MRLB
D7 111 1 MRLE 1 STC 11 0 1 rsv
CMW
TDL
TDL
FL RW
D8 0 rsv SMPR
RM0029
MRLE
ZRO
P/D
Table 547. Microinstruction Formats (continued)
RM0029
format 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
P/D
E1 111 BCC[4:0] RW BAF[13:0] 00 STC
BCC[5]
E2 01 AID[2:0]
BCF
FLS
J/C
E3 FL 10 rsv SMPR
E4 0 11 1 rsv
F1 rsv 1 rsv 111 rsv
format 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
asserted) or idle state (device debug request negated), but halt enables several other
features (see below).
● Occurrence of any of the hardware breakpoint conditions. See Section , Hardware
breakpoints, for details.
● Execution of a single-step microinstruction: microengine returns to halt state after
executing a single microinstruction while in halt state. See Section , Single-step
execution, and Section , Forced microinstruction execution, for details.
When microengine enters halt state, it automatically triggers the following actions:
● Suspends input signal sampling and filters (respective engine channels only), if signal
ndedi_stop_pins is asserted at the Debug Interface.
● Releases the SPRAM arbitration for Host or CDC accesses, no matter if microengine
was halted in the middle of a dual-parameter (back-to-back) access.
● Stops TCR1/2 clocks of the respective engine, if signal ndedi_stop_tcr is asserted at
the Debug Interface.
● If the other engine is also in halt state or stopped, allows turning ETPU_MCR VIS bit to
1.
If all halt conditions are cleared when VIS = 1, microengine(s) keep on halt state until
VIS = 0, when it automatically exits halt state, except on single-step (see Section , Single-
step execution), so that single-step execution is ignored while VIS = 1.
MDU continues executing until it finishes any ongoing operation even if microengine is in
halt state, except when the halted instruction is an END.
There are two kinds of halt state, depending on the previous microengine state when halted:
1. halt_idle, if the engine was not executing a thread when halted; the engine cannot
leave halt_idle to fetch instructions, so one cannot single-step or follow a program flow;
it can, however, execute forced instructions (see Section , Forced microinstruction
execution).
2. halt_exec, if the engine was executing a thread when halted. The engine can single-
step and continue a program flow from halt_exec.
When microengine exits halt state, any dependable action is suspended and, if exiting
halt_exec, the instruction pointed by the PC is fetched, while the instruction already fetched
before halt is executed. Note that both the PC and the prefetched instructions can be
modified during halt state, with a forced execution of a branch instruction (see Section ,
Forced microinstruction execution).
Hardware breakpoints
Microengine can enter halt state through a command from the Debug Interface, configuring
a hardware breakpoint. Hardware breakpoints can halt the microengine on specific
conditions, listed below. These conditions depend on NDEDI configuration.
● CHAN register assignment (only by microcode, not by time slot transition).
● SPRAM read and/or write to a given address and/or write data. The breakpoint is
always qualified by the SPRAM address, but the following variations are allowed:
– break on write only, read only, or read-and-write.
– break on higher-byte write data value, lower 24-bit write value, full word (32-bit)
write value, or regardless of data. Break on read data is not supported.
● PC (program counter) value.
● Beginning of a thread with a Host Service Request pending.
● Beginning of a thread with a Link Service Request pending.
● Beginning of a thread with a Match Service Request pending.
● Beginning of a thread with a Transition Service Request pending.
● End of a thread.
● Illegal instruction execution.
All these conditions can also be qualified by the value of the CHAN register.
On any of these conditions, halt of one microengine does not depend on the halt of the
other, unless the other engine is configured to do so, via Nexus Interface. Occurrence of any
of these conditions halts the microengine, i.e., the conditions are logically “ORed” together,
and they can be individually enabled.
While in halt state, the microengine can also execute any forced microinstruction not in the
normal program flow (see Section , Forced microinstruction execution) or, if in halt_exec, in
single-step (see Section , Single-step execution).
There are situations when requests for stopping an engine, breakpoint and service can
occur simultaneously. Breakpoint requests always prevails over a stop request (ETPU_ECR
bit MDIS = 1 or device debug request = 1). When the eTPU is idle: stop request prevails
over Service Request if there is not a hardware breakpoint request; a hardware breakpoint
request leads to debug mode immediately if there is no Service Request, and after TST if
there is Service Request (regardless of stop requests). The rules above are summarized in
the Table 548, showing the destination state of the microengine in each situation.
Table 548. Breakpoint, stop and service requests resolution from idle
Breakpoint request MDIS Service request Final state
no 0 0 Idle
no 1 0 Stop
no 0 1 TST
no 1 1 Stop
Yes 0 0 Halt_idle
Yes 1 0 Halt_idle
Yes 0 1 TST(1)
Yes 1 1 TST(1)
1. Breaks after TST, if signal ndedi_sync_break is still asserted.
When a thread is ending, it goes to Idle or TST only if there is neither a hardware breakpoint
request (signal ndedi_thread_break negated) nor a request to stop (MDIS = 1 or device
debug request = 1). When thread is ending and there are simultaneous hardware
breakpoint (ndedi_thread_break active) and stop (MDIS = 1 or device debug request = 1)
requests, hardware breakpoint prevails and the engine enters Debug mode (Halt_idle state).
If the engine entered Debug mode after a thread finished (Halt_idle state) and a “go”
command comes from the debug interface, the engine state machine goes to Idle and the
rules above apply. It means that if a “go” is issued in Halt_idle state with MDIS = 1, the
engine goes to Idle for one microcycle and then stops (if MDIS or device debug request
keeps asserted and there is no other breakpoint request).
Note: Hardware breakpoint requests are ignored for the first microinstruction executed when
microengine leaves halt.
Hardware watchpoints
Debug Interface allows watchpoints on the same conditions available for hardware
breakpoints (see Section , Hardware breakpoints).
Software breakpoints
A software breakpoint occurs when microengine executes a HALT microinstruction. Any
number of software breakpoints can be set in code, usually replacing an active
microinstruction.
Like any other microinstruction, HALT increments the PC and pre-fetches the next
instruction. So, before the halt state is suspended, if the original program flow must be
followed, the original instruction at the HALT address must be executed, regardless if the
software breakpoint is removed (replacing HALT by the original microinstruction) or not. The
following is the procedure to resume execution from a software breakpoint:
1. Restore the original instruction in SCM (replace HALT).
2. Force a jump with flush to the original instruction (see Section , Forced microinstruction
execution).
3. If the software breakpoint must be kept: single-step and replace the original instruction
with a HALT.
4. Let the flow continue, issuing a GO command (leaving halt state).
Special care must be taken if HALT is followed by another HALT, and the second HALT is
removed when microengine was halted by the first one. In this case, replacing the second
HALT with the original microinstruction is not enough to remove the second breakpoint,
because the second HALT was already prefetched and would be executed anyway when
halt was suspended. The debugger must also do a forced execution of unconditional branch
with flush to the original microinstruction address. That will clear the pipeline, replacing the
prefetched instruction with a NOP, and load PC with the address of the removed breakpoint.
So, when halt state is suspended, the original microinstruction will be fetched while NOP is
executed, and program flow continues normally from then on.
Note: A HALT instruction placed after a no-flushing branch, dispatch or return may be a problem
from the debugger application standpoint: after the HALT is executed, the eTPU debug
interface informs the address of the branch/dispatch/return destination, and the debugger
application has no direct way to identify which HALT instruction was executed, if multiple
HALTs lead to the same address. This can be solved if the debug support block (NDEDI)
has a register holding the address of the last instruction executed, otherwise one should
forbid non-flushed HALT instructions.
Software breakpoint setting and removal is possible only with SCM RAM implementations or
ROM implementations with SCM RAM emulation (see Section , SCM emulation). There is
only one way of inserting software breakpoints into SCM RAM: writing bit VIS = 1 in register
ETPU_MCR, and then accessing SCM as an ordinary RAM from the slave bus. This can be
done only if both engines are halted or stopped.
Single-step execution
When microengine is already in halt_exec state, it can run the next microinstruction in the
normal program flow and get back to halt state. PC is incremented, or assigned the BAF
value in a branch with satisfied condition. Note that the executed instruction was already
prefetched in the instruction pipeline, and a new microinstruction is fetched during its
execution. The prefetched instruction may be cleared during halt state by the forced
execution of a branch with flush (see Section , Forced microinstruction execution), making
single-step execute a NOP instead of the next instruction in the program flow.
Single-step execution is controlled by the debug interface, and is a feature available from
Nexus if eTPU is connected to the NDEDI block.The single-step execution of a NOP
instruction can be useful to control input signal sampling and filtering, if signal
ndedi_stop_pins = 1 at the Debug Interface. Single-step does not happen if VIS = 1.
Similar procedures apply for register reads: their contents must be dumped to SPRAM,
where they can be read from the slave bus.
Microengine stall
Microengine can get into a stall state, attending a request from a debug interface signal
assertion. The reason for a Stall request from NDEDI (or from any other debug support
block) should be a temporary lack of resources, for instance queue full. During stall the
microengine suspends execution, but all the other engine logic continues operating: time
bases, angle logic, channel logic, input sampling and filters. Stall differs from Halt, not
enabling any of the debug features that Halt enables (see Section , Microengine halt state).
It also does not break an atomic microengine access, unlike halt.
The Microengine can be stalled when idle and from the moment TST ends, before executing
the first thread microinstruction, until just before the last thread microinstruction is executed.
Stall requests are ignored in any other occasions. Microengines in a dual-engine system can
be independently stalled. If a forced end is issued when microengine is in stall coming from
execution, the END is executed only when the microengine resumes execution from stall.
SCM emulation
If SCM is implemented as ROM, an external RAM may be used to replace it, allowing code
patching and software breakpoint setting for debugging purposes. SCM ROM replacement
by Emulation RAM is MCU-dependent. The SCM may even be divided into a ROM part and
a RAM part. In this case, both microengines can run code from both ROM and Emulation
RAM. It is possible to make one engine run code from RAM and the other from ROM, by
using different Entry Tables. The SCM visibility conditions also apply to Emulation RAM.
All SCM implementations, either RAM, ROM or Emulation RAM, are external to the eTPU
block. eTPU provides a signal to enable the switching between external SCM banks. The
conditions for this switching are:
1. Both engines stopped
2. VIS bit = 0
Note that these conditions also stop the clocks of the SCM interface and MISC logic.
1 + x1 + x2 + x22 + x31
A complete description of the signature calculation procedure can be found in
Section 24.7.4: MISC algorithm.
Once started by the Host the MISC runs continuously, restarting after the completion of each
cycle, when it sets the ETPU_MCR flag SCMMISC (see Section , ETPU_MCR – eTPU
Module Configuration Register). The average time for a MISC calculation can be measured
by checking SCMMISC state at regular intervals, incrementing a counter and clearing
SCMMISC if it is set.
MISC accesses to the SCM array are executed if none of the engines is accessing the SCM,
to avoid degradation of the microengine performance: it happens while no channel is being
serviced. An ongoing MISC operation can be aborted by writing 0 to SCMMISEN.
The Host must load the register ETPU_MISCCMPR (see Section , ETPU_MISCCMPR –
eTPU MISC Compare Register) with the expected value to be found at the end of the MISC
cycle, and then start the signature calculation writing bit SCMMISEN = 1 in register
ETPU_MCR (see Section , ETPU_MCR – eTPU Module Configuration Register). MISC
zeroes the signature accumulator and starts reading SCM data and calculating the
signature. After last SCM position is read, MISC compares the value in signature
accumulator against the value in ETPU_MISCCMPR: if there is a mismatch MISC stops, a
Global Exception is issued and the bit SCMMISF in register ETPU_MCR assumes value 1.
If no mismatch is found, MISC repeats the procedure automatically. When signature is being
calculated, SCM address starts at the last SCM address and counts down to 0. The
conditions for executing a MISC operation are (see also Table 467):
● Both microengines in idle state (no channel is being serviced) or stopped, in any
combination (e.g., engine 1 idle with engine 2 stopped)
● ETPU_MCR bit VIS = 0
● ETPU_MCR bit SCMMISEN = 1
Note that MISC can run regardless of SCM implementation type (RAM or ROM).
If SCMMISEN = 0 or VIS = 1, the MISC logic stays at its initial state, with address counter
pointing to the last SCM position and accumulator reset.
Idle Counter
The Idle Counter Register ETPU_IDLE (see Section , ETPU_IDLE – eTPU Idle Register)
continuously counts microcycles in which the microengine is not busy with channel service.
It can be used to measure the microengine utilization by rating the count measured during a
period of time to the number of microcycles contained in the period. The Idle counter does
not count microcycles when the engine is stopped, or is in TST or halt states.
in RAM, it should be initialized with the eTPU application code prior to configuring the eTPU.
Configuration procedures are summarized as follows:
● If SCM is implemented as RAM, load the eTPU application code (see Section , SCM
access).
● Initialize the SCM MISC logic (optional, see Section , SCM Test – Multiple input
signature calculator).
● Initialize the eTPU time base configuration registers (ETPU_TBCR) to setup:
– TCR1 and TCR2 prescalers and clock sources.
– Select digital filtering mode.
– TCRCLK signal filter control.
– Angle mode operation (if necessary).
● Initialize the eTPU engine configuration register(s) (ETPU_ECR) to setup:
– Entry table base.
– Filter prescaler clock control.
● Initialize eTPU STAC configuration register(s) (ETPU_REDCR), if one needs to setup
TCR1/2 resource Client/Server operation.
● Write to the Channel Configuration registers (ETPU_CxCR) to choose the Function to
be performed by each channel, and its parameter base address.
● Write to channel status control register (ETPU_CxSCR) to choose among the possible
variations within the function flow (FM bits).
● Write to SPRAM for parameter initialization of each configured channel.
● Write to register(s) ETPU_WDTR if one needs to enable and setup the Watchdog(s)
mode and timeout.
● Write to channel x Host Service Request registers (ETPU_CxHSRR) to initialize the
active channels.(at)
● Write to the channel interrupt enable register (ETPU_CIER) if interrupts are to be
enabled from the appropriate channels. Likewise for Data Transfer Requests
(ETPU_CDTRER). This can also be done through ETPU_CxCR.
● Write to channel x configuration registers (ETPU_CxCR) to enable each channel by
assigning it a high, middle, or low priority (CPR field).at
● Monitor the Host service request registers (ETPU_CxHSRR) for completion of
initialization.
● Write ETPU_MCR bit GTBE = 1 to start TCR1/TCR2 time base counting at same time
in both engines (may be done before or never, depending on the particular application
and use of Red Line bus).
See Section 24.7.2, Initialization code example.
as. Except when device debug request is asserted on power-on reset: in this case, the microengines wake-up in
halt state.
at. This operation is done before enabling active channels to avoid time events happening before the channel
initialization.
Software reset
eTPU has no Software reset. To abort infinite microcode loops, the Force END mechanism
must be used (see field FEND in Section , ETPU_ECR – eTPU Engine Configuration
Register).
Mailbox method, on the other hand, makes the functional thread check for the existence of
new data (Host to eTPU). It does not have to be responsible for the transfer, though: it may
access the TPA directly, and a Transfer Service can then be used to copy data from TPA to
PPA.
Resource polling
The use of polling while waiting for a condition or a resource (except semaphore lock)
should be avoided in order not to hang the microengine in long loops. This general
programming guideline is greatly enforced in eTPU, as a thread cannot be preempted for
any reason. Safer polling, albeit with long and indeterministic latency, can be obtained if one
issues a channel link to itself and terminates the thread. The microengine is then free to
other tasks, and the next poll happens at the next time the channel is serviced. This
mechanism can be combined with finite (timed out) loops for better latency.
Worst-Case Latency
for Channel 5
Worst-case latency for a channel depends both on the function running on that channel and
on the activity on other channels. Since the 32 eTPU channels must all share the same
execution unit, execution speed of a particular function varies with each system. The PWM
thread response is faster if there are no other active channels than if other channels are also
active. In addition, changing the priority scheme and channel number assignments can
change performance for a function even if the same set of functions are still active.
Each function is divided into treads, as shown in Figure 556 (see also Section 24.5.1,
Functions and threads). The eTPU Microengine executes one thread of a function at a time.
For example, the Microengine might execute thread 1 of PWM, then thread 3 of DIO, then
thread 2 of PWM, then thread 2 of SM, and so on. The amount of time the eTPU
Microengine grants a function to execute a thread varies with the number of microcode
instructions in the thread.
Since there is only one eTPU Microengine (in each eTPU engine), the eTPU cannot actually
execute the software for multiple functions simultaneously. However, the hardware for each
of the channels is independent. This means that, for example, all 32 channel signals can
change thread at the same moment, provided that the function software sets up the channel
hardware to do so beforehand.
With Host CPU code, the system designer assigns functions to channels and initializes the
functions. After initialization, functions typically run without Host intervention, except for
eTPU channel interrupts to the Host to give or receive information. Most functions can run
continuously with periodic servicing from the eTPU Microengine. As required, the channels
request service from the eTPU Microengine, and the eTPU Scheduler determines the order
in which the channels are serviced. Worst-case latency for a channel can be derived from
the details of the priority scheme that the scheduler uses (see Section 24.5.3, Scheduler).
S1 S1
S2 S3 S4 S2 S3 S4
S5 S6 S5 S6
S2 S3 S4
SM Function Threads
H M H L H M H
Time Slots of
Varying Lengths
H M H L H M H H M H L H M H H M H
Priority passing
If no channel of the priority level assigned to the time slot is requesting service, the eTPU
scheduler can pass priority to other levels. If no high-level channel is requesting service
during a high level time slot, a middle-level channel is granted service; or, if no middle level-
channel is requesting service, a low-level channel is granted service. If no middle-level
channel is requesting service during a middle-level time slot, a high-level channel is granted
service; or, if no high-level channel is requesting service, a low-level channel is granted
service. If no low-level channel is requesting service during a low-level time slot, a high-level
channel is granted service; or, if no high-level channel is requesting service, a middle-level
channel is granted service. If no channel is requesting service, the time slot sequence is
reset to state 1 and the scheduler idles until a request is received.
Priority passing is implemented in hardware and does not contribute to worst-case latency.
Time-slot transition
After each time slot, the eTPU must prepare for the next time slot. This preparation time
between each time slot is called a time-slot transition. See Section , Time slot transition.
Time-slot transitions can take from six up to ten system clocks.
Channel X Channel X
Serviced Serviced Next
Table 549. Longest threads and RAM accesses for old TPU functions
Function Longest thread RAM accesses
DIO 10 4
40 (no linking)
ITC 7
42 (linking)
OC 40 7
PWM 24 4
SPWM
14 4
Mode 0
18 4
Mode1
20 (no linking) 4
Mode 2
22 (linking 4
PMA 94 8
PMM 94 8
Table 549. Longest threads and RAM accesses for old TPU functions (continued)
Function Longest thread RAM accesses
PSP
Angle-Angle Mode 76 6
Angle-Time Mode 50 3
(1)
SM 160 21
PPWA
Mode 0 44(2) 9
Mode 1 50 10
Mode 2 44 9
Mode 3 50 10
1. Assumes one master and one slave. For each additional slave
a) Add 32 clocks and 2 RAM accesses, and
b) Add (STEP_RATE_CNT ∗ two clocks)
2. With one channel linked. Add two clocks for each additional channel linked.
H M H L H M H H
CHANNEL 0 CHANNEL 0
SERVICED SERVICED
= 10-CYCLE TIME SLOT TRANSITION CHANNEL 1
SERVICED
= 4-CYCLE NOP INSTRUCTION
H M H L H M H H
H M H L H M H H M H L H
With this system configuration, worst-case service time for each active channel is
determined as follows:
a) Longest thread of PWM is 24 CPU clocks with four RAM accesses.
24 + ((4 RAM accesses+1) * 0 * 2 CPU clock waits) = 24 CPU clocks
Channels 0-2 worst-case service time = 24 CPU clocks.
b) Longest thread of PPWA in mode 0 is 44 CPU clocks with nine RAM accesses.
44 + ((9 RAM accesses +1)* 0 * 2 CPU clock waits) = 44 CPU clocks
Channel 8 worst-case service time = 44 CPU clocks.
c) Longest thread of DIO is ten CPU clocks with four RAM accesses.
10 + ((4 RAM accesses+1) * 0 * 2 CPU clock waits) = 10 CPU clocks
Channel 15 worst-case service time = 10 CPU clocks.
To find the WCL for channel 0, assume channel 0 has just finished service.
Map the channels in the H-M-H-L-H-M-H sequence. See Figure 563.
H M H L H M H H M H L
To find the WCL for channel 0, assume channel 0 has just finished service. Map the
channels in the H-M-H-L-H-M-H sequence. See Figure 564.
H M H L H M H H M H L
H M H L H M H H M H L
Notice that channels 2 and 8 are well within their WCL requirements. The system could be
reconfigured as shown in Table 556 to give channels 0 and 1 a larger margin while still
keeping channels 2, 8 and 15 within their WCL requirements.
24.6.6 Endianness
The address of the 24-bit parameters and the most significant byte depends on the
endianness of the MCU. Table 557 shows the parameter addresses for big and little endian
machines.
32-bit 4*n
24-bit 4*n + 1 4*n
32-bit parameter’s most significant byte 4*n 4*n + 3
24-bit parameter’s most significant byte 4*n + 1 4*n + 2
Least significant byte 4*n + 3 4*n
24.7 Appendices
T4 T2 T4 T2 T4 T2 T4
System
Clock
MRLA/B
TDLA/B
(match on tn)
CAP1/2 tn
Pin Action
due Match Updated Pin Value
uInstr
Execution uInst = Set Pin uInstn uInstn+1
Pin Action
Updated Pin Value
due uInstr
T4 T2 T4 T2 T4 T2 T4
System
Clock
MRLA/B
TDLA/B
(match on tn)
CAP1/2 tn
Pin Action
Updated Pin Value
due Match
uInstr
Execution uInst = Set Pin uInstn uInstn+1
Pin Action
Updated Pin Value
due uInstr
T4 T2 T2 T2 T2 T4 T2
WAIT-T2
T CLOCKS T4 T2 T4 T4 T2 T4
SYS.CLOCK
μPC A1 A2 A2 A3
T2 T4 T4 T4 T4 T2 T4
WAIT-T4
T CLOCKS T2 T4 T2 T2 T4 T2 T4
SYS.CLOCK
μPC A1 A2 A2 A3
Max. Total Delay = Max. Synchronizer Delay + Max. Filter Delay + Edge
Detection Delay
Max. Total Delay = 4 + Max. Filter Delay
The channel filters can be bypassed, so nullifying the filter delays in the equations above.
The channel output flip-flops drive the eTPU output signals directly, without any
synchronous delays. Consult the MCU Reference Manual for information on additional
delays added at the integration.
**************************************************************************
*********
// Initilization program for eTPU engine 1, function microcode previously
loaded into SCM.
// No angle mode, eTPU UART FUNCTION configured to perform at channels 0 and
1.
// Channel0 - Tx_UART
// Channel1 - Rx_UART
// UART Specifications:
// Data word size: 8 bits
// Parity: disabled
// ***************************** Definitions
***********************************
//Bases
#define ETPU_BASE 0x000 //MCU-dependent
#define SPRAM_BASE 0x000 //MCU-dependent
//
#define ETPU_MCR (*((volatile unsigned int*)(ETPU_MCR_OFFSET +
ETPU_BASE)))
#define ETPU_TBCR_1 (*((volatile unsigned int*)(ETPU_TBCR_1_OFFSET
+ ETPU_BASE)))
#define ETPU_ECR_1 (*((volatile unsigned int*)(ETPU_ECR_1_OFFSET +
ETPU_BASE)))
#define ETPU_CIER_1 (*((volatile unsigned int*)(ETPU_CIER_1_OFFSET
+ ETPU_BASE)))
#define ETPU_CDTRER_1 (*((volatile unsigned int*)(ETPU_CDTRER_1_OFFSET
+ ETPU_BASE)))
#define ETPU_C0CR_1 (*((volatile unsigned int*)(ETPU_C0CR_1_OFFSET
+ ETPU_BASE)))
#define ETPU_C0SCR_1 (*((volatile unsigned int*)(ETPU_C0SCR_1_OFFSET
+ ETPU_BASE)))
#define ETPU_C0HSRR_1 (*((volatile unsigned int*)(ETPU_C0HSRR_1_OFFSET
+ ETPU_BASE)))
#define ETPU_C1CR_1 (*((volatile unsigned int*)(ETPU_C1CR_1_OFFSET
+ ETPU_BASE)))
#define ETPU_C1SCR_1 (*((volatile unsigned int*)(ETPU_C1SCR_1_OFFSET
+ ETPU_BASE)))
#define ETPU_C1HSRR_1 (*((volatile unsigned int*)(ETPU_C1HSRR_1_OFFSET
+ ETPU_BASE)))
#define MATCH_RATE_TX (*((volatile unsigned int*)(MATCH_RATE_TX_OFFSET
+ SPRAM_BASE)))
#define DATA_UART_TX (*((volatile unsigned int*)(DATA_UART_TX_OFFSET
+ SPRAM_BASE)))
#define DATA_SIZE_TX (*((volatile unsigned int*)(DATA_SIZE_TX_OFFSET
+ SPRAM_BASE)))
#define MATCH_RATE_RX (*((volatile unsigned int*)(MATCH_RATE_RX_OFFSET
+ SPRAM_BASE)))
// Macros
#define TCR2_PRESCALER(x) ((x & 0x3F) << 8)
#define TCR1_PRESCALER(x) (x & 0xFF)
#define CHANNEL_FUNCTION(x) ((x & 0x1F) << 16)
#define CHANNEL_PARAM_BASE_ADDR(x) (x & 0xFF)
#define FUNCTION_MODE(x) (x & 0x3)
#define MATCH_RATE_TRANS(x) (x & 0xFFFF)
#define MATCH_RATE_REC(x) (x & 0xFFFF)
#define DATA_WORD_Tx(x) (x & 0x3FFF)
#define DATA_SIZE_TRANS(x) (x & 0xF)
#define DATA_SIZE_REC(x) (x & 0xF)
#define HOST_SERV_REQ(x) (x & 0x7)
#define ENTRY_TABLE_BASE(x) (x & 0x1F)
//DATA_UART - SPRAM
#define CLEAR_TDRE 0x007FFFFF //TDRE must be zero to signal new valid
//data to be transmitted
void init_etpu( ){
do
{
temp = ETPU_C1HSRR_1;
} while (temp != 0);
//Write GTBE bit to start TCR1 and TCR2 time bases counting
//at the same time
ETPU_MCR = (ETPU_MCR | GTBE);
**************************************************************************
*********
transA [matchA] 1
transB [matchB] 2
matchA [matchB] both
transA [matches] both transB none 2
em_b_st none matchB [matchA] both
transA [matches] both transB none 2
matchA [matchB] both
transA none 1 transB none 2
matchB [matchA] both
em_b_dt none
matchB none 2 transB none 2
transA [matchA] 1
transB [matchB] 2
matchB/A none 2/1 transA [matches] both transB none 2
matchA/B none 1/2
bm_st none transA [matches] both transB none 2
transA [matches] both transB none 2
RM0029
Table 558. Predefined channel mode summary (continued)
RM0029
1st event 2nd event 3rd event 4th event
initially
Mode
blocked [blocks] [blocks] [blocks] [blocks]
event type Capt. event type Capt. event type Capt. event type Capt.
(enables(1)) (enables) (enables) (enables)
matchB/A none 2/1 transA none 1 transB [matches] 2
2/
matchA/B none 1/2 matchB/A none transB [matches] 2
transA none 1 none
transB [matches] 2
bm_dt none
2/
none/ matchB/A none transB [matches] 2
matchA/B none none
transA none 1 2
transB [matches] 2
transB [matches] 2
matchB none 2 transA [matches] both transB none 2
Doc ID 15177 Rev 8
matchA (transA) 1
transA [matches] both transB none 2
RM0029
RM0029 Enhanced Time Processing Unit (eTPU2)
The MISC signature generation starts by clearing the MISC Accumulator value to 0 and
preloading the MISC Counter with the highest SCM address. It then steps through each
address decrementing the counter, reading 32 bit values and following the algorithm below:
If the least significant bit in MISC is 1 then
MISC = MISC right shifted by 1 bit
MISC = MISC XOR 0x80400007
else
MISC = MISC right shifted by 1 bit
end if
MISC = MISC XOR RAM data
The code example below shows an excerpt of C code that calculates the MISC signature for
a given array of data, based on the previous algorithm:
#define SCM_size (MAX_SCM_ADDRESS / 4) /* last byte address - converted
to 32-bit word */
#define POLY 0x80400007 /* G(x) = 1 + x1 + x2 + x22 + x31 */
/*************************************************************************
******
FUNCTION : void calc_misc()
PURPOSE : This function calculates the MISC value.
INPUTS NOTES : none
RETURNS NOTES : MISC value
GENERAL NOTES : the array’unsigned int data[]’ represents the actual memory
array, organized in 32-bit words.
**************************************************************************
*****/
unsigned int calc_misc (void)
{
int j; /* loop counter */
};
The value calculated by this algorithm must be loaded into register ETPU_MISCCMPR prior
to activating the SCM MISC calculator in eTPU. Once the MISC calculator is activated (bit
SCMMISEN in register ETPU_MCR is written to 1) eTPU itself will start this procedure(au)
reading the SCM whenever allowed by microengine. At the end of the cycle, when all the
array has been read and the SCM signature is calculated, the Host CPU can be notified via
Global Exception if the MISC Accumulator does not match the value in ETPU_MISCCMPR.
Equation 12 shows how the average time taken by MISC to complete the signature of the
whole SCM can be calculated.
Further detail on MISC calculation can be found on Section , SCM Test – Multiple input
signature calculator.
au. eTPU MISC hardware is optimized to read 32-bit words from memory and to calculate this CRC in parallel,
rather than shifting one bit at a time. The actual implementation inside eTPU, although bringing to the same
results, does not match exactly the algorithm shown here.
AN12/MA0/SDS
These pins are configured by setting the Pad Configuration Register 215 (SIU_PCR215) on
the SIU.
Note: Attempts to convert the input voltage applied to this pin while the MA0 or the SDS functions
are selected will result in an undefined conversion result.
As this pin is also used by digital logic, it has reduced analog to digital conversion accuracy
when compared to the AN[0:11,16:39] analog input pins.
AN13/MA1/SDO
These pins are configured by setting the Pad Configuration Register 216 (SIU_PCR216) on
the SIU.
Note: Attempts to convert the input voltage applied to this pin while the MA1 or the SDO functions
are selected will result in an undefined conversion result.
As this pin is also used by digital logic, it has reduced analog to digital conversion accuracy
when compared to the AN[0:11,16:39] analog input pins.
AN14/MA2/SDI
These pins are configured by setting the Pad Configuration Register 217 (SIU_PCR217) on
the SIU.
Note: Attempts to convert the input voltage applied to this pin while the MA2 or the SDI functions
are selected will result in an undefined conversion result.
As this pin is also used by digital logic, it has reduced analog to digital conversion accuracy
when compared to the AN[0:11,16:39] analog input pins.
AN15/FCK
These pins are configured by setting the Pad Configuration Register 218 (SIU_PCR218) on
the SIU.
Note: Attempts to convert the input voltage applied to this pin while the FCK function is selected
will result in an undefined conversion result.
As this pin is also used by digital logic, it has reduced analog to digital conversion accuracy
when compared to the AN[0:11,16:39] analog input pins.
External Triggers
The source of the eQADC external triggers can be the eTPU, the eMIOS, or an external
signal. The source is selected by configuring the eQADC Trigger Input Select Register
(SIU_ETISR) on the SIU.
25.2 Introduction
Priority
Abort
CQueue y
MUX
AN7/DAN3- Cont
AN8/ANW
ADC0
AN9/ANX/TBIAS 32 bits
AN10/ANY
AN11/ANZ
Result
AN12/T50PVREF RFIFOx
Decoder
Format
AN13/T25PVREF REF BIAS and
GEN GEN Calibra- RQueue y
AN14/T75PVREF tion
AN15
AN16/ 16 bits
AN17 CBuffer1
MUX
AN18
AN19 ADC1 Abort
Cont
AN20-39
DMA and
Pre-Charge Interrupt
REFBYPC Requests
MA0 MUX
Channel DMA Transaction
MA1 Control Done Signals
Logic Number
MA2
EQADC SSI
Transmit Buffer
VDDA
VSSA
VRH EQADC EQADC
Parallel Side Interface Synchronous Serial
VRL
(EQADC PSI) Interface (EQADC SSI)
SDS
SDO
FCK
SDI
NOTE: x=0, 1, 2, 3, 4, 5
y=0, 1, 2, 3, ...
25.2.3 Features
The EQADC Block includes these distinctive features:
● Two independent on-chip RSD Cyclic ADCs
– 8, 10, and 12 bits AD Resolution
– Targets up to 10 bit accuracy at 500KSample/s (ADC_CLK=7.5 MHz) and 8 bit
accuracy at 1M Sample/s (ADC_CLK=15 MHz) for differential conversions
– Selectable common mode conversion range (0 - 5V; 0 - 2.5V; 0 - 1.25V)
– Differential conversions
– Differential channels include variable gain amplifier for improved dynamic range
(x1; x2; x4)
– Differential channels include programmable pull-up and pull-down resistors for
biasing and sensor diagnostics (200k ohms; 100k ohms; 5k ohms)
– Sample times of 2 (default), 8, 64 or 128 ADC clock cycles
– Provides time stamp information when requested
– Parallel interface to EQADC CFIFOs and RFIFOs
– Supports both right-justified unsigned and signed formats for conversion results
– The REFBYPC pin stabilizes one of internal generated reference
– Temperature sensor
– Ability to measure directly Vdd
● Automatic application of ADC calibration constants
– Provision of reference voltages (25%VREF and 75%VREF) for ADC calibration
purposes
● 40 input channels available to the two on-chip ADCs
● 4 pairs of differential analog input channels
● Full duplex synchronous serial interface to an external device
– Has a free-running clock for use by the external device
– Supports a 26-bit message length
– Transmits a null message when there are no triggered CFIFOs with commands
bound for external CBuffers, or when there are triggered CFIFOs with commands
bound for external CBuffers but the external CBuffers are full
● Parallel Side Interface to communicate with several on-chip companion modules
● STAC bus Client Interface to import an alternative timebase to the internal time stamp
● Priority Based CFIFOs
– Supports six CFIFOs with fixed priority. The lower the CFIFO number, the higher
its priority. When commands of distinct CFIFOs are bound for the same CBuffer,
the higher priority CFIFO is always served first.
– Immediate conversion command feature with conversion abort control
– Streaming mode operation of CFIFO0 to execute some commands several times
– Supports software and several hardware trigger modes to arm a particular CFIFO
– Generates interrupt when command coherency is not achieved
● External Hardware Triggers
– Supports rising edge, falling edge, high level and low level triggers
– Supports configurable digital filter
the CFIFO that caused the abort of the previous serial transmission will only be
transmitted after debug mode is exited.
● Command/Null message transfer through serial interface was aborted but next serial
transmission did not start.
If the debug mode entry request is detected between the time a previous serial
transmission was aborted and the start of the next transmission, the EQADC will
complete the abort procedure before halting future command transfers from any
CFIFO. The message of the CFIFO that caused the abort of the previous serial
transmission will only be transmitted after debug mode is exited.
the completion of the serial transmission, therefore, after stop mode entry request is
detected, the EQADC status bits will only stop changing several system clock cycles
after the on-going serial transmission completes.
If the command message transmission is aborted, the EQADC will complete the abort
procedure before halting future command transfers from any CFIFO. The message of
the CFIFO that caused the abort of the previous serial transmission will only be
transmitted after stop mode is exited.
● Command/Null message transfer through serial interface was aborted but next serial
transmission did not start.
If the stop mode entry request is detected between the time a previous serial
transmission was aborted and the start of the next transmission, the EQADC will
complete the abort procedure before halting future command transfers from any
CFIFO. The message of the CFIFO that caused the abort of the previous serial
transmission will only be transferred after stop mode is exited.
25.4.1 Overview
The following is a list of external pins.
Note: At chip integration level, some of the digital and analog signals listed here might share pins
or not be available external to the chip. Refer to the Signals chapter for details.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ICEA0
ICEA1
R 0 0 0 0 0 0 0 0 0 0
ESSIE DBG
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Note: Disabling the EQADC SSI (0b00 write to ESSIE) or serial transmissions from the EQADC
SSI (0b10 write to ESSIE) while a serial transmission is in progress results in the abort of
that transmission.
Note: When disabling the EQADC SSI, the FCK will not stop until it reaches its low phase.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0
NMF
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
NMF
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 564. EQADC Null Message Send Format Register (EQADC_NMSFR) field description
Field Description
The EQADC Null Message Send Format Register only affects how the EQADC sends a null
message, but it has no control on how the EQADC detects a null message on receiving
data. The EQADC detects a null message by decoding the MESSAGE_TAG field on the
receive data. Refer to page 1099 for more information on the MESSAGE_TAG field.
Note: Writing to the EQADC Null Message Send Format Register while the serial transmissions
are enabled (ESSIE field configured to 0b11 in Section , EQADC Module Configuration
Register (EQADC_MCR)) is not recommended.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0
DFL
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Table 565. EQADC External Trigger Digital Filter Register (EQADC_ETDFR) field description
Field Description
DFL
FilterPeriod = ( S ystemClockPeriod × 2 ) + 1 ( S ystemClockPeriod )
28-31
DFL[0:3]
Minimum clock counts for which an ETRIG signal needs to be stable to be passed through
the filter are shown in Table 566. Refer to Section , External Trigger Event Detection, for
more information on the digital filter.
The DFL field must only be written when the MODEx of all CFIFOs are configured to
disabled.When the digital filter is bypassed by using the input control, the DFL is not
considered and the trigger input signal is not filtered.
0b0000 2 16.66
0b0001 3 25.00
0b0010 5 41.66
0b0011 9 75.00
0b0100 17 141.66
0b0101 33 275.00
0b0110 65 541.66
0b0111 129 1075.00
0b1000 257 2141.66
0b1001 513 4275.00
0b1010 1025 8541.66
0b1011 2049 17075.00
0b1100 4097 34141.00
0b1101 8193 68275.00
0b1110 16385 136541.66
0b1111 32769 273075.00
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W CF_PUSHx
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W CF_PUSHx
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RF_POPx
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0
CFE STR
MODE0 AMODE0
W EE0 ME0 SSE CFIN
0 V0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 569. EQADC CFIFO Control Register x (EQADC_CFCRx) field description (continued)
Field Description
Writing CFINVx only invalidates commands stored in CFIFOx; previously transferred commands
that are waiting for execution, that is commands stored in the CBuffers, will still be executed,
and results generated by them will be stored in the appropriate RFIFO.
CFINVx must not be written unless the MODEx is configured to disabled, and CFIFO status is
IDLE.
If MODEx is not disabled, it must not be changed to any other mode besides disabled. If MODEx is
disabled and the CFIFO status is IDLE, MODEx can be changed to any other mode.
0b0000 Disabled
0b0001 Software Trigger, Single Scan
0b0010 Low Level Gated External Trigger, Single Scan
0b0011 High Level Gated External Trigger, Single Scan
0b0100 Falling Edge External Trigger, Single Scan
0b0101 Rising Edge External Trigger, Single Scan
0b0110 Falling or Rising Edge External Trigger, Single Scan
0b0111 - 0b1000 Reserved
0b1001 Software Trigger, Continuous Scan
0b1010 Low Level Gated External Trigger, Continuous Scan
0b0000 Disabled
0b0001 Reserved
0b0010 Reserved
0b0011 Reserved
0b0100 Falling Edge External Trigger, Single Scan
0b0101 Rising Edge External Trigger, Single Scan
0b0110 Falling or Rising Edge External Trigger, Single Scan
0b0111 - 0b1111 Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R NCIE TORI EOQI CFUI 0 CFFE CFFS 0 0 0 0 RFOI 0 RFD RFD
PIE0
W 0 E0 E0 E0 0 0 E0 E0 S0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R NCIE TORI EOQI CFUI 0 CFFE CFFS 0 0 0 0 RFOI 0 RFD RFD
PIE1
W 1 E1 E1 E1 1 1 E1 E1 S1
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 572. EQADC Interrupt and DMA Control Register x (EQADC_IDCRx) field description
Field Description
Table 572. EQADC Interrupt and DMA Control Register x (EQADC_IDCRx) field description
Field Description
Table 572. EQADC Interrupt and DMA Control Register x (EQADC_IDCRx) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 573. EQADC FIFO and Interrupt Status Register x (EQADC_FISRx) field description
Field Description
Non-Coherency Flag
NCFx is set whenever a command sequence being transferred through CFIFOx becomes
non coherent. If NCIEx in Section , EQADC Interrupt and DMA Control Registers
0 (EQADC_IDCR), and NCFx are asserted, an interrupt request will be generated. Write “1”
NCFx to clear NCFx. Writing a “0” has no effect. For more information refer to Section , Command
Sequence Non-Coherency Detection.
1 Command sequence being transferred by CFIFOx became non-coherent.
0 Command sequence being transferred by CFIFOx is coherent.
Trigger Overrun Flag for CFIFOx
TORFx is set when trigger overrun occurs for the specified CFIFO in edge or level trigger
mode. Trigger overrun occurs when an already triggered CFIFO receives an additional
trigger. When TORIEx in Section , EQADC Interrupt and DMA Control Registers
(EQADC_IDCR), and TORFx are asserted, an interrupt request will be generated.
Apart from generating an independent interrupt request for a CFIFOx Trigger Overrun
event, the EQADC also provides a combined interrupt at which the Result FIFO Overflow
Interrupt, the Command FIFO Underflow Interrupt, and the Command FIFO Trigger
1 Overrun Interrupt requests of ALL CFIFOs are ORed. When RFOIEx, CFUIEx, and TORIEx
TORFx are all asserted, this combined interrupt request is asserted whenever one of the following
18 flags becomes asserted: RFOFx, CFUFx, and TORFx (assuming that all interrupts are
enabled). See Section 25.6.8, EQADC DMA/Interrupt request, for details.
Write “1” to clear the TORFx bit. Writing a “0” has no effect.
1 Trigger overrun occurred.
0 No trigger overrun occurred.
The trigger overrun flag will not set for CFIFOs configured for software trigger mode.
Table 573. EQADC FIFO and Interrupt Status Register x (EQADC_FISRx) field description
Field Description
Pause Flag x
PF behavior changes according to the CFIFO trigger mode. In edge trigger mode, PFx is
set when the EQADC completes the transfer of an entry with an asserted Pause bit from
CFIFOx. In level trigger mode, when CFIFOx is in TRIGGERED status, PFx is set when
CFIFO status changes from TRIGGERED due to the detection of a closed gate. An
interrupt routine, generated due to the asserted PF, can be used to verify if a complete scan
of the CQueue was performed. If a closed gate is detected while no command transfers are
taking place, it will have immediate effect on the CFIFO status. If a closed gate is detected
while a command transfer to an on-chip CBuffer is taking place, it will only affect the CFIFO
status when the transfer completes. If a closed gate is detected during the serial
transmission of a command to the external device, it will have no effect on the CFIFO status
until the transmission completes. The transfer of entries bound for the on-chip ADCs is
considered completed when they are stored in the appropriate CBuffer. The transfer of
entries bound for the external device is considered completed when the serial transmission
of the entry is completed. In software trigger mode, PFx will never become asserted.
2 If PIEx in Section , EQADC Interrupt and DMA Control Registers (EQADC_IDCR), and PFx
PFx are asserted, an interrupt will be generated. Write “1” to clear the PFx. Writing a “0” has no
effect. Refer to Section , Pause Status, for more information on the Pause Flag.
1 Entry with asserted PAUSE bit was transferred from CFIFOx (CFIFO in edge trigger
mode), or CFIFO status changes from TRIGGERED due to detection of a closed gate
(CFIFO in level trigger mode).
0 Entry with asserted PAUSE bit was not transferred from CFIFOx (CFIFO in edge trigger
mode), or CFIFO status did not change from TRIGGERED due to detection of a closed
gate (CFIFO in level trigger mode).
In edge trigger mode, an asserted PFx only implies that the EQADC has finished transferring a
command with an asserted PAUSE bit from CFIFOx. It does not imply that result data for the
current command and for all previously transferred commands has been returned to the
appropriate RFIFO.
In software or level trigger mode, when the EQADC completes the transfer of an entry from
CFIFOx with an asserted PAUSE bit, PFx will not be set and transfer of commands will
continue without pausing.
An asserted EOQFx only implies that the EQADC has finished transferring a command with an
asserted EOQ bit from CFIFOx. It does not imply that result data for the current command and
for all previously transferred commands has been returned to the appropriate RFIFO.
Table 573. EQADC FIFO and Interrupt Status Register x (EQADC_FISRx) field description
Field Description
Writing “1” to CFFFx when CFFSx is asserted (DMA requests selected) is not allowed.
When generation of interrupt requests is selected (CFFSx=0), CFFFx must only be cleared in the
ISR after the CFIFOx push register is accessed.
Table 573. EQADC FIFO and Interrupt Status Register x (EQADC_FISRx) field description
Field Description
Writing “1” to RFDFx when RFDSx is asserted (DMA requests selected) is not allowed.
When the generation of interrupt requests is selected (RFDSx=0), RFDFx must only be cleared in
the ISR after the RFIFOx pop register is accessed.
Table 573. EQADC FIFO and Interrupt Status Register x (EQADC_FISRx) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0
TC_CF0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0
TC_CF1
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0
TC_CF2
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0
TC_CF3
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Register address:EQADC_BASE+0x098
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0
TC_CF4
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0
TC_CF5
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 574. EQADC CFIFO Transfer Counter Register x (EQADC_CFTCRx) field description
Field Description
If CFIFOx is in TRIGGERED state when its MODEx field is programmed to disabled, the exact
number of entries transferred from the CFIFO until that point - TC_CFx - is only known after
the CFIFO status changes to IDLE, as indicated by CFSx. For details refer to Section ,
Disabled Mode.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CFS0_TCB CFS1_TCB CFS2_TCB CFS3_TCB CFS4_TCB CFS5_TCB
R 0 0 0 0
0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 LCFTCB0 TC_LCFTCB0
W
RESET: 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 LCFTCB1 TC_LCFTCB1
RESET: 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ECB
R LCFTSSI TC_LCFTSSI
NI
RESET: 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 575. EQADC CFIFO Status Snapshot Register x (EQADC_CFSSRx) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
CFIFO Status
CFSx[0:1] CFSx indicates the current status of CFIFOx. Refer to Table 579 for more information on
CFIFO status.
CFIFO is disabled.
CFIFO is in single-scan edge or level trigger mode and does not have SSS
IDLE 0b00 asserted.
EQADC completed the transfer of the last entry of the CQueue in single-scan
mode.
Reserved 0b01 Not applicable.
CFIFO Mode is modified to continuous-scan edge or level trigger mode.
CFIFO Mode is modified to single-scan edge or level trigger mode and SSS is
asserted.
WAITING
CFIFO Mode is modified to single-scan software trigger mode and SSS is
FOR 0b10
negated.
TRIGGER
CFIFO is paused.
EQADC transferred the last entry of the queue in continuous-scan edge trigger
mode.
TRIGGERED 0b11 CFIFO is triggered
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0
MDT BR
W
RESET: 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1
= Unimplemented or Reserved
The MDT field must only be written when the serial transmissions from the EQADC SSI are
disabled - See ESSIE field in Section , EQADC Module Configuration Register
(EQADC_MCR).
Baud Rate Field
The BR field selects system clock divide factor as shown in Table 582. The baud clock is
28-31 calculated by dividing the system clock by the clock divide factor specified with the BR field.
BR[0:3]
The BR field must only be written when the EQADC SSI is disabled - See ESSIE field in
Section , EQADC Module Configuration Register (EQADC_MCR).
0b000 1
0b001 2
0b010 3
0b011 4
0b100 5
0b101 6
0b110 7
0b111 8
0b0000 2
0b0001 3
0b0010 4
0b0011 5
0b0100 6
0b0101 7
0b0110 8
0b0111 9
0b1000 10
0b1001 11
0b1010 12
0b1011 13
0b1100 14
0b1101 15
0b1110 16
0b1111 17
1. If the system clock is divided by a odd number then the serial clock will have a duty cycle different from
50%.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R RDV 0 0 0 0 0 R_DATA
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R R_DATA
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 583. EQADC SSI Receive Data Register (EQADC_SSIRDR) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
REDBS2 SRV2 REDBS1 SRV1
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 584. EQADC STAC Client Configuration Register (EQADC_REDLCCR) field description
Field Description
0b0000 TBASEm[0:15]
0b0001 TBASEm[1:16]
0b0010 TBASEm[2:17]
0b0011 TBASEm[3:18]
0b0100 TBASEm[4:19]
0b0101 TBASEm[5:20]
0b0110 TBASEm[6:21]
0b0111 TBASEm[7:22]
0b1000 TBASEm[8:23]
Others Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO0_DATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO0_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO1_DATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO1_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO2_DATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO2_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO3_DATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO3_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO4_DATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO4_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO5_DATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO5_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Table 587. EQADC CFIFOx Registers (EQADC_CFxRw) (w=0, .., 3) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CFIFO0_EDATAw
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R CFIFO0_EDATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RFIFO0_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RFIFO1_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RFIFO2_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RFIFO3_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RFIFO4_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RFIFO5_DATAw
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Table 589. EQADC RFIFOx Registers (EQADC_RFxRw) (w=0, .., 3) field description
Field Description
ADC
Use Access
Address
ADC0/ADC1(1) Conversion Command for Standard Configuration (See Section ,
0x00 Write
Conversion Command Format for the Standard Configuration)
0x01 ADC0/ADC1 Configuration Control Register (ADC0_CR, ADC1_CR) Write/Read
0x02 Time Stamp Control Register (ADC_TSCR) Write/Read
0x03 Time Base Counter Register (ADC_TBCR) Write/Read
0x04 ADC0/ADC1 Gain Calibration Constant Register (ADC0_GCCR, ADC1_GCCR) Write/Read
0x05 ADC0/ADC1 Offset Calibration Constant Register (ADC0_OCCR, ADC1_OCCR) Write/Read
0x06- 0x07 Reserved -
ADC0/ADC1 Conversion Command for Alternate Configuration 1 (See Section ,
0x08 Write
Conversion Command Format for Alternate Configurations)
ADC0/ADC1 Conversion Command for Alternate Configuration 2 (See Section ,
0x09 Write
Conversion Command Format for Alternate Configurations)
ADC0/ADC1 Conversion Command for Alternate Configuration 3 (See Section ,
0x0A Write
Conversion Command Format for Alternate Configurations)
ADC
Use Access
Address
ADC0/ADC1 Conversion Command for Alternate Configuration 4 (See Section ,
0x0B Write
Conversion Command Format for Alternate Configurations)
ADC0/ADC1 Conversion Command for Alternate Configuration 5 (See Section ,
0x0C Write
Conversion Command Format for Alternate Configurations)
ADC0/ADC1 Conversion Command for Alternate Configuration 6 (See Section ,
0x0D Write
Conversion Command Format for Alternate Configurations)
ADC0/ADC1 Conversion Command for Alternate Configuration 7 (See Section ,
0x0E Write
Conversion Command Format for Alternate Configurations)
ADC0/ADC1 Conversion Command for Alternate Configuration 8 (See Section ,
0x0F Write
Conversion Command Format for Alternate Configurations)
0x10-0x2F Reserved -
0x30 Alternate Configuration 1 Control Register (ADC_ACR1) Write/Read
0x31 ADC0/ADC1 Alternate Gain 1 Register (ADC0_AGR1, ADC1_AGR1) Write/Read
0x32 ADC0/ADC1 Alternate Offset 1 Register (ADC0_AOR1, ADC1_AOR1) Write/Read
0x33 Reserved -
0x34 Alternate Configuration 2 Control Register (ADC_ACR2) Write/Read
0x35 ADC0/ADC1 Alternate Gain 2 Register (ADC0_AGR2, ADC1_AGR2) Write/Read
0x36 ADC0/ADC1 Alternate Offset 2 Register (ADC0_AOR2, ADC1_AOR2) Write/Read
0x37 Reserved -
0x38 Alternate Configuration 3 Control Register (ADC_ACR3) Write/Read
0x39 Reserved -
0x3A Reserved -
0x3B Reserved -
0x3C Alternate Configuration 4 Control Register (ADC_ACR4) Write/Read
0x3D Reserved -
0x3E Reserved -
0x3F Reserved -
0x40 Alternate Configuration 5 Control Register (ADC_ACR5) Write/Read
0x41 Reserved -
0x42 Reserved -
0x43 Reserved -
0x44 Alternate Configuration 6 Control Register (ADC_ACR6) Write/Read
0x45 Reserved -
0x46 Reserved -
0x47 Reserved -
0x48 Alternate Configuration 7 Control Register (ADC_ACR7) Write/Read
0x49 Reserved -
0x4A Reserved -
0x4B Reserved -
0x4C Alternate Configuration 8 Control Register (ADC_ACR8) Write/Read
0x4D-0x6F Reserved -
0x70 Pull Up/Down Control Register0 (ADC_PUDCR0) Write/Read
ADC
Use Access
Address
0x71 Pull Up/Down Control Register0 (ADC_PUDCR1) Write/Read
0x72 Pull Up/Down Control Register0 (ADC_PUDCR2) Write/Read
0x73 Pull Up/Down Control Register0 (ADC_PUDCR3) Write/Read
0x74 Pull Up/Down Control Register0 (ADC_PUDCR4) Write/Read
0x75 Pull Up/Down Control Register0 (ADC_PUDCR5) Write/Read
0x76 Pull Up/Down Control Register0 (ADC_PUDCR6) Write/Read
0x77 Pull Up/Down Control Register0 (ADC_PUDCR7) Write/Read
0x78-0x97 Reserved for ADC_PUDCR8 to ADC_PUDCR39 -
0x98-0xFF Reserved -
1. Throughout the table, ADC0/ADC1 indicates that if the command is stored in CBuffer0 it will be applied to ADC0 and if in
CBuffer1 it applies to ADC1. If this indication is omitted the register applies for both ADC0 and ADC1, independent of the
CBuffer used.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RESET: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
= Unimplemented or Reserved
Conversion commands sent to the CBuffer of a disabled ADC are ignored by the ADC control
hardware.
When the ADC0/1_EN status is changed from asserted to negated, the ADC Clock will not stop
until it reaches its low phase.
Both ADC0 and ADC1 of an eQADC module pair must be enabled before calibrating or using
either ADC0 or ADC1 of the pair. Failure to enable both ADC0 and ADC1 of the pair can result
in inaccurate conversions.
Both ADC0/1_EMUX bits must not be asserted at the same time.
The ADC0/1_EMUX bit must only be written when the ADC0/1_EN bit is negated. ADC0/1_EMUX
can be set during the same write cycle used to set ADC0/1_EN.
The ADC0/1_CLK_SEL bits must only be written when the ADC0/1_EN bit is negated.
ADC0/1_CLK_SEL can be set during the same write cycle used to set ADC0/1_EN.
The ADC0/1_CLK_PS field must only be written when the ADC0/1_EN bit is negated. This field
can be configured during the same write cycle used to set ADC0/1_EN.
0b00000 2 3
0b00001 4 5
0b00010 6 7
0b00011 8 9
0b00100 10 11
0b00101 12 13
0b00110 14 15
0b00111 16 17
0b01000 18 19
Table 593. System Clock Divide Factor for ADC Clock (continued)
System Clock Divide Factor
ADC0/1_CLK_PS[0:4]
ADC0/1_ODD_PS = 0 ADC0/1_ODD_PS = 1
0b01001 20 21
0b01010 22 23
0b01011 24 25
0b01100 26 27
0b01101 28 29
0b01110 30 31
0b01111 32 33
0b10000 34 35
0b10001 36 37
0b10010 38 39
0b10011 40 41
0b10100 42 43
0b10101 44 45
0b10110 46 47
0b10111 48 49
0b11000 50 51
0b11001 52 53
0b11010 54 55
0b11011 56 57
0b11100 58 59
0b11101 60 61
0b11110 62 63
0b11111 64 65
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0
TBC_CLK_PS
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 594. ADC Time Stamp Control Register (ADC_TSCR) field description
Field Description
Note: If TBC_CLK_PS is not set to disabled, it must not be changed to any other value besides
disabled. If TBC_CLK_PS is set to disabled it can be changed to any other value.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
TBC_VALUE
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 596. ADC Time Base Counter Register (ADC_TBCR) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0
GCC0
W
RESET: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0
GCC1
W
RESET: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 597. ADC0/1 Gain Calibration Constant Registers (ADC0/1_GCCR) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0
OCC0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0
OCC1
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 598. ADC0/1 Offset Calibration Constant Registers (ADC0/1_OCCR) field description
Field Description
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 599. Alternate Configuration 1-8 Control Registers (ADC_ACR1-8) field description
Field Description
Table 599. Alternate Configuration 1-8 Control Registers (ADC_ACR1-8) field description
Field Description
00 X1 gain
01 X2 gain
10 X4 gain
11 Reserved
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0
ALTGCC0x
W
RESET: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0
ALTGCC1x
W
RESET: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Figure 614. ADC0/1 Alternate x Gain Register (ADC0/1_AGRx, x=1-2) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0
ALTOCC0x
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
R 0 0
ALTOCC1x
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 604. ADC0/1 Alternate x Offset Registers (ADC0/1_AORx, x=1-2) field description
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0
CH_PULLx PULL_STRx
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Table 605. ADC Pull Up/Down Control Register x (ADC_PUDCRx, x=0-7) field description
Field Description
00 Reserved
01 200 Kohms pull resistor
10 100 Kohms pull resistor
11 5 Kohms (Approx.) pull resistor(1)
1. This set is not available for CH_PULL_x = 11.
25.6.1 Overview
The EQADC provides a parallel interface to two on-chip ADCs, a single master to single
slave serial interface to an off-chip external device and a parallel side interface to an on-chip
companion module, like a decimation filter. The two on-chip ADCs are architected to allow
access to all the analog channels.
Initially, command data is contained in system memory in a user defined data structure
which is likely to be a queue as depicted in Figure 570(ax). Command data is moved
between the CQueues and CFIFOs by the host CPU or by the DMAC which respond to
interrupt and DMA requests generated by the EQADC. The EQADC supports software and
ax. Command and result data can be stored in the system memory in any user defined data structure. However, in
this document it will be assumed that the data structure of choice is a queue, since it is the most likely data
structure to be used and because queues are the only type of data structure supported by the DMAC.
hardware triggers from other blocks or external pins to initiate transfers of commands from
the multiple CFIFOs to the on-chip ADCs or to the external device.
CFIFOs can be configured in single-scan or continuous-scan mode. When a CFIFO is
configured in single-scan mode, the EQADC scans the CQueue one time. The EQADC
stops transferring commands from the triggered CFIFO after detecting the EOQ bit set in the
last transfer. After an EOQ bit is detected, software involvement is required to rearm the
CFIFO so that it can detect new trigger events.
When a CFIFO is configured for continuous-scan mode, the whole CQueue is scanned
multiple times. After the detection of an asserted EOQ bit in the last command transfer,
command transfers can continue or not depending on the mode of operation of the CFIFO.
CFIFO0 has a special configuration option to allow a repetitive sequence of conversion
commands (streaming mode) with high priority characteristics (abort operation) or not. This
feature is useful with the immediate conversion command feature that allows the immediate
execution of a conversion command or a sequence of commands with critical timing even
with the possibility of abortion of some current ADC conversion in progress. The aborted
command is stored and executed again as soon as the critical timing commands have been
finished.
The multiple Result FIFOs (RFIFOs) can receive data from the on-chip ADCs, from an off-
chip external device or from an on-chip companion module. Data from the on-chip ADCs
can be routed to the side interface, processed by the on-chip companion module and then
routed back through the side interface to the RFIFOs.
Priority
ADCs
Abort
ADC Cont
32 bits
32 bits
EQADC SSI
Logic
ADC &
Buffers CFIFO Header
Command Message ADC Command
corresponding RQueue by the host CPU or by the DMAC as they respond to interrupt and
DMA requests generated by the EQADC. The EQADC generates these requests whenever
an RFIFO has at least one entry.
Note: While conversion results are returned, the EQADC is checking the number of entries in the
RFIFO and generating requests to empty it. The process of pushing and popping ADC
results to and from an RFIFO can occur simultaneously.
Host CPU
or
DMAC
Inside EQADC
System Memory
FIFO Control
Unit
RFIFOx RQueue y
Resolution
Decoder
Result
Format and
Adjust
ADC Calibration
Sub-Block
16 bits 16 bits
transmission. Information contained in the CFIFO header, together with the upper bit of the
ADC Command is used by the FIFO Control Unit to arbitrate which triggered CFIFO will
transfer the next command. ADC commands are encoded inside the least significant 26 bits
of the command message.
A Result message is composed of an RFIFO header and an ADC Result. The FIFO Control
Unit decodes the information contained in the RFIFO header to determine the RFIFO to
which the ADC result should be sent. An ADC result is always 16 bits long.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
PAU RESERVE EB
EOQ REP BN CAL MESSAGE_TAG LST TSR FMT
SE D (0b0)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CHANNEL_NUMBER 0 0 0 0 0 0 0 0
ADC Command
Table 608. Conversion Command Format for the Standard Configuration field description
Field Description
If both the PAUSE and EOQ bits are asserted in the same command message the respective flags
are set, but the CFIFO status changes as if only the EOQ bit were asserted.
Pause Bit
The Pause bit allows software to create sub-queues within a CQueue. When the EQADC
completes the transfer of a command with an asserted Pause bit, the CFIFO enters the
WAITING FOR TRIGGER state. Refer to Section , CFIFO Operation Status, for a
description of the state transitions. The Pause bit is only valid when CFIFO operation mode
1 is configured to single or continuous-scan edge trigger mode.
PAUSE 1 Enter WAITING FOR TRIGGER state after transfer of the current Command Message.
0 Do not enter WAITING FOR TRIGGER state after transfer of the current Command
Message.
If both the PAUSE and EOQ bits are asserted in the same command message the respective flags
are set, but the CFIFO status changes as if only the EOQ bit were asserted.
Table 608. Conversion Command Format for the Standard Configuration field description
Field Description
MESSAGE_TAG Field
The MESSAGE_TAG allows the EQADC to separate returning results into different
8-11 RFIFOs. Table 609 describes the meaning of the MESSAGE_TAG. When the EQADC
MESSAGE_TAG transfers a command, the MESSAGE_TAG is included as part of the command. Eventually
[0:3] the external device/on-chip ADC returns the result with the same MESSAGE_TAG. The
EQADC separates incoming messages into different RFIFOs by decoding the
MESSAGE_TAG of the incoming data.
12-13
Long Sampling Time
LST
These two bits determine the duration of the sampling time in ADC clock cycles.
[0:1]
Time Stamp Request
TSR indicates the request for a time stamp. When TSR is asserted, the on-chip ADC
14 Control Logic returns a time stamp for the current conversion command after the
TSR conversion result is sent to the RFIFOs. See Section , Time Stamp Feature, for details.
Return conversion time stamp after the conversion result.
Return conversion result only.
Conversion Data Format
FMT specifies to the EQADC how to format the 12-bit conversion data returned by the
15 ADCs into the 16-bit format which is sent to the RFIFOs. See Section , ADC Result Format
FMT for On-Chip ADC Operation, for details.
Right justified signed.
Right justified unsigned.
Channel Number Field
16-23
CHANNEL_NUMBER The CHANNEL_NUMBER field selects the analog input channel. The software programs
this field with the channel number corresponding to the analog input pin to be sampled and
[0:7]
converted. See Section , Channel assignment, for details.
Sampling cycles
LST[0:1]
(ADC Clock Cycles)
0b00 2
0b01 8
0b10 64
0b11 128
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
PAUS EB
EOQ REP RESERVED BN CAL MESSAGE_TAG LST TSR FFMT
E (0b0)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CHANNEL_NUMBER ALT_CONFIG_SEL
ADC Command
Table 611. Conversion Command Format for Alternate Configurations field description
Field Description
Flush or Format
The function of this bit depends on the DEST field of the Alternate Configuration Control
Register. If DEST is equal to 0b000, then FFMT defines the format in which the 12-bit
conversion result are stored in the RFIFOs. If DEST is not equal to 0b000, then the FFMT
bit is used to send a flush (soft-reset) signal through the parallel side interface to the
companion module addressed by the DEST field.
In case DEST is not equal to 0b000, the FMTA bit in the Alternate Configuration Control
15 register is used to define the conversion result format.
FFMT 1 Conversion Result Format set to right justified signed if DEST is equal to 0b000. A flush
signal is sent through the side interface if DEST is not equal to 0b000.
0 Conversion Result Format set to right justified unsigned if DEST is equal to 0b000. No
flush signal is sent through the side interface if DEST is not equal to 0b000.
The flush signal can be asserted along with a valid conversion result. In this case the companion
module should execute the software-reset first and then consider the conversion result as a
valid data for the filtering algorithm.
0x08 1
0x09 2
0x0A 3
0x0B 4
0x0C 5
0x0D 6
0x0E 7
0x0F 8
Figure 621. Write Configuration Command Format for On-Chip ADC Operation
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
EB R/W
EOQ PAUSE REP RESERVED BN ADC_REGISTER HIGH BYTE
(0b0) (0b0)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ADC Command
Table 613. Write Configuration Command Format for On-Chip ADC Operation field description
Field Description
0
End Of Queue Bit
EOQ
1
Pause Bit
PAUSE
2
Repeat/loop Start Point Indication Bit
REP
5
External Buffer Bit
EB
Figure 622. Read Configuration Command Format for On-Chip ADC Operation
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
PAUS EB R/W
EOQ REP RESERVED BN MESSAGE_TAG RESERVED
E (0b0) (0b1)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
RESERVED ADC_REG_ADDRESS
ADC Command
Table 614. Read Configuration Command Format for On-Chip ADC Operation field description
Field Description
0
End Of Queue Bit
EOQ
1
Pause Bit
PAUSE
2
Repeat/loop Start Point Indication Bit
REP
5
External Buffer Bit
EB
describes the ADC result portion of the result message returned by the on-chip ADCs. The
16-bit data stored in the RFIFOs can be:
● Data read from an ADC register with a read configuration command. In this case, the
stored 16-bit data corresponds to the contents of the ADC register that was read.
● A time stamp. In this case, the stored 16-bit data is the value of the time base counter
latched when the EQADC detects the end of the analog input voltage sampling. For
details see Section , Time Stamp Feature.
● A conversion result, coming directly from the ADCs. In this case, the stored 16-bit data
contains a right justified 14-bit result data. The conversion result can be calibrated or
not depending on the status of CAL bit in the command that requested the
conversion(ay). When the CAL bit is negated, this 14-bit data is obtained by executing a
2-bit left-shift on the 12-bit data resultant from the resolution adjustment on the 8 or 10
or 12-bit data received from the ADC. The resolution adjustment consists of changing
the conversion result input from 8, 10 or 12 bits right aligned to a 12-bit word left
aligned - refer to Section , ADC resolution selection feature, for details. When the CAL
bit is asserted, this 14-bit data is the result of the calculations performed in the EQADC
MAC unit using the 12-bit data result of the resolution adjustment and the calibration
constants GCC and OCC, or ALTGCC and ALTOCC - refer to Section , ADC
Calibration Feature, for details. Then, this 14-bit data is further formatted into a 16-bit
format according to the status of the FMT bit in conversion command of the standard
configuration or FFMT bit in the conversion command of the alternate
configurations(az). When FMT/FFMT is asserted, the 14-bit result data is reformatted to
look as if it was measured against an imaginary ground at VREF/2 (the MSB bit of the
14-bit result is inverted), and is sign-extended to a 16-bit format as in Figure 623. When
FMT/FFMT is negated, the EQADC zero-extends the 14-bit result data to a 16-bit
format as in Figure 624. Correspondence between the analog voltage in a channel and
the calculated digital values is shown in Table 616.
Figure 623. ADC Result Format when FMT=1 (Right Justified Signed)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ADC Result
Figure 624. ADC Result Format when FMT=0 (Right Justified Unsigned)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ADC Result
ay. In case the conversion result is routed through an on-chip DSP via side interface, the calibration is applied
before the data is sent to the DSP.
az. For simplicity, the following text will refer to FMT only, but when using alternate configurations, refer to
Section , Conversion Command Format for Alternate Configurations.
Table 615. ADC Result Format (Right Justified Signed) field description
Field Description
Table 616. Correspondence between analog voltages and digital values(1), (2)
Corresponding Corresponding Corresponding
16-bit Result 16-bit Result
Voltage Level 8-bit 10-bit 12-bit
Sent to Sent to
on Channel Conversion Conversion Conversion
RFIFOs RFIFOs
(V) Result Returned Result Returned Result Returned
(FMT=0) (3) (FMT=1) (3)
by the ADC by the ADC by the ADC
Table 616. Correspondence between analog voltages and digital values(1), (2)
Corresponding Corresponding Corresponding
16-bit Result 16-bit Result
Voltage Level 8-bit 10-bit 12-bit
Sent to Sent to
on Channel Conversion Conversion Conversion
RFIFOs RFIFOs
(V) Result Returned Result Returned Result Returned
(FMT=0) (3) (FMT=1) (3)
by the ADC by the ADC by the ADC
0 1 2 3 5 6 7 8 9 10 11 12 13 14 15
ABORT_ST 4
PAUS RESERVE EB
EOQ BN OFF_CHIP_COMMAND
E D (0b1)
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
OFF_CHIP_COMMAND
ADC Command
Table 617. Command Message Format for External Device Operation field description
Field Description
0
End Of Queue Bit
EOQ
1 Pause Bit
PAUSE Refer to Section , Conversion Command Format for the Standard Configuration.
ABORT Serial Transmission Bit
ABORT_ST indicates whether an on-going serial transmission should be aborted or not.
All CFIFOs can abort null message transmissions when triggered but only CFIFO0 can
4 abort command transmissions of lower priority CFIFOs. For more on serial transmission
ABORT_ST aborts see Section , CFIFO Common Prioritization and Command Transfer.
Abort current serial transmission.
Do not abort current serial transmission.
External Buffer Bit
5
An asserted EB bit indicates that the command is sent to an external CBuffer.
EB
Command is sent to an external CBuffer.
will be ignored. The format of a Result Message returned from the external device is shown
in Figure 626. It is 26 bits long, and is composed of a MESSAGE_TAG field, information
about the status of the CBuffers (BUSY fields), and result data. The BUSY fields are needed
to inform the EQADC about when it is appropriate to transfer commands to the external
CBuffers.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RFIFO Header
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ADC_RESULT
ADC Result
Table 618. Result Message Format for External Device Operation field description
Field Description
8-11
MESSAGE_TAG Field
MESSAGE_TAG
[0:3] Refer to Section , Conversion Command Format for the Standard Configuration.
After reset, the EQADC always assumes that the external CBuffers are full and cannot receive
commands.
Table 618. Result Message Format for External Device Operation field description (continued)
Field Description
After reset, the EQADC always assumes that the external CBuffers are full and cannot receive
commands.
field must be set to the Null Message tag (0b1000). The EQADC does not store into an
RFIFO any incoming message with a Null Message tag.
Figure 627. Null Message Send Format for External Device Operation
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CONTENTS OF EQADC_NMSFR
RESERVED
REGISTER
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Figure 628. Null Message Receive Format for External Device Operation
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
MESSAGE_TAG
RESERVED BUSY1 BUSY0
(0b1000)
RFIFO Header
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ADC Result
8-11
MESSAGE_TAG Field
MESSAGE_TAG
[0:3] Refer to Section , Conversion Command Format for the Standard Configuration.
21-13
BUSY Status field
BUSY1
[0:1] Refer to Section , Result Message Format for External Device Operation.
14-15
BUSY Status field
BUSY0
[0:1] Refer to Section , Result Message Format for External Device Operation.
Write to slave-bus
interface by CPU or
DMA
CFIFO
Push Register
Empty Entry
Last In Last In
Push Push
Next Next
Data Data
Pointer Pointer
First In Transfer
Last In Last In Next
Push First In Transfer Push Data
Next Next Next Pointer
Data Data Data
Pointer Pointer Pointer
Last In
First In Transfer Push
Next Next
Data Data
Pointer Pointer
NOTE: x=0, 1, 2, 3, 4, 5
necessary to have an Advance trigger first to enable the detection of the Repeat trigger.
When the Repeat trigger is enabled, the Advance trigger is used to advance the pop pointer
beyond some loop sub-queue. And it is to disable the Repeat trigger by executing a Pause
without a previous REP bit.
A typical sequence of events is presented below to describe the relationship between the
triggers.
In Streaming mode, the CFIFO0 is filled with CCWs using the DMA as usual. The two
triggers are configured to positive edge and single scan mode.
The SSS bit is asserted and the trigger detector of the Repeat trigger is disabled in the start
of the queue. It is necessary to receive the first Advance trigger to enable the detector of the
other trigger. This enable is useful when the Repeat trigger is received all the time and the
trigger signal can be disabled when it is not desired.
The Advance trigger is received and detected and the Repeat trigger detector is enabled.
No commands are executed until now.
The Repeat trigger is detected and the commands start to be executed in sequence. If a
REP bit is decoded with the PAUSE bit, the loop is configured and the CFIFO0 commands
stop to be executed. The next Repeat trigger is waited to start the execution of the loop
again, or the Advance trigger can be detected to break the loop and advance the queue in
CFIFO0. The Repeat trigger detector remains enabled.
If the Advance trigger is received and the next command in the CFIFO0 does not present
the REP bit set, this means the CFIFO0 is not starting a new loop. In this case (outside a
loop) if a PAUSE bit is decoded, this means to disable the Repeat trigger detector. This can
be useful if the Repeat trigger is not required for some interval of time. The Repeat trigger
detector is enabled again when the next Advance trigger event is detected.
Write to slave-bus
interface by CPU or
DMA
CFIFO Repeat
Push Register Pointer
CFIFO0 CFIFO0
Push
Next Last In
Data
Pointer
Last In
Repeat Push Repeat
Repeat Repeat
Pointer Next Pointer
Data
Pointer
Pause Pause
Transfer Transfer
Next Next
Data Data
Pointer Pointer
destination (CBuffer), the higher priority CFIFO is always served first. A TRIGGERED, not-
underflowing CFIFO will start the transfer of its commands when:
● its commands are bound for an internal CBuffer that is not full, and it is the highest
priority triggered CFIFO sending commands to that CBuffer.
● its commands are bound for an external CBuffer that is not full, and it is the highest
priority triggered CFIFO sending commands to an external CBuffer that is not full.
A triggered CFIFO with commands bound for a certain CBuffer consecutively transfers its
commands to it until:
● an asserted End Of Queue bit is reached, or;
● an asserted Pause bit is encountered and the CFIFO is configured for edge trigger
mode, or;
● CFIFO is configured for level trigger mode and a closed gate is detected, or;
● in case its commands are bound for an internal CBuffer, a higher priority CFIFO that
uses the same internal CBuffer is triggered, or;
● in case its commands are bound for an external CBuffer, a higher priority CFIFO that
uses an external CBuffer is triggered.
The prioritization logic of the EQADC, depicted in Figure 634, is composed of three
independent sub-blocks: one prioritizing CFIFOs with commands bound for CBuffer0,
another prioritizing CFIFOs with commands for CBuffer1, and a last one prioritizing CFIFOs
with commands for CBuffer2 and CBuffer3 which reside inside the external device. As these
three sub-blocks are independent, simultaneous writes to CBuffer0, to CBuffer1, and to
EQADC SSI transmit buffer are allowed. The hardware identifies the destination of a
command by decoding the EB and BN bits in the command message - see Section ,
Message Format in EQADC, for details.
Note: Triggered but empty CFIFOs, underflowing CFIFOs, are not considered for prioritization. No
data from these CFIFOs will be sent to the CBuffers and nor will they stop lower priority
CFIFOs from transferring commands.
Whenever CBuffer0 is able to receive new entries, the prioritization sub-block selects the
highest-priority triggered CFIFO with a command bound for CBuffer0, and writes its
command into the buffer. In case CBuffer0 is able to receive new entries but there are no
triggered CFIFOs with commands bound for it, nothing is written to the buffer. The sub-block
prioritizing CBuffer1 usage behaves in the same way.
When the EQADC SSI is enabled and ready to start serial transmissions, the sub-block
prioritizing EQADC SSI usage writes command or null messages into the EQADC SSI
transmit buffer, data written to the EQADC SSI transmit buffer is subsequently transmitted to
the external device through the EQADC SSI link. The sub-block writes commands to the
EQADC SSI transmit buffer when there are triggered CFIFOs with commands bound for not-
full external CBuffers. The command written to the transmit buffer belongs to the highest
priority CFIFO sending commands to a external CBuffer that is not full. This implies that a
lower priority CFIFO can have its commands sent if a higher priority CFIFO cannot send its
commands due to a full CBuffer. The sub-block writes null messages to the EQADC SSI
transmit buffer when there are no triggered CFIFOs with commands bound for external
CBuffers, or when there are triggered CFIFOs with commands bound for external CBuffers
but the external CBuffers are full. The EQADC monitors the status of the external CBuffers
by decoding the BUSY fields of the incoming result messages from the external device - see
Section , Result Message Format for External Device Operation, for details.
Note: When a lower priority CFIFO is served first because a higher priority CFIFO cannot send its
commands due to a full external CBuffer, there is a possibility that command transfers from
the lower priority CFIFO will be interrupted and the CFIFO will become non-coherent, when
the higher priority CFIFO again becomes ready to send commands. If the lower priority
CFIFO becomes non-coherent or not depends on the rate at which commands on the
external CBuffers are executed, on the rate at which commands are transmitted to the
external CBuffers, and on the depth of those buffers.
Once a serial transmission is started, the sub-block monitors triggered CFIFOs and
manages the abort of serial transmissions. In case a null message is being transmitted, the
serial transmission is aborted when all following conditions are met:
● A not-underflowing CFIFO in TRIGGERED state has commands bound for an external
CBuffer that is not full, and it is the highest priority CFIFO sending commands to an
external CBuffer that is not full.
● the ABORT_ST bit of the command to be transmitted is asserted.
● the 26th bit of currently transmitting null message has not being shifted out.
The command from the CFIFO is then written into EQADC SSI transmit buffer, allowing for a
new serial transmission to initiate.
In case a command is being transmitted, the serial transmission is aborted when all
following conditions are met:
● CFIFO0 is in TRIGGERED state, is not underflowing, and its current command is
bound for an external CBuffer that is not full.
● the ABORT_ST bit of the command to be transmitted is asserted.
● the 26th bit of currently transmitting command has not being shifted out.
The command from CFIFO0 is then written into EQADC SSI transmit buffer, allowing for a
new serial transmission to initiate.
Note: The aborted command is not popped from the preempted CFIFO and will be retransmitted
as soon as its CFIFO becomes the highest priority CFIFO sending commands to an external
CBuffer that is not full.
After a serial transmission is completed, the EQADC prioritizes the CFIFOs and schedules a
command or a null message to be sent in the next serial transmission. After the data for the
next transmission has been defined and scheduled, the EQADC can, under certain
conditions, stretch the SDS negation time in order to allow the schedule of new data for that
transmission. This occurs when the EQADC acknowledges that the status of a higher-
priority CFIFO changed to TRIGGERED and attempts to schedule that CFIFO command
before SDS is asserted. Only commands of CFIFOs that have the ABORT_ST bit asserted
can be scheduled in this manner. Under such conditions:
1. a CFIFO0 command is scheduled for the next transmission independently of the type of
data that was previously scheduled. The time during which SDS is negated is stretched
in order to allow the EQADC to load the CFIFO0 command and start its transmission.
2. CFIFO1-5 commands are only scheduled for the next transmission if the previously
scheduled data was a null message. The time during which SDS is negated is
stretched in order to allow the EQADC to load that command and start its transmission.
However, if the previously scheduled data was a command, no rescheduling occurs
and the next transmission starts without delays.
If a CFIFO becomes TRIGGERED while SDS is negated, but the EQADC only attempts to
reschedule that CFIFO command after SDS is asserted, then the current transmission is
aborted depending on if the conditions for that are met or not.
EQADC
Prioritization Logic
CBuffer0 Abort Command
CFIFO0
(2 entries) Cont0
Prioritization
Command
ADC0 for CBuffer0
Usage
Command CFIFO1
Command CFIFO4
Command CFIFO5
System Clock
Filtered External
Trigger Signal Trigger Detection Delay
Obs.
- 1: This delay is about 2 clocks when the filter bypass control is asserted.
detection of an asserted EOQ bit in the last transfer. Refer to Section , Message Format in
EQADC, for details about command formats.
CFIFOs can be configured in single-scan or continuous-scan mode. When a CFIFO is
configured in single-scan mode, the EQADC scans the CQueue one time. The EQADC
stops future command transfers from the triggered CFIFO after detecting the EOQ bit set in
the last transfer. After a EOQ bit is detected, software involvement is required to rearm the
CFIFO so that it can detect new trigger events.
When a CFIFO is configured for continuous-scan mode, no software involvement is
necessary to rearm the CFIFO to detect new trigger events after an asserted EOQ is
detected. In continuous-scan mode the whole CQueue is scanned multiple times.
The EQADC also supports different triggering mechanisms for each scan mode. The
EQADC will not transfer commands from a CFIFO until the CFIFO is triggered. The
combination of scan modes and triggering mechanisms allows the support of different
requirements for scanning input channels. The scan mode and trigger mechanism are
configured by programming the MODEx field in Section , EQADC CFIFO Control Registers
(EQADC_CFCR).
Enabled CFIFOs can be triggered by software or external trigger events. The elapsed time
from detecting a trigger to transferring a command is a function of clock frequency, trigger
synchronization, trigger filtering or not, programmable trigger events, command transfer,
CFIFO prioritization, CBuffer availability, etc. Fast and predictable transfers can be achieved
by ensuring that the CFIFO is not underflowing and that the target CBuffer is not full when
the CFIFO is triggered.
Disabled Mode
The MODEx field in Section , EQADC CFIFO Control Registers (EQADC_CFCR), for all of
the CFIFOs can be changed from any other mode to disabled at any time. No trigger event
can initiate command transfers from an CFIFO which has its MODE field programmed to
disabled.
Note: If MODEx is not disabled, it must not be changed to any other mode besides disabled. If
MODEx is disabled and the CFIFO status is IDLE, MODEx can be changed to any other
mode.
If MODEx is changed to disabled:
● The CFIFO execution status will change to IDLE. The timing of this change depends on
whether a command is being transferred or not:
– When no command transfer is in progress, the EQADC switches the CFIFO to
IDLE status immediately.
– When a command transfer to an on-chip CBuffer is in progress, the EQADC will
complete the transfer, update TC_CF, and switch CFIFO status to IDLE.
Command transfers to the internal CBuffers are considered completed when a
command is written to the buffers.
– When a command transfer to an external CBuffer is in progress, the EQADC will
abort the transfer and switch CFIFO status to IDLE. If the EQADC cannot abort
the transfer, that is when the 26th bit of the serial message has being already
shifted out, the EQADC will complete the transfer, update TC_CF and then switch
CFIFO status to IDLE.
● The CFIFOs are not invalidated automatically. The CFIFO still can be invalidated by
writing a “1” to the CFINVx bit in Section , EQADC CFIFO Control Registers
(EQADC_CFCR). Certify that CFS has changed to IDLE before setting CFINVx.
● The TC_CFx value also is not reset automatically, but it can be reset by writing “0” to it.
● The SSS bit in Section , EQADC FIFO and Interrupt Status Registers (EQADC_FISR),
is negated. The SSS bit can be set even if a “1” is written to the SSE bit in Section ,
EQADC CFIFO Control Registers (EQADC_CFCR), in the same write that the MODEx
field is changed to a value other than disabled.
● The trigger detection hardware is reset. If MODEx is changed from disabled to an edge
trigger mode, a new edge, matching that edge trigger mode, is needed to trigger the
command transfers from the CFIFO.
Note: CFIFO fill requests, which generated when CFFF is asserted, are not automatically halted
when MODEx is changed to disabled. CFIFO fill requests will still be generated until CFFE
is cleared in Section , EQADC Interrupt and DMA Control Registers (EQADC_IDCR).
Single-Scan Mode
In single-scan mode, a single pass through a sequence of command messages in a
CQueue is performed.
In single-scan software trigger mode, the CFIFO is triggered by an asserted Single-Scan
Status bit (SSS) in Section , EQADC FIFO and Interrupt Status Registers (EQADC_FISR).
The SSS bit is set by writing “1” to the Single-Scan Enable bit (SSE) in Section , EQADC
CFIFO Control Registers (EQADC_CFCR).
In single-scan edge- or level-trigger mode, the respective triggers are only detected when
the SSS bit is asserted. When the SSS bit is negated, all trigger events for that CFIFO are
ignored. Writing a “1” to the SSE bit can be done during the same write cycle that the CFIFO
operation mode is configured.
Only the EQADC can clear the SSS bit. Once SSS is asserted, it remains asserted until the
EQADC completes the CQueue scan, or the CFIFO operation mode (MODEx) in Section ,
EQADC CFIFO Control Registers (EQADC_CFCR), is changed to disabled. The SSSx bit
will be negated while MODEx is disabled.
Single-Scan Software Trigger
When single-scan software trigger mode is selected, the CFIFO is triggered by an asserted
SSS bit. The SSS bit is asserted by writing “1” to the SSE bit. Writing to SSE while SSS is
already asserted will not have any effect on the state of the SSS bit, nor will it cause a
trigger overrun event.
The CFIFO commands start to be transferred when the CFIFO becomes the highest priority
CFIFO using a not-full on-chip CBuffer or an not-full external CBuffer. When an asserted
EOQ bit is encountered, the EQADC will clear the SSS bit. Setting the SSS bit is required
for the EQADC to start the next scan of the queue.
The Pause bit has no effect in single-scan software trigger mode.
Single-Scan Edge Trigger
When SSS is asserted and an edge triggered mode is selected for a CFIFO, an appropriate
edge on the associated trigger signal causes the CFIFO to become TRIGGERED. For
example, if rising-edge trigger mode is selected, the CFIFO becomes TRIGGERED when a
rising edge is sensed on the trigger signal. The CFIFO commands start to be transferred
when the CFIFO becomes the highest priority CFIFO using a not-full on-chip CBuffer or an
not-full external CBuffer.
When an asserted EOQ bit is encountered, the EQADC clears SSS and stops command
transfers from the CFIFO. An asserted SSS bit and a subsequent edge trigger event are
required to start the next scan for the CFIFO. When an asserted Pause bit is encountered,
the EQADC stops command transfers from the CFIFO, but SSS remains set. Another edge
trigger event is required for command transfers to continue. A trigger overrun happens when
the CFIFO is in TRIGGERED state and an edge trigger event is detected.
Single-Scan Level Trigger
When SSS is asserted and a level gated trigger mode is selected, the input level on the
associated trigger signal puts the CFIFO in TRIGGERED state. When the CFIFO is
asserted to high-level gated trigger, a high level signal opens the gate, and a low level
closes the gate. When the CFIFO is set to low-level gated trigger mode, a low level signal
opens the gate, and a high level closes the gate. If the corresponding level is already
present, setting the SSS bit triggers the CFIFO. The CFIFO commands start to be
transferred when the CFIFO becomes the highest priority CFIFO using a not-full on-chip
CBuffer or a not -full external CBuffer.
The EQADC clears the SSS bit and stops transferring commands from a TRIGGERED
CFIFO when an asserted EOQ bit is encountered or when CFIFO status changes from
TRIGGERED due to the detection of a closed gate. If a closed gate is detected while no
command transfers are taking place and the CFIFO status is TRIGGERED, the CFIFO
status is immediately changed to IDLE, the SSS bit is negated, and the PF flag is asserted.
If a closed gate is detected during the serial transmission of a command to the external
device, it will have no effect on the CFIFO status until the transmission completes. Once the
transmission is completed, the TC_CF counter is updated, the SSS bit is negated, the PF
flag is asserted, and the CFIFO status is changed to IDLE. An asserted SSS bit and a level
trigger are required to restart the CFIFO. Command transfers will restart from the point they
have stopped.
If the gate closes and opens during the same serial transmission of a command to the
external device, it will have no effect on the CFIFO status or on the PF flag, but the TORF
flag will become asserted as was exemplified in Figure 637. Therefore, closing the gate for a
period less than a serial transmission time interval does not guarantee that the closure will
affect command transfers from a CFIFO.
The Pause bit has no effect in single-scan level-trigger mode.
Continuous-Scan Mode
In continuous-scan mode, multiple passes looping through a sequence of command
messages in a CQueue are executed. When a CFIFO is programmed for a continuous-scan
mode, the SSE bit in the Section , EQADC CFIFO Control Registers (EQADC_CFCR), does
not have any effect.
Continuous-Scan Software Trigger
When a CFIFO is programmed to continuous-scan software trigger mode, the CFIFO is
triggered immediately. The CFIFO commands start to be transferred when the CFIFO
becomes the highest priority CFIFO using a not-full on-chip CBuffer or an not-full external
CBuffer. When a CFIFO is programmed to run in continuous-scan software trigger mode,
the EQADC will not halt transfers from the CFIFO until the CFIFO operation mode is
modified to disabled or a higher priority CFIFO preempts it. Although command transfers will
not stop upon detection of an asserted EOQ bit, the EOQF is set and, if enabled, an EOQ
interrupt request is generated.
The Pause bit has no effect in continuous-scan software trigger mode.
Continuous-Scan Edge Trigger
When rising, falling, or either edge trigger mode is selected for a CFIFO, a corresponding
edge on the associated ETRIG signal places the CFIFO in TRIGGERED state. The CFIFO
commands start to be transferred when the CFIFO becomes the highest priority CFIFO
using a not-full on-chip CBuffer or an not-full external CBuffer
When an EOQ or a Pause is encountered, the EQADC halts command transfers from the
CFIFO and, if enabled, the appropriate interrupt requests are generated. Another edge
trigger event is required to resume command transfers but no software involvement is
required to rearm the CFIFO in order to detect such event.
A trigger overrun happens when the CFIFO is already in TRIGGERED state and a new
edge trigger event is detected.
Continuous-Scan Level Trigger
When high or low level gated trigger mode is selected, the input level on the associated
trigger signal places the CFIFO in TRIGGERED state. When high-level gated trigger is
selected, a high-level signal opens the gate, and a low level closes the gate. The CFIFO
commands start to be transferred when the CFIFO becomes the highest priority CFIFO
using a not-full on-chip CBuffer or an not-full external CBuffer. Although command transfers
will not stop upon detection of an asserted EOQ bit at the end of a command transfer, the
EOQF is asserted and, if enabled, an EOQ interrupt request is generated.
The EQADC stops transferring commands from a TRIGGERED CFIFO when CFIFO status
changes from TRIGGERED due to the detection of a closed gate. If a closed gate is
detected while no command transfers are taking place and the CFIFO status is
TRIGGERED, the CFIFO status is immediately changed to WAITING FOR TRIGGER and
the PF flag is asserted. If a closed gate is detected during the serial transmission of a
command to the external device, it will have no effect on the CFIFO status until the
transmission completes. Once the transmission is completed, the TC_CF counter is
updated, the PF flag is asserted, and the CFIFO status is changed to WAITING FOR
TRIGGER. Command transfers will restart as the gate opens.
If the gate closes and opens during the same serial transmission of a command to the
external device, it will have no effect on the CFIFO status or on the PF flag, but the TORF
flag will become asserted as was exemplified in Figure 637. Therefore, closing the gate for a
period less than a serial transmission time interval does not guarantee that the closure will
affect command transfers from a CFIFO.
The Pause bit has no effect in continuous-scan level-trigger mode.
Table 621. CFIFO Scan Trigger Mode - Command Transfer Start/Stop Summary
Requires
Stop on Stop on
Asserted SSS Command Transfer
asserted asserted Other Command Transfer
Trigger Mode to Recognize Start/Restart
EOQ Pause Stop Condition(3) (4)
Trigger Condition
bit(1)? bit(2)?
Events?
Single Scan
Don’t Care Asserted SSS bit. Yes No None.
Software
2 IDLE
7
4
WAITING 6 TRIGGERED
FOR
TRIGGER 8
9
Note: An asserted EOQFx only implies that EQADC has finished transferring a command with an
asserted EOQ bit from CFIFOx. It does not imply that result data for the current command
and for all previously transferred commands has been returned to the appropriate RFIFO.
Pause Status
In edge trigger mode, when the EQADC completes the transfer of a CFIFO entry with an
asserted Pause bit, the EQADC will stop future command transfers from the CFIFO and set
the corresponding Pause Flag (PF) in Section , EQADC FIFO and Interrupt Status Registers
(EQADC_FISR). Refer to Section , Message Format in EQADC, for information on
command message formats. The EQADC ignores the Pause bit in command messages in
any software and external level trigger mode. The EQADC sets the PF flag upon detection
of an asserted Pause bit only in single or continuous-scan edge trigger mode. When the PF
flag is set for a CFIFO in single-scan edge trigger mode, the SSS bit will not be cleared in
Section , EQADC FIFO and Interrupt Status Registers (EQADC_FISR).
In level trigger mode, the definition of the PF flag has been redefined. In level trigger mode,
when CFIFOx is in TRIGGERED status, PFx is set when CFIFO status changes from
TRIGGERED due to detection of a closed gate. The pause flag interrupt routine can be
used to verify if the a complete scan of the CQueue was performed. If a closed gate is
detected while no command transfers are taking place, it will have immediate effect on the
CFIFO status. If a closed gate is detected during the serial transmission of a command to
the external device, it will have no effect on the CFIFO status until the transmission
completes.
When PIE in Section , EQADC CFIFO Control Registers (EQADC_CFCR), and PF are
asserted, the EQADC will generate a Pause interrupt request.
Note: In edge trigger mode, an asserted PFx only implies that the EQADC finished transferring a
command with an asserted PAUSE bit from CFIFOx. It does not imply that result data for the
current command and for all previously transferred commands has been returned to the
appropriate RFIFO.
Note: In software or level trigger mode, when the EQADC completes the transfer of an entry from
CFIFOx with an asserted Pause bit, PFx will not be set and command transfers will
continues without pausing.
Command Transmission
through EQADC SSI Command 1 Null Message Command 2
TORF
Assumptions: 1) CFIFO programmed to “continuous-scan low level gated external trigger mode”
2) Command 2 has its ABORT_ST bit negated.
3) There are no other CFIFOs using the serial interface.
Example 1
Example 2
Example 3
CFx_CBa_CMn - Command n in CFIFOx bound for CBuffera
ba. Only the fullness of external CBuffers is monitored because the fill rate for internal CBuffers is many times
faster than the drain rate, and each has a dedicated priority engine.
SDS
Serial Data
Transmitted Null Message 1st Command 2nd Command 3rd Command
External Captured by
EQADC on the external CBuffer when triggered.
Device the EQADC
EQADC? 2. Execution of a command on the external device
takes longer than the time to complete three serial
(a) EMPTY EMPTY Don’t care transmissions.
(b) 1 ENTRY EMPTY No
(c) 2 ENTRY 1 ENTRY Yes
Figure 639. External CBuffer Status Detection at Command Sequence Transfer Start
Once a command sequence starts to be transferred, the EQADC will check for the
command sequence coherency until the command sequence ends or until one of the
conditions below becomes true.
● The command sequence became non-coherent.
● The CFIFO status changed from TRIGGERED.
● The CFIFO underflowed.
Note: The NCF flag still becomes asserted if an external CBuffer empty event is detected at the
same time the EQADC stops checking for the coherency of a command sequence.
Once command transfers restart/continue, the non-coherency hardware will behave as if the
command sequence started from that point. Figure 642 depicts how the non-coherency
hardware will behave when a non-coherency event is detected.
Note: If MODEx is changed to disabled while a CFIFO is transferring commands, the NCF flag for
that CFIFO will not become asserted.
Note: When the EQADC enters debug or stop mode while a command sequence is being
executed, the NCF will become asserted if an empty external CBuffer is detected after
debug/stop mode is exited.
CFIFO0
0 CF0_CB1_CM0 TNXTPTR *
1 CF0_CB1_CM1
2 CF0_CB1_CM2
CBuffer1 3 CF0_CB1_CM3
0 EMPTY
1 EMPTY CFIFO5
0 CF5_CB1_CM0 TNXTPTR *
1 CF5_CB1_CM1
2 CF5_CB1_CM2
3 CF5_CB1_CM3
(a) CFIFO0 and CFIFO5 both have commands to be sent to CBuffer1, and both are not triggered
CFIFO0
0 CF0_CB1_CM0 TNXTPTR *
1 CF0_CB1_CM1
2 CF0_CB1_CM2
CBuffer1 3 CF0_CB1_CM3
0 CF5_CB1_CM0
1 CF5_CB1_CM1 CFIFO5
0 Sent
1 Sent
2 CF5_CB1_CM2 TNXTPTR *
3 CF5_CB1_CM3
CFIFO0
0 Sent
1 CF0_CB1_CM1 TNXTPTR *
2 CF0_CB1_CM2
CBuffer1 3 CF0_CB1_CM3
0 CF5_CB1_CM1
1 CF0_CB1_CM0 CFIFO5
0 Sent
1 Sent
2 CF5_CB1_CM2 TNXTPTR *
3 CF5_CB1_CM3
(c) CFIFO0 becomes triggered and transfers a command to CBuffer1. The sequence sent through
CFIFO5 becomes non-coherent.
Figure 640. Non-Coherency Event when Different CFIFOs use the same CBuffer
Figure 641. Non-Coherency Event when Different CFIFOs are using Different External CBuffers
CFIFO0
CBuffer2 0 CF0_CB2_CM0 TNXTPTR *
0 EMPTY 1 CF0_CB2_CM1
1 EMPTY 2 CF0_CB2_CM2
3 CF0_CB2_CM3
CBuffer3 EQADC SSI CFIFO5
0 CF5_CB3_CM0 0 Sent
1 CF5_CB3_CM1 1 Sent
2 CF5_CB3_CM2 TNXTPTR *
3 CF5_CB3_CM3
(a) CFIFO0 and CFIFO5 both have commands to be sent to external CBuffers. CFIFO0 is not
triggered. CFIFO5 is triggered and sent two commands to CBuffer3
CFIFO0
CBuffer2 0 Sent
0 CF0_CB2_CM0 1 Sent
1 CF0_CB2_CM1 2 CF0_CB2_CM2 TNXTPTR *
3 CF0_CB2_CM3
CBuffer3 EQADC SSI CFIFO5
0 EMPTY 0 Sent
1 CF5_CB3_CM1 1 Sent
2 CF5_CB3_CM2 TNXTPTR *
3 CF5_CB3_CM3
(b) CFIFO0 is triggered and sent two commands to CBuffer2. CFIFO5 cannot send commands
to CBuffer3 because the EQADC SSI is busy transferring commands from CFIFO0. Execution
of first command of CFIFO5 is completed.
CFIFO0
CBuffer2 0 Sent
0 CF0_CB2_CM1 1 Sent
1 CF0_CB2_CM2 2 Sent
3 CF0_CB2_CM3 TNXTPTR *
CBuffer3 EQADC SSI CFIFO5
0 EMPTY 0 Sent
1 CF5_CB3_CM1 1 Sent
2 CF5_CB3_CM2 TNXTPTR *
3 CF5_CB3_CM3
(c) Execution of first command of CFIFO0 is completed and CFIFO0 sends new command to
CBuffer2.
CFIFO0
CBuffer2 0 Sent TNXTPTR *
0 CF0_CB2_CM2 1 Sent
1 CF0_CB2_CM3 2 Sent
3 Sent
CBuffer3 EQADC SSI CFIFO5
0 EMPTY 0 Sent
1 EMPTY 1 Sent
2 CF5_CB3_CM2 TNXTPTR *
3 CF5_CB3_CM3
(d) Second command in CBuffer3 completes. CBuffer3 became empty before the complete
command sequence in CFIFO5 is sent to it. NCF5 becomes asserted when the EQADC
receives an indication that CBuffer3 is empty, by the BUSY fields in the returning serial
message.
CF5_CB1_CM0
CF5_CB1_CM1
CF5_CB1_CM2
CF5_CB1_CM3 Command sequence became non-coherent before command 4
was transferred. Once command transfers are resumed, EQADC
CF5_CB1_CM4 will only check for coherency after command 4.
CF5_CB1_CM5
CF5_CB1_CM6
CF5_CB1_CM7
CF5_CB1_CM8
CF5_CB1_CM9
CF5_CB1_CM10 Command sequence became non-coherent before command 11
was transferred. Once command transfers are resumed, EQADC
CF5_CB1_CM11 will only check for coherency after command 11.
CF5_CB1_CM12
CF5_CB1_CM13
POP Next
Data Pointer * -------------------- Data from
external
-------------------- device or
Data Entry 1 from on-chip
ADCs or from
Data Entry 2 parallel
side interface
Control
Signals
* All RFIFO entries are memory mapped and the entries addressed by
these pointers can have their absolute addresses calculated using
POPNXTPTR and RFCTR.
Empty Entry
First In Pop
Receive Last In Receive Last In Next
Next First In Pop Next Data
Data Next Data Pointer
Pointer Data Pointer
Pointer
Receive Last In
First In Pop Next
Next Data
Data Pointer
Pointer
NOTE: x=0, 1, 2, 3, 4, 5
which the system clock will be divided as showed in Table 593. The ADC clock frequency is
calculated as below and it must not exceed 15 MHz. This is also the maximum frequency of
system clock when the ADC0/1_CLK_SEL is asserted.
SystemClockFrequency ( MHz )
ADCClockFrequency = ------------------------------------------------------------------------------------------ ;( ADCClockFrequency ≤ 15MHz )
SystemClockDivideFactor
Figure 645 depicts how the ADC clocks for ADC0 and ADC1 are generated.
Divide by:
System Clock 2, 3, 4, .. , 63, 64, 65
ADC0Clock
SEL To ADC0
System Clock Divider
Divide by:
System Clock 2, 3, 4, .. , 63, 64, 65
ADC1Clock
SEL To ADC1
System Clock Divider
ADCClockFrequency ( MHz )
ADCConversionSpeed = -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
( NumberOfSamplingCycles + NumberOfADConversionCycles )
Table 623 shows an example of how the ADC0/1_CLK_PS can be set when using a
120 MHz system clock and the corresponding conversion speeds for all possible ADC clock
frequencies. The table also shows that according to the system clock frequency, certain
clock divide factors are invalid (2, 4, 6, 8 clock divide factors in the example) since their use
would result in a ADC clock frequency higher than the maximum one supported by the ADC.
ADC clock frequency must not exceed 15 MHz.
Table 623. ADC Clock Configuration Example (System Clock Frequency=120 MHz)
Differential Single-Ended
System ADC Clock Conversion Speed Conversion
ADC0/1_CLK_PS ADC0/1_
Clock Divide (System Clock with Default Speed with
[0:4] ODD_PS
Factor = 120 MHz) Sampling Time (2 Default Sampling
cycles) Time (2 cycles)
Table 623. ADC Clock Configuration Example (System Clock Frequency=120 MHz) (continued)
Differential Single-Ended
System ADC Clock Conversion Speed Conversion
ADC0/1_CLK_PS ADC0/1_
Clock Divide (System Clock with Default Speed with
[0:4] ODD_PS
Factor = 120 MHz) Sampling Time (2 Default Sampling
cycles) Time (2 cycles)
Table 623. ADC Clock Configuration Example (System Clock Frequency=120 MHz) (continued)
Differential Single-Ended
System ADC Clock Conversion Speed Conversion
ADC0/1_CLK_PS ADC0/1_
Clock Divide (System Clock with Default Speed with
[0:4] ODD_PS
Factor = 120 MHz) Sampling Time (2 Default Sampling
cycles) Time (2 cycles)
TCR1 0
TCR2 2
output
STAC client submodule 2 Time base
System clock
STAC bus TS[00] TS[01] TS[02] TS[03] TS[00] TS[03] TS[00] TS[01] TS[02]
(submodule input)
STAC bus (REDC input) TS[00] TS[01] TS[02] TSn1 TS[00] TS[01] TS[02]
Overview
There are three sets of calibration coefficients for each ADC. Each set is composed by a
gain factor and an offset factor: GCCn/OCCn, ALTGCCn1/ALTGCCn1, and
ALTGCCn2/ALTGCCn2, where n is the ADC number 0 or 1. The pair GCCn/OCCn is
selected when it is used the normal configuration or the alternate configurations 3 to 8. The
pair ALTGCCn1/ALTGCCn1 is used only when the alternate configuration 1 is selected. And
the pair ALTGCCn2/ALTGCCn2 is for the alternate configuration 2. The description below is
for a generic pair of gain/offset GCC/OCC.
The EQADC provides a calibration scheme to remove the effects of gain and offset errors
from the results generated by the on-chip ADCs. Only results generated by the on-chip
ADCs are calibrated. The results generated by ADCs on the external device are directly
sent to RFIFOs unchanged. The main component of calibration hardware is a Multiply-and-
Accumulate (MAC) unit, one per on-chip ADC, that is used to calculate the following transfer
function which relates a calibrated result to a raw, uncalibrated one.
CAL_RES = GCC * RAW_RES + OCC+2;
where:
● CAL_RES is the calibrated result corresponding the input voltage Vi.
● GCC is the gain calibration constant.
● RAW_RES is the raw, uncalibrated result with resolution adjustment corresponding to
an specific input voltage Vi.
● OCC is the offset calibration constant.
● The addition of two reduces the maximum quantization error of the ADC. See Section ,
Quantization Error Reduction During Calibration.
Calibration constants GCC and OCC are determined by taking two samples of known
reference voltages and using these samples to calculate the values for the constants. For
details and an example about how to calculate the calibration constants and use them in
result calibration refer to Section 25.7.6, ADC Result Calibration. Once calculated, GCC is
stored in the Section , ADC0/1 Gain Calibration Constant Registers (ADC0_GCCR and
ADC1_GCCR), and OCC in Section , ADC0/1 Offset Calibration Constant Registers
(ADC0_OCCR and ADC1_OCCR), from where their values are fed to the MAC unit. The
alternate gain values are stored in Section , ADC0/1 Alternate Gain Registers
(ADC0_AGR1-2 and ADC1_AGR1-2), and the alternate offset values in Section , ADC0/1
Alternate Offset Register (ADC0_AOR1-2 and ADC1_AOR1-2). Since the analog
characteristics of each on-chip ADCs differs, each ADC has an independent pair of
calibration constants.
A conversion result is calibrated according to the status of CAL bit in the command that
initiated the conversion. If the CAL bit is asserted, the EQADC will automatically calculate
the calibrated result before sending the result to the appropriate RFIFO or companion
module. If the CAL bit is negated, the result is not calibrated, it bypasses the calibration
hardware, and is directly sent to the appropriate RFIFO or companion module.
The OCC0/1 operand is a 14-bit signed value stored in the Section , ADC0/1 Offset
Calibration Constant Registers (ADC0_OCCR and ADC1_OCCR). The RAW_RES operand
is the raw uncalibrated result, and it is the direct output from the on-chip ADCs but passing
through the resolution adjustment block. The GCC0/1 operand is a 15-bit fixed point
unsigned value stored in the Section , ADC0/1 Gain Calibration Constant Registers
(ADC0_GCCR and ADC1_GCCR). The GCC is expressed in the GCC_INT.GCC_FRAC
binary format. The integer part of the GCC (GCC_INT=GCC[1]) contains a single binary
digit while its fractional part (GCC_FRAC=GCC[2:15]) contains 14 bits - see Figure 649.
The gain constant equivalent decimal value ranges from 0 to 1.999938..., as shown in
Table 625. Two is always added to the MAC output - see Section , Quantization Error
Reduction During Calibration. CAL_RES output is the calibrated result, and it is a 14-bit
unsigned value. CAL_RES is truncated to 0x3FFF, in case of a overflow, and to 0x0000, in
case of an underflow.
+
Gain Calibration Constant (GCC0/1)
(15-bit fixed point unsigned value
from ADC0/1_GCCR register) 2
MAC Unit
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
GCC_INT GCC_FRAC
GCC[1] GCC[2:15]
Figure 649. Gain Calibration Constant Format
0.0000_0000_0000_00 0
... ...
0.1000_0000_0000_00 0.5
... ...
0.1111_1111_1111_11 0.999938...
1.0000_0000_0000_00 1
... ...
1.1100_0000_0000_00 1.75
... ...
1.1111_1111_1111_11 1.999938...
bb. The result messages may also be routed to an on-chip companion module via the side interface, and then fed
back to the RFIFOs.
shift, ENTRY0 is always empty and ready to receive a new command. Execution of
configuration commands only start when they reach ENTRY1. Consecutive conversion
commands are pipelined and their execution can start while in ENTRY0. This is explained
below.
AD conversion accuracy can be affected by the settling time of the input channel
multiplexers. Some time is required for the channel multiplexers internal capacitances to
settle after the channel number is changed. If the time prior to sampling is not long enough
to absorb this settling, then the settling time will take from ADC sampling time which may
result in inaccurate sampling and ultimately compromise conversion result accuracy - see
Figure 651 (a). This could be avoided by switching the multiplexers in preparation for the
next command’s sampling during the AD conversion phase of the current command as
showed in Figure 651 (b). In EQADC, this is done in the following way; when a conversion
command is in buffer ENTRY1 and another conversion command is identified in ENTRY0,
then the channel number of ENTRY0 is sent to the MUX Control Logic some cycles before
the sampling phase of the command in ENTRY0 starts. In this way, sampling for the next
command can promptly start after the current conversion finishes because the internal
capacitance of the multiplexers will be settled by that time, allowing for more accurate
sampling. This is specially important for applications that require high conversion speeds,
that is with the ADC running at maximum clock frequency and with the analog input voltage
sampling time set to a minimum (2 ADC clock cycles), when the short sampling time does
not allow the multiplexers to completely settle. The second advantage of pipelining
conversion commands is to provide precise conversion intervals, which means the time
intervals between two consecutive conversions are the same. This is important for any
digital signal process application.
When the on-chip ADC abort feature is enabled, ADC Commands from CFIFO0 should be
considered immediately, even stopping the execution of some command that is already in
ENTRY1. When the abort request is sent to the ADC, the already stored commands in the
CBuffers are copied in a temporary set of registers. The first ADC command from CFIFO0 is
sent after the abort acknowledge indication from ADC. The process is the same as usual
until the transfer of the last command from CFIFO0. Then the temporarily stored commands
that were postponed by the abortion are recovered and they are pipelined for execution.
After the last command from this temporary memory is transferred, the next commands are
pipelined from the CFIFOs.
ENTRY1
ENTRY0
AN0-AN39 LST0 Abort
ADC0 Cont
CBuffer0 32 bits
CBuffer1
MUX 40:1
LST1
ENTRY1
ENTRY0
Result0 Resolution
Adjust
EMUX0 EMUX1 Result1 Result Format
Resolution
Adjust
and
Calibration
Sub-block
CHANNEL_NUMBER0
MUX
CHANNEL_NUMBER1
MA0, MA1, MA2 Control
Logic
ADC0_Result0 RFIFOx
TSR0 ADC1_Result1
TSR1
Time Time Stamp 0
Stamp Time Stamp1 16 bits
Logic
PSI
TBC_CLK_PS
Table 627 shows the channel number assignments for the non-multiplexed mode. The 43
single-ended channels and 4 differential pairs are shared between the two ADCs.
Table 627. Non-multiplexed Channel Assignments(1)
Channel Number in
Input Pins ADC
CHANNEL_NUMBER Field
0000_0000 to
AN0 to AN39 Single-ended ADC0/ADC1 0 to 39
0010_0111
VRH Single-ended ADC0/ADC1 0010_1000 40
VRL Single-ended ADC0/ADC1 0010_1001 41
50% x VREF
(2),(3)
(do not
Single-ended ADC0/ADC1 0010_1010 42
use for
calibration)
75% x VREF (2) Single-ended ADC0/ADC1 0010_1011 43
25% x VREF (2) Single-ended ADC0/ADC1 0010_1100 44
Buffered
INA_ADC0/1_0 Single-ended ADC0/ADC1 0010_1101 45
bandgap
Reserved 0010_1110 to 0101_1111 46 to 95
DAN0+ and DAN0- Differential ADC0/ADC1 0110_0000 96
DAN1+ and DAN1- Differential ADC0/ADC1 0110_0001 97
DAN2+ and DAN2- Differential ADC0/ADC1 0110_0010 98
DAN3+ and DAN3- Differential ADC0/ADC1 0110_0011 99
Reserved 0110_0100 to 0111_1111 100 to 127
INA_ADC0/1_1 Temp Sensor Single-ended ADC0/ADC1 1000_0000 128
INA_ADC0/1_2 Spare Single-ended ADC0/ADC1 1000_0001 129
1000_0010 to
Reserved 130 to 143
1000_1111
Channel Number in
Input Pins ADC
CHANNEL_NUMBER Field
1001_0000 to
Device Specific Use ADC0 144 to 147
1001_0011
1001_0000 to
Reserved ADC1 144 to 147
1001_0011
1001_0100 to
Reserved 148 to 161
1010_0001
1010_0010 to
Reserved ADC1 162 to 167
1010_0111
INA_ADC0_3 Device Specific Single-ended ADC0 1010_0010 162
INA_ADC0_4 Device Specific Single-ended ADC0 1010_0011 163
INA_ADC0_5 Device Specific Single-ended ADC0 1010_0100 164
INA_ADC0_6 Device Specific Single-ended ADC0 1010_0101 165
INA_ADC0_7 Device Specific Single-ended ADC0 1010_0110 166
INA_ADC0_8 Device Specific Single-ended ADC0 1010_0111 167
1010_1000 to
Reserved 168 to 193
1100_0001
1100_0010 to
Reserved ADC0 194 to 199
1100_0111
INA_ADC1_3 Device Specific Single-ended ADC1 1100_0010 194
INA_ADC1_4 Device Specific Single-ended ADC1 1100_0011 195
INA_ADC1_5 Device Specific Single-ended ADC1 1100_0100 196
INA_ADC1_6 Device Specific Single-ended ADC1 1100_0101 197
INA_ADC1_7 Device Specific Single-ended ADC1 1100_0110 198
INA_ADC1_8 Device Specific Single-ended ADC1 1100_0111 199
Reserved 1100_1000 to 1111_1111 200 to 255
1. The two on-chip ADCs can access the same analog input pins but simultaneous conversions are not allowed. Also, when
one ADC is performing a differential conversion on a pair of pins, the other ADC must not access either of these two pins
as single-ended channels.
2. VREF=VRH-VRL.
3. 50% x VREF = 50% ref = (VRH / VRL)/2, but this only applies before calibration. After calibration, the 50% reference point
will actually return approximately 20 mV lower than the expected 50% of the difference between the High Reference
Voltage (VRH) and the Low Reference Voltage (VRL).The 50% reference point should not be used to calibrate ADC. For
calibration of the ADC only the 25% and 75% points should be used as described in Section 25.7.6, ADC Result
Calibration.
Table 628 shows the channel number assignments for multiplexed mode. The ADC with the
ADC0/1_EMUX bit asserted can access 4 differential pairs, 39 single-ended, and, at most,
64 externally multiplexed channels. Refer to Section , External multiplexing, for a detailed
explanation about how external multiplexing can be achieved.
Channel Number in
Input Pins ADC
CHANNEL_NUMBER Field
0000_0000 to
AN0 to AN39 (2) Single-ended ADC0/ADC1 0 to 39
0010_0111
VRH Single-ended ADC0/ADC1 0010_1000 40
VRL Single-ended ADC0/ADC1 0010_1001 41
(3),(4)
50% x VREF Single-ended ADC0/ADC1 0010_1010 42
75% x VREF (3) Single-ended ADC0/ADC1 0010_1011 43
25% x VREF (3)
Single-ended ADC0/ADC1 0010_1100 44
INA_ADC0/1_0 Buffered bandgap Single-ended ADC0/ADC1 0010_1101 45
0010_1110 to
Reserved 46 to 63
0011_1111
ANW — Single-ended ADC0/ADC1 0100_0xxx 64 to 71
ANX — Single-ended ADC0/ADC1 0100_1xxx 72 to 79
ANY — Single-ended ADC0/ADC1 0101_0xxx 80 to 87
ANZ — Single-ended ADC0/ADC1 0101_1xxx 88 to 95
DAN0+ and
Differential ADC0/ADC1 0110_0000 96
DAN0-
DAN1+ and
Differential ADC0/ADC1 0110_0001 97
DAN1-
DAN2+ and
Differential ADC0/ADC1 0110_0010 98
DAN2-
DAN3+ and
Differential ADC0/ADC1 0110_0011 99
DAN3-
0110_0100 to
Reserved 100 to 127
0111_1111
INA_ADC0/1_1 Temp Sensor Single-ended ADC0/ADC1 1000_0000 128
INA_ADC0/1_2 Spare Single-ended ADC0/ADC1 1000_0001 129
1000_0010 to
Reserved 130 to 143
1000_1111
1001_0000 to
Device Specific Use ADC0 144 to 147
1001_0011
1001_0000 to
Reserved ADC1 144 to 147
1001_0011
1001_0100 to
Reserved 148 to 161
1010_0001
Channel Number in
Input Pins ADC
CHANNEL_NUMBER Field
1010_0010 to
Reserved ADC1 162 to 167
1010_0111
INA_ADC0_3 Device Specific Single-ended ADC0 1010_0010 162
INA_ADC0_4 Device Specific Single-ended ADC0 1010_0011 163
INA_ADC0_5 Device Specific Single-ended ADC0 1010_0100 164
INA_ADC0_6 Device Specific Single-ended ADC0 1010_0101 165
INA_ADC0_7 Device Specific Single-ended ADC0 1010_0110 166
INA_ADC0_8 Device Specific Single-ended ADC0 1010_0111 167
1010_1000 to
Reserved 168 to 193
1100_0001
1100_0010 to
Reserved ADC0 194 to 199
1100_0111
INA_ADC1_3 Device Specific Single-ended ADC1 1100_0010 194
INA_ADC1_4 Device Specific Single-ended ADC1 1100_0011 195
INA_ADC1_5 Device Specific Single-ended ADC1 1100_0100 196
INA_ADC1_6 Device Specific Single-ended ADC1 1100_0101 197
INA_ADC1_7 Device Specific Single-ended ADC1 1100_0110 198
INA_ADC1_8 Device Specific Single-ended ADC1 1100_0111 199
1100_1000 to
Reserved 200 to 223
1101_1111
Reserved 1110_0xxx to 1111_1xxx 224 to 255
1. The two on-chip ADCs can access the same analog input pins but simultaneous conversions are not allowed. Also, when
one ADC is performing a differential conversion on a pair of pins, the other ADC must not access either of these two pins as
single-ended channels.
2. Old version has reserved values for channel numbers 8 to 11 when EMUX =1. Therefore, now the behavior is different
because it is converted the signal at AN8 to AN11, respectively.
3. VREF=VRH-VRL.
4. 50% x VREF = 50% ref = (VRH / VRL)/2, but this only applies before calibration. After calibration, the 50% reference point
will actually return approximately 20 mV lower than the expected 50% of the difference between the High Reference
Voltage (VRH) and the Low Reference Voltage (VRL). For calibration of the ADC only the 25% and 75% points should be
used as described in Section 25.7.6, ADC Result Calibration.
External multiplexing
The EQADC can use from one to eight external multiplexer chips to expand the number of
analog signals that may be converted. Up to 64 analog channels can be converted through
external multiplexer selection. The externally multiplexed channels are automatically
selected by the CHANNEL_NUMBER field of a Command Message, in the same way done
with internally multiplexed channels. The software selects the external multiplexed mode by
setting the ADC0/1_EMUX bit in either ADC0_CR or ADC1_CR depending on which ADC
will perform the conversion. Table 628 shows the channel number assignments for the
multiplexed mode. There are 4 differential pairs, 39 single-ended, and, at most, 64
externally multiplexed channels which can be selected. Only one ADC can have its
ADC0/1_EMUX bit asserted at a time.
Figure 652 shows the maximum configuration of eight external multiplexer chips connected
to the EQADC. The external multiplexer chip selects one of eight analog inputs and
connects it to a single analog output, which is fed to a specific input of the EQADC. The
EQADC provides three multiplexed address signals, MA0, MA1, and MA2, to select one of
eight inputs. These three multiplexed address signals are connected to all eight external
multiplexer chips. The analog output of the eight multiplex chips are each connected to eight
separate EQADC inputs, ANR, ANS, ANT, ANU, ANW, ANX, ANY, and ANZ. The MA pins
correspond to the three least significant bits of the channel number that selects ANR, ANS,
ANT, ANU, ANW, ANX, ANY, and ANZ with MA0 being the most significant bit - See
Table 629.
64 72 80 88 0 0 0
65 73 81 89 0 0 1
66 74 82 90 0 1 0
67 75 83 91 0 1 1
68 76 84 92 1 0 0
69 77 85 93 1 0 1
70 78 86 94 1 1 0
71 79 87 95 1 1 1
1. ‘0’ means pin is driven LOW and ‘1’ that pin is driven HIGH.
When the external multiplexed mode is selected for either ADC, the EQADC automatically
creates the MA output signals from CHANNEL_NUMBER field of a Command Message.
The EQADC also converts the proper input channel (ANW, ANX, ANY, and ANZ) by
interpreting the CHANNEL_NUMBER field. As a result, up to 64 externally multiplexed
channels appear to the conversion queues as directly connected signals.
AN64
AN65
AN66 EQADC
AN67 MUX
AN68
AN69
AN70
AN71
MUX 40:1
AN72
AN73 ADC0
AN74
AN75 MUX
AN76 ANW
AN77
AN78 ANX 4
AN79 ANY
ANZ 4
40
AN80
AN81
AN82
AN83 MUX MA0
AN84
MA1
MUX 40:1
AN85
AN86 MA2
AN87
ADC1
AN88
AN89
AN90
AN91 MUX
AN92
AN93
AN94
AN95 MUX Channel Number0/1
AN224 CONTROL
AN225
AN226
AN227 MUX
AN228
AN229
AN230
AN231
NOTE: Limited availability of pins may result in the
sharing of ADC inputs and mux outputs.
AN232
AN233
AN234
AN235 MUX
AN236 ANR
AN237
AN238 ANS
AN239 ANT
ANU
AN240
AN241
AN242
AN243 MUX
AN244
AN245
AN246
AN247
AN248
AN249
AN250
AN251 MUX
AN252
AN253
AN254
AN255
AN0-AN7 32
AN12-AN15
AN20-AN39
Table 631 describes a list of methods to generate DMA requests in the EQADC.
RFDEx
DMA Request
RFDFx Generation Logic RFIFO Drain DMA Request
RFDSx
RFDEx
RFDFx RFIFO Drain Interrupt Request
RFDSx
CFFEx
CFFFx DMA Request
CFIFO Fill DMA Request
Generation Logic
CFFSx
CFFEx
CFFFx CFIFO Fill Interrupt Request
CFFSx
NCIEx
Non Coherency Interrupt Request
NCFx
PIEx
Pause Interrupt Request
PFx
EOQIEx
End of Queue Interrupt Request
EOQFx
TORIEx
Trigger Overrun Interrupt Request
TORFx
CFUIEx
CFIFO Underflow Interrupt Request
CFUFx
RFOIEx
RFIFO Overflow Interrupt Request
RFOFx
CFIFO Data
Master SDO
Transmit Shift Register
Out
SDS
EQADC FIFO Control
Control Unit EQADC SSI Control Logic
FCK
RFIFO Data
SDI
Receive Shift Register Slave In
Pad
Baud Clock Generator FCK Interface
System
Clock Divide by: 2, 3, 4, Clock
.. , 15, 16, 17
BR
MDT
EQADC SSI Control Register
The main elements of the EQADC SSI block are the shift registers. The 26-bit transmit shift
register in the master and 26-bit receive shift register in the slave are linked by the SDO pin.
In a similar way, the 26-bit transmit shift register in the slave and 26-bit receive shift register
in the master are linked by the SDI pin. See Figure 655. When a data transmission
operation is performed, data in the transmit registers is serially shifted twenty-six bit
positions into the receive registers by the FCK clock from the master; data is exchanged
between the master and the slave. Data in the master transmit shift register in the beginning
of a transmission operation becomes the output data for the slave, and data in the master
receive shift register after a transmission operation is the input data from the slave.
SDI
Receive Shift Register Transmit Shift Register
SDO
Transmit Shift Register Receive Shift Register
FCK
two consecutive serial transmissions, time during which SDS is negated. When ready to
start of the next transmission, the slave must drive the MSB bit of the message on every
positive edge of FCK regardless of the state of the SDS signal. On the next positive edge,
the second bit of the message is conditionally driven according to if an asserted SDS was
detected by the slave on the preceding FCK negative edge. This is an important requisite
since the SDS and the FCK are not synchronous. The SDS signal is not generated by FCK,
rather both are generated by the system clock, so that it is not guaranteed that FCK edges
will precede SDS ones. While SDS is negated, the slave continuously drives its MSB bit on
every positive edge of FCK until it detects an asserted SDS on the immediately next FCK
negative edge. See Figure 657 for three situations showing how the slave should behave
according to when SDS is asserted.
Note: On the master, the FCK is not used as a clock. Although, the EQADC SSI behavior is
described in terms of the FCK positive and negative edges, all EQADC SSI related signals
(SDI, SDS, SDO, and FCK) are synchronized by the system clock on the master side. There
are no restrictions regarding the use of the FCK as a clock on the slave device.
Abort Feature
The master indicates it is aborting the current transfer by negating SDS before the whole
data frame has being shifted out, that is the 26th bit of data being transferred has not being
shifted out. The EQADC ignores the incompletely received message. The EQADC resends
the aborted message whenever the corresponding CFIFO becomes again the highest
priority CFIFO with commands bound for not-full external CBuffer. Refer to Section , CFIFO
Common Prioritization and Command Transfer, for more information on aborts and CFIFO
priority.
SystemClockFrequency ( MHz )
BaudClockFrequency = ------------------------------------------------------------------------------------------
SystemClockDivideFactor
bc. Maximum FCK frequency is highly dependable on track delays, master pad delays, and slave pad delays.
FCK
SDS
MSB MSB
SDO 1 2 3 ... 23 24 25 26 1 2 3 ... 23 24 25 26
Master Sample
Input
MSB MSB MSB
SDI 1 2 3 ... 23 24 25 26 1 1 2 3 ... 23 24 25 26
Slave Sample
Input
tDT
End Begin
Transmission Transmission
FCK
(1)
SDS
End Begin
Transmission Transmission
FCK
(2) SDS
End Begin
Transmission Transmission
FCK
(3) SDS
Slave Sample
Input
tDT
Figure 657. Slave Driving the MSB and Consecutive Bits in a Data Transmission
Write request
Result Data
To: FIFO Rx rdata
Control TAG Section
Unit
PSI Ready
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RESULT_DATA[0:15]
W ADC_CONV_RESULT[0:15]
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
INH_RET or PREFILL - This mode indicates that the companion module should not
send back some RESULT_DATA corresponding to the accompanying
00 ADC_CONV_RESULT data.
When the slave module is the Decimation Filter, this control enables the PREFILL
filter mode.
CONVERSION RESULT - It indicates that the ADC_CONV_RESULT field should
01 be treated as a valid sample data. This control mode is useful to Decimation Filter to
put the filter em normal mode instead of prefill mode.
TIME STAMP o REGISTER READ - A time stamp indicates that the
10 ADC_CONV_RESULT field should follow a bypass flow in the companion module,
returning back to the EQADC without any modification.
11 reserved
ADC architecture
RSD SINGLE-STAGE
PIPELINE
DIFF
INPUT
sample pipeline_control
RSD overview
Input
Voltage Residue Voltage
x2 Sum
-VREF,0,VREF
+
VRH Digital
-
Logic Signal RSD
Control Adder
+
VRL
-
Residue
Voltage
VREF
Vres=2Vin+VREF Vres=2Vin Vres=2Vin-VREF
Input
Voltage
-VREF VL VH VREF
-VREF
RSD Adder
The array, s1 to s12,will be the digital output of the RSD ADC with s1 being the MSB and
s12 being the LSB.
carry
a13
b12 a12
b11 a11
b10 ..
.. ...
... a3
b2 a2
+ b1
------------------------------------------
s12 s11 s10 ... ... s2 s1
EQADC initialization
The following steps provide an example about how to configure the EQADC controls and
how to initialize the on-chip ADCs and the external device. In this example, all conversion
commands will be transferred through CFIFO0.
1. Load all required configuration commands in the RAM in such way that they form a
queue; this data structure will be referred below as CQueue0. Figure 664 shows an
example of a CQueue able to configure the on-chip ADCs and external device at the
same time. Although, this example uses the DMAC to store commands in CFIFO0,
configuration commands could have also been directly written to the CFIFO0 push
register.
2. Select source driving EQADC hardware trigger ports (ETRIG). Before proceeding to
next step, allow some time (minimum of two system clocks - filter period is set to
minimum after reset) so that the logic level at the source is filtered and reaches the
EQADC control logic.
Note: ETRIG ports could be driven by an external pin or by the output port of other blocks in the
device, such as timers. In order to avoid unexpected triggering of CFIFOs in hardware
trigger modes, the source driving the ETRIG port must be selected and set to a known logic
level before putting the CFIFOs into the WAITING FOR TRIGGER state.
The trigger filter bypass control inputs must be set considering the characteristics of the
trigger signal. A particular case to assert the bypass control is when a device’s internal
signal with one clock width pulse is used.
3. Configure Section , EQADC External Trigger Digital Filter Register (EQADC_ETDFR).
4. Configure Section , EQADC null message send format register (EQADC_NMSFR).
5. Configure Section , EQADC SSI Control Register (EQADC_SSICR), to communicate
with the external device.
6. Enable the EQADC SSI by programming the ESSIE field in the Section , EQADC
Module Configuration Register (EQADC_MCR).
a) Write 0b10 to ESSIE field to enable the EQADC SSI. FCK is free running but serial
transmissions are not started.
b) Wait until the external device becomes stable after reset.
c) Write 0b11 to ESSIE field to enable the EQADC SSI to start serial transmissions.
7. Configure the DMAC to transfer data from CQueue0 to CFIFO0 in the EQADC.
8. Configure Section , EQADC Interrupt and DMA Control Registers (EQADC_IDCR).
a) Set CFFS0 to configure the EQADC to generate a DMA request to load
commands from CQueue 0 to the CFIFO0.
b) Set CFFE0 to enable the EQADC to generate a DMA request to transfer
commands from CQueue0 to CFIFO0; Command transfers from the RAM to the
CFIFO0 will start immediately.
c) Set EOQIE0 to enable the EQADC to generate an interrupt after transferring all of
the commands of CQueue0 through CFIFO0.
9. Configure Section , EQADC CFIFO Control Registers (EQADC_CFCR).
a) Write 0b0001 to the MODE0 field in EQADC_CFCR0 to program CFIFO0 for
software single-scan mode.
b) Write “1” to SSE0 to assert SSS0 and trigger CFIFO0.
10. Since CFIFO0 is in single-scan software mode and it is also the highest priority CFIFO,
the EQADC starts to transfer configuration commands to the on-chip ADCs and to the
external device.
11. When all of the configuration commands have been transferred, CF0 in Section ,
EQADC FIFO and Interrupt Status Registers (EQADC_FISR), will be set. The EQADC
generates a End of Queue interrupt. The initialization procedure is complete.
CQueue in
system memory
to simultaneously set these bits so that in-phase ADC clocks are generated. In this example,
ADC0/1_CLK are configured to the same frequency.
1. Push an ADC0_CR write configuration command in CFIFO0 that enables ADC0
(ADC0_EN=1) and that sets the ADC0_CLK_PS to an appropriate value. For example,
0x80800801.
2. Push an ADC1_CR write configuration command in CFIFO1 that enables ADC1
(ADC1_EN=1) and that sets the ADC1_CLK_PS to an appropriate value. For example,
0x82800801.
3. Configure CFIFO0 and CFIFO1 to single scan software trigger mode and
simultaneously trigger them by writing 0x04100410 to the EQADC_CFCR0 register -
see Section , EQADC CFIFO Control Registers (EQADC_CFCR).
RESERVED
RESERVED
PAUSE
Bit MESSAGE
EOQ
REP
BN
EB
ADC COMMAND
Name TAG
CMD
0 0 0 0 0 1 0 0b0011 Conversion Command
1
CMD
0 0 0 0 0 1 0 0b0011 Conversion Command
2
CMD
0 0 0 0 0 1 0 0b0011 Conversion Command
3
CMD
0 1 0 0 0 1 0 0b0011 (2) Configure peripheral device for next conversion sequence
4
CMD
0 0 0 0 0 1 0 0b0011 Conversion Command
5
CMD
0 0 0 0 0 1 0 0b0011 Conversion Command
6
CMD
0 0 0 0 0 1 0 0b0011 Conversion Command
7
CMD
0 1 0 0 0 1 0 0b0011 (2) Configure peripheral device for next conversion sequence
8
0 etc. ...
CMD
1 0 0 0 0 1 0 0b0011 EOQ Message
EOQ
CFIFO Header ADC Command
1. Fields LST, TSR, FMT, and CHANNEL_NUMBER are not showed for clarity. See Section , Conversion Command Format
for the Standard Configuration, for details.
2. MESSAGE_TAG field is only defined for read configuration commands.
Step Two: Configure the DMAC to handle data transfers between the CQueues/RQueues in
RAM and the CFIFOs/RFIFOs in the EQADC.
1. For transferring, set the source address of the DMAC to point to the start address of
CQueue1. Set the destination address of the DMAC to point to EQADC_CFPR1. Refer
to Section , EQADC CFIFO Push Registers (EQADC_CFPR).
2. For receiving, set the source address of the DMAC to point to EQADC_RFPR3. Refer
to Section , EQADC Result FIFO Pop Registers (EQADC_RFPR). Set the destination
address of the DMAC to point to the starting address of RQueue1.
Step Three: Configure the EQADC Control Registers.
CQueue/CFIFO transfers
In transfers involving CQueues and CFIFOs, the DMAC moves data from a queued source
to a single destination as showed in Figure 665. The location of the data to be moved is
indicated by the source address, and the final destination for that data, by the destination
address. The DMAC contains a data structure containing these addresses and other
parameters used in the control of data transfers. For every DMA request issued by the
EQADC, the DMAC has to be configured to transfer a single command (32-bit data) from
the CQueue, pointed to by the source address, to the CFIFO push register, pointed to by the
destination address. After the service of a DMA request is completed, the source address
has to be updated to point to the next valid command. The destination address remains
unchanged. When the last command of a queue is transferred one of the following actions is
recommended.
● The corresponding DMA channel should be disabled. This might be desirable for
CFIFOs in single scan mode.
● The source address should be updated to pointed to a valid command which can be
the first command in the queue that has just been transferred (cyclic queue), or the first
command of any other CQueue. This is desirable for CFIFOs in continuous scan mode,
and at some cases, for CFIFOs in single scan mode.
CQueue in
system memory
Source Address
Destination Address
RQueue/RFIFO transfers
In transfers involving RQueues and RFIFOs, the DMAC moves data from a single source to
a queue destination as showed in Figure 666. The location of the data to be moved is
indicated by the source address, and the final destination for that data, by the destination
address. For every DMA request issued by the EQADC, the DMAC has to be configured to
transfer a single result (16-bit data), pointed to by the source address, from the RFIFO pop
register to the RQueue, pointed to by the destination address. After the service of a DMA
request is completed, the destination address has to be updated to point to the location
where the next 16-bit result will be stored. The source address remains unchanged. When
the last expected result is written to the RQueue, one of the following actions is
recommended.
● The corresponding DMA channel should be disabled.
● The destination address should be updated pointed to the next location where new
coming results are stored, which can be the first entry of the current RQueue (cyclic
queue), or the beginning of a new RQueue.
RQueue in
system memory
Source Address
Destination Address
command was sent to RQueue1. This happens because the system can be configured so
that several CQueues can have its results sent to a single RQueue.
bd. VREF=VRH-VRL
1. Convert channel 44 with a command that has its CAL bit negated and obtain the raw,
uncalibrated result for 25%VREF (RAW_RES25%VREF).
2. Convert channel 43 with a command that has its CAL bit negated and obtain the raw,
uncalibrated result for 75%VREF (RAW_RES75%VREF).
3. Since the expected values for the conversion of these voltages are known
(CAL_RES25%VREF and CAL_RES75%VREF), GCC and OCC values can be calculated
from equations Equation 14 and Equation 15 using these values, and the ones
determined in steps 1 and 2.
4. Reformat GCC and OCC to the proper data formats as specified in Section , MAC Unit
and Operand Data Format. GCC is an unsigned 15-bit fixed point value and OCC is a
signed 14-bit value.
5. Write GCC value to Section , ADC0/1 Gain Calibration Constant Registers
(ADC0_GCCR and ADC1_GCCR), and OCC value to Section , ADC0/1 Offset
Calibration Constant Registers (ADC0_OCCR and ADC1_OCCR), using write
configuration commands.
Example
The raw results obtained when sampling reference voltages 25%VREF and 75%VREF
were, respectively, 3798 and 11592. The results that should have been obtained from the
conversion of these reference voltages are, respectively, 4096 and 12288. Therefore, using
equations Equation 14 and Equation 15, the gain and offset calibration constants are:
GCC=(12288-4096)/(11592-3798) = 1.05106492-> 1.05102539 = 0x4388
OCC=12288 - 1.05106492*11592 - 2 = 102.06-> 102 = 0x0066
Table 635 shows, for this particular case, examples of how the result values change
according to GCC and OCC when result calibration is executed (CAL=1) and when it is not
(CAL=0).
Input
Voltage
1/2 LSB
LSB
0 (12-bit AD resolution)
Quantization
Error Error for Shifted
Transfer Curve
2
1/2 LSB
LSB
Input
0 Voltage
(12-bit AD resolution)
-2
-4
Error for ADC Transfer Curve
Digital Control
Logic for analog Analog to Digital Converter
device
External
Triggers Trigger and
Queue Control
Logic Command Queues Result Queues
Interrupt Request
External
Device
Serial
Connection
EQADC
DMA/Interrupt
Requests
System Bus
the “Queue” counterparts in the QADC. Table 636 lists how the EQADC register, register
contents, and signals are related to QADC.
.
The EQADC and QADC also have similar procedures for the configuration or execution of
applications. Table 637 shows the steps required for the QADC versus the steps required
for the EQADC system.
Table 637. Usage Comparison between QADC and EQADC System (continued)
Procedure QADC EQADC System
26 Decimation Filter
26.2 Introduction
26.2.1 Overview
The decimation filter is a dedicated hardware block, designed to decimate fixed point
sample conversion results, generated by master block, usually an eQADC. A dedicated
parallel side interface (PSI) provides bi-directional communication between the master block
and the filter. A second interface is provided for use by the CPU, allowing setup of the filter
parameters and read/write of the configuration registers.
The Decimation Filter receives data samples from the master block (eQADC) in the PSI RX
sub-block. Each sample arrives at the decimation filter with an identifier tag and associated
commands. The input information is decoded by the PSI RX and control logic sub-blocks.
When receiving a filtering command, the data is transferred to the filter tap register’s sub-
block and is processed by the filter using the MAC, the coefficient register, and the control
logic sub-blocks. Then the result is returned to the master block by the PSI TX sub-block.
This result is accompanied by the corresponding tag information that provides an address
for the data.
To summarize normal mode, the decimation filter works as a slave block on this second
slave-bus line, and there is a PSI master block such as the eQADC to send and read data.
This is illustrated in the application example in Section 26.7, Application information.
The decimation filter can also work in a standalone mode. In this mode, the input data is
supplied and the output results are read by the chip core processor (CPU) using status and
interrupt signals or DMA requests.
Mixed modes are also provided, allowing input data fed from the PSI interface, and output
results read by the CPU or DMA, or input fed from CPU or DMA and output directed to the
PSI interface.
An integrator unit independently accumulates the values of filter outputs. The integration
can be restricted to time windows defined by hardware signals or software.
Two or more decimation filter blocks can also be configured to work in the cascade mode of
operation to obtain a more complex filtering function. The output result of a filter block is
connected to the input of the next filter by means of a dedicated interface.
All signals in the interface are generated in the system clock domain.
Figure 671 is the block diagram for the decimation filter.
Counter
Control Decoder
Logic Enable/Clear Counter
New
Tx En
Sample/
Control Bypass Select
Select MAC Done
Field
MAC
en done
Coefficient Coefficient En
Register File data-in 1 Cascade
Data Decimated Output
Decimated Sample PSI
Clear/Load Result Tx
Intermediary Data
Result
Cascade
Input Tap Data
PSI Rx Data Filter Tap data-in 2
Rx Registers
Integration
Integrator control signals
26.2.2 Features
The Decimation Filter block includes these distinctive features:
● Selectable 4th order IIR filter, or an 8th order FIR filter
– Input/output with 16-bit (fixed point) two’s complement signed values
– Internal taps with 16-bit (feed-forward portion of first IIR) and 24-bit (feedback
portion) resolutions (fixed point) for two’s complement signed value
– 24-bit programmable filter coefficients (fixed point) for two’s complement signed
value
– MAC unit with 51-bit fixed point accumulator
– Convergent rounding methodology
– Two’s complement overflow or saturation selection
– 58 clock cycles to process the input
● Implements a local slave-bus interface to a master block (e.g. the eQADC block)
● Input and output buffers with DMA capability
● Slave-bus interface to device
● Filter taps access for debug
● Filter initialization (flush) and stabilization (prefill) commands
● Timestamp support
● Decimation controlled by an internal counter or from an on-chip independent trigger
signal (triggered output result)
● Integrator unit accumulates filter output values, signaled or absolute, with 32-bit
resolution. The integrator can be controlled by software or hardware signals.
● Cascade of 2 or more individual blocks to compose a more complex filter
Normal 0 0
Standalone (0, 0) 1 0
or
PSI Input Mixed 0 1
(0, 1) 00
PSI Output Mixed or 1 1
0
Cascade (1, 0) 0 or 1 0 01 or 10 or 11
Freeze(1) 1, 1 X X X
Low Power 1 X X X X
1. Freeze mode can also be activated from outside the Decimation Filter, depending on the MCU, if FREN =
1.
Normal mode
This is the default operational mode of the decimation filter block. It corresponds to the
prefill/filter operation with input data supplied through the PSI slave-bus interface (i.e. its
input data is the ADC conversion result), with output going to the same PSI interface.
Standalone mode
Standalone mode differs from normal mode because the input data is not supplied by the
master block through the PSI slave-bus interface. In this case, the data is provided by the
central processor using the device slave-bus interface or DMA interface signals. Once the
data is filtered the decimated result is available in the Output Buffer register. The filter output
is also consumed by a CPU or DMA mastering the same device slave-bus interface. This
operation mode can be used to debug the filter stability or to decimate data in System RAM.
Cascade mode
Cascade mode is a filter structure mode with two or more individual filter blocks connected
in a chain to form a more complex filter function. The output result of the first block (head
block) is connected to the input of the next block (middle or tail block) to be filtered again.
More details in Section 26.5.16, Cascade mode description.
Freeze mode
This mode is also known as debug mode. All filter action is frozen, either through software
or by the hardware SoC debug request signal. If a freeze request comes when the filter is
processing an input, it enters freeze mode only after the processing finishes.
0xFFF8_C000 (Filter B)
0xFFF8_C000 (Filter B)
0xFFF8_C000 (Filter B)
SRES
Reset —(1) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
EDME
TORE
R
DSEL
MIXM
Module Disable. The MDIS bit puts the Decimation Filter in low power mode. Communication
through the PSI slave-bus Interface is ignored in this mode. Writes to the configuration register
are allowed with the exception of writes to the FREN and SRES bits, which are ignored. Writes
0
to the Coefficient registers are also allowed. The Decimation Filter cannot enter Freeze mode
MDIS once in disable mode. Once the module is disabled it no longer receives the system clock.
1 Low Power Mode
0 Normal Mode
Freeze Enable. The FREN bit enables the Decimation Filter to enter freeze mode if the SoC
debug request signal or the FRZ bit is asserted. See Section 26.5.13, Freeze mode description,
1 for more details.
FREN
1 Decimation Filter Freeze mode enabled
0 Decimation Filter Freeze mode disabled
2 Reserved, should be cleared.
Freeze Mode
The FRZ bit controls the freeze mode of the Decimation Filter. For this bit to take effect the
3 FREN freeze enable bit also needs to be asserted. While in freeze mode the MAC operations
FRZ are halted. See Section 26.5.13, Freeze mode description, for more details.
1 Decimation Filter in Freeze Mode
0 Decimation Filter in Normal Mode
Software-reset bit
The SRES is a self-negated bit which provides the CPU with the capability to initialize the
4 Decimation Filter through the slave-bus interface. This bit always reads as zero. See
SRES Section 26.5.10, Soft-reset command description, for more details.
1 Software-Reset
0 No action
Cascade Mode Configuration. The CASCD[1:0] bit field configures the block to work in cascade
mode of operation according to Table 642. For more details about the cascade mode, see
Section 26.5.16, Cascade mode description.
Any change to this field must follow the procedure described in the Section , Cascade freeze, stop, and
configuration change procedures.
Input Data Interrupt Enable. The IDEN bit enables the Decimation Filter to generate interrupt
requests on all new input data written to the Interface Input Buffer register or Input/Output
IDEN Buffers register.
7
1 Input Data Interrupt Enabled
0 Input Data Interrupt Disabled
Output Data Interrupt Enable. The ODEN bit enables the Decimation Filter to generate interrupt
requests on all new data written to the filter Output buffer. It is independent of how ISEL and
ODEN MIXM are set.
8
1 Output Data Interrupt Enabled
0 Output Data Interrupt Disabled
Error Interrupt Enable. The ERREN bit enables the Decimation Filter to generate interrupt
requests based on the assertion of the DECFILTER_MSR error flags OVF, DIVR, SVR, OVR or
ERREN IVR.
9
1 Error Interrupts Enabled
0 Error Interrupts Disabled
10 Reserved, should be cleared.
Filter Type Selection bits. The FTYPE[1:0] bits select the filter type according to Table 643.
00 Filter Bypass(1)
FTYPE[1:0]
11–12 01 IIR Filter - 1 x 4th order
10 FIR Filter - 1 x 8th order
11 reserved
1. In Bypass configuration the filter is disabled.
Input Disable. The IDIS bit disables the block input, so that writes to the input buffer have no
effect (either from the device slave-bus or from the PSI interface), and input DMA or interrupt
requests are not issued. Input disabling is needed to change the block configuration to or from
cascade mode. See Section 26.5.16, Cascade mode description for more details.
16
IDIS 1 Input disabled
0 Input enabled
IDIS resets in 1 (hardware reset only), and the module configuration procedures for previous versions
(without IDIS bit) are upward compatible provided that the DECFILTER_MCR is written with 0 into
the IDIS position (previously reserved).
Saturation Enable. The SAT bit enables the saturation of the filter output. See Section ,
17 Saturation, for more details.
SAT 1 Enable Saturation
0 Disables Saturation
Input Selection. The ISEL bit selects the source of input data to the Filter. Possible data sources
are the master block of the PSI slave-bus interface, or the CPU/DMA on the device slave-bus
interface. Each device slave-bus write to the Interface Input Buffer register or DMA transfer to
the input buffer is interpreted as a new sample to be processed by the filter. The output interface
used is the same as the one selected by ISEL if the output selection bit MIXM = 0. When MIXM
= 1, the output selection (slave-bus or device slave-bus) is contrary to the input selection (see
Table 645 and the MIXM bit definition), configuring a mixed mode operation. The slave-bus
ISEL interface can always read the input/output buffers, however the PSI slave-bus interface can
18 only read the output buffer by request of the decimation filter, in normal or input mixed modes.
This behavior is outlined in detail in Table 645.
1 Filter input from the device slave-bus interface
0 Filter input from PSI slave-bus interface
ISEL completely selects the output when the filter is configured as cascade tail, and is ignored when it
is configured as cascade middle. ISEL must not be modified during the filter operation (when the
status bit BSY is set). In addition, the interface not selected by ISEL must not be used to write into
the input buffer.
Always, no
By decfil
0 Normal Always, by DMA or
request(2)
DMA or interrupt
Forbidden,
Read interrupt(1) Always, write only
PSI Input request if issues
0 1 EDME = 1 Disabled
Mixed DMA or
interrupt(1)
ISEL 0 Normal
18 No effect,
PSI Input Write Forbidden Enabled (read only)
1 read only
(cont) Mixed
Always,
issues
0 Standalone Disabled
Always, no DMA or
(1) Forbidden,
Read DMA or interrupt
write only
interrupt Always, no
PSI Output By decfil
1 1 DMA or
Mixed request(2)
interrupt
0 Standalone Enabled,
by DMA or No effect,
PSI Output Write Forbidden read only
1 interrupt read only
Mixed request (1)
Mixed Mode. The MIXM field selects the interface used for filter output, either device slave-bus
or the PSI slave-bus, in relation to the interface selected by ISEL (see ISEL bit definition and
19 Table 645 for more details):
MIXM 1 Interface NOT selected by ISEL is used for output, configuring mixed mode.
0 Interface selected by ISEL is used for output, configuring normal or standalone mode
MIXM must be set to 0 (zero) when the filter is configured as cascade mode.
Decimation Rate Selection. The DEC_RATE[3:0] field selects the decimation rate used by the
Decimation Filter. The decimation rate defines the number of data samples from the master
block that is required to generate one decimated result in the Decimation Filter output.
Integrator Data Interrupt Enable. The SDIE field enables output buffer interrupts due to
integrator data result being ready (at registers DECFILTER_FINTVAL and
24 DECFILTER_FINTCNT):
SDIE
1 Integration ready causes an output interrupt
0 Integration ready does not cause an output interrupt.
DMA Selection. The DSEL bit determines whether the data transfers — to the input buffer (write
to) and from the output buffer (read from) — are performed by DMA requests or by interrupt
requests. This bit can also be active when PSI input is selected with Enhanced Debug
25 (ISEL = 0, EDME = 1), in which case the input buffer generates read requests only (see
DSEL
Section 26.5.14, Enhanced debug monitor description).
1 DMA requests are generated
0 Interrupt requests are generated
Input Buffer Interrupt Request Enable. The IBIE bit enables the Decimation Filter to generate
interrupt requests when:
– device slave-bus input is selected (ISEL = 1) and DSEL = 0 when the input buffer is available
26 to receive new data;
IBIE – PSI input is selected with Enhanced debug (ISEL = 0, EDME = 1) and DSEL = 0 when the
input buffer has data to be read by the device CPU.
1 Input Buffer Interrupt Request Enabled
0 Input Buffer Interrupt Request Disabled
Output Buffer Interrupt Request Enable
The OBIE bit enables the Decimation Filter interrupt requests when outputs are directed to the
27
device slave-bus (ISEL!= MIXM) and DMA is not selected (DSEL = 0).
OBIE
1 Output Buffer Interrupt Request Enabled
0 Output Buffer Interrupt Request Disabled
Enhanced Debug Monitor Enable
The EDME bit defines the enhanced debug monitor when input selection is from PSI (ISEL = 0).
In this case, the raw data fed from the PSI Master block is also, in parallel, made available in the
28
register DECFILTER_EDID (see Section 26.5.14, Enhanced debug monitor description),
EDME
generating and input interrupt or DMA request.
1 Enhanced debug monitor enabled (read requests of input data from master block enabled)
0 Enhanced debug monitor disabled
Triggered Output Result Enable. The TORE bit enables an input trigger signal to force the
decimation filter to send the next result of the filter back to the master block. For more details,
see Section , Triggered output result description.
29
1 Output buffer update using an external signal is enabled
TORE
0 Output buffer update using an external signal is disabled
TORE must only be asserted when PSI is selected as output (normal or PSI output mixed
modes).TORE must not be asserted with the filter bypassed (FTYPE = 00).
Trigger Mode. The TMODE field selects the way the trigger signal controls the output result
sampling function enabled by the TORE bit, as shown in Table 647.
The TMODE definition replaces, and is upward compatible with, the TRFE bit definition found in
previous versions of the Decimation Filter.
OVRC
ODFC
OVFC
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 IDF ODF 0 IBIF OBIF 0 DIVR OVF OVR IVR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Decimation Filter Busy indication. The BSY bit indicates that the Decimation Filter is processing
new input data from the master block in normal mode or from the device core in standalone
0 mode. BSY is not asserted when the filter is disabled (FTYPE = 00). However, the BSY bit is
BSY asserted when the soft reset is executed.
1 Decimation Filter Busy
0 Decimation Filter Idle
1 Reserved, should be cleared.
Decimation Counter. The DEC_COUNTER[3:0] field indicates the current value of the
DEC_COUNTER Decimation Counter (see Figure 671), which counts the number of input data
2–5
samples received by the Decimation Filter. When the value of this counter matches the
DEC_COUNTER
DEC_RATE[3:0] Configuration Register field, one decimated result is generated and the
[3:0]
DEC_COUNTER counter is reinitialized at zero. This register is cleared by a soft reset or a flush
command.
Input Data Flag Clear bit. The IDFC bit clears the IDF Flag bit in the Status Register. This bit is
6 self negated, therefore it is always read as zero.
IDFC 1 Clears IDF
0 No action
Output Data Flag Clear bit. The ODFC bit clears the ODF Flag bit in the Status Register. This bit
7 is self negated, therefore it is always read as zero.
ODFC 1 Clears ODF
0 No action
8 Reserved, should be cleared.
Input Buffer Interrupt Request Clear bit. The IBIC bit clears the IBIF Flag bit in the Status
9 Register. This bit is self negated, therefore it is always read as zero.
IBIC 1 Clears IBIF
0 No action
Output Buffer Interrupt Request Clear bit. The OBIC bit clears the OBIF Flag bit in the Status
10 Register. This bit is self negated, therefore it is always read as zero.
OBIC 1 Clears OBIF
0 No action
11 Reserved, should be cleared.
DIVR Clear bit. The DIVRC bit clears the DIVR Debug Filter Input Data Read Overrun indication
12 bit in the Status Register. This bit is self negated, therefore it is always read as zero.
DIVRC 1 Clears DIVR
0 No action
OVF Clear bit. The OVFC bit clears the OVF Output Overflow bit in the Status Register. This bit
13 is self negated, therefore it is always read as zero.
OVFC 1 Clears OVF
0 No action
OVR Clear bit. The OVRC bit clears the OVR Output Overrun bit in the Status Register. This bit
14 is self negated, therefore it is always read as zero.
OVRC 1 Clears OVR
0 No action
IVR Clear bit. The IVRC bit clears the IVR Filter Input Overrun indication bit in the Status
15 Register. This bit is self negated, therefore it is always read as zero.
IVRC 1 Clears IVR
0 No action
16–21 Reserved, should be cleared.
Input Data Flag. The IDF bit flag indicates when new data is available at the DECFILTER_IB
register or at the DECFILTER_IOB register. This flag generates an Interrupt Request if enabled
by the IDEN bit in the Configuration Register. This Flag is cleared by the IDFC Status bit or by a
22 soft reset of the decimation filter.
IDF 1 New Sample received
0 Sample not received
OBS: This flag is not used for read / write requests. It is used only to announce the input data event. For
read / write request flag, refer to IBIF.
Output Data Flag. The ODF bit flag indicates when a new decimated sample is available at the
DECFILTER_OB register or at the DECFILTER_IOB register. This flag generates an Interrupt
Request if enabled by the ODEN bit in the Configuration Register. This Flag is cleared by the
23 ODFC Status bit or by a soft reset of the decimation filter.
ODF 1 New Decimated Output Sample available
0 No new Decimated Output Sample available
OBS: This flag is not used for read requests. It is used only to announce the output data event. For read
request flag, refer to OBIF.
Filter Overflow Flag. The OVF bit indicates that an overflow occurred in the filtered sample
result. This flag generates an Interrupt Request if enabled by the ERREN bit in the
29 Configuration Register. This Flag is cleared by the OVFC Status bit or by a soft reset of the
OVF decimation filter.
1 Overflow occurred
0 No overflow
Output Interface Buffer Overrun. The OVR bit indicates that a decimated sample was
overwritten by a new sample in the Interface Output Buffer Register. This flag generates an
30 Interrupt Request if enabled by the ERREN bit in the Configuration Register. This Flag is
OVR cleared by the OVRC Status bit or by a soft reset of the decimation filter.
1 Filter Output Overrun occurred
0 No Output Overrun
Input Interface Buffer Overrun. The IVR bit indicates that a received sample in the Filter
Interface Input Register was overwritten by a new sample. This was probably caused by a
violation of the Decimation Filter maximum throughput. This flag generates an Interrupt
31 Request if enabled by the ERREN bit in the Configuration Register. This Flag is cleared by the
IVR IVRC Status bit or by a soft reset of the decimation filter.
1 Input Buffer Overrun occurred
0 Input Buffer Overrun did not occur
IVR does not set due to input register writes when input is disabled (DECFILTER_MCR bit IDIS = 1).
SCSAT
SSAT
SZRO
SSIG
W SRQ
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SISEL
R 0 0 0 0 0 0
SZROSEL SHLTSEL SRQSEL SENSEL
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Integrator DMA Enable. The SDMAE bit enables the DMA request when an integrator output is
requested (see Section , Integrator outputs).
0 1 integrator DMA request enabled
SDMAE 0 integrator DMA request disabled
The DMA channel used is the same one used for filter outputs, and any configuration that generates
DMA requests from both of those sources is not allowed.
Integrator Signal operation selection. The SSIG bit defines how the filtered data signal is treated
1 for integration:
SSIG 1 integrator input takes signaled filter output
0 integrator input takes the absolute value of filter output
Integrator Saturated operation selection. The SSAT bit defines how the integrator accumulator
behaves in case of an overflow.
1 integrator accumulator saturates on an overflow
2 0 integrator accumulator holds a modulo 217 value (considering the 15-bit fractional part) on an
SSAT overflow.
In saturated operation the overflown integration sum holds the value 0xFFFFFFFF for absolute
integration (SSIG = 0), or values 0x7FFFFFFF (positive saturation) and 0x80000000 (negative
saturation) for signaled integration (SSIG = 1). Non-saturated mode is not supported with signaled
integration, therefore one must not configure SSIG = 1 and SSAT = 0.
Integrator Counter Saturated operation selection. The SCSAT bit defines how the integrator
3 sample counter behaves in case of an overflow.
SCSAT 1 integrator sample counter saturates on an overflow, holding a value of 0xFFFFFFFF.
0 integrator sample counter holds a modulo 232 value on an overflow.
4–13 Reserved, should be cleared.
Integrator Output Request. The SRQ bit is used to command the update of the integrator
output, reflected in the registers DECFILTER_FINTVAL and DECFILTER_FINTCNT. It may also
cause a DMA or interrupt request, depending on the DECFILTER_MCR bit SDIE and
14 DECFILTER_MXCR bit SDMAE. This is a write-only bit, so reads always return 0. For more
SRQ
details see Section , Integrator outputs.
1 requests integrator output update
0 no integrator output update request
Integrator Zero. The SZRO bit is used to zero the integrator sum. This is a write-only bit, reads
always return 0. For more details see Section , Integrator reset.
15 1 zeroes integrator sum
SZRO 0 does not zero integrator sum
If bits SRQ and SZRO are both written 1 at the same time, the integrator is reset only after the registers
DECFILTER_FINTVAL and DECFILTER_FINTCNT are updated.
Integrator Input Selection. The SISEL bit selects the input of the integrator. For more details see
16 Section , Integrator inputs.
SISEL 1 filter outputs before the decimation feed the integrator
0 decimated filter outputs feed the integrator
17 Reserved, should be cleared.
Integrator Output Read Request Mode Selection. The SRQSEL field defines the use of the
integrator output request hardware input signal, according to Table 652. An integrator output
request updates the registers DECFILTER_FINTVAL and DECFILTER_FINTCNT, also causing
a DMA or interrupt request. Note that DMA or interrupt requests due to integrator output
updates depend on the DECFILTER_MXCR bit SDMAE and DECFILTER_MCR bit SDIE.
When continuous output is on, an integrator output request is issued whenever a new filter
output is accumulated. For more details see Section , Integrator outputs.
1. The hardware input signals are ZSELA for Decimation filter A and ZSELB for Decimation filter B, defined in
Section 16.6.24, IMUX Select Register 10 (SIU_ISEL10).
2. The hardware input signals are HSELA for Decimation filter A and HSELB for Decimation filter B, defined in
Section 16.6.24, IMUX Select Register 10 (SIU_ISEL10).
SCOVFC
SSOVFC
SCEC
SVRC
SDFC
SSEC
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SCOVF
SSOVF
R 0 0 0 0 0 0 0 SDF 0 0 SSE SCE 0 SVR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SVR Clear bit. The SVRC bit clears the SVR Integrator Data Overrun indication bit in the Status
15 Register. This bit is self negated, therefore it is always read as zero.
SVRC 1 Clears SVR
0 No action
16–22 Reserved, should be cleared.
Integrator Data Flag. The SDF bit flag indicates when a new integrator result is available at the
DECFILTER_FINTVAL register. This flag generates an Interrupt Request if enabled by the SDIE
23 bit in the Configuration Register. This Flag is cleared by the SDFC Status bit or by a soft reset of
SDF the decimation filter.
1 New integrator result available
0 No new integrator result available
24–25 Reserved, should be cleared.
Integrator Sum Exception flag. The SSE bit indicates an exceptional condition of the integrator
accumulator. This flag generates an Interrupt Request if enabled by the DECFILTER_MCR bit
26 ERREN, and it is cleared by the SSEC bit or by a soft reset. Integrator exceptions are defined in
SSE Section , Integrator exceptions.
1 Integrator accumulator exception.
0 No exception in the integrator accumulator.
Integrator Count Exception flag. The SCE bit indicates an exceptional condition of the integrator
counter. This flag generates an Interrupt Request if enabled by the DECFILTER_MCR bit
27 ERREN, and it is cleared by the SCEC bit or by a soft reset. Integrator exceptions are defined in
SCE Section , Integrator exceptions.
1 Integrator counter exception.
0 No exception in the integrator counter.
28 Reserved, should be cleared.
Integrator Sum Overflow Flag. The SSOVF bit indicates an overflow of the integrator
accumulator. This Flag is cleared by the SSOVFC bit or by a soft reset.
1 Integrator accumulator overflown.
29 0 No overflow in the integrator accumulator.
SSOVF The SSOVF bit samples the integrator accumulator overflow condition when and only when either
registers DECFILTER_FINTVAL or DECFILTER_CINTCNT are updated. Therefore, only one of the
register pairs (DECFILTER_FINTVAL/DECFILTER_FINTCNT and
DECFILTER_CINTVAL/DECFILTER_CINTCNT) must be used by the application, in order to avoid
races.
Integrator Count Overflow Flag. The SCOVF bit flag indicates an overflow of the internal
integrated sample counter. This Flag is cleared by the SCOVFC bit or by a soft reset.
1 Integrator sample counter overflown.
0 No overflow in the integrator sample counter.
30
SCOVF The SCOVF bit samples the integrator accumulator overflow condition when and only when either
registers DECFILTER_FINTVAL or DECFILTER_CINTCNT are updated. Therefore, only one of the
register pairs (DECFILTER_FINTVAL/DECFILTER_FINTCNT and
DECFILTER_CINTVAL/DECFILTER_CINTCNT) must be used by the application, in order to avoid
races.
Integrator Data Overrun. The SVR bit indicates that an integration value and count in the
registers DECFILTER_FINTVAL and DECFILTER_FINTCNT was overwritten by a new
integrator output request and was not read by the CPU or DMA. This flag generates an Interrupt
31
Request if enabled by the ERREN bit in the Configuration Register. This Flag is cleared by the
SVR SVRC bit or by a soft reset.
1 Integrator Data Overrun occurred.
0 Integrator Data Overrun did not occur.
PREFILL
R 0 0 0 0 0 0 0 0 0 0
FLUSH
INTAG[3:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
INPBUF[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R OUTBUF[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
COEFn[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0–7
Coefficient n field
The COEFn[23:0] bit fields are the digital filter coefficients registers. The coefficients are
8–31
fractional signed values in two’s complement format, in the range (-1 ≤ coef < 1).
COEFn[23:0]
Reads to this register are sign-extended, meaning the coefficient’s sign bit is copied to all eight most
significant register bits.Writing to these fields when BSY = 1 is not allowed.
0 1 2 3 5 6 7 8 9 10 11 12 13 14 15
R 8{TAPn[23]} TAPn[23:16]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R TAPn[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
TAPn Register
8–31
The read-only TAPn[23:0] bit fields shows the contents of the digital filter tap registers, as
TAPn[23:0]
fractional signed values in two’s complement format, in the range (-1 ≤ coef < 1).
Note: Reads to this register are sign-extended, meaning the coefficient’s sign bit is copied to all
eight most significant register bits.
The content of these registers is meaningless when BSY = 1.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SAMP_DATA[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Conversion Sample Data. The SAMP_DATA[15:0] bit field carries the data that was loaded in
0–31
the decimation filter to be processed by the FIR/IIR sub-block. This conversion data is supplied
SAMP_DATA
by the PSI slave-bus interface only. See Section 26.5.11, Interrupts requests description, and
[15:0]
Section 26.5.12, DMA requests description, for more details.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SUM_VALUE[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Integration Sum Value. The SUM_VALUE[31:0] field holds the sum of filtered output values.
The 17 most significant bits hold the integer part, and the 15 least significant ones the fractional
part of the integration value. The control of the integration sum and update of this register is
0–31 determined by the register DECFILTER_MXCR (see Section , Decimation Filter Module
SUM_VALUE Extended Configuration Register (DECFILTER_MXCR)). The register is updated only upon an
[31:0] integration output request.
SUM_VALUE should be taken as an unsigned number when the integrator is configured for
absolute operation (DECFILTER_MXCR bit SSIG = 0), and a two’s complement signed number
otherwise.
Note: If the DEFILTER_MXCR bit SSAT = 1, the integration sum is saturated, so that if the
accumulation overflows DECFILTER_FINTVAL holds the value 0xFFFFFFFF for absolute
integration (SSIG = 0), or values 0x7FFFFFFF (positive saturation) and 0x80000000
(negative saturation) for signaled integration (SSIG = 1).
If SSAT = 0, DECFILTER_FINTVAL holds the integration sum modulo 217 (considering the
15-bit fractional part).
Figure 682. Decimation Filter Final Integration Count Value Register (DECFILTER_FINTCNT)
Address: DECFILTER_BASE + 0x0E4 Access: User read only
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R COUNT[31:16]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R COUNT[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SUM_VALUE[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Integration Sum Value. The SUM_VALUE[31:0] field holds an unsigned number representing
0–31
the sum of filtered output values, continuously updated as the integration proceeds. The control
SUM_VALUE
of the integration sum is determined by the register DECFILTER_MXCR (see Section ,
[31:0]
Decimation Filter Module Extended Configuration Register (DECFILTER_MXCR)).
Note: If the DEFILTER_MXCR bit SSAT = 1, the integration sum is saturated, so that if the
accumulation overflows DECFILTER_CINTVAL holds the value 0xFFFFFFFF for absolute
integration (SSIG = 0), or values 0x7FFFFFFF (positive saturation) and 0x80000000
(negative saturation) for signaled integration (SSIG = 1).
If SSAT = 0, DECFILTER_FINTVAL holds the integration sum modulo 217 (considering the
15-bit fractional part).
Note: A read on this register automatically commands an update of the register
DECFILTER_CINTCNT.
Figure 684. Decimation Filter Current Integration Count Value Register (DECFILTER_CINTCNT)
Address: DECFILTER_BASE + 0x0EC Access: User read only
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R COUNT[31:16]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R COUNT[15:0]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Integration Count Value. The COUNT field holds the count of filtered outputs integrated. The
0–31
value is updated only when register DECFILTER_CINTVAL is read, to keep the coherency
COUNT[31:0]
between the integration and count values.
Table 664. Parallel side interface memory map for decfilter data exchange
M_CTRL
W INP_TAG[3:0]
[1:0]
Reset — — — — — — — — 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R OUT_BUFF[15:0]
W INP_BUFF[15:0]
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Input Buffer Data. The INP_BUFF[15:0] bit field is the data input from the master block. The
input register can be written with this data when ISEL = 0. This data can be timestamp
16–31 information that is not processed by the filter, or sample data that is processed by the digital
INP_BUFF[15:0]
filter. In this case, the information is a signed signal in two’s complement format.
Output Buffer Data. The OUT_BUFF[15:0] bit field corresponds to the data result of the
16–31 decimation filter that has been processed to the master block. This data can be timestamp
OUT_BUFF[15:0] information or a digital filter result. In this case, the information is a signed signal in two’s
complement format.
26.5.1 Overview
Figure 671 shows the block diagram of the Decimation Filter. The Control Logic provides the
control signals for all other sub-modules. The PSI data interface is subdivided into two sub-
modules, transmitter and receiver, that are accessed by the PSI slave-bus interface. The
bypass path is used when the filter is disabled and the incoming data can be transmitted
back to the master block without being processed by the Filter algorithm. The Filter
hardware is implemented in such a way that an IIR (1 x 4 poles) or FIR filter type can be
implemented. The selection between the two types of filter algorithms is implemented by the
Control Logic sub-block.
The Coefficient register file provides the digital filter coefficients. This block is a register
bank with read/write access by the device slave-bus interface. The Filter TAP registers are
also accessed through the device slave-bus line interface, providing additional debug
capabilities to the Decimation Filter block. The MAC (Multiply Accumulate) sub-block
executes the filter arithmetic operations controlled by the Control Logic. The MAC results
are routed to the Filter TAP registers and to the output buffer when the result is a decimated
filter sample.
the input buffer until the end of the processing of the sample data by the filter. The input
overrun may occur if more input is received before the end of the processing, or if the filter is
busy at the beginning of the received sequence.
When the filter is in bypass/disable mode (DECFILTER_MCR field FTYPE = 00), the data
from the input buffer is transferred to the output buffer, if it is not already full. If the output
buffer is full, the input buffer is loaded, and another word of input data is sent, then an input
overrun occurs.
Note: Configuring ISEL = 1, MIXM = 1 and FTYPE = 00 (bypass), writes to the DECFILTER_IB
are routed directly to the PSI output.
Output overruns are flagged by the DECFILTER_MSR bit OVR, if the output buffer is
updated when not empty. The output buffer empty condition depends on the mode and
output selection as follows:
● if PSI is selected as output (normal mode or PSI output mixed mode), the output buffer
is considered empty when the last output has been read.
● if cascade mode is selected, the output buffer is considered empty if the last output
request was acknowledged.
● if the device slave-bus is selected (standalone or PSI input mixed mode) for output and
DMA is selected (DSEL = 1), the output buffer is considered empty if the last output
has been read.
● if the device slave-bus is selected (standalone or PSI input mixed mode) for output and
DMA is not selected (DSEL = 0), the output buffer is considered empty when the ODF
flag is negated.
Note: When the device slave-bus is selected (standalone or PSI input mixed mode) for output and
DMA is not selected (DSEL = 0), the ODF flag must be cleared to avoid overrun, even if its
corresponding interrupt is not used (ODEN = 0).
Prefill inputs do not cause IIR or FIR output overrun in standalone, normal, and cascade tail
modes, but can cause overruns in cascade head or middle configurations (see Section ,
Cascade mode).
When bypass is selected, the output overrun does not occur because the data written into
the input buffer is written into the output buffer only when this buffer is empty, but an input
overrun may still occur (see Section , Input buffer overrun).
output with no change. This behavior is independent of the ISEL/MIXM setting. The
following applies to the bypass configuration:
● flush is ignored
● prefill is ignored
● trigger or counted decimation is ignored
● BSY bit is not set
● the input and output flags are set
Note: Bypass must not be configured in cascade mode (see Section 26.5.16, Cascade mode
description).
x(n) B0 + + y(n)
-1 -1
Z Z
x(n-1) B1 + + A1 y(n-1)
-1 -1
Z Z
x(n-2) B2 + A2 y(n-2)
+
-1 -1
Z Z
x(n-3) B3 + + A3 y(n-3)
-1 -1
Z Z
x(n-4) B4 A4 y(n-4)
Equation 17
N M
y(n) = Bi x ( n – i ) + Aj y ( n – j )
i=0 j=1
where x(n) is the filter input at time n, y(n) is the filter output at time n, N is the number of
feed-forward filter coefficients minus one, Bi are the feed-forward filter coefficients, M is the
number of feed-back filter coefficients, and Aj are the feedback filter coefficients.
Equation 17 can be written as:
Equation 18
N
Bi
w(n ) = ----S- x ( n – i )
i=0
Equation 19
M
Aj
y( n) = S w( n) +
----- y ( n – j )
S
j=1
Where all the coefficients are scaled down by S. The block diagram for Equation 18 and
Equation 19 is shown in Figure 687 in a fourth-order IIR filter implementation where the
coefficients Aj and Bi are called coefficient n, where n = 0-8.
-1 -1
Z Z
-1 -1
Z Z
-1 -1
Z Z
-1 -1
Z Z
registers are allocated for the FIR section. The Filter configuration paths are shown in
Figure 688. Multiplexer A controls the bypass filter path and multiplexer B controls/selects
the filter mode of operation, to either IIR mode or FIR mode. The selection is controlled by
the FTYPE[1:0] bits in the Filter Module Configuration register. The order of the filter can be
controlled by setting the appropriate filter coefficients to zero.
By-
00
A y(n)
x(n) Register Coefficient 0 + + Scale Factor S Round/Sat
IIR
Round/Sat
FI
01 10
B
-1 -1 FTYPE[1:0]
Z Z
-1 -1
FIR Section Z Z IIR Section
-1 -1
Z Z
-1 -1
Z Z
Rounding
The Decimation Filter performs rounding operations in two different locations, as shown in
Figure 688:
● to obtain the filter output result with 16 bits
● to obtain the IIR feedback result to be stored in tap4 registers with 24 bits
The rounding mechanism implements the Convergent Rounding methodology (also known
as round-to-nearest even number), which makes the decision on rounding up or down
based on the value of the lower portion of data to be rounded (LS_WORD). The rounding
up/down condition is equal to the traditional rounding except when the LS_WORD has the
format {1000...00}. In this particular case, the rounding procedure is like the example of
Figure 689. If the MS_WORD is odd, the value is rounded up. Otherwise the value is
rounded down.
+0
MS_WORD LS_WORD
+1
Saturation
Filter output saturation occurs when an overflow or underflow condition of the filter is
detected by dedicated logic, and if it is enabled by the SAT control bit of the configuration
register DECFILTER_MCR. In this condition, the filter output is set to a saturated value
equal to the maximum or minimum value that can be represented by the 16-bit output port.
Also, for the IIR filter an equivalent logic is used to assert the saturation for the 24-bit
feedback result.
indication. The Tail block takes the samples with prefill indication, filter them and discard the
result.
Note: The combined decimation count of the cascade combo may not be reset after the last prefill
sample. Unlike in a single (non-cascaded) filter, the number of non-prefill inputs until an
output comes out depends on the number of past prefill inputs.
Note: In Cascade Mode, the flush command is forwarded to the next cascaded block together with
the output, after the decimation count. Therefore it is possible that, in a given moment, the
taps of a cascaded block are zeroed after a flush input, while the following ones still retain
the old values.
Output data is available and its flag (ODF) is set when the input data sample is processed
by the filter and the decimation counter matches the decimation rate value. It is not used to
generate the read requests (as defined in Section , Output buffer interrupt request) when
DSEL = 0.
An error event in the decimation filter block is defined as one of these events:
● Overflow in the filter, flagged by OVF
● Overrun in the decimation filter input, flagged by IVR
● Overrun in the decimation filter output, flagged by OVR
● Overrun in enhanced debug monitor, flagged by DIVR
● Integrator overrun, flagged by SVR
● Integrator value exception, flagged by SSE
● Integrator count exception, flagged by SCE
An overflow occurs when the two’s-complement result value from the MAC accumulator is
out of the range of values that can be stored in tap register 4 (IIR) or in the output register.
An input overrun occurs when the input buffer is holding a word of input data and one more
word of data is received by the filter. See Section , Input buffer overrun, for more details.
An output overrun occurs when a new word of data is sent to the output buffer but the
previous word of data has not been handled yet. See Section , Output buffer overrun, for
more details.
These flags can be set by the PSI events, however they are only cleared by
● the CPU, or
● by the soft reset command in the DECFILTER_MCR, or
● by the clear flag fields in the DECFILTER_MSR.
26.5.15 Integrator
The hardware sample integrator accumulates the filter output values for determined periods.
Integrator inputs
The integrator can be fed either by raw or decimated filter outputs, selected by the
DECFILTER_MXCR bit SISEL (see Section , Decimation Filter Module Extended
Configuration Register (DECFILTER_MXCR)). The accumulated input value taken can be
the filtered sample “as is” (signaled), or its absolute value, depending on the
DECFILTER_MXCR bit SSIG.
Note: The integrator accumulates input samples when bypass is selected.
Integrator outputs
The integrator output is either:
● the 32-bit, fixed point unsigned accumulation of the absolute values from the filter
output, when the integrator is configured for absolute operation (DECFILTER_MXCR
bit SSIG = 0). This resolution allows a minimum of 131071 samples to be integrated
before an overflow occurs in absolute operation, or 65536 samples in signed operation.
● the 32-bit, fixed point signed two’s complement accumulation of the signed values from
the filter output, when the integrator is configured for signed operation (SSIG = 1).
The fractional part of the accumulation is 15 bits wide in both cases.
An accumulation overflow is flagged by the DECFILTER_MXSR bit SSOVF. The
accumulator can overflow in either of the ways below, selected through the
DECFILTER_MXCR bit SSAT:
● saturated accumulation (SSAT = 1), so that an overflow results in the value of
0xFFFFFFFF for absolute value accumulation (SSIG = 0), or 0x7FFFFFFF (positive)
and 0x80000000 (negative) for signaled accumulation (SSIG = 1).
● non-saturated accumulation (SSAT = 0), so that an overflow results in the modulo 217
accumulation value. This operation is only allowed in absolute accumulation (SSIG =
0).
The integrator output value becomes available in register DECFILTER_FINTVAL (see
Section , Decimation Filter Final Integration Value Register (DECFILTER_FINTVAL)) when
an integrator output request is issued. The integrator output request can be issued in the
following ways:
● by hardware, controlled by an external signal; the enabling and the selection of the
signal request modes is done through the DECFILTER_MXCR field SRQSEL (see
Section , Decimation Filter Module Extended Configuration Register
(DECFILTER_MXCR));
● by software, writing 1 to the DECFILTER_MXCR bit SRQ;
The SSOVF flag is asserted upon an integrator output request, based on the overflow state
of the internal accumulator. This internal overflow state is cleared upon an output request,
just after SSOVF is asserted, or upon an integrator reset (see Section , Integrator reset).
The internal overflow state is also cleared by writing SSOVFC to 1, but only in saturated
accumulation. Therefore, a non-saturated overflow that occurs before an SSOVF clear is
still flagged in the next output request.
The integrator output request also updates the register DECFILTER_FINTCNT, which holds
the number of samples accumulated into the register DECFILTER_FINTVAL. This internal
accumulated sample counter can operate either in a saturated or “wrapped” count mode, as
selected by the DECFILTER_MXCR bit SCSAT. In both cases, the counter overflow is
flagged by the DECFILTER_MXSR bit SCOVF.
The SCOVF flag is asserted upon an integrator output request, based on the overflow state
of the internal counter. This internal overflow state is negated upon an output request, just
after SCOVF is asserted, or upon an integrator reset (see Section , Integrator reset). The
internal overflow state is also negated by writing SCOVFC to 1, but only in saturated count.
Therefore, a non-saturated overflow that occurs before an SCOVF clear is still flagged in the
next output request.
An integrator output update can also issue a DMA or interrupt request. The interrupt and
DMA requests are the same ones used for the filter output buffer (see Section , Output
buffer interrupt request and Section , Output buffer DMA request). The DECFILTER_MCR
bit SDIE is used to enable integrator interrupts, and the DECFILTER_MXCR bit SDMAE
enables the DMA integrator requests. The integrator DMA request uses the same signal as
the filter output DMA request, so one must never use any configuration that allows both the
integrator and filter output to make DMA requests.
Integrator output updates are flagged by the DECFILTER_MXSR bit SDF. The integrator
overrun is detected in the same way as a filter output buffer overrun, and is flagged by
DECFILTER_MXSR bit SVR. An integrator overrun also generates an error interrupt if the
DECFILTER_MCR bit ERREN = 1 (see Section , Output buffer overrun).
Registers DECFILTER_CINTVAL and DECFILTER_CINTCNT provide a way to poll
intermediate integration values and sample counts, respectively (see Section , Decimation
Filter Current Integration Value Register (DECFILTER_CINTVAL) and Section , Decimation
Filter Current Integration Count Value Register (DECFILTER_CINTCNT)).
DECFILTER_CINTVAL is updated whenever the integrator is reset or a new sample is
accumulated. DECFILTER_CINTCNT is updated only when DECFILTER_CINTVAL is read,
so that coherency between the value and count values is guaranteed. Therefore, the read
access order of that pair of registers must be DECFILTER_CINTVAL first, followed by
DECFILTER_CINTCNT.
Note: The flags SSOVF and SCOVF can also asserted when DECFILTER_CINTVAL is read. The
SSOVF and SCOVF set and clearing rules apply for the DECFILTER_CINTVAL read the
same way as for an integrator output request.
Integrator reset
The integration value is reset to the value of zero, in the following ways:
● by hardware: on hardware reset, or controlled by an external signal; the enabling and
the selection of the zero signal modes is done through the DECFILTER_MXCR field
SZROSEL (see Section , Decimation Filter Module Extended Configuration Register
(DECFILTER_MXCR));
● by software: on software reset, or writing 1 to the DECFILTER_MXCR bit SZRO;
The integrator reset also zeroes the internal counter of accumulated samples and the
internal overflow state (but not SSOVF and SCOVF). Software and hardware reset resets all
integrator registers immediately. Integrator zero command from external signal or by
software (SZRO) affects the integrator registers and flags as follows:
● DECFILTER_CINTVAL resets immediately;
● DECFILTER_CINTCNT does not reset immediately; it is updated only upon a
DECFILTER_CINTVAL read, loaded with the number of integrated samples occurred
after the reset;
● DECFILTER_FINTVAL and DECFILTER_FINTCNT do not reset immediately; being
updated only upon a new output request (see Section , Integrator outputs); if a
integrator software zero command (through SZRO bit) and an integrator output request
(through SRQ bit) are made at the same time, the registers DECFILTER_FINTVAL and
DECFILTER_FINTCNT are updated with the last internal values before reset; the same
applies to simultaneous integrator zero command and output request by hardware
signal;
● the SSOVF and SCOVF flags do not negate; however, the internal overflow states
which assert SSOVF and SCOVF do reset immediately, so that the next output update
(either by hardware request, software request or DECFILTER_CINTVAL read) before
an overflow does not assert SSOVF/SCOVF.
Note: The integrator reset does not depend on the integrator enabling (see Section , Integrator
enabling and halting).
Integrator exceptions
Integrator may run into exception states due to overflow, either of the accumulated value or
the sample counter. Exceptions are flagged by the DECFILTER_MXSR bits SSE, for sum
value exception, and SCE, for counter exception. These flags generate an error interrupt, if
it is enabled (see Section , Block interrupt request).
The accumulator exception condition depends on whether it operates in saturated mode or
not, as follows:
● In Saturated operation (DECFILTER_MXCR bit SSAT = 1): a sum exception occurs
(SSE = 1) whenever an overflow is flagged; SSE asserts together with SSOVF.
● In Non-saturated operation (DECFILTER_MXCR bit SSAT = 0): a sum exception
occurs (SSE = 1) when an overflow is flagged and the DECFILTER_MXSR bit SSOVF
is already set to 1.
● In Non-saturated operation, an accumulator exception also occurs if the accumulator
overflows twice without any update of the final integrator value DECFILTER_FINTVAL
or the current integrator counter DECFILTER_CINTCNT (by a read to the
DECFILTER_CINTVAL register), neither an integrator reset occurs. The SSOVF flag
does not assert in this situation.
Note: The SSOVF flag can only be asserted upon a hardware request, a software request, or
when DECFILTER_CINTVAL is read, based on the internal accumulator overflow state.
Similarly, the sample counter exception condition depends on whether it operates in
saturated mode or not, as follows:
● In Saturated operation (DECFILTER_MXCR bit SCSAT = 1): a counter exception
occurs (SCE = 1) whenever an overflow is flagged; SCE asserts together with SCOVF.
● In Non-saturated operation (DECFILTER_MXCR bit SCSAT = 0): a counter exception
occurs (SCE = 1) when an overflow is flagged and the DECFILTER_MXSR bit SCOVF
is already set to 1.
● In Non-saturated operation, a counter exception also occurs if the counter overflows
twice without any update of the final count DECFILTER_FINTCNT or the current
integrator counter DECFILTER_CINTCNT (by a read to the DECFILTER_CINTVAL
register), neither an integration reset occurs. The SCOVF flag does not assert in this
situation.
Note: The Scovf Flag Can Only Be Asserted Upon A Hardware Request, A Software Request, Or
When Decfilter_cintval Is Read (Also Updating Decfilter_cintcnt), Based On The Internal
Counter Overflow State.
that the chain-in inputs of blocks from block 3 on are used to carry output data from the
first cascaded combo (Tail block 2) to the PSI master block.
● Blocks not used in a cascaded chain can be used normally, isolated (DEFILTER_MCR
field CASCD[1:0] = 00), as exemplified in Figure 692.
● The optional connection show from block N to block 1 in Figure 690 allows block N to
be configured as Head or Middle, feeding block 1 configured as Middle or Tail, yielding
more flexibility, as in the last example of Figure 692.
(Optional connections)
1 2 3 N
(Optional connections)
1 2 3 N
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DFCIN/OUT_FLUSH
DFCIN/OUT_STOP
DFCIN/OUT_REQ
DFCIN/OUT
Reserved Res. DFCIN/OUT_TAG[3:0]
_CTRL[1:0]
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
DFCIN/OUT_DATA[15:0]
Table 667. Decimation filter cascade mode data bus field description
Field Description
Cascade Middle and Tail blocks do not make input feed requests, either on PSI or slave-bus
interfaces. Similarly, cascade Head and Middle block do not make filtered (not integrator)
output data requests, either on PSI or slave-bus interfaces.
Cascaded blocks can be configured with different filter types (DECFILTER_MCR field
FTYPE), including bypass. The Table 668 shows how Decimation Filter features work in
each of the Cascade Mode configurations.
destination for the conversion result. The eQADC can send either conversion data or
timestamp data. The conversion data is filtered by the decimation filter and the timestamp is
bypassed and sent back to the eQADC.
In the eQADC application, the TAG field is used to address the appropriate RFIFO in the
eQADC block. In this case, only addresses 0–5 are used since there are only six RFIFOS
available in the eQADC block.
CFIFO Control
Buffer
ADC
(Analog) PSI Coefficients
PSI
(Master) (Slave)
FIFO
CAL Control
Filter
RFIFO
Serial
Slave-Bus
Equation 20
Y(s) B0 + B 1 s + B 2 s 2 + B3 s 3 + B 4 s 4
------------ = -----------------------------------------------------------------------------------
X(s) A0 – A1 s – A2 s2 – A3 s3 – A4 s 4
The coefficient results in fixed point decimal representation are shown in Table 669.
Table 669. Coefficient values given by SPW digital filter design tool
Coefficient Decimal value Coefficient Decimal value
B0 0.0221455 A0 1.0
B1 0.00445582948893748 A1 -2.69772868375858
B2 0.0318517846509088 A2 3.234056294853
B3 0.00445582948893748 A3 -1.92028561712454
B4 0.0221455 A4 0.47939080709495
Comparing Equation 19 with Equation 20, we obtain the relationship between the calculated
values of coefficients and the values to be loaded in the DECFILTER_COEFn registers. See
Table 670 below to obtain the coefficients. A scale factor of eight is used, being the smallest
divider factor to have all coefficient values in the range (–1 £ Coef < +1). Also note that the
signal of the An coefficients has signals inverted.
Hexadecimal values
COEFn Decimal value Decimal value
(24 bits)
input data are signed values in the two’s complement format in the range (–1 ≤ sample <
+1).
27 Temperature Sensor
27.1 Overview
SPC564A74xx, SPC564A80xx MCUs include an onboard temperature sensor that monitors
device temperature and produces a voltage directly proportional to the internal junction
temperature. Internal junction temperature must be calculated by software based on the
sampled temperature sensor voltage, sampled bandgap voltage and calibration parameter
values stored in internal flash memory.
VBG
VBG(TLOW)
T
JUNCTION
TLOW THIGH
VTSENS
VTSENS(THIGH)
VTSENS(TLOW)
T
JUNCTION
TLOW THIGH
TTSENS_CODE(T) x β – TTSENS_CODE(TLOW)
T = TLOW + x (THIGH – TLOW)
TTSENS_CODE(THIGH) – TTSENS_CODE(TLOW)
where:
VTSENS(TLOW) 14
TTSENS_CODE(TLOW) = x2 (Stored in device flash during factory calibration)
Vref0
VTSENS(THIGH) 14
TTSENS_CODE(THIGH) = x2 (Stored in device flash during factory calibration)
Vref0
VBG(TLOW)
VBG_CODE(TLOW) = x 214 (Stored in device flash during factory calibration)
Vref0
VBG(T)
VBG_CODE(T) = x 214
Vref
VTSENS(T)
TTSENS_CODE(T) = x 214
Vref
VBG_CODE(TLOW)
β=
VBG_CODE(T)
Notes:
1. VTSENS(T) is the temperature sensor output sampled by the ADC.
2. VBG(T) is the bandgap voltage sampled by the ADC.
3. Vref is the ADC reference voltage.
4. Vref0 is the ADC reference voltage during factory calibration.
5. TLOW is the low temperature factory calibration temperature (stored in device
flash).
6. THIGH is the hot factory calibration temperature (stored in device flash).
27.3.3 VBG_CODE(TLOW)
VBG_CODE(TLOW) is the value of the bandgap voltage sampled during low temperature
factory calibration. This value is stored in shadow flash memory during factory calibration.
See Section , Temperature Calculation Constants Register 1 (TSENS_TCCR1) for details.
27.3.6 Registers
The calibration constants described previously, that is, TLOW, THIGH, TSENS_CODE(TLOW),
TSENS_CODE(THIGH), and VBG_CODE(TLOW), are stored in device shadow flash memory
during factory test. This section details the registers where the values reside.
Address: 0xFFFE_C000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R TSCV2
W
RESET: – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R TSCV1
W
RESET: – – – – – – – – – – – – – – – –
= Unimplemented or Reserved
Combination of encoded hot factory calibration temperature (THIGH) and the temperature
sensor output at that temperature (TSENS_CODE(THIGH)).
Bits 0–1 contain a value representing the hot factory calibration temperature (THIGH).
Bits 2–15 are the temperature sensor voltage sampled and converted by the eQADC
during factory test with device at hot temperature (THIGH). This is the TSENS_CODE(THIGH)
parameter value referenced in the temperature calculation formula (see Figure 696).
The reset value of this register is device-dependent. The value is set during factory test.
Combination of encoded low factory calibration temperature (TLOW) and the temperature
sensor output at that temperature (TSENS_CODE(TLOW)).
Bits 16–17 contain a code indicating the value of TLOW. The values are as follows:
– 00: TLOW = 25 °C
– 01: TLOW = -40 °C
– 10: TLOW = Reserved
TSCV1 16–31 – 11: TLOW = Reserved
Bits 18–31 are the temperature sensor voltage sampled and converted by the eQADC
during factory test with device at the low calibration temperature. This is the
TSENS_CODE(TLOW) parameter value referenced in the temperature calculation formula
(see Figure 696).
The reset value of this register is device-dependent. The value is set during factory test.
Address: 0xFFFE_C004
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R TSCV3
Reserved
W
RESET: – – – – – – – – – – – – – – – –
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
Reserved
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
The reset value of this register is device-dependent. The value is set during factory test.
28.1 Overview
The System Information Module loads configuration data for the device, and trims data used
by various analog IP blocks to calibrate current/voltage references or other tunable circuits
from flash module test rows.
Configuration data is maintained by the System Information Module. Some, but not all, of
the data is readable by the user.
29.1 Overview
The CRC module provides a fast on-chip capability for verifying code and data integrity. This
capability is particularly important in safety applications. Examples include:
● Verifying memory integrity by setting it to a known value, calculating a checksum and
comparing the calculated checksum against a stored checksum value
● Verifying code integrity by comparing its calculated checksum to its stored checksum
value
● Verifying the integrity of data received from a network by comparing its received
checksum to its calculated checksum
CRC functionality can be implemented in software but there are significant speed
advantages to be gained by offloading CRC computation tasks from the processor core to
the CRC module. Further gains are made when data is written to the CRC module via DMA.
Note: This chapter does not discuss the details of computing CRC checksums but there are many
articles to be found via internet searches. One that might be of particular interest is “A
Painless Guide to CRC Error Detection Algorithms” by Ross Williams.
29.2 Features
The CRC module on the SPC564A74xx, SPC564A80xx includes the following features:
● 3 “contexts”—A context is a CRC engine with its own independent set of configuration
and data registers. The SPC564A74xx, SPC564A80xx CRC module can process up to
three separate data streams concurrently.
● Each context supports CRC-16-CCITT and CRC-32 ethernet polynomials
● Bit-swap and bit-inversion operations can be applied on the final CRC signature
● Support for byte/half-word/word width of the input data stream
● Computation is performed with zero wait states
be. 16-bit operations must be aligned to 16-bit boundaries, i.e., bits 0–15 or bits 16–31. Any unaligned operation
results in a bus error.
bf. Byte operations must be aligned to 8-bit boundaries, i.e., bits 0–7, bits 8–15, bits 16–23, or bits 24–31. Any
unaligned operation results in a bus error.
Start
Configure Context
Select polynomial, swap, inversion
via the CRC_CFG register
End of
Data Stream
Reached
16 12 5
X +X +X +1
32 26 23 22 16 12 11 10 8 7 5 4 2
X +X +X +X +X +X +X +X +X +X +X +X +X +X+1
In case of CRC-16-CCITT polynomial only the 16 least significant bits have meaning. The
16 most significant bits are set to 0 during the computation.
on page 29-
CRC_BASE + 0x0000 CRC Configuration Register (CRC_CFG)
1257
on page 29-
CRC_BASE + 0x0004 CRC Input Register (CRC_INP)
1258
1
on page 29-
CRC_BASE + 0x0008 CRC Current Status Register (CRC_CSTAT)
1259
on page 29-
CRC_BASE + 0x000C CRC Output Register (CRC_OUTP)
1260
on page 29-
CRC_BASE + 0x0010 CRC Configuration Register (CRC_CFG)
1257
on page 29-
CRC_BASE + 0x0014 CRC Input Register (CRC_INP)
1258
2
on page 29-
CRC_BASE + 0x0018 CRC Current Status Register (CRC_CSTAT)
1259
on page 29-
CRC_BASE + 0x001C CRC Output Register (CRC_OUTP)
1260
on page 29-
CRC_BASE + 0x0020 CRC Configuration Register (CRC_CFG)
1257
on page 29-
CRC_BASE + 0x0024 CRC Input Register (CRC_INP)
1258
3
on page 29-
CRC_BASE + 0x0028 CRC Current Status Register (CRC_CSTAT)
1259
on page 29-
CRC_BASE + 0x002C CRC Output Register (CRC_OUTP)
1260
1. CRC_BASE for the SPC564A74xx, SPC564A80xx is 0xFFE6_8000
PMC_BASE + 0x0000
Offset: PMC_BASE + 0x0010 Access: User read/write
PMC_BASE + 0x0020
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
POLYG
SWAP
R 0 0 0 0 0 0 0 0 0 0 0 0 0
INV
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0/1(1) 0 0
0–28 Reserved
POLYG: Polynomial selection
0: CRC-CCITT polynomial.
29
1: CRC-32 polynomial.
POLYG
This bit can be read and written by software.
This bit can be written only during the configuration phase.
SWAP: SWAP selection
0: No swap selection applied on the CRC_OUTP content
30 1: Swap selection (MSB → LSB, LSB → MSB) applied on the CRC_OUTP content. In case of CRC-
SWAP CCITT polynomial the swap operation is applied on the 16 LSB bits.
This bit can be read and written by software.
This bit can be written only during the configuration phase.
INV: INV selection
0: No inversion selection applied on the CRC_OUTP content
31 1: Inversion selection (bit x bit) applied on the CRC_OUTP content. In case of CRC-CCITT polynomial
INV the inversion operation is applied on the 16 LSB bits.
This bit can be read and written by software.
This bit can be written only during the configuration phase.
PMC_BASE + 0x0004
Offset: PMC_BASE + 0x0014 Access: User read/write
PMC_BASE + 0x0024
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
INP
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
INP
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PMC_BASE + 0x0008
Offset: PMC_BASE + 0x0018 Access: User read/write
PMC_BASE + 0x0028
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
CSTAT
W
Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
CSTAT
W
Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
PMC_BASE + 0x000C
Offset: PMC_BASE + 0x001C Access: User read/write
PMC_BASE + 0x002C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R OUTP
Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R OUTP
Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Transmission Phase 1
Memory
CRC Context
Data to be DMA
CRC_INP
Transmitted
CRC_OUTP
Transmission Phase 2
Memory
CRC Context
Data to be
CPU CRC_INP
Transmitted
CRC_OUTP
CRC Checksum
Transmission Phase 3
Memory
SPI
Data to be CPU
Tx FIFO
Transmitted
CRC Checksum
Reception Phase 1
Memory
SPI
DMA
Received Data Rx FIFO
CRC Checksum
Received Data
Reception Phase 2
Memory
CRC Context
DMA
Received Data CRC_INP
CRC_OUTP
CRC Checksum
Reception Phase 3
CRC Context
CRC_INP
CRC_OUTP
Software Check
30.1 Introduction
Figure 706 is a block diagram of the Deserial Serial Peripheral Interface (DSPI) module.
The revision history for this chapter is located at the end of this file.
SPI
DMA and Interrupt Control
DSPI_PUSHR DSPI_POPR
RX FIFO
TX FIFO
ASDR SDR
Internal
32
Parallel Inputs
32
CSI
DDR
Priority Internal
Logic Parallel Outputs
32
32
SOUT
Shift Register
SIN
30.2 Overview
The Deserial Serial Peripheral Interface (DSPI) module provides a synchronous serial
interface for communication between the SPC564A74xx, SPC564A80xx and external
devices. The DSPI supports pin count reduction through serialization and deserialization of
eTPU channels, eMIOS channels and memory-mapped registers. Incoming deserialized
data can also be used to trigger external interrupt requests. The channels and register
content are transmitted using a SPI-like protocol. There are three identical DSPI modules
(DSPI_B, DSPI_C and DSPI_D) on the SPC564A74xx, SPC564A80xx.
The DSPIs have three configurations:
● Serial Peripheral Interface (SPI)—DSPI operates as a SPI with support for queues
● Deserial Serial Interface (DSI)—DSPI serializes eTPU and eMIOS output channels and
deserializes the received data by placing it on the eTPU and eMIOS input channels and
as inputs to the External Interrupt Request sub-block of the SIU
● Combined Serial Interface (CSI)—DSPI operates in both SPI and DSI configurations
interleaving DSI frames with SPI frames, giving priority to SPI frames
For queued operations, the SPI queues reside in system memory external to the DSPI. Data
transfers between the memory and the DSPI FIFOs are accomplished through the use of
the eDMA controller or through host software.
30.3 Features
The DSPI supports these SPI features:
● Full-duplex, synchronous transfers
● Selectable LVDS Pads working at 40 MHz for SOUT and SCK pins (only in DSPI_B
and DSPI_C)
● Master and Slave Mode
● Buffered transmit operation using the TX FIFO with depth of 4 entries
● Buffered receive operation using the RX FIFO with depth of 4 entries
● TX and RX FIFOs can be disabled individually for low-latency updates to SPI queues
● Visibility into the TX and RX FIFOs for ease of debugging
● FIFO Bypass Mode for low-latency updates to SPI queues
● Programmable transfer attributes on a per-frame basis:
– Parameterized number of transfer attribute registers (from 2 to 8)
– Serial clock with programmable polarity and phase
– Various programmable delays:
PCS to SCK delay
SCK to PCS delay
Delay between frames
– Programmable serial frame size of 4 to 32 bits, expandable with software control
– Continuously held chip select capability
● 8 Peripheral Chip Selects, expandable to 256 with external demultiplexer
● Deglitching support for up to 128 Peripheral Chip Selects with external demultiplexer
● DMA support for adding entries to TX FIFO and removing entries from RX FIFO:
– TX FIFO is not full (TFFF)
– RX FIFO is not empty (RFDF)
● 6 interrupt conditions:
– End of queue reached (EOQF)
– TX FIFO is not full (TFFF)
– Transfer of current frame complete (TCF)
– Attempt to transmit with an empty Transmit FIFO (TFUF) ‘OR’ Serial frame
received while RX FIFO is full (RFOF). These two interrupts are ORed and given
out as FIFO Overrun interrupt.
– RX FIFO is not empty (RFDF)
– FIFO Underrun (slave only and SPI mode, the slave is asked to transfer data
when the Tx FIFO is empty)
● Modified transfer formats for communication with slower peripheral devices
● Continuous Serial Communications Clock (SCK)
● Power-saving architectural features
– Support for IPI Green-line Stop Mode
● Enhanced DSI logic to implement a 32-bit Timed Serial Bus (TSB) configuration,
supporting the Micro Second Channel (MSC) bus downstream frame format
The DSPIs also support these features unique to the DSI and CSI configurations:
● 2 sources of the serialized data:
– eTPU_A and eMIOS output channels
– Memory-mapped register in the DSPI
● Destinations for the deserialized data:
– eTPU_A and eMIOS input channels
– SIU External Interrupt Request inputs
– Memory-mapped register in the DSPI
● Deserialized data is provided as Parallel Output signals and as bits in a memory-
mapped register
● Transfer initiation conditions:
– Continuous
– Edge sensitive hardware triggered
– Change in data
● Pin serialization/deserialization with interleaved SPI frames for control and diagnostics
● Continuous serial communications clock
● Support for parallel and serial chaining of up to 3 DSPI modules
● Parity generation and checking
System RAM
Addr/Ctrl
Done
RX Queue DMA Controller
Data
Data
TX Queue
Addr/Ctrl
Data Data
DSPI
Req
TX FIFO RX FIFO
Shift Register
SCK SCK
Baud Rate
Generator
PCSx SS
30.7.1 Overview
Table 680 lists the signals that may connect off-chip depending on the device
implementation.
HT — Hardware trigger
HT is a trigger input signal that is used with Multiple Transfer Operations in DSI
configuration.
In master mode while in DSI or CSI configurations, the HT signal initiates a data transfer
when the TRRE bit in the DSPI_DSICR is set and a rising or falling edge is detected on HT.
Which edge to trigger on is determined by the TPOL bit in the DSPI_DSICR.
In slave mode, the DSPI generates a trigger pulse on the MTRIG pin, when a rising or falling
edge is detected on HT. Which edge that generates an output pulse is selected by the TPOL
bit in the DSPI_DSICR.
on page 30-
DSPI_BASE DSPI Module Configuration Register (DSPI_MCR)
1275
on page 30-
DSPI_BASE+0x4 DSPI Hardware Configuration Register (DSPI_HCR)
1277
on page 30-
DSPI_BASE+0x8 DSPI Transfer Count Register (DSPI_TCR)
1278
DSPI_BASE+0xC – DSPI Clock and Transfer Attributes Register 0 (DSPI_CTAR0) – on page 30-
DSPI_BASE+0x28 DSPI Clock and Transfer Attributes Register 7 (DSPI_CTAR7) 1279
on page 30-
DSPI_BASE+0x2C DSPI Status Register (DSPI_SR)
1285
on page 30-
DSPI_BASE+0x30 DSPI DMA/Interrupt Request Select and Enable Register (DSPI_RSER)
1288
FIFO Registers
on page 30-
DSPI_BASE+0x34 DSPI Push TX FIFO Register (DSPI_PUSHR)
1290
on page 30-
DSPI_BASE+0x38 DSPI Pop RX FIFO Register (DSPI_POPR)
1292
DSPI_BASE+0x3C – DSPI Transmit FIFO Register 0 (DSPI_TXFR0) – on page 30-
DSPI_BASE+0x48 DSPI Transmit FIFO Register 3 (DSPI_TXFR3) 1293
DSPI_BASE+0x4C –
Reserved
DSPI_BASE+0x78
DSPI_BASE+0x7C – DSPI Receive FIFO Register 0 (DSPI_RXFR0) – on page 30-
DSPI_BASE+0x88 DSPI Receive FIFO Register 3 (DSPI_RXFR3) 1293
DSPI_BASE+0x8C –
Reserved
DSPI_BASE+0xB8
DSI Registers
on page 30-
DSPI_BASE+0xBC DSPI DSI Configuration Register (DSPI_DSICR)
1294
on page 30-
DSPI_BASE+0xC0 DSPI DSI Serialization Data Register (DSPI_SDR)
1296
on page 30-
DSPI_BASE+0xC4 DSPI DSI Alternate Serialization Data Register (DSPI_ASDR)
1297
on page 30-
DSPI_BASE+0xC8 DSPI DSI Transmit Comparison Register (DSPI_COMPR)
1298
on page 30-
DSPI_BASE+0xCC DSPI DSI Deserialization Data Register (DSPI_DDR)
1298
on page 30-
DSPI_BASE+0xD0 DSPI DSI Configuration Register 1 (DSPI_DSICR1)
1299
on page 30-
DSPI_BASE+0xD4 DSPI DSI Serialization Source Select Register (DSPI_SSR)
1300
on page 30-
DSPI_BASE+0xD8 DSPI DSI Parallel Input Select Register 0 (DPSI_PISR0)(1)
1301
on page 30-
DSPI_BASE+0xDC DSPI DSI Parallel Input Select Register 1 (DPSI_PISR1)(1)
1301
on page 30-
DSPI_BASE+0xE0 DSPI DSI Parallel Input Select Register 2 (DPSI_PISR2)(1)
1301
on page 30-
DSPI_BASE+0xE4 DSPI DSI Parallel Input Select Register 3 (DPSI_PISR3)(1)
1301
on page 30-
DSPI_BASE+0xE8 DSPI DSI Deserialized Data Interrupt Mask Register (DSPI_DIMR)
1305
on page 30-
DSPI_BASE+0xEC DSPI DSI Deserialized Data Polarity Interrupt Register (DSPI_DPIR)
1306
1. DSPI_PISR0-3 registers and assosiated with them functionality may be not implemented in particular DSPI instances of the
SOC.
Address: DSPI_BASE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CONT_SCKE
PCSIS7
PCSIS6
PCSIS5
PCSIS4
PCSIS3
PCSIS2
PCSIS1
PCSIS0
PCSSE
ROOE
MTFE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0
DIS_RXF
DIS_TXF
CLR_RXF
CLR_TXF
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Freeze
The FRZ bit enables the DSPI transfers to be stopped on the next frame boundary when the
4
device enters Debug mode.
FRZ
0 Do not stop serial transfers
1 Stop serial transfers
Modified Timing Format Enable
5 The MTFE bit enables a modified transfer format to be used. See Section , Modified SPI/DSI
transfer format (MTFE = 1, CPHA = 1) for more information.
MTFE
0 Modified SPI transfer format disabled
1 Modified SPI transfer format enabled
Peripheral Chip Select Strobe Enable
6 The PCSSE bit enables the DSPI_x_PCS[5]/PCSS to operate as a PCS Strobe output signal.
See Section , Peripheral chip select strobe enable (PCSS) for more information.
PCSSE
0 DSPI_x_PCS[5]/PCSS is used as the Peripheral Chip Select[5] signal
1 DSPI_x_PCS[5]/PCSS is used as an active-low PCS Strobe signal
Receive FIFO Overflow Overwrite Enable
The ROOE bit enables in RX FIFO overflow condition to ignore the incoming serial data or to
overwrite existing data. If the RX FIFO is full and new data is received, the data from the transfer,
7
generated the overflow, is ignored or shifted in to the shift register. See Section , Receive FIFO
ROOE overflow interrupt request for more information.
0 Incoming data is ignored
1 Incoming data is shifted in to the shift register
Peripheral Chip Select Inactive State
8–15 The PCSIS bit determines the inactive state of the PCSx signal.
PCSISx 0 The inactive state of PCSx is low
1 The inactive state of PCSx is high
Module Disable
The MDIS bit allows the clock to be stopped to the non-memory mapped logic in the DSPI
effectively putting the DSPI in a software controlled power-saving state. See Section 30.9.18,
17
Power saving features for more information. The reset value of the MDIS bit is parameterized,
MDIS with a default reset value of ‘0’.
0 Enable DSPI clocks.
1 Allow external logic to disable DSPI clocks.
Disable Transmit FIFO
When the TX FIFO is disabled, the transmit part of the DSPI operates as a simplified double-
18
buffered SPI. See Section , FIFO disable operation for details.
DIS_TXF
0 TX FIFO is enabled
1 TX FIFO is disabled
Disable Receive FIFO
When the RX FIFO is disabled, the receive part of the DSPI operates as a simplified double-
19
buffered SPI. See Section , FIFO disable operation for details.
DIS_RXF
0 RX FIFO is enabled
1 RX FIFO is disabled
Clear TX FIFO
CLR_TXF is used to flush the TX FIFO. Writing a ‘1’ to CLR_TXF clears the TX FIFO Counter.
20
The CLR_TXF bit is always read as zero.
CLR_TXF
0 Do not clear the TX FIFO Counter
1 Clear the TX FIFO Counter
Clear RX FIFO
21 CLR_RXF is used to flush the RX FIFO. Writing a ‘1’ to CLR_RXF clears the RX Counter. The
CLR_RXF bit is always read as zero.
CLR_RXF
0 Do not clear the RX FIFO Counter
1 Clear the RX FIFO Counter
Sample Point
SMPL_PT field controls when the DSPI master samples SIN in Modified Transfer Format.
Figure 745 shows where the master can sample the SIN pin.
22–23
SMPL_PT 00 DSPI samples SIN at driving SCK edge.
01 DSPI samples SIN one system clock after driving SCK edge
10 DSPI samples SIN two system clocks after driving SCK edge
11 Reserved
24–29 Reserved, should be cleared.
Parity Error Stop
30 PES bit controls SPI operation when a parity error detected in received SPI frame.
PES 0 SPI frames transmission continue.
1 SPI frames transmission stop.
Halt
The HALT bit starts and stops DSPI transfers. See Section 30.9.1, Start and stop of DSPI
31
transfers for details on the operation of this bit.
HALT
0 Start transfers
1 Stop transfers
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Reset -(1) - 0 0 0 - - - - - - - - - - -
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. The reset bits in the DSPI_HCR are set by configuration parameters in the SOC.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
TCNT
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
described for DSI Configuration. CSI Configuration is only valid in conjunction with master
mode. See Section 1.5.4, “Combined Serial Interface (CSI) Configuration,” for more details..
TSB mode sets some limitations on transfer attributes:
● Clock phase is forced to be CPHA = 1 and the CPHA bit setting has no effect.
● PCS lines are driven at the driving edge of the SCK clock together with SOUT, so PCS
assertion and negation delays control is unavailable and PCSSCK, PASC, CSSCK and
ASC fields have no effect.
● Delay after transfer can be set from 1 to 64 serial clocks with help of PDT and DT fields.
Figure 713. DSPI Clock and Transfer Attributes Register 0–7 (DSPI_CTAR0–DSPI_CTAR7) in the
master mode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
DBR FMSZ CPOL CPHA LSBFE PCSSCK PASC PDT PBR
W
Reset 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
CSSCK ASC DT BR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Figure 714. DSPI Clock and Transfer Attributes Register 0 (DSPI_CTAR0) in the slave mode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
FMSZ CPOL CPHA PE PP Not used
W
Reset 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
Not used
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
See Section , PCS to SCK delay (tCSC) for more details.In the TSB mode the field has no effect.
See Section , After SCK delay (tASC) for more details. In the TSB mode the field has no effect.
Delay after Transfer Scaler
The DT field selects the Delay after Transfer Scaler. This field is only used in master mode. The
Delay after Transfer is the time between the negation of the PCS signal at the end of a frame and
the assertion of PCS at the beginning of the next frame. Table 687 lists the scaler values.
In the Continuous Serial Communications Clock operation the DT value is fixed to one SCK clock
period, The Delay after Transfer is a multiple of the system clock period and it is computed
according to the following equation:
24–27
DT[0:3] Equation 25
1
t DT = ------------- × PDT × DT
f SYS
In the TSB mode the Delay after Transfer is equal to a number formed by concatenation of PDT
and DT fields plus 1 of the SCK clock periods.
See Section , Delay after transfer (tDT) for more details.
Baud Rate Scaler
The BR field selects the scaler value for the baud rate. This field is only used in master mode. The
prescaled system clock is divided by the Baud Rate Scaler to generate the frequency of the SCK.
Table 688 lists the Baud Rate Scaler values.The baud rate is computed according to the following
equation:
28–31
BR[0:3] Equation 26
f SYS 1 + DBR
SCK baud rate = ------------- × -----------------------
PBR BR
1 0 11 43/57
1 1 00 50/50
1 1 01 66/33
1 1 10 60/40
1 1 11 57/43
Frame Size
0–4
The number of bits transferred per frame is equal FMSZ field value plus 1. Minimum valid FMSZ
FMSZ[0:4]
field value is 3.
Clock Polarity
5 The CPOL bit selects the inactive state of the Serial Communications Clock (SCK).
CPOL 0 The inactive state value of SCK is low
1 The inactive state value of SCK is high
Clock Phase
6 The CPHA bit selects which edge of SCK causes data to change and which edge causes data to be
captured.
CPHA 0 Data is captured on the leading edge of SCK and changed on the following edge
1 Data is changed on the leading edge of SCK and captured on the following edge
Parity Enable
7 PE bit enables parity bit transmission and reception for the frame
PE 0 No parity bit included/checked.
1 Parity bit is transmitted instead of last data bit in frame, parity checked for received frame.
Parity Polarity
PP bit controls polarity of the parity bit transmitted and checked
8 0 Even Parity: number of “1” bits in the transmitted frame is even. The DSPI_SR[SPEF] bit is set if
PP in the received frame number of “1” bits is odd.
1 Odd Parity: number of “1” bits in the transmitted frame is odd. The DSPI_SR[SPEF] bit is set if in
the received frame number of “1” bits is even.
29–31
Not used, write always zero to keep software compatible with future updates.
—
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R TCF TXRXS 0 EOQF TFUF 0 TFFF 0 0 DPEF SPEF DDIF RFOF 0 RFDF 0
W w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11
The DDIF flag indicates that DSI frame had been received with bits, selected by DSPI_DIMR with
DDIF active polarity, defined by DSPI_DPIR. The bit remains set until cleared by writing 1 to it.
0 No DSI data with active bits was received
1 DSI data with active bits was received
Receive FIFO Overflow Flag
The RFOF bit indicates that an overflow condition in the RX FIFO has occurred. The bit is set
12 when the RX FIFO and shift register are full and a transfer is initiated. The bit remains set until
RFOF cleared by writing 1 to it.
0 RX FIFO overflow has not occurred
1 RX FIFO overflow has occurred
13 Reserved, should be cleared.
Receive FIFO Drain Flag
The RFDF bit provides a method for the DSPI to request that entries be removed from the RX
14 FIFO. The bit is set while the RX FIFO is not empty. The RFDF bit can be cleared by writing 1 to
RFDF it or by acknowledgement from the DMA controller when the RX FIFO is empty.
0 RX FIFO is empty
1 RX FIFO is not empty
15 Reserved.
TX FIFO Counter
16–20 The TXCTR field indicates the number of valid entries in the TX FIFO. The TXCTR is
TXCTR incremented every time the DSPI _PUSHR is written. The TXCTR is decremented every time a
SPI command is executed and the SPI data is transferred to the shift register.
Transmit Next Pointer
20–23 The TXNXTPTR field indicates which TX FIFO Entry is transmitted during the next transfer. The
TXNXTPTR TXNXTPTR field is updated every time SPI data is transferred from the TX FIFO to the shift
register. See Section , Transmit FIFO underflow interrupt request for more details.
RX FIFO Counter
24–27 The RXCTR field indicates the number of entries in the RX FIFO. The RXCTR is decremented
RXCTR every time the DSPI _POPR is read. The RXCTR is incremented every time data is transferred
from the shift register to the RX FIFO.
Pop Next Pointer
28–31 The POPNXTPTR field contains a pointer to the RX FIFO entry that will be returned when the
POPNXTPTR DSPI_POPR is read. The POPNXTPTR is updated when the DSPI_POPR is read. See Section ,
Receive first-in first-out (RX FIFO) buffering mechanism for more details.
Figure 716. DSPI DMA/Interrupt Request Select and Enable Register (DSPI_RSER)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RFDFDIRS
TFFFDIRS
R 0 0 0 0 0
EOQFRE
RFOFRE
DPEFRE
RFDFRE
SPEFRE
TFUFRE
TCF_RE
TFFFRE
DDIFRE
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
CONT CTAS EOQ CTCNT PE PP PCS7 PCS6 PCS5 PCS4 PCS3 PCS2 PCS1 PCS0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
TXDATA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
TXDATA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
TXDATA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R RXDATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RXDATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Received Data
0–31
The RXDATA field contains the SPI data from the RX FIFO entry pointed to by the Pop Next Data
RXDATA[0:31]
Pointer.
Address: DSPI_BASE+0x3C–DSPI_BASE+0x78
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R TXCMD/TXDATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R TXDATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R RXDATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R RXDATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
FMSZ[4]
R 0 0 0
TPO
MTOE MTOCNT TSBC TXSS TRRE CID
W L
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
DPCS7
DPCS6
DPCS5
DPCS4
DPCS3
DPCS2
DPCS1
DPCS0
R PE
DCONT DSICTAS DMS PE PP
W S
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R SER_DATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R SER_DATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0–31
Serialized Data
SER_DATA
The SER_DATA field contains the signal states of the Parallel Input signals.
[30:31]
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
ASER_DATA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
ASER_DATA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R COMP_DATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R COMP_DATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0–31
Compare Data
COMP_DATA[0:31
The COMP_DATA field holds the last serialized DSI data.
]
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R DESER_DATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R DESER_DATA
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0
DSE1
TSBCNT DSE2
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
DPCS1_7
DPCS1_6
DPCS1_5
DPCS1_4
DPCS1_3
DPCS1_2
DPCS1_1
DPCS1_0
R 0 0 0 0 0 0 0 0
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
SS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
SS
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Source Select. The SS bits select serialization source for DSI frame. Each SS bit selects data for
31–0 corresponded bit in the transmitted frame.
SS[31:0] 0 the bit in transmitted frame is taken from Parallel Input pin;
1 the bit in transmitted frame is taken from DSPI_ASDR register
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
IPS7 IPS6 IPS5 IPS4
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
IPS3 IPS2 IPS1 IPS0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31–28
Input Pin Select 7. The IPS7 field selects Parallel Input pin for transmitted frame bit 7.
IPS7
27–24
Input Pin Select 6. The IPS6 field selects Parallel Input pin for transmitted frame bit 6.
IPS6
23–20
Input Pin Select 5. The IPS5 field selects Parallel Input pin for transmitted frame bit 5.
IPS5
19–16
Input Pin Select 4. The IPS4 field selects Parallel Input pin for transmitted frame bit 4.
IPS4
15–12
Input Pin Select 3. The IPS3 field selects Parallel Input pin for transmitted frame bit 3.
IPS3
11–8
Input Pin Select 2. The IPS2 field selects Parallel Input pin for transmitted frame bit 2.
IPS2
7–4
Input Pin Select 1. The IPS1 field selects Parallel Input pin for transmitted frame bit 1.
IPS1
3–0
Input Pin Select 0. The IPS0 field selects Parallel Input pin for transmitted frame bit 0.
IPS0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
IPS15 IPS14 IPS13 IPS12
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
IPS11 IPS10 IPS9 IPS8
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31–28
Input Pin Select 15. The IPS15 field selects Parallel Input pin for transmitted frame bit 15.
IPS15
27–24
Input Pin Select 14. The IPS14 field selects Parallel Input pin for transmitted frame bit 14.
IPS14
23–20
Input Pin Select 13. The IPS13 field selects Parallel Input pin for transmitted frame bit 13.
IPS13
19–16
Input Pin Select 12. The IPS12 field selects Parallel Input pin for transmitted frame bit 12.
IPS12
15–12
Input Pin Select 11. The IPS11 field selects Parallel Input pin for transmitted frame bit 11.
IPS11
11–8
Input Pin Select 10. The IPS10 field selects Parallel Input pin for transmitted frame bit 10.
IPS10
7–4
Input Pin Select 9. The IPS9 field selects Parallel Input pin for transmitted frame bit 9.
IPS9
3–0
Input Pin Select 8. The IPS8 field selects Parallel Input pin for transmitted frame bit 8.
IPS8
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
IPS23 IPS22 IPS21 IPS20
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
IPS19 IPS18 IPS17 IPS16
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31–28
Input Pin Select 23. The IPS23 field selects Parallel Input pin for transmitted frame bit 23.
IPS23
27–24
Input Pin Select 22. The IPS22 field selects Parallel Input pin for transmitted frame bit 22.
IPS22
23–20
Input Pin Select 21. The IPS21 field selects Parallel Input pin for transmitted frame bit 21.
IPS21
19–16
Input Pin Select 20. The IPS20 field selects Parallel Input pin for transmitted frame bit 20.
IPS20
15–12
Input Pin Select 19. The IPS19 field selects Parallel Input pin for transmitted frame bit 19.
IPS19
11–8
Input Pin Select 18. The IPS18 field selects Parallel Input pin for transmitted frame bit 18.
IPS18
7–4
Input Pin Select 17. The IPS17 field selects Parallel Input pin for transmitted frame bit 17.
IPS17
3–0
Input Pin Select 16. The IPS16 field selects Parallel Input pin for transmitted frame bit 16.
IPS16
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
IPS31 IPS30 IPS29 IPS28
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
IPS27 IPS26 IPS25 IPS24
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31–28
Input Pin Select 31. The IPS31 field selects Parallel Input pin for transmitted frame bit 31.
IPS31
27–24
Input Pin Select 30. The IPS30 field selects Parallel Input pin for transmitted frame bit 30.
IPS30
23–20
Input Pin Select 29. The IPS29 field selects Parallel Input pin for transmitted frame bit 29.
IPS29
19–16
Input Pin Select 28. The IPS28 field selects Parallel Input pin for transmitted frame bit 28.
IPS28
15–12
Input Pin Select 27. The IPS27 field selects Parallel Input pin for transmitted frame bit 27.
IPS27
11–8
Input Pin Select 26. The IPS26 field selects Parallel Input pin for transmitted frame bit 26.
IPS26
7–4
Input Pin Select 25. The IPS25 field selects Parallel Input pin for transmitted frame bit 25.
IPS25
3–0
Input Pin Select 24. The IPS24 field selects Parallel Input pin for transmitted frame bit 24.
IPS24
Figure 733. DSPI DSI Deserialized Data Interrupt Mask Register (DSPI_DIMR)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
MASK
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
MASK
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MASK. The MASK bits define which bits in received deserialization data should be checked to
produce the Deserialized Data Interrupt (DDI).
31–0
0 the bit in received DSI frame does not produce DDI interrupt.
MASK[31:0]
1 the bit in received DSI frame can produce DDI interrupt if the data bit matches to configured
polarity.
Figure 734. DSPI DSI Deserialized Data Polarity Interrupt Register (DSPI_DIPR)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
R
DP
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
R
DP
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Data Polarity. The DP bits define what value of the received deserialization data sets the
31–0 DSPI_SR[DDIF] bit.
DP[31:0] 0 if received bit is 0 the DSPI_SR[DDIF] bit is set.
1 if received bit is 1 the DSPI_SR[DDIF] bit is set.
SCK SCK
Baud Rate
Generator
PCSx SS
Generally more than one slave device can be connected to the DSPI master. Eight
Peripheral Chip Select (PCS) signals of the DSPI masters can be used to select which of
the slaves to communicate with.
The three DSPI configurations share transfer protocol and timing properties which are
described independently of the configuration in Section 30.9.6, Transfer formats. The
transfer rate and delay settings are described in Section 30.9.5, DSPI baud rate and clock
delay generation.
The DSPI is started (DSPI transitions to RUNNING) when all of the following conditions are true:
● DSPI_SR[EOQF] bit is clear
● Device is not in the debug mode is or the DSPI_MCR[FRZ] bit is clear
● DSPI_MCR[HALT] bit is clear
The DSPI stops (transitions from RUNNING to STOPPED) after the current frame when any one of the
following conditions exist:
● DSPI_SR[EOQF] bit is set
● Device in the debug mode and the DSPI_MCR[FRZ] bit is set
● DSPI_MCR[HALT] bit is set
State transitions from RUNNING to STOPPED occur on the next frame boundary if a transfer is in
progress, or immediately if no transfers are in progress.
Master mode
In SPI master mode the DSPI initiates the serial transfers by controlling the Serial
Communications Clock (SCK) and the Peripheral Chip Select (PCS) signals. The SPI
command field in the executing TX FIFO entry determines which of the DSPI_CTAR
registers will be used to set the transfer attributes and which PCS signal to assert. The
command field also contains various bits that help with queue management and transfer
protocol. See Section , DSPI PUSH TX FIFO Register (DSPI_PUSHR) for details on the SPI
command fields. The data field in the executing TX FIFO entry is loaded into the shift
register and shifted out on the Serial Out (SOUT) pin. In SPI master mode, each SPI frame
to be transmitted has a command associated with it allowing for transfer attribute control on
a frame by frame basis.
Slave mode
In SPI slave mode the DSPI responds to transfers initiated by a SPI bus master. The DSPI
does not initiate transfers. Certain transfer attributes such as clock polarity, clock phase and
frame size must be set for successful communication with a SPI master. The SPI slave
mode transfer attributes are set in the DSPI_CTAR0.
to the shift register. The maximum value of the field is equal to DSPI_HCR[TXFR] and it rolls
over after reaching the maximum.
If the RX FIFO and shift register are full and a transfer is initiated, the RFOF bit in the
DSPI_SR is set indicating an overflow condition. Depending on the state of the ROOE bit in
the DSPI_MCR, the data from the transfer that generated the overflow is either ignored or
shifted in to the shift register. If the ROOE bit is set, the incoming data is shifted in to the shift
register. If the ROOE bit is cleared, the incoming data is ignored.
Slave mode
In DSI slave mode the DSPI responds to transfers initiated by a SPI or DSI bus master. In
this mode the DSPI does not initiate DSI transfers. Certain transfer attributes such as clock
polarity and phase must be set for successful communication with a DSI master. The DSI
slave mode Transfer attributes are set in the DSPI_CTAR1.
If the CID bit in the DSPI_DSICR is set and the data in the DSPI_COMPR differs from the
selected source of the serialized data, the slave DSPI will assert the MTRIG signal. If the
slave’s HT signal is asserted and the TRRE is set, the slave DSPI asserts MTRIG. These
features are included to support chaining of several DSPI. Details about the MTRIG signal is
found in Section , Multiple transfer operation (MTO).
DSI serialization
In the DSI configuration from 4 to 16 bits can be serialized using 2 different sources. The
TXSS bit in the DSPI_DSICR selects between the DSPI DSI Serialization Data Register
(DSPI_SDR) and the DSPI DSI Alternate Serialization Data Register (DSPI_ASDR) as the
source of the serialized data. The DSPI_SDR holds the latest Parallel Input signal values
which is sampled at every rising edge of the system clock. The DSPI_ASDR is written by
host software and used as an alternate source of serialized data.
The DSPI_PISR0–3 registers allow to change relative position of the Parallel input pins in
the transmitted frame. Each transmitted frame bit can be selected from 16 adjacent Parallel
Inputs by writing IPSn fields. The IPSn field is treated as a 4-bit integer number,
representing numbers from −8 to 7. The Parallel Input pin number, selected by IPSn field is
defined by the difference between sum IPSn field number (n) and the IPSn field value. If the
operation result is negative the number 32 should be added. If the result is higher than 32,
32 should be subtracted from the result.
For example, IPS0, set to minus 1 (binary 1111), preselects Parallel Input 1 to 0 position in
the transmitted frame.
IPS6, set to 3 (binary 0011), preselects Parallel Input 3 to be bit number 6 in the transmitted
frame, while the value minus 2 (1110) preselects Parallel Input 8.
IPS31, set to minus 8 (binary 1000), preselects Parallel Input 7 to be bit number 31 in the
transmitted frame.
(Of course, the Parallel Input pin state, to be transmitted, should be selected by TXSS and
the frame size should be higher than the bit position in the preselected frame.)
The DSPI_SSR provides additional way to create the frame for transmission. Each bit from
this register is OR’d with the TXSS bit and controls individual transmitted bit source. This
way, the transmitted frame can have any combination of the DSPI_SDR and DSPI_ASDR
bits. This feature allows control SPI based devices, requiring control and data fields in the
frame. Control field may come from DSPI_ASDR, set by the device’s CPU, while data field
can be generated by device peripheral modules, such as PWM timers.
A copy of the last 32-bit DSI frame shifted out of the Shift Register is stored in the DSPI DSI
Transmit Comparison Register (DSPI_COMPR). This register provides added visibility for
debugging and it serves as a reference for transfer initiation control. Figure 736 shows the
DSI Serialization logic.
TXSS
32
DSPI Parallel Inputs
Select Registers 0-3 32
32
DSI Serialization
32 x 16 to 1 Muxes
Data Register
0 1 N SOUT
Parallel 32 1
Inputs 32 0 Shift Register
Clock
SCK
Logic
Control
Logic PCS
HT
DSI deserialization
When all bits in a DSI frame have been shifted in, the frame is copied to the DSPI DSI
Deserialization Data Register (DSPI_DDR). This register presents the deserialized data as
Parallel Output signal values. The DSPI_DDR is memory mapped to allow host software to
read the deserialized data directly.
The received data is bit-wise compared to the value of the DSI Deserialized Data Polarity
Interrupt Register, bit-wise AND’ed with DSI Deserialized Interrupt Mask Register and the
results OR’ed to produce the DDIF flag in the DSPI_SR, which in turn can cause a DDI
interrupt request if the DDIFRE bit of DSPI_RSER is set.
Figure 737 shows the DSI deserialization logic.
DSI Deserialization
Data Register
SIN 0 1 N-1
32 32 Parallel
Shift Register Outputs
0 0 Continuous
0 1 Change in Data
1 0 Triggered
1 1 Triggered or Change in Data
Continuous control
For Continuous Control a new DSI frame shifts out when the previous transfer cycle has
completed and the Delay after Transfer (tDT) has elapsed.
Triggered control
For Triggered Control initiation of a transfer is controlled by the Hardware Trigger signal
(HT). The TPOL bit in the DSPI_DSICR selects the active edge of HT. For HT to have any
affect, the TRRE bit in the DSPI_DSICR must be set.
slaves also propagate triggers from other slaves to the master. When a DSPI slave detects
a trigger signal on its HT input, the slave generates a trigger signal on the MTRIG output.
Serial and parallel chaining require multiplexing of signals external to the DSPI.
Note: TSB operation is not available in MTO mode. TSBC and MTOE bits of DSPI_DSICR should
not be set simultaneously.
Parallel chaining
Parallel chaining allows the PCS and SCK signals from a Master DSPI to be shared by
internal Slave DSPIs and external Slave SPI devices, thus reducing pin utilization of the
SPC564A74xx, SPC564A80xx MCU. Signal sharing reduces DSPI pin utilization. An
example of a parallel chain is shown in Figure 738. In this example, the SOUT and SIN of
the three DSPIs connect to separate external SPI devices, which share a common PCS and
SCK.
DEVICE
DSPI_B Master DSPI_C Slave DSPI_D Slave
HT MTRIG HT MTRIG
SOUT_B
SIN_C
PCS_B[0]
SOUT_C
SIN_B
SIN_D
SOUT_D
Serial chaining
Serial chaining allows SPI operation with an external device that has more bits than one
DSPI module. In a serial chain, one DSPI module operates as a master, the other DSPI
modules operate as slaves.
The data output (SOUT) of the master is connected to the data input (SIN) of the slave. The
SOUT of a slave is connected to the SIN of subsequent slaves until the last block in the
chain, where the SOUT is connected to an external pin, which connects to the input of an
external SPI device. The slave DSPI and external SPI device use the master peripheral chip
select (PCS) and clock (SCK).
The Trigger input of the master allows a slave DSPI to trigger a transfer when a data change
occurs in the slave DSPI and the slave DSPI is operating in Change in Data mode. The
Trigger input of the master is connected to MTRIG output of the slave.
The concatenated frames can be from 8 to 64 bits long. Figure 739 shows an example of
how the blocks can be connected in the SPC564A74xx, SPC564A80xx.
DEVICE
DSPI_B Master DSPI_C Slave DSPI_D Slave
HT MTRIG HT MTRIG
SCK_B
SOUT_D
SIN_B
SS SCK
SOUT SIN
External SPI Slave Device
master which initiates the transfer. The DSPI slaves also propagate trigger signals from
other slaves to the DSPI master.
Field DSPI_DSICR[MTOCNT] in DSPI_B must be written with the total number of bits to be
transferred. Field DSPI_DSICR[MTOCNT] must equal the sum of all FMSZ fields in the
selected DSPI_CTAR registers for DSPI_B and all on-chip DSPI slaves. For example, if one
16-bit DSI frame is created by concatenating 8 bits from DSPI_B and 4 bits from DSPI_C
and DSPI_D each, then DSPI_B’s frame size must be set to 8, and the DSPI slaves’ frame
size must be set to 4 each. Field DSPI_DSICR[MTOCNT] in DSPI_B must be set to 16.
transferred is moved to the RX FIFO. The TX FIFO and RX FIFO are fully functional in CSI
mode.
CSI serialization
Serialization in the CSI configuration is similar to serialization in DSI configuration. The
transfer attributes for SPI frames are determined by the DSPI_CTAR selected by the CTAS
field in the SPI command halfword. The transfer attributes for the DSI frames are
determined by the DSPI_CTAR selected by field DSPI_DSICR[DSICTAS].
The Parallel Inputs signal states are latched into the DSPI DSI Serialization Data Register
(DSPI_SDR) on the rising edge of every system clock and serialized based on the transfer
initiation control settings in the DSPI_DSICR. When SPI frames are written to the TX FIFO
they have priority over DSI data from the DSPI_SDR and are transferred at the next frame
boundary. A copy of the most recently transferred DSI frame is stored in the DSPI_COMPR.
The Transfer Priority Logic selects the source of the serialized data and asserts the
appropriate PCS signal.
CSI deserialization
The deserialized frames in CSI configuration goes into the DSPI_DDR or the RX FIFO
based on the transfer priority logic. When DSI frames are transferred the returned frames
are deserialized and latched into the DSPI_DDR. When SPI frames are transferred the
returned frames are deserialized and written to the RX FIFO.
When in non-continuous clock mode the tDT delay is configured according Equation 25.
When in continuous clock mode and TSB is not enabled the delay is fixed at 1 SCK period.
In TSB mode the Delay after Transfer is equal to a number formed by concatenation of PDT
and DT fields plus 1 of the SCK clock periods. See detailed information in Section 30.9.8,
Timed serial bus (TSB).
PCSx
PCSS
tPCSSCK tPASC
Equation 27
1
t = -------------- × PCSSCK
PCSSCK f
SYS
At the end of the transfer the delay between PCSS negation and PCS negation is selected
by field DSPI_CTAR[PASC] based on the following formula:
Equation 28
1
t = -------------- × PASC
PASC f
SYS
The PCSS signal is not supported when Continuous Serial Communication SCK or TSB
mode are enabled.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SCK (CPOL = 0)
SCK (CPOL = 1)
Master SOUT/
Slave SIN
Master SIN/
Slave SOUT
PCSx/SS
MSB first (LSBFE = 0): MSB Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 LSB
LSB first (LSBFE = 1): LSB Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 MSB
tCSC = PCS to SCK delay
tASC = After SCK delay
tDT = Delay after Transfer (Minimum CS idle time)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SCK (CPOL = 0)
SCK (CPOL = 1)
Master SOUT/
Slave SIN
Master SIN/
Slave SOUT
PCSx/SS
MSB first (LSBFE = 0): MSB Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 LSB
LSB first (LSBFE = 1): LSB Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 MSB
numbered clock edge. Regular external slave, configured with CPHA = 0 format drives its
SOUT output at every even numbered SCK clock edge.
The DSPI master places its second data bit on the SOUT line one system clock after odd
numbered SCK edge if the system frequency to SCK frequency ratio is higher than three. If
this ratio is below four the master changes SOUT at odd numbered SCK edge. The point
where the master samples the SIN is selected by field DSPI_MCR[SMPL_PT]. Table 682
lists the number of system clock cycles between the active edge of SCK and the master
Sample point. The master sample point can be delayed by one or two system clock cycles.
Field DSPI_MCR[SMPL_PT] should be set to ‘0’ if the system to SCK frequency ratio is less
than 4.
The following timing diagrams illustrate the DSPI operation with MTFE = 1. Timing delays
shown are:
● Tcsc = PCS to SCK assertion delay
● Tacs = After SCK PCS negation delay
● Tsu_ms = Master SIN setup time
● Thd_ms = Master SIN hold time
● Tvd_sl = Slave data output valid time, time between slave data output SCK driving edge
and data becomes valid.
● Tsu_sl = Data setup time on slave data input
● Thd_sl = Data hold time on slave data input
● Tsys = System clock period
Figure 745 shows the modified transfer format for CPHA = 0 and fsys/fsck = 4. Only the
condition where CPOL = 0 is illustrated. Solid triangles show the data sampling clock edges.
The two possible slave behaviors are shown.
● Signal, marked “SOUT of Ext Slave”, presents regular SPI slave serial output.
● Signal, marked “SOUT of DSPI Slave”, presents DSPI in the slave mode with MTFE bit
set.
Other MTFE = 1 diagrams show DSPI SIN input as being driven by a regular external SPI
slave, configured according DSPI master CPHA programming.
sys clk
Tasc
PCS
Thd_ms
Tvd_sl Tsu_ms
SOUT of Ext Slave D0 D1 D2 Dn
SCK
Thd_sl
Tsys Tsu_sl
SOUT
D0 D1 D2 Dn
Tvd_sl
SOUT of DSPI Slave D0 D1 D2 Dn
Figure 745. DSPI Modified Transfer Format (MTFE = 1, CPHA = 0, fsck = fsys/4)
sys clk
Tasc
PCS
Tsu_ms
Tvd_sl Thd_ms
SIN D0 D1 D2 Dn
SCK
Thd_sl
Tsu_sl
SOUT
D0 D1 D2 Dn
Figure 746. DSPI Modified Transfer Format (MTFE = 1, CPHA = 0, fsck = fsys/2)
sys clk
Tasc
PCS
Thd_ms
Tvd_sl Tsu_ms
SIN D0 D1 D2 Dn
SCK
Tsu_sl Thd_sl
SOUT D0 D1 D2 Dn
Figure 747. DSPI modified transfer format (MTFE = 1, CPHA = 0, fsck = fsys/3)
sys clk
Tasc
PCS
Thd_ms
Tvd_sl Tsu_ms
SIN D0 D1 D2 Dn
7 2n+2
SCK 1 2 3 4 5 6 8 2n+1
Thd_sl
Tsu_sl
SOUT
D0 D1 D2 Dn
Figure 748. DSPI modified transfer format (MTFE = 1, CPHA = 1, fsck = fsys/2)
sys clk
Tasc
PCS
Thd_ms
Tvd_sl Tsu_ms
SIN D0 D1 D2 Dn
SCK
Tsu_sl Thd_sl
SOUT D0 D1 D2 Dn
Figure 749. DSPI modified transfer format (MTFE = 1, CPHA = 1, fsck = fsys/3)
sys clk
Tasc
PCS
Thd_ms
Tvd_sl Tsu_ms
SIN D0 D1 D2 Dn
SCK
Thd_sl
Tsu_sl
SOUT
D0 D1 D2 Dn
Figure 750. DSPI Modified transfer format (MTFE = 1, CPHA = 1, fsck = fsys/4)
When the CONT bit = 0, the DSPI drives the asserted Chip Select signals to their idle states
in between frames. The idle states of the Chip Select signals are selected by the PCSISn
bits in the DSPI_MCR. Figure 751 shows the timing diagram for two 4-bit transfers with
CPHA = 1 and CONT = 0.
SCK (CPOL = 0)
SCK (CPOL = 1)
Master SOUT
Master SIN
PCSx
SCK (CPOL = 0)
SCK (CPOL = 1)
Master SOUT
Master SIN
PCS
Note: When in Continuous SCK mode, for the SPI transfer CTAR0 should always be used, and
the TX-FIFO must be clear using the DSPI_MCR[CLR_TXF] field before initiating transfer.
SCK (CPOL = 0)
SCK (CPOL = 1)
Master SOUT
Master SIN
PCS
tDT
SCK (CPOL = 0)
SCK (CPOL = 1)
Master SOUT
Master SIN
PCS
transfer 1 transfer 2
downstream channel
DSPI
SCK CLK
SOUT DIN Slave1
PCS1 CS
CLK
DIN Slave2
PCS2 CS
SCK
(CPOL = 0)
Invalid Invalid
Master SOUT 1 LSB 0 LSB
PCS
tDT tDT
SCK
SOUT Invalid
0 LSB 0
PCS0 DSPI_CTARn[FMSZ] + 1
TSBCNT - FMSZ
PCS1
Figure 757. TSB data frame format for MSC dual receiver operation
If the parity error occurs for received SPI frame, the DSPI_SR[SPEF] bit is set. If
DSPI_MCR[PES] bit is set, the DSPI stops SPI frames transmission. To resume SPI
operation clear the DSPI_SR[SPEF] or the DSPI_MCR[PES] bits.
In slave mode the parity is controlled by the PE and PP bits of the DSPI_CTAR0 register
similar to the master mode parity generation without continuous PCS selection.
Each condition has a flag bit in the DSPI Status Register (DSPI_SR) and an Request
Enable bit in the DSPI DMA/Interrupt Request Select and Enable Register (DSPI_RSER).
The TX FIFO Fill Flag (TFFF) and RX FIFO Drain Flag (RFDF) generate interrupt requests
or DMA requests depending on the TFFFDIRS and RFDFDIRS bits in the DSPI_RSER.
The DSPI module also provides a global interrupt request line, which is asserted when any
of individual interrupt requests lines is asserted.
System RAM
Address
RX Queue
Data DMA Controller/Host
Data
TX Queue
Address
DMA
Data Data Control/
DSPI Host
TX FIFO RX FIFO
Shift Register
DSPI
PCSS
PCS0
8 PCS1
PCS0-PCS7
PCS256
All request conditions are detected in the SPI configuration and in the CSI configuration. In
DSI configuration only the transfer of current frame complete condition is detected.
RX FIFO is full, a new frame has been received in the shift register, and a transfer is
initiated.
ipp_do pad_n
lvds_obe
LVDS
Transmitter
lvds_opt0 pad_p
lvds_opt1
VREF_LVDS
V_IREF_LVDS
0 0 normal default
0 1 increased increased
1 0 decreased decreased
1 1 normal same as default
DSPI_B connectivity
The DSPI_B connects to the eMIOS, eTPU_A and SIU as shown in Figure 761.
eMIOS DSPI_B
CH [8:11] IN [3:0]
SIU/IMUX
CH [0:6] IN [10:4]
OUT 0 IN1 IRQ[0]
CH [23] IN [11]
CH [12:15] IN [15:12]
CH [23] OUT 15 IN1 IRQ[15]
IN [16]
CH [8:15] IN [24:17]
CH [0:6] IN [31:25] eTPU_A
OUT 8 CH 29
eTPU_A
CH [16:23] IN [7:0] OUT 13 CH 24
CH [24:29] IN [13:8]
CH [30:31] eMIOS
IN [15:14]
OUT 14 CH 13
CH [15:12] IN [19:16] OUT 15 CH 12
CH [11:0] IN [31:20]
DSPI_C connectivity
The DSPI_C connects to eTPU_A and SIU as shown in Figure 763.
DSPI_C
eMIOS
CH [15:12] IN [3:0]
CH [23] IN [4] SIU/IMUX
CH [6:0] IN [11:5]
OUT 0 IN2 IRQ[15]
CH [11:8] IN [15:12] OUT 1 IN2 IRQ[0]
CH [6:0] IN [22:16]
CH [15:8] IN [30:23]
OUT 15 IN2 IRQ[14]
CH [23] IN [31]
eTPU_A
CH [15:12] IN [3:0]
CH [11:0] IN [15:4]
CH [16:23] IN [23:16]
CH [24:29] IN [29:24]
CH [30:31] IN [31:30]
DSPI_D connectivity
The DSPI_D connects to SIU as shown in Figure 763.
DSPI_D SIU/IMUX
The DSPI supports the stop mode protocol. When a request is made to enter external stop
mode, the DSPI module acknowledges the request. If a serial transfer is in progress, the
DSPI waits until it reaches the frame boundary before it is ready to have its clocks shut off.
While the clocks are shut off, the DSPI memory-mapped logic is not accessible. The states
of the interrupt and DMA request signals cannot be changed while in External Stop mode.
1. When DSPI executes last command word from a queue, the EOQ bit in the command
word is set to indicate to the DSPI that this is the last entry in the queue.
2. At the end of the transfer, corresponding to the command word with EOQ set is
sampled, the EOQ flag DSPI_SR[EOQF] is set.
3. The setting of the EOQ flag disables serial transmission and reception of data, putting
the DSPI in the STOPPED state. The TXRXS bit is cleared to indicate the STOPPED
state.
4. The DMA can continue to fill TX FIFO until it is full or step 5 occurs.
5. Disable DSPI DMA transfers by disabling the DMA enable request for the DMA channel
assigned to TX FIFO and RX FIFO. This is done by clearing the corresponding DMA
enable request bits in the DMA controller.
6. Ensure all received data in RX FIFO has been transferred to memory receive queue by
reading DSPI_SR[RXCNT] or by checking DSPI_SR[RFDF] after each read operation
of the DSPI_POPR.
7. Modify DMA descriptor of TX and RX channels for new queues
8. Flush TX FIFO by writing a ‘1’ to bit DSPI_MCR[CLR_TXF]. Flush RX FIFO by writing a
‘1’ to bit DSPI_MCR[CLR_RXF].
9. Clear transfer count either by setting CTCNT bit in the command word of the first entry
in the new queue or via CPU writing directly to field DSPI_TCR[TCNT].
10. Enable DMA channel by enabling the DMA enable request for the DMA channel
assigned to the DSPI TX FIFO, and RX FIFO by setting the corresponding DMA set
enable request bit.
11. Enable serial transmission and serial reception of data by clearing the EOQF bit.
2 3 5 7
1 3 5 7
Transmit Next
TX FIFO Base — Data Pointer
—
Entry A (first-in)
Entry B
Entry C
Entry D (last-in)
—
—
+1 TX FIFO Counter -1
Address calculation for the first-in entry and last-in entry in the TX FIFO
The memory address of the first-in entry in the TX FIFO is computed by the following
equation:
Equation 29
The memory address of the last-in entry in the TX FIFO is computed by the following
equation:
Equation 30
Address calculation for the first-in entry and last-in entry in the RX FIFO
The memory address of the first-in entry in the RX FIFO is computed by the following
equation:
Equation 31
The memory address of the last-in entry in the RX FIFO is computed by the following
equation:
Equation 32
Last-in Entry address = RX FIFO Base + 4 × ( RXCTR + POPNXTPTR – 1 ) mod (RXFIFOdepth)
31.1 Introduction
The eSCI block is an enhanced SCI block with a LIN master interface layer and DMA
support. The LIN master layer complies with the specifications LIN 1.3, LIN 2.0, LIN 2.1, and
SAE J2602/1.
31.1.1 Bibliography
● LIN Specification Package Revision 1.3; December 12, 2002
● LIN Specification Package Revision 2.0; September 23, 2003
● LIN Network for Vehicle Applications, SAE J2602/1, September 1, 2005
● LIN Specification Package Revision 2.1; November 24, 2006
eSCI Enhanced SCI block with LIN support and DMA support
SCI Serial Communications Interface
LIN Local Interconnect Network - A protocol for low-cost automobile networks
LIN PE LIN Protocol Engine, Finite State Machine to control logic of the LIN hardware.
MCLK Module Clock, defined in Section , Module clock
TCLK Transmitter Clock, defined in Section , Transmitter clock
RCLK Receiver Clock, defined in Section , Receiver clock
RSC Receiver Sample Counter, defined in Section , Receiver clock
31.1.3 Glossary
Logic level one The voltage that corresponds to Boolean true (1) state.
Logic level
The voltage that corresponds to Boolean false (0) state.
zero
Set To set a bit or bits means to establish logic level one on the bit or bits.
Clear To clear a bit or bits means to establish logic level zero on the bit or bits.
A signal that is asserted is in its active state. An active low signal changes from logic level one to
Asserted logic level zero when asserted, and an active high signal changes from logic level zero to logic
level one.
Preamble The term preamble describes an idle character which is transmitted by the eSCI module.
Duration of a single bit in a transmitted byte field or character, equivalent to the duration of one
Bit time
transmitter clock cycle defined in Section , Transmitter clock
frame Entity that consists of the start bit followed by payload bits followed by one ore more stop bits
LIN byte field Special instance of a frame
SCI frame Special instance of a frame
LIN frame Sequence of break character followed by LIN byte fields
A LIN frame with the frame header, data byte fields, and checksum field transmitted by the eSCI
LIN TX frame
module
A LIN frame with the header field transmitted by the eSCI module and the data byte fields and
LIN RX frame
checksum field received by the eSCI module
module is idle Module is idle, described in Section , Module idle condition
31.1.4 Overview
The eSCI block allows asynchronous serial communications with peripheral devices and
other CPUs. It includes special support to interface to LIN slave devices.
RECEIVE
BUS BAUD RATE RCLK CONTROL
CLK GENERATOR WAKE UP
CONTROL
LIN PE
FRAME FORMAT
CONTROL
CPU INTERRUPT
IRQ GENERATION
TCLK TRANSMIT
÷16 CONTROL
TRANSMIT
SHIFT REGISTER
TXD
DMA TX DMA TRANSMIT
CTRL CHANNEL DATA REGISTER
31.1.5 Features
The eSCI block includes these distinctive features:
● Full-duplex operation
● Standard mark/space non-return-to-zero (NRZ) format
● 13-bit baud rate selection
● Programmable frame, payload, and character format
● Support of 2 stop bits in receiver path
● Hardware parity generation and checking
– Programmable even or odd parity
● Programmable polarity of RXD pin
● Separately enabled transmitter and receiver
● Two receiver wake-up methods:
– Idle line wake up
– Address mark wake up
● Interrupt-driven operation with eight flags:
– Transmitter empty
– Transmission complete
– Receiver full
– Idle receiver input
– Receiver overrun
– Noise error
– Framing error
– Parity error
● Receiver framing error detection
● 1/16 bit-time noise detection
● 2 channel DMA interface
● LIN support
– LIN Master Node functionality (master and slave task)
– Compatible with LIN slaves from revisions 1.x and 2.0 of the LIN standard
– Detection of Bit Errors, Physical Bus Errors and Checksum Errors
– All status bit can generate maskable interrupts
– Application layer CRC support
– Programmable CRC polynom
– Detection and generation of wake-up characters
– Programmable wake-up delimiter time
– Programmable slave timeout
– Can be configured to include header bits in checksum
– LIN DMA interface
SCI mode
The SCI mode is the default functional operational mode and is described in Section 31.4.5,
SCI mode.
LIN mode
The LIN mode is the second functional operational mode and is described in Section 31.4.6,
LIN mode.
Disabled mode
In the Disabled mode the eSCI module indicates to the clocking system, that all module
clocks can be turned off.
The eSCI module is in the Disabled Mode, if the MDIS bit in the Control register 2
(eSCI_CR2) is set and the module is idle.
Reserved
0x001C
Depending on its placement in the read or write row, indicates that the bit is not readable or not
writeable.
FIELDNAME Identifies the field. Its presence in the read or write row indicates that it can be read or written.
rwm A read/write bit that may be modified by a eSCI module in some fashion other than by a reset.
w1c Write one to clear. A flag bit that can be read, is cleared by writing a one, writing 0 has no effect.
Reset Values
0 Resets to zero.
1 Resets to one.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
R SBR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
This register provides the control value for the serial baud rate. The baud rate and clock
generation is specified in Section 31.4.3, Baud rate and clock generation.
A byte write access to only the upper byte of this register (eSCI_BRR[0:715:8]) will not
change the content of the register, instead, the written byte is stored internally into a shadow
register. A subsequent byte write access to only the lower byte of this register
(eSCI_BRR[8:157:0]) updates the lower byte and copies the content of the shadow register
into the upper byte.
A byte write access to only the lower byte of this register (eSCI_BRR[8:157:0]) without a
preceding byte write access to only the upper byte copies a value of all zero into the upper
byte.
A word write access to this register updates both the lower and upper byte immediately and
is the recommended write access type for this register
R Reserved. These bits are reserved. They are read as 0. Application must not write 1 to these bits.
SBR Serial Baud Rate. This field provides the baud rate control value SBR.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0
SBR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
LOOPS
WAKE
R RSR 0 RWU
R M PE PT TIE TCIE RIE ILIE TE RE SBK
W C rwm
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Field Description
SBR Serial Baud Rate. This field provides the baud rate control value SBR.
Loop Mode Select. This control bit together with the RSRC control bit defines the receiver source
LOOPS mode. The mode coding is defined in Table 731 and the modes are described in Section , Receiver
input mode selection.
Receiver Source Control. This control bit together with the LOOPS control bit defines the receiver
source mode.
RSRC
The mode coding is defined in Table 1-9 and the modes are described in Section , Receiver input
mode selection
Frame Format Mode. This control bit together with the M2 bit of the Control register 3 (eSCI_CR3)
M controls the frame format used. The supported frame formats and the related settings are defines in
Section 31.4.2, Frame formats.
Receiver Wake-up Condition. This control bit defines the wake-up condition for the receiver. The
receiver wake-up is described in Section , Multiprocessor communication.
WAKE
0 Idle line wake-up.
1 Address mark wake-up
Parity Enable. This control bit enables the parity bit generation and checking. The location of the
parity bits is shown in Section 31.4.2, Frame formats.
PE
0 Parity bit generation and checking disabled.
1 Parity bit generation and checking enabled.
Parity Type. This control bit defines whether even or odd parity has to be used.
PT 0 Even parity (even number of ones in character clears the parity bit).
1 Odd parity (odd number of ones in character clears the parity bit).
Transmitter Interrupt Enable. This bit controls the eSCI_SR[TRDE] interrupt request generation.
TIE 0 TDRE interrupt request generation disabled.
1 TDRE interrupt request generation enabled.
Field Description
Transmission Complete Interrupt Enable. This bit controls the eSCI_SR[TC] interrupt request
generation.
TCIE
0 TC interrupt request generation disabled.
1 TC interrupt request generation enabled.
Receiver Full Interrupt Enable. This bit controls the eSCI_SR[RDRF] interrupt request generation.
RIE 0 RDRF interrupt request generation disabled.
1 RDRF interrupt request generation enabled.
Idle Line Interrupt Enable. This bit controls theeSCI_SR[IDLE] interrupt request generation.
ILIE 0 IDLE interrupt request generation disabled.
1 IDLE interrupt request generation enabled.
Transmitter Enable. This control bit enables and disables the transmitter. The control features of the
transmitter are described in Section , Transmitter states and transitions.
TE
0 Transmitter disabled.
1 Transmitter enabled.
Receiver Enable.This control bit enables and disables the receiver. The control features of the
receiver are described in Section , Receiver states and transitions.
RE
0 Receiver disabled.
1 Receiver enabled.
Receiver Wake-Up Mode. This bit controls and indicates the receiver wake-up mode, which is
described in Section , Multiprocessor communication.
RWU 0 Normal receiver operation.
1 Receiver is in wake-up mode.
This bit should be set in SCI mode only.
Send Break Character. This bit controls the transmission of break characters, which is described in
Section , Break character transmission.
SBK 0 No break characters will be transmitted.
1 Break characters will be transmitted.
This bit should be set in SCI mode only.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reserved
IEBERR
RXDMA
TXDMA
RXPOL
R
BESTP
BIRCL
BESM
PMSK
BSTP
MDIS
ORIE
NFIE
FEIE
PFIE
FBR
Reset 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides bits to configure the functionality of the module, and interrupt enable
bits for the interrupt flags provided in Interrupt Flag and Status Register 1 (eSCI_IFSR1)
,Interrupt Flag and Status Register 2 (eSCI_IFSR2)and control bits for the transmitter and
receiver.
Field Description
Module Disabled Mode. This bit controls the Module Mode of Operation, which is described in
Section 31.1.6, Modes of operation.
MDIS
0 Module is not in Disabled Mode.
1 Module is in Disabled Mode, if module is idle.
Fast Bit Error Detection. This bit controls the Bit Error Detection mode.
0 Standard Bit error detection performed as described in Section , Standard bit error detection.
FBR 1 Fast Bit error detection performed as described in Section , Fast bit error detection.
This bit is used in LIN mode only.
DMA Stop on Bit Error or Physical Bus Error. This bit controls the transmit DMA requests generation
in case of bit errors or physical bus errors. Bit errors are indicated by the BERR flag in the Interrupt
Flag and Status Register 1 (eSCI_IFSR1) and physical bus errors are indicated by the PBERR flag in
the Interrupt Flag and Status Register 2 (eSCI_IFSR2).
BSTP 0 Transmit DMA requests generated regardless of bit errors or physical bus errors.
1 Transmit DMA requests are not generated if eSCI_SR[BERR] flag or eSCI_SR[PBERR] flags are
set.
This bit is used in LIN mode only.
Bit Error Interrupt Enable. This bit controls the BERR interrupt request generation.
BERRIE 0 BERR interrupt request generation disabled.
1 BERR interrupt request generation enabled.
Receive DMA Control. This bit enables the receive DMA feature. When this bit is cleared, a pending
receive DMA request is deasserted.
RXDMA
0 Receive DMA disabled.
1 Receive DMA enabled.
Transmit DMA Control. This bit enables the transmit DMA feature. When this bit is cleared, a pending
transmit DMA request is deasserted.
TXDMA
0 Transmit DMA disabled.
1 Transmit DMA enabled.
Field Description
Break Character Length. This bit is used to define the length of the break character to be transmitted.
BRCL
The settings are specified in Section , Break character formats.
Fast Bit Error Detection Sample Mode. This bit defines the sample point for the Fast Bit Error
Detection Mode.
BESM 0 Sample point is RS9.
1 Sample point is RS13.
Note: This bit is used in LIN mode only.
Bit Error Transmit Stop. This control bit defines the behavior of the eSCI Transmit Pin TXD while the
bit error flag eSCI_SR[BERR] is 1.
BESTP 0 Application Data Values driven onto TXD pin.
1 Recessive Data Value 1 driven onto TXD pin.
Note: This bit is used in LIN mode only.
RXD Pin polarity. This bit controls the polarity of the RXD pin. See Section , Inverted data frame
formats.
RXPOL
0 Normal Polarity.
1 Inverted Polarity.
Parity Bit Masking. This bit defines whether the received parity bit is presented in the related bit
position in the SCI data register (eSCI_DR).
PMSK
0 The received parity bit is presented in the bit position related to the parity bit.
1 The value 0 is presented in the bit position related to the parity bit.
Overrun Interrupt Enable. This bit controls the eSCI_SR[OR] interrupt request generation.
ORIE 0 OR interrupt request generation disabled.
1 OR interrupt request generation enabled.
Noise Interrupt Enable. This bit controls the eSCI_SR[NF] interrupt request generation.
NFIE 0 NF interrupt request generation disabled.
1 NF interrupt request generation enabled.
Frame Error Interrupt Enable. This bit controls the eSCI_SR[FE] interrupt request generation.
FEIE 0 FE interrupt request generation disabled.
1 FE interrupt request generation enabled.
Parity Error Interrupt Enable. This bit controls the eSCI_SR[PF] interrupt request generation.
PFIE 0 PF interrupt request generation disabled.
1 PF interrupt request generation enabled.
In SCI mode this register is used to provide transmit data and retrieve received data. In LIN
mode any write access to this register is ignored and any read access returns unspecified
data. In case of data transmission this register is used to provide a part of the transmit data.
In case of data reception this register provides a part of the received data and related error
information.If the application writes to the lower byte of this register (eSCI_DR[8:15]), the
internal commit flag iCMT, which is not visible to the application, is set to indicate that the
register has been updated and ready to transmit new data.
If the application reads from the lower byte of this register (eSCI_DR[8:15]), a signal is send
to the internal receiver unit to indicate that the register was read and is ready to receive new
data. The read access will not change the content of any register.
Field Description
Received Most Significant Bit. The semantic of this bit depends on the frame format selected by
eSCI_CR3[M2], eSCI_CR1[M], and eSCI_CR1[PE].
[M2=0,M=1,PE=0]: value of received data bit 8 or address bit.
RN [M2=0,M=1,PE=1]: value of received parity bit if eSCI_CR2[PMSK]=0, 0 otherwise.
[M2=1,M=0,PE=1]: value of received parity bit if eSCI_CR2[PMSK]=0, 0 otherwise.
[M2=1,M=1,PE=1]: value of received parity bit if eSCI_CR2[PMSK]=0, 0 otherwise.
It is 0 for all other frame formats.
Transmit Most Significant Bit. The semantic of this bit depends on the frame format selected by
eSCI_CR3[M2], eSCI_CR1[M], and eSCI_CR1[PE].
TN
[M2=0,M=1,PE=0]: value to be transmitted as data bit 8 or address bit.
It is not used for all other frame formats.
Receive Error Bit. This bit indicates the occurrence of the errors selected by the Control register 3
(eSCI_CR3) during the reception of the frame presented in SCI data register (eSCI_DR). In case of
ERR an overrun error for subsequent frames this bit is set too.
0 None of the selected errors occured.
1 At least one of the selected errors occured.
Received Data. The semantic of this field depends on the frame format selected by eSCI_CR3[M2]
and eSCI_CR1[M].
RD[11:8]
[M2=1,M=1]: value of the received data bits 11:8. (Rx=BITx).
It is all 0 for all other frame formats.
Received Bit 7. The semantic of this bit depends on the format selected by eSCI_CR3[M2],
eSCI_CR1[M], and eSCI_CR1[PE].
RD[7] [M2=0,M=0,PE=0]: value of received BIT7 or ADDR BIT.
[M2=0;M=0,PE=1]: value of received PARITY BIT if eSCI_CR2[PMSK]=0, 0 otherwise.
For all other frame formats it is the value of received BIT7.
Transmit Bit 7. The semantic of this bit depends on the format selected by eSCI_CR3[M2],
eSCI_CR1[M], and
eSCI_CR1[PE].
TD[7]
[M2=0,M=0,PE=0]: value of transmit BIT7 or ADDR BIT.
[M2=0;M=0,PE=1]: not used. PARITY BIT is generated internally before transmission.
For all other frame formats it is the value of transmit BIT7.
This register provides interrupt flags that indicate the occurrence of module events. The
related interrupt enable bits are located in Control register 1 (eSCI_CR1) and Control
register 2 (eSCI_CR2).
Field Description
Transmit Data Register Empty Interrupt Flag. This interrupt flag is set when the content of the SCI
TDRE data register (eSCI_DR) was transferred into internal shift register.
Transmit Complete Interrupt Flag. This interrupt flag is set when a frame, break or idle character
transmission has been completed and no data were written into SCI data register (eSCI_DR) after the
TC
last setting of the TDRE flag and the SBK bit in Control register 1 (eSCI_CR1) is 0.
This flag is set in LIN mode, if the preamble was transmitted after the enabling of the transmitter.
Receive Data Register Full Interrupt Flag. This interrupt flag is set when the payload data of a
received frame was transferred into the SCI data register (eSCI_DR) and the receive DMA is
RDRF disabled.
This flag is set in SCI mode only.
Idle Line Interrupt Flag. This interrupt flag is set when an idle character was detected and the receiver
IDLE is not in the wake-up state.
This flag is set in SCI mode only.
Overrun Interrupt Flag. This interrupt flag is set when an overrun was detected as described in
OR Section , Receiver overrun.
Noise Interrupt Flag. This interrupt flag is set when the receiver has detected noise during the
NF
reception of a frame, as described in Section , Bit sampling.
Framing Error Interrupt Flag. This interrupt flag is set when the payload data of a received frame was
transferred into the SCI data register (eSCI_DR) or LIN receive register (eSCI_LRR) and the receiver
FE
has detected a framing error during the reception of that frame, as described in Section , Stop bit
verification.
Parity Error Interrupt Flag. This interrupt flag is set when the payload data of a received frame was
transferred into the SCI data register (eSCI_DR) and the receiver has detected a parity error for the
PF character, as described in Section , Reception error reporting
This flag is set in SCI mode only.
Field Description
DMA Active. The status bit is set when a transmit or receive DMA request is pending.
DACT 0 No DMA request pending
1 DMA request pending.
Bit Error Interrupt Flag. This flag is set when a bit error was detected as described in Section ,
BERR Standard bit error detection.
Note: This flag is set in LIN mode only.
LIN Wake-Up Active. The status bit is set as long as the LIN wakeup engine receives a LIN wake-up
signal.
WACT
0 No LIN wakeup signal reception in progress.
1 LIN wakeup signal reception in progress.
LIN Active. This status bit is set as long as the LIN protocol engine is about to transmit or receive LIN
frames.
LACT
0 No LIN frame transmission or reception in progress.
1 LIN frame transmission or reception in progress.
Transmitter Active. This status bit is set as long as the transmission of a frame or special character is
ongoing.
TACT
0 No transmission in progress.
1 Transmission in progress.
Receiver Active. This status bit is set as long as the receive is active. The set and clear conditions for
the SCI mode are described in Section , Receiver states and transitions.The set and clear conditions
RACT for the LIN mode are described in Section , LIN byte field reception.
0 No reception in progress.
1 Reception in progress.
PBERR
TXRDY
LWAKE
W w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c
Reset 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides interrupt flags that indicate the occurrence of LIN related events. The
related interrupt enable bits are located in LIN Control Register 1 (eSCI_LCR1) and LIN
Control Register 2 (eSCI_LCR2). All interrupt flags in this register will be set in LIN mode
only.
Receive Data Ready Interrupt Flag. This interrupt flag is set when the payload data of a received
RXRDY
frame was transferred into the LIN receive register (eSCI_LRR) and the receive DMA is disabled.
Transmit Data Ready Interrupt Flag. This interrupt flag is set when
a) the content of the LIN transmit register (eSCI_LTR) was processed by the LIN PE to generate
TXRDY
frame header or frame transmit data, or
b) when the module has transmitted a LIN wakeup signal frame.
LIN Wake-up Received Interrupt Flag. This interrupt flag is set when a LIN Wake-up character was
LWAKE
received, as described in Section , LIN wake up.
Slave Timeout Interrupt Flag. This interrupt flag is set when a Slave-Not-Responding-Error is
STO
detected. A detailed description is given in Section , Slave-not-responding-error detection.
Physical Bus Error Interrupt Flag. This interrupt flag is set when the receiver input remains
PBERR unchanged for at least 31 RCLK clock cycles after the start of a byte transmission, as described in
Section , LIN error reporting.
CRC Error Interrupt Flag. This interrupt flag is set when an incorrect CRC pattern was detected for a
CERR
received LIN frame.
Checksum Error Interrupt Flag. This interrupt flag is set when a checksum error was detected for a
CKERR
received LIN frame.
Frame Complete Interrupt Flag. This interrupt flag is set when a LIN TX frame has been completely
FRC
transmitted or a LIN RX frame has been completely received.
Unrequested Data Received Interrupt Flag. This interrupt flag is set when unrequested activity has
UREQ
been detected on the LIN bus, as described in Section , LIN error reporting.
Overflow Interrupt Flag. This interrupt flag is set when an overflow as described in Section , Overflow
OVFL
detection was detected.
This register provides control bits to control and configure the LIN hardware. This register
provides the interrupt enable bits for the interrupt flags in Interrupt Flag and Status Register
2 (eSCI_IFSR2).
LIN Protocol Engine Stop and Reset. This bit is used to stop and reset the LIN protocol engine as
described in Section , LIN protocol engine stop and reset.
LRES
0 LIN protocol engine is operational.
1 LIN protocol engine is reset and stopped.
LIN Bus Wake-Up Trigger. This bit is used to trigger the generation of a wake-up signal frame on the
LIN bus, as described in Section , LIN wake up.
WU
0 Write has no effect.
1 Write triggers the generation of a wake-up signal.
LIN Bus Wake-Up Delimiter Time. This field determines how long the LIN protocol engine waits after
the end of the transmitted wake-up signal, before starting the next LIN frame transmission.
00 3 bit times.
WUD
01 7 bit times.
10 31 bit times.
11 63 bit times.
Parity Generation Control. This bit controls the generation of the two parity bits in the LIN header.
PRTY 0 Parity bits generation disabled.
1 Parity bits generation enabled.
LIN Mode Control. This bit controls whether the device is in SCI or LIN Mode.
LIN 0 SCI Mode.
1 LIN Mode.
Receive Data Ready Interrupt Enable. This bit controls the eSCI_IFSR2[RXRDY] interrupt request
generation.
RXIE
0 RXRDY interrupt request generation disabled.
1 RXRDY interrupt request generation enabled.
Transmit Data Ready Interrupt Enable. This bit controls the eSCI_IFSR2[TXRDY] interrupt request
generation.
TXIE
0 TXRDY interrupt request generation disabled.
1 TXRDY interrupt request generation enabled.
LIN Wake-up Received Interrupt Enable. This bit controls the eSCI_IFSR2[LWAKE] interrupt request
generation.
WUIE
0 LWAKE interrupt request generation disabled.
1 LWAKE interrupt request generation enabled.
Slave Timeout Flag Interrupt Enable. This bit controls the eSCI_IFSR2[STO] interrupt request
generation.
STIE
0 STO interrupt request generation disabled.
1 STO interrupt request generation enabled.
Physical Bus Error Interrupt Enable. This bit controls the eSCI_IFSR2[PBERR] interrupt request
generation.
PBIE
0 PBERR interrupt request generation disabled.
1 PBERR interrupt request generation enabled.
CRC Error Interrupt Enable. This bit controls the eSCI_IFSR2[CERR] interrupt request generation.
CIE 0 CERR interrupt request generation disabled.
1 CERR interrupt request generation enabled.
Checksum Error Interrupt Enable. This bit controls the eSCI_IFSR2[CKERR] interrupt request
generation.
CKIE
0 CKERR interrupt request generation disabled.
1 CKERR interrupt request generation enabled.
Frame Complete Interrupt Enable. This bit controls the eSCI_IFSR2[FRC] interrupt request
generation.
FCIE
0 FRC interrupt request generation disabled.
1 FRC interrupt request generation enabled.
This register provides the interrupt enable bits for the interrupt flags in Interrupt Flag and Status
Register 2 (eSCI_IFSR2).
Unrequested Data Received Interrupt Enable. This bit controls the eSCI_IFSR2[UREQ] interrupt
request generation.
UQIE
0 UREQ interrupt request generation disabled.
1 UREQ interrupt request generation enabled.
Overflow Interrupt Enable. This bit controls the eSCI_IFSR2[OVFL] interrupt request generation.
OFIE 0 OVFL interrupt request generation disabled.
1 OVFL interrupt request generation enabled.
0 1 2 3 4 5 6 7
R DATA
1st W P ID
2nd W LEN
4th+ W D
Reset 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7
R DATA
2nd W LEN
4th W TO[7:0]
Reset 0 0 0 0 0 0 0 0
This register is used by the application to initiate the LIN frame header generation for both
LIN TX frames and LIN RX frames. If a LIN TX frame is generated, this register is used to
provide the payload data for the LIN TX frame.
If the LIN PE is in the idle state (eSCI_LCR[LRES] = 1) or performs a wakeup, each write
access to this register is ignored.
In case of an read access, the register provides the last data written into this register in the
DATA field.
If the application initiates a LIN TX frame transfer, i.e the TD bit is set to 1, the content and
usage shown in LIN transmit register (eSCI_LTR) - LIN TX frame generation applies. The
initiation and transmit of a TX frame is described in Section , LIN TX frame generation.
If the application initiates an LIN RX frame, i.e the TD bit is set to 0, the content and usage
shown in LIN transmit register (eSCI_LTR) - LIN RX frame generation applies. The initiation
and transmit of a RX frame is described in Section , LIN RX frame generation.
Each successful write access to this register increments the internal write access counter
and enables the writing to the next field. The write access counter is reset if
● the LIN PE is in the idle state (eSCI_LCR[LRES] = 1)
● a LIN TX frame was completely transmitted (eSCI_SR[FRC] was set to 1)
● a LIN RX frame was completely received (eSCI_SR[FRC] was set to 1)
Field Description
Identifier Parity. This field provides the identifier parity which is used to create the protected identifier
P if the automatic identifier parity generation is disabled, i.e the PRTY bit in LIN Control Register 1
(eSCI_LCR1) is 0.
Identifier. This field is used for the identifier field in the protected identifier.
ID
Frame Length. This field defines the number of data bytes to be transmitted or received.
LEN
Checksum Model. This bit controls the checksum calculation model used.
CSM 0 Classic Checksum Model (LIN 1.3).
1 Enhanced Checksum Model (LIN 2.0).
Checksum Enable. This bit control the generation and checking of the checksum byte.
CSE 0 No generation and checking of checksum byte.
1 Generation and checking of checksum byte.
CRC Enable. This bit controls the generation of checking standard or enhanced LIN frames, which
are described in Section , LIN frame formats
CRC
0 Standard LIN frame generation and checking.
1 Enhanced LIN frame generation and checking.
Transfer Direction. This bit control the transfer direction of the data, crc, and checksum byte fields.
TD 0 Data, CRC, and Checksum byte fields received, described in Section , LIN RX frame generation.
1 Data, CRC, and Checksum byte fields transmitted, described in Section , LIN TX frame generation.
Timeout Value. The content of the field depends on the transfer direction.
RX frame: Defines the time available for a complete RX frame transfer, as described in Section ,
TO Slave-not-responding-error detection
TX frame: Must be set to 0.
0 1 2 3 4 5 6 7
R D
Reset 0 0 0 0 0 0 0 0
This register provides the data bytes of received in case of an LIN RX frame was initiated.
Field Description
Receive Data. This field provides the data bytes of received LIN RX frames.
D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
P
W
Reset 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1
Field Description
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 ERO 0 0 0 0 0 0 0 0
ERFE ERPE M2
W E
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register is used to control the frame formats and the generation of the ERR bit in the
SCI data register (eSCI_DR).
Field Description
0 Frame Format Mode 2. This control bit together with the M bit of the Control register 1 (eSCI_CR1)
controls the frame format used. The supported frame formats and the related settings are defines in
M2 Section 31.4.2, Frame formats.
The structure of the LIN byte fields in normal polarity is shown in Figure 779.
START STOP
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT
START STOP
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT
START STOP
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT
START STOP
BIT BIT
The structure and content of the LIN break symbols is shown in Figure 784.
START Break
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 Delemit
START Break
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BIT10 BIT11 Delemit
START
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8
START
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9
START
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BIT10 BIT11
START
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BIT10 BIT11 BIT12
The structure and content of the idle characters is shown in Figure 786.
BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9
BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BIT10
BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BIT10 BIT11
BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BIT9 BIT10 BIT11 BIT12 BIT13 BIT14 BIT14
Module clock
The module clock MCLK is derived from the system bus clock. It has the same phase and
frequency.
Transmitter clock
The transmitter clock TCLK is used to drive the data to the serial bus via the TXD pin. It is
derived from the system bus clock by the baud rate generator. The baud rate generator is
controlled by the value of the SBR field in the Baud Rate Register (eSCI_BRR). The
frequency of the transmitter clock is determined by Equation 33 and defines the length of
the transmitted bits, which is denoted as the bit time.
Equation 33
fMCLK
f TCLK = ------------------------
16 ⋅ SBR
Receiver clock
The receiver clock RCLK is used to sample the data received on the RXD or TXD pin. It is
derived from the system bus clock by the baud rate generator. The baud rate generator is
controlled by the value of the SBR field in the Baud Rate Register (eSCI_BRR). The
frequency of the receiver sample clock is determined by Equation 34.
Equation 34
fMCLK
f RT = ----------------
SBR
The frequency of the receiver clock is 16 times the frequency of the transmitter clock, this
each bit is sampled with 16 samples. Each of the 16 samples of a bit has a sample number
assigned, which is defined by the receiver sample counter RSC. The n-th sample is denoted
by RSn. The receiver sample counter RSC is updated with each rising edge of the receiver
clock RCLK.
RXD
RCLK
RSC 6 7 8 1 2 3 6 7 8 9 10
Equation 35
tx STOP = ( n + 1 ) ⋅ 16 ⋅ RT TR
Equation 36
rx STOP = ( n + 1 ) ⋅ 16 ⋅ RT RE + 7 ⋅ RT RE
Equation 37
The maximum percent difference between the receiver baud rate and the transmitter baud
rate is:
Equation 38
rx STOP – tx STOP
Δbaudrate ≤ ---------------------------------------------- × 100
rxSTOP
The maximum percent differences for the supported frames is given in Table 747
RXD
RCLK
RSC 6 7 8 1 2 3 8 9 10 11
Equation 39
tx START = ( n + s + 1 ) ⋅ 16 ⋅ RT TR
Equation 40
rx STOP = ( n + s ) ⋅ 16 ⋅ RT RE + 9 ⋅ RTRE
To ensure error free reception of the last stop bit, the transmitter must start the transmission
of the start bit after the receiver samples RS10.
Equation 41
The maximum percent difference between the receiver baud rate and the transmitter baud
rate is:
Equation 42
tx START – rx STOP
Δbaudrate ≤ ------------------------------------------------- × 100
tx START
The maximum percent differences for the supported frames is given in Table 748
Transmitter
The transmitter supports the transmission of all frame types defined in Table 742, of all
break characters defined in Table 744, and of all idle characters defined in Table 745.
RESET_STATE
Idle
EN
halt DIS
Stop Ready
EN start
DIS done
Run
The application triggers a transition described in Table 750 when it issues a command by
writing to the TE bit in the Control register 1 (eSCI_CR1). The transition is triggered only if
the conditions are fulfilled. As a result of the transition the state of the transmitter is changed
as shown in Figure 789 and the action given in Table 750 is executed.
The module transition shown in Table 751 are triggered when the described condition or
event occurs. The send break bit SBK in the Control register 1 (eSCI_CR1) is check for the
start condition. The internal commit bit iCMT, the transmitter active bit TACT in the Interrupt
Flag and Status Register 1 (eSCI_IFSR1), the TDRE, and the TC flag in the Interrupt Flag
and Status Register 1 (eSCI_IFSR1) are changed as a action result of the transition.
(State=Ready)
Start of transmission of data frame or special
and
start TACT:=1 character when data are available or character
(SBK=1 or iPRE=1 or transmission request is pending.
iCMT=1)
TACT:=0 Finished transmission of data frame or special
State=Run
TC:= character and transmitter still enabled.
done and
(SBK=0 & iPRE=0 & Transmission is complete if no transmit request
last stop bit transmitted
iCMT=0) is pending.
State=Stop TACT:=0
Finished transmission of data frame or special
halt and TC:=1
character and transmitter was disabled.
last stop bit transmitted iCMT:=0
When the last stop bit has been transmitted and the application has not disabled the
transmitter, the transmitter returns to the Ready state via the done transition. If no frame or
character transmit request is pending, the transfer complete flag TC in the Interrupt Flag and
Status Register 1 (eSCI_IFSR1) is set.
If the application has disabled the transmitter while the frame is transmitted and stop bit has
been transmitted, the transmitter goes into the Idle state via the halt transition. The transfer
complete flag TC in the Interrupt Flag and Status Register 1 (eSCI_IFSR1) is set and the
internal commit bit iCMT is cleared.
System Memory
DATA 1 TX DMA
channel
DATA 2 DMA
eSCI
Controller
DATA N
DATA 1 DATA N
Parity generation
The eSCI module generates the parity bit in transmitted data frame when the parity enable
bit PE in the Control register 1 (eSCI_CR1) is set. The parity type bit PT in the Control
register 1 (eSCI_CR1) defines whether the odd or even parity is generated.
Preamble transmission
The transmission of a preamble is started when the transmitter is in Ready state, the internal
iPRE bit, which is not visible to the application, is set, and the SBK in the Control
register 1 (eSCI_CR1) is clear.
After the transmission of the stop bit and if the application has not disabled the transmitter,
the transmitter returns to the Ready state via the done transition. If no frame or character
transmit request is pending, the transfer complete flag TC in the Interrupt Flag and Status
Register 1 (eSCI_IFSR1) is set.
If the application has disabled the transmitter while the preamble is transmitted and if the
stop bit has been transmitted, the transmitter goes into the Idle state via the halt transition.
The transfer complete flag TC in the Interrupt Flag and Status Register 1 (eSCI_IFSR1) is
set and the internal commit bit iCMT is cleared.
Receiver
The receiver supports the reception of all data frame types defined in Table 742 and
Table 743, of all break character defined in Table 744, and of all idle characters defined in
Table 745.
state transitions that can triggered by the module are shown in Table 751. The state diagram
of the transmitter is shown in Figure 789.
RESET_STATE
Idle
EN
DIS DIS
done
Run Ready
SLP SLP start
wake1 wake0
Wake-Up
The application triggers a transition described in Table 754 when it issues a command by
writing to the RE bit in the Control register 1 (eSCI_CR1). The transition is triggered only if
the conditions are fulfilled. As a result of the transition the state of the receiver is changed as
shown in Figure 791 and the action given in Table 754 is executed.
The module transitions shown in Table 755 are triggered when the described event occurs.
(State=Ready,Run)
Start of reception of data frame or break
start and RACT:=1
character.
(start bit qualified)
(State=Run)
and
done RACT:=0 Start Bit not Verified or Idle Character received.
(start bit not verified or
idle character received)
(State=Wake-up)
wake0 and RWU:=0 Wake-up Idle Character received.
(idle character received)
(State=Wake-up)
wake1 and RWU:=0 Wake-up address frame received.
(address frame received)
RECEIVER RXD
TRANSMITTER TXD
RECEIVER RXD
TRANSMITTER TXD
Loop mode
In Loop Mode, the input of the receiver is driven by the output of the transmitter. The RXD
pin is disconnected from the eSCI module.
RECEIVER RXD
TRANSMITTER TXD
bit location, the reception of a break character causes at least a framing error. The error
reporting is performed as described in Section , Reception error reporting.
System Memory
DATA 1
DATA 2 DMA
eSCI
Controller RX DMA
channel
DATA N
DATA 1 DATA N
Receiver overrun
When the eSCI module has received a frame and attempts to transfer the payload data of
the received frame into the SCI data register (eSCI_DR) but neither the application nor the
DMA controller has read the SCI data register (eSCI_DR) since its last update, the overrun
flag OR in the Interrupt Flag and Status Register 1 (eSCI_IFSR1) is set. The data contained
in SCI data register (eSCI_DR) are not changed and the received data are lost.
Bit sampling
The receiver samples the selected receiver input (see Section , Receiver input mode
selection) with the receiver clock RCLK. The bit sampling for start bit detection is shown in
Figure 796, the bit sampling for data and stop bit reception is shown in Figure 797. The
samples indicated by dashed arrows are not used by the receiver. The received data bits
are transferred into the internal shift register after the data strobing. If noise or framing errors
were detected, this is flagged as described in Section , Reception error reporting.
Bit synchronization
To adjust for baud rate mismatch, a synchronization of the cyclic receive sample counter
RSC is performed during start bit reception as described in Section , Start Bit Sampling.
Sampled Value 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
RCLK
RSC 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2
case, the noise flag eSCI_IFSR1[NF] is set. The result of the start bit verification is
summarized in Table 756.
000 Yes No
001 Yes Yes
010 Yes Yes
100 Yes Yes
011 No No
101 No No
110 No No
111 No No
If the start bit verification was not successful, the receiver activates the start bit qualification.
If the start bit verification was successful, the receiver continues sampling to perform data
noise detection on the samples at RSC8, RSC9, and RSC10. The result of the start bit data
noise detection is summarized in Table 757. If noise is detected, the noise flag
eSCI_IFSR1[NF] is set.
000 No
001 Yes
010 Yes
100 Yes
011 Yes
101 Yes
110 Yes
111 Yes
Sampled Value 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
DATA
VOTING
RCLK
RSC 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2
000 0 No
001 0 Yes
010 0 Yes
100 0 Yes
011 1 Yes
101 1 Yes
110 1 Yes
111 1 No
000 No Yes No
001 No Yes Yes
Parity checking
The eSCI module calculates the parity of a received character and checks is versus the
received parity bit in the received data frame when the parity enable bit PE in the Control
register 1 (eSCI_CR1) is set. The parity type bit PT in the Control register 1 (eSCI_CR1)
defines whether to check for odd or even parity is generated. If an parity error is detected,
this is reported as described in Section , Reception error reporting.
Multiprocessor communication
The multiprocessor communication allows one processor to send blocks of frames to other
processors on the same serial link. To avoid the received data interrupt for frames not
intended for the processor, the eSCI receiver can be put into the Wake-up state. If the
receiver is in the Wake-up state, the eSCI will still load the received data into the SCI data
register (eSCI_DR), but will not set the RDRF flag and consequently not request the RDRF
interrupt.
The receiver leaves the Wake-up state and clears the RWU bit in the Control
register 1 (eSCI_CR1) when the wake-up pattern configured by WAKE bit in Control
register 1 (eSCI_CR1) is received. The eSCI module supports two types of wake-up
patterns, the idle-line wakup pattern and the address-mark wake-up pattern.
Idle-Line wake up
The idle-line wake-up mode is selected when the WAKE bit in Control
register 1 (eSCI_CR1) is 0. In this mode, the receiver leaves the wake-up state, when an
idle character is detected as described in Section , Idle character detection. The next
received frame is the address frame that contains address information which can be
evaluated by the application. If the application decides not to receive the frame block, it can
set the RWU bit in the Control register 1 (eSCI_CR1) and return the receiver to the wake-up
state.
Address Frame
Receiver Wake Up
Address-Mark wake up
The address-mark wake-up mode is selected when the WAKE bit in Control
register 1 (eSCI_CR1) is 1. If the WAKE bit is set, the address bit is added to the frame
format. In this mode, the receiver leaves the wake-up state, when a data frame with the
address bit value of 1 was received. This frame is the address frame and contains address
information which can be evaluated by the application. If the application decides not to
receive the frame block, it can set the RWU bit in the Control register 1 (eSCI_CR1) and
return the receiver to the wake-up state. All data frames that belong to the frame block must
have the address bit cleared.
The application should clear the TXRDY interrupt flag before writing data into the LIN
transmit register (eSCI_LTR) because the eSCI module will set the TXRDY one clock cycle
after the write access.
The first data written to the LIN transmit register (eSCI_LTR) provides the Identifier and
Identifier Parity fields. The second data written defines the number of data bytes to be
transmitted. The third data written defines the CRC and checksum generation. The TD bit
has to set to 1 in order to invoke the LIN TX frame generation. The value of the TO field is
ignored by the eSCI module for LIN TX frames.
After the third data was written the generation of a LIN TX frame is started. Firstly, a break
field is transmitted, then the synch field and the protected identifier field.
All subsequent write accesses to the LIN transmit register (eSCI_LTR) provide data bytes to
be transmitted via the LIN bus. A data byte field will be transmitted as soon as data are
available. After the last data byte, defined by the value written to the LEN field, was send
out, the configured CRC and checksum fields will be send out.
After the transmission of the checksum field of the LIN TX frame, the write access counter
for the LIN transmit register (eSCI_LTR) is reset and the FRC interrupt flag in the Interrupt
Flag and Status Register 2 (eSCI_IFSR2) is set.
System Memory
DATA N
The application can retrieve the received data by subsequent read access from LIN receive
register (eSCI_LRR) after checking the RXRDY flag. The application should clear the
RXRDY flag immediately after reading the LIN receive register (eSCI_LRR).
After the reception of the configured number of data from the slave, the module starts the
reception of the configured CRC and Checksum byte fields. These data are not transferred
into the LIN receive register (eSCI_LRR). The CRC and Checksum checking is performed
internally. In case of errors, they will be reported as described in Section , LIN error
reporting”
After the reception of the checksum field of the LIN RX frame, the FRC interrupt flag in the
Interrupt Flag and Status Register 2 (eSCI_IFSR2) is set.
System Memory
DATA 1
DATA 2
Compare
Bit Error RXD Pin
LIN Bus
Bus Clock
Sample Point
Transmit Shift
Register TXD Pin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Output Transmit
Shift Register
Input Receive
Shift Register
eSCI_CR2[BESM] = 0 eSCI_CR2[BESM] = 1
Slave-not-responding-error detection
The Slave-Not-Responding-Error is defined in LIN Specification Package Revision 1.3;
December 12, 2002; 6 ERROR AND EXCEPTION HANDLING. The LIN specification
requires that a NO_RESPONSE_ERROR has to be detected if a message frame is not fully
completed within the maximum length TFRAME_MAX by any slave task upon transmission of
the SYNCH and IDENTIFIER fields. The maximum frame length TFRAME_MAX is defined
in LIN Specification Package Revision 1.3; December 12, 2002; 3.3 LENGTH OF
MESSAGE FRAME AND BUS SLEEP DETECT, as
Equation 43
where NDATA is the number of data byte fields of the message frame.
The STO interrupt flag in the Interrupt Flag and Status Register 2 (eSCI_IFSR2) will be set,
if an LIN RX frame was not fully received in the amount of time specified in the timeout value
field TO in the LIN transmit register (eSCI_LTR). The time period starts with the falling edge
of the transmitted LIN break character and is specified in units of transmit bits.
To achieve LIN compliant Slave-Not-Responding-Error detection, the timeout value TO in
the LIN transmit register (eSCI_LTR) field has to be set to TFRAME_MAX when a LIN RX
frame is initiated.
Overflow detection
When the receiver has received the next byte field, which should be transferred into the LIN
receive register (eSCI_LRR), but neither the application nor the RX DMA channel have read
data from this register since the last update, the received data overflow flag OVFL in the
Interrupt Flag and Status Register 2 (eSCI_IFSR2) will be set. In this case the content of the
LIN receive register (eSCI_LRR) is not changed. The data received most recently are lost.
LIN wake up
The section describes the LIN Wake Up behavior of the eSCI module.
START
BIT BIT0 BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BREAK
31.4.7 Interrupts
This section describes the interrupt sources and interrupt request generation.
32 FlexCAN Module
32.2 Introduction
The FlexCAN module is a communication controller implementing the CAN protocol
according to the CAN 2.0B protocol specification. The block diagram in Figure 807 shows
the main sub-blocks implemented in the FlexCAN module. Support for up to 64 Message
Buffers is provided. The functions of the submodules are described in subsequent sections.
VDDEHx
FlexCAN B: N = 64 CR[LPB | LOM]
FlexCAN C: N = 64
CANTX1
fOSC Tq 1
fSYS Divider 0
Tx Shifter
MCR[MDIS]
CR[PRESDIV] Protocol
CR[CLKSRC]
Engine CR[LPB]
CANRX1
Rx Shifter
Control and MCR[SLF_WAK]
Status Registers
Device Peripheral Bus
Wake up
detection
Timer
TIMER 16 bit free running timer Reset Synchronization
CR[TSYN]
N N
Message Buffer MB 8
1 N
CR[BOFFMSK]
1 MB N-1
Bus Off
CR[ERRMSK]
1 Error
CR[TWRNMSK] Notes:
1 Tx Warning 1: Pins can be configurable. Check device system configuration
CR[RWRNMSK] 2: Check interrupt controller which interrupts have been used
1 and regrouped. Interrupts can be additionally enabled/disabled
Rx Warning
in the interrupt controller
MCR[WAK_MSK]
3: Please check device system configuration for further clock divider,
1
Wake up muxing and low power configuration. See the section for the
SIU_SYSDIV[CAN 2:1] for the additional system clock pre-
divider.
32.2.1 Overview
The CAN protocol was primarily, but not only, designed to be used as a vehicle serial data
bus, meeting the specific requirements of this field: real-time processing, reliable operation
in the EMI environment of a vehicle, cost-effectiveness and required bandwidth. The
FlexCAN module is a full implementation of the CAN protocol specification, Version 2.0 B,
which supports both standard and extended message frames. A flexible number of
Message Buffers (16, 32 or 64) is also supported. The Message Buffers are stored in an
embedded RAM dedicated to the FlexCAN module.
The CAN Protocol Interface (CPI) submodule manages the serial communication on the
CAN bus, requesting RAM access for receiving and transmitting message frames, validating
received messages and performing error handling. The Message Buffer Management
(MBM) submodule handles Message Buffer selection for reception and transmission, taking
care of arbitration and ID matching algorithms. The Bus Interface Unit (BIU) submodule
controls the access to and from the internal interface bus, in order to establish connection to
the CPU and to other blocks. Clocks, address and data buses, interrupt outputs and test
signals are accessed through the Bus Interface Unit.
A typical CAN system is shown below in Figure 808. Each CAN station is connected
physically to the CAN bus through a transceiver. The transceiver provides the transmit drive,
waveshaping, and receive/compare functions required for communicating on the CAN bus.
It can also provide protection against damage to the FlexCAN caused by a defective CAN
bus or defective stations.
Microcontroller
FlexCAN
CANTX CANRX
Tranceiver
CAN Bus
32.3.1 Overview
The FlexCAN module has two I/O signals connected to the external MCU pins. These
signals are summarized in Table 761 and described in more detail in the next subsections.
CAN TX
This pin is the transmit pin to the CAN bus transceiver. Dominant state is represented by
logic level ‘0’. Recessive state is represented by logic level ‘1’.
The FlexCAN module stores CAN messages for transmission and reception using a
Message Buffer structure. Each individual message buffer is formed by 16 bytes mapped on
memory as described in Table 763. Table 763 shows a Standard/Extended Message Buffer
(MB0) memory map, using 16 bytes total (0x80–0x8F space).
CANTX1 CANRX1
MCR[LPRIO_EN] Internal Tx Arbitration
CAN Engine
used algorithm
0 Arbitration
0 1 Lowest ID+PRIO Protocol
1 Tx Serial Message
Arbitration Buffer Engine
Data
Lowest Buffer
Number Arbitration Data Length
Internal Tx Message
Buffer Arbiter ID
Rx ID Matching
used algorithm
MCR[MBFEN] Rx Serial Message
Buffers
Buffer
Scan
Move
data
No queuing Data
0
Move data 1 Queuing Data Length
Message Buffer RAM ID
CPU Memory Map Scan buffers
Rx ID Matching
Base: 0xC3F8_0000 – 0x344
MCR[FEN] = 0 MCR[FEN] = 1 MCR[FEN]
LEGACY MODE
ID
ac
DataLengthStamp
Data
Time
sp
Data Length
Time Stamp RXIMR8
es
dr
Data
Time Stamp
ID
ad
Data LengthID
ue
RXIMR14
tin
RXIMR15
C
ID
Buffers in use are defined by MCR[MAXMB] used for Buffer N-1 ID matching
RXIMR(N-1)
EN2
Device Peripheral Bus MCR[MBFEN]
Notes:
1: Pins can be configurable. Check device system configuration.
2: If disabled the RXIMRx registers are not memory mapped.
Any access in this case will cause data access error.
IDE 10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
RTR 11
0
1
2
3
4
5
6
7
8
SRR 9
0x0 CODE LENGTH TIME STAMP
= Unimplemented or Reserved
This 4-bit field can be accessed (read or write) by the CPU and by the FlexCAN module itself, as part
of the message buffer matching and arbitration process. The encoding for Rx buffers is shown in
CODE Table 765 and the encoding for Tx buffers is shown in Table 766.
See Section 32.5, Functional description for additional information.
Substitute Remote Request
Fixed recessive bit, used only in extended format. It must be set to ‘1’ by the user for transmission (Tx
Buffers) and will be stored with the value received on the CAN bus for Rx receiving buffers. It can be
received as either recessive or dominant. If FlexCAN receives this bit as dominant, then it is
SRR interpreted as arbitration loss.
INACTIVE: buffer
0000 — MB does not participate in the matching process.
is not active.
MB participates in the matching process. When a frame
EMPTY: buffer is
0100 0010 is received successfully, the code is automatically
active and empty.
updated to FULL.
The act of reading the C/S word followed by unlocking
the MB does not make the code return to EMPTY. It
0010 remains FULL. If a new frame is written to the MB after
the C/S word was read and the MB was unlocked, the
FULL: buffer is code still remains FULL.
0010
full. If the MB is FULL and a new frame is overwritten to this
MB before the CPU had time to read it, the code is
0110 automatically updated to OVERRUN. Refer to
Section 32.5.5, Matching process for details about
overrun behavior.
If the code indicates OVERRUN but the CPU reads the
0010 C/S word and then unlocks the MB, when a new frame
OVERRUN: a is written to the MB the code returns to FULL.
frame was If the code already indicates OVERRUN, and yet
0110
overwritten into a another new frame must be written, the MB will be
full buffer. 0110 overwritten again, and the code will remain OVERRUN.
Refer to Section 32.5.5, Matching process for details
about overrun behavior.
BUSY: Flexcan is An EMPTY buffer was written with a new frame (XY was
0010
updating the 01).
contents of the
0XY1(1)
MB. The CPU
must not access 0110 A FULL/OVERRUN buffer was overwritten (XY was 11).
the MB.
1. Note that for Tx MBs (see Table 766), the BUSY bit should be ignored upon read, except when MCR[AEN] is set.
can assume, depending on field MCR[IDAM]. Note that all elements of the table must have
the same format. See Section 32.5.7, Rx FIFO for more information.
SRR
RTR
IDE
0x80 LENGTH TIME STAMP
0x90
to Reserved
0xDC
0xE0 ID Table 0
0xE4 ID Table 1
0xE8 ID Table 2
0xEC ID Table 3
0xF0 ID Table 4
0xF4 ID Table 5
0xF8 ID Table 6
0xFC ID Table 7
= Unimplemented or Reserved
R E RXIDA
A E X
M T (Standard = 29–19, Extended = 29–1)
R E R E
RXIDB_0 RXIDB_1
B E X E X
M T (Standard = 29–19, Extended = 29–16) M T (Standard = 13–3, Extended = 13–0)
= Unimplemented or Reserved
Remote Frame
This bit specifies if Remote Frames are accepted into the FIFO if they match the target ID.
REM
1: Remote Frames can be accepted and data frames are rejected
0: Remote Frames are rejected and data frames can be accepted
Extended Frame
Specifies whether extended or standard frames are accepted into the FIFO if they match the
target ID.
EXT
Base + 0x0000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
MDISACK
NOTRDY
FRZACK
WAK_MSK
WAK_SRC
SOFTRST
SLF_WAK
WRNEN
SRXDIS
MBFEN
SUPV
R 0
MDIS FRZ FEN HALT
W
RESET: 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0 0 0 0 0
LPRIO_EN
AEN
IDAM MAXMB
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
= Unimplemented or Reserved
Module Disable
This bit controls whether FlexCAN is enabled or not. When disabled, FlexCAN shuts down the
clocks to the CAN Protocol Interface and Message Buffer Management submodules. This is the
only bit in MCR not affected by soft reset. See Section , Module Disable Mode for more
MDIS information.
FIFO Enable
This bit controls whether the FIFO feature is enabled or not. When FEN is set, MBs 0 to 7 cannot
be used for normal reception and transmission because the corresponding memory region
(0x80–0xFF) is used by the FIFO engine. See Section 32.4.4, Rx FIFO structure and
FEN Section 32.5.7, Rx FIFO for more information.
1: FIFO enabled
0: FIFO not enabled
Halt FlexCAN
Assertion of this bit puts the FlexCAN module into Freeze Mode. The CPU should clear it after
initializing the Message Buffers and Control Register. No reception or transmission is performed
by FlexCAN before this bit is cleared. While in Freeze Mode, the CPU has write access to the
HALT Error Counter Register, that is otherwise read-only. Freeze Mode can not be entered while
FlexCAN is in any of the low power modes. See Section , Freeze Mode for more information.
Soft Reset
When this bit is asserted, FlexCAN resets its internal state machines and some of the memory
mapped registers. The following registers are reset: MCR (except the MDIS bit), TIMER, ECR,
ESR, IMRL, IMRH, IFRL, IFRH. Configuration registers that control the interface to the CAN bus
are not affected by soft reset. The following registers are unaffected:
– CR
– RXIMR0–RXIMR63
– RXGMASK, RX14MASK, RX15MASK
– all Message Buffers
SOFTRST
The SOFTRST bit can be asserted directly by the CPU when it writes to the MCR, but it is also
asserted when global soft reset is requested at MCU level. Since soft reset is synchronous and
has to follow a request/acknowledge procedure across clock domains, it may take some time to
fully propagate its effect. The SOFTRST bit remains asserted while reset is pending, and is
automatically negated when reset completes. Therefore, software can poll this bit to know when
the soft reset has completed.
Soft reset cannot be applied while clocks are shut down in any of the low power modes. The
module should be first removed from low power mode, and then soft reset can be applied.
Self Wake Up
This bit enables the Self Wake Up feature when FlexCAN is in Stop Mode. If this bit had been
asserted by the time FlexCAN entered Stop Mode, then FlexCAN will look for a recessive to
dominant transition on the bus during these modes. If a transition from recessive to dominant is
detected during Stop Mode, then FlexCAN generates, if enabled to do so, a Wake Up interrupt to
SLF_WAK the CPU so that it can resume the clocks globally. This bit can not be written while the module is
in Stop Mode.
0: TWRNINT and RWRNINT bits are zero, independent of the values in the error counters.
Low Power Mode Acknowledge
This read-only bit indicates that FlexCAN is either in Disable Mode or Stop Mode. Either of these
low power modes can not be entered until all current transmission or reception processes have
MDISACK finished, so the CPU can poll the MDISACK bit to know when FlexCAN has actually entered low
power mode. See Section , Module Disable Mode and Section , Stop Mode for more information.
1: FlexCAN is either in Disable Mode or Stop mode
0: FlexCAN not in any of the low power modes
Wake Up Source
This bit defines whether the integrated low-pass filter is applied to protect the Rx CAN input from
spurious wake up. See Section , Stop Mode for more information.
WAK_SRC
1: FlexCAN uses the filtered Rx input to detect recessive to dominant edges on the CAN bus
0: FlexCAN uses the unfiltered Rx input to detect recessive to dominant edges on the CAN bus.
Self Reception Disable
This bit defines whether FlexCAN is allowed to receive frames transmitted by itself. If this bit is
asserted, frames transmitted by the module will not be stored in any message buffer, regardless
if the message buffer is programmed with an ID that matches the transmitted frame, and no
SRX_DIS interrupt flag or interrupt signal will be generated due to the frame reception.
– For MCUs supporting individual Rx ID masking, this feature is disabled. Instead of individual ID
masking per message buffer, FlexCAN uses its previous masking scheme with RXGMASK,
RX14MASK and RX15MASK.
MBFEN – The reception queue feature is disabled. Upon receiving a message, if the first message buffer
with a matching ID that is found is still occupied by a previous unread message, FlexCAN will
not look for another matching message buffer. It will override this message buffer with the new
message and set the CODE field to ‘0110’ (overrun).
Upon reset this bit is negated, allowing legacy software to work without modification.
1: Individual Rx masking and queue feature are enabled.
0: Individual Rx masking and queue feature are disabled.
Local Priority Enable
This bit is provided for backwards compatibility reasons. It controls whether the local priority
feature is enabled or not. It is used to extend the ID used during the arbitration process. With this
extended ID concept, the arbitration process is done based on the full 32-bit word, but the actual
LPRIO_EN transmitted ID still has 11-bit for standard frames and 29-bit for extended frames.
1: Abort enabled
0: Abort disabled
ID Acceptance Mode
This 2-bit field identifies the format of the elements of the Rx FIFO filter table, as shown in
IDAM Table 769. Note that all elements of the table are configured at the same time by this field (they
are all the same format). See Section 32.4.4, Rx FIFO structure.
MAXMB must be programmed with a value smaller or equal to the number of available Message Buffers,
otherwise FlexCAN can transmit and receive wrong messages.
Base + 0x0004
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
PRESDIV RJW PSEG1 PSEG2
W
RE-
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SET:
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R 0 0
RWRNMSK
TWRNMSK
BOFFMSK
BOFFREC
ERRMSK
CLKSRC
LBUF
TSYN
SMP
LOM
LPB
PROPSEG
W
RE-
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SET:
= Unimplemented or Reserved
PSEG1
The valid programmable values are 0–7.
SMP
1: Three samples are used to determine the value of the received bit: the regular one (sample
point) and 2 preceding samples, a majority rule is used
0: Just one sample is used to determine the bit value
Bus Off Recovery Mode
This bit defines how FlexCAN recovers from Bus Off state. If this bit is negated, automatic
recovering from Bus Off state occurs according to the CAN Specification 2.0B. If the bit is
asserted, automatic recovering from Bus Off is disabled and the module remains in Bus Off state
until the bit is negated by the user. If the negation occurs before 128 sequences of 11 recessive
bits are detected on the CAN bus, then Bus Off recovery happens as if the BOFFREC bit had
never been asserted. If the negation occurs after 128 sequences of 11 recessive bits occurred,
BOFFREC then FlexCAN will resynchronize to the bus by waiting for 11 recessive bits before joining the bus.
After negation, the BOFFREC bit can be re-asserted again during Bus Off, but it will only be
effective the next time the module enters Bus Off. If BOFFREC was negated when the module
entered Bus Off, asserting it during Bus Off will not be effective for the current Bus Off recovery.
Writing to the timer is an indirect operation. The data is first written to an auxiliary register
and then an internal request/acknowledge procedure across clock domains is executed. All
this is transparent to the user, except for the fact that the data will take some time to be
actually written to the register. If desired, software can poll the register to discover when the
data was actually written.
Base + 0x0008
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
TIMER
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Base + 0x0010
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
MI31 MI30 MI29 MI28 MI27 MI26 MI25 MI24 MI23 MI22 MI21 MI20 MI19 MI18 MI17 MI16
W
RESET: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
MI15 MI14 MI13 MI12 MI11 MI10 MI9 MI8 MI7 MI6 MI5 MI4 MI3 MI2 MI1 MI0
W
RESET: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
= Unimplemented or Reserved
Mask Bits
For normal Rx message buffers, the mask bits affect the ID filter programmed on the message
buffer. For the Rx FIFO, the mask bits affect all bits programmed in the filter table (ID, IDE, RTR).
MI31–MI0
1: The corresponding bit in the filter is checked against the one received
0: The corresponding bit in the filter is “don’t care”
Rx 14 Mask (RX14MASK)
This register is provided for legacy support and for low cost MCUs that do not have the
individual masking per Message Buffer feature. For MCUs supporting individual masks per
message buffer, setting MCR[MBFEN] causes the RX14MASK Register to have no effect on
the module operation.
RX14MASK is used as acceptance mask for the Identifier in Message Buffer 14. When
MCR[FEN] is set (FIFO enabled), the RXG14MASK also applies to element 6 of the ID filter
table. This register has the same structure as the Rx Global Mask Register. It must be
programmed while the module is in Freeze Mode, and must not be modified when the
module is transmitting or receiving frames.
● Address Offset: 0x14
● Reset Value: 0xFFFF_FFFF
Rx 15 Mask (RX15MASK)
This register is provided for legacy support and for low cost MCUs that do not have the
individual masking per Message Buffer feature. For MCUs supporting individual masks per
message buffer, setting MCR[MBFEN] causes the RX15MASK Register to have no effect on
the module operation.
When MCR[MBFEN] is negated, RX15MASK is used as acceptance mask for the Identifier
in Message Buffer 15. When MCR[FEN] is set (FIFO enabled), the RXG14MASK also
applies to element 7 of the ID filter table. This register has the same structure as the Rx
Global Mask Register. It must be programmed while the module is in Freeze Mode, and
must not be modified when the module is transmitting or receiving frames.
● Address Offset: 0x18
● Reset Value: 0xFFFF_FFFF
FlexCAN responds to any bus state as described in the protocol, e.g. transmit ‘Error Active’
or ‘Error Passive’ flag, delay its transmission start time (‘Error Passive’) and avoid any
influence on the bus when in ‘Bus Off’ state. The following are the basic rules for FlexCAN
bus state transitions.
● If the value of TXECNT or RXECNT increases to be greater than or equal to 128,
ESR[FLTCONF] is updated to reflect ‘Error Passive’ state.
● If the FlexCAN state is ‘Error Passive’, and either TXECNT or RXECNT decrements to
a value less than or equal to 127 while the other already satisfies this condition,
ESR[FLTCONF] is updated to reflect ‘Error Active’ state.
● If the value of TXECNT increases to be greater than 255, ESR[FLTCONF] is updated to
reflect ‘Bus Off’ state, and an interrupt may be issued. The value of TXECNT is then
reset to zero.
● If FlexCAN is in ‘Bus Off’ state, then TXECNT is cascaded together with another
internal counter to count the 128th occurrences of 11 consecutive recessive bits on the
bus. Hence, TXECNT is reset to zero and counts in a manner where the internal
counter counts 11 such bits and then wraps around while incrementing the TXECNT.
When TXECNT reaches the value of 128, ESR[FLTCONF] is updated to be ‘Error
Active’ and both error counters are reset to zero. At any instance of dominant bit
following a stream of less than 11 consecutive recessive bits, the internal counter
resets itself to zero without affecting the TXECNT value.
● If during system start-up, only one node is operating, then its TXECNT increases in
each message it is trying to transmit, as a result of acknowledge errors (indicated by
ESR[ACKERR]). After the transition to ‘Error Passive’ state, the TXECNT does not
increment anymore by acknowledge errors. Therefore the device never goes to the
‘Bus Off’ state.
● If the RXECNT increases to a value greater than 127, it is not incremented further,
even if more errors are detected while being a receiver. At the next successful
message reception, the counter is set to a value between 119 and 127 to resume to
‘Error Active’ state.
Base + 0x001C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R
RXECNT TXECNT
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
that occurred since the last time the CPU read this register. The CPU read action clears
bits16–21. Bits 22–28 are status bits.
Most bits in this register are read only, except TWRNINT, RWRNINT, BOFFINT, WAKINT
and ERRINT, that are interrupt flags that can be cleared by writing ‘1’ to them (writing ‘0’ has
no effect). See Section 32.5.10, Interrupts for more details.
Base + 0x0020
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RWRNINT
TWRNINT
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CRCERR
FRMERR
BIT1ERR
BIT0ERR
ACKERR
STFERR
RXWRN
TXWRN
BOFFINT
TXRX
WAKINT
ERRINT
IDLE
R FLTCONF 0
W
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
= Unimplemented or Reserved
Bit1 Error
This bit indicates when an inconsistency occurs between the transmitted and the received bit in a
message.
This bit is not set by a transmitter in case of arbitration field or ACK slot, or in case of a node sending a
passive error flag that detects dominant bits.
Bit0 Error
This bit indicates when an inconsistency occurs between the transmitted and the received bit in a
message.
BIT0ERR
Rx Warning
This bit indicates when repetitive errors are occurring during message reception.
RXWRN
1: Rx_Err_Counter ≥ 96
0: No such occurrence
CAN bus IDLE state
This bit indicates when CAN bus is in IDLE state.
IDLE
1: CAN bus is now IDLE
0: No such occurrence
Current FlexCAN status (transmitting/receiving)
This bit indicates if FlexCAN is transmitting or receiving a message when the CAN bus is not in
IDLE state. This bit has no meaning when IDLE is asserted.
TXRX
If the LOM bit in the Control Register is asserted, the FLTCONF field will indicate “Error Passive”.
Since the Control Register is not affected by soft reset, the FLTCONF field will not be affected by
soft reset if the LOM bit is asserted.
Bus Off’ Interrupt
This bit is set when FlexCAN enters ‘Bus Off’ state. If the corresponding mask bit
(CR[BOFFMSK]) is set, an interrupt is generated to the CPU. This bit is cleared by writing it to ‘1’.
BOFFINT Writing ‘0’ has no effect.
Error Interrupt
This bit indicates that at least one of the Error Bits (bits 16–21) is set. If the corresponding mask
bit (CR[ERRMSK]) is set, an interrupt is generated to the CPU. This bit is cleared by writing it to
ERRINT ‘1’.Writing ‘0’ has no effect.
1: Indicates setting of any Error Bit in the Error and Status Register
0: No such occurrence
Wake-Up Interrupt
When FlexCAN is in Stop Mode and a recessive to dominant transition is detected on the CAN
bus and if MCR[WAK_MSK] is set, an interrupt is generated to the CPU. This bit is cleared by
writing it to ‘1’. Writing ‘0’ has no effect.
WAKINT
1: Indicates a recessive to dominant transition received on the CAN bus when the FlexCAN
module is in Stop Mode
0: No such occurrence
Base + 0x0024
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 63M 62M 61M 60M 59M 58M 57M 56M 55M 54M 53M 52M 51M 50M 49M 48M
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 47M 46M 45M 44M 43M 42M 41M 40M 39M 38M 37M 36M 35M 34M 33M 32M
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Setting or clearing a bit in the IMRH register can assert or negate an interrupt request, if the
corresponding bit in the IFRH register is set.
Base + 0x0028
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 31M 30M 29M 28M 27M 26M 25M 24M 23M 22M 21M 20M 19M 18M 17M 16M
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 15M 14M 13M 12M 11M 10M 9M 8M 7M 6M 5M 4M 3M 2M 1M 0M
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Setting or clearing a bit in the IMRL Register can assert or negate an interrupt request, if the
corresponding bit in the IFRL register is set.
If the corresponding bit in IMRH is set, an interrupt will be generated. The interrupt flag must
be cleared by writing it to ‘1’. Writing ‘0’ has no effect.
When MCR[AEN] is set (Abort enabled), while the IFRH bit is set for a message buffer
configured as Tx, the writing access done by CPU into the corresponding message buffer
will be blocked.
Base + 0x002C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 63I 62I 61I 60I 59I 58I 57I 56I 55I 54I 53I 52I 51I 50I 49I 48I
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 47I 46I 45I 44I 43I 42I 41I 40I 39I 38I 37I 36I 35I 34I 33I 32I
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Base + 0x0030
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 31I 30I 29I 28I 27I 26I 25I 24I 23I 22I 21I 20I 19I 18I 17I 16I
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
R BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF BUF
W 15I 14I 13I 12I 11I 10I 9I 8I 7I 6I 5I 4I 3I 2I 1I 0I
RESET: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Base + 0x0880–0x097F
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
MI31 MI30 MI29 MI28 MI27 MI26 MI25 MI24 MI23 MI22 MI21 MI20 MI19 MI18 MI17 MI16
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
MI15 MI14 MI13 MI12 MI11 MI10 MI9 MI8 MI7 MI6 MI5 MI4 MI3 MI2 MI1 MI0
Mask Bits
For normal Rx message buffers, the mask bits affect the ID filter programmed on the message
buffer. For the Rx FIFO, the mask bits affect all bits programmed in the filter table (ID, IDE, RTR).
MI31–MI0
1: The corresponding bit in the filter is checked against the one received
0: the corresponding bit in the filter is “don’t care”
32.5.1 Overview
The FlexCAN module is a CAN protocol engine with a very flexible mailbox system for
transmitting and receiving CAN frames. The mailbox system is composed by a set of up to
64 Message Buffers (MB) that store configuration and control data, time stamp, message ID
and data (see Section 32.4.3, Message buffer structure). The memory corresponding to the
first eight message buffers can be configured to support a FIFO reception scheme with a
powerful ID filtering mechanism, capable of checking incoming frames against a table of IDs
(up to eight extended IDs or sixteen standard IDs or thirty-two 8-bit ID slices), each one with
its own individual mask register. Simultaneous reception through FIFO and mailbox is
supported. For mailbox reception, a matching algorithm makes it possible to store received
frames only into message buffers that have the same ID programmed on its ID field. A
masking scheme makes it possible to match the ID programmed on the message buffer with
a range of IDs on received CAN frames. For transmission, an arbitration algorithm decides
the prioritization of message buffers to be transmitted based on the message ID (optionally
augmented by three local priority bits) or the message buffer ordering.
Before proceeding with the functional description, an important concept must be explained.
A Message Buffer is said to be “active” at a given time if it can participate in the matching
and arbitration algorithms that are happening at that time. An Rx message buffer with a
‘0000’ code is inactive (refer to Table 765). Similarly, a Tx message buffer with a ‘1000’ or
‘1001’ code is also inactive (refer to Table 766). A message buffer not programmed with
‘0000’, ‘1000’ or ‘1001’ will be temporarily deactivated (will not participate in the current
arbitration or matching run) when the CPU writes to the C/S field of that message buffer
(see Section , Message buffer deactivation).
bg. Actually, if CR[LBUF] is negated, the arbitration considers not only the ID, but also the RTR and IDE bits placed
inside the ID at the same positions they are transmitted in the CAN frame.
Once the message buffer is activated in the third step, it will be able to receive frames that
match the programmed ID. At the end of a successful reception, the message buffer is
updated by the MBM as follows:
1. The value of the Free Running Timer is written into the Time Stamp field
2. The received ID, Data (8 bytes at most) and Length fields are stored
3. The Code field in the Control and Status word is updated (see Table 765 and Table 766
in Section 32.4.3, Message buffer structure)
4. A status flag is set in the Interrupt Flag Register and an interrupt is generated if allowed
by the corresponding Interrupt Mask Register bit
Upon receiving the MB interrupt, the CPU should service the received frame using the
following procedure:
1. Read the Control and Status word (mandatory – activates an internal lock for this
buffer)
2. Read the ID field (optional – needed only if a mask was used)
3. Read the Data field
4. Read the Free Running Timer (optional – releases the internal lock)
Upon reading the Control and Status word, if the BUSY bit is set in the Code field, then the
CPU should defer the access to the message buffer until this bit is negated. Reading the
Free Running Timer is not mandatory. If not executed the message buffer remains locked,
unless the CPU reads the C/S word of another message buffer. Note that only a single
message buffer is locked at a time. The only mandatory CPU read operation is the one on
the Control and Status word to assure data coherency (see Section 32.5.6, Data
coherence).
The CPU should synchronize to frame reception by the status flag bit for the specific
message buffer in the corresponding IFRL or IFRH register and not by the Code field of that
message buffer. Polling the Code field does not work because once a frame was received
and the CPU services the message buffer (by reading the C/S word followed by unlocking
the message buffer), the Code field will not return to EMPTY. It will remain FULL, as
explained in Table 765. If the CPU tries to workaround this behavior by writing to the C/S
word to force an EMPTY code after reading the message buffer, the message buffer is
actually deactivated from any currently ongoing matching process. As a result, a newly
received frame matching the ID of that message buffer may be lost. In summary: never do
polling by reading directly the C/S word of the message buffers. Instead, read the
corresponding IFRL or IFRH register.
Note that the received ID field is always stored in the matching message buffer, thus the
contents of the ID field in a message buffer may change if the match was due to masking.
Note also that FlexCAN does receive frames transmitted by itself if there exists an Rx
matching message buffer, provided MCR[SRX_DIS] is not asserted. If MCR[SRX_DIS] is
asserted, FlexCAN will not store frames transmitted by itself in any message buffer, even if it
contains a matching message buffer, and no interrupt flag or interrupt signal will be
generated due to the frame reception.
To be able to receive CAN frames through the FIFO, the CPU must enable and configure
the FIFO during Freeze Mode (see Section 32.5.7, Rx FIFO). Upon receiving the frames
available interrupt from FIFO, the CPU should service the received frame using the
following procedure:
1. Read the Control and Status word (optional – needed only if a mask was used for IDE
and RTR bits)
2. Read the ID field (optional – needed only if a mask was used)
3. Read the Data field
4. Clear the frames available interrupt (mandatory – release the buffer and allow the CPU
to read the next FIFO entry)
examine the Time Stamp field of the message buffers to determine the order in which the
messages arrived.
The matching algorithm described above can be changed to be the same one used in
previous versions of the FlexCAN module. When the MBFEN bit in MCR is negated, the
matching algorithm stops at the first message buffer with a matching ID that it founds,
whether this message buffer is free or not. As a result, the message queueing feature does
not work if the MBFEN bit is negated.
Matching to a range of IDs is possible by using ID Acceptance Masks. FlexCAN supports
individual masking per message buffer. Please refer to Section , Rx Individual Mask
Registers (RXIMR0–RXIMR63). During the matching algorithm, if a mask bit is asserted,
then the corresponding ID bit is compared. If the mask bit is negated, the corresponding ID
bit is “don’t care”. Please note that the Individual Mask Registers are implemented in RAM,
so they are not initialized out of reset. Also, they can only be programmed if the MBFEN bit
is asserted and while the module is in Freeze Mode.
FlexCAN also supports an alternate masking scheme with only three mask registers
(RGXMASK, RX14MASK and RX15MASK) for backwards compatibility. This alternate
masking scheme is enabled when MCR[MBFEN] is negated.
If the CPU writes the abort code before the transmission begins internally, then the write
operation is not blocked, therefore the message buffer is updated and no interrupt flag is
set. In this way the CPU just needs to read the abort code to make sure the active message
buffer was deactivated. Although the AEN bit is asserted and the CPU wrote the abort code,
in this case the message buffer is deactivated and not aborted, because the transmission
did not start yet. One message buffer is only aborted when the abort request is captured and
kept pending until one of the previous conditions are satisfied.
The abort procedure can be summarized as follows:
● CPU writes 1001 into the code field of the C/S word
● CPU reads the CODE field and compares it to the value that was written
● If the CODE field that was read is different from the value that was written, the CPU
must read the corresponding IFRL or IFRH register to check if the frame was
transmitted or it is being currently transmitted. If the corresponding IFRL or IFRH is set,
the frame was transmitted. If the corresponding IFRL or IFRH is reset, the CPU must
wait for it to be set, and then the CPU must read the CODE field to check if the
message buffer was aborted (CODE = 1001) or it was transmitted (CODE = 1000).
Note: An Abort request to a TxMB can block any write operation into its CODE field. As a
consequence, the TxMB cannot be aborted or deactivated anymore until it completes the
transmission by winning the CAN bus arbitration.
be the lowest at the time because a lower ID might be present in one of the message
buffers that it had already scanned before the deactivation.
● There is a point in time until which the deactivation of a Tx message buffer causes it not
to be transmitted (end of move-out). After this point, it is transmitted but no interrupt is
issued and the Code field is not updated. In order to avoid this situation, the abort
procedures described in Section , Transmission abort mechanism should be used.
bh. In previous FlexCAN versions, reading the C/S word locked the message buffer even if it was EMPTY. In current FlexCAN
versions, this behavior is maintained when the MBFEN bit is negated.
32.5.7 Rx FIFO
The receive-only FIFO is enabled by asserting MCR[FEN]. The reset value of this bit is zero
to maintain software backwards compatibility with previous versions of the module that did
not have the FIFO feature. When the FIFO is enabled, the memory region normally
occupied by the first eight message buffers (0x80–0xFF) is now reserved for use of the
FIFO engine (see Section 32.4.4, Rx FIFO structure). Management of read and write
pointers is done internally by the FIFO engine. The CPU can read the received frames
sequentially, in the order they were received, by repeatedly accessing a Message Buffer
structure at the beginning of the memory.
The FIFO can store up to 6 frames pending service by the CPU. An interrupt is sent to the
CPU when new frames are available in the FIFO. Upon receiving the interrupt, the CPU
must read the frame (accessing a message buffer in the 0x80 address) and then clear the
interrupt. The act of clearing the interrupt triggers the FIFO engine to replace the message
buffer in 0x80 with the next frame in the queue, and then issue another interrupt to the CPU.
If the FIFO is full and more frames continue to be received, an OVERFLOW interrupt is
issued to the CPU and subsequent frames are not accepted until the CPU creates space in
the FIFO by reading one or more frames. A warning interrupt is also generated when 5
frames are accumulated in the FIFO.
A powerful filtering scheme is provided to accept only frames intended for the target
application, thus reducing the interrupt servicing work load. The filtering criteria is specified
by programming a table of 8 32-bit registers that can be configured to one of the following
formats (see also Section 32.4.4, Rx FIFO structure):
● Format A: 8 extended or standard IDs (including IDE and RTR)
● Format B: 16 standard IDs or 16 extended 14-bit ID slices (including IDE and RTR)
● Format C: 32 standard or extended 8-bit ID slices
Note: A chosen format is applied to all 8 registers of the filter table. It is not possible to mix formats
within the table.
The eight elements of the filter table are individually affected by the first eight Individual
Mask Registers (RXIMR0 – RXIMR7), allowing very powerful filtering criteria to be defined.
The rest of the RXIMR, starting from RXIM8, continue to affect the regular message buffers,
starting from MB8. If the MBFEN bit is negated (or if the RXIMR are not available for the
particular MCU), then the FIFO filter table is affected by the legacy mask registers as
follows: element 6 is affected by RX14MASK, element 7 is affected by RX15MASK and the
other elements (0 to 5) are affected by RXGMASK.
frame matches one of the target IDs, it will be stored in the FIFO and presented to the CPU.
Note that for filtering formats A and B, it is possible to select whether remote frames are
accepted or not. For format C, remote frames are always accepted (if they match the ID).
Overload frames
FlexCAN does transmit overload frames due to detection of following conditions on CAN
bus:
● Detection of a dominant bit in the first/second bit of Intermission
● Detection of a dominant bit at the 7th bit (last) of End of Frame field (Rx frames)
● Detection of a dominant bit at the 8th bit (last) of Error Frame Delimiter or Overload
Frame Delimiter
Time stamp
The value of the Free Running Timer is sampled at the beginning of the Identifier field on the
CAN bus, and is stored at the end of “move-in” in the TIME STAMP field, providing network
behavior with respect to time.
Note that the Free Running Timer can be reset upon a specific frame reception, enabling
network time synchronization. Refer to TSYN description in Section , Control Register (CR).
Protocol timing
Figure 824 shows the structure of the clock generation circuitry that feeds the CAN Protocol
Interface (CPI) submodule. The clock source bit (CLKSRC) in the CR Register defines
whether the internal clock is connected to the output of a crystal oscillator (Oscillator Clock)
or to the Peripheral Clock (generally from a PLL). In order to guarantee reliable operation,
the clock source should be selected while the module is in Disable Mode (bit MDIS set in the
Module Configuration Register).
The PRESDIV field controls a prescaler that generates the Serial Clock (Sclock), whose
period defines the ‘time quantum’ used to compose the CAN waveform. A time quantum is
the atomic unit of time handled by the CAN engine.
f CANCLK
f Tq = -------------------------------------------------------
( Prescaler Þ V alue )
A bit time is subdivided into three segments(bi) (reference Figure 825 and Table 779):
● SYNC_SEG: This segment has a fixed length of one time quantum. Signal edges are
expected to happen within this section
● Time Segment 1: This segment includes the Propagation Segment and the Phase
Segment 1 of the CAN standard. It can be programmed by setting the PROPSEG and
the PSEG1 fields of the CR Register so that their sum (plus 2) is in the range of 4 to 16
time quanta
● Time Segment 2: This segment represents the Phase Segment 2 of the CAN standard.
It can be programmed by setting the PSEG2 field of the CR Register (plus 1) to be 2 to
8 time quanta long
f Tq
Bit Þ Rate = ----------------------------------------------------------------------------------------
-
( number Þ of Þ Time Þ Quanta )
NRZ Signal
1 4 ... 16 2 ... 8
bi. For further explanation of the underlying concepts please refer to ISO/DIS 11519–1, Section 10.3. Reference
also the Bosch CAN 2.0A/B protocol specification dated September 1991 for bit timing.
SYNC_SEG System expects transitions to occur on the bus during this period.
Transmit Point A node in transmit mode transfers a new value to the CAN bus at this point.
A node samples the bus at this point. If the three samples per bit option is
Sample Point
selected, then this point marks the position of the third sample.
Table 780 gives an overview of the CAN compliant segment settings and the related
parameter values.
5 .. 10 2 1 .. 2
4 .. 11 3 1 .. 3
5 .. 12 4 1 .. 4
6 .. 13 5 1 .. 4
7 .. 14 6 1 .. 4
8 .. 15 7 1 .. 4
9 .. 16 8 1 .. 4
Note: It is the user’s responsibility to ensure the bit time settings are in compliance with the CAN
standard. For bit time calculations, use an IPT (Information Processing Time) of 2, which is
the value implemented in the FlexCAN module.
Start Move
(bit 6)
Move
Matching/Arbitration Window (24 bits) Window
When doing matching and arbitration, FlexCAN needs to scan the whole Message Buffer
memory during the available time slot. In order to have sufficient time to do that, the
following requirements must be observed:
● A valid CAN bit timing must be programmed, as indicated in Table 780
● The peripheral clock frequency can not be smaller than the oscillator clock frequency,
i.e. the PLL can not be programmed to divide down the oscillator clock
● There must be a minimum ratio between the peripheral clock frequency and the CAN
bit rate, as specified in Table 781
Table 781. Minimum Ratio Between Peripheral Clock Frequency and CAN Bit Rate
Number of Message Buffers Minimum Ratio
16 8
32 8
64 16
A direct consequence of the first requirement is that the minimum number of time quanta
per CAN bit must be 8, so the oscillator clock frequency should be at least 8 times the CAN
bit rate. The minimum frequency ratio specified in Table 781 can be achieved by choosing a
high enough peripheral clock frequency when compared to the oscillator clock frequency, or
by adjusting one or more of the bit timing parameters (PRESDIV, PROPSEG, PSEG1,
PSEG2). As an example, taking the case of 64 message buffers, if the oscillator and
peripheral clock frequencies are equal and the CAN bit timing is programmed to have 8 time
quanta per bit, then the prescaler factor (PRESDIV + 1) should be at least 2. For prescaler
factor equal to one and CAN bit timing with 8 time quanta per bit, the ratio between
peripheral and oscillator clock frequencies should be at least 2.
Once out of Freeze Mode, FlexCAN tries to resynchronize to the CAN bus by waiting for 11
consecutive recessive bits.
Stop Mode
This is a system low power mode in which all MCU clocks are stopped for maximum power
savings. If FlexCAN receives the global Stop Mode request during Freeze Mode, it sets
MCR[MDISACK], negates MCR[FRZACK] and then sends a Stop Acknowledge signal to
the CPU, in order to shut down the clocks globally. If Stop Mode is requested during
transmission or reception, FlexCAN does the following:
● Waits to be in either Idle or Bus Off state, or else waits for the third bit of Intermission
and checks it to be recessive
● Waits for all internal activities like arbitration, matching, move-in and move-out to finish
● Ignores its Rx input pin and drives its Tx pin as recessive
● Sets the NOTRDY and MDISACK bits in MCR
● Sends a Stop Acknowledge signal to the CPU, so that it can shut down the clocks
globally
Exiting Stop Mode is done in one of the following ways:
● CPU resuming the clocks and removing the Stop Mode request
● CPU resuming the clocks and Stop Mode request as a result of the Self Wake
mechanism
In the Self Wake mechanism, if MCR[SLF_WAK] was set at the time FlexCAN entered Stop
Mode, then upon detection of a recessive to dominant transition on the CAN bus, FlexCAN
sets ESR[WAKINT] and, if enabled by MCR[WAK_MSK], generates a Wake Up interrupt to
the CPU. Upon receiving the interrupt, the CPU should resume the clocks and remove the
Stop Mode request. FlexCAN will then wait for 11 consecutive recessive bits to synchronize
to the CAN bus. As a consequence, it will not receive the frame that woke it up. Table 782
details the effect of MCR[SLF_WAK] and MCR[WAK_MSK] upon wake-up from Stop Mode.
Note that wake-up from Stop Mode only works when both bits are asserted.
0 0 No No
0 1 No No
1 0 No No
1 1 Yes Yes
The sensitivity to CAN bus activity can be modified by applying a low-pass filter function to
the Rx CAN input line while in Stop Mode. See the WAK_SRC bit in Section , Module
Configuration Register (MCR). This feature can be used to protect FlexCAN from waking up
due to short glitches on the CAN bus lines. Such glitches can result from electromagnetic
interference within noisy environments.
32.5.10 Interrupts
The module can generate up to 70 interrupt sources (64 interrupts due to message buffers
and 6 interrupts due to Ored interrupts from message buffers, Bus Off, Error, Tx Warning,
Rx Warning and Wake Up). The number of actual sources depends on the configured
number of Message Buffers.
Each one of the message buffers can be an interrupt source, if its corresponding bit in the
IMRL or IMRH register is set. There is no distinction between Tx and Rx interrupts for a
particular buffer, under the assumption that the buffer is initialized for either transmission or
reception. Each of the buffers has assigned a flag bit in the IFRL or IFRH register. The bit is
set when the corresponding buffer completes a successful transmission/reception and is
cleared when the CPU writes it to ‘1’ (unless another interrupt is generated at the same
time).
Note: It must be guaranteed that the CPU only clears the bit causing the current interrupt. For this
reason, bit manipulation instructions (BSET) must not be used to clear interrupt flags. These
instructions may cause accidental clearing of interrupt flags which are set after entering the
current interrupt service routine.
If the Rx FIFO is enabled (MCR[FEN] set), the interrupts corresponding to MBs 0 to 7 have
a different behavior. Bit 7 of the IFRL becomes the “FIFO Overflow” flag; bit 6 becomes the
FIFO Warning flag, bit 5 becomes the “Frames Available in FIFO flag” and bits 4–0 are
unused. See Section , Interrupt Flags 1 Register (IFRL) for more information.
A combined interrupt for all message buffers is also generated by an Or of all the interrupt
sources from message buffers. This interrupt gets generated when any of the message
buffers generates an interrupt. In this case the CPU must read the IFRL or IFRH register to
determine which message buffer caused the interrupt.
The other five interrupt sources (Bus Off, Error, Tx Warning, Rx Warning and Wake Up)
generate interrupts like the message buffer ones, and can be read from the Error and Status
Register. The Bus Off, Error, Tx Warning and Rx Warning interrupt mask bits are located in
the Control Register, and the Wake-Up interrupt mask bit is located in the MCR.
For any configuration change/initialization it is required that FlexCAN is put into Freeze
Mode (see Section , Freeze Mode). The following is a generic initialization sequence
applicable to the FlexCAN module:
● Initialize the Module Configuration Register (MCR)
– Enable the individual filtering per message buffer and reception queue features by
setting the MBFEN bit
– Enable the warning interrupts by setting the WRNEN bit
– If required, disable frame self reception by setting the SRX_DIS bit
– Enable the FIFO by setting the FEN bit
– Enable the abort mechanism by setting the AEN bit
– Enable the local priority feature by setting the LPRIO_EN bit
● Initialize the Control Register (CR)
– Determine the bit timing parameters: PROPSEG, PSEG1, PSEG2, RJW
– Determine the bit rate by programming the PRESDIV field
– Determine the internal arbitration mode (bit CR[LBUF])
● Initialize the Message Buffers
– The Control and Status word of all Message Buffers must be initialized
– If FIFO was enabled, the 8-entry ID table must be initialized
– Other entries in each Message Buffer should be initialized as required
● Initialize the Rx Individual Mask Registers
● Set required interrupt mask bits in the corresponding IMRL or IMRH register (for all
message buffer interrupts), in the CR (for Bus Off and Error interrupts) and in the MCR
for Wake-Up interrupt
● Negate the HALT bit in MCR
Starting with the last event, FlexCAN attempts to synchronize to the CAN bus.
33.1 Introduction
33.1.1 Reference
The following documents are referenced.
● FlexRay Communications System Protocol Specification, Version 2.1 Rev A(bj)
● FlexRay Communications System Electrical Physical Layer Specification, Version 2.1
Rev A
33.1.2 Glossary
This section provides a list of terms used in this chapter.
bj. The FlexRay Specifications have been developed for automotive applications.The FlexRay Specifications have
been neither developed nor tested for non-automotive applications.
33.1.4 Overview
The CC is a FlexRay communication controller that implements the FlexRay
Communications System Protocol Specification, Version 2.1 Rev A.
The CC has three main components:
● Controller host interface (CHI)
● Protocol engine (PE)
● Clock domain crossing unit (CDC)
A block diagram of the CC with its surrounding modules is given in Figure 827.
FlexRay
FR_A_RX
Peripheral CHI PE
Bridge B FR_A_TX
config
HIF SEQ FR_A_TX_EN
33.1.5 Features
The CC provides the following features:
● FlexRay Communications System Protocol Specification, Version 2.1 Rev A compliant
protocol implementation
● FlexRay Communications System Electrical Physical Layer Specification, Version 2.1
Rev A compliant bus driver interface
● Single channel support
– FlexRay Port A can be configured to be connected either to physical FlexRay
channel A or physical FlexRay channel B.
● FlexRay bus data rates of 10 Mbit/s, 8 Mbit/s, 5 Mbit/s, and 2.5 Mbit/s supported
● 128 configurable message buffers with
– Individual frame ID filtering
– Individual channel ID filtering
– Individual cycle counter filtering
● Message buffer header, status and payload data stored in dedicated FlexRay memory
area
– Allows for flexible and efficient message buffer implementation
– Consistent data access ensured by means of buffer locking scheme
– Application can lock multiple buffers at the same time
● Size of message buffer payload data section configurable from 0 up to 254 bytes
● 2 independent message buffer segments with configurable size of payload data section
– Each segment can contain message buffers assigned to the static segment and
message buffers assigned to the dynamic segment at the same time
● Zero padding for transmit message buffers in static segment
– Applied when the frame payload length exceeds the size of the message buffer
data section
● Transmit message buffers configurable with state/event semantics
● Message buffers can be configured as
– Receive message buffer
– Single buffered transmit message buffer
– Double buffered transmit message buffer (combines two single buffered message
buffer)
● Individual message buffer reconfiguration supported
– Means provided to safely disable individual message buffers
– Disabled message buffers can be reconfigured
● 2 independent receive FIFOs
– 1 receive FIFO per channel
– Up to 255 entries for each FIFO
– Global frame ID filtering, based on both value/mask filters and range filters
– Global channel ID filtering
– Global message ID filtering for the dynamic segment
● 4 configurable slot error counters
● 4 dedicated slot status indicators
Disabled mode
The CC enters the Disabled Mode during hard reset. The CC indicates that it is in the
Disabled Mode by negating the module enable bit MEN in the Module Configuration
Register (FR_MCR).
In the Disabled Mode no communication is performed on the FlexRay bus.
All registers with the write access conditions Any Time and Disabled Mode can be accessed
for writing as stated in Section 33.5.2, Register descriptions.
The application configures the CC by accessing the configuration bits and fields in the
Module Configuration Register (FR_MCR).
Normal mode
In this mode the CC is fully functional. The CC indicates that it is in Normal Mode by
asserting the module enable bit MEN in the Module Configuration Register (FR_MCR).
on page 33-
0x0000 Module Version Register (FR_MVR) R
1472
on page 33-
0x0002 Module Configuration Register (FR_MCR) R/W
1472
on page 33-
0x0004 System Memory Base Address High Register (FR_SYMBADHR) R/W
1475
on page 33-
0x0006 System Memory Base Address Low Register (FR_SYMBADLR) R/W
1475
on page 33-
0x0008 Strobe Signal Control Register (FR_STBSCR) R/W
1475
0x000A Reserved R —
on page 33-
0x000C Message Buffer Data Size Register (FR_MBDSR) R/W
1477
on page 33-
0x000E Message Buffer Segment Size and Utilization Register (FR_MBSSUTR) R/W
1477
PE Access Registers
on page 33-
0x0010 PE DRAM Access Register (FR_PEDRAR) R/W
1478
on page 33-
0x0012 PE DRAM Data Register (FR_PEDRDR) R/W
1479
on page 33-
0x0014 Protocol Operation Control Register (FR_POCR) R/W
1479
on page 33-
0x0016 Global Interrupt Flag and Enable Register (FR_GIFER) R/W
1481
on page 33-
0x0018 Protocol Interrupt Flag Register 0 (FR_PIFR0) R/W
1483
on page 33-
0x001A Protocol Interrupt Flag Register 1 (FR_PIFR1) R/W
1485
on page 33-
0x001C Protocol Interrupt Enable Register 0 (FR_PIER0) R/W
1486
on page 33-
0x001E Protocol Interrupt Enable Register 1 (FR_PIER1) R/W
1488
on page 33-
0x0020 CHI Error Flag Register (FR_CHIERFR) R/W
1489
on page 33-
0x0022 Message Buffer Interrupt Vector Register (FR_MBIVEC) R
1491
on page 33-
0x0024 Channel A Status Error Counter Register (FR_CASERCR) R
1492
on page 33-
0x0026 Channel B Status Error Counter Register (FR_CBSERCR) R
1492
Protocol Status
on page 33-
0x0028 Protocol Status Register 0 (FR_PSR0) R
1493
on page 33-
0x002A Protocol Status Register 1 (FR_PSR1) R
1494
on page 33-
0x002C Protocol Status Register 2 (FR_PSR2) R
1495
on page 33-
0x002E Protocol Status Register 3 (FR_PSR3) R/W
1497
on page 33-
0x0030 Macrotick Counter Register (FR_MTCTR) R
1499
on page 33-
0x0032 Cycle Counter Register (FR_CYCTR) R
1499
on page 33-
0x0034 Slot Counter Channel A Register (FR_SLTCTAR) R
1500
on page 33-
0x0036 Slot Counter Channel B Register (FR_SLTCTBR) R
1500
on page 33-
0x0038 Rate Correction Value Register (FR_RTCORVR) R
1501
on page 33-
0x003A Offset Correction Value Register (FR_OFCORVR) R
1501
on page 33-
0x003C Combined Interrupt Flag Register (FR_CIFR) R
1502
on page 33-
0x003E System Memory Access Time-Out Register (FR_SYMATOR) R/W
1503
on page 33-
0x0040 Sync Frame Counter Register (FR_SFCNTR) R
1504
on page 33-
0x0042 Sync Frame Table Offset Register (FR_SFTOR) R/W
1504
on page 33-
0x0044 Sync Frame Table Configuration, Control, Status Register (FR_SFTCCSR) R/W
1505
on page 33-
0x0046 Sync Frame ID Rejection Filter Register (FR_SFIDRFR) R/W
1506
on page 33-
0x0048 Sync Frame ID Acceptance Filter Value Register (FR_SFIDAFVR) R/W
1507
on page 33-
0x004A Sync Frame ID Acceptance Filter Mask Register (FR_SFIDAFMR) R/W
1507
on page 33-
0x004C Network Management Vector Register 0 (FR_NMVR0) R
1507
on page 33-
0x004E Network Management Vector Register 1 (FR_NMVR1) R
1507
on page 33-
0x0050 Network Management Vector Register 2 (FR_NMVR2) R
1507
on page 33-
0x0052 Network Management Vector Register 3 (FR_NMVR3) R
1507
on page 33-
0x0054 Network Management Vector Register 4 (FR_NMVR4) R
1507
on page 33-
0x0056 Network Management Vector Register 5 (FR_NMVR5) R
1507
on page 33-
0x0058 Network Management Vector Length Register (FR_NMVLR) R/W
1508
Timer Configuration
on page 33-
0x005A Timer Configuration and Control Register (FR_TICCR) R/W
1509
on page 33-
0x005C Timer 1 Cycle Set Register (FR_TI1CYSR) R/W
1510
on page 33-
0x005E Timer 1 Macrotick Offset Register (FR_TI1MTOR) R/W
1510
on page 33-
0x0060 Timer 2 Configuration Register 0 (FR_TI2CR0) R/W
1511
on page 33-
0x0062 Timer 2 Configuration Register 1 (FR_TI2CR1) R/W
1511
on page 33-
0x0064 Slot Status Selection Register (FR_SSSR) R/W
1512
on page 33-
0x0066 Slot Status Counter Condition Register (FR_SSCCR) R/W
1513
Slot Status
on page 33-
0x0068 Slot Status Register 0 (FR_SSR0) R
1515
on page 33-
0x006A Slot Status Register 1 (FR_SSR1) R
1515
on page 33-
0x006C Slot Status Register 2 (FR_SSR2) R
1515
on page 33-
0x006E Slot Status Register 3 (FR_SSR3) R
1515
on page 33-
0x0070 Slot Status Register 4 (FR_SSR4) R
1515
on page 33-
0x0072 Slot Status Register 5 (FR_SSR5) R
1515
on page 33-
0x0074 Slot Status Register 6 (FR_SSR6) R
1515
on page 33-
0x0076 Slot Status Register 7 (FR_SSR7) R
1515
on page 33-
0x0078 Slot Status Counter Register 0 (FR_SSCR0) R
1516
on page 33-
0x007A Slot Status Counter Register 1 (FR_SSCR1) R
1516
on page 33-
0x007C Slot Status Counter Register 2 (FR_SSCR2) R
1516
on page 33-
0x007E Slot Status Counter Register 3 (FR_SSCR3) R
1516
MTS Generation
on page 33-
0x0080 MTS A Configuration Register (FR_MTSACFR) R/W
1517
on page 33-
0x0082 MTS B Configuration Register (MTSBCFR) R/W
1517
on page 33-
0x0084 Receive Shadow Buffer Index Register (FR_RSBIR) R/W
1518
on page 33-
0x0086 Receive FIFO Watermark and Selection Register (FR_RFWMSR) R/W
1520
on page 33-
0x0088 Receive FIFO Start Index Register (FR_RFSIR) R/W
1520
on page 33-
0x008A Receive FIFO Depth and Size Register (RFDSR) R/W
1521
on page 33-
0x008C Receive FIFO A Read Index Register (FR_RFARIR) R
1521
on page 33-
0x008E Receive FIFO B Read Index Register (FR_RFBRIR) R
1522
on page 33-
0x0090 Receive FIFO Message ID Acceptance Filter Value Register (FR_RFMIDAFVR) R/W
1523
on page 33-
0x0092 Receive FIFO Message ID Acceptance Filter Mask Register (FR_RFMIDAFMR) R/W
1523
on page 33-
0x0094 Receive FIFO Frame ID Rejection Filter Value Register (FR_RFFIDRFVR) R/W
1524
on page 33-
0x0096 Receive FIFO Frame ID Rejection Filter Mask Register (FR_RFFIDRFMR) R/W
1524
on page 33-
0x0098 Receive FIFO Range Filter Configuration Register (FR_RFRFCFR) R/W
1524
on page 33-
0x009A Receive FIFO Range Filter Control Register (FR_RFRFCTR) R/W
1525
on page 33-
0x009C Last Dynamic Transmit Slot Channel A Register (FR_LDTXSLAR) R
1526
on page 33-
0x009E Last Dynamic Transmit Slot Channel B Register (FR_LDTXSLBR) R
1526
Protocol Configuration
on page 33-
0x00A0 Protocol Configuration Register 0 (FR_PCR0) R/W 1529
... ... – ...
0x00DC Protocol Configuration Register 30 (FR_PCR30) R/W on page 33-
1536
0x00DE
... Reserved R —
0x00E6
Receive FIFO System Memory Base Address High Register on page 33-
0x00E8 R/W
(FR_RFSYMBADHR) 1519
Receive FIFO System Memory Base Address Low Register on page 33-
0x00EA R/W
(FR_RFSYMBADLR) 1519
on page 33-
0x00EC Receive FIFO Periodic Timer Register (FR_RFPTR) R/W
1519
on page 33-
0x00EE Receive FIFO Fill Level and POP Count Register (FR_RFFLPCR) R/W
1522
ECC Registers
on page 33-
0x00F0 ECC Error Interrupt Flag and Enable Register (FR_EEIFER) R/W
1536
on page 33-
0x00F2 ECC Error Report and Injection Control Register (FR_EERICR) R/W
1539
on page 33-
0x00F4 ECC Error Report Address Register (FR_EERAR) R
1539
on page 33-
0x00F6 ECC Error Report Data Register (FR_EERDR) R
1540
on page 33-
0x00F8 ECC Error Report Code Register (FR_EERCR) R
1541
on page 33-
0x00FA ECC Error Injection Address Register (FR_EEIAR) R/W
1541
on page 33-
0x00FC ECC Error Injection Data Register (FR_EEIDR) R/W
1542
on page 33-
0x00FE ECC Error Injection Code Register (FR_EEICR) R/W
1542
on page 33-
0x0100 Message Buffer Configuration, Control, Status Register 0 (FR_MBCCSR0) R/W
1543
on page 33-
0x0102 Message Buffer Cycle Counter Filter Register 0 (FR_MBCCFR0) R/W
1545
on page 33-
0x0104 Message Buffer Frame ID Register 0 (FR_MBFIDR0) R/W
1546
on page 33-
0x0106 Message Buffer Index Register 0 (FR_MBIDXR0) R/W
1547
... ... ... ...
on page 33-
0x04F8 Message Buffer Configuration, Control, Status Register 127 (FR_MBCCSR127) R/W
1543
on page 33-
0x04FA Message Buffer Cycle Counter Filter Register 127 (FR_MBCCFR127) R/W
1545
on page 33-
0x04FC Message Buffer Frame ID Register 127 (FR_MBFIDR127) R/W
1546
on page 33-
0x04FE Message Buffer Index Register 127 (FR_MBIDXR127) R/W
1547
Depending on its placement in the read or write row, indicates that the bit is not readable or not
writeable
Reserved bit or field; will not be changed—Application must not write any value different from the
R*
reset value
FIELDNAME Identifies the field—Its presence in the read or write row indicates that it can be read or written.
rwm A read/write bit that may be modified by a hardware in some fashion other than by a reset
w1c Write one to clear—A flag bit that can be read, is cleared by writing a one; writing 0 has no effect
Reset value
0 Resets to zero
1 Resets to one
— Not defined after reset and not affected by reset
Register reset
All registers except the Message Buffer Cycle Counter Filter Registers (FR_MBCCFRn),
Message Buffer Frame ID Registers (FR_MBFIDRn), and Message Buffer Index Registers
(FR_MBIDXRn) are reset to their reset value on system reset. The registers mentioned
above are located in physical memory blocks and, thus, they are not affected by reset. For
some register fields, additional reset conditions exist. These additional reset conditions are
mentioned in the detailed description of the register. The additional reset conditions are
explained in Table 787.
The register field is reset when the application writes to RUN command “0101”
Protocol RUN Command
to the POCCMD field in the Protocol Operation Control Register (FR_POCR).
The register field is reset when the application has disabled the message
buffer.
Message Buffer Disable This happens when the application writes 1 to the message buffer disable
trigger bit FR_MBCCSRn[EDT] while the message buffer is enabled
(FR_MBCCSRn[EDS] = 1) and the CC grants the disable to the application by
clearing the FR_MBCCSRn[EDS] bit.
fulfilled, any write attempt to this register bit or field is ignored without any notification. The
values of the bits or fields are not changed. The condition term [A or B] indicates that the
register or field can be written to if at least one of the conditions is fulfilled.The condition
term [A and B] indicates that the register or field can be written to if both conditions are
fulfilled.
Base + 0x0000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R CHIVER PEVER
Reset 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0
This register provides the CC version number. The module version number is derived from
the CHI version number and the PE version number.
CHIVER CHI Version Number — This field provides the version number of the CC host interface.
PEVER PE Version Number — This field provides the version number of the protocol engine.
R 0 0 0
ECCE
SFFE
SBFF
SCM
MEN
FUM
CHB
CHA
FAM
BITRATE
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Module Enable — This bit indicates whether or not the CC is in the Disabled Mode. The application
requests the CC to leave the Disabled Mode by writing 1 to this bit Before leaving the Disabled
Mode, the application must configure the SCM, SBFF, CHB, CHA, TMODE, BITRATE values. For
details see Section 33.1.6, Modes of operation.
MEN 0 Write: ignored, CC disable not possible
Read: CC disabled
1 Write: enable CC
Read: CC enabled
If the CC is enabled it can not be disabled.
System Bus Failure Freeze — This bit controls the behavior of the CC in case of a system bus
failure.
SBFF
0 Continue normal operation
1 Transition to freeze mode
Single Channel Device Mode — This control bit defines the channel device mode of the CC as
described in Section 33.6.10, Channel device modes.
SCM
0 CC works in dual channel device mode
1 CC works in single channel device mode
Protocol Engine Clock Source Select — This bit is used to select the clock source for the protocol
engine.
CLKSEL
0 PE clock source is generated by on-chip crystal oscillator
1 PE clock source is generated by on-chip PLL
FlexRay Bus Bit Rate — This bit field defines the FlexRay bus bit rate.
000 10.0 Mbit/s
001 5.0 Mbit/s
010 2.5 Mbit/s
BITRATE 011 8.0 Mbit/s
100 Reserved
101 Reserved
110 Reserved
111 Reserved
Note: The system memory base address must be set before the CC is enabled.
The system memory base address registers define the base address of the FlexRay
memory area within the system memory. The base address is used by the BMIF to calculate
the physical memory address for system memory accesses.
System Memory Base Address — This is the value of the system memory base address for the
individual message buffers and sync frame table. This is the value of the system memory base
SMBA
address for the receive FIFO if the FIFO address mode bit FR_MCR[FAM] is set to 1. It is defines as
a byte address.
This register is used to assign the individual protocol timing related strobe signals given in
Table 794 to the external strobe ports. Each strobe signal can be assigned to at most one
strobe port. Each write access to registers overwrites the previously written ENB and
STBPSEL values for the signal indicated by SEL. If more than one strobe signal is assigned
to one strobe port, the current values of the strobe signals are combined with a binary OR
and presented at the strobe port. If no strobe signal is assigned to a strobe port, the strobe
port carries logic 0. For more detailed and timing information refer to Section 33.6.16,
Strobe signal support.
Note: In single channel device mode, channel B related strobe signals are undefined and should
not be assigned to the strobe ports.
Write Mode — This control bit defines the write mode of this register.
WMD 0 Write to all fields in this register on write access.
1 Write to SEL field only on write access.
Strobe Signal Select — This control field selects one of the strobe signals given in Table 794 to be
SEL
enabled or disabled and assigned to one of the four strobe ports given in Table 794.
Strobe Signal Enable — The control bit is used to enable and to disable the strobe signal selected
by STBSSEL.
ENB
0 Strobe signal is disabled and not assigned to any strobe port.
1 Strobe signal is enabled and assigned to the strobe port selected by STBPSEL.
Strobe Port Select — This field selects the strobe port that the strobe signal selected by the SEL is
assigned to. All strobe signals that are enabled and assigned to the same strobe port are combined
with a binary OR operation.
STBPSEL 00 assign selected signal to FR_DBG[0]
01 assign selected signal to FR_DBG[1]
10 assign selected signal to FR_DBG[2]
11 assign selected signal to FR_DBG[3]
.;
RX FIFO A
14 0xE A Almost Full
Interrupt
receive FIFO almost-full interrupt signals value n.a.
RX FIFO B
15 0xF B Almost Full
Interrupt
1. Given in PE clock cycles
This register defines the size of the message buffer data section for the two message buffer
segments in a number of two-byte entities.
The CC provides two independent segments for the individual message buffers. All
individual message buffers within one segment have to have the same size for the message
buffer data section. This size can be different for the two message buffer segments.
Message Buffer Segment 2 Data Size — The field defines the size of the message buffer data
MBSEG2DS
section in two-byte entities for message buffers within the second message buffer segment.
Message Buffer Segment 1 Data Size — The field defines the size of the message buffer data
MBSEG1DS
section in two-byte entities for message buffers within the first message buffer segment.
Figure 834. Message Buffer Segment Size and Utilization Register (FR_MBSSUTR)
Base + 0x000E Write: POC:config
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0
LAST_MB_SEG1 LAST_MB_UTIL
W
Reset 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
This register is used to define the last individual message buffer that belongs to the first
message buffer segment and the number of the last used individual message buffer.
Last Message Buffer In Segment 1 — This field defines the message buffer number of the last
individual message buffer that is assigned to the first message buffer segment. The individual
message buffers in the first segment correspond to the message buffer control registers
FR_MBCCSRn, FR_MBCCFRn, FR_MBFIDRn, FR_MBIDXRn with n < LAST_MB_SEG1. The
first message buffer segment contains LAST_MB_SEG1 + 1 individual message buffers.
LAST_MB_SEG1 The first message buffer segment contains at least one individual message buffer.
The individual message buffers in the second message buffer segment correspond to the
message buffer control registers FR_MBCCSRn, FR_MBCCFRn, FR_MBFIDRn,
FR_MBIDXRn with LAST_MB_SEG1 < n < 128.
If LAST_MB_SEG1 = 127 all individual message buffers belong to the first message buffer segment
and the second message buffer segment is empty.
Last Message Buffer Utilized — This field defines the message buffer number of last utilized
individual message buffer. The message buffer search engine examines all individual message
LAST_MB_UTIL buffer with a message buffer number n < LAST_MB_UTIL.
If LAST_MB_UTIL=LAST_MB_SEG1 all individual message buffers belong to the first message buffer
segment and the second message buffer segment is empty.
This register is used to trigger write and read operations on the PE data memory (PE
DRAM). These operations are used for memory error injection and memory error
observation.
Each write access to this registers initiates a read or write operation on the PE DRAM. The
access done status bit DAD is cleared after the write access and is set if the PE DRAM
access has been finished.
In case of an PE DRAM write access, the data provided in PE DRAM Data Register
(FR_PEDRDR) are written into the PE DRAM, read back from the PE DRAM and are stored
into the PE DRAM Data Register (FR_PEDRDR).
In case of an PE DRAM read access, the requested data are read from PE DRAM and
stored into the PE DRAM Data Register (FR_PEDRDR).
For a detailed description refer to Section 33.6.24, Memory content error detection.
PE DRAM Access Instruction — This field defines the operation to be executed on the PE
DRAM.
0011 PE DRAM write: Write FR_PEDRDR[DATA] to PE DRAM address ADDR (16 bit)
INST
0101 PE DRAM read: Read Data from PE DRAM address ADDR (16 bit) into FR_PEDRDR[DATA]
other Reserved
PE DRAM Access Address — This field defines the address in the PE DRAM to be written to or
ADDR
read from.
PE DRAM Access Done — This status bit is cleared when the application has written to this
register and is set when the PE DRAM access has finished.
DAD
0 PE DRAM access running
1 PE DRAM access done
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
DATA
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides the data to be written to or read from the PE DRAM by the access
initiated by write access to the PE DRAM Access Register (FR_PEDRAR).
Write Mode External Correction — This bit controls the write mode of the EOC_AP and ERC_AP
fields.
WME
0 Write to EOC_AP and ERC_AP fields on register write.
1 No write to EOC_AP and ERC_AP fields on register write.
External Offset Correction Application — This field is used to trigger the application of the external
offset correction value defined in the Protocol Configuration Register 29 (FR_PCR29).
00 do not apply external offset correction value
EOC_AP
01 Reserved
10 subtract external offset correction value
11 add external offset correction value
External Rate Correction Application — This field is used to trigger application of the external rate
correction value defined in the Protocol Configuration Register 21 (FR_PCR21)
ERC_AP 00 do not apply external rate correction value
01 Reserved
10 subtract external rate correction value
11 add external rate correction value
Protocol Control Command Write Busy — This status bit indicates the acceptance of the protocol
BSY
control command issued by the application via the POCCMD field. The CC sets this status bit when
the application has issued a protocol control command via the POCCMD field. The CC clears this
status bit when protocol control command was accepted by the PE.When the application issues a
protocol control command while the BSY bit is asserted, the CC ignores this command, sets the
protocol command ignored error flag PCMI_EF in the CHI Error Flag Register (FR_CHIERFR), and
will not change the value of the POCCMD field.
0Command write idle, command accepted and ready to receive new protocol command.
1Command write busy, command not yet accepted, not ready to receive new protocol command.
Write Mode Command — This bit controls the write mode of the POCCMD field.
0 Write to POCCMD field on register write.
WMC
1 Do not write to POCCMD field on register write.
Protocol Control Command — The application writes to this field to issue a protocol control
command to the PE. The CC sends the protocol command to the PE immediately. While the transfer
is running, the BSY bit is set.
0000 ALLOW_COLDSTART — Immediately activate capability of node to cold start cluster.
0001 ALL_SLOTS — Delayed(1) transition to the all slots transmission mode.
0010 CONFIG — Immediately transition to the POC:config state.
0011 FREEZE — Immediately transition to the POC:halt state.
0100 READY, CONFIG_COMPLETE — Immediately transition to the POC:ready state.
0101 RUN — Immediately transition to the POC:startup start state.
POCCMD 0110 DEFAULT_CONFIG — Immediately transition to the POC:default config state.
0111 HALT — Delayed transition to the POC:halt state
1000 WAKEUP — Immediately initiate the wakeup procedure.
1001 Reserved
1010 Reserved
1011 Reserved
1100 Reserved
1101 Reserved
1110 Reserved
1111 Reserved
1. Delayed means on completion of current communication cycle.
FAFBIF
FAFAIF
WUPIF
CHIF
PRIF
RBIF
TBIF
FAFBIE
WUPIE
MIF
FAFA
R
CHIE
PRIE
RBIE
TBIE
MIE
IE
W w1c w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides the means to control some of the interrupt request lines and provides
the corresponding interrupt flags. The interrupt flags MIF, PRIF, CHIF, RBIF, and TBIF are
the outcome of a binary OR of the related individual interrupt flags and interrupt enables.
The generation scheme for these flags is depicted in Figure 986. For more details on
interrupt generation, see Section 33.6.20, Interrupt support. These flags are cleared
automatically when all of the corresponding interrupt flags or interrupt enables in the related
interrupt flag and enable registers are cleared by the application.
Module Interrupt Flag — This flag is asserted if at least one of the other interrupt flags in this
register and its related interrupt enable is asserted.
MIF 0 No interrupt flag is asserted or no interrupt enable is set
1 At least one of the other interrupt flags in this register is asserted and the related interrupt bit is
asserted, too
Protocol Interrupt Flag — This flag is set if at least one of the individual protocol interrupt flags in
the Protocol Interrupt Flag Register 0 (FR_PIFR0) and Protocol Interrupt Flag Register 1 (FR_PIFR1)
PRIF is asserted and the related interrupt enable flag is asserted.
0 All individual protocol interrupt flags are equal to 0 or no interrupt enable bit is set.
1 At least one of the individual protocol interrupt flags and the related interrupt enable is equal to 1.
CHI Interrupt Flag — This flag is set if at least one of the individual CHI error flags in the CHI Error
Flag Register (FR_CHIERFR) is asserted and the CHI error interrupt enable FR_GIFER[CHIE] is
CHIF asserted.
0 All CHI error flags are equal to 0 or the CHI error interrupt is disabled
1 At least one CHI error flag is asserted and CHI error interrupt is enabled
Wakeup Interrupt Flag — This flag is set when the CC has received a wakeup symbol on the
FlexRay bus. The application can determine on which channel the wakeup symbol was received by
WUPIF reading the related wakeup flags WUB and WUA in the Protocol Status Register 3 (FR_PSR3).
0 No wakeup condition or interrupt disabled
1 Wakeup symbol received on FlexRay bus and interrupt enabled
Receive FIFO Channel B Almost Full Interrupt Flag — This flag is set when one of the following
events occurs
a) the current number of FIFO B entries is equal to or greater than the watermark defined by the WM
field in the Receive FIFO Watermark and Selection Register (FR_RFWMSR), and the CC writes a
FAFBIF received message into the FIFO B, or
b) the current number of FIFO B entries is at least 1 and the periodic timer as defined by Receive
FIFO Periodic Timer Register (FR_RFPTR) expires.
0 no such event
1 FIFO B almost full event has occurred
Receive FIFO Channel A Almost Full Interrupt Flag — This flag is set when one of the following
events occurs
a) the current number of FIFO A entries is equal to or greater than the watermark defined by the WM
field in the Receive FIFO Watermark and Selection Register (FR_RFWMSR), and the CC writes a
FAFAIF received message into the FIFO A, or
b) the current number of FIFO B entries is at least 1 and the periodic timer as defined by Receive
FIFO Periodic Timer Register (FR_RFPTR) expires.
0 no such event
1 FIFO A almost full event has occurred
Receive Message Buffer Interrupt Flag — This flag is set if for at least one of the individual receive
message buffers (FR_MBCCSRn[MTD] = 0) both the interrupt flag MBIF and the interrupt enable bit
MBIE in the corresponding Message Buffer Configuration, Control, Status Registers (FR_MBCCSRn)
are asserted. The application can not clear this RBIF flag directly. This flag is cleared by the CC when
RBIF
all of the interrupt flags MBIF of the individual receive message buffers are cleared by the application
or if the application has cleared the interrupt enables bit MBIE.
0 None of the individual receive message buffers has the MBIF and MBIE flag asserted.
1 At least one individual receive message buffer has the MBIF and MBIE flag asserted.
Transmit Message Buffer Interrupt Flag — This flag is set if for at least one of the individual single
or double transmit message buffers (FR_MBCCSRn[MTD] = 1) both the interrupt flag MBIF and the
interrupt enable bit MBIE in the corresponding Message Buffer Configuration, Control, Status
Registers (FR_MBCCSRn) are equal to 1. The application can not clear this TBIF flag directly. This
TBIF
flag is cleared by the CC when either all of the individual interrupt flags MBIF of the individual transmit
message buffers are cleared by the application or the host has cleared the interrupt enables bit MBIE.
0 None of the individual transmit message buffers has the MBIF and MBIE flag asserted.
1 At least one individual transmit message buffer has the MBIF and MBIE flag asserted.
Module Interrupt Enable — This flag controls if the Module Interrupt line is asserted when the MIF
flag is set.
MIE
0 Disable interrupt line
1 Enable interrupt line
Protocol Interrupt Enable — This flag controls if the Protocol Interrupt line is asserted when the
PRIF flag is set.
PRIE
0 Disable interrupt line
1 Enable interrupt line
CHI Interrupt Enable — This flag controls if the CHI Interrupt line is asserted when the CHIF flag is
set.
CHIE
0 Disable interrupt line
1 Enable interrupt line
Wakeup Interrupt Enable — This flag controls if the Wakeup Interrupt line is asserted when the
WUPIF flag is set.
WUPIE
0 Disable interrupt line
1 Enable interrupt line
Receive FIFO Channel B Almost Full Interrupt Enable — This flag controls if the RX FIFO B
Almost Full Interrupt line is asserted when the FAFBIF flag is set.
FAFBIE
0 Disable interrupt line
1 Enable interrupt line
Receive FIFO Channel A Almost Full Interrupt Enable — This flag controls if the RX FIFO A
Almost Full Interrupt line is asserted when the FAFAIF flag is set.
FAFAIE
0 Disable interrupt line
1 Enable interrupt line
Receive Message Buffer Interrupt Enable — This flag controls if the Receive Message Buffer
Interrupt line is asserted when the RBIF flag is set.
RBIE
0 Disable interrupt line
1 Enable interrupt line
Transmit Message Buffer Interrupt Enable — This flag controls if the Transmit Message Buffer
Interrupt line is asserted when the TBIF flag is set.
TBIE
0 Disable interrupt line
1 Enable interrupt line
TBVB_IF
TBVA_IF
LTXB_IF
LTXA_IF
MOC_IF
FATL_IF
MRC_IF
INTL_IF
ILCF_IF
MXS_IF
MTX_IF
CSA_IF
CYS_IF
CCL_IF
TI2_IF
TI1_IF
R
W w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The register holds one set of the protocol-related individual interrupt flags.
Fatal Protocol Error Interrupt Flag — This flag is set when the protocol engine has detected a fatal
protocol error. In this case, the protocol engine goes into the POC:halt state immediately. The fatal
protocol errors are:
1) pLatestTx violation, as described in the MAC process of the FlexRay protocol
FATL_IF
2) transmission across slot boundary violation, as described in the FSP process of the FlexRay
protocol
0 No such event.
1 Fatal protocol error detected.
Internal Protocol Error Interrupt Flag — This flag is set when the protocol engine has detected an
internal protocol error. In this case, the protocol engine goes into the POC:halt state immediately. An
internal protocol error occurs when the protocol engine has not finished a calculation and a new
INTL_IF calculation is requested. This can be caused by a hardware error.
0 No such event.
1 Internal protocol error detected.
Illegal Protocol Configuration Interrupt Flag — This flag is set when the protocol engine has
detected an illegal protocol configuration parameter setting. In this case, the protocol engine goes
into the POC:halt state immediately.
The protocol engine checks the listen_timeout value programmed into the Protocol Configuration
Register 14 (FR_PCR14) and Protocol Configuration Register 15 (FR_PCR15) when the
ILCF_IF
CONFIG_COMPLETE command was sent by the application via the Protocol Operation Control
Register (FR_POCR). If the value of listen_timeout is equal to zero, the protocol configuration setting
is considered as illegal.
0 No such event.
1 Illegal protocol configuration detected.
Cold Start Abort Interrupt Flag — This flag is set when the configured number of allowed cold start
attempts is reached and none of these attempts was successful. The number of allowed cold start
attempts is configured by the coldstart_attempts field in the Protocol Configuration Register 3
CSA_IF (FR_PCR3).
0 No such event.
1 Cold start aborted and no more coldstart attempts allowed.
Missing Rate Correction Interrupt Flag — This flag is set when an insufficient number of
measurements is available for rate correction at the end of the communication cycle.
MRC_IF
0 No such event
1 Insufficient number of measurements for rate correction detected
Missing Offset Correction Interrupt Flag — This flag is set when an insufficient number of
measurements is available for offset correction. This is related to the MISSING_TERM event in the
MOC_IF CSP process for offset correction in the FlexRay protocol.
0 No such event.
1 Insufficient number of measurements for offset correction detected.
Clock Correction Limit Reached Interrupt Flag — This flag is set when the internal calculated
offset or rate calculation values have reached or exceeded its configured thresholds as given by the
offset_coorection_out field in the Protocol Configuration Register 9 (FR_PCR9) and the
CCL_IF rate_correction_out field in the Protocol Configuration Register 14 (FR_PCR14).
0 No such event.
1 Offset or rate correction limit reached.
Max Sync Frames Detected Interrupt Flag — This flag is set when the number of synchronization
frames detected in the current communication cycle exceeds the value of the node_sync_max field in
the Protocol Configuration Register 30 (FR_PCR30).
MXS_IF 0 No such event.
1 More than node_sync_max sync frames detected.
Only synchronization frames that have passed the synchronization frame acceptance and rejection filters are
taken into account.
Media Access Test Symbol Received Interrupt Flag — This flag is set when the MTS symbol was
received on channel A or channel B.
MTX_IF
0 No such event.
1 MTS symbol received.
pLatestTx Violation on Channel B Interrupt Flag — This flag is set when the frame transmission on
channel B in the dynamic segment exceeds the dynamic segment boundary. This is related to the
LTXB_IF pLatestTx violation, as described in the MAC process of the FlexRay protocol.
0 No such event.
1 pLatestTx violation occurred on channel B.
SSI3_IF
SSI2_IF
SSI1_IF
SSI0_IF
ODT_IF
PSC_IF
EVT_IF
IPC_IF
R 0 0 0 0 0 0
W w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The register holds one set of the protocol-related individual interrupt flags.
Error Mode Changed Interrupt Flag — This flag is set when the value of the ERRMODE bit field in
the Protocol Status Register 0 (FR_PSR0) is changed by the CC.
EMC_IF
0 No such event.
1 ERRMODE field changed.
Illegal Protocol Control Command Interrupt Flag — This flag is set when the PE tries to execute a
protocol control command, which was issued via the POCCMD field of the Protocol Operation Control
Register (FR_POCR), and detects that this protocol control command is not allowed in the current
IPC_IF protocol state. In this case the command is not executed. For more details, see Section 33.7.7,
Protocol control command execution.
0 No such event.
1 Illegal protocol control command detected.
Protocol Engine Communication Failure Interrupt Flag — This flag is set if the CC has detected a
communication failure between the protocol engine and the CC host interface
PECF_IF
0 No such event.
1 Protocol Engine Communication Failure detected.
Protocol State Changed Interrupt Flag — This flag is set when the protocol state in the
PROTSTATE field in the Protocol Status Register 0 (FR_PSR0) has changed.
PSC_IF
0 No such event.
1 Protocol state changed.
SSI3_IF Slot Status Counter Incremented Interrupt Flag — Each of these flags is set when the
SLOTSTATUSCNT field in the corresponding Slot Status Counter Registers (FR_SSCR0–
SSI2_IF
FR_SSCR3) is incremented.
SSI1_IF
0 No such event.
SSI0_IF 1 The corresponding slot status counter has incremented.
Even Cycle Table Written Interrupt Flag — This flag is set if the CC has written the sync frame
measurement / ID tables into the FlexRay memory area for the even cycle.
EVT_IF
0 No such event.
1 Sync frame measurement table written
Odd Cycle Table Written Interrupt Flag — This flag is set if the CC has written the sync frame
measurement / ID tables into the FlexRay memory area for the odd cycle.
ODT_IF
0 No such event.
1 Sync frame measurement table written
TBVA_IE
LTXB_IE
LTXA_IE
R
FATL_IE
MOC_IE
MRC_IE
INTL_IE
ILCF_IE
MXS_IE
MTX_IE
CSA_IE
CYS_IE
CCL_IE
TI2_IE
TI1_IE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register defines whether or not the individual interrupt flags defined in the Protocol
Interrupt Flag Register 0 (FR_PIFR0) can generate a protocol interrupt request.
Fatal Protocol Error Interrupt Enable — This bit controls FATL_IF interrupt request generation.
FATL_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Internal Protocol Error Interrupt Enable — This bit controls INTL_IF interrupt request generation.
INTL_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Illegal Protocol Configuration Interrupt Enable — This bit controls ILCF_IF interrupt request
generation.
ILCF_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Cold Start Abort Interrupt Enable — This bit controls CSA_IF interrupt request generation.
CSA_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Missing Rate Correction Interrupt Enable — This bit controls MRC_IF interrupt request generation.
MRC_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Missing Offset Correction Interrupt Enable — This bit controls MOC_IF interrupt request
generation.
MOC_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Clock Correction Limit Reached Interrupt Enable — This bit controls CCL_IF interrupt request
generation.
CCL_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Max Sync Frames Detected Interrupt Enable — This bit controls MXS_IF interrupt request
generation.
MXS_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Media Access Test Symbol Received Interrupt Enable — This bit controls MTX_IF interrupt
request generation.
MTX_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
pLatestTx Violation on Channel B Interrupt Enable — This bit controls LTXB_IF interrupt request
generation.
LTXB_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
pLatestTx Violation on Channel A Interrupt Enable — This bit controls LTXA_IF interrupt request
generation.
LTXA_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Transmission across boundary on channel B Interrupt Enable — This bit controls TBVB_IF
interrupt request generation.
TBVB_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Transmission across boundary on channel A Interrupt Enable — This bit controls TBVA_IF
interrupt request generation.
TBVA_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Timer 2 Expired Interrupt Enable — This bit controls TI1_IF interrupt request generation.
TI2_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Timer 1 Expired Interrupt Enable — This bit controls TI1_IF interrupt request generation.
TI1_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Cycle Start Interrupt Enable — This bit controls CYC_IF interrupt request generation.
CYS_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
R 0 0 0 0 0 0
EMC_IE
SSI3_IE
SSI2_IE
SSI1_IE
SSI0_IE
ODT_IE
PSC_IE
EVT_IE
IPC_IE
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register defines whether or not the individual interrupt flags defined in Protocol Interrupt
Flag Register 1 (FR_PIFR1) can generate a protocol interrupt request.
Error Mode Changed Interrupt Enable — This bit controls EMC_IF interrupt request generation.
EMC_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Illegal Protocol Control Command Interrupt Enable — This bit controls IPC_IF interrupt request
generation.
IPC_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Protocol Engine Communication Failure Interrupt Enable — This bit controls PECF_IF interrupt
request generation.
PECF_IE
0 interrupt request generation disabled
1 interrupt request generation enabled
Protocol State Changed Interrupt Enable — This bit controls PSC_IF interrupt request generation.
PSC_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
SSI3_IE Slot Status Counter Incremented Interrupt Enable — This bit controls SSI[3:0]_IF interrupt
SSI2_IE request generation.
SSI1_IE 0 interrupt request generation disabled
SSI0_IE 1 interrupt request generation enabled
Even Cycle Table Written Interrupt Enable — This bit controls EVT_IF interrupt request generation.
EVT_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
Odd Cycle Table Written Interrupt Enable — This bit controls ODT_IF interrupt request generation.
ODT_IE 0 interrupt request generation disabled
1 interrupt request generation enabled
FOVA_EF
ILSA_EF1
FRLB_EF
FRLA_EF
PCMI_EF
MBU_EF
MBS_EF
NMF_EF
NML_EF
DBL_EF
DPL_EF
LCK_EF
SPL_EF
FID_EF
R
W w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. The FlexRay controller should be stopped via a FREEZE or HALT command and subsequently restarted when any of the
error flags CHIERFR[SBCF_EF] or CHIERFR[ILSA_EF] is set.
This register holds the CHI related error flags. The interrupt generation for each of these
error flags is controlled by the CHI interrupt enable bit CHIE in the Global Interrupt Flag and
Enable Register (FR_GIFER).
Frame Lost Channel B Error Flag — This flag is set if a complete frame was received on channel B
but could not be stored in the selected individual message buffer because this message buffer is
currently locked by the application. In this case, the frame and the related slot status information are
FRLB_EF
lost.
0 No such event
1 Frame lost on channel B detected
Frame Lost Channel A Error Flag — This flag is set if a complete frame was received on channel A
but could not be stored in the selected individual message buffer because this message buffer is
currently locked by the application. In this case, the frame and the related slot status information are
FRLA_EF lost.
0 No such error
1 Frame lost on channel A detected
Protocol Command Ignored Error Flag — This flag is set if the application has issued a POC
command by writing to the POCCMD field in the Protocol Operation Control Register (FR_POCR)
PCMI_EF while the BSY flag is equal to 1. In this case the command is ignored by the CC and is lost.
0 No such error
1 POC command ignored
Receive FIFO Overrun Channel B Error Flag — This flag is set when an overrun of the FIFO for
channel B occurred. This error occurs if a semantically valid frame was received on channel B and
matches the all criteria to be appended to the FIFO for channel B but the FIFO is full. In this case, the
FOVB_EF received frame and its related slot status information is lost.
0 No such error
1 FIFO overrun on channel B has been detected
Receive FIFO Overrun Channel A Error Flag — This flag is set when an overrun of the FIFO for
channel A occurred. This error occurs if a semantically valid frame was received on channel A and
matches the all criteria to be appended to the FIFO for channel A but the FIFO is full. In this case, the
FOVA_EF
received frame and its related slot status information is lost.
0 No such error
1 FIFO overrun on channel B has been detected
Message Buffer Search Error Flag — This flag is set if the message buffer search engine is still
running while the next search cycle must be started due to the FlexRay protocol timing. In this case,
MSB_EF not all message buffers are considered while searching.
0 No such event
1 Search engine active while search start appears
Message Buffer Utilization Error Flag — This flag is asserted if the application writes to a message
buffer control field that is beyond the number of utilized message buffers programmed in the Message
Buffer Segment Size and Utilization Register (FR_MBSSUTR).
If the application writes to a FR_MBCCSRn register with n > LAST_MB_UTIL, the CC ignores the
MBU_EF write attempt and asserts the message buffer utilization error flag MBU_EF in the CHI Error Flag
Register (FR_CHIERFR).
0 No such event
1 Non-utilized message buffer enabled
Lock Error Flag — This flag is set if the application tries to lock a message buffer that is already
locked by the CC due to internal operations. In that case, the CC does not grant the lock to the
LCK_EF application. The application must issue the lock request again.
0 No such error
1 Lock error detected
Double Transmit Message Buffer Lock Error Flag — This flag is set if the application tries to lock
the transmit side of a double transmit message buffer. In this case, the CC does not grant the lock to
DBL_EF the transmit side of a double transmit message buffer.
0 No such event
1 Double transmit buffer lock error occurred
System Bus Communication Failure Error Flag — This flag is set if a system bus access was not
finished within the required amount of time (see Section , System bus access timeout).
SBCF_EF
0 No such event
1 System bus access not finished in time
Frame ID Error Flag — This flag is set if the frame ID stored in the message buffer header area
differs from the frame ID stored in the message buffer control register.
FID_EF
0 No such error occurred
1 Frame ID error occurred
Dynamic Payload Length Error Flag — This flag is set if the payload length written into the
message buffer header field of a single or double transmit message buffer assigned to the dynamic
segment is greater than the maximum payload length for the dynamic segment as it is configured in
DPL_EF the corresponding protocol configuration register field max_payload_length_dynamic in the Protocol
Configuration Register 24 (FR_PCR24).
0 No such error occurred
1 Dynamic payload length error occurred
Static Payload Length Error Flag — This flag is set if the payload length written into the message
buffer header field of a single or double transmit message buffer assigned to the static segment is
different from the payload length for the static segment as it is configured in the corresponding
SPL_EF protocol configuration register field payload_length_static in the Protocol Configuration Register 19
(FR_PCR19).
0 No such error occurred
1 Static payload length error occurred
Network Management Length Error Flag — This flag is set if the payload length written into the
header structure of a receive message buffer assigned to the static segment is less than the
configured length of the Network Management Vector as configured in the Network Management
NML_EF Vector Length Register (FR_NMVLR). In this case the received part of the Network Management
Vector will be used to update the Network Management Vector.
0 No such error occurred
1 Network management length error occurred
Network Management Frame Error Flag — This flag is set if a received message in the static
segment with a Preamble Indicator flag PP asserted has its Null Frame indicator flag NF asserted as
well. In this case, the Global Network Management Registers (see Network Management Vector
NMF_EF
Registers (FR_NMVR0–FR_NMVR5)) are not updated.
0 No such error occurred
1 Network management frame error occurred
Illegal System Bus Address Error Flag — This flag is set if the external system bus subsystem has
detected an access to an illegal system bus address from the CC (see Section , System bus illegal
ILSA_EF address access).
0 No such event
1 Illegal system bus address accessed
This register indicates the lowest numbered receive message buffer and the lowest
numbered transmit message buffer that have their interrupt status flag MBIF and interrupt
enable MBIE bits asserted. This means that message buffers with lower message buffer
numbers have higher priority.
Transmit Buffer Interrupt Vector — This field provides the number of the lowest numbered enabled
transmit message buffer that has its interrupt status flag MBIF and its interrupt enable bit MBIE set. If
TBIVEC
there is no transmit message buffer with the interrupt status flag MBIF and the interrupt enable MBIE
bits asserted, the value in this field is set to 0.
Receive Buffer Interrupt Vector — This field provides the message buffer number of the lowest
numbered receive message buffer which has its interrupt flag MBIF and its interrupt enable bit MBIE
RBIVEC
asserted. If there is no receive message buffer with the interrupt status flag MBIF and the interrupt
enable MBIE bits asserted, the value in this field is set to 0.
This register provides the channel status error counter for channel A. The protocol engine
generates a slot status vector for each static slot, each dynamic slot, the symbol window,
and the NIT. The slot status vector contains the four protocol related error indicator bits
vSS!SyntaxError, vSS!ContentError, vSS!BViolation, and vSS!TxConflict. The CC
increments the status error counter by 1 if, for a slot or segment, at least one error indicator
bit is set to 1. The counter wraps around after it has reached the maximum value. For more
information on slot status monitoring, see Section 33.6.18, Slot status monitoring.
Channel Status Error Counter — This field provides the current value channel status error
STATUS_ERR_CNT counter. The counter value is updated within the first macrotick of the following slot or
segment.
This register provides the channel status error counter for channel B. The protocol engine
generates a slot status vector for each static slot, each dynamic slot, the symbol window,
and the NIT. The slot status vector contains the four protocol related error indicator bits
vSS!SyntaxError, vSS!ContentError, vSS!BViolation, and vSS!TxConflict. The CC
increments the status error counter by 1 if, for a slot or segment, at least one error indicator
bit is set to 1. The counter wraps around after it has reached the maximum value. For more
information on slot status monitoring see Section 33.6.18, Slot status monitoring.
Channel Status Error Counter — This field provides the current channel status error
STATUS_ERR_CNT count. The counter value is updated within the first macrotick of the following slot or
segment.
Error Mode — protocol related variable: vPOC!ErrorMode. This field indicates the error mode of
the protocol.
ERRMODE 00 ACTIVE
01 PASSIVE
10 COMM_HALT
11 Reserved
Slot Mode — protocol related variable: vPOC!SlotMode. This field indicates the slot mode of the
protocol.
00 SINGLE
SLOTMODE
01 ALL_PENDING
10 ALL
11 Reserved
Protocol State — protocol related variable: vPOC!State. This field indicates the state of the
protocol.
000 POC:default config
001 POC:config
PROTSTATE 010 POC:wakeup
011 POC:ready
100 POC:normal passive
101 POC:normal active
110 POC:halt
111 POC:startup
Startup State — protocol related variable: vPOC!StartupState. This field indicates the current
substate of the startup procedure.
0000 Reserved
0001 Reserved
0010 POC:coldstart collision resolution
0011 POC:coldstart listen
0100 POC:integration consistency check
0101 POC:integrationi listen
STARTUP 0110 Reserved
STATE 0111 POC:initialize schedule
1000 Reserved
1001 Reserved
1010 POC:coldstart consistency check
1011 Reserved
1100 Reserved
1101 POC:integration coldstart check
1110 POC:coldstart gap
1111 POC:coldstart join
Wakeup Status — protocol related variable: vPOC!WakeupStatus. This field provides the outcome
of the execution of the wakeup mechanism.
000 UNDEFINED
001 RECEIVED_HEADER
WAKEUP 010 RECEIVED_WUP
STATUS 011 COLLISION_HEADER
100 COLLISION_WUP
101 COLLISION_UNKNOWN
110 TRANSMITTED
111 Reserved
HHR
CPN
CSP
FRZ
R 0 REMCSAT APTAC
W w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Cold Start Attempt Aborted Flag — protocol related event: ‘set coldstart abort indicator in CHI’
This flag is set when the CC has aborted a cold start attempt.
CSAA
0 No such event
1 Cold start attempt aborted
Leading Cold Start Path — This status bit is set when the CC has reached the POC:normal active
state via the leading cold start path. This indicates that this node has started the network
CSP
0 No such event
1 POC:normal active reached from POC:startup state via leading cold start path
Remaining Coldstart Attempts — protocol related variable: vRemainingColdstartAttempts
REMCSAT
This field provides the number of remaining cold start attempts that the CC will execute.
Leading Cold Start Path Noise — protocol related variable: vPOC!ColdstartNoise
This status bit is set if the CC has reached the POC:normal active state via the leading cold start path
under noise conditions. This indicates there was some activity on the FlexRay bus while the CC was
CPN starting up the cluster.
0 No such event
1 POC:normal active state was reached from POC:startup state via noisy leading cold start path
Host Halt Request Pending — protocol related variable: vPOC!CHIHaltRequest
This status bit is set when CC receives the HALT command from the application via the Protocol
Operation Control Register (FR_POCR). The CC clears this status bit after a hard reset condition or
HHR
when the protocol is in the POC:default config state.
0 No such event
1 HALT command received
Freeze Occurred — protocol related variable: vPOC!Freeze
This status bit is set when the CC has reached the POC:halt state due to the host FREEZE
command or due to an internal error condition requiring immediate halt. The CC clears this status bit
FRZ after a hard reset condition or when the protocol is in the POC:default config state.
0 No such event
1 Immediate halt due to FREEZE or internal error condition
Allow Passive to Active Counter — protocol related variable: vPOC!vAllowPassivetoActive
This field provides the number of consecutive even/odd communication cycle pairs that have passed
APTAC with valid rate and offset correction terms, but the protocol is still in the POC:normal passive state
due to an application configured delay to enter POC:normal active state. This delay is defined by the
allow_passive_to_active field in the Protocol Configuration Register 12 (FR_PCR12).
NSEB
NSEA
SBVB
SSEB
SSEA
STCB
STCA
NBVA
SBVA
MTB
MTA
R CLKCORRFAILCNT
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides a snapshot of status information about the Network Idle Time NIT, the
Symbol Window and the clock synchronization. The NIT related status bits NBVB, NSEB,
NBVA, and NSEA are updated by the CC after the end of the NIT and before the end of the
first slot of the next communication cycle. The Symbol Window related status bits STCB,
SBVB, SSEB, MTB, STCA, SBVA, SSEB, and MTA are updated by the CC after the end of
the symbol window and before the end of the current communication cycle. If no symbol
window is configured, the symbol window related status bits remain in their reset state. The
clock synchronization related CLKCORRFAILCNT is updated by the CC after the end of the
static segment and before the end of the current communication cycle.
NIT Boundary Violation on Channel B — protocol related variable: vSS!BViolation for NIT on
channel B
This status bit is set when there was some media activity on the FlexRay bus channel B at the end of
NBVB
the NIT.
0 No such event
1 Media activity at boundaries detected
NIT Syntax Error on Channel B — protocol related variable: vSS!SyntaxError for NIT on channel B
This status bit is set when a syntax error was detected during NIT on channel B.
NSEB
0 No such event
1 Syntax error detected
Symbol Window Transmit Conflict on Channel B — protocol related variable: vSS!TxConflict for
symbol window on channel B
STCB This status bit is set if there was a transmission conflict during the symbol window on channel B.
0 No such event
1 Transmission conflict detected
Symbol Window Boundary Violation on Channel B — protocol related variable: vSS!BViolation for
symbol window on channel B
This status bit is set if there was some media activity on the FlexRay bus channel B at the start or at
SBVB
the end of the symbol window.
0 No such event
1 Media activity at boundaries detected
Symbol Window Syntax Error on Channel B — protocol related variable: vSS!SyntaxError for
symbol window on channel B
SSEB This status bit is set when a syntax error was detected during the symbol window on channel B.
0 No such event
1 Syntax error detected
Media Access Test Symbol MTS Received on Channel B — protocol related variable:
vSS!ValidMTS for Symbol Window on channel B
This status bit is set if the Media Access Test Symbol MTS was received in the symbol window on
MTB
channel B.
0 No such event
1 MTS symbol received
NIT Boundary Violation on Channel A — protocol related variable: vSS!BViolation for NIT on
channel A
This status bit is set when there was some media activity on the FlexRay bus channel A at the end of
NBVA the NIT.
0 No such event
1 Media activity at boundaries detected
NIT Syntax Error on Channel A — protocol related variable: vSS!SyntaxError for NIT on channel A
This status bit is set when a syntax error was detected during NIT on channel A.
NSEA
0 No such event
1 Syntax error detected
Symbol Window Transmit Conflict on Channel A — protocol related variable: vSS!TxConflict for
symbol window on channel A
STCA This status bit is set if there was a transmission conflicts during the symbol window on channel A.
0 No such event
1 Transmission conflict detected
Symbol Window Boundary Violation on Channel A — protocol related variable: vSS!BViolation for
symbol window on channel A
This status bit is set if there was some media activity on the FlexRay bus channel A at the start or at
SBVA the end of the symbol window.
0 No such event
1 Media activity at boundaries detected
Symbol Window Syntax Error on Channel A — protocol related variable: vSS!SyntaxError for
symbol window on channel A
SSEA This status bit is set when a syntax error was detected during the symbol window on channel A.
0 No such event
1 Syntax error detected
Media Access Test Symbol MTS Received on Channel A — protocol related variable:
vSS!ValidMTS for symbol window on channel A
This status bit is set if the Media Access Test Symbol MTS was received in the symbol window on
MTA channel A.
1 MTS symbol received
0 No such event
Clock Correction Failed Counter — protocol related variable: vClockCorrectionFailed
This field provides the number of consecutive even/odd communication cycle pairs that have passed
without clock synchronization having performed an offset or a rate correction due to lack of
CLKCORR- synchronization frames. It is not incremented when it has reached the configured value of either
FAILCNT max_without_clock_correction_fatal or max_without_clock_correction_passive as defined in the
Protocol Configuration Register 8 (FR_PCR8). The CC resets this counter on a hard reset condition,
when the protocol enters the POC:normal active state, or when both the rate and offset correction
terms have been calculated successfully.
ACEB
AACA
ACEA
ABVB
ASEB
ASEA
ABVA
AVFB
AVFA
WUB
WUA
R 0 0 0 0
W w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c w1c
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
transmission or subscribed for reception. It provides accrued information for the symbol
window, the NIT, and the wakeup status.
Wakeup Symbol Received on Channel B — This flag is set when a wakeup symbol was received
on channel B.
WUB
0 No wakeup symbol received
1 Wakeup symbol received
Aggregated Boundary Violation on Channel B — This flag is set when a boundary violation has
been detected on channel B. Boundary violations are detected in the communication slots, the
ABVB symbol window, and the NIT.
0 No boundary violation detected
1 Boundary violation detected
Aggregated Additional Communication on Channel B — This flag is set when at least one valid
frame was received on channel B in a slot that also contained an additional communication with either
AACB syntax error, content error, or boundary violations.
0 No additional communication detected
1 Additional communication detected
Aggregated Content Error on Channel B — This flag is set when a content error has been detected
on channel B. Content errors are detected in the communication slots, the symbol window, and the
ACEB NIT.
0 No content error detected
1 Content error detected
Aggregated Syntax Error on Channel B — This flag is set when a syntax error has been detected
on channel B. Syntax errors are detected in the communication slots, the symbol window and the NIT.
ASEB
0 No syntax error detected
1 Syntax errors detected
Aggregated Valid Frame on Channel B — This flag is set when a syntactically correct valid frame
has been received in any static or dynamic slot through channel B.
AVFB
1 At least one syntactically valid frame received
0 No syntactically valid frames received
Wakeup Symbol Received on Channel A — This flag is set when a wakeup symbol was received
on channel A.
WUA
0 No wakeup symbol received
1 Wakeup symbol received
Aggregated Boundary Violation on Channel A — This flag is set when a boundary violation has
been detected on channel A. Boundary violations are detected in the communication slots, the
ABVA symbol window, and the NIT.
0 No boundary violation detected
1 Boundary violation detected
Aggregated Additional Communication on Channel A — This flag is set when a valid frame was
received in a slot on channel A that also contained an additional communication with either syntax
AACA error, content error, or boundary violations.
0 No additional communication detected
1 Additional communication detected
Aggregated Content Error on Channel A — This flag is set when a content error has been detected
on channel A. Content errors are detected in the communication slots, the symbol window, and the
ACEA NIT.
0 No content error detected
1 Content error detected
Aggregated Syntax Error on Channel A — This flag is set when a syntax error has been detected
on channel A. Syntax errors are detected in the communication slots, the symbol window, and the
ASEA NIT.
0 No syntax error detected
1 Syntax errors detected
Aggregated Valid Frame on Channel A — This flag is set when a syntactically correct valid frame
has been received in any static or dynamic slot through channel A.
AVFA
0 No syntactically valid frames received
1 At least one syntactically valid frame received
This register provides the macrotick count of the current communication cycle.
This register provides the number of the current slot in the current communication cycle for
channel A.
Slot Counter Value for Channel A — protocol related variable: vSlotCounter for channel A
SLOTCNTA
This field provides the number of the current slot in the current communication cycle.
This register provides the number of the current slot in the current communication cycle for
channel B.
Slot Counter Value for Channel B — protocol related variable: vSlotCounter for channel B
SLOTCNTA
This field provides the number of the current slot in the current communication cycle.
This register provides the sign extended rate correction value in microticks as it was
calculated by the clock synchronization algorithm. The CC updates this register during the
NIT of each odd numbered communication cycle.
Rate Correction Value — protocol related variable: vRateCorrection (before value limitation and
external rate correction)
This field provides the sign extended rate correction value in microticks as it was calculated by the
clock synchronization algorithm. The value is represented in 2’s complement format. This value does
not include the value limitation and the application of the external rate correction. If the magnitude of
RATECORR
the internally calculated rate correction value exceeds the limit given by rate_correction_out in the
Protocol Configuration Register 13 (FR_PCR13), the clock correction reached limit interrupt flag
CCL_IF is set in the Protocol Interrupt Flag Register 0 (FR_PIFR0).
If the CC was not able to calculate a new rate correction term due to a lack of synchronization frames, the
RATECORR value is not updated.
This register provides the sign extended offset correction value in microticks as it was
calculated by the clock synchronization algorithm. The CC updates this register during the
NIT.
Offset Correction Value — protocol related variable: vOffsetCorrection (before value limitation
and external offset correction)
This field provides the sign extended offset correction value in microticks as it was calculated by
the clock synchronization algorithm. The value is represented in 2’s complement format. This
value does not include the value limitation and the application of the external offset correction. If
OFFSETCORR the magnitude of the internally calculated rate correction value exceeds the limit given by
offset_correction_out field in the Protocol Configuration Register 29 (FR_PCR29), the clock
correction reached limit interrupt flag CCL_IF is set in the Protocol Interrupt Flag Register 0
(FR_PIFR0).
If the CC was not able to calculate an new offset correction term due to a lack of synchronization
frames, the OFFSETCORR value is not updated.
FAFBIF
FAFAIF
WUPIF
CHIF
PRIF
RBIF
TBIF
MIF
R 0 0 0 0 0 0 0 0
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides five combined interrupt flags and a copy of three individual interrupt
flags. The combined interrupt flags are the result of a binary OR of the values of other
interrupt flags regardless of the state of the interrupt enable bits. The generation scheme for
the combined interrupt flags is depicted in Figure 988. The individual interrupt flags WUPIF,
FAFBIF, and FAFAIF are copies of corresponding flags in the Global Interrupt Flag and
Enable Register (FR_GIFER) and are provided here to simplify the application interrupt flag
check. To clear the individual interrupt flags, the application must use the Global Interrupt
Flag and Enable Register (FR_GIFER).
Note: The meanings of the combined status bits MIF, PRIF, CHIF, RBIF, and TBIF are different
from those mentioned in the Global Interrupt Flag and Enable Register (FR_GIFER).
Module Interrupt Flag — This flag is set if there is at least one interrupt source that has its interrupt
flag asserted.
MIF
0 No interrupt source has its interrupt flag asserted
1 At least one interrupt source has its interrupt flag asserted
Protocol Interrupt Flag — This flag is set if at least one of the individual protocol interrupt flags in
the Protocol Interrupt Flag Register 0 (FR_PIFR0) or Protocol Interrupt Flag Register 1 (FR_PIFR1) is
PRIF equal to 1.
0 All individual protocol interrupt flags are equal to 0
1 At least one of the individual protocol interrupt flags is equal to 1
CHI Interrupt Flag — This flag is set if at least one of the individual CHI error flags in the CHI Error
Flag Register (FR_CHIERFR) is equal to 1.
CHIF
0 All CHI error flags are equal to 0
1 At least one CHI error flag is equal to 1
WUPIF Wakeup Interrupt Flag — Provides the same value as FR_GIFER[WUPIF]
Receive FIFO Channel B Almost Full Interrupt Flag — Provides the same value as
FAFBIF
FR_GIFER[FAFBIF]
Receive FIFO Channel A Almost Full Interrupt Flag — Provides the same value as
FAFAIF
FR_GIFER[FAFAIF]
Receive Message Buffer Interrupt Flag — This flag is set if for at least one of the individual receive
message buffers (FR_MBCCSRn[MTD] = 0) the interrupt flag MBIF in the corresponding Message
RBIF Buffer Configuration, Control, Status Registers (FR_MBCCSRn) is equal to 1.
0 None of the individual receive message buffers has the MBIF flag asserted.
1 At least one individual receive message buffers has the MBIF flag asserted.
Transmit Message Buffer Interrupt Flag — This flag is set if for at least one of the individual single
or double transmit message buffers (FR_MBCCSRn[MTD] = 1) the interrupt flag MBIF in the
corresponding Message Buffer Configuration, Control, Status Registers (FR_MBCCSRn) is equal to
TBIF
1.
0 None of the individual transmit message buffers has the MBIF flag asserted.
1 At least one individual transmit message buffers has the MBIF flag asserted.
System Memory Access Time-Out — This value defines when a system bus access timeout is
TIMEOUT detected. For a detailed description see Section , Configure System Memory Access Time-Out
Register (FR_SYMATOR) and Section , System bus access timeout.
This register provides the number of synchronization frames that are used for clock
synchronization in the last even and in the last odd numbered communication cycle. This
register is updated after the start of the NIT and before 10 MT after offset correction start.
Note: If the application has locked the even synchronization table at the end of the static segment
of an even communication cycle, the CC will not update the fields SFEVB and SFEVA.
If the application has locked the odd synchronization table at the end of the static segment
of an odd communication cycle, the CC will not update the values SFODB and SFODA.
This register defines the FlexRay memory area related offset for sync frame tables. For
more details, see Section 33.6.12, Sync frame ID and sync frame deviation tables.
Sync Frame Table Offset — The offset of the Sync Frame Tables in the FlexRay memory area.
SFT_OFFSET
This offset is required to be 16-bit aligned. Thus STF_OFFSET[0] is always 0.
Figure 861. Sync Frame Table Configuration, Control, Status Register (FR_SFTCCSR)
Base + 0x0044 Write: Normal Mode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
OLKS
OVAL
ELKS
EVAL
R 0 0 CYCNUM 0 0
SDVEN
SIDEN
OLKT
ELKT
W OPT
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register provides configuration, control, and status information related to the generation
and access of the clock sync ID tables and clock sync measurement tables. For a detailed
description, see Section 33.6.12, Sync frame ID and sync frame deviation tables.
Even Cycle Tables Lock/Unlock Trigger — This trigger bit is used to lock and unlock the even
cycle tables.
ELKT
0 No effect
1 Triggers lock/unlock of the even cycle tables.
Odd Cycle Tables Lock/Unlock Trigger — This trigger bit is used to lock and unlock the odd
cycle tables.
OLKT
0 No effect
1 Triggers lock/unlock of the odd cycle tables.
Cycle Number — This field provides the number of the cycle in which the currently locked table
CYCNUM
was recorded. If none or both tables are locked, this value is related to the even cycle table.
Even Cycle Tables Lock Status — This status bit indicates whether the application has locked
the even cycle tables.
ELKS
0 Application has not locked the even cycle tables.
1 Application has locked the even cycle tables.
Odd Cycle Tables Lock Status — This status bit indicates whether the application has locked the
odd cycle tables.
OLKS
0 Application has not locked the odd cycle tables.
1 Application has locked the odd cycle tables.
Even Cycle Tables Valid — This status bit indicates whether the Sync Frame ID and Sync Frame
Deviation Tables for the even cycle are valid. The CC clears this status bit when it starts updating
EVAL the tables, and sets this bit when it has finished the table update.
0 Tables are not valid (update is ongoing)
1 Tables are valid (consistent).
Odd Cycle Tables Valid — This status bit indicates whether the Sync Frame ID and Sync Frame
Deviation Tables for the odd cycle are valid. The CC clears this status bit when it starts updating
OVAL the tables, and sets this bit when it has finished the table update.
0 Tables are not valid (update is ongoing)
1 Tables are valid (consistent).
One Pair Trigger — This trigger bit controls whether the CC writes continuously or only one pair
of Sync Frame Tables into the FlexRay memory area.
If this trigger is set to 1 while SDVEN or SIDEN is set to 1, the CC writes only one pair of the
enabled Sync Frame Tables corresponding to the next even-odd-cycle pair into the FlexRay
OPT memory area. In this case, the CC clears the SDVEN or SIDEN bits immediately.
If this trigger is set to 0 while SDVEN or SIDEN is set to 1, the CC writes continuously the enabled
Sync Frame Tables into the FlexRay memory area.
0 Write continuously pairs of enabled Sync Frame Tables into FlexRay memory area.
1 Write only one pair of enabled Sync Frame Tables into FlexRay memory area.
Sync Frame Deviation Table Enable — This bit controls the generation of the Sync Frame
Deviation Tables. The application must set this bit to request the CC to write the Sync Frame
Deviation Tables into the FlexRay memory area.
SDVEN 0 Do not write Sync Frame Deviation Tables
1 Write Sync Frame Deviation Tables into FlexRay memory area
If SDVEN is set to 1, then SIDEN must also be set to 1.
Sync Frame ID Table Enable — This bit controls the generation of the Sync Frame ID Tables.
The application must set this bit to 1 to request the CC to write the Sync Frame ID Tables into the
SIDEN FlexRay memory area.
0 Do not write Sync Frame ID Tables
1 Write Sync Frame ID Tables into FlexRay memory area
This register defines the Sync Frame Rejection Filter ID. The application must update this
register outside of the static segment. If the application updates this register in the static
segment, it can appear that the CC accepts the sync frame in the current cycle.
Sync Frame Rejection ID — This field defines the frame ID of a frame that must not be used for
SYNFRID
clock synchronization. For details see Section , Sync frame rejection filtering.
This register defines the sync frame acceptance filter value. For details on filtering, see
Section 33.6.15, Sync frame filtering.
FVAL Filter Value — This field defines the value for the sync frame acceptance filtering.
This register defines the sync frame acceptance filter mask. For details on filtering see
Section , Sync frame acceptance filtering.
Each of these six registers holds one part of the Network Management Vector. The length of
the Network Management Vector is configured in the Network Management Vector Length
Register (FR_NMVLR). If FR_NMVLR is programmed with a value that is less than 12
bytes, the remaining bytes of the Network Management Vector Registers (FR_NMVR0–
FR_NMVR5), which are not used for the Network Management Vector accumulating, will
remain 0.
The NMVR provides accrued information over all received NMVs in the last communication
cycle. All NMVs received in one cycle are ORed into the NMVR. The NMVR is updated at
the end of the communication cycle.
Network Management Vector Part — The mapping between the Network Management Vector
NMVP Registers (FR_NMVR0–FR_NMVR5) and the receive message buffer payload bytes in NMV[0:11] is
depicted in Table 827.
FR_NMVR0[NMVP[15:8]] NMV0
FR_NMVR0[NMVP[7:0]] NMV1
FR_NMVR1[NMVP[15:8]] NMV2
FR_NMVR1[NMVP[7:0]] NMV3
...
FR_NMVR5[NMVP[15:8]] NMV10
FR_NMVR5[NMVP[7:0]] NMV11
This register defines the length of the network management vector in bytes.
T2ST
T1ST
R 0 0 0 0 0 0 0 0 0 0 0
T2_CFG
T2_REP
T1_REP
T2SP
T1SP
T2TR
T1TR
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
This register is used to configure and control the two timers T1 and T2. For timer details,
see Section 33.6.17, Timer support. The Timer T1 is an absolute timer. The Timer T2 can be
configured as an absolute or relative timer.
Timer T2 Configuration — This bit configures the timebase mode of Timer T2.
T2_CFG 0 T2 is absolute timer.
1 T2 is relative timer.
Timer T2 Repetitive Mode — This bit configures the repetition mode of Timer T2.
T2_REP 0 T2 is non repetitive
1 T2 is repetitive
Timer T2 Stop — This trigger bit is used to stop timer T2.
T2SP 0 no effect
1 stop timer T2
Timer T2 Trigger — This trigger bit is used to start timer T2.
T2TR 0 no effect
1 start timer T2
Timer T2 State — This status bit provides the current state of timer T2.
T2ST 0 timer T2 is idle
1 timer T2 is running
Timer T1 Repetitive Mode — This bit configures the repetition mode of timer T1.
T1_REP 0 T1 is non repetitive
1 T1 is repetitive
Timer T1 Stop — This trigger bit is used to stop timer T1.
T1SP 0 no effect
1 stop timer T1
Timer T1 Trigger — This trigger bit is used to start timer T1.
T1TR 0 no effect
1 start timer T1
Timer T1 State — This status bit provides the current state of timer T1.
T1ST 0 timer T1 is idle
1 timer T1 is running
Note: Both timers are deactivated immediately when the protocol enters a state different from
POC:normal active or POC:normal passive.
This register defines the cycle filter value and the cycle filter mask for timer T1. For a
detailed description of timer T1, refer to Section , Absolute timer T1.
T1_CYC_VAL Timer T1 Cycle Filter Value — This field defines the cycle filter value for timer T1.
T1_CYC_MSK Timer T1 Cycle Filter Mask — This field defines the cycle filter mask for timer T1.
Note: If the application modifies the value in this register while the timer is running, the change
becomes effective immediately and timer T1 will expire according to the changed value.
This register holds the macrotick offset value for timer T1. For a detailed description of timer
T1, refer to Section , Absolute timer T1.
T1_MTOFFSET Timer 1 Macrotick Offset — This field defines the macrotick offset value for timer 1.
Note: If the application modifies the value in this register while the timer is running, the change
becomes effective immediately and timer T1 will expire according to the changed value.
The content of this register depends on the value of the T2_CFG bit in the Timer
Configuration and Control Register (FR_TICCR). For a detailed description of timer T2, refer
to Section , Absolute / Relative timer T2.
Note: If timer T2 is configured as an absolute timer and the application modifies the values in this
register while the timer is running, the change becomes effective immediately and timer T2
will expire according to the changed values.
If timer T2 is configured as a relative timer and the application changes the values in this
register while the timer is running, the change becomes effective when the timer has expired
according to the old values.
The content of this register depends on the value of the T2_CFG bit in the Timer
Configuration and Control Register (FR_TICCR). For a detailed description of timer T2, refer
to Section , Absolute / Relative timer T2.
Note: If timer T2 is configured as an absolute timer and the application modifies the values in this
register while the timer is running, the change becomes effective immediately and the timer
T2 will expire according to the changed values.
If timer T2 is configured as a relative timer and the application changes the values in this
register while the timer is running, the change becomes effective when the timer has expired
according to the old values.
This register is used to access the four internal non memory-mapped slot status selection
registers FR_SSSR0 to FR_SSSR3. Each internal registers selects a slot, or symbol
window/NIT, whose status vector will be saved in the corresponding Slot Status Registers
(FR_SSR0–FR_SSR7) according to Table 835. For a detailed description of slot status
monitoring, refer to Section 33.6.18, Slot status monitoring.
Note: Slot status information of the message buffers should not be used when any one of the the
error flags FR_CHIERFR[SBCF_EF] or FR_CHIERFR[ILSA_EF] is set.
Write Mode — This control bit defines the write mode of this register.
WMD 0 Write to all fields in this register on write access.
1 Write to SEL field only on write access.
Selector — This field selects one of the four internal slot status selection registers for access.
00 select FR_SSSR0.
SEL 01 select FR_SSSR1.
10 select FR_SSSR2.
11 select FR_SSSR3.
Slot Number — This field specifies the number of the slot whose status will be saved in the
corresponding slot status registers.
SLOTNUMBER
If this value is set to 0, the related slot status register provides the status of the symbol window after the
NIT start, and provides the status of the NIT after the cycle start.
This register is used to access and program the four internal non-memory mapped Slot
Status Counter Condition Registers FR_SSCCR0 to FR_SSCCR3. Each of these four
internal slot status counter condition registers defines the mode and the conditions for
incrementing the counter in the corresponding Slot Status Counter Registers (FR_SSCR0–
FR_SSCR3). The correspondence is given in Table 837. For a detailed description of slot
status counters, refer to Section , Slot status counter registers.
Write Mode — This control bit defines the write mode of this register.
WMD 0 Write to all fields in this register on write access.
1 Write to SEL field only on write access.
Selector — This field selects one of the four internal slot counter condition registers for access.
00 select FR_SSCCR0.
SEL 01 select FR_SSCCR1.
10 select FR_SSCCR2.
11 select FR_SSCCR3.
Counter Configuration — These bit field controls the channel related incrementing of the slot
status counter.
00 increment by 1 if condition is fulfilled on channel A.
CNTCFG 01 increment by 1 if condition is fulfilled on channel B.
10 increment by 1 if condition is fulfilled on at least one channel.
11 increment by 2 if condition is fulfilled on both channels channel.
increment by 1 if condition is fulfilled on only one channel.
Multi Cycle Selection — This bit defines whether the slot status counter accumulates over multiple
communication cycles or provides information for the previous communication cycle only.
MCY
0 The Slot Status Counter provides information for the previous communication cycle only.
1 The Slot Status Counter accumulates over multiple communication cycles.
Valid Frame Restriction — This bit is used to restrict the counter to received valid frames.
VFR 0 The counter is not restricted to valid frames only.
1 The counter is restricted to valid frames only.
Sync Frame Restriction — This bit is used to restrict the counter to received frames with the sync
frame indicator bit set to 1.
SYF
0 The counter is not restricted with respect to the sync frame indicator bit.
1 The counter is restricted to frames with the sync frame indicator bit set to 1.
Null Frame Restriction — This bit is used to restrict the counter to received frames with the null
frame indicator bit set to 0.
NUF
0 The counter is not restricted with respect to the null frame indicator bit.
1 The counter is restricted to frames with the null frame indicator bit set to 0.
Startup Frame Restriction — This bit is used to restrict the counter to received frames with the
startup frame indicator bit set to 1.
SUF
0 The counter is not restricted with respect to the startup frame indicator bit.
1 The counter is restricted to received frames with the startup frame indicator bit set to 1.
Slot Status Mask — This bit field is used to enable the counter with respect to the four slot status
error indicator bits.
STATUSMASK[3] – This bit enables the counting for slots with the syntax error indicator bit set to 1.
STATUSMASK[2] – This bit enables the counting for slots with the content error indicator bit set to
STATUS
1.
MASK[3:0]
STATUSMASK[1] – This bit enables the counting for slots with the boundary violation indicator bit
set to 1.
STATUSMASK[0] – This bit enables the counting for slots with the transmission conflict indicator bit
set to 1.
FR_SSCCR0 FR_SSCR0
FR_SSCCR1 FR_SSCR1
FR_SSCCR2 FR_SSCR2
FR_SSCCR3 FR_SSCR3
Each of these eight registers holds the status vector of the slot specified in the
corresponding internal slot status selection register, which can be programmed using the
Slot Status Selection Register (FR_SSSR). Each register is updated after the end of the
corresponding slot as shown in Figure 984. The register bits are directly related to the
protocol variables and described in more detail in Section 33.6.18, Slot status monitoring.
Each of these four registers provides the slot status counter value for the previous
communication cycle(s) and is updated at the cycle start. The provided value depends on
the control bits and fields in the related internal slot status counter condition register
FR_SSCCRn, which can be programmed by using the Slot Status Counter Condition
Register (FR_SSCCR). For more details, see Section , Slot status counter registers.
Note: If the counter has reached its maximum value 0xFFFF and is in the multicycle mode, that is,
FR_SSCCRn[MCY] = 1, the counter is not reset to 0x0000. The application can reset the
counter by clearing the FR_SSCCRn[MCY] bit and waiting for the next cycle start, when the
CC clears the counter. Subsequently, the counter can be set into the multicycle mode again.
SLOTSTATUSCNT Slot Status Counter — This field provides the current value of the Slot Status Counter.
This register controls the transmission of the Media Access Test Symbol MTS on channel A.
For more details, see Section 33.6.13, MTS generation.
Media Access Test Symbol Transmission Enable — This control bit is used to enable and
disable the transmission of the Media Access Test Symbol in the selected set of cycles.
MTE
0 MTS transmission disabled
1 MTS transmission enabled
CYCCNTMSK Cycle Counter Mask — This field provides the filter mask for the MTS cycle count filter.
CYCCNTVAL Cycle Counter Value — This field provides the filter value for the MTS cycle count filter.
This register controls the transmission of the Media Access Test Symbol MTS on channel B.
For more details, see Section 33.6.13, MTS generation.
Media Access Test Symbol Transmission Enable — This control bit is used to enable and
disable the transmission of the Media Access Test Symbol in the selected set of cycles.
MTE
0 MTS transmission disabled
1 MTS transmission enabled
CYCCNTMSK Cycle Counter Mask — This field provides the filter mask for the MTS cycle count filter.
CYCCNTVAL Cycle Counter Value — This field provides the filter value for the MTS cycle count filter.
This register is used to provide and retrieve the indices of the message buffer header fields
currently associated with the receive shadow buffers. For more details on the receive
shadow buffer concept, refer to Section , Receive shadow buffers concept.
Write Mode — This bit controls the write mode for this register.
WMD 0 update SEL and RSBIDX field on register write
1 update only SEL field on register write
Selector — This field is used to select the internal receive shadow buffer index register for access.
00 FR_RSBIR_A1 — receive shadow buffer index register for channel A, segment 1
SEL 01 FR_RSBIR_A2 — receive shadow buffer index register for channel A, segment 2
10 FR_RSBIR_B1 — receive shadow buffer index register for channel B, segment 1
11 FR_RSBIR_B2 — receive shadow buffer index register for channel B, segment 2
Receive Shadow Buffer Index — This field contains the current index of the message buffer header
field of the receive shadow message buffer selected by the SEL field. The CC uses this index to
determine the physical location of the shadow buffer header field in the FlexRay memory area. The
RSBIDX CC will update this field during receive operation.The application provides initial message buffer
header index value in the configuration phase.
CC: Updates the message buffer header index after successful reception.
Application: Provides initial message buffer header index.
Figure 879. Receive FIFO System Memory Base Address High Register (FR_RFSYMBADHR)
Base + 0x00E8 Write: Disabled Mode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R
SMBA[31:16]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Figure 880. Receive FIFO System Memory Base Address Low Register (FR_RFSYMBADLR)
Base + 0x00EA Write: Disabled Mode
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0
SMBA[15:4]
W
Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
These registers define the system memory base address for the receive FIFO if the FIFO
address mode bit FR_MCR[FAM] is set to 1. The system memory base address is used by
the BMIF to calculate the physical memory address for system memory accesses for the
FIFOs.
System Memory Base Address — This is the value of the system memory base address for the
SMBA
receive FIFO if the FIFO address mode bit FR_MCR[FAM] is set to 1. It is defines as a byte address.
This register holds periodic timer duration for the periodic FIFO timer. The periodic timer
applies to both FIFOs (see Section , FIFO periodic timer).
Periodic Timer Duration — This value defines the periodic timer duration in terms of macroticks.
0000 timer stays expired
PTD
3FFF timer never expires
other timer expires after specified number of macroticks, expires and is restarted at each cycle start
WMA Watermark — This field defines the watermark value for the selected FIFO. This value is used to
WMB control the generation of the almost full interrupt flags.
Select — This control bit selects the receiver FIFO for subsequent programming.
SEL 0 Receiver FIFO for channel A selected
1 Receiver FIFO for channel B selected
This register defines the message buffer header index of the first message buffer of the
selected FIFO.
SIDXA Start Index — This field defines the number of the message buffer header field of the first message
buffer of the selected FIFO. The CC uses the value of the SIDX field to determine the physical
SIDXB
location of the receiver FIFO’s first message buffer header field.
This register defines the structure of the selected FIFO, that is, the number of entries and
the size of each entry.
FIFO Depth — This field defines the depth of the selected FIFO, that is, the number of entries.
FIFO_DEPTHA
Note: If the FIFO_DEPTH is configured to 0, FR_RFFIDRFMR[FIDRFMSK] must be configured
FIFO_DEPTHB
to 0 too, to ensure that no frames are received into the FIFO.
ENTRY_SIZEA Entry Size — This field defines the size of the frame data sections for the selected FIFO in 2
ENTRY_SIZEB byte entities.
This register provides the message buffer header index of the next available FIFO A entry
that the application can read.