TWIM — I2C compatible two-wire interface controller with EasyDMA

The TWI controller peripheral (TWIM) with EasyDMA provides a half duplex, two-wire synchronous serial communication interface which supports multiple targets in the same bus.

The main features of TWIM are the following:

The two-wire interface can communicate with a bidirectional wired-AND bus with two lines (SCL, SDA). The interface enables interconnecting up to 127 individually addressable devices. TWIM is not compatible with CBUS.

Selecting GPIO pins individually ensures flexibility in device pinout and efficient use of board space and signal routing.

Figure 1. TWIM with EasyDMA
TWI master with EasyDMA (TWIM)

A typical TWIM setup consists of one controller and one or more targets, as illustrated in the following figure. TWIM can only operate as a single controller on the TWI bus. A bus configuration with multiple controllers is not supported.

Figure 2. A typical TWIM setup with one controller and three targets
A typical TWI setup comprising one master and three slaves

TWIM supports clock stretching performed by the targets.

TWIM operation

The FREQUENCY register defines the speed at which data is transmitted over the interface. Enumerators for common frequencies, such as K100 or K400, are provided.

The following formula can be used to calculate arbitrary frequencies. Due to the finite resolution of the clock generator, the actual SCL frequency may vary slightly from the calculated value.
Note: The frequency calculation equation is applicable only within the following SCL frequency ranges:
  • Fast-mode: 90 kHz to 500 kHz
  • Fast-mode plus: 900 kHz to 1100 kHz
Outside of these frequency intervals, the accuracy is not guaranteed.
Figure 3. TWIM frequency
TWIM frequency calculation equation
  • FREQUENCY is the value to be used in the TWIM FREQUENCY register.
  • f_PCLK is the peripheral clock frequency for the TWIM instance, as defined in Instances.
  • desired_frequency is the desired frequency in hertz, such as 100000 or 400000.

TWIM is started by triggering the DMA.TX.START or DMA.RX.START tasks, and stopped by triggering the STOP task. If TWIM is running when the STOP task is triggered, it stops and generates a STOPPED event.

After TWIM starts, the DMA.TX.START and DMA.RX.START tasks must not be triggered again until TWIM has issued a LASTRX, LASTTX, or STOPPED event.

TWIM can be suspended using the SUSPEND task, which is useful when using TWIM in a low priority interrupt context. When TWIM enters the SUSPEND state, it will automatically issue a SUSPENDED event while performing a continuous clock stretching. This continues until a RESUME task is received. TWIM cannot be stopped while it is suspended. The STOP task must be issued after TWIM resumes operation.

Note: Any ongoing byte transfer is allowed to complete before suspend is enforced. A SUSPEND task has no effect unless TWIM is actively involved in a transfer.

If a NACK is clocked in from the target, TWIM generates an ERROR event.

Shared resources

The TWIM peripheral shares registers and other resources with peripherals that have the same ID as TWIM. Therefore, all peripherals that have the same ID as TWIM must be disabled before TWIM can be configured and used.

Disabling shared peripherals will not reset any of the registers that are shared with TWIM. Configure all relevant TWIM registers to ensure they operate correctly.

See the Instantiation table in Instantiation for details on peripherals and their IDs.

EasyDMA

EasyDMA is implemented by TWIM in order to access RAM without the CPU.

TWIM implements the following EasyDMA channels.
Table 1. TWIM EasyDMA channels
ChannelTypeRegister Cluster
TXDREADERTXD
RXDWRITERRXD

The RXD.PTR, TXD.PTR, RXD.MAXCNT, and TXD.MAXCNT registers are double-buffered. They are ready for the next transmission immediately after receiving the EVENTS_DMA.RX.READY or EVENTS_DMA.TX.READY event.

The STOPPED event indicates that EasyDMA is finished accessing the buffer in RAM.

See EasyDMA for more detailed information.

TWIM write sequence

A TWIM write sequence is started by triggering the DMA.TX.START task. After the DMA.TX.START task has been triggered, TWIM generates a start condition on the TWI bus. This is followed by clocking out the address and the READ/WRITE bit set to 0 (WRITE = 0, READ = 1).

The target device address the controller wants to write to must match the clocked address. The READ/WRITE bit is followed by an ACK/NACK bit (ACK = 0 or NACK = 1) generated by the target.

After receiving the ACK bit, TWIM clocks out the data bytes found in the transmit buffer located in RAM at the address specified in the TXD.PTR register. Each byte clocked out from TWIM is followed by an ACK/NACK bit clocked in from the target.

