AURIX™ Forum Discussions
Hello, everyone.
I'm working on a Tricore TC399 and i would like to try to measure the transfer time from the receiving hw FIFO of the uart to the DSPR0 memory via DMA. For this purpose, I started from the example "UART_DMA_Transfer_1 for KIT_AURIX_TC375_LK".
I first tried to run the code by debugging it, and according to the file "Infineon UART_DMA_Transfer_1_KIT_TC375_LK-Training-v01_00-EN" I should get the value of the variable g_correctTransactions=12 but unexpectedly it turns out to be equal to 1. I don't know if anyone knows what this problem is due to.
Furthermore, my objective is to measure the transfer time of the DMA; I therefore thought of using the Stm module, via two uint64 variables: start and stop. The start variable takes the number of ticks of the stm counter via the function: "(uint64)IfxStm_get(IFXSTM_DEFAULT_TIMER) & TIME_INFINITE;" and this is done inside the function void send_data(void) before the command IfxAsclin_Asc_write(&g_ascHandle, g_txData, &g_count, TIME_INFINITE); .
The stop variable takes the number of ticks always via the function: '(uint64)IfxStm_get(IFXSTM_DEFAULT_TIMER) & TIME_INFINITE;' and this is done inside the ISR of the DMA: void prio_DMA(void).
I wanted to know if this technique is correct and accurate, also because, every time I debug, I get different results from the 'start-stop'(which should be the number of ticks between the start of the transmission and the ending of the DMA operation) operation.
I reported below the two pieces of code where the two ticks acquisition are done:
void send_data(void)
{
start=(uint64)IfxStm_get(IFXSTM_DEFAULT_TIMER) & TIME_INFINITE;
IfxAsclin_Asc_write(&g_ascHandle, g_txData, &g_count, TIME_INFINITE); /* Transmit data via TX */
}
void prio_DMA(void)
{
stop=(uint64)IfxStm_get(IFXSTM_DEFAULT_TIMER) & TIME_INFINITE;
g_correctTransactions++;
}
I am trying to porting azure threadx for TC397, but im not familiar with AURIX's instruction, and AZURE/threadx is also not support TC397, is there any guide for me to porting this rtos
Show LessHi,
We are facing issue in tc399.
1.In tc399 we are using I2C_Read_External exapmle code .. we are able to receive the data from I2c as MAC address .. How we can verify whether the received MAC address is correct or not.
2.Can it is possible to write data to the external eeprom through I2C ?? Ifpossible ..please suggest how we can write and read the data.
Show LessAs shown in the attached figure, there is a delay between the time when the controller starts to send a bit and the time when it receives the position from the Rx terminal during the sending and receiving of the message, which is the sending node delay.
The sampling point of CANFD in the data field needs to adopt the sending node delay compensation mechanism (TDC mechanism).
When the sending rate of the message data field is greater than 1Mbps, the sending node needs to use the secondary sampling point (SSP) and enable the sending delay compensation mechanism.
ISO 11898 stipulates that when SSP is used, TDC mechanism has two ways:
1.Auto TDC: Set the SSP to the location where the actual transmission delay (TD) is measured, that is, the CANFD controller measures transmission delay.
2.Fixed TDC: Set the SSP to a fixed position, that is, configure a fixed TD.
What I want to ask is whether the MCU supports Auto TDC and if so, how to configure it. If the MCU does not support Auto TDC, then how to configure the Fixed TDC.
Show Less