XMC™ Forum Discussions
I have two analog signals in the shape of a gaussian curve having an amplitude of about 500 mv and duration of 20 microseconds. These pulses happen at irregular intervals of about every 400 microsecond. I am measuring the amplitude of these signal with two channels of the onboard ADC operating as fast as possible so that the shape of the pulses can be quantified. Using two channels means that a measurement on one channel is slightly behind the other by about 1 microsecond. This creates an error in my data.
I am aware that there are more than one ADC device in my XMC 4700 board. The question is... can code be written such that conversions can be accomplished at exactly the same time on two channels?
Show LessHello everyone,
I am changing the BCM5241 PHY to ADIN1200 PHY, because BCM5241 is obsolete.
My source code works fine with the BCM5241, but there seems to be a problem with the ADIN1200 PHY.
I use ADIN1200 based on "XMC4300_Relax_EtherCAT_Kit_V2.1" design, after powering on, connecting RJ45 to Laptop, I can't scan BOX, and I don't see ACT LED and LINK LED working.
Please suggest me how to solve this problem, thank you everyone!
Show LessHello,
I recently acquired the evaluation board in the title. Other than the "Validation set up" in the application notes doc, I haven't been able to locate any user manual or user guide.
When I hook up the eval board input to 400VDC, I am not getting any output. I see a green LED on the microcontroller board, and the red and orange are flashing. The board draws about 4 mA from the supply.
I have ordered an XMC link cable to use the GUI interface, but I was under the impression that the unit would be pre programmed to go 400VDC in 51 VDC out.
Is there any setup guide or troubleshooting steps I should be following?
Show LessHi,
I ask for some details on the following routine, that is the erase of a sector for the on-chip flash.
int EraseSector (unsigned long adr) {
M32(FLASH_NoCACHE + 0x5554) = 0xF5; // Start Clear Status Command
M32(FLASH_NoCACHE + 0x5554) = 0xAA; // Start Block Erase Command
M32(FLASH_NoCACHE + 0xAAA8) = 0x55;
M32(FLASH_NoCACHE + 0x5554) = 0x80;
M32(FLASH_NoCACHE + 0x5554) = 0xAA;
M32(FLASH_NoCACHE + 0xAAA8) = 0x55;
M32(adr | FLASH_OFFS) = 0x30; // erase logical sector
while (FLASH0->FSR & FSR_PBUSY); // Wait until Erase completed
if (FLASH0->FSR & FSR_ERR) { // Check for Error
return (1); // Failed
}
return 0;
}
I guess that from the instruction "M32(adr | FLASH_OFFS) = 0x30" on, it is no more possible to perform a fetch from the on-chip flash, until the erase is completed.
Anyway, the CPU can execute the instruction "while (FLASH0->FSR & FSR_PBUSY)", because the fetch of that instruction is performed from the flash cache. Isn't it?
During the flash erase, we should avoid the execution of other parts of our firmware, in order to avoid cache misses. I guess that, if I try to execute another thread during the sector erase, a flash cache miss could happen and a fetch from flash won't be possible, causing the execution to get stuck.
Could you please confirm these statements?
Thank you,
Regards
Show LessI am looking for some firmware how to configure the RS232 xmit/rec.
Thanks
Hello,
I'm working on a project for BLDC motor control. I'm using the XMC1300 board connected to a BLDC controller equipped with a current sensor with a measurement range of (-5A, 5A). I'm using the "BLDC_SCALAR_HALL_XMC13" software example to control the BLDC motor with Hall sensors. My current sensor has an offset voltage of 2.5V and a sensitivity of 185mV/A. I need to determine the scaling required to process the measurements taken by the VADC converter.
I've read that the board operates in a format called Q14 within the user guide. However, there are scaling values that I don't quite understand, such as "MOTOR0_BLDC_SCALAR_CURRENT_ADC_SCALE" in the bldc_scalar_derived_parameter.h file of the mentioned example. I would like to understand the calculations and scalings performed in the software with the measured value from the VADC module using the "VADC_GetResult(MOTOR0_BLDC_SCALAR_VADC_IDC_LINK_GRP, MOTOR0_BLDC_SCALAR_VADC_IDC_LINK_RES_REG_NUM)" function in the bldc_scalar_current_motor.h file of the mentioned example.
This will help me adjust these parameters and achieve proper integration of my current sensor as a means of measuring motor current. You can find the example at the following link Download of Example Projects for DAVE™ Apps - Infineon Technologies.
Sensor Specifications:
Best Regards, Pablo
Dear sir / madam,
I amtrying to implement a bootloader program.
It works fine until I add in more code. It seems the extra code clashes with the AMB header and I get the message below.
.abm loaded at [0c00ffe0,0c00fff3] overlaps section .text loaded at [0c000000,0c011b87]
ABM header:
.abm ABSOLUTE(0x0800FFE0): AT(0x0800FFE0 | 0x04000000)
{
KEEP(*(.flash_abm))
} > FLASH_1_cached
The extra code is added when i add the Ethernet Lwip app.
I've tried different things with the linker file to try and place the code around the ABM header, but had no success so far. I would have though since the ABM header is declared in the linker the compiler owuld have avoided placing code near that section. Is there a way the linker can select different sections to overcome the problem, e.g.
place Flash 1 before the abm header, and place Flash 1 after the abm header?
or place the Ethernet Lwip code after the abm header?
I've attached the project.
thanks
Brendan
Show Less
请问用XMC4700,用MDK JLINK仿真调试PWM输出,在单步和暂停状态下,如何停止PWM输出有效电平,这样防止烧坏MOS管,谢谢,邮箱 381048836@qq.com
We need the FIT rate for the XMC4500 and BGT24MTR11. We can't find it in any of the posted documentation.
I have two analog signals in the shape of a gaussian curve having an amplitude of about 500 mv and duration of 20 microseconds. These pulses happen at irregular intervals of about every 400 microsecond. I am measuring the amplitude of these signal with two channels of the onboard ADC operating as fast as possible so that the shape of the pulses can be quantified. Using two channels means that a measurement on one channel is slightly behind the other by about 2 microseconds. This creates an error in my data.
Question 1.
I am aware that there are more than one ADC device in my XMC 4700 board. I see references to simultaneous ADC measurements. Reading the documents, seems like it is doable. Reading the documents offers no clue on how to actually it. Can anyone help me out with actual code to do the job?
Question 2:
In my code, a conversion seems to take about 2 microseconds. All the fat is removed from the code to make the ADC to run as fast as possible. In the ADC measurement setup, an 8 bit ADC is supposed to done in 430 nsec. This is not the case for me. Is there some special trick that has to be done to achieve the published speed?
Show Less