A typical TWIM write sequence including clock stretching performed by TWIM following a SUSPEND task is shown in the following figure.

Figure 4. TWIM writing data to a target
TWIM writing data to a slave

A SUSPENDED event indicates that the SUSPEND task has taken effect.

TWIM will generate a LASTTX event when it starts to transmit the last byte.

TWIM is stopped by triggering the STOP task. To stop TWIM as fast as possible, trigger the task during the transmission of the last byte. The shortcut between LASTTX and STOP can also be used to accomplish this.

TWIM does not stop on its own when the entire RAM buffer has been sent or when an error occurs. The STOP task must be issued, either through the local or PPI shortcut, or in software as part of the error handler.

TWIM read sequence

A TWIM read sequence is started by triggering the DMA.RX.START task. After the DMA.RX.START task has been triggered, TWIM generates a start condition on the TWI bus. This is followed by clocking out the address and the READ/WRITE bit set to 1 (WRITE = 0, READ = 1). The address must match the address of the target device that the controller wants to read from. The READ/WRITE bit is followed by an ACK/NACK bit (ACK = 0 or NACK = 1) generated by the target.

After sending the ACK bit, the TWI target sends data to the controller using the clock generated by TWIM.

Data received will be stored in RAM at the address specified in the RXD.PTR register. TWIM will generate an ACK before the last byte is received from the target. TWIM generates a NACK after the last byte received to indicate that the read sequence will stop.

A typical TWIM read sequence is illustrated in the following figure, including clock stretching performed by TWIM following a SUSPEND task.

Figure 5. TWIM reading data from a target
TWIM reading data from a slave

A SUSPENDED event indicates that the SUSPEND task has taken effect. This event can be used to synchronize the software.

TWIM generates a LASTRX event when it is ready to receive the last byte. If RXD.MAXCNT > 1, the LASTRX event is generated after sending the ACK of the previously received byte. If RXD.MAXCNT = 1, the LASTRX event is generated after receiving the ACK following the address and READ bit.

TWIM is stopped by triggering the STOP task. This task must be triggered before the NACK bit begins transmission. The STOP task can be triggered at any time during the reception of the last byte. It is recommended to use the shortcut between LASTRX and STOP.

TWIM does not stop on its own when the RAM buffer is full or when an error occurs. The STOP task must be issued, either through a local or PPI shortcut, or in software as part of the error handler.

TWIM cannot be stopped while suspended. The STOP task must be issued after TWIM has been resumed.

TWIM repeated start sequence

A typical repeated start sequence is when TWIM writes two bytes to the target followed by reading four bytes from the target. This example uses shortcuts to perform a simple repeated start sequence, with one write followed by one read. The same approach can be used to perform a repeated start sequence where the sequence is read followed by a write.

The following figure shows an example of a repeated start sequence where TWIM writes two bytes followed by reading four bytes from the target.

Figure 6. Controller repeated start sequence
Master repeated start sequence

If a more complex repeated start sequence is needed, and the TWI firmware drive is serviced in a low priority interrupt, use the SUSPEND task and SUSPENDED event to ensure that the correct tasks are generated at the correct time. A double repeated start sequence using the SUSPEND task to secure safe operation in low priority interrupts is shown in the following figure.

Figure 7. Double repeated start sequence
Double repeated start sequence

Low power

When the peripheral is not needed, stop and disable TWIM for lowest possible power consumption.

When the STOP task is sent, the software must wait until the STOPPED event is received before disabling the peripheral through the ENABLE register. If the peripheral is already stopped, the STOP task is not needed.

TWIM pin configuration

The SCL and SDA signals are mapped to physical pins using the PSEL.SCL and PSEL.SDA registers.

These registers and their configurations are only used when TWIM is enabled, and retained while the device is in System ON mode. When the peripheral is disabled, the pins behave as regular GPIOs and are configured according to their respective OUT bit field and PIN_CNF[n] register. Configure registers PSEL.SCL and PSEL.SDA when TWIM is disabled.

Only one peripheral can be assigned to drive a GPIO pin at a time. If more than one peripheral is assigned to a GPIO pin, it could result in unpredictable behavior.

When TWIM is in System OFF mode or disabled, the pins using TWIM must be configured by the GPIO peripheral according to the following table to ensure correct pin behavior.

