CMSIS-Driver_PIC32CZ-MC70  
Peripheral Library (PLIB) Documentation
 
Loading...
Searching...
No Matches
MATRIX Interface

Driver API for MATRIX (plib_matrix.h) More...

Macros

#define MATRIX_TC0_CLK_SRC_PCK6   (0U)
 TC0 clock source: PCK6.
 
#define MATRIX_TC0_CLK_SRC_PCK7   (1U)
 TC0 clock source: PCK7.
 
#define MATRIX_I2SC_CLK_SRC_PERIPHERAL   (0U)
 I2SC clock source: Peripheral Clock.
 
#define MATRIX_I2SC_CLK_SRC_GCLK   (1U)
 I2SC clock source: Generic Clock (GCLK)
 
#define MATRIX_NAND_FLASH_CS_COUNT   (4U)
 Number of SMC NAND Flash chip select lines (CCFG_SMCNFCS.SMC_NFCS0-3).
 
#define MATRIX_HOSTS_PER_PR_REG   (8U)
 Number of host priority fields packed into one priority register.
 
#define MATRIX_PR_FIELD_WIDTH   (4U)
 Width in bits of one host priority field in MATRIX_PRAS/MATRIX_PRBS.
 

Typedefs

typedef uint32_t MATRIX_ULBT
 Type definition representing a MATRIX Undefined Length Burst Type (ULBT).
 
typedef uint32_t MATRIX_DEFMSTR_TYPE
 Type definition representing a MATRIX Default Master Type.
 
typedef uint32_t MATRIX_PRIORITY
 Type definition representing a MATRIX Host priority level (0-3, higher is greater priority).
 
typedef uint32_t SYSIO_PIN
 Type definition representing a CCFG_SYSIO pin mask.
 

Enumerations

enum  MATRIX_HOST {
  MATRIX_HOST_CORTEX_M7_0 = 0 , MATRIX_HOST_CORTEX_M7_1 = 1 , MATRIX_HOST_CORTEX_M7_PERIPH = 2 , MATRIX_HOST_ICM = 3 ,
  MATRIX_HOST_XDMAC_0 = 4 , MATRIX_HOST_XDMAC_1 = 5 , MATRIX_HOST_ISI_DMA = 6 , MATRIX_HOST_MEDIA_LB = 7 ,
  MATRIX_HOST_USB_DMA = 8 , MATRIX_HOST_GMAC_DMA = 9 , MATRIX_HOST_CAN0_DMA = 10 , MATRIX_HOST_CAN1_DMA = 11 ,
  MATRIX_HOST_CORTEX_M7_2 = 12
}
 Enumeration for MATRIX Host/Master index. More...
 
enum  MATRIX_CLIENT {
  MATRIX_CLIENT_SRAM_0 = 0 , MATRIX_CLIENT_SRAM_1 = 1 , MATRIX_CLIENT_ROM = 2 , MATRIX_CLIENT_FLASH = 3 ,
  MATRIX_CLIENT_USB_HS_DPR = 4 , MATRIX_CLIENT_EBI = 5 , MATRIX_CLIENT_QSPI = 6 , MATRIX_CLIENT_PERIPH_BRIDGE = 7 ,
  MATRIX_CLIENT_AHB = 8
}
 Enumeration for MATRIX Client/Slave index. More...
 

Functions

void MATRIX_DisableWriteProtection (void)
 Disables write protection for MATRIX configuration registers.
 
void MATRIX_EnableWriteProtection (void)
 Enables write protection for MATRIX configuration registers.
 
void MATRIX_SetHostULBT (MATRIX_HOST host, MATRIX_ULBT ulbt)
 Sets the Undefined Length Burst Type for the specified host.
 
uint32_t MATRIX_GetHostULBT (MATRIX_HOST host)
 Retrieves the Undefined Length Burst Type for the specified host.
 
void MATRIX_SetClientDefaultHostType (MATRIX_CLIENT client, MATRIX_DEFMSTR_TYPE defmstr_type)
 Sets the default master type strategy for the specified client.
 
void MATRIX_SetClientFixedDefaultHost (MATRIX_CLIENT client, MATRIX_HOST fixed_defmstr)
 Sets the fixed default master for the specified client.
 
uint32_t MATRIX_GetClientDefaultHostType (MATRIX_CLIENT client)
 Retrieves the default master type for the specified client.
 
uint32_t MATRIX_GetClientFixedDefaultHost (MATRIX_CLIENT client)
 Retrieves the fixed default master index for the specified client.
 
