Version: **
In addition to DMA descriptors for Single, 1D and 2D transfers the Peripheral DMA (P-DMA) in TRAVEO™ T2G also supports a Cyclic Redundancy Code (CRC) transfer descriptor type.
Following hints and considerations may be helpful when using this descriptor type:
Post-processing of CRC result
CRC standards define the following post-processing operations that must be applied to the result of a CRC calculation:
The post-processed result of a completed P-DMA CRC calculation is only available in the DWx_CRC_REM_RESULT0 register, where the configured destination address (DST_ADDR) of the CRC transfer will only hold the result without post-processing (matching DWx_CRC_LFSR_CTL0).
By using the feature of DMA descriptor chaining, it is possible to transfer the post-processed result to the desired target memory as well. This may be useful when the CRC result shall be appended to the memory buffer that holds the data for which the CRC had been calculated (for example, before transmitting it over SPI).
Consider the following three common scenarios:
1.CRC length is 32-bit.
A descriptor for a Single transfer can be chained with the following parameters:
2. CRC length is 8-bit or 16-bit and DWx_CRC_CTL0. REM_REVERSE == 0 (no bit reversal)
A descriptor for a Single transfer can be chained with the following parameters:
3.CRC length is 8-bit or 16-bit and DWx_CRC_CTL0. REM_REVERSE == 1 (bit reversal)
Due to the bit reversal, the relevant result value is stored in the most significant byte(s) of DWx_CRC_REM_RESULT0. This register can be only accessed with 32-bit and the type casting via DATA_SIZE would only operate on the least significant byte(s). Therefore, an intermediate step is necessary that copies the DWx_CRC_REM_RESULT0 value somewhere to SRAM, because the SRAM would then allow arbitrary access width in the second step.
This means two descriptors for Single transfers should be chained with the following parameters:
Additional notes:
Shared CRC unit / Mutual exclusive CRC calculations
There is only one single CRC register set per P-DMA instance, which holds the state and the settings for a CRC calculation. To prevent corruptions, a channel with an active CRC calculation must not be preempted by another channel executing a CRC descriptor before the post-processed CRC result from DWx_CRC_REM_RESULT0 has been backed-up or evaluated by the user.
Following possibilities exist:
Version: **
GTM (Generic Timer Module) implemented in AURIX™ TC2xx supports only up counter mode. GTM implemented in AURIX™ TC3xx supports up-down counter mode.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
In the VADC module, one ADC converter has one dedicated Sample&Hold unit (no multiple S&H units).
Therefore, the maximum number of analog input channels that can be measured simultaneously is up to the maximum number of the AD converters implemented in the VADC module.
(For example, VADC of TC27x has eight AD converters. Therefore, up to eight analog input channels can be measured simultaneously.)
For more details, see the “Summary of Features” section in the datasheet.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
There is no specific crystal recommendation for AURIX™ MCUs. All typical crystals in the market in the specified frequency range should run with these MCUs. The crystal specifications can be found in the device-specific datasheet. For more details on crystal fundamentals, see the AP56002 application note.
Note : This KBA applies to the following series of AURIX™ MCUs:
Version: **
If the Auto-discover compiler include paths is disabled, right-click on the folder to quickly add or remove a folder from the compiler include paths. Select the required action under C/C++ Compiler Includes to add or remove the folder as shown in the following figure.
Alternatively, include paths can be manually edited by accessing the C/C++ Build / Settings.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
To create a library project in AURIX™ Development Studio, do the following:
Figure 1 Selecting New AURIX™ Project
Figure 4 Selecting the target Device
Figure 5 Library project
Version: **
The metadata of an object can be changed if the Life cycle state Object (LcsO) of the object is not in operational or termination state. If the object is in operational state, use the protected update with necessary access conditions for the metadata update.
The Protected Update feature allows you to make an integrity protected update of any data object (not key objects) on the OPTIGA™ Trust M V1. OPTIGA™ Trust M V3 allows integrity and confidentiality protected update of any data objects including key objects. The following objects are excluded from the integrity protected update:
Figure 1 shows the high-level structure of the updated data set for data or key objects along with manifest and the connected binary data.
Figure 1 Structure of the Manifest
The coding of the structure is according to [CBOR]. The [CDDL] format for the manifest and signature structures are provided in the package.
Manifest is a top-level construct that ties all other structures together and is signed by an authorized entity whose identity is represented by a trust anchor installed in OPTIGA™. The trust anchor is addressed by its unique Object Identifier (OID), which is contained in the metadata of the manifest.
Manifest consists of the metadata in plain text, the payload or fragment binding, and the signature over metadata and payload binding. Data to be updated is organized in the form of fragments. Each fragment consists of data and hash of next fragment except the last fragment. Payload binding is the hash of the first fragment.
The integrity protection of the object data is based on the successful verification of the signature over the metadata and fragment binding hash value.
The confidentiality protection is based on a shared secret installed at OPTIGA™. See section 6.7.1 of the Solution Reference Manual for the details regarding key derivation, encryption, and decryption.
In order to generate manifest according to [CBOR], you can use the tool present in GitHub.
Manifest generation using the CBOR tool needs inputs such as Trust Anchor OID (the public key for verification), Target OID, private key for signing the manifest, payload type (data or key or metadata), which are described in GitHub. See GitHub for sample update datasets.
Necessary access conditions for update:
Metadata Update Process:
Following is an example of updating the metadata of an object with OID as 0xE0E2 (Public Key Certificate) and whose LcsO status is in operational:
Figure 2 Metadata of Target OID
Figure 3 Metadata of Trust Anchor OID
Figure 4 Generating Manifest
Figure 5 Generated Manifest
Figure 6 Protected Update Process
Version: **
In AURIX™ MCUs, program flash has 20 years of data retention time while the data flash has 10 years. Because the program flash is written only a few times or maybe only once during production while data flash is written continuously in some applications. Both flash types use different technologies, so the retention time is also different.
Note that the 10-years data retention for data flash is valid only in the case of data written once and never updated again.
Table 1 Flash target parameters for TC29x
Parameter |
Symbol |
Values |
Unit |
Note / test condition |
||
Min. |
Typ. |
Max. |
|
|
||
Program flash retention time, sector |
tRET CC |
20 |
- |
- |
years |
Max. 1000 erase/program cycles |
Data flash endurance per EEPROMx sector |
NE_EEP10 CC |
125000 |
- |
- |
cycles |
Max. data retention time 10 years |
Data flash endurance per HSMx sector |
NE_HSM CC |
125000 |
- |
- |
cycles |
Max. data retention time 10 years |
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
The tools available in the toolchain, enables the user to manually add flags by editing the Command line pattern under the Expert settings.
Open the Build settings of a project, right-click on a project, then select the Properties -> C/C++ Build -> Settings -> TASKING C/C++ Compiler.
Additional flags can be added manually after the placeholder ${FLAGS} in the Command line pattern text field, as shown in the figure below.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
In AURIX™ TC2xx, the maximum GTM (Generic Timer Module) clock frequency is 100 MHz; therefore, the highest resolution can be 10 ns.
In AURIX™ TC3xx, the maximum GTM clock frequency is 200 MHz; therefore, the resolution is higher up to 5 ns.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
The exposed die pad is used for cooling purposes and to allow better heat dissipation. It should be placed on the bottom side of the VQFN-8-4 package layout. The exposed die pad, referenced as (C) in the following figure, must be connected to the common ground reference (GND) for heat distribution. This ensures a big copper plane for optimal thermal dissipation and avoids electrostatic discharge (ESD).
The contacts and their functionality are given in the following table
Version: **
The net bandwidth, which can be achieved with HSSL, varies in a wide range from just a fraction up to ~82% of the maximal available bandwidth of 320 MBaud. By knowing the deterministic timings of the different HSSL commands, the feasibility of an intended application use case can be planned and optimized.
Here, the timings are summarized as bare metal, which means, the impact of the less deterministic and application-specific software timings are not considered to the most extent possible.
READ transaction timings
A READ request/response-pair is triggered from the initiator’s side by writing to the Initiator Read Write Address register IRWA.ADDRESS of the respective channel. The processing within the initiator’s HSSL peripheral takes some latency until the READ frame appears on the wire. Once the last bit appears on the wire, the target’s HSSL peripheral processes the request, executes the read command - which adds some more latency - until the target responds with a READRESPONSE frame, which is sent back to the initiator. After the initiator processes the response, the transaction is completed by resetting the ICON.BSY-flag of the respective channel. This is illustrated in the following figure.
Note: The timings above do not include the register access time of the local CPU to configure and set up the HSSL READ-command itself. Those timings are left out intentionally, because of their software architecture and application-specific nature. To take the access time to the HSSL registers roughly into account, an add-on of approximately 0.35 µs is a good estimation or indication for both, the TC3xx and TC4xx families.
From the table above, it is clear that reducing the baud rate (160 Mbaud, 80 Mbaud) increases the hardware latencies. This increase does not scale linearly, because only a portion of the HSSL peripheral module operates on the selected baud rate, while a major part of the module still operates on the nominal peripheral’s module clock of 320 MHz. Therefore, the net bus utilization (in the range from ~11% to ~15%) is slightly better on lower baud rates than on higher baudrates.
WRITE transaction timings
Similar to the READ command, a WRITE request/response-pair is triggered from the initiator’s side by writing to the Initiator Read Write Address register IRWA.ADDRESS of the respective channel. The hardware latency characteristics are the same as those in the READ-commands. When the initiator has received and processed the ACK-response from the target, the transaction is completed, by resetting the ICON.BSY-fla of the respective channel. This is illustrated in the following figure.
In the following table, the theoretical bus_active time is the calculated time, which is consumed for the bits on the wire at the given baud rate. The hardware latencies add to further delays to the total transaction time which is needed for the complete request/response pair. The total transaction time for writing 32 bits is then set in relation with the baud rate to calculate the utilization of the bus:
Note : The timings above do not include the register access time of the local CPU to configure and set up the HSSL READ-command itself. Those timings are left out intentionally, because of their software architecture and application-specific nature. To take the access time to the HSSL registers roughly into account, an add-on of approximately 0.35 µs is a good estimation or indication for both, the TC3xx and TC4xx families.
Latencies and timings of a WRITE-transaction are largely comparable to those of a READ-transaction. Also, for WRITE-transactions, the net bandwidth utilization (in the range from ~11% to ~15%) is slightly better on lower baud rates than on higher baud rates.
STREAMING transaction timings
The Streaming mode is preferred to reach the maximum net bandwidth utilization. Within one STREAM-frame of 313 bits, a total payload of 256 bits is transferred as shown in the following figure.
For a high number of STREAM frames, the overhead of the last ACK-frame and the bus latencies can be ignored. In this case the net bandwidth utilization approximates to its maximum. To calculate it, only the STREAM frames and the payload they carry need to be considered:
Max. net bandwidth utilization = 256 bits / 313 bits = 81.8%
Before starting the streaming, ensure the following:
Once both devices are configured for the streaming transaction, the streaming is triggered by the initiator, by setting MFLAGSSET.ISBS. Once the streaming is complete, the MFLAGS.ISB flag is reset by the initiator’s HSSL module peripheral as shown in the following figure:
Hardware latency overhead on streaming transactions
As shown in the figure above, for unidirectional streaming, hardware latency adds overhead to the total transaction time at the beginning, when the streaming is triggered and at the end, when the last ACK-frame is received and processed by the initiator.
The overall hardware latency duration is not influenced by the total transaction size but it is influenced by the selected baud rate.
In the following tables, the theoretical bus_active time is the calculated time, which is consumed for the bits on the wire at the given baud rate. The hardware latencies add further delays to the total transaction time, which is needed for the complete streaming transfer. The total transaction time for transferring the data, which is carried inside the STREAM frames is then set in relation with the baud rate to calculate the net bandwidth utilization. The timings for 320 MBaud, 160 MBaud, and 80 MBaud can be found in separate tables below:
The following figure provides a good overview of the bus utilization as a function of the total transferred payload at different baud rates:
Target setup time overhead on streaming transaction
To set up a streaming transaction, both the initiator and target need to be configured for the transfer. For setting up the target, typically the following registers need to be written:
From a software perspective it is useful, if the initiator takes full control of setting up the complete streaming transaction. For this purpose, these registers can be set up on the target remotely, by the initiator, using four HSSL WRITE-commands.
These four HSSL WRITE-commands from the initiator to the target consume a considerable time overhead for every streaming transaction. Therefore, this option and the impact on net bus utilization is considered here:
The typical timing, to set up and execute four HSSL WRITE-commands are:
Note : The timings above also include the typical register access time of the local CPU (each ~0,35 µs) to the HSSL-registers needed to set up the HSSL WRITE-command itself on the initiator. In general, those timings depend on the software architecture and have an application-specific nature. The timings provided here do serve as a good estimation or indication for both the TC3xx and TC4xx families.
Now, taking the overhead of the configurational HSSL WRITE-commands from the initiator to target into account, the following net bus utilization can be reached:
Version: **
This KBA presents the results of performance measurements performed on different combinations of locations of source and store buffers using image-based rendering mode (IBO) and line-based rendering mode (LBO).
Software environment used:
Reference documents:
Software setup:
Figure 1 is a sample image used as the source surface for blitting. The image resolution is 400x480 PPI. Depending on the store and source surfaces configuration, this image is stored in either Video RAM (VRAM), HYPERRAM™, or HYPERFLASH™.
The color format of both source and store surface is chosen as R8G8B8A8.
Every result is recorded over a blit of 300 iterations.
Figure 1 Source image taken for blit (400x480)
Figure 2 Software flow
Table 1 shows the surface configurations used.
Table 1 Timing results captured for different source and store combination
Source surface location |
Store surface location |
Internal flash |
VRAM |
VRAM |
VRAM |
VRAM |
HYPERRAM™ / External RAM |
HYPERRAM™ |
VRAM |
HYPERRAM™ |
HYPERRAM™ |
HYPER FLASH™ |
VRAM |
S26H (HYPERFLASH™) |
S27K (HYPERRAM™) |
PLL400#2 (HF8): 200 MHz |
PLL400#3 (HF9): 200 MHz |
SMIF clock: 100 MHz |
SMIF Clock: 100 MHz |
Setup delay: 3 clock cycles |
Setup delay: 3 clock cycles |
Hold delay: 3 clock cycles |
Hold delay: 1 clock cycles |
Mode: XIP |
Mode: XIP |
Read latency code: 20 |
Read latency code: 4 |
Merge enable with timeout after 4096 cycles |
Merge enable with timeout after 4096 cycles |
Timing results:
Table 3 Internal flash to VRAM
|
Megapixels per second |
Megapixels per second |
LBO/IBO |
IBO |
240.9 |
963.7 |
|
LBO |
205.73 |
822.94 |
0.85 |
Table 4 VRAM to VRAM
|
Megapixels per second |
Megapixels per second |
LBO/IBO |
IBO |
218.85 |
875.40 |
|
LBO |
543.87 |
2127.5 |
2.5 |
Table 5 VRAM to HYPERRAM™
|
Megapixels per second |
Megapixels per second |
LBO/IBO |
IBO |
32.77 |
131.10 |
|
LBO |
515.79 |
2063.16 |
15.73 |
Table 6 HYPERRAM™ to VRAM
|
Megapixels per second |
Megapixels per second |
LBO/IBO |
IBO |
48.9 |
195.66 |
|
LBO |
36.76 |
147.07 |
0.75 |
Table 7 HYPERRAM™ to HYPERRAM™
|
Megapixels per second |
Megapixels per second |
LBO/IBO |
IBO |
15.26 |
61.069 |
|
LBO |
36.6 |
146.38 |
2.4 |
Table 8 HYPERFLASH™ to VRAM
|
Megapixels per second |
Megapixels per second |
LBO/IBO |
IBO |
48.87 |
195.48 |
|
LBO |
32.4 |
129.7 |
0.66 |
Notes:
Note: This KBA applies to the following series of TRAVEO™ MCUs:
TRAVEO™ T2G Cluster CYT3DL series
In the magnetic sensor development tool, Infineon provides complete supporting software and source code based on Arduino platform; However, this article summarizes the usage of MS2GO EVM board based on Dave IDE, and provides the method of using printf() function to output in the console column.
Part 1: How to use printf() in console?
Step 1: Debug -> Debug Configuration -> Startup, as shown in picture;
Step 3: Add "initialise_monitor_handles();" into the main().
int main(void)
{
initialise_monitor_handles();
......
printf(...);
......
}
Part 2: The source code of MS2GO for DAVE
The source code is attached and can output data in LSB form, the way to translate data into real value we need can be found in datasheet,
Version: **
The primary monitor operation is based on tracking an analog-to-digital converter (ADC) to measure the supply voltages. It is clocked and the clock cycle value is updated for every power management controller (PMC) for the AURIX™ TC2xx devices and power management system (PMS) for the AURIX™ TC3xx devices. However, the maximum real reaction time for a fast voltage spike is greater because of the tracking ADC nature. See the datasheet for the tMON (Max) parameter value for primary monitor reaction time.
The secondary monitor on AURIX™ MCU is based on a dedicated 8-bit SAR ADC for each channel VDD, VDDP3. Each channel is sampled with a maximum 600 ns period. In addition, there is a 3x spike filter applied. There is a maximum of 1.8 µs for the reaction time of supervisor mode (SVM).
For more details, see the following sections in the User’s manual:
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
On the AURIX™ TC2XX devices, the modulator and demodulator are used together; therefore, delta-sigma analog-to-digital converter (DSADC) does not interface with an external delta-sigma ADC modulator directly.
Figure 1 Delta-sigma analog-to-digital converter
However, on AURIX™ TC3XX devices, demodulator can be used separately, so enhanced DSADC can interface with an external delta-sigma modulator to get the data stream.
Figure 2 Enhanced delta-sigma analog-to-digital converter
For more details, please see the following sections of the User’s manual:
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
The default switching frequency is 1.5 MHz during embedded voltage regulator (EVR) start up and you can configure this frequency between 0.4 MHz to 2.0 MHz after ramp-up.
For details, see the “System Control Unit (SCU)” section for TC2xx and the “Power Management System (PMS)” section for TC3xx of the User’s manuals.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
For a parallel conversion, up to four Analog-to-Digital Converter (ADC) in a synchronization group can be exactly synchronized.
In case of more than four ADCs, there are variations of each ADC start time with the range of a few cycle of analog clock (fADC). Therefore, they are almost synchronized, if the same ADC trigger source input to each ADCs.
For more details, refer to the “Versatile Analog-to-Digital Converter (VADC)” se
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
There are two types of NC balls:
The general rule is that NC and NC1 must not be connected to any net including power supply or ground connections in the PCB routing.
Note: This KBA applies to the following series of AURIX™ MCUs:
Version: **
Input voltage high for S pad (VIHS) and input voltage low (VILS) for S pad are as follows:
Parameter |
Value |
VIHS |
(0.73 × VDDM) – 0.25 = 3.40 V |
VILS |
(0.52 × VDDM) – 0.25 = 2.35 V |
Parameter |
Value |
VIHS |
(0.73 × VDDM) – 0.25 = 2.159 V |
VILS |
(0.52 × VDDM) – 0.25 = 1.466 V |
Parameter |
Value |
Note/test condition |
VIHS |
(0.7 × VDDM) = 3.5 V |
Automotive level (AL) |
2.0 V |
TTL level (TTL) |
|
VILS |
(0.44 × VDDM) = 2.2 V |
AL |
0.8 V |
TTL |
Parameter |
Value |
Note/test condition |
VIHS |
(0.7 × VDDM) = 2.31 V |
AL |
2.0 V |
TTL |
|
VILS |
(0.42 × VDDM) = 1.386 V |
AL |
0.8 V |
TTL |
Class S pads are powered by VDDM and can also be 3.3 V and 5 V.
Where,
VDDM = Analog power supply
For more details, see the “Electrical Specification” sections of the TC2xx series and TC3xx series datasheets.
Note: This KBA applies to the following series of AURIX™ MCUs: