31.6.6 PORT Access Priority

The PORT is accessed by different systems:

  • The Arm® CPU through the Arm® single-cycle I/O port (IOBUS)
  • The Arm® CPU through the high-speed matrix and the AHB/APB bridge (APB)
  • EVSYS through four asynchronous input events

The CPU local bus (IOBUS) is an interface that connects the CPU directly to the PORT. It is a single-cycle bus interface, which does not support wait states. It supports 8-bit, 16-bit, and 32-bit sizes.

This bus is generally used for low-latency operation. The Data Direction (DIR) and Data Output Value (OUT) registers can be read, written, set, cleared or be toggled using this bus, and the Data Input Value (IN) registers can be read.

Since the IOBUS cannot wait for IN register resynchronization, the Control register (CTRL) must be configured to continuous sampling of all pins that need to be read through the IOBUS to prevent stale data from being read.

Note: Refer to the Product Mapping chapter for the IOBUS address.

The following priority is adopted:

  1. Arm® CPU IOBUS (No wait tolerated).
  2. APB.
  3. EVSYS input events.
Note: One clock cycle latency can be observed on the APB access in case of concurrent PORT accesses.

For input events that require different actions on the same I/O pin, refer to the Events.