October 30, 2018, 6:14 am
Hi,
Yes, it is NMI handler in the default case.
Regards,
Jesus
Code:
#include "xmc_scu.h"
void NMI_Handler(void)
{
__BKPT();
}
int main(void)
{
XMC_SCU_TRAP_Enable(XMC_SCU_TRAP_BROWNOUT);
XMC_SCU_POWER_EnableMonitor(130, 1);
/* Placeholder for user application code. The while loop below can be replaced with user application code. */
while(1U)
{
}
}
↧
October 30, 2018, 10:24 pm
I am using VADC to convert A to D but result register always 0 while debugging, But in result register VF flag getting update. I am using VADC example code from AURIX library
↧
↧
October 30, 2018, 11:17 pm
hi,
i am trying WATCHDOG App in DAVE and want to connect service indication pulse signal to DIGITAL IO App. In HW signal connection, i cannot find DIGITAL IO when want to assign connect service indication pulse signal to Digital IO. do i miss some steps ?
Best Regards,
Teman XMC
↧
October 31, 2018, 4:26 am
Hello,
I am working on XMC4500 USB in VCOM mode, the device is detected as USB serial device on Windows 10 platform and i am able to communicate.
The problem is the same device is not detected in windows 7 platform, it is detected as unknown device. please any body give solution for this, or provide me corresponding USB drivers for windows 7 platform.
Best Regards,
Srikanth L.
↧
November 1, 2018, 9:21 am
I want to try TLV over I2C with RaspberryPi. I have got the following guide which mentions how to start communication.
Just a question that weather smbus or smbus2 supports all the operations needed for data transfer in the form of bits or bytes?
Any other suggestions?
↧
↧
November 1, 2018, 1:51 pm
Yes, the COM pin and VSS pin can be joined together.
The 6EDL04N06PT can be used with 3 current shunt resistors.
In this case the ITRIP pin of 6EDL04N06PT can be used to detect current from one current shunt resistor only.
↧
November 1, 2018, 2:11 pm
We have the exact same problem.
Purchased the iMOTION MCETool v2 but unable to get that to work either.
↧
November 2, 2018, 5:51 am
Hi, i'm facing the problem with this board. I have connected XMC1100 Kit(for Arduino) to W5500 Ehernet Board(1471-1413-ND) via SPI. When communication starts, all is so slow. I mean data transfer is slower than i expected. I seems SPI bus has a lot of errors or something. When i touch osciloscope probe to CLK pin then communication stops. I see in my debug console just ,,disconnected,, and board needs reset to start communication again. When i switched to Arduino UNO(Circuit stayed the same. Sketch stayed the same. Web Server sketch from Ethernet 2 library.) its works perfectly. Datasheet says: fully compatible with Arduino. So please where is the problem ? Thanks
↧
November 2, 2018, 6:50 am
i just bought a XMC4800 Relax EtherCAT kit., but i cannot find the .zip files "XMC4800 EtherCAT APP SSC Slave Example" from this link "https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc48_relax_ecat_v1/#ispnTab4", there is only a pdf file?? So where could i find the example code??
↧
↧
November 2, 2018, 10:57 pm
Quote:
Originally Posted by
tomazpercic
Are you using ILLD drivers?
There is an error in the ADC sample time calculation, function IfxVadc_calculateSampleTime(), the calculated sample time is much too long.
Have a look at user manual 2.2 page 28-79 and in your ADC init manually set the STCS value in register GLOBICLASS.
3.5 us sounds good if you've set the sample time 1.0 us with ILLD (the actual sample time is 2.5 us or more).
When I set STCS to 16 (sample time = 0.9 us), I get around 2.0 us from trigger to ISR. It should be around 1.5 us, the rest is probably ADC arbitration + interrupt latency.
Regards
I have another question.
My ADC result always jump 15 AD,I try many ways,but without effect.
Have you met?
↧
November 3, 2018, 1:53 pm
Hi,
I am quiet new to Microcontroller programming and I am about to set up a CAN bus to communicate between TC275 and XMC1400.
First issue I ran into, is setting up a second interrupt based on a timer.
I used the interrupt from the GTMTomTimerDemo which works fine. But as soon as I wanted to add a second interrupt in the same way it doesn't work.
The first interrupt is still working, but the second one is not taken care of.
Can anyone get me some help on this?
Thanks a lot.
BR Michael
My main:
Code:
int core0_main(void)
{
/*
* !!WATCHDOG0 AND SAFETY WATCHDOG ARE DISABLED HERE!!
* Enable the watchdog in the demo if it is required and also service the watchdog periodically
* */
IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());
/* Initialise the application state */
g_AppCpu0.info.pllFreq = IfxScuCcu_getPllFrequency();
g_AppCpu0.info.cpuFreq = IfxScuCcu_getCpuFrequency(IfxCpu_getCoreIndex());
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
/* Enable the global interrupts of this CPU */
IfxCpu_enableInterrupts();
/* Demo init */
MulticanBasicDemo_init();
printf("Multican Basic Demo INIT finished\n");
GtmTomTimerDemo_init();
printf("GtmTomTimerDemo_init finished \n");
/* Initialise the I/O ports */
digitalIO_init(); //Application with the timer
printf("DigitalIO_init finished \n");
/* background endless loop */
while (TRUE)
{
/*waitTime(100000000); // wait for about 1 sec
LED_toggle(Red);*/
/* MulticanBasicDemo_run();
printf("Multican Basic Demo run finished\n"); */
REGRESSION_RUN_STOP_PASS;
}
return 0;
}
/** \} */
IFX_INTERRUPT(ISR_Timer_1ms, 0, ISR_PRIORITY_TIMER_1MS);
IFX_INTERRUPT(ISR_Timer_1s, 0, ISR_PRIORITY_TIMER_1S);
/** \} */
/** \} */
/** \brief Handle 1ms interrupt.
*
* \isrProvider \ref ISR_PROVIDER_TIMER_1MS
* \isrPriority \ref ISR_PRIORITY_TIMER_1MS
*
*/
void ISR_Timer_1ms(void)
{
IfxCpu_enableInterrupts();
IfxGtm_Tom_Timer_acknowledgeTimerIrq(&g_GtmTomTimer.drivers.timerOneMs);
g_GtmTomTimer.isrCounter.slotOneMs++;
if (g_GtmTomTimer.isrCounter.slotOneMs % 10000 == 0)
{
LED_toggle(Blue);
}
}
void ISR_Timer_1s(void)
{
IfxCpu_enableInterrupts();
IfxGtm_Tom_Timer_acknowledgeTimerIrq(&g_GtmTomTimer.drivers.timerOneMs);
g_GtmTomTimer.isrCounter.slotOneMs++;
if (g_GtmTomTimer.isrCounter.slotOneMs % 1000 == 0)
{
LED_toggle(Red);
}
}
/** \} */
and my interrupt configuration:
ConfigurationIsr.h:
Code:
/**
* \file ConfigurationIsr.h
* \brief Interrupts configuration.
*
* \version iLLD_Demos_1_0_1_7_0
* \copyright Copyright (c) 2014 Infineon Technologies AG. All rights reserved.
*
*
* IMPORTANT NOTICE
*
*
* Infineon Technologies AG (Infineon) is supplying this file for use
* exclusively with Infineon's microcontroller products. This file can be freely
* distributed within development tools that are supporting such microcontroller
* products.
*
* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
* INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
* OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
*
* \defgroup IfxLld_Demo_MulticanBasic_SrcDoc_InterruptConfig Interrupt configuration
* \ingroup IfxLld_Demo_MulticanBasic_SrcDoc
*/
#ifndef CONFIGURATIONISR_H
#define CONFIGURATIONISR_H
/******************************************************************************/
/*-----------------------------------Macros-----------------------------------*/
/******************************************************************************/
/** \brief Build the ISR configuration object
* \param no interrupt priority
* \param cpu assign CPU number
*/
#define ISR_ASSIGN(no, cpu) ((no << 8) + cpu)
/** \brief extract the priority out of the ISR object */
#define ISR_PRIORITY(no_cpu) (no_cpu >> 8)
/** \brief extract the service provider out of the ISR object */
#define ISR_PROVIDER(no_cpu) (no_cpu % 8)
/**
* \addtogroup IfxLld_Demo_MulticanBasic_SrcDoc_InterruptConfig
* \{ */
/**
* \name Interrupt priority configuration.
* The interrupt priority range is [1,255]
* \{ */
#define ISR_PRIORITY_PRINTF_ASC0_TX 5 /**< \brief Define the ASC0 transmit interrupt priority used by printf.c */
#define ISR_PRIORITY_PRINTF_ASC0_EX 6 /**< \brief Define the ASC0 error interrupt priority used by printf.c */
#define ISR_PRIORITY_TIMER_1MS 1 /**< \brief Define the 1ms timer interrupt priority. */
#define ISR_PRIORITY_TIMER_1S 2 /**< \brief Define the 1s timer interrupt priority. */
/** \} */
/**
* \name Interrupt service provider configuration.
* \{ */
#define ISR_PROVIDER_PRINTF_ASC0_TX IfxSrc_Tos_cpu0 /**< \brief Define the ASC0 transmit interrupt provider used by printf.c */
#define ISR_PROVIDER_PRINTF_ASC0_EX IfxSrc_Tos_cpu0 /**< \brief Define the ASC0 error interrupt provider used by printf.c */
#define ISR_PROVIDER_TIMER_1MS IfxSrc_Tos_cpu0 /**< \brief Define the 1ms timer interrupt provider. */
#define ISR_PROVIDER_TIMER_1S IfxSrc_Tos_cpu0 /**< \brief Define the 1s timer interrupt provider. */
/** \} */
/**
* \name Interrupt configuration.
* \{ */
#define INTERRUPT_PRINTF_ASC0_TX ISR_ASSIGN(ISR_PRIORITY_PRINTF_ASC0_TX, ISR_PROVIDER_PRINTF_ASC0_TX) /**< \brief Define the ASC0 transmit interrupt priority used by printf.c */
#define INTERRUPT_PRINTF_ASC0_EX ISR_ASSIGN(ISR_PRIORITY_PRINTF_ASC0_EX, ISR_PROVIDER_PRINTF_ASC0_EX) /**< \brief Define the ASC0 error interrupt priority used by printf.c */
#define INTERRUPT_TIMER_1MS ISR_ASSIGN(ISR_PRIORITY_TIMER_1MS, ISR_PROVIDER_TIMER_1MS) /**< \brief Define the 1ms timer interrupt priority. */
#define INTERRUPT_TIMER_1S ISR_ASSIGN(ISR_PRIORITY_TIMER_1S, ISR_PROVIDER_TIMER_1S) /**< \brief Define the 1ms timer interrupt priority. */
/** \} */
/** \} */
//------------------------------------------------------------------------------
#endif
↧
November 4, 2018, 5:23 am
è±é£å ä½*好
请æä¸é¢å*个é®é¢:
ä¸,ç¨åºåå
¥å¼åæ¿ä¹å,å¦ä½åå°ä¸ç¨ æå¼è½¯ä»¶,ä¹è½è®©çµæºè¿è½¬èµ·æ¥.
æå¨TargetSpeedè¾å
¥çå¼,å¦ä½ä¸è½½å°è¯ç ä¸*,èä¸ä¸ç¨æå¼MCEdesignerä¹è½è¿è½¬çµæ º,ä¸è½è¾¾å°å¨MCEdesigneréè®¾ç½®çæ§è½.è¿ æå¨TargetSpeedçä¸éæ¯32767,æå¦æè¿æ ³æé«è½¬é,è¿è½æä»ä¹åæ³.
äº,å¦ä½æ¥çç¨åºçCè¯*è¨ä»£ç*.
ä¸,è¿äºåå¼åæ¿ççµè·¯å¾é£éè½ä¸è½½å °.
å,å
³äºMATLABä»¿çæ¯å¦æç¸å
³èµæ,ææ³ ä½ä¸ä¸ä»¿ç.
äº,MCK099è¯çé¤äºç¨imotionç¼ç¨ä¹å¤,è¿æ ä»ä¹è½¯ä»¶å¯ä»¥ç¼ç¨åå
¥
å
*ï¼å¦ææççµæºç»ç»æ¯ä¸è§åæ¥æ³ç è¯ï¼çµé»ï¼çµæï¼KEæ¯ä¸æ¯ä¹æYåæ¥æ ³å
æµéåºæ¥ã
谢谢,请工ç¨å¸æä¾ä¸ä¸å¸®å¿
↧
November 4, 2018, 10:08 pm
#include <xmc_gpio.h>
#include <xmc_uart.h>
const uint8_t message[] = "Hello world!!\n";
#define UART_TX P0_1
#define UART_RX P0_0
/*UART Cofiguration*/
XMC_GPIO_CONFIG_t uart_tx =
{
.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2,
.output_strength = XMC_GPIO_OUTPUT_STRENGTH_MEDIUM
};
XMC_GPIO_CONFIG_t uart_rx =
{
.mode = XMC_GPIO_MODE_INPUT_TRISTATE
};
XMC_UART_CH_CONFIG_t uart_config =
{
.data_bits = 8U,
.stop_bits = 1U,
.baudrate = 115200U
};
int main()
{
/*UART Initialization*/
XMC_UART_CH_Init(XMC_UART1_CH0, &uart_config);
XMC_UART_CH_SetInputSource(XMC_UART1_CH1, XMC_UART_CH_INPUT_RXD, USIC1_C1_DX0_P0_0);
XMC_UART_CH_Start(XMC_UART1_CH0);
XMC_GPIO_Init(UART_TX,&uart_tx);
XMC_GPIO_Init(UART_RX,&uart_rx);
uint32_t index;
for (index = 0; index < sizeof(message) - 1; index++)
{
XMC_UART_CH_Transmit(XMC_UART1_CH1, message[index]);
}
}
Still not able to see serial data. I used XMC_UART1_CH1 because from the data sheet P0.0 and P0.1 is connected to U1C1 from the data sheet.
↧
↧
November 5, 2018, 12:58 am
Hello,
with SPI_Master_App--> FullDuplex(lib up to date, DMA or Interrupt is the same limit), I see a baudrate limit @24MHz with Dave 4.4.2. Has anybody an idea, why I can not increase the baudrate?
Regards,
Peter
↧
November 5, 2018, 6:07 am
Hi I am using this code on xmc4200 microcontroller (Distane2Go (D2G) Product). Data is not coming over serial port pins(Rx and Tx Pins). It looks like There is some problem in the configuration Please help me.
#include <xmc_gpio.h>
#include <xmc_uart.h>
const uint8_t message[] = "Hello world!!\n";
#define UART_TX P0_1
#define UART_RX P0_0
/*UART Cofiguration*/
XMC_GPIO_CONFIG_t uart_tx =
{
.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2,
.output_strength = XMC_GPIO_OUTPUT_STRENGTH_MEDIUM
};
XMC_GPIO_CONFIG_t uart_rx =
{
.mode = XMC_GPIO_MODE_INPUT_TRISTATE
};
XMC_UART_CH_CONFIG_t uart_config =
{
.data_bits = 8U,
.stop_bits = 1U,
.baudrate = 115200U
};
int main()
{
/*UART Initialization*/
XMC_UART_CH_Init(XMC_UART1_CH1, &uart_config);
XMC_UART_CH_SetInputSource(XMC_UART1_CH1, XMC_UART_CH_INPUT_RXD, USIC1_C1_DX0_P0_0);
XMC_UART_CH_Start(XMC_UART1_CH1);
XMC_GPIO_Init(UART_TX,&uart_tx);
XMC_GPIO_Init(UART_RX,&uart_rx);
uint32_t index;
for (index = 0; index < sizeof(message) - 1; index++)
{
XMC_UART_CH_Transmit(XMC_UART1_CH1, message[index]);
}
}
Still not able to see serial data. I used XMC_UART1_CH1 because from the data sheet P0.0 and P0.1 is connected to U1C1 from the data sheet.
↧
November 6, 2018, 12:52 am
Hardware Setup:
Infineon Iridium SLB 9670 TPM 2.0 interface with NXP MPC5748G via SPI
Software Setup:
S32 IDE with FreeRTOS
we have connected NXP MPC5748G as a master and Iridium SLB 9670 TPM 2.0 as a slave.
Connection are as below mentioned:
NXP MPC5748G Iridium SLB 9670 PIN
MOSI 19
MISO 21
CLK 23
Chip selc 26
Vcc (3.3 V) 1
GND 6
SPI specification:
1. Baudrate 5000000
2. Mode 0
But we are facing following problems.
1. We are not getting response as TPM_ACCESS_VALID(0x80) from SLB9670 in Startup-wait implementation
2. Not getting vendor id for command TPM_DID_VID( 83 D4 0F 00 00 00 00 00 )
Could you please share your comment on the above issues.
Thanks in advance.
↧
November 6, 2018, 5:53 am
Hi akPOW,
Welcome to our forum.
Generally speaking, the bipolar power supply is not only recommended due to the improved switching speeds (and decreased switching losses).
You could use a unipolar power supply for the gate driver, but you will run into the risk of having the IGBT parasitically turned on.
By using a unipolar power supply, the difference between the turn-off gate voltage and the threshold voltage becomes smaller. Thus the device can be parasitically turned-on due to currents flowing though the Miller capacitance or by parasitic inductance in the emitter loop.
Because of this, you should take more care when designing the circuit, especially the gate driver loop and consider using a gate driver with a Miller clamp function, such as:
1ED020I12-F2
you can read more about the drawbacks and considerations of using unipolar power supplies in our
application note.
please let me know if you have other questions about this.
↧
↧
November 7, 2018, 1:43 am
Hi,
I have an XMC 1404 connected to a SD card via the SPI bus.
I'm using the standard FATFS App with the default main and configurations as described in the FATFS help documentation.
I've upgraded the SDMMC_BLOCK app from version "4.0.22" to version "4.3.22" and the code no longer compiles.
the lines:
Code:
#if (UC_SERIES != XMC45)
XMC_SDMMC_SetWriteProtectionSource(XMC_SDMMC, XMC_SDMMC_WP_SOURCE_SW);
XMC_SDMMC_SetWriteProtectionStatus(XMC_SDMMC, XMC_SDMMC_WP_STATUS_NO_WRITE_PROTECTION);
#endif
have been adde to "sdmmc_block_conf.c".
If I remove them then the code compiles as normal, however each time I generate the code they get added back in again.
What am I doing wrong?
Cheers,
Nick
↧
November 7, 2018, 2:38 am
↧
November 7, 2018, 2:46 am
Hi,
Did you assigned a specific pin to the DIGITAL_IO?
The wdt pulse signal is only available in some pins. Therefore if you selected a pin for the digital io where the alternate function does not include the wdt pulse signal, the DAVE solver will not show the possibility to connect the WDT to the DIGITAL_IO APP.
Attachment 3670
Regards,
Jesus
↧