560 lines
55 KiB
XML
560 lines
55 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
|
|
<!--****************************************************************************
|
|
* \file canfd.cypersonality
|
|
* \version 1.0.1
|
|
*
|
|
* \brief
|
|
* CAN FD personality description file.
|
|
*
|
|
********************************************************************************
|
|
* \copyright
|
|
* Copyright 2018-2020 Cypress Semiconductor Corporation
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*****************************************************************************-->
|
|
|
|
<Personality id="mxs40ttcanfd" name="CAN FD" version="1.0" path="Communications" xmlns="http://cypress.com/xsd/cyhwpersonality_v1">
|
|
<Dependencies>
|
|
<IpBlock name="mxttcanfd_s40s" />
|
|
<Resource name="canfd\.chan" used="true" />
|
|
</Dependencies>
|
|
<ExposedMembers />
|
|
<Parameters>
|
|
<!-- PDL documentation -->
|
|
<ParamDoc id="pdlDoc" name="Configuration Help" group="Peripheral Documentation" default="file:///`${cy_libs_path()}`/docs/pdl_api_reference_manual/html/group__group__canfd.html" linkText="Open CAN FD Documentation" visible="true" desc="Opens the Peripheral Driver Library Documentation" />
|
|
|
|
<!-- Calback functions -->
|
|
<ParamString id="txCallback" name="TxCallback Function" group="Calback functions" default="NULL" visible="true" editable="true" desc="The Callback function for transmit completed." />
|
|
<ParamString id="rxCallback" name="RxCallback Function" group="Calback functions" default="NULL" visible="true" editable="true" desc="The Callback function for receive completed." />
|
|
<ParamString id="errorCallback" name="ErrorCallback Function" group="Calback functions" default="NULL" visible="true" editable="true" desc="The Callback function for CAN related errors." />
|
|
|
|
<!-- Mode -->
|
|
<ParamBool id="mode" name="CAN FD Mode" group="Mode" default="false" visible="true" editable="true" desc="Set if CAN FD, reset if Classic CAN mode." />
|
|
|
|
<!-- Connections -->
|
|
<ParamSignal port="clock_can[0]" name="Clock Signal" group="Connections" visible="true" desc="The clock input defines the operating frequency." canBeEmpty="false" />
|
|
<ParamString id="sourceClock" name="Source Clock" group="Connections" default="`${getBlockFromSignal("clock_can[0]")}`" visible="false" editable="false" desc="Source Clock Resource" />
|
|
<ParamRange id="canClkHz" name="CAN Clk in Hz" group="Connections" default="`${getExposedMember(sourceClock, "frequency")}`" min="1" max="200000000" resolution="1" visible="false" editable="false" desc="CAN clock frequency in Hz" />
|
|
<ParamString id="ClkFreq" name="Clock Frequency" group="Connections" default="`${(canClkHz < 1000000) ? (canClkHz / 1000.0) . " kHz" : (canClkHz / 1000000.0) . " MHz"}`" visible="true" editable="false" desc="Frequency of the connected clock" />
|
|
<ParamSignal port="ttcan_rx[0]" name="CAN_RX Pin" group="Connections" visible="true" desc="Reserve the ttcan_rx[0]." canBeEmpty="true" >
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="DEFAULT" reason="">
|
|
<Fixed value="CY_GPIO_DM_PULLUP" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation=".*" valid="true" />
|
|
</ParamSignal>
|
|
<ParamSignal port="ttcan_tx[0]" name="CAN_TX Pin" group="Connections" visible="true" desc="ttcan_tx[0]" canBeEmpty="true" >
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="DEFAULT" reason="">
|
|
<Fixed value="CY_GPIO_DM_STRONG" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
|
|
<Fixed value="CY_GPIO_DM_STRONG" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation=".*" valid="true" />
|
|
</ParamSignal>
|
|
<ParamSignal port="tr_fifo0[0]" name="DMA Rx FIFO 0 Trigger Output" group="Connections" visible="true" desc="Connects Rx FIFO 0 trigger output to the DMA." canBeEmpty="true" >
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="DEFAULT" reason="">
|
|
<Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
|
|
<Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation=".*" valid="true" />
|
|
</ParamSignal>
|
|
<ParamSignal port="tr_fifo1[0]" name="DMA Rx FIFO 1 Trigger Output" group="Connections" visible="true" desc="Connects Rx FIFO 1 trigger output to the DMA." canBeEmpty="true" >
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="DEFAULT" reason="">
|
|
<Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
|
|
<Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
|
|
<Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
|
|
</Parameter>
|
|
</Constraint>
|
|
<Constraint type="ACCEPT" targetLocation=".*" valid="true" />
|
|
</ParamSignal>
|
|
|
|
<!-- Message RAM -->
|
|
<ParamRange id="messageRAMaddress" name="Message RAM Address Offset" group="Message RAM" default="0" min="0" max="4294967295" resolution="4" visible="true" editable="true" desc="The start address offset of Message RAM for the channel (in bytes)." />
|
|
<ParamRange id="noOfTxEvenFifo" name="Number of Tx Even FIFO Elements" group="Message RAM" default="10" min="0" max="32" resolution="1" visible="false" editable="false" desc="The Number Of Tx Even FIFO elements for the channel." />
|
|
<ParamRange id="messageRAMsize" name="Message RAM Size" group="Message RAM" default="`${MRAM_SIZE * 1024}`" min="`${8 * noOfTxEvenFifo}`" max="`${MRAM_SIZE * 1024}`" resolution="4" visible="true" editable="true" desc="The size in bytes of Message RAM for the channel." />
|
|
|
|
<!-- Bitrate Setting -->
|
|
<ParamRange id="nominalPrescaler" name="Nominal Prescaler" group="Bitrate Setting" default="4" min="1" max="512" resolution="1" visible="true" editable="true" desc="Nominal Bit Rate Prescaler." />
|
|
<ParamRange id="nominalTimeSegment1" name="Nominal Time Segment 1" group="Bitrate Setting" default="16" min="2" max="256" resolution="1" visible="true" editable="true" desc="Nominal Time segment before sample point." />
|
|
<ParamRange id="nominalTimeSegment2" name="Nominal Time Segment 2" group="Bitrate Setting" default="7" min="2" max="128" resolution="1" visible="true" editable="true" desc="Nominal Time segment after sample point." />
|
|
<ParamRange id="nominalSyncJumpWidth" name="Nominal Synchronization Jump Width" group="Bitrate Setting" default="4" min="1" max="128" resolution="1" visible="true" editable="true" desc="Nominal Synchronization Jump Width." />
|
|
<ParamRange id="nominalBaudRateBps" name="Nominal Bit Rate" group="Bitrate Setting" default="`${canClkHz / (nominalTimeSegment1 + nominalTimeSegment2 + 1) / nominalPrescaler}`" min="0" max="8000000" resolution="1" visible="false" editable="false" desc="Nominal baud rate in bps." />
|
|
<ParamString id="nominalBaudRateKbps" name="Nominal Bit Rate" group="Bitrate Setting" default="`${(nominalBaudRateBps / 1000) . " kbps" }`" visible="true" editable="false" desc="Nominal baud rate in kbps." />
|
|
<ParamString id="nominalSamplingPoint" name="Nominal Sampling Point" group="Bitrate Setting" default="`${(100 * (1 + nominalTimeSegment1) / (1 + nominalTimeSegment1 + nominalTimeSegment2)) . "%" }`" visible="true" editable="false" desc="Nominal Sampling Point in percents." />
|
|
|
|
<!-- Fast Bitrate Setting -->
|
|
<ParamRange id="dataPrescaler" name="Data Prescaler" group="Fast Bitrate Setting" default="2" min="1" max="32" resolution="1" visible="`${mode}`" editable="true" desc="Bit Rate Prescaler." />
|
|
<ParamRange id="dataTimeSegment1" name="Data Time Segment 1" group="Fast Bitrate Setting" default="15" min="1" max="32" resolution="1" visible="`${mode}`" editable="true" desc="Time segment before sample point." />
|
|
<ParamRange id="dataTimeSegment2" name="Data Time Segment 2" group="Fast Bitrate Setting" default="8" min="1" max="16" resolution="1" visible="`${mode}`" editable="true" desc="Time segment after sample point." />
|
|
<ParamRange id="dataSyncJumpWidth" name="Data Synchronization Jump Width" group="Fast Bitrate Setting" default="4" min="1" max="16" resolution="1" visible="`${mode}`" editable="true" desc="Synchronization Jump Width." />
|
|
<ParamRange id="dataBaudRateBps" name="Data Bit Rate" group="Fast Bitrate Setting" default="`${canClkHz / (dataTimeSegment1 + dataTimeSegment2 + 1) / (dataPrescaler)}`" min="0" max="8000000" resolution="1" visible="false" editable="false" desc="Data baud rate in bps." />
|
|
<ParamString id="dataBaudRateKbps" name="Data Bit Rate" group="Fast Bitrate Setting" default="`${(dataBaudRateBps / 1000) . " kbps" }`" visible="`${mode}`" editable="false" desc="Data baud rate in kbps." />
|
|
<ParamString id="dataSamplingPoint" name="Data Sampling Point" group="Fast Bitrate Setting" default="`${(100 * (1 + dataTimeSegment1) / (1 + dataTimeSegment1 + dataTimeSegment2)) . "%" }`" visible="`${mode}`" editable="false" desc="Data Sampling Point in percents." />
|
|
|
|
<!-- Transceiver delay compensation offset configuration -->
|
|
<ParamBool id="tdcEnabled" name="Transceiver Delay Compensation Enabled" group="Transceiver delay compensation offset configuration" default="false" visible="true" editable="true" desc="Transceiver delay compensation enabled." />
|
|
<ParamRange id="tdcOffset" name="TDC Delay Compensation Offset" group="Transceiver delay compensation offset configuration" default="0" min="0" max="127" resolution="1" visible="`${tdcEnabled}`" editable="true" desc="Transmitter Delay Compensation Offset." />
|
|
<ParamRange id="tdcFilterWindow" name="TDC Filter Window Length" group="Transceiver delay compensation offset configuration" default="0" min="0" max="127" resolution="1" visible="`${tdcEnabled}`" editable="true" desc="Transmitter Delay Compensation Filter Window Length." />
|
|
|
|
|
|
<!-- Standard ID Filter Setting -->
|
|
<ParamRange id="numberOfSIDFilters" name="Number of SID Filters" group="Standard ID Filter Setting" default="1" min="0" max="128" resolution="1" visible="true" editable="true" desc="Number of Standard Message ID Filters." />
|
|
|
|
<Repeat count="128">
|
|
<ParamChoice id="sfecSidFilter$idx" name="Standard Filter Element Configuration" group="Standard ID Filter Element#$idx" default="CY_CANFD_SFEC_STORE_RX_FIFO_0" visible="`${numberOfSIDFilters > $idx}`" editable="true" desc="Standard Filter Element Configuration if the filter matches.">
|
|
<Entry name="Disable the Filter Element" value="CY_CANFD_SFEC_DISABLE" visible="true" />
|
|
<Entry name="Store in Rx FIFO 0" value="CY_CANFD_SFEC_STORE_RX_FIFO_0" visible="true" />
|
|
<Entry name="Store in Rx FIFO 1" value="CY_CANFD_SFEC_STORE_RX_FIFO_1" visible="true" />
|
|
<Entry name="Reject ID" value="CY_CANFD_SFEC_REJECT_ID" visible="true" />
|
|
<Entry name="Set Priority" value="CY_CANFD_SFEC_SET_PRIORITY" visible="true" />
|
|
<Entry name="Set Priority and Store in FIFO 0" value="CY_CANFD_SFEC_SET_PRIORITY_STORE_FIFO_0" visible="true" />
|
|
<Entry name="Set Priority and Store in FIFO 1" value="CY_CANFD_SFEC_SET_PRIORITY_STORE_FIFO_1" visible="true" />
|
|
<Entry name="Store into Rx Buffer or as Debug Message" value="CY_CANFD_SFEC_STORE_RX_BUFFER" visible="true" />
|
|
</ParamChoice>
|
|
<ParamChoice id="sftSidFilter$idx" name="Standard Filter Type" group="Standard ID Filter Element#$idx" default="CY_CANFD_SFT_RANGE_SFID1_SFID2" visible="`${(numberOfSIDFilters > $idx) && (sfecSidFilter$idx ne CY_CANFD_SFEC_STORE_RX_BUFFER)}`" editable="true" desc="Standard Filter Type.">
|
|
<Entry name="Range Filter from SFID1 to SFID2" value="CY_CANFD_SFT_RANGE_SFID1_SFID2" visible="true" />
|
|
<Entry name="Dual ID Filter for SFID1 or SFID2" value="CY_CANFD_SFT_DUAL_ID" visible="true" />
|
|
<Entry name="Classic Filter: SFID1 = Filter, SFID2 = Mask" value="CY_CANFD_SFT_CLASSIC_FILTER" visible="true" />
|
|
<Entry name="Filter Element Disabled" value="CY_CANFD_SFT_DISABLED" visible="true" />
|
|
</ParamChoice>
|
|
<ParamString id="sftSidFilterVal$idx" name="Standard Filter Type" group="Standard ID Filter Element#$idx" default="`${sfecSidFilter$idx ne CY_CANFD_SFEC_STORE_RX_BUFFER ? sftSidFilter$idx : CY_CANFD_SFT_CLASSIC_FILTER}`" visible="false" editable="false" desc="Standard Filter Type." />
|
|
<ParamRange id="sfid1_SidFilter$idx" name="SFID1" group="Standard ID Filter Element#$idx" default="0" min="0" max="2047" resolution="1" visible="`${numberOfSIDFilters > $idx}`" editable="true" desc="First ID of standard ID filter element. When filtering for Rx Buffers or for debug messages this field defines the ID of a standard message to be stored. The received identifiers must match exactly, no masking mechanism is used." />
|
|
<ParamRange id="sfid2_SidFilter$idx" name="SFID2" group="Standard ID Filter Element#$idx" default="0" min="0" max="2047" resolution="1" visible="`${(numberOfSIDFilters > $idx) && (sfecSidFilter$idx ne CY_CANFD_SFEC_STORE_RX_BUFFER) }`" editable="true" desc="Second ID of standard ID filter element." />
|
|
<ParamChoice id="sfid2_10_9_SidFilter$idx" name="Store the Received Message" group="Standard ID Filter Element#$idx" default="0" visible="`${(numberOfSIDFilters > $idx) && (sfecSidFilter$idx eq CY_CANFD_SFEC_STORE_RX_BUFFER) }`" editable="true" desc="Decides whether the received message is stored into an Rx Buffer or treated as message A, B, or C of the debug message sequence.">
|
|
<Entry name="Store Message into an Rx Buffer" value="0" visible="true" />
|
|
<Entry name="Debug Message A" value="1" visible="true" />
|
|
<Entry name="Debug Message B" value="2" visible="true" />
|
|
<Entry name="Debug Message C" value="3" visible="true" />
|
|
</ParamChoice>
|
|
<ParamRange id="sfid2_5_0_SidFilter$idx" name="RX Buffer Element" group="Standard ID Filter Element#$idx" default="0" min="0" max="63" resolution="1" visible="`${(numberOfSIDFilters > $idx) && (sfecSidFilter$idx eq CY_CANFD_SFEC_STORE_RX_BUFFER) }`" editable="true" desc="The offset to the Rx Buffer Start Address RXBC.RBSA for storage of a matching message." />
|
|
</Repeat>
|
|
|
|
|
|
|
|
<!-- Extended ID Filter Setting -->
|
|
<ParamRange id="numberOfEXTIDFilters" name="Number of XID Filters" group="Extended ID Filter Setting" default="1" min="0" max="64" resolution="1" visible="true" editable="true" desc="Number of Extended Message ID Filters." />
|
|
|
|
<Repeat count="64">
|
|
<ParamChoice id="efecXidFilter$idx" name="Extended Filter Element Configuration" group="Extended ID Filter Element#$idx" default="CY_CANFD_EFEC_STORE_RX_FIFO_0" visible="`${numberOfEXTIDFilters > $idx}`" editable="true" desc="Extended Filter Element Configuration if the filter matches.">
|
|
<Entry name="Disable the Filter Element" value="CY_CANFD_EFEC_DISABLE" visible="true" />
|
|
<Entry name="Store in Rx FIFO 0" value="CY_CANFD_EFEC_STORE_RX_FIFO_0" visible="true" />
|
|
<Entry name="Store in Rx FIFO 1" value="CY_CANFD_EFEC_STORE_RX_FIFO_1" visible="true" />
|
|
<Entry name="Reject ID" value="CY_CANFD_EFEC_REJECT_ID" visible="true" />
|
|
<Entry name="Set Priority" value="CY_CANFD_EFEC_SET_PRIORITY" visible="true" />
|
|
<Entry name="Set Priority and Store in FIFO 0" value="CY_CANFD_EFEC_SET_PRIORITY_STORE_FIFO_0" visible="true" />
|
|
<Entry name="Set Priority and Store in FIFO 1" value="CY_CANFD_EFEC_SET_PRIORITY_STORE_FIFO_1" visible="true" />
|
|
<Entry name="Store into Rx Buffer or as Debug Message" value="CY_CANFD_EFEC_STORE_RX_BUFFER" visible="true" />
|
|
</ParamChoice>
|
|
<ParamChoice id="eftXidFilter$idx" name="Extended Filter Type" group="Extended ID Filter Element#$idx" default="CY_CANFD_EFT_RANGE_EFID1_EFID2" visible="`${(numberOfEXTIDFilters > $idx) && (efecXidFilter$idx ne CY_CANFD_EFEC_STORE_RX_BUFFER)}`" editable="true" desc="Extended Filter Type.">
|
|
<Entry name="Range Filter from EFID1 to EFID2" value="CY_CANFD_EFT_RANGE_EFID1_EFID2" visible="true" />
|
|
<Entry name="Dual ID Filter for EFID1 or EFID2" value="CY_CANFD_EFT_DUAL_ID" visible="true" />
|
|
<Entry name="Classic Filter: EFID1 = Filter, EFID2 = Mask" value="CY_CANFD_EFT_CLASSIC_FILTER" visible="true" />
|
|
<Entry name="Filter Element Disabled" value="CY_CANFD_EFT_RANGE_EFID1_EFID2_NO_MSK" visible="true" />
|
|
</ParamChoice>
|
|
<ParamRange id="efid1_XidFilter$idx" name="EFID1" group="Extended ID Filter Element#$idx" default="0" min="0" max="536870911" resolution="1" visible="`${numberOfEXTIDFilters > $idx}`" editable="true" desc="First ID of extended ID filter element. When filtering for Rx Buffers or for debug messages this field defines the ID of an extended message to be stored. The received identifiers must match exactly, only XIDAM masking mechanism is used." />
|
|
<ParamRange id="efid2_XidFilter$idx" name="EFID2" group="Extended ID Filter Element#$idx" default="0" min="0" max="536870911" resolution="1" visible="`${(numberOfEXTIDFilters > $idx) && (efecXidFilter$idx ne CY_CANFD_EFEC_STORE_RX_BUFFER) }`" editable="true" desc="Second ID of extended ID filter element." />
|
|
<ParamChoice id="efid2_10_9_XidFilter$idx" name="Store the Received Message" group="Extended ID Filter Element#$idx" default="0" visible="`${(numberOfEXTIDFilters > $idx) && (efecXidFilter$idx eq CY_CANFD_EFEC_STORE_RX_BUFFER) }`" editable="true" desc="Decides whether the received message is stored into an Rx Buffer or treated as message A, B, or C of the debug message sequence.">
|
|
<Entry name="Store Message into an Rx Buffer" value="0" visible="true" />
|
|
<Entry name="Debug Message A" value="1" visible="true" />
|
|
<Entry name="Debug Message B" value="2" visible="true" />
|
|
<Entry name="Debug Message C" value="3" visible="true" />
|
|
</ParamChoice>
|
|
<ParamRange id="efid2_5_0_XidFilter$idx" name="RX Buffer Element" group="Extended ID Filter Element#$idx" default="0" min="0" max="63" resolution="1" visible="`${(numberOfEXTIDFilters > $idx) && (efecXidFilter$idx eq CY_CANFD_EFEC_STORE_RX_BUFFER) }`" editable="true" desc="The offset to the Rx Buffer Start Address RXBC.RBSA for storage of a matching message." />
|
|
</Repeat>
|
|
|
|
<ParamRange id="extIDANDMask" name="Extended ID AND Mask XIDAM" group="Extended ID Filter Setting" default="536870911" min="0" max="536870911" resolution="1" visible="true" editable="true" desc="Extended ID AND Mask XIDAM." />
|
|
|
|
<!-- Global Filter Setting -->
|
|
<ParamChoice id="nonMatchingFramesStandard" name="Accept Non-matching Frames Standard" group="Global Filter Setting" default="CY_CANFD_ACCEPT_IN_RXFIFO_0" visible="true" editable="true" desc="Defines how received messages with 11-bit IDs that do not match any element of the filter list are
|
|
treated.">
|
|
<Entry name="Accept in Rx FIFO 0" value="CY_CANFD_ACCEPT_IN_RXFIFO_0" visible="true" />
|
|
<Entry name="Accept in Rx FIFO 1" value="CY_CANFD_ACCEPT_IN_RXFIFO_1" visible="true" />
|
|
<Entry name="Reject " value="CY_CANFD_REJECT_NON_MATCHING" visible="true" />
|
|
</ParamChoice>
|
|
<ParamChoice id="nonMatchingFramesExtended" name="Accept Non-matching Frames Extended" group="Global Filter Setting" default="CY_CANFD_ACCEPT_IN_RXFIFO_0" visible="true" editable="true" desc="Defines how received messages with 29-bit IDs that do not match any element of the filter list are
|
|
treated.">
|
|
<Entry name="Accept in Rx FIFO 0" value="CY_CANFD_ACCEPT_IN_RXFIFO_0" visible="true" />
|
|
<Entry name="Accept in Rx FIFO 1" value="CY_CANFD_ACCEPT_IN_RXFIFO_1" visible="true" />
|
|
<Entry name="Reject " value="CY_CANFD_REJECT_NON_MATCHING" visible="true" />
|
|
</ParamChoice>
|
|
<ParamBool id="rejectRemoteFramesStandard" name="Reject Remote Frames Standard" group="Global Filter Setting" default="false" visible="true" editable="true" desc="Reject all remote frames with 11-bit standard IDs." />
|
|
<ParamBool id="rejectRemoteFramesExtended" name="Reject Remote Frames Extended" group="Global Filter Setting" default="false" visible="true" editable="true" desc="Reject all remote frames with 29-bit extended IDs." />
|
|
|
|
<!-- RX Buffers and FIFO Setting -->
|
|
<ParamChoice id="rxBufferDataValue" name="Rx Buffer Data Field Size" group="RX Buffers and FIFO Setting" default="8" visible="true" editable="true" desc="Rx Buffer Data Field Size.">
|
|
<Entry name="8 Byte Data Field" value="8" visible="true" />
|
|
<Entry name="12 Byte Data Field" value="12" visible="true" />
|
|
<Entry name="16 Byte Data Field" value="16" visible="true" />
|
|
<Entry name="20 Byte Data Field" value="20" visible="true" />
|
|
<Entry name="24 Byte Data Field" value="24" visible="true" />
|
|
<Entry name="32 Byte Data Field" value="32" visible="true" />
|
|
<Entry name="48 Byte Data Field" value="48" visible="true" />
|
|
<Entry name="64 Byte Data Field" value="64" visible="true" />
|
|
</ParamChoice>
|
|
<ParamString id="rxBufferDataSize" name="Rx Buffer Data Field Size ENUM" group="RX Buffers and FIFO Setting" default="CY_CANFD_BUFFER_DATA_SIZE_`${rxBufferDataValue}`" visible="false" editable="false" desc="Rx Buffer Data Field Size ENUM." />
|
|
|
|
<ParamChoice id="rxFifo0DataValue" name="Rx FIFO 0 Data Field Size" group="RX Buffers and FIFO Setting" default="8" visible="true" editable="true" desc="Rx FIFO 0 Data Field Size.">
|
|
<Entry name="8 Byte Data Field" value="8" visible="true" />
|
|
<Entry name="12 Byte Data Field" value="12" visible="true" />
|
|
<Entry name="16 Byte Data Field" value="16" visible="true" />
|
|
<Entry name="20 Byte Data Field" value="20" visible="true" />
|
|
<Entry name="24 Byte Data Field" value="24" visible="true" />
|
|
<Entry name="32 Byte Data Field" value="32" visible="true" />
|
|
<Entry name="48 Byte Data Field" value="48" visible="true" />
|
|
<Entry name="64 Byte Data Field" value="64" visible="true" />
|
|
</ParamChoice>
|
|
<ParamString id="rxFifo0DataSize" name="Rx FIFO 0 Data Field Size ENUM" group="RX Buffers and FIFO Setting" default="CY_CANFD_BUFFER_DATA_SIZE_`${rxFifo0DataValue}`" visible="false" editable="false" desc="Rx FIFO 0 Data Field Size ENUM." />
|
|
|
|
<ParamChoice id="rxFifo1DataValue" name="Rx FIFO 1 Data Field Size" group="RX Buffers and FIFO Setting" default="8" visible="true" editable="true" desc="Rx FIFO 1 Data Field Size.">
|
|
<Entry name="8 Byte Data Field" value="8" visible="true" />
|
|
<Entry name="12 Byte Data Field" value="12" visible="true" />
|
|
<Entry name="16 Byte Data Field" value="16" visible="true" />
|
|
<Entry name="20 Byte Data Field" value="20" visible="true" />
|
|
<Entry name="24 Byte Data Field" value="24" visible="true" />
|
|
<Entry name="32 Byte Data Field" value="32" visible="true" />
|
|
<Entry name="48 Byte Data Field" value="48" visible="true" />
|
|
<Entry name="64 Byte Data Field" value="64" visible="true" />
|
|
</ParamChoice>
|
|
<ParamString id="rxFifo1DataSize" name="Rx FIFO 1 Data Field Size ENUM" group="RX Buffers and FIFO Setting" default="CY_CANFD_BUFFER_DATA_SIZE_`${rxFifo1DataValue}`" visible="false" editable="false" desc="Rx FIFO 1 Data Field Size ENUM." />
|
|
<ParamRange id="noOfRxBuffers" name="Number of Rx Buffers" group="RX Buffers and FIFO Setting" default="1" min="0" max="64" resolution="1" visible="true" editable="true" desc="Number of Rx Buffers." />
|
|
|
|
<!-- Rx FIFO 0 Configuration -->
|
|
<ParamChoice id="modeFifo0" name="FIFO 0 Operation Mode" group="Rx FIFO 0 Configuration" default="CY_CANFD_FIFO_MODE_BLOCKING" visible="true" editable="true" desc="CAN FD Rx FIFO 0 operating mode.">
|
|
<Entry name="FIFO Blocking Mode" value="CY_CANFD_FIFO_MODE_BLOCKING" visible="true" />
|
|
<Entry name="FIFO Overwrite Mode" value="CY_CANFD_FIFO_MODE_OVERWRITE" visible="true" />
|
|
</ParamChoice>
|
|
<ParamRange id="watermarkFifo0" name="Watermark" group="Rx FIFO 0 Configuration" default="0" min="0" max="64" resolution="1" visible="true" editable="true" desc="Rx FIFO 0 Watermark." />
|
|
<ParamRange id="numberOfFifo0Elements" name="Rx FIFO 0 Size" group="Rx FIFO 0 Configuration" default="0" min="0" max="64" resolution="1" visible="true" editable="true" desc="Number Of FIFO 0 elements." />
|
|
<ParamBool id="topPointerLogicEnabledFifo0" name="FIFO 0 Top Pointer Logic Enabled" group="Rx FIFO 0 Configuration" default="false" visible="true" editable="true" desc="FIFO 0 Top Pointer Logic Enabled." />
|
|
|
|
<!-- Rx FIFO 1 Configuration -->
|
|
<ParamChoice id="modeFifo1" name="FIFO 1 Operation Mode" group="Rx FIFO 1 Configuration" default="CY_CANFD_FIFO_MODE_BLOCKING" visible="true" editable="true" desc="CAN FD Rx FIFO 1 operating mode.">
|
|
<Entry name="FIFO Blocking Mode" value="CY_CANFD_FIFO_MODE_BLOCKING" visible="true" />
|
|
<Entry name="FIFO Overwrite Mode" value="CY_CANFD_FIFO_MODE_OVERWRITE" visible="true" />
|
|
</ParamChoice>
|
|
<ParamRange id="watermarkFifo1" name="Watermark" group="Rx FIFO 1 Configuration" default="0" min="0" max="64" resolution="1" visible="true" editable="true" desc="Rx FIFO 1 Watermark." />
|
|
<ParamRange id="numberOfFifo1Elements" name="Rx FIFO 1 Size" group="Rx FIFO 1 Configuration" default="0" min="0" max="64" resolution="1" visible="true" editable="true" desc="Number Of FIFO 1 elements." />
|
|
<ParamBool id="topPointerLogicEnabledFifo1" name="FIFO 1 Top Pointer Logic Enabled" group="Rx FIFO 1 Configuration" default="false" visible="true" editable="true" desc="FIFO 1 Top Pointer Logic Enabled." />
|
|
|
|
<!-- TX Buffers Setting -->
|
|
<ParamChoice id="txBufferDataValue" name="Tx Buffer Data Field Size" group="TX Buffers Setting" default="8" visible="true" editable="true" desc="Tx Buffer Data Field Size.">
|
|
<Entry name="8 Byte Data Field" value="8" visible="true" />
|
|
<Entry name="12 Byte Data Field" value="12" visible="true" />
|
|
<Entry name="16 Byte Data Field" value="16" visible="true" />
|
|
<Entry name="20 Byte Data Field" value="20" visible="true" />
|
|
<Entry name="24 Byte Data Field" value="24" visible="true" />
|
|
<Entry name="32 Byte Data Field" value="32" visible="true" />
|
|
<Entry name="48 Byte Data Field" value="48" visible="true" />
|
|
<Entry name="64 Byte Data Field" value="64" visible="true" />
|
|
</ParamChoice>
|
|
<ParamString id="txBufferDataSize" name="Tx Buffer Data Field Size ENUM" group="TX Buffers Setting" default="CY_CANFD_BUFFER_DATA_SIZE_`${txBufferDataValue}`" visible="false" editable="false" desc="Tx Buffer Data Field Size." />
|
|
<ParamRange id="noOfTxBuffers" name="Number of Tx Buffers" group="TX Buffers Setting" default="1" min="0" max="32" resolution="1" visible="true" editable="true" desc="Number of Tx Buffers." />
|
|
|
|
<Repeat count="32">
|
|
<!-- TX Buffer #$idx -->
|
|
<ParamChoice id="xtd_$idx" name="XTD" group="TX Buffer #$idx" default="CY_CANFD_XTD_STANDARD_ID" visible="`${noOfTxBuffers > $idx}`" editable="true" desc="Extended Identifier (TX Buffer #$idx).">
|
|
<Entry name="11-bit Standard Identifier" value="CY_CANFD_XTD_STANDARD_ID" visible="true" />
|
|
<Entry name="29-bit Extended Identifier" value="CY_CANFD_XTD_EXTENDED_ID" visible="true" />
|
|
</ParamChoice>
|
|
<ParamRange id="id_$idx" name="Identifier" group="TX Buffer #$idx" default="0" min="0" max="`${xtd_$idx eq CY_CANFD_XTD_STANDARD_ID ? 2047 : 536870911}`" resolution="1" visible="`${noOfTxBuffers > $idx}`" editable="true" desc="Standard or extended identifier of TX Buffer #$idx (depending on bit XTD)." />
|
|
<ParamChoice id="rtr_$idx" name="RTR" group="TX Buffer #$idx" default="CY_CANFD_RTR_DATA_FRAME" visible="`${noOfTxBuffers > $idx}`" editable="true" desc="Remote Transmission Request (TX Buffer #$idx). When RTR = 1, the M_TTCAN transmits a remote frame according to ISO 11898-1:2015.">
|
|
<Entry name="Data Frame" value="CY_CANFD_RTR_DATA_FRAME" visible="true" />
|
|
<Entry name="Remote Frame" value="CY_CANFD_RTR_REMOTE_FRAME" visible="true" />
|
|
</ParamChoice>
|
|
<ParamChoice id="esi_$idx" name="ESI" group="TX Buffer #$idx" default="CY_CANFD_ESI_ERROR_ACTIVE" visible="`${(noOfTxBuffers > $idx) && (mode)}`" editable="true" desc="Error State Indicator in CAN FD format (TX Buffer #$idx).">
|
|
<Entry name="ESI bit depends only on Error Passive Flag" value="CY_CANFD_ESI_ERROR_ACTIVE" visible="true" />
|
|
<Entry name="ESI bit transmitted recessive" value="CY_CANFD_ESI_ERROR_PASSIVE" visible="true" />
|
|
</ParamChoice>
|
|
|
|
<ParamRange id="dlc_$idx" name="DLC" group="TX Buffer #$idx" default="0" min="0" max="15" resolution="1" visible="`${noOfTxBuffers > $idx}`" editable="true" desc="Data Length Code (TX Buffer #$idx)." />
|
|
<ParamChoice id="fdf_$idx" name="FDF" group="TX Buffer #$idx" default="CY_CANFD_FDF_STANDARD_FRAME" visible="`${(noOfTxBuffers > $idx) && (mode)}`" editable="true" desc="FD Format (TX Buffer #$idx).">
|
|
<Entry name="Classic CAN Format" value="CY_CANFD_FDF_STANDARD_FRAME" visible="true" />
|
|
<Entry name="CAN FD Format" value="CY_CANFD_FDF_CAN_FD_FRAME" visible="true" />
|
|
</ParamChoice>
|
|
<ParamBool id="brs_$idx" name="BRS" group="TX Buffer #$idx" default="false" visible="`${(noOfTxBuffers > $idx) && (mode)}`" editable="true" desc="Enable Bit Rate Switching (TX Buffer #$idx)." />
|
|
<ParamBool id="efc_$idx" name="EFC" group="TX Buffer #$idx" default="false" visible="`${noOfTxBuffers > $idx}`" editable="true" desc="Enable Event FIFO control (TX Buffer #$idx)." />
|
|
<ParamRange id="mm_$idx" name="MM" group="TX Buffer #$idx" default="0" min="0" max="255" resolution="1" visible="`${noOfTxBuffers > $idx}`" editable="true" desc="Message marker (TX Buffer #$idx)." />
|
|
|
|
<ParamRange id="data_0_$idx" name="Data_0" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx)}`" editable="true" desc="32-bit word Data 0 (Data Bytes 0-3)." />
|
|
<ParamRange id="data_1_$idx" name="Data_1" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx)}`" editable="true" desc="32-bit word Data 1 (Data Bytes 4-7)." />
|
|
<ParamRange id="data_2_$idx" name="Data_2" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 8)}`" editable="true" desc="32-bit word Data 2 (Data Bytes 8-11)." />
|
|
<ParamRange id="data_3_$idx" name="Data_3" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 12)}`" editable="true" desc="32-bit word Data 3 (Data Bytes 12-15)." />
|
|
<ParamRange id="data_4_$idx" name="Data_4" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 16)}`" editable="true" desc="32-bit word Data 4 (Data Bytes 16-19)." />
|
|
<ParamRange id="data_5_$idx" name="Data_5" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 20)}`" editable="true" desc="32-bit word Data 5 (Data Bytes 20-23)." />
|
|
<ParamRange id="data_6_$idx" name="Data_6" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 24)}`" editable="true" desc="32-bit word Data 6 (Data Bytes 24-27)." />
|
|
<ParamRange id="data_7_$idx" name="Data_7" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 24)}`" editable="true" desc="32-bit word Data 7 (Data Bytes 28-31)." />
|
|
<ParamRange id="data_8_$idx" name="Data_8" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 32)}`" editable="true" desc="32-bit word Data 8 (Data Bytes 32-35)." />
|
|
<ParamRange id="data_9_$idx" name="Data_9" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 32)}`" editable="true" desc="32-bit word Data 9 (Data Bytes 36-39)." />
|
|
<ParamRange id="data_10_$idx" name="Data_10" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 32)}`" editable="true" desc="32-bit word Data 10 (Data Bytes 40-43)." />
|
|
<ParamRange id="data_11_$idx" name="Data_11" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 32)}`" editable="true" desc="32-bit word Data 11 (Data Bytes 44-47)." />
|
|
<ParamRange id="data_12_$idx" name="Data_12" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 48)}`" editable="true" desc="32-bit word Data 12 (Data Bytes 48-51)." />
|
|
<ParamRange id="data_13_$idx" name="Data_13" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 48)}`" editable="true" desc="32-bit word Data 13 (Data Bytes 52-55)." />
|
|
<ParamRange id="data_14_$idx" name="Data_14" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 48)}`" editable="true" desc="32-bit word Data 14 (Data Bytes 56-59)." />
|
|
<ParamRange id="data_15_$idx" name="Data_15" group="TX Buffer #$idx" default="0" min="0" max="4294967295" resolution="1" visible="`${(noOfTxBuffers > $idx) && (txBufferDataValue > 48)}`" editable="true" desc="32-bit word Data 15 (Data Bytes 60-63)." />
|
|
</Repeat>
|
|
|
|
<!-- CAN FD instance number -->
|
|
<ParamString id="instNumber" name="Instance number" group="Internal" default="`${getInstNumber("canfd")}`" visible="false" editable="false" desc="CAN FD Instance name number." />
|
|
<ParamRange id="channel" name="Channel Number" group="Internal" default="`${getInstNumber("chan")}`" min="0" max="8" resolution="1" visible="false" editable="false" desc="CAN FD Channel number" />
|
|
|
|
<!-- Other -->
|
|
<ParamBool id="inFlash" name="Store Config in Flash" group="Advanced" default="true" visible="true" editable="true" desc="Controls whether the configuration structure is stored in flash (const, true) or SRAM (not const, false)." />
|
|
|
|
<!-- Message RAM -->
|
|
<ParamRange id="consumedMRAM" name="Consumed Message RAM" group="Message RAM" default="`${4 * numberOfSIDFilters + 8 * numberOfEXTIDFilters + (8 + rxFifo0DataValue) * numberOfFifo0Elements + (8 + rxFifo1DataValue) * numberOfFifo1Elements + (8 + rxBufferDataValue) * noOfRxBuffers + 8 * noOfTxEvenFifo + (8 + txBufferDataValue) * noOfTxBuffers}`" min="0" max="4294967295" resolution="1" visible="false" editable="false" desc="Consumed Message RAM in bytes." />
|
|
<ParamString id="consumedMRAMstring" name="Consumed Message RAM" group="Message RAM" default="`${consumedMRAM . " bytes"}`" visible="true" editable="false" desc="Consumed Message RAM in bytes." />
|
|
|
|
<!-- Peripheral clock divider connection -->
|
|
<ParamString id="pclk" name="PCLK" group="Internal" default="`${getBlockFromSignal("clock_can[0]")}`" visible="false" editable="false" desc="Connected peripheral clock divider (PCLK)" />
|
|
<ParamBool id="pclkOk" name="PCLK Valid" group="Internal" default="`${hasConnection("clock_can", 0) && isBlockUsed(pclk)}`" visible="false" editable="false" desc="Checks whether there is a PCLK connected and enabled" />
|
|
<ParamString id="pclkDst" name="PCLK Destination" group="Internal" default="PCLK_CANFD`${instNumber}`_CLOCK_CAN`${channel}`" visible="false" editable="false" desc="" />
|
|
</Parameters>
|
|
|
|
<DRCs>
|
|
<!--MRAM DRCs-->
|
|
<DRC type="ERROR" text="Consumed Message RAM exceeds the Message RAM size." condition="`${(consumedMRAM > messageRAMsize) ? true : false}`" />
|
|
|
|
<!--Bit Rate DRCs-->
|
|
<DRC type="ERROR" text="Nominal Synchronization Jump Width must be less than Nominal Time Segment 1." condition="`${(nominalSyncJumpWidth > nominalTimeSegment1) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Nominal Synchronization Jump Width must be less than Nominal Time Segment 2." condition="`${(nominalSyncJumpWidth > nominalTimeSegment2) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Data Synchronization Jump Width must be less than Data Time Segment 1." condition="`${((dataSyncJumpWidth > dataTimeSegment1) && (mode)) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Data Synchronization Jump Width must be less than Data Time Segment 2." condition="`${((dataSyncJumpWidth > dataTimeSegment2) && (mode)) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Data Bit Rate must be greater than or equal to Nominal Bit Rate." condition="`${((nominalBaudRateBps > dataBaudRateBps) && (mode)) ? true : false}`"/>
|
|
|
|
<!--Standard ID filter DRCs-->
|
|
<DRC type="ERROR" text="SFID2 for SID Filter $idx must be greater than or equal to SFID1." condition="`${(sfid1_SidFilter$idx > sfid2_SidFilter$idx) && (numberOfSIDFilters > $idx) && (sfecSidFilter$idx ne CY_CANFD_SFEC_STORE_RX_BUFFER) ? true : false}`" repeatCount="128" />
|
|
<DRC type="ERROR" text="EFID2 for XID Filter $idx must be greater than or equal to EFID1." condition="`${(efid1_XidFilter$idx > efid2_XidFilter$idx) && (numberOfEXTIDFilters > $idx) && (efecXidFilter$idx ne CY_CANFD_EFEC_STORE_RX_BUFFER) ? true : false}`" repeatCount="64" />
|
|
|
|
<!--FIFO DRCs-->
|
|
<DRC type="ERROR" text="Rx FIFO 0 Size must be greater than Rx FIFO 0 Watermark." condition="`${((watermarkFifo0 ge numberOfFifo0Elements) && (numberOfFifo0Elements ne 0)) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Rx FIFO 1 Size must be greater than Rx FIFO 1 Watermark." condition="`${((watermarkFifo1 ge numberOfFifo1Elements) && (numberOfFifo1Elements ne 0)) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Rx FIFO 0 Size must be greater than 1 when FIFO 0 Top Pointer Logic Enabled." condition="`${(topPointerLogicEnabledFifo0 && (numberOfFifo0Elements < 2)) ? true : false}`"/>
|
|
<DRC type="ERROR" text="Rx FIFO 1 Size must be greater than 1 when FIFO 1 Top Pointer Logic Enabled." condition="`${(topPointerLogicEnabledFifo1 && (numberOfFifo1Elements < 2)) ? true : false}`"/>
|
|
</DRCs>
|
|
|
|
<ConfigFirmware>
|
|
<ConfigInclude value="cy_canfd.h" include="true" />
|
|
<ConfigInclude value="cy_sysclk.h" include="`${pclkOk}`" />
|
|
<ConfigInclude value="cyhal_hwmgr.h" include="true" guard="defined (CY_USING_HAL)" />
|
|
|
|
<ConfigDefine name="`${INST_NAME}`_HW" value="CANFD`${instNumber}`" public="true" include="true" />
|
|
<ConfigDefine name="`${INST_NAME}`_CHANNEL" value="CANFD`${instNumber}`_CH`${channel}`" public="true" include="true" />
|
|
<ConfigDefine name="`${INST_NAME}`_STD_ID_FILTER_ID_$idx" value="$idx" public="true" include="`${numberOfSIDFilters > $idx}`" repeatCount="128"/>
|
|
<ConfigDefine name="`${INST_NAME}`_EXT_ID_FILTER_ID_$idx" value="$idx" public="true" include="`${numberOfEXTIDFilters > $idx}`" repeatCount="64"/>
|
|
<ConfigDefine name="`${INST_NAME}`_DATA_$idx" value="$idx" public="true" include="true" repeatCount="16"/>
|
|
<ConfigDefine name="`${INST_NAME}`_IRQ_0" value="canfd_`${instNumber}`_interrupts0_`${channel}`_IRQn" public="true" include="true" />
|
|
<ConfigDefine name="`${INST_NAME}`_IRQ_1" value="canfd_`${instNumber}`_interrupts1_`${channel}`_IRQn" public="true" include="true" />
|
|
|
|
<ConfigDefine name="STD_ID_FILTER_$idx" public="false"
|
|
include="`${numberOfSIDFilters > $idx}`" repeatCount="128" value="\
{\

|
|
.sfid2 = `${(sfecSidFilter$idx ne CY_CANFD_SFEC_STORE_RX_BUFFER) ?
|
|
sfid2_SidFilter$idx :
|
|
((sfid2_10_9_SidFilter$idx << 9U) | sfid2_5_0_SidFilter$idx)}`U, \

|
|
.sfid1 = `${sfid1_SidFilter$idx}`U, \

|
|
.sfec = `${sfecSidFilter$idx}`, \

|
|
.sft = `${sftSidFilterVal$idx}`, \

|
|
}" />
|
|
<ConfigDefine name="EXT_ID_FILTER_$idx" public="false"
|
|
include="`${numberOfEXTIDFilters > $idx}`" repeatCount="64" value="\
{\

|
|
.f0_f = &`${INST_NAME . "_extIdFilterF0Config_$idx"}`, \

|
|
.f1_f = &`${INST_NAME . "_extIdFilterF1Config_$idx"}`, \

|
|
}" />
|
|
|
|
<ConfigStruct name="`${txCallback . "(void)"}`" type="void" const="false" public="true" include="`${txCallback ne "NULL"}`" isArray="false" >
|
|
</ConfigStruct>
|
|
<ConfigStruct name="`${rxCallback . "(bool rxFIFOMsg, uint8_t msgBufOrRxFIFONum, cy_stc_canfd_rx_buffer_t* basemsg)"}`" type="void" const="false" public="true" include="`${rxCallback ne "NULL"}`" isArray="false" >
|
|
</ConfigStruct>
|
|
<ConfigStruct name="`${errorCallback . "(uint32_t errorMask)"}`" type="void" const="false" public="true" include="`${errorCallback ne "NULL"}`" isArray="false" >
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_nominalBitrateConfig"}`" type="cy_stc_canfd_bitrate_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="prescaler" value="`${nominalPrescaler}`U - 1U" />
|
|
<Member name="timeSegment1" value="`${nominalTimeSegment1}`U - 1U" />
|
|
<Member name="timeSegment2" value="`${nominalTimeSegment2}`U - 1U" />
|
|
<Member name="syncJumpWidth" value="`${nominalSyncJumpWidth}`U - 1U" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_dataBitrateConfig"}`" type="cy_stc_canfd_bitrate_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="prescaler" value="`${dataPrescaler}`U - 1U" />
|
|
<Member name="timeSegment1" value="`${dataTimeSegment1}`U - 1U" />
|
|
<Member name="timeSegment2" value="`${dataTimeSegment2}`U - 1U" />
|
|
<Member name="syncJumpWidth" value="`${dataSyncJumpWidth}`U - 1U" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_tdcConfig"}`" type="cy_stc_canfd_transceiver_delay_compensation_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="tdcEnabled" value="`${tdcEnabled}`" />
|
|
<Member name="tdcOffset" value="`${tdcOffset}`U" />
|
|
<Member name="tdcFilterWindow" value="`${tdcFilterWindow}`U" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_stdIdFilter_$idx"}`" type="cy_stc_id_filter_t" const="`${inFlash}`" public="true" include="`${numberOfSIDFilters > $idx}`" repeatCount="128">
|
|
<Member name="sfid2" value="`${(sfecSidFilter$idx ne CY_CANFD_SFEC_STORE_RX_BUFFER) ?
|
|
sfid2_SidFilter$idx :
|
|
((sfid2_10_9_SidFilter$idx << 9U) | sfid2_5_0_SidFilter$idx)}`U" />
|
|
<Member name="sfid1" value="`${sfid1_SidFilter$idx}`U" />
|
|
<Member name="sfec" value="`${sfecSidFilter$idx}`" />
|
|
<Member name="sft" value="`${sftSidFilterVal$idx}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_stdIdFilters"}`" type="cy_stc_id_filter_t" isArray="true" const="`${inFlash}`" public="false" include="true">
|
|
<Member name="`${##}`" value="STD_ID_FILTER_`${##}`" include="`${numberOfSIDFilters > ##}`" count="128"/>
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_sidFiltersConfig"}`" type="cy_stc_canfd_sid_filter_config_t" const="`${inFlash}`" public="false" include="true">
|
|
<Member name="numberOfSIDFilters" value="`${numberOfSIDFilters}`U" />
|
|
<Member name="sidFilter" value="`${INST_NAME . "_stdIdFilters"}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_extIdFilterF0Config_$idx"}`" type="cy_stc_canfd_f0_t" const="`${inFlash}`" public="true" include="`${numberOfEXTIDFilters > $idx}`" repeatCount="64">
|
|
<Member name="efid1" value="`${efid1_XidFilter$idx}`U" />
|
|
<Member name="efec" value="`${efecXidFilter$idx}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_extIdFilterF1Config_$idx"}`" type="cy_stc_canfd_f1_t" const="`${inFlash}`" public="true" include="`${numberOfEXTIDFilters > $idx}`" repeatCount="64">
|
|
<Member name="efid2" value="`${(efecXidFilter$idx ne CY_CANFD_EFEC_STORE_RX_BUFFER) ?
|
|
efid2_XidFilter$idx :
|
|
((efid2_10_9_XidFilter$idx << 9U) | efid2_5_0_XidFilter$idx)}`U" />
|
|
<Member name="eft" value="`${eftXidFilter$idx}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_extIdFilter_$idx"}`" type="cy_stc_extid_filter_t" const="`${inFlash}`" public="true" include="`${numberOfEXTIDFilters > $idx}`" repeatCount="64">
|
|
<Member name="f0_f" value="&`${INST_NAME . "_extIdFilterF0Config_$idx"}`" />
|
|
<Member name="f1_f" value="&`${INST_NAME . "_extIdFilterF1Config_$idx"}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_extIdFilters"}`" type="cy_stc_extid_filter_t" isArray="true" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="`${##}`" value="EXT_ID_FILTER_`${##}`" include="`${numberOfEXTIDFilters > ##}`" count="64"/>
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_extIdFiltersConfig"}`" type="cy_stc_canfd_extid_filter_config_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="numberOfEXTIDFilters" value="`${numberOfEXTIDFilters}`U" />
|
|
<Member name="extidFilter" value="(cy_stc_extid_filter_t*)&`${INST_NAME . "_extIdFilters"}`" />
|
|
<Member name="extIDANDMask" value="`${extIDANDMask}`UL" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_globalFilterConfig"}`" type="cy_stc_canfd_global_filter_config_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="nonMatchingFramesStandard" value="`${nonMatchingFramesStandard}`" />
|
|
<Member name="nonMatchingFramesExtended" value="`${nonMatchingFramesExtended}`" />
|
|
<Member name="rejectRemoteFramesStandard" value="`${rejectRemoteFramesStandard}`" />
|
|
<Member name="rejectRemoteFramesExtended" value="`${rejectRemoteFramesExtended}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_rxFifo0Config"}`" type="cy_en_canfd_fifo_config_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="mode" value="`${modeFifo0}`" />
|
|
<Member name="watermark" value="`${watermarkFifo0}`U" />
|
|
<Member name="numberOfFIFOElements" value="`${numberOfFifo0Elements}`U" />
|
|
<Member name="topPointerLogicEnabled" value="`${topPointerLogicEnabledFifo0}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_rxFifo1Config"}`" type="cy_en_canfd_fifo_config_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="mode" value="`${modeFifo1}`" />
|
|
<Member name="watermark" value="`${watermarkFifo1}`U" />
|
|
<Member name="numberOfFIFOElements" value="`${numberOfFifo1Elements}`U" />
|
|
<Member name="topPointerLogicEnabled" value="`${topPointerLogicEnabledFifo1}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_config"}`" type="cy_stc_canfd_config_t" const="`${inFlash}`" public="true" include="true">
|
|
<Member name="txCallback" value="`${txCallback}`" />
|
|
<Member name="rxCallback" value="`${rxCallback}`" />
|
|
<Member name="errorCallback" value="`${errorCallback}`" />
|
|
<Member name="canFDMode" value="`${mode ? "true" : "false"}`" />
|
|
<Member name="bitrate" value="&`${INST_NAME . "_nominalBitrateConfig"}`" />
|
|
<Member name="fastBitrate" value="&`${INST_NAME . "_dataBitrateConfig"}`" />
|
|
<Member name="tdcConfig" value="&`${INST_NAME . "_tdcConfig"}`" />
|
|
<Member name="sidFilterConfig" value="&`${INST_NAME . "_sidFiltersConfig"}`" />
|
|
<Member name="extidFilterConfig" value="&`${INST_NAME . "_extIdFiltersConfig"}`" />
|
|
<Member name="globalFilterConfig" value="&`${INST_NAME . "_globalFilterConfig"}`" />
|
|
<Member name="rxBufferDataSize" value="`${rxBufferDataSize}`" />
|
|
<Member name="rxFIFO1DataSize" value="`${rxFifo1DataSize}`" />
|
|
<Member name="rxFIFO0DataSize" value="`${rxFifo0DataSize}`" />
|
|
<Member name="txBufferDataSize" value="`${txBufferDataSize}`" />
|
|
<Member name="rxFIFO0Config" value="&`${INST_NAME . "_rxFifo0Config"}`" />
|
|
<Member name="rxFIFO1Config" value="&`${INST_NAME . "_rxFifo1Config"}`" />
|
|
<Member name="noOfRxBuffers" value="`${noOfRxBuffers}`U" />
|
|
<Member name="noOfTxBuffers" value="`${noOfTxBuffers}`U" />
|
|
<Member name="messageRAMaddress" value="CY_CAN0MRAM_BASE + `${messageRAMaddress}`U" />
|
|
<Member name="messageRAMsize" value="`${messageRAMsize}`U" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_T0RegisterBuffer_$idx"}`" type="cy_stc_canfd_t0_t" const="false" public="true" include="`${noOfTxBuffers > $idx}`" repeatCount="32">
|
|
<Member name="id" value="`${id_$idx}`U" />
|
|
<Member name="rtr" value="`${((fdf_$idx eq CY_CANFD_FDF_CAN_FD_FRAME) && (mode)) ? CY_CANFD_RTR_DATA_FRAME : rtr_$idx}`" />
|
|
<Member name="xtd" value="`${xtd_$idx}`" />
|
|
<Member name="esi" value="`${esi_$idx}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_T1RegisterBuffer_$idx"}`" type="cy_stc_canfd_t1_t" const="false" public="true" include="`${noOfTxBuffers > $idx}`" repeatCount="32">
|
|
<Member name="dlc" value="`${dlc_$idx}`U" />
|
|
<Member name="brs" value="`${brs_$idx}`" />
|
|
<Member name="fdf" value="`${mode ? fdf_$idx : CY_CANFD_FDF_STANDARD_FRAME}`" />
|
|
<Member name="efc" value="`${efc_$idx}`" />
|
|
<Member name="mm" value="`${mm_$idx}`U" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_dataBuffer_$idx"}`" type="uint32_t" isArray="true" const="false" public="true" include="`${noOfTxBuffers > $idx}`" repeatCount="32">
|
|
<Member name="`${INST_NAME}`_DATA_0" value="`${data_0_$idx}`U" include="true" />
|
|
<Member name="`${INST_NAME}`_DATA_1" value="`${data_1_$idx}`U" include="true" />
|
|
<Member name="`${INST_NAME}`_DATA_2" value="`${data_2_$idx}`U" include="`${(txBufferDataValue > 8)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_3" value="`${data_3_$idx}`U" include="`${(txBufferDataValue > 12)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_4" value="`${data_4_$idx}`U" include="`${(txBufferDataValue > 16)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_5" value="`${data_5_$idx}`U" include="`${(txBufferDataValue > 20)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_6" value="`${data_6_$idx}`U" include="`${(txBufferDataValue > 24)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_7" value="`${data_7_$idx}`U" include="`${(txBufferDataValue > 24)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_8" value="`${data_8_$idx}`U" include="`${(txBufferDataValue > 32)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_9" value="`${data_9_$idx}`U" include="`${(txBufferDataValue > 32)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_10" value="`${data_10_$idx}`U" include="`${(txBufferDataValue > 32)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_11" value="`${data_11_$idx}`U" include="`${(txBufferDataValue > 32)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_12" value="`${data_12_$idx}`U" include="`${(txBufferDataValue > 48)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_13" value="`${data_13_$idx}`U" include="`${(txBufferDataValue > 48)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_14" value="`${data_14_$idx}`U" include="`${(txBufferDataValue > 48)}`" />
|
|
<Member name="`${INST_NAME}`_DATA_15" value="`${data_15_$idx}`U" include="`${(txBufferDataValue > 48)}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME . "_txBuffer_$idx"}`" type="cy_stc_canfd_tx_buffer_t" const="false" public="true" include="`${noOfTxBuffers > $idx}`" repeatCount="32">
|
|
<Member name="t0_f" value="&`${INST_NAME . "_T0RegisterBuffer_$idx"}`" />
|
|
<Member name="t1_f" value="&`${INST_NAME . "_T1RegisterBuffer_$idx"}`" />
|
|
<Member name="data_area_f" value="`${INST_NAME . "_dataBuffer_$idx"}`" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigStruct name="`${INST_NAME}`_obj" type="cyhal_resource_inst_t" const="true" public="true" include="true" guard="defined (CY_USING_HAL)">
|
|
<Member name="type" value="CYHAL_RSC_CAN" />
|
|
<Member name="block_num" value="`${getInstNumber("canfd")}`U" />
|
|
<Member name="channel_num" value="`${getInstNumber("chan")}`U" />
|
|
</ConfigStruct>
|
|
|
|
<ConfigInstruction value="Cy_SysClk_PeriphAssignDivider(`${pclkDst}`, `${getExposedMember(pclk, "clockSel")}`);" include="`${pclkOk}`" />
|
|
<ConfigInstruction value="cyhal_hwmgr_reserve(&`${INST_NAME}`_obj);" include="true" guard="defined (CY_USING_HAL)" />
|
|
|
|
</ConfigFirmware>
|
|
|
|
</Personality>
|