AURIX™ Forum Discussions
For HSPDM part, I configured it to be triggered by CCU6:
IfxHspdm_setHwRunActiveEdge(g_hspdm, IfxHspdm_HwRunActiveEdge_rising);
IfxHspdm_setHwRunTriggerSource(g_hspdm, IfxHspdm_HwTriggerSource_CCU6);
IfxHspdm_enableHwRun(g_hspdm);
For CCU6 part, looks like CCU61's T13 is route to HWRUN:
So here I configured CCU6:
IfxCcu6_Timer_Config timerConfig;
IfxCcu6_Timer_initModuleConfig(&timerConfig, &MODULE_CCU61);
/* Configure the T12 timer frequency/period (trigger for T13 timer) and T13 timer frequency/period (trigger
* for ADC). Timer T13 starts counting in single shot mode triggered by a period-match event of the T12 timer.
* The period of the timer T13 represents a delay (from the period-match event of the T12 timer) of the ADC
* trigger event.
*/
timerConfig.base.t12Frequency = CCU6_T12_TIMER_FREQ; /* Timer T12 frequency */
timerConfig.base.waitingTime = CCU6_T12_TIMER_PERIOD; /* waitingTime is the period of T12 timer */
timerConfig.base.t13Frequency = CCU6_T13_TIMER_FREQ; /* Timer T13 frequency */
timerConfig.base.t13Period = CCU6_T13_TIMER_PERIOD; /* Timer T13 period */
timerConfig.timer = IfxCcu6_TimerId_t13; /* Select the timer, T13 is the master */
timerConfig.synchronousOperation = FALSE; /* Disable synchronous start of the timers */
timerConfig.trigger.t13InSyncWithT12 = TRUE; /* T12 timer starts the T13 timer */
/* Configure the T13 timer start event */
timerConfig.timer13.t12SyncEvent = IfxCcu6_T13TriggerEvent_onT12Period;
timerConfig.timer13.t12SyncDirection = IfxCcu6_T13TriggerDirection_onT12CountingUp;
/* Apply the configuration to the CCU6 module */
IfxCcu6_Timer_initModule(&g_timer, &timerConfig);
//CCU61:COUT63 to HSPDM:HWRUN(0) T13 PWM channel 63
/* Activate the line ServiceRequest_3 to route the T13 period match event trigger to the HSPDM module */
IfxCcu6_enableInterrupt(&MODULE_CCU61, IfxCcu6_InterruptSource_t13PeriodMatch);
/* Configure the T13 timer for single shot mode */
IfxCcu6_enableSingleShotMode(&MODULE_CCU61, IfxCcu6_TimerId_t13);
IfxCcu6_Timer_start(&g_timer);
But HSPDM output is not triggered.
What did I do wrong? Please help.
Thank you very much.
Show LessI am using AURIX TC299TF controller.
I want the JTAG to be locked so that only authorized person can access the JTAG and modify things.
For example :
To flash new application into the flash memory the JTAG first needs to be unlocked with correct password. If JTAG was successfully unlocked only then it will allow the new application to be flashed into the flash memory.
Is this possible? If yes, what should I refer for configurations?
My target is to understand,
1: How can we protect the debug interface or how to lock it?
2: How to set the configuration for debug interface lock?
3: How to unlock the debug interface by means of password or hardware settings etc. when we will connect the debugger.
I have went through the user manual and found that we need to configure UCB_DBG
UCB_DBG is located at 0xAF101400H. So do we have to flash the configurations directly at this location as per following?
Table 10-13 UCB_DBG Content
Offset Content Description
00H PROCONDBG Protection of the debug interface.
10H PROCONDBG Copy.
20H PW0 – PW7 256-bit password, from least significant word to most
significant word (8 words).
40H PW0 – PW7 Copy of 256-bit password.
70H Confirmation 4 bytes.
78H Confirmation Copy.
We have to flash the password at 20H and its copy at 40H?.
Location 00H and 10H will be flashed with configurations as per the PROCONDBG?
Do we have to do any additional configurations?
Could you please explain the complete procedure and configurations to be done step by step.
Thank you,
Harish Anchan. Show Less
Hi,
I want to use analyzer tool from WinIdea debugger to do code profiling and I am launching the debugger from aurix development studio. I am facing this error while using the analyzer. Can you help me with this? (I already used Aurix profiler but I got to know I can only use it for core 0 function, I want to profile for multicore implementation)
Thanks in advance,
Show Less
Hi,
We are working on Aurix Tricore TC389 controller.
Can you please suggest which RTOS needs to be used and preferred IDE & debugger to be used for development process?
Also, I'm not able to debug the freeRTOS tasks in Aurix Development Studio. How can we debug?
Show Less我使用的是英飞凌官方的串口例程,正常发送数据,没有影响。
但是,我想通过上位机给开发板串口发送数据,然后下位机接收到后,再将数据发给上位机。即我发什么数据,返回什么数据。
IfxAsclin_Asc_write(&g_ascHandle, g_txData, &g_count, TIME_INFINITE); //发送数据
IfxAsclin_Asc_read(&g_ascHandle, g_rxData, &g_count, TIME_INFINITE); //读取收到的数据
void asclin0RxISR(void)
{
IfxAsclin_Asc_isrReceive(&g_ascHandle);
IfxAsclin_Asc_write(&g_ascHandle, g_rxData, &g_rx_count, TIME_INFINITE);//将接收到的数据发送出去
}
直接没有反应,请各位大佬,指教!
I am using a CAN BSL solution to flash a Tc387, and from the memory contents it seems to be going well. All data from the program is being placed in the appropriate addresses of both program flash and UCB data flash. The program I am flashing simply flashes the LEDs on a Triboard, and the hex file is attached in "SimpleTestProgram.zip".
When flashing this program using my CAN BSL solution, the processor gets stuck upon resetting. The Rst LED (ESR0) remains on and the flashed code never executes. However, after connecting a debugger the code can be executed without fault until the next reset when the same problem occurs.
When flashing this hex file entirely over the debugger, it can then run without issues after a reset. Comparing the flash banks after this, I can see that the program flash sections and UCB df0 sections are identical for both of these flashing methods. Yet only one is able to reset and the other halts.
Given that this same program works when flashed one way, I do not think this is a watchdog issue. As a side note, both watchdogs are disabled in the test program that is being flashed.
All of the BMHDs (original and copies) are being flashed with the same content. This is:
One thing I have noticed is that HARREQ of SCU_STMEM is 1 (halt after reset):
But I am struggling to figure out how to remedy that issue.
So I am looking for ideas on how to solve this problem. Is there any configuration that is outside of UCBs or program flash that could cause this issue? If not, is there something else I am missing?
Thank you.
Hello Community,
I am designing a Bootloader for an Aurix TC364DP. Because in this Aurix gen the bootmode header (BMHD) arelocated in UCB, I neet to be able to change the content of the BMHDs with the Bootloader. In the TC3x user manual part 1 (GTMV2.2.24 ) I found the section: "Dual Password UCB ORIG and COPY Re-programming" on page 515 where the following steps are highlighted:
- Confirm the ORIG and COPY UCB confirmation codes are CONFIRMED:
– The configuration or protection installation will be installed from the ORIG UCB. - Apply the password to Disable Protection . This disables protection for both ORIG and COPY UCBs.
- Erase COPY UCB - the confirmation code is erased prior to the content and treated as ERRORED for the
installation. - Program COPY UCB setting the confirmation code to CONFIRMED.
- Erase ORIG UCB - the confirmation code is erased prior to the content and treated as ERRORED for the
installation.
– The configuration or protection installation will be sourced from the COPY UCB. - Program ORIG UCB setting the confirmation code to CONFIRMED.
– The configuration or protection installation will be sourced from the ORIG UCB. - Protection is re-enabled, either via comman sequence or device reboot.
My interpretation of this for the BMHD regions is:
- Overwrite the confirmation field (offset 0x1F0) with 0x57B5327F
- If no password protection is used the first step can be left out
- Erase BMHDx_COPY
- Program BMHDx_COPY (Write 00 to all unused addresses) and set confirmation field to 0x57B5327F
- Erase BMHDx_ORIG
- Program BMHDx_ORIG (Write 00 to all unused addresses) and set confirmation field to 0x57B5327F
- Reset MCU
My questions:
- Is my assumption for writing the BMHD regions correct?
- Is there anything special to keep in mind?
- I assume if anything goes wrong during this routine the MCU is locked forever?
- When programming the BMHDs via a debugger the conformation fields are set to 0x43211234 (Unlocked) and everything works, so I am wondering if 0x57B5327F as stated above is really correct?
Thanks in advance!
Show Less
I have 44 ADC channels configured as a queued scan. I initialize them using the given function, however I can't get them to sample any faster as shown in my attached image, even though I chose the sample time as 1e-7.
Any suggestions?
BR Lukas
/* Function to initialize the EVADC group with default parameters */
void initEVADCGroup(IfxEvadc_GroupId grpId, IfxEvadc_GroupId grpIdMstr, IfxEvadc_Adc_Group *adcGroup)
{
/* Create and initialize group configuration with default values */
IfxEvadc_Adc_GroupConfig adcGroupConfig;
IfxEvadc_Adc_initGroupConfig(&adcGroupConfig, &g_evadc);
/* Setting user configuration using group 2 */
adcGroupConfig.groupId = grpId;
adcGroupConfig.master = grpIdMstr;
adcGroupConfig.startupCalibration = TRUE;
adcGroupConfig.inputClass->sampleTime = 1e-7;
/* Enable queued source */
adcGroupConfig.arbiter.requestSlotQueue0Enabled = TRUE;
/* Enable all gates in "always" mode (no edge detection) */
adcGroupConfig.queueRequest[0].triggerConfig.gatingMode = IfxEvadc_GatingMode_always;
/* Initialize the group */
IfxEvadc_Adc_initGroup(adcGroup, &adcGroupConfig);
}
Show Less