void MATRIX_SetClientSlotCycle (MATRIX_CLIENT client, uint32_t slot_cycle)
 Sets the slot cycle limit for the specified client.
 
uint32_t MATRIX_GetClientSlotCycle (MATRIX_CLIENT client)
 Retrieves the slot cycle limit for the specified client.
 
void MATRIX_SetHostPriorityForClient (MATRIX_CLIENT client, MATRIX_HOST host, MATRIX_PRIORITY priority)
 Sets the host priority for accessing a specific client.
 
uint32_t MATRIX_GetHostPriorityForClient (MATRIX_CLIENT client, MATRIX_HOST host)
 Retrieves the host priority for accessing a specific client.
 
void MATRIX_EnableRemap (MATRIX_HOST host)
 Enables address remapping for the specified host.
 
void MATRIX_DisableRemap (MATRIX_HOST host)
 Disables address remapping for the specified host.
 
void MATRIX_SetSYSIOAsGPIO (SYSIO_PIN pins)
 Configures specified System I/O pins as general purpose I/O (GPIO).
 
void MATRIX_SetTC0ClockSource (uint32_t clk_src)
 Configures Timer/Counter 0 (TC0) clock source.
 
void MATRIX_SetI2SC0ClockSource (uint32_t clk_src)
 Configures I2S Controller 0 (I2SC0) clock source.
 
void MATRIX_SetI2SC1ClockSource (uint32_t clk_src)
 Configures I2S Controller 1 (I2SC1) clock source.
 
void MATRIX_EnableDynamicClockGating (void)
 Enables dynamic clock gating for MATRIX circuitry.
 
void MATRIX_DisableDynamicClockGating (void)
 Disables dynamic clock gating for MATRIX circuitry.
 
void MATRIX_EnableBridgeDynamicClockGating (void)
 Enables dynamic clock gating for peripheral bridge circuitry.
 
void MATRIX_DisableBridgeDynamicClockGating (void)
 Disables dynamic clock gating for peripheral bridge circuitry.
 
void MATRIX_EnableEFCDynamicClockGating (void)
 Enables dynamic clock gating for Embedded Flash Controller (EFC).
 
void MATRIX_DisableEFCDynamicClockGating (void)
 Disables dynamic clock gating for Embedded Flash Controller (EFC).
 
void MATRIX_EnableNandFlashChipSelect (uint32_t ncs_index)
 Assigns a chip select line to NAND Flash operation.
 
void MATRIX_DisableNandFlashChipSelect (uint32_t ncs_index)
 Unassigns a chip select line from NAND Flash operation.
 
bool MATRIX_NandFlashChipSelectIsAssigned (uint32_t ncs_index)
 Checks if a chip select line is assigned to NAND Flash operation.
 
bool MATRIX_WriteProtectionViolationHasOccurred (void)
 Retrieves write protection violation status.
 
uint16_t MATRIX_GetWriteProtectionViolSrc (void)
 Retrieves the register address where a write protection violation occurred.
 

Description

Driver API for MATRIX (plib_matrix.h)

Usage Example

The following example demonstrates typical usage of the MATRIX peripheral:

