The NTC thermistor is integrated into many of the CIPOS IPMs to allow you to sense the module's internal temperature. This is useful because the NTC can then be connected to the ADC terminal of a microcontroller to shut down the module if the temperature reading is too high. The IPM's application note provides more information about the NTC as well as including an example of an over-temperature protection circuit.
↧
NTC - Benefits
↧
sense of output phase current....
Shunt resistors are the most common approach to measuring the output phase current. These resistors are placed after at the low side emitter to measure the current of each phase leg. Each products application note provides a reference design where shunt resistors are implemented.
↧
↧
PCB assembly
We have an application note detailing just this: CIPOS Nano QFN PCB design and assembly technique
↧
Best methods to improve thermal performance
Because QFN IPMs have been designed to be used for heatsink-less operation, the majority of heat dissipation from the IPM happens through the PCB. Copper thickness and trace area of the PCB plays a large role in how effective this heat dissipation is. CIPOS Nano, our QFN IPMs, have an application note describing best PCB design techniques: Thermal performances vs PCB characteristics
In addition, an article has been written about optimizing the thermal layout for CIPOS Nano half-bridge modules: Optimized thermal layout
↧
Recommended power supply
For an Infineon recommendation, the COOLSET based auxiliary supply is a good solution for IPM design. It is a flyback power supply that provides multiple fully galvanic-isolated voltage outputs from a single voltage source. This is useful for IPMs which require a VCC voltage of about 15 volts and a pull-up voltage for the protection circuitry of 3.3 or 5 V.
↧
↧
XMC4800 RELAX how to configure more than one CAN Nodes
Hi,
The CAN node sending a message is also receiving it, so that it can check the transmission and the ACK from the receiving node.
If you do not have a transceiver connected to the MCU pins, you will need to short the CAN_TXD/RXD.
See attached for node 0 on XMC4800 Relax Kit. Since no ACK is received, the CAN node sends the message indefinitely.
Attachment 4444
Regards,
Jesus
The CAN node sending a message is also receiving it, so that it can check the transmission and the ACK from the receiving node.
If you do not have a transceiver connected to the MCU pins, you will need to short the CAN_TXD/RXD.
See attached for node 0 on XMC4800 Relax Kit. Since no ACK is received, the CAN node sends the message indefinitely.
Attachment 4444
Regards,
Jesus
↧
Problem with PWM_CCU8
Hi Aaron,
I cannot reproduce the issue also in XMC4500 using the latest version of the APP
Attachment 4445
See also attached project.
The issue was fixed by removing the call to disable the slice clock.
Regards,
Jesus
I cannot reproduce the issue also in XMC4500 using the latest version of the APP
Attachment 4445
See also attached project.
The issue was fixed by removing the call to disable the slice clock.
Code:
/*Stops the CCU8_CC8 slice. */
PWM_CCU8_STATUS_t PWM_CCU8_Stop(PWM_CCU8_t* handle_ptr)
{
PWM_CCU8_STATUS_t status;
status = PWM_CCU8_STATUS_FAILURE;
XMC_ASSERT("PWM_CCU8_Stop:handle_ptr NULL", (handle_ptr != NULL));
if (PWM_CCU8_STATE_UNINITIALIZED != handle_ptr->state)
{
XMC_CCU8_SLICE_StopTimer(handle_ptr->ccu8_slice_ptr);
XMC_CCU8_SLICE_ClearTimer(handle_ptr->ccu8_slice_ptr);
XMC_CCU8_DisableClock(handle_ptr->ccu8_module_ptr, handle_ptr->slice_number);
handle_ptr->state = PWM_CCU8_STATE_STOPPED;
status = PWM_CCU8_STATUS_SUCCESS;
XMC_DEBUG("PWM_CCU8_Stop:stop PWM");
}
return (status);
} /* end of PWM_CCU8_Stop() api */
Jesus
↧
TLE9879 Evaluation Kit FOC speed issue
I am trying to run the sample code BLDC_SENSORLESS_FOC_EXAMPLE_TLE987X. When I try to run Emo_setspeedreferenz((X) where X is less than 700, the motor runs jerking, not smooth. Is it because of the wrong type of motor or I need to tune the software
to run my motor smoother. I am planning to run slower speed on this example code.
Thank you
to run my motor smoother. I am planning to run slower speed on this example code.
Thank you
↧
PressFIT compared to solder Pins?
Hi Guys,
Please help me with the following: what are the advantages of PressFIT Pins compared to solder Pins?
Thanks.
Please help me with the following: what are the advantages of PressFIT Pins compared to solder Pins?
Thanks.
↧
↧
XMC4500 Relax Kit -> Array -> UART transmission using DMA
Even I can not get 6000 bytes array from UART, using simple code:
for(i=0; i<1000; i++)
{
UART001_WriteDataMultiple(&UART001_Handle0, BlockHeader, 6);
uS_Delay(200);
}
Only 4317 bytes correctly transmitted, then garbage seen.
I suspect XMC4500 internal bus problem
K
for(i=0; i<1000; i++)
{
UART001_WriteDataMultiple(&UART001_Handle0, BlockHeader, 6);
uS_Delay(200);
}
Only 4317 bytes correctly transmitted, then garbage seen.
I suspect XMC4500 internal bus problem
K
↧
Multiple bulk WinUSB (LibUSBk) EPs issue
We are using multiple IN EPs in our design. I configure the endpoints in the USB_Descriptor_Configuration_t configuration_descriptor in Dave/Generated/USBD_WINUSB/winusb/descriptors.c and h file.
The endpoints show up ok in Windows but communication on other EPs than the first does not work (data gets stuck in the EP, USBD_Endpoint_t ep->InInUse is true).
Using the same number of endpoints on a competitor MCU works with no issues using the same test application in Windows.
The reported error in Windows is: ERROR_GEN_FAILUE 31 (ox1F) A device attached to the sustem is not functioning.
Communication on the first endpoint is working well.
Any ideas what could be causing this behaviour?
This is the winusb configuration:
.winusb_interface =
{
.Header = {.Size = sizeof(USB_Descriptor_Interface_t),
.Type = DTYPE_Interface},
.InterfaceNumber = 0,
.AlternateSetting = 0,
.TotalEndpoints = 3,
.Class = USB_CSCP_VendorSpecificClass,
.SubClass = USB_CSCP_NoDeviceSubclass,
.Protocol = USB_CSCP_NoDeviceProtocol,
.InterfaceStrIndex = NO_DESCRIPTOR
},
This is the configurations of the IN EPs
.winusb_data_in_endpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t),
.Type = DTYPE_Endpoint},
.EndpointAddress = (ENDPOINT_DIR_IN | WINUSB_TX_EPNUM),
.Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
.EndpointSize = WINUSB_TXRX_EPSIZE,
.PollingIntervalMS = 0x00
}
.winusb_data_in2_endpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t),
.Type = DTYPE_Endpoint},
.EndpointAddress = (ENDPOINT_DIR_IN | WINUSB_TX2_EPNUM),
.Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
.EndpointSize = WINUSB_TXRX_EPSIZE,
.PollingIntervalMS = 0x00
}
WINUSB_TXRX_EPSIZE is 64
WINUSB_TX1_EPNUM is 2
WINUSB_TX2_EPNUM is 3
typedef struct
{
USB_Descriptor_Configuration_Header_t config;
USB_Descriptor_Interface_t winusb_interface;
USB_Descriptor_Endpoint_t winusb_data_out_endpoint;
USB_Descriptor_Endpoint_t winusb_data_in_endpoint;
USB_Descriptor_Endpoint_t winusb_data_in2_endpoint;
} USB_Descriptor_Configuration_t;
The endpoints show up ok in Windows but communication on other EPs than the first does not work (data gets stuck in the EP, USBD_Endpoint_t ep->InInUse is true).
Using the same number of endpoints on a competitor MCU works with no issues using the same test application in Windows.
The reported error in Windows is: ERROR_GEN_FAILUE 31 (ox1F) A device attached to the sustem is not functioning.
Communication on the first endpoint is working well.
Any ideas what could be causing this behaviour?
This is the winusb configuration:
.winusb_interface =
{
.Header = {.Size = sizeof(USB_Descriptor_Interface_t),
.Type = DTYPE_Interface},
.InterfaceNumber = 0,
.AlternateSetting = 0,
.TotalEndpoints = 3,
.Class = USB_CSCP_VendorSpecificClass,
.SubClass = USB_CSCP_NoDeviceSubclass,
.Protocol = USB_CSCP_NoDeviceProtocol,
.InterfaceStrIndex = NO_DESCRIPTOR
},
This is the configurations of the IN EPs
.winusb_data_in_endpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t),
.Type = DTYPE_Endpoint},
.EndpointAddress = (ENDPOINT_DIR_IN | WINUSB_TX_EPNUM),
.Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
.EndpointSize = WINUSB_TXRX_EPSIZE,
.PollingIntervalMS = 0x00
}
.winusb_data_in2_endpoint =
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t),
.Type = DTYPE_Endpoint},
.EndpointAddress = (ENDPOINT_DIR_IN | WINUSB_TX2_EPNUM),
.Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
.EndpointSize = WINUSB_TXRX_EPSIZE,
.PollingIntervalMS = 0x00
}
WINUSB_TXRX_EPSIZE is 64
WINUSB_TX1_EPNUM is 2
WINUSB_TX2_EPNUM is 3
typedef struct
{
USB_Descriptor_Configuration_Header_t config;
USB_Descriptor_Interface_t winusb_interface;
USB_Descriptor_Endpoint_t winusb_data_out_endpoint;
USB_Descriptor_Endpoint_t winusb_data_in_endpoint;
USB_Descriptor_Endpoint_t winusb_data_in2_endpoint;
} USB_Descriptor_Configuration_t;
↧
How to recover SPD and BRD error in QSPI module
Hi Lina,
User can recover SPD and BRD error with State Machine, TXFIFO and RXFIFO reset.(0111b value)
Best regards,
Mr. AURIX™
User can recover SPD and BRD error with State Machine, TXFIFO and RXFIFO reset.(0111b value)
Best regards,
Mr. AURIX™
↧
XMC1202 with ULINK2?
Hi,
now I'm trying to change the BMI, I'm using an USB to UART converter and I've downloaded the MemTool software but it cannot communicate with the XMC.. I'm doing something wrong?
Thanks.
now I'm trying to change the BMI, I'm using an USB to UART converter and I've downloaded the MemTool software but it cannot communicate with the XMC.. I'm doing something wrong?
Thanks.
↧
↧
Automated Code Generation and Build of a DAVE project
Hi,
since this Thread is a few years old, is there a way to trigger the "generate Code" inside the newer DAVE-Versions (DAVE-4.4.2) ?
I found a way to build the existing Code via Command-Line but I'm still missing a way to generate the DAVE-Apps Code with CLI...
Best regards
since this Thread is a few years old, is there a way to trigger the "generate Code" inside the newer DAVE-Versions (DAVE-4.4.2) ?
I found a way to build the existing Code via Command-Line but I'm still missing a way to generate the DAVE-Apps Code with CLI...
Best regards
↧
miniwiggler PORST problem
↧
IRPS5401 won't start / initial bring-up
Hi Folks,
I believe I have this problem and I have solved it.
If you have an MTP selection resistor fitted and the selected MTP slot in nonvolatile memory is empty, the part will turn on, respond to I2C commands and hold register values, but will be unable to start any of its switchers regardless of how you set the registers over I2C.
One of the symptoms of this problem is that in STATUS_WORD, NONE OF THE ABOVE, OFF, and POWER_GOOD# will be set, but none of the other fault flags will be set.
To unlock the PMIC for configuration over I2C, either write a valid configuration to the selected MTP slot before attempting to control the PMIC over I2C, or remove the MTP selection resistor. (Note that according to the datasheet, this will make the PMIC I2C addr 0Ah).
Hope this helps. This comes at the end of 2 days of furious headscratching by several engineers over here. This is especially frustrating because the parts arrive blank, and this means that without modifying and un-modifying the board you cannot test the configuration in bringup before writing it to permanent memory.
Attachment 4447
I believe I have this problem and I have solved it.
If you have an MTP selection resistor fitted and the selected MTP slot in nonvolatile memory is empty, the part will turn on, respond to I2C commands and hold register values, but will be unable to start any of its switchers regardless of how you set the registers over I2C.
One of the symptoms of this problem is that in STATUS_WORD, NONE OF THE ABOVE, OFF, and POWER_GOOD# will be set, but none of the other fault flags will be set.
To unlock the PMIC for configuration over I2C, either write a valid configuration to the selected MTP slot before attempting to control the PMIC over I2C, or remove the MTP selection resistor. (Note that according to the datasheet, this will make the PMIC I2C addr 0Ah).
Hope this helps. This comes at the end of 2 days of furious headscratching by several engineers over here. This is especially frustrating because the parts arrive blank, and this means that without modifying and un-modifying the board you cannot test the configuration in bringup before writing it to permanent memory.
Attachment 4447
↧
EXternal clock not working - EXTCON0
Hello,
I am trying to use the external clock where I configure the register and relavant pin according to the requirement but the clock is not produced as expected.
using TC277 micro.
clear safety()
Extcon.B.EN0 = 1;
Extcon.B.SEL0 = 0x9;using fspb source
Extcon.B.NSEL = 1;
Set safety()
IfxPort_setPinMode(PINOUT, IfxPort_Mode_outputPushPullAlt6); PINOUT is defined to be P23,1
IfxPort_setPinPadDriver(PINOUT, IfxPort_PadDriver_cmosAutomotiveSpeed1);
Kindly shed some light, what else I am missing to initialise.
Thank you in advance.
Deepak
I am trying to use the external clock where I configure the register and relavant pin according to the requirement but the clock is not produced as expected.
using TC277 micro.
clear safety()
Extcon.B.EN0 = 1;
Extcon.B.SEL0 = 0x9;using fspb source
Extcon.B.NSEL = 1;
Set safety()
IfxPort_setPinMode(PINOUT, IfxPort_Mode_outputPushPullAlt6); PINOUT is defined to be P23,1
IfxPort_setPinPadDriver(PINOUT, IfxPort_PadDriver_cmosAutomotiveSpeed1);
Kindly shed some light, what else I am missing to initialise.
Thank you in advance.
Deepak
↧
↧
Transmit and recieve 8 bit data via SPI_master
Thank you for the guidance
↧
TC233 , Memtool and UART
Trying to program TC233 via ft232rl usb serial using memtool and have no luck to do that , no communication , mcu responds to custom bootloader , maybe any hints / tips about my problem ?
↧
SAK-TC397 BGA-292 Aurix 2G Triboard TLF355384 5V/3.3V detection in software
Hello Support,
In the Aurix 2G SAK-TC397 BGA-292 Triboard Hardware Version 2.01, there are two possible population of TLS35584 device.
TLF35584QVVS1 -> +5V standby voltage, +5V TriCore supply (V_UC)
TLF35584QVVS2 -> +3,3V standby voltage, +3,3V TriCore supply (V_UC)
I can see on my Triboard TLF35584QVVS1 is populated.
Is there any way we can query in software which one is mounted on the Triboard?
TLF35584 register description didn't contain any ID Register.
May be VEXT voltage can be read to indirectly detect the V_UC.
Any info will help me a lot.
Best Regards
In the Aurix 2G SAK-TC397 BGA-292 Triboard Hardware Version 2.01, there are two possible population of TLS35584 device.
TLF35584QVVS1 -> +5V standby voltage, +5V TriCore supply (V_UC)
TLF35584QVVS2 -> +3,3V standby voltage, +3,3V TriCore supply (V_UC)
I can see on my Triboard TLF35584QVVS1 is populated.
Is there any way we can query in software which one is mounted on the Triboard?
TLF35584 register description didn't contain any ID Register.
May be VEXT voltage can be read to indirectly detect the V_UC.
Any info will help me a lot.
Best Regards
↧