Table 2. GPIO configuration before enabling peripheral
TWIM signalTWIM pinDrive strengthDirectionOutput value
SCLAs specified in PSEL.SCLS0D1InputNot applicable
SDAAs specified in PSEL.SDAS0D1InputNot applicable

Compare match filter

TWIM has a compare match filter that can watch for a specific sequence of data. This feature is implemented in EasyDMA on the RX channel.

TWIM can generate events or interrupts when the specific data sequence is received. The event EVENTS_DMA.RX.MATCH[n] (n=0..3) is generated when there is a match in the data stream being received. The number of MATCH events can be different for each instance. See Registers for how many MATCH events are implemented per instance.

Register DMA.RX.MATCH.CANDIDATE[n] (n=0..3) configures the pattern for comparison. The filter is enabled with register DMA.RX.MATCH.CONFIG or task TASKS_DMA.RX.ENABLEMATCH[n] (n=0..3).

For detailed information regarding the use of pattern matching in the EasyDMA engine, see .

Pull-up resistor

1000 kbps bit rate is supported when using H0D1 drive strength, 1 kΩ pull-up resistor, and maximum 50 pF bus capacitance. For other bit rates, see the following figure.

Figure 8. Recommended TWIM pull-up value vs. line capacitance
Recommended TWIM pullup value vs. line capacitance
  • The I2C bus specification allows a maximum line capacitance of 400 pF.
  • The value of internal pull-up resistor (RPU) for nRF54LC10A can be found in GPIO Electrical Specification.

Registers

Instances

InstanceDomainBase addressTrustZoneSplit accessDescription
MapAttDMA

TWIM20 : S
TWIM20 : NS

GLOBAL

0x500C6000
0x400C6000

USSSANo

Two-wire interface controller TWIM20

TWIM21 : S
TWIM21 : NS

GLOBAL

0x500C7000
0x400C7000

USSSANo

Two-wire interface controller TWIM21

TWIM30 : S
TWIM30 : NS

GLOBAL

0x50104000
0x40104000

USSSANo

Two-wire interface controller TWIM30

Configuration

InstanceDomainConfiguration

TWIM20 : S
TWIM20 : NS

GLOBAL

Use GPIO port P1

Peripheral clock frequency is 16 MHz.

TWIM21 : S
TWIM21 : NS

GLOBAL

Use GPIO port P1

Peripheral clock frequency is 16 MHz.

TWIM30 : S
TWIM30 : NS

GLOBAL

Use GPIO port P0

Peripheral clock frequency is 16 MHz.

Register overview

RegisterOffsetTZDescription
TASKS_STOP0x004

Stop TWI transaction. Must be issued while the TWI master is not suspended.

TASKS_SUSPEND0x00C

Suspend TWI transaction

TASKS_RESUME0x010

Resume TWI transaction

TASKS_DMA.RX.START0x028

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

TASKS_DMA.RX.STOP0x02C

Stops operation using easyDMA. This does not trigger an END event.

TASKS_DMA.RX.ENABLEMATCH[n]0x030

Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

TASKS_DMA.RX.DISABLEMATCH[n]0x040

Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.

TASKS_DMA.TX.START0x050

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

TASKS_DMA.TX.STOP0x054

Stops operation using easyDMA. This does not trigger an END event.

SUBSCRIBE_STOP0x084

Subscribe configuration for task STOP

SUBSCRIBE_SUSPEND0x08C

Subscribe configuration for task SUSPEND

SUBSCRIBE_RESUME0x090

Subscribe configuration for task RESUME

SUBSCRIBE_DMA.RX.START0x0A8

Subscribe configuration for task START

SUBSCRIBE_DMA.RX.STOP0x0AC

Subscribe configuration for task STOP

SUBSCRIBE_DMA.RX.ENABLEMATCH[n]0x0B0

Subscribe configuration for task ENABLEMATCH[n]

SUBSCRIBE_DMA.RX.DISABLEMATCH[n]0x0C0

Subscribe configuration for task DISABLEMATCH[n]

SUBSCRIBE_DMA.TX.START0x0D0

Subscribe configuration for task START

SUBSCRIBE_DMA.TX.STOP0x0D4

Subscribe configuration for task STOP

EVENTS_STOPPED0x104

TWI stopped

EVENTS_ERROR0x114

TWI error

EVENTS_SUSPENDED0x128

SUSPEND task has been issued, TWI traffic is now suspended.

EVENTS_LASTRX0x134

Byte boundary, starting to receive the last byte