/*******************************************************************************
* Copyright (C) 2026 Microchip Technology Inc. and its subsidiaries.
*
* Subject to your compliance with these terms, you may use Microchip software
* and any derivatives exclusively with Microchip products. It is your
* responsibility to comply with third party license terms applicable to your
* use of third party software (including open source software) that may
* accompany Microchip software.
*
* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
* EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
* WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
* PARTICULAR PURPOSE.
*
* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
* INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
* WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
* BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
* FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
* ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
* THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
******************************************************************************/
/*******************************************************************************
* @file configure_matrix.c
* @brief Template for MATRIX peripheral configuration.
* @details Example implementation demonstrating typical MATRIX configuration
* for a performance-optimized embedded system. This template can be
* adapted for specific application requirements.
******************************************************************************/
#include "plib_matrix.h"
int32_t Configure_Matrix(void)
{
const uint32_t MATRIX_NAND_NCS_0 = 0U;
/* Disable write protection to allow register configuration */
/* Configure CPU host for unlimited burst length (max throughput) */
MATRIX_SetHostULBT(MATRIX_HOST_CORTEX_M7_0, MATRIX_MCFG_ULBT_UNLTD_LENGTH);
/* Configure DMA host for 32-beat burst (good balance) */
MATRIX_SetHostULBT(MATRIX_HOST_XDMAC_0, MATRIX_MCFG_ULBT_32BEAT_BURST);
/* SRAM: Fixed default master = CPU (zero-latency access) */
MATRIX_SetClientDefaultHostType(MATRIX_CLIENT_SRAM_0, MATRIX_SCFG_DEFMSTR_TYPE_FIXED);
/* Peripheral bridge: Last-accessed default master */
/* Set slot cycle limit for peripheral bridge */
/* CPU gets highest priority on SRAM */
/* DMA gets medium priority on SRAM */
/* CPU gets medium priority on Flash */
/* Configure TC0 clock source to PCK6 (default) */
/* Configure I2SC0 to use peripheral clock */
/* Configure I2SC1 to use peripheral clock */
/* Enable dynamic clock gating for power optimization */
/* Assign NAND Flash chip select 0 */
/* Re-enable write protection to guard configuration registers */
return 0;
}
void MATRIX_SetClientDefaultHostType(MATRIX_CLIENT client, MATRIX_DEFMSTR_TYPE defmstr_type)
Sets the default master type strategy for the specified client.
void MATRIX_SetHostULBT(MATRIX_HOST host, MATRIX_ULBT ulbt)
Sets the Undefined Length Burst Type for the specified host.
void MATRIX_DisableWriteProtection(void)
Disables write protection for MATRIX configuration registers.
void MATRIX_EnableDynamicClockGating(void)
Enables dynamic clock gating for MATRIX circuitry.
#define MATRIX_TC0_CLK_SRC_PCK6
TC0 clock source: PCK6.
Definition plib_matrix.h:113
void MATRIX_SetClientFixedDefaultHost(MATRIX_CLIENT client, MATRIX_HOST fixed_defmstr)
Sets the fixed default master for the specified client.
void MATRIX_SetHostPriorityForClient(MATRIX_CLIENT client, MATRIX_HOST host, MATRIX_PRIORITY priority)
Sets the host priority for accessing a specific client.
void MATRIX_SetTC0ClockSource(uint32_t clk_src)
Configures Timer/Counter 0 (TC0) clock source.
void MATRIX_SetI2SC1ClockSource(uint32_t clk_src)
Configures I2S Controller 1 (I2SC1) clock source.
void MATRIX_SetClientSlotCycle(MATRIX_CLIENT client, uint32_t slot_cycle)
Sets the slot cycle limit for the specified client.
#define MATRIX_I2SC_CLK_SRC_PERIPHERAL
I2SC clock source: Peripheral Clock.
Definition plib_matrix.h:119
void MATRIX_EnableWriteProtection(void)
Enables write protection for MATRIX configuration registers.
void MATRIX_EnableBridgeDynamicClockGating(void)
Enables dynamic clock gating for peripheral bridge circuitry.
void MATRIX_SetI2SC0ClockSource(uint32_t clk_src)
Configures I2S Controller 0 (I2SC0) clock source.
void MATRIX_EnableEFCDynamicClockGating(void)
Enables dynamic clock gating for Embedded Flash Controller (EFC).
void MATRIX_EnableNandFlashChipSelect(uint32_t ncs_index)
Assigns a chip select line to NAND Flash operation.
@ MATRIX_HOST_XDMAC_0
Definition plib_matrix.h:65
@ MATRIX_HOST_CORTEX_M7_0
Definition plib_matrix.h:61
@ MATRIX_CLIENT_PERIPH_BRIDGE
Definition plib_matrix.h:88
@ MATRIX_CLIENT_FLASH
Definition plib_matrix.h:84
@ MATRIX_CLIENT_SRAM_0
Definition plib_matrix.h:81
Bus Matrix (MATRIX) PLIB interface.

Macro Definition Documentation

◆ MATRIX_HOSTS_PER_PR_REG

#define MATRIX_HOSTS_PER_PR_REG   (8U)

Number of host priority fields packed into one priority register.

Hosts 0 to 7 map to MATRIX_PRAS, hosts 8 and above map to MATRIX_PRBS.

◆ MATRIX_I2SC_CLK_SRC_GCLK

#define MATRIX_I2SC_CLK_SRC_GCLK   (1U)

I2SC clock source: Generic Clock (GCLK)

◆ MATRIX_I2SC_CLK_SRC_PERIPHERAL

#define MATRIX_I2SC_CLK_SRC_PERIPHERAL   (0U)

I2SC clock source: Peripheral Clock.

◆ MATRIX_NAND_FLASH_CS_COUNT

#define MATRIX_NAND_FLASH_CS_COUNT   (4U)

Number of SMC NAND Flash chip select lines (CCFG_SMCNFCS.SMC_NFCS0-3).

Valid chip select indices are 0 to (MATRIX_NAND_FLASH_CS_COUNT - 1).

◆ MATRIX_PR_FIELD_WIDTH

#define MATRIX_PR_FIELD_WIDTH   (4U)

Width in bits of one host priority field in MATRIX_PRAS/MATRIX_PRBS.

◆ MATRIX_TC0_CLK_SRC_PCK6

#define MATRIX_TC0_CLK_SRC_PCK6   (0U)

TC0 clock source: PCK6.

◆ MATRIX_TC0_CLK_SRC_PCK7

#define MATRIX_TC0_CLK_SRC_PCK7   (1U)

TC0 clock source: PCK7.

Typedef Documentation

◆ MATRIX_DEFMSTR_TYPE

typedef uint32_t MATRIX_DEFMSTR_TYPE

Type definition representing a MATRIX Default Master Type.

◆ MATRIX_PRIORITY

typedef uint32_t MATRIX_PRIORITY

Type definition representing a MATRIX Host priority level (0-3, higher is greater priority).

◆ MATRIX_ULBT

typedef uint32_t MATRIX_ULBT

Type definition representing a MATRIX Undefined Length Burst Type (ULBT).

◆ SYSIO_PIN

typedef uint32_t SYSIO_PIN

Type definition representing a CCFG_SYSIO pin mask.

Enumeration Type Documentation

◆ MATRIX_CLIENT

Enumeration for MATRIX Client/Slave index.

Enumerator
MATRIX_CLIENT_SRAM_0 

Internal SRAM Bank 0

MATRIX_CLIENT_SRAM_1 

Internal SRAM Bank 1

MATRIX_CLIENT_ROM 

Internal ROM

MATRIX_CLIENT_FLASH 

Internal Flash Memory

MATRIX_CLIENT_USB_HS_DPR 

USB High-Speed Dual-Port RAM

MATRIX_CLIENT_EBI 

External Bus Interface

MATRIX_CLIENT_QSPI 

QSPI Memory Interface

MATRIX_CLIENT_PERIPH_BRIDGE 

Peripheral Bridge (APB)

MATRIX_CLIENT_AHB 

AHB Client

◆ MATRIX_HOST

Enumeration for MATRIX Host/Master index.

Enumerator
MATRIX_HOST_CORTEX_M7_0 

Cortex-M7 Core 0 (ICode)

MATRIX_HOST_CORTEX_M7_1 

Cortex-M7 Core 1 (DCode)

MATRIX_HOST_CORTEX_M7_PERIPH 

Cortex-M7 Peripheral Port

MATRIX_HOST_ICM 

Integrated Check Monitor

MATRIX_HOST_XDMAC_0 

XDMAC Channel 0

MATRIX_HOST_XDMAC_1 

XDMAC Channel 1

MATRIX_HOST_ISI_DMA 

ISI DMA Controller

MATRIX_HOST_MEDIA_LB 

Media Logic Block

MATRIX_HOST_USB_DMA 

USB DMA Controller

MATRIX_HOST_GMAC_DMA 

Ethernet MAC DMA

MATRIX_HOST_CAN0_DMA 

CAN0 DMA

MATRIX_HOST_CAN1_DMA 

CAN1 DMA

MATRIX_HOST_CORTEX_M7_2 

Cortex-M7 Core 2 (Revision B only)

Function Documentation

◆ MATRIX_DisableBridgeDynamicClockGating()

void MATRIX_DisableBridgeDynamicClockGating ( void )

Disables dynamic clock gating for peripheral bridge circuitry.

Note
Sets the BRIDCKG bit in CCFG_DYNCKG (bit=1 disables clock gating). When disabled, the peripheral bridge circuitry is always driven by the clock in Active mode.
Returns
None.

◆ MATRIX_DisableDynamicClockGating()

void MATRIX_DisableDynamicClockGating ( void )

Disables dynamic clock gating for MATRIX circuitry.

Note
Sets the MATCKG bit in CCFG_DYNCKG (bit=1 disables clock gating). When disabled, the MATRIX circuitry is always driven by the clock in Active mode.
Returns
None.

◆ MATRIX_DisableEFCDynamicClockGating()

void MATRIX_DisableEFCDynamicClockGating ( void )

Disables dynamic clock gating for Embedded Flash Controller (EFC).

Note
Sets the EFCCKG bit in CCFG_DYNCKG (bit=1 disables clock gating). When disabled, the EFC circuitry is always driven by the clock in Active mode.
Returns
None.

