XMC™ Forum Discussions
XMC™
Hi. I have configured P3.3 as Chip Select (SPI) for USIC1 channel1(XMC 4500).But this CS pin is not getting toggle with respect to the frame(SPI F...
Show More
Hi.
I have configured P3.3 as Chip Select (SPI) for USIC1 channel1(XMC 4500).But this CS pin is not getting toggle with respect to the frame(SPI Frame).I have selected Alternative Function 2 for the same Pin.
So what might be the causes for this issue?? Show Less
I have configured P3.3 as Chip Select (SPI) for USIC1 channel1(XMC 4500).But this CS pin is not getting toggle with respect to the frame(SPI Frame).I have selected Alternative Function 2 for the same Pin.
So what might be the causes for this issue?? Show Less
XMC™
Hi, I am working on xmc4100 ADC. I wanna achieve 50 samples/sec sampling rate but as per formula in datasheet sampling rate is achieved in usec or nse...
Show More
Hi, I am working on xmc4100 ADC. I wanna achieve 50 samples/sec sampling rate but as per formula in datasheet sampling rate is achieved in usec or nsecs. How to achieve in terms of seconds ? please help !
Show Less
XMC™
I have a design with 8 hardkeys connected to GPIOs. I want to have an interrupt when any key is pressed or released.I have looked into connecting the ...
Show More
I have a design with 8 hardkeys connected to GPIOs. I want to have an interrupt when any key is pressed or released.
I have looked into connecting the GPIOs to the ERU to generate the interrupt, but this means the whole ERU would be required for this simple task and I need it for other functions.
Is there a better way to solve this problem? I don't really want to poll the GPIO port. Show Less
I have looked into connecting the GPIOs to the ERU to generate the interrupt, but this means the whole ERU would be required for this simple task and I need it for other functions.
Is there a better way to solve this problem? I don't really want to poll the GPIO port. Show Less
XMC™
Dear all, i have some understanding problems with this documentation for the ASC Bootloader.1. In the Figure 1 is shown the connection between PC COM ...
Show More
Dear all,
i have some understanding problems with this documentation for the ASC Bootloader.
1. In the Figure 1 is shown the connection between PC COM Port and Target (XMC4500).
Really no levelshifter e.g. MAX3323 is required to change the pc rs232 voltage to 3.3V TTL?
2. Under Chapter 2.2 is described how to change the loader file to locate the Flashloader.hex into the PSRAM.
I cannot find this linker file in the example application. I find only linker_script.ld and this linker file looks not different to other other linker_script.ld files.
Where I can find the XMC4x00_PSRAM.ld ?
Documentation:
http://www.infineon.com/dgdl/Infineon-XMC4000_TOO_Bootloader-AN-v01_02-EN.pdf?fileId=db3a30433e4143bd013e46a58ebf40cb&sd=t
Example Program:
http://www.infineon.com/dgdl/Infineon-XMC4000_Bootloader_ASC_example_code-AN-v01_02-EN.exe?fileId=db3a30433e82b1cf013e9d45598c112a&sd=t
Hope somebody support me with my questions. Show Less
i have some understanding problems with this documentation for the ASC Bootloader.
1. In the Figure 1 is shown the connection between PC COM Port and Target (XMC4500).
Really no levelshifter e.g. MAX3323 is required to change the pc rs232 voltage to 3.3V TTL?
2. Under Chapter 2.2 is described how to change the loader file to locate the Flashloader.hex into the PSRAM.
I cannot find this linker file in the example application. I find only linker_script.ld and this linker file looks not different to other other linker_script.ld files.
Where I can find the XMC4x00_PSRAM.ld ?
Note:
The Flash Loader program must be located in the PSRAM starting at 0x10000000 (XMC4500) or
0x1FFFC000 (XMC4400/4200) because the Flash Loader program can only run from PSRAM. Therefore the
default linker script file generated from DAV4cannot be used in the Flash loader project, because the
default linker script file locates the codes in iCache starting at 0x80000000. The linker script file that
locates the codes into PSRAM is provided in the XMC4x00_PSRAM.ld filer. To change the linker script file go
to project properties:
Go to Settings->ARM-GCC C Linker->General->Script file (-T)
Open “Browse...” to import the file XMC4x00_PSRAM.ld into the field
Documentation:
http://www.infineon.com/dgdl/Infineon-XMC4000_TOO_Bootloader-AN-v01_02-EN.pdf?fileId=db3a30433e4143bd013e46a58ebf40cb&sd=t
Example Program:
http://www.infineon.com/dgdl/Infineon-XMC4000_Bootloader_ASC_example_code-AN-v01_02-EN.exe?fileId=db3a30433e82b1cf013e9d45598c112a&sd=t
Hope somebody support me with my questions. Show Less
XMC™
Hello,When using POSIF in quadrature mode, using two A,B input signals, manual shows that 4 edges are counted in OUT0 clock signal. This is OK.My ques...
Show More
Hello,
When using POSIF in quadrature mode, using two A,B input signals, manual shows that 4 edges are counted in OUT0 clock signal. This is OK.
My question is, if I set PCONF.QDCM=1 (direction count mode) because I have only "one" input signal, the clock signal OUT0 will be produced on both rising and falling edge of the input signal? Manual does not show this particular case. I am observing that probably (excluding some other mistakes) only one edge is counted!? Is this possible?
Thank you
rum Show Less
When using POSIF in quadrature mode, using two A,B input signals, manual shows that 4 edges are counted in OUT0 clock signal. This is OK.
My question is, if I set PCONF.QDCM=1 (direction count mode) because I have only "one" input signal, the clock signal OUT0 will be produced on both rising and falling edge of the input signal? Manual does not show this particular case. I am observing that probably (excluding some other mistakes) only one edge is counted!? Is this possible?
Thank you
rum Show Less
XMC™
How to read 2 Channels by ADC at XMC1100 BootKit.We ran into the problem how to use the (one)ADC with 2 (or more)channels.If you select "Interrupt af...
Show More
How to read 2 Channels by ADC at XMC1100 BootKit.
We ran into the problem how to use the (one)ADC with 2 (or more)channels.
If you select "Interrupt after each measurement" in the ADC App,
the ADC result will be overwritten by the result of the 2.(or next) ADC-Channel.
, see picture
An easy way of reading each ADC result is to use a counter variable to destinguish between the 2 ADC channels results in an if-statement
******** result = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_0);
******** count++;
#endif
******** if(count==1 && result >= 2048)
******** {
************ DIGITAL_IO_SetOutputLow(&LED0);
******** }
******** else
******** {
************ DIGITAL_IO_SetOutputHigh(&LED0);
******** }
******** if(count==2 && result* >= 2048)
******** {
************ DIGITAL_IO_SetOutputLow(&LED1);
******** }
******* *else
******** {
************ DIGITAL_IO_SetOutputHigh(&LED1);
******** }
}
int main(void)
{
* DAVE_STATUS_t status;
* status = DAVE_Init();********** /* Initialization of DAVE APPs* */
* if(status == DAVE_STATUS_FAILURE)
* {
*** /* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
*** XMC_DEBUG("DAVE APPs initialization failed\n");
*** while(1U)
*** {
*** }
* }
* /* Placeholder for user application code. The while loop below can be replaced with user application code. */
* DIGITAL_IO_SetOutputHigh(&LED0);
* DIGITAL_IO_SetOutputHigh(&LED1);
* while(1U)
* {
***** count=0;
*************** * ADC_MEASUREMENT_StartConversion(&ADC_MEASUREMENT_0);
* }
}
You need to reset the counter to 0 before the next ADC_Measurement Convertion. Show Less
We ran into the problem how to use the (one)ADC with 2 (or more)channels.
If you select "Interrupt after each measurement" in the ADC App,
the ADC result will be overwritten by the result of the 2.(or next) ADC-Channel.
, see picture
An easy way of reading each ADC result is to use a counter variable to destinguish between the 2 ADC channels results in an if-statement
******** result = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_0);
******** count++;
#endif
******** if(count==1 && result >= 2048)
******** {
************ DIGITAL_IO_SetOutputLow(&LED0);
******** }
******** else
******** {
************ DIGITAL_IO_SetOutputHigh(&LED0);
******** }
******** if(count==2 && result* >= 2048)
******** {
************ DIGITAL_IO_SetOutputLow(&LED1);
******** }
******* *else
******** {
************ DIGITAL_IO_SetOutputHigh(&LED1);
******** }
}
int main(void)
{
* DAVE_STATUS_t status;
* status = DAVE_Init();********** /* Initialization of DAVE APPs* */
* if(status == DAVE_STATUS_FAILURE)
* {
*** /* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
*** XMC_DEBUG("DAVE APPs initialization failed\n");
*** while(1U)
*** {
*** }
* }
* /* Placeholder for user application code. The while loop below can be replaced with user application code. */
* DIGITAL_IO_SetOutputHigh(&LED0);
* DIGITAL_IO_SetOutputHigh(&LED1);
* while(1U)
* {
***** count=0;
*************** * ADC_MEASUREMENT_StartConversion(&ADC_MEASUREMENT_0);
* }
}
You need to reset the counter to 0 before the next ADC_Measurement Convertion. Show Less
XMC™
Hello,I am starting to play with the ADC functionality of the XMC1100. I thought I'd start by doing something really simple and ensuring that I can re...
Show More
Hello,
I am starting to play with the ADC functionality of the XMC1100. I thought I'd start by doing something really simple and ensuring that I can read off the registers correctly.
I have the following code below:
#define VADC0 (0x48030000) //Base Register Address for VADC block
#define ADC_SHS0 0x48034000 //Base Register Address for SHS0 Block
#define ID (0x0008) //Module Identification Register
void ADC_getModId(uint32_t *regVal)
{
uint32_t *pReg;
pReg = (uint32_t *) (VADC0 + ID);
printf("ADC_getModID::*pReg = 0x%X\r\n", (unsigned int) *pReg);
printf("ADC_getModID::pReg = 0x%X\r\n", (unsigned int) pReg);
*regVal= *pReg;
//return returnVal;
}
The above code consistently prints out the following:
ADC_getModID::*pReg = 0xFFFFFFFF
ADC_getModID::pReg = 0x4803008
(M = 0 if 0 if VADC0 is used, M = 4 if ADC_SHS0 is used)
I get this output regardless of whether or not I use VADC0 or ADC_SHS0 as the base address.
From the user manual, I should be getting 0x00C5C0XX for the VADC0 base and 0X0099C0XX for the ADC_SHS0 base address. These are values that should be set upon reset.
What am I missing here?
Show Less
I am starting to play with the ADC functionality of the XMC1100. I thought I'd start by doing something really simple and ensuring that I can read off the registers correctly.
I have the following code below:
#define VADC0 (0x48030000) //Base Register Address for VADC block
#define ADC_SHS0 0x48034000 //Base Register Address for SHS0 Block
#define ID (0x0008) //Module Identification Register
void ADC_getModId(uint32_t *regVal)
{
uint32_t *pReg;
pReg = (uint32_t *) (VADC0 + ID);
printf("ADC_getModID::*pReg = 0x%X\r\n", (unsigned int) *pReg);
printf("ADC_getModID::pReg = 0x%X\r\n", (unsigned int) pReg);
*regVal= *pReg;
//return returnVal;
}
The above code consistently prints out the following:
ADC_getModID::*pReg = 0xFFFFFFFF
ADC_getModID::pReg = 0x4803
(M = 0 if 0 if VADC0 is used, M = 4 if ADC_SHS0 is used)
I get this output regardless of whether or not I use VADC0 or ADC_SHS0 as the base address.
From the user manual, I should be getting 0x00C5C0XX for the VADC0 base and 0X0099C0XX for the ADC_SHS0 base address. These are values that should be set upon reset.
What am I missing here?
XMC™
Hi,
I am working On TDA 5235, Does anyone has SPI example code for XMC 4100 communication with TDA 5235?
I am working On TDA 5235, Does anyone has SPI example code for XMC 4100 communication with TDA 5235?
XMC™
Hi, I am working on SPI 4100 module,My aim is to transfer a single byte over a SPI,So what should be the frame length and word length for this mo...
Show More
Hi,
I am working on SPI 4100 module,My aim is to transfer a single byte over a SPI,So what should be the frame length and word length for this motto, & do i need to check & clear both flags,e.i 1) Receive Ending flag 2)Alternate receive ending flag,I want to transfer(read and write) byte by byte only.
Best Regards,
Irfan Show Less
I am working on SPI 4100 module,My aim is to transfer a single byte over a SPI,So what should be the frame length and word length for this motto, & do i need to check & clear both flags,e.i 1) Receive Ending flag 2)Alternate receive ending flag,I want to transfer(read and write) byte by byte only.
Best Regards,
Irfan Show Less
XMC™
- A Fast Compare Mode is integrated, that allows for a conversion greater than 3 times faster than a regular conversion. Within 150ns an ADC can determine whether a result is above or below a user defined reference value.
- In Fast Compare Mode, the selected input voltage is directly compared with a digital value that is stored in the corresponding result register.
- This compare operation returns a binary result indicating if the compared input voltage is above or below the given reference value. Show Less
- A Fast Compare Mode is integrated, that allows for a conversion greater than 3 times faster than a regular conversion. Within 150ns an ADC can deter...
Show More
- A Fast Compare Mode is integrated, that allows for a conversion greater than 3 times faster than a regular conversion. Within 150ns an ADC can determine whether a result is above or below a user defined reference value.
- In Fast Compare Mode, the selected input voltage is directly compared with a digital value that is stored in the corresponding result register.
- This compare operation returns a binary result indicating if the compared input voltage is above or below the given reference value. Show Less
Trending discussions