EVENTS_LASTTX0x138

Byte boundary, starting to transmit the last byte

EVENTS_DMA.RX.END0x14C

Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

EVENTS_DMA.RX.READY0x150

Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

EVENTS_DMA.RX.BUSERROR0x154

An error occured during the bus transfer.

EVENTS_DMA.RX.MATCH[n]0x158

Pattern match is detected on the DMA data bus.

EVENTS_DMA.TX.END0x168

Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

EVENTS_DMA.TX.READY0x16C

Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

EVENTS_DMA.TX.BUSERROR0x170

An error occured during the bus transfer.

PUBLISH_STOPPED0x184

Publish configuration for event STOPPED

PUBLISH_ERROR0x194

Publish configuration for event ERROR

PUBLISH_SUSPENDED0x1A8

Publish configuration for event SUSPENDED

PUBLISH_LASTRX0x1B4

Publish configuration for event LASTRX

PUBLISH_LASTTX0x1B8

Publish configuration for event LASTTX

PUBLISH_DMA.RX.END0x1CC

Publish configuration for event END

PUBLISH_DMA.RX.READY0x1D0

Publish configuration for event READY

PUBLISH_DMA.RX.BUSERROR0x1D4

Publish configuration for event BUSERROR

PUBLISH_DMA.RX.MATCH[n]0x1D8

Publish configuration for event MATCH[n]

PUBLISH_DMA.TX.END0x1E8

Publish configuration for event END

PUBLISH_DMA.TX.READY0x1EC

Publish configuration for event READY

PUBLISH_DMA.TX.BUSERROR0x1F0

Publish configuration for event BUSERROR

SHORTS0x200

Shortcuts between local events and tasks

INTEN0x300

Enable or disable interrupt

INTENSET0x304

Enable interrupt

INTENCLR0x308

Disable interrupt

ERRORSRC0x4C4

Error source

ENABLE0x500

Enable TWIM

FREQUENCY0x524

TWI frequency. Accuracy depends on the HFCLK source selected.

ADDRESS0x588

Address used in the TWI transfer

PSEL.SCL0x600

Pin select for SCL signal

PSEL.SDA0x604

Pin select for SDA signal

DMA.RX.PTR0x704

RAM buffer start address

DMA.RX.MAXCNT0x708

Maximum number of bytes in channel buffer

DMA.RX.AMOUNT0x70C

Number of bytes transferred in the last transaction, updated after the END event.

Also updated after each MATCH event.

DMA.RX.LIST0x714

EasyDMA list type

DMA.RX.TERMINATEONBUSERROR0x71C

Terminate the transaction if a BUSERROR event is detected.

DMA.RX.BUSERRORADDRESS0x720

Address of transaction that generated the last BUSERROR event.

DMA.RX.MATCH.CONFIG0x724

Configure individual match events

DMA.RX.MATCH.CANDIDATE[n]0x728

The data to look for - any match will trigger the MATCH[n] event, if enabled.

DMA.TX.PTR0x73C

RAM buffer start address

DMA.TX.MAXCNT0x740

Maximum number of bytes in channel buffer

DMA.TX.AMOUNT0x744

Number of bytes transferred in the last transaction, updated after the END event.

Also updated after each MATCH event.

DMA.TX.LIST0x74C

EasyDMA list type

DMA.TX.TERMINATEONBUSERROR0x754

Terminate the transaction if a BUSERROR event is detected.

DMA.TX.BUSERRORADDRESS0x758

Address of transaction that generated the last BUSERROR event.

TASKS_STOP

Address offset: 0x004

Stop TWI transaction. Must be issued while the TWI master is not suspended.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_STOP

Stop TWI transaction. Must be issued while the TWI master is not suspended.

Trigger

1

Trigger task

TASKS_SUSPEND

Address offset: 0x00C

Suspend TWI transaction

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_SUSPEND

Suspend TWI transaction

Trigger

1

Trigger task

TASKS_RESUME

Address offset: 0x010

Resume TWI transaction

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

TASKS_RESUME

Resume TWI transaction

Trigger

1

Trigger task

TASKS_DMA

Peripheral tasks.

TASKS_DMA.RX

Peripheral tasks.

TASKS_DMA.RX.START

Address offset: 0x028

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

START

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

Trigger

1

Trigger task

TASKS_DMA.RX.STOP

Address offset: 0x02C

Stops operation using easyDMA. This does not trigger an END event.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

STOP

Stops operation using easyDMA. This does not trigger an END event.