◆ MATRIX_DisableNandFlashChipSelect()

void MATRIX_DisableNandFlashChipSelect ( uint32_t ncs_index)

Unassigns a chip select line from NAND Flash operation.

Parameters
ncs_indexChip select index (0 to MATRIX_NAND_FLASH_CS_COUNT - 1). Out-of-range values are ignored.
Returns
None.

◆ MATRIX_DisableRemap()

void MATRIX_DisableRemap ( MATRIX_HOST host)

Disables address remapping for the specified host.

Parameters
hostMATRIX host index (MATRIX_HOST_*).
Returns
None.

◆ MATRIX_DisableWriteProtection()

void MATRIX_DisableWriteProtection ( void )

Disables write protection for MATRIX configuration registers.

Returns
None.

◆ MATRIX_EnableBridgeDynamicClockGating()

void MATRIX_EnableBridgeDynamicClockGating ( void )

Enables dynamic clock gating for peripheral bridge circuitry.

Note
Clears the BRIDCKG bit in CCFG_DYNCKG (bit=0 enables clock gating). When enabled, the peripheral bridge circuitry is clocked only when a transfer to/from any peripheral on the APB bus is being performed, optimizing power consumption.
Returns
None.

◆ MATRIX_EnableDynamicClockGating()

void MATRIX_EnableDynamicClockGating ( void )

Enables dynamic clock gating for MATRIX circuitry.

Note
Clears the MATCKG bit in CCFG_DYNCKG (bit=0 enables clock gating). When enabled, the MATRIX circuitry is clocked only when a transfer is being performed, optimizing power consumption.
Returns
None.

◆ MATRIX_EnableEFCDynamicClockGating()

void MATRIX_EnableEFCDynamicClockGating ( void )

Enables dynamic clock gating for Embedded Flash Controller (EFC).

Note
Clears the EFCCKG bit in CCFG_DYNCKG (bit=0 enables clock gating). When enabled, the EFC circuitry is clocked only when an access to Flash memory is being performed, optimizing power consumption.
Returns
None.

◆ MATRIX_EnableNandFlashChipSelect()

void MATRIX_EnableNandFlashChipSelect ( uint32_t ncs_index)

Assigns a chip select line to NAND Flash operation.

Parameters
ncs_indexChip select index (0 to MATRIX_NAND_FLASH_CS_COUNT - 1). Out-of-range values are ignored.
Returns
None.

◆ MATRIX_EnableRemap()

void MATRIX_EnableRemap ( MATRIX_HOST host)

Enables address remapping for the specified host.

Parameters
hostMATRIX host index (MATRIX_HOST_*).
Returns
None.

◆ MATRIX_EnableWriteProtection()

void MATRIX_EnableWriteProtection ( void )

Enables write protection for MATRIX configuration registers.

Returns
None.

◆ MATRIX_GetClientDefaultHostType()

uint32_t MATRIX_GetClientDefaultHostType ( MATRIX_CLIENT client)

Retrieves the default master type for the specified client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
Returns
Current default master type (MATRIX_SCFG_DEFMSTR_TYPE_*).

◆ MATRIX_GetClientFixedDefaultHost()

uint32_t MATRIX_GetClientFixedDefaultHost ( MATRIX_CLIENT client)

Retrieves the fixed default master index for the specified client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
Returns
Fixed default master index (0-12).

◆ MATRIX_GetClientSlotCycle()

uint32_t MATRIX_GetClientSlotCycle ( MATRIX_CLIENT client)

Retrieves the slot cycle limit for the specified client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
Returns
Current slot cycle limit value (0-511, 0 = disabled).

◆ MATRIX_GetHostPriorityForClient()

uint32_t MATRIX_GetHostPriorityForClient ( MATRIX_CLIENT client,
MATRIX_HOST host )

Retrieves the host priority for accessing a specific client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
hostMATRIX host index (MATRIX_HOST_*).
Returns
Current priority level (0-3).

◆ MATRIX_GetHostULBT()

uint32_t MATRIX_GetHostULBT ( MATRIX_HOST host)

Retrieves the Undefined Length Burst Type for the specified host.

Parameters
hostMATRIX host index (MATRIX_HOST_*).
Returns
Current ULBT value (MATRIX_MCFG_ULBT_*).

◆ MATRIX_GetWriteProtectionViolSrc()

uint16_t MATRIX_GetWriteProtectionViolSrc ( void )

Retrieves the register address where a write protection violation occurred.

