# Interconnect (Internal Digital Routing)¶

group group_hal_impl_interconnect

The interconnect system connects the various hardware peripherals using trigger signals.

Triggers are output when a particular event occurs or condition is met by one of the peripherals. These triggers can be routed to other peripherals using the interconnect system in order to initiate an action at the destination peripheral.

Peripherals must be configured to produce/accept trigger signals. Therefore in practice, there is no need to call _cyhal_connect_signal manually. Instead, use the per-peripheral cyhal_<PERI>_connect_digital or cyhal_<PERI>_enable_output which will handle configuring the peripheral and making the connections internally.

Trigger routing is implemented using trigger multiplexers. A single source trigger can be routed to multiple destinations but a single destination can only be connected to a single source. There are different trigger layouts depending on device architecture.

Functions

cy_rslt_t _cyhal_connect_signal(cyhal_source_t source, cyhal_dest_t dest, cyhal_signal_type_t type)

Connects two digital signals on the device using the internal interconnect.

A single source can drive multiple destinations, but a destination can be driven by only one source. If the destination is already connected, or the connection can not be established an error will be returned.

Parameters
• source[in] The source of the signal to connect

• dest[in] The destination of the signal to connect

• type[in] Whether the signal is edge or level triggered

Returns

The status of the connect request

cy_rslt_t _cyhal_disconnect_signal(cyhal_source_t source, cyhal_dest_t dest)

Disconnects two digital signals on the device that were previously connected using the internal interconnect.

Parameters
• source[in] The source of the signal to disconnect

• dest[in] The destination of the signal to disconnect

Returns

The status of the disconnect request

bool _cyhal_can_connect_signal(cyhal_source_t source, cyhal_dest_t dest)

Checks to see if a signal can be connected between the provided source and dest.

Parameters
• source[in] The source of the signal to check

• dest[in] The destination of the signal to check

Returns

Indication of whether a signal can connect between the provided points