Trigger

1

Trigger task

TASKS_DMA.RX.ENABLEMATCH[n]

Address offset: 0x030 + (n × 0x4)

Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

ENABLEMATCH

Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register.

Trigger

1

Trigger task

TASKS_DMA.RX.DISABLEMATCH[n]

Address offset: 0x040 + (n × 0x4)

Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

DISABLEMATCH

Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register.

Trigger

1

Trigger task

TASKS_DMA.TX

Peripheral tasks.

TASKS_DMA.TX.START

Address offset: 0x050

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

START

Starts operation using easyDMA to load the values. See peripheral description for operation using easyDMA.

Trigger

1

Trigger task

TASKS_DMA.TX.STOP

Address offset: 0x054

Stops operation using easyDMA. This does not trigger an END event.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

W

STOP

Stops operation using easyDMA. This does not trigger an END event.

Trigger

1

Trigger task

SUBSCRIBE_STOP

Address offset: 0x084

Subscribe configuration for task STOP

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task STOP will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_SUSPEND

Address offset: 0x08C

Subscribe configuration for task SUSPEND

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task SUSPEND will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_RESUME

Address offset: 0x090

Subscribe configuration for task RESUME

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task RESUME will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_DMA

Subscribe configuration for tasks

SUBSCRIBE_DMA.RX

Subscribe configuration for tasks

SUBSCRIBE_DMA.RX.START

Address offset: 0x0A8

Subscribe configuration for task START

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task START will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_DMA.RX.STOP

Address offset: 0x0AC

Subscribe configuration for task STOP

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task STOP will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_DMA.RX.ENABLEMATCH[n]

Address offset: 0x0B0 + (n × 0x4)

Subscribe configuration for task ENABLEMATCH[n]

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task ENABLEMATCH[n] will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_DMA.RX.DISABLEMATCH[n]

Address offset: 0x0C0 + (n × 0x4)

Subscribe configuration for task DISABLEMATCH[n]

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task DISABLEMATCH[n] will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_DMA.TX

Subscribe configuration for tasks

SUBSCRIBE_DMA.TX.START

Address offset: 0x0D0

Subscribe configuration for task START

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task START will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

SUBSCRIBE_DMA.TX.STOP

Address offset: 0x0D4

Subscribe configuration for task STOP

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that task STOP will subscribe to

B

RW

EN

Disabled

0

Disable subscription

Enabled

1

Enable subscription

EVENTS_STOPPED

Address offset: 0x104

TWI stopped

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_STOPPED

TWI stopped

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_ERROR

Address offset: 0x114

TWI error

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_ERROR

TWI error

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_SUSPENDED

Address offset: 0x128

SUSPEND task has been issued, TWI traffic is now suspended.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_SUSPENDED

SUSPEND task has been issued, TWI traffic is now suspended.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_LASTRX

Address offset: 0x134

Byte boundary, starting to receive the last byte

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_LASTRX

Byte boundary, starting to receive the last byte

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_LASTTX

Address offset: 0x138

Byte boundary, starting to transmit the last byte

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

EVENTS_LASTTX

Byte boundary, starting to transmit the last byte

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA

Peripheral events.

EVENTS_DMA.RX

Peripheral events.

EVENTS_DMA.RX.END

Address offset: 0x14C

Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

END

Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA.RX.READY

Address offset: 0x150

Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

READY

Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA.RX.BUSERROR

Address offset: 0x154

An error occured during the bus transfer.

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

BUSERROR

An error occured during the bus transfer.

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA.RX.MATCH[n]

Address offset: 0x158 + (n × 0x4)

Pattern match is detected on the DMA data bus.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MATCH

Pattern match is detected on the DMA data bus.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA.TX

Peripheral events.

EVENTS_DMA.TX.END

Address offset: 0x168

Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

END

Indicates that the transfer of MAXCNT bytes between memory and the peripheral has been fully completed.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA.TX.READY

Address offset: 0x16C

Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

READY

Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence.

NotGenerated

0

Event not generated

Generated

1

Event generated

EVENTS_DMA.TX.BUSERROR

Address offset: 0x170

An error occured during the bus transfer.

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

BUSERROR

An error occured during the bus transfer.

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

NotGenerated

0

Event not generated

Generated

1

Event generated

PUBLISH_STOPPED

Address offset: 0x184

Publish configuration for event STOPPED

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event STOPPED will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_ERROR

Address offset: 0x194