Returns
Register address offset of the violation source.

◆ MATRIX_NandFlashChipSelectIsAssigned()

bool MATRIX_NandFlashChipSelectIsAssigned ( uint32_t ncs_index)

Checks if a chip select line is assigned to NAND Flash operation.

Parameters
ncs_indexChip select index (0 to MATRIX_NAND_FLASH_CS_COUNT - 1).
Returns
true if assigned to NAND Flash, false if unassigned or if ncs_index is out of range.

◆ MATRIX_SetClientDefaultHostType()

void MATRIX_SetClientDefaultHostType ( MATRIX_CLIENT client,
MATRIX_DEFMSTR_TYPE defmstr_type )

Sets the default master type strategy for the specified client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
defmstr_typeDefault master type (MATRIX_SCFG_DEFMSTR_TYPE_NONE/LAST/FIXED).
Note
When defmstr_type is FIXED, call MATRIX_SetClientFixedDefaultHost() to specify the host.
Returns
None.

◆ MATRIX_SetClientFixedDefaultHost()

void MATRIX_SetClientFixedDefaultHost ( MATRIX_CLIENT client,
MATRIX_HOST fixed_defmstr )

Sets the fixed default master for the specified client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
fixed_defmstrFixed master index (MATRIX_HOST_*).
Note
Call this only after setting defmstr_type to FIXED using MATRIX_SetClientDefaultHostType().
Returns
None.

◆ MATRIX_SetClientSlotCycle()

void MATRIX_SetClientSlotCycle ( MATRIX_CLIENT client,
uint32_t slot_cycle )

Sets the slot cycle limit for the specified client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
slot_cycleSlot cycle limit value (0 to disable, max 511).
Returns
None.

◆ MATRIX_SetHostPriorityForClient()

void MATRIX_SetHostPriorityForClient ( MATRIX_CLIENT client,
MATRIX_HOST host,
MATRIX_PRIORITY priority )

Sets the host priority for accessing a specific client.

Parameters
clientMATRIX client index (MATRIX_CLIENT_*).
hostMATRIX host index (MATRIX_HOST_*).
priorityPriority level (0-3, higher value = higher priority).
Returns
None.

◆ MATRIX_SetHostULBT()

void MATRIX_SetHostULBT ( MATRIX_HOST host,
MATRIX_ULBT ulbt )

Sets the Undefined Length Burst Type for the specified host.

Parameters
hostMATRIX host index (MATRIX_HOST_*).
ulbtULBT value (use MATRIX_MCFG_ULBT_* macros).
Returns
None.

◆ MATRIX_SetI2SC0ClockSource()

void MATRIX_SetI2SC0ClockSource ( uint32_t clk_src)

Configures I2S Controller 0 (I2SC0) clock source.

Parameters
clk_srcClock source selection:
  • MATRIX_I2SC_CLK_SRC_PERIPHERAL (0) - Use Peripheral Clock
  • MATRIX_I2SC_CLK_SRC_GCLK (1) - Use Generic Clock
Returns
None.

◆ MATRIX_SetI2SC1ClockSource()

void MATRIX_SetI2SC1ClockSource ( uint32_t clk_src)

Configures I2S Controller 1 (I2SC1) clock source.

Parameters
clk_srcClock source selection:
  • MATRIX_I2SC_CLK_SRC_PERIPHERAL (0) - Use Peripheral Clock
  • MATRIX_I2SC_CLK_SRC_GCLK (1) - Use Generic Clock
Returns
None.

◆ MATRIX_SetSYSIOAsGPIO()

void MATRIX_SetSYSIOAsGPIO ( SYSIO_PIN pins)

Configures specified System I/O pins as general purpose I/O (GPIO).

Parameters
pinsBitmask of pins to release from System I/O to GPIO (CCFG_SYSIO_SYSIO*_Msk).
Returns
None.

◆ MATRIX_SetTC0ClockSource()

void MATRIX_SetTC0ClockSource ( uint32_t clk_src)

Configures Timer/Counter 0 (TC0) clock source.

Parameters
clk_srcClock source selection:
  • MATRIX_TC0_CLK_SRC_PCK6 (0) - PCK6 is used (default)
  • MATRIX_TC0_CLK_SRC_PCK7 (1) - PCK7 is used
Returns
None.

◆ MATRIX_WriteProtectionViolationHasOccurred()

bool MATRIX_WriteProtectionViolationHasOccurred ( void )

Retrieves write protection violation status.

Returns
true if an unauthorized write access has been detected, false otherwise.