Publish configuration for event ERROR

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event ERROR will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_SUSPENDED

Address offset: 0x1A8

Publish configuration for event SUSPENDED

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event SUSPENDED will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_LASTRX

Address offset: 0x1B4

Publish configuration for event LASTRX

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event LASTRX will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_LASTTX

Address offset: 0x1B8

Publish configuration for event LASTTX

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event LASTTX will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA

Publish configuration for events

PUBLISH_DMA.RX

Publish configuration for events

PUBLISH_DMA.RX.END

Address offset: 0x1CC

Publish configuration for event END

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event END will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA.RX.READY

Address offset: 0x1D0

Publish configuration for event READY

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event READY will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA.RX.BUSERROR

Address offset: 0x1D4

Publish configuration for event BUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event BUSERROR will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA.RX.MATCH[n]

Address offset: 0x1D8 + (n × 0x4)

Publish configuration for event MATCH[n]

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event MATCH[n] will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA.TX

Publish configuration for events

PUBLISH_DMA.TX.END

Address offset: 0x1E8

Publish configuration for event END

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event END will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA.TX.READY

Address offset: 0x1EC

Publish configuration for event READY

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event READY will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

PUBLISH_DMA.TX.BUSERROR

Address offset: 0x1F0

Publish configuration for event BUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Bit number313029282726252423222120191817161514131211109876543210
IDBAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

CHIDX

[0..255]

DPPI channel that event BUSERROR will publish to

B

RW

EN

Disabled

0

Disable publishing

Enabled

1

Enable publishing

SHORTS

Address offset: 0x200

Shortcuts between local events and tasks

Bit number313029282726252423222120191817161514131211109876543210
IDMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

LASTTX_DMA_RX_START

Shortcut between event LASTTX and task DMA.RX.START

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

B

RW

LASTTX_SUSPEND

Shortcut between event LASTTX and task SUSPEND

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

C

RW

LASTTX_STOP

Shortcut between event LASTTX and task STOP

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

D

RW

LASTRX_DMA_TX_START

Shortcut between event LASTRX and task DMA.TX.START

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

E

RW

LASTRX_STOP

Shortcut between event LASTRX and task STOP

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

F-I

RW

DMA_RX_MATCH[i]_DMA_RX_ENABLEMATCH[(i+1)%4] (i=0..3)

Shortcut between event DMA.RX.MATCH[n] and task DMA.RX.ENABLEMATCH[(i+1)%4]

Allows daisy-chaining match events.

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

J-M

RW

DMA_RX_MATCH[i]_DMA_RX_DISABLEMATCH[i] (i=0..3)

Shortcut between event DMA.RX.MATCH[n] and task DMA.RX.DISABLEMATCH[n]

Disabled

0

Disable shortcut

Enabled

1

Enable shortcut

INTEN

Address offset: 0x300

Enable or disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

STOPPED

Enable or disable interrupt for event STOPPED

Disabled

0

Disable

Enabled

1

Enable

B

RW

ERROR

Enable or disable interrupt for event ERROR

Disabled

0

Disable

Enabled

1

Enable

C

RW

SUSPENDED

Enable or disable interrupt for event SUSPENDED

Disabled

0

Disable

Enabled

1

Enable

D

RW

LASTRX

Enable or disable interrupt for event LASTRX

Disabled

0

Disable

Enabled

1

Enable

E

RW

LASTTX

Enable or disable interrupt for event LASTTX

Disabled

0

Disable

Enabled

1

Enable

F

RW

DMARXEND

Enable or disable interrupt for event DMARXEND

Disabled

0

Disable

Enabled

1

Enable

G

RW

DMARXREADY

Enable or disable interrupt for event DMARXREADY

Disabled

0

Disable

Enabled

1

Enable

H

RW

DMARXBUSERROR

Enable or disable interrupt for event DMARXBUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Disabled

0

Disable

Enabled

1

Enable

I-L

RW

DMARXMATCH[i] (i=0..3)

Enable or disable interrupt for event DMARXMATCH[i]

Disabled

0

Disable

Enabled

1

Enable

M

RW

DMATXEND

Enable or disable interrupt for event DMATXEND

Disabled

0

Disable

Enabled

1

Enable

N

RW

DMATXREADY

Enable or disable interrupt for event DMATXREADY

Disabled

0

Disable

Enabled

1

Enable

O

RW

DMATXBUSERROR

Enable or disable interrupt for event DMATXBUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Disabled

0

Disable

Enabled

1

Enable

INTENSET

Address offset: 0x304

Enable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW
W1S

STOPPED

Write '1' to enable interrupt for event STOPPED

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

B

RW
W1S

ERROR

Write '1' to enable interrupt for event ERROR

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

C

RW
W1S

SUSPENDED

Write '1' to enable interrupt for event SUSPENDED

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

D

RW
W1S

LASTRX

Write '1' to enable interrupt for event LASTRX

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

E

RW
W1S

LASTTX

Write '1' to enable interrupt for event LASTTX

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

F

RW
W1S

DMARXEND

Write '1' to enable interrupt for event DMARXEND

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

G

RW
W1S

DMARXREADY

Write '1' to enable interrupt for event DMARXREADY

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

H

RW
W1S

DMARXBUSERROR

Write '1' to enable interrupt for event DMARXBUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

I-L

RW
W1S

DMARXMATCH[i] (i=0..3)

Write '1' to enable interrupt for event DMARXMATCH[i]

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

M

RW
W1S

DMATXEND

Write '1' to enable interrupt for event DMATXEND

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

N

RW
W1S

DMATXREADY

Write '1' to enable interrupt for event DMATXREADY

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

O

RW
W1S

DMATXBUSERROR

Write '1' to enable interrupt for event DMATXBUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Set

1

Enable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

INTENCLR

Address offset: 0x308

Disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
IDONMLKJIHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW
W1C

STOPPED

Write '1' to disable interrupt for event STOPPED

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

B

RW
W1C

ERROR

Write '1' to disable interrupt for event ERROR

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

C

RW
W1C

SUSPENDED

Write '1' to disable interrupt for event SUSPENDED

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

D

RW
W1C

LASTRX

Write '1' to disable interrupt for event LASTRX

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

E

RW
W1C

LASTTX

Write '1' to disable interrupt for event LASTTX

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

F

RW
W1C

DMARXEND

Write '1' to disable interrupt for event DMARXEND

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

G

RW
W1C

DMARXREADY

Write '1' to disable interrupt for event DMARXREADY

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

H

RW
W1C

DMARXBUSERROR

Write '1' to disable interrupt for event DMARXBUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

I-L

RW
W1C

DMARXMATCH[i] (i=0..3)

Write '1' to disable interrupt for event DMARXMATCH[i]

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

M

RW
W1C

DMATXEND

Write '1' to disable interrupt for event DMATXEND

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

N

RW
W1C

DMATXREADY

Write '1' to disable interrupt for event DMATXREADY

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

O

RW
W1C

DMATXBUSERROR

Write '1' to disable interrupt for event DMATXBUSERROR

When this event is generated, the address which caused the error can be read from the BUSERRORADDRESS register.

Clear

1

Disable

Disabled

0

Read: Disabled

Enabled

1

Read: Enabled

ERRORSRC

Address offset: 0x4C4

Error source

Bit number313029282726252423222120191817161514131211109876543210
IDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW
W1C

OVERRUN

Overrun error

A new byte was received before previous byte got transferred into RXD buffer. (Previous data is lost)

NotReceived

0

Error did not occur

Received

1

Error occurred

B

RW
W1C

ANACK

NACK received after sending the address (write '1' to clear)

NotReceived

0

Error did not occur

Received

1

Error occurred

C

RW
W1C

DNACK

NACK received after sending a data byte (write '1' to clear)

NotReceived

0

Error did not occur

Received

1

Error occurred

ENABLE

Address offset: 0x500

Enable TWIM

Bit number313029282726252423222120191817161514131211109876543210
IDAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ENABLE

Enable or disable TWIM

Disabled

0

Disable TWIM

Enabled

6

Enable TWIM

FREQUENCY

Address offset: 0x524

TWI frequency. Accuracy depends on the HFCLK source selected.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0400000000000100000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

FREQUENCY

TWI master clock frequency

K100

0x01980000

100 kbps

K250

0x04000000

250 kbps

K400

0x06400000

400 kbps

K1000

0x0FF00000

1000 kbps

ADDRESS

Address offset: 0x588

Address used in the TWI transfer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ADDRESS

Address used in the TWI transfer

PSEL.SCL

Address offset: 0x600

Pin select for SCL signal

Bit number313029282726252423222120191817161514131211109876543210
IDCBBBAAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDR/WFieldValue IDValueDescription
A

RW

PIN

[0..31]

Pin number

B

RW

PORT

[0..7]

Port number

C

RW

CONNECT

Connection

Disconnected

1

Disconnect

Connected

0

Connect

PSEL.SDA

Address offset: 0x604

Pin select for SDA signal

Bit number313029282726252423222120191817161514131211109876543210
IDCBBBAAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDR/WFieldValue IDValueDescription
A

RW

PIN

[0..31]

Pin number

B

RW

PORT

[0..7]

Port number

C

RW

CONNECT

Connection

Disconnected

1

Disconnect

Connected

0

Connect

DMA.RX.PTR

Address offset: 0x704

RAM buffer start address

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x2000000000100000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

PTR

RAM buffer start address for this EasyDMA channel. This address is a word aligned Data RAM address.

Note: See the memory chapter for details about which memories are available for EasyDMA.

DMA.RX.MAXCNT

Address offset: 0x708

Maximum number of bytes in channel buffer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MAXCNT

[1..0xFFFF]

Maximum number of bytes in channel buffer

DMA.RX.AMOUNT

Address offset: 0x70C

Number of bytes transferred in the last transaction, updated after the END event.

Also updated after each MATCH event.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

AMOUNT

[1..0xFFFF]

Number of bytes transferred in the last transaction. In case of NACK error, includes the NACK'ed byte.

DMA.RX.LIST

Address offset: 0x714

EasyDMA list type

Bit number313029282726252423222120191817161514131211109876543210
IDAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

TYPE

List type

Disabled

0

Disable EasyDMA list

ArrayList

1

Use array list

DMA.RX.TERMINATEONBUSERROR

Address offset: 0x71C

Terminate the transaction if a BUSERROR event is detected.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ENABLE

Disabled

0

Disable

Enabled

1

Enable

DMA.RX.BUSERRORADDRESS

Address offset: 0x720

Address of transaction that generated the last BUSERROR event.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDRESS

DMA.RX.MATCH

Registers to control the behavior of the pattern matcher engine

DMA.RX.MATCH.CONFIG

Address offset: 0x724

Configure individual match events

Bit number313029282726252423222120191817161514131211109876543210
IDHGFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A-D

RW

ENABLE[i] (i=0..3)

Enable match filter i

Disabled

0

Match filter disabled

Enabled

1

Match filter enabled

E-H

RW

ONESHOT[i] (i=0..3)

Configure match filter i as one-shot or continous

One-shot operation will disable the filter on a match, while Continous operation will keep it enabled until explicitly disabled.

Continuous

0

Match filter stays enabled until disabled by task

Oneshot

1

Match filter stays enabled until next data word is received

DMA.RX.MATCH.CANDIDATE[n]

Address offset: 0x728 + (n × 0x4)

The data to look for - any match will trigger the MATCH[n] event, if enabled.

Note: This register can be updated while a transfer is in progress, but the new value will not take effect until either the DMA is restarted or the match event is generated. That makes it possible to write a new set of match words which will be searched for immediately after the event triggers.
Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

DATA

Data to look for

DMA.TX.PTR

Address offset: 0x73C

RAM buffer start address

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x2000000000100000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

PTR

RAM buffer start address for this EasyDMA channel. This address is a word aligned Data RAM address.

Note: See the memory chapter for details about which memories are available for EasyDMA.

DMA.TX.MAXCNT

Address offset: 0x740

Maximum number of bytes in channel buffer

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

MAXCNT

[1..0xFFFF]

Maximum number of bytes in channel buffer

DMA.TX.AMOUNT

Address offset: 0x744

Number of bytes transferred in the last transaction, updated after the END event.

Also updated after each MATCH event.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

AMOUNT

[1..0xFFFF]

Number of bytes transferred in the last transaction. In case of NACK error, includes the NACK'ed byte.

DMA.TX.LIST

Address offset: 0x74C

EasyDMA list type

Bit number313029282726252423222120191817161514131211109876543210
IDAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

TYPE

List type

Disabled

0

Disable EasyDMA list

ArrayList

1

Use array list

DMA.TX.TERMINATEONBUSERROR

Address offset: 0x754

Terminate the transaction if a BUSERROR event is detected.

Bit number313029282726252423222120191817161514131211109876543210
IDA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

RW

ENABLE

Disabled

0

Disable

Enabled

1

Enable

DMA.TX.BUSERRORADDRESS

Address offset: 0x758

Address of transaction that generated the last BUSERROR event.

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDR/WFieldValue IDValueDescription
A

R

ADDRESS