Quantcast
Channel: Infineon Forums
Viewing all 9892 articles
Browse latest View live

Bridge Drive Issue

$
0
0
I run the board without load. PWM will stop due to over current.
Could the over current protection been disabled?
Attachment 3980
?????

QSPI and EtherCAT

$
0
0
Hi all! I'm new on this forum, so i beg your pardon if i'm doing something against its rules!
Anyway, I have this problem: I'm using the XMC4800 relax kit to implement an EtherCAT slave (using the code of the example i've found at this page: https://www.infineon.com/cms/en/prod...downloads.html) and I want my slave to send a master the result of the QSPI test (the one i've downloaded from the page i've previously linked).
I notice that, if i don't insert that test into an EtherCAT system it works fine, but when i try to insert it into the main of the EtherCAT code, it always fail. I've checked the Chip Select pin of the flash memory: with the EtherCAT, the memory seems to be selected for fewer time (i.e. the time during which the chip select is driven low is almost the half of the case without the EtherCAT).

Which could be the problem and how could I solve it?
Thanks in advance!

SPI not always transmitting

$
0
0
Hi,

I am seeing a real strange issue with my SPI tx data transfer. When calling the following function in main.c and observing the results on an oscilloscope, the function successfully executes and the data can be seen on the MISO line of the XMC4500.
The issue comes when I call the same function in a different source file. The status of the transmit is Success however, the code will then get stuck in the while loop.

void SPI_Write_Data (void)
{
uint16_t WriteData = 123;
if(SPI_MASTER_Transmit(&SPI_MASTER_0, &WriteData, sizeof(WriteData )) == SPI_MASTER_STATUS_SUCCESS)
{
while(SPI_MASTER_0.runtime->tx_busy)
{
}
}
}


I am using a XMC4500 with DAVE 4. I am using the SPI_Master app in full duplex mode with a desired baud rate of 1M.
The app is configured to interrupt mode, however no end of tx/rx callbacks. FIFO is enabled, with a size of 2 for both Rx and Tx.

I dug down further into the cause, to make sure the data is not still being transferred and the CS has returned to a high state, only to find that no data is even transferred.
The tx_busy flag is set to true, as part of the ‘SPI_MASTER_Transmit’ API, though it is never set back to false.

When in the working instance, the tx_busy flag set to false and the data transferred in the XMC_USIC_CH_TriggerServiceRequest(handle->channel, (uint32_t)handle->config->tx_sr) function, with in the ‘SPI_MASTER_Transmit’ API.
In the non-working instance, nothing appears to happen during the XMC_USIC_CH_TriggerServiceRequest(handle->channel, (uint32_t)handle->config->tx_sr) function call. The tx_busy flag remains set to true and no data transferred.

Does this mean some other interrupt is generated to set the flag back to false?

I have read about others having issues with SPI in passed posts and used many examples but nothing has yet to help me out.
I was hoping I could use some help from you guys with why/how the origin of a function call can change the way the function works, without anything being passed in!

Any ideas?

Thanks in advanced,
Steven

How to use POSIF in DAVE4.4.2?

$
0
0
Hi,

Currently you need to use the XMCLib. Otherwise in the next DAVE APPs release in June we are adding to new APPs, ENCODER_POSIF and HALL_POSIF.

Regards,
Jesus

Contacts for MCAL improvement issues

$
0
0
I forwarded your hint to the responsible department for check and improvement.

DAVE4 & XMC4500 Relax Lite Kit connection and examples

$
0
0
In answer to my own questions...

1) How do I set the XMC4500 Relax Lite Kit as a debug target in DAVE4 ? It does not appear as an option under 'Debug Configuration'
Use "GDB Segger J-Link Debugging". DAVE4 is different to DAVE3.

2) Where can I find example DAVE4 projects for the XMC4500 Relax Lite Kit ?
There aren't any specifically for this kit but general DAVE4 project examples are here...
https://www.infineon.com/cms/en/prod...downloads.html

3) Where can I find the default DAVE4 project already installed on the XMC4500 Relax Lite Kit ?
You can't. Once you over-write the code supplied on the kit you have lost it forever.

How to enable the "Add floating point support for printf" in the "Runtime Library" ?

Wildcard (*.*) [Width].[Precision] specifiers in the printf & sprintf functions ?


Sending data

$
0
0
Hello,

I bought Distance2Go kit and connect my PC to the kit with a communication converter (TCP to Uart).
I tried to send data from PC to the kit but could not succeed.
when I tried to send data to another micro controller I saw that the data received.
Can anyone send a project that configure the UART in this board?

best regards,

Meni

Zero Copy. Ethernet DMA, Own bit Rx don't reset.

$
0
0
I am writing TCP stack for XMC4700, using zero copy. Why Own bit rx don't reset.
He responds to ping several times and then all descriptors have the status 0x80000000. Why?

static BaseType_t prvNetworkInterfaceInput( void )
{
NetworkBufferDescriptor_t *pxCurDescriptor = NULL;
uint8_t *pucTemp;
BaseType_t usReceivedLength = 0, xAccepted = 0;
__IO XMC_ETH_MAC_DMA_DESC_t *pxDMARxDescriptor = NULL;
xIPStackEvent_t xRxEvent = { eNetworkRxEvent, NULL };
const TickType_t xDescriptorWaitTime = pdMS_TO_TICKS( 250 );
uint8_t *pucBuffer;

pxDMARxDescriptor = eth_mac.rx_desc;

if( ( pxDMARxDescriptor->status & ETH_MAC_DMA_RDES0_OWN) == 0 )
{
// Get the Frame Length of the received packet: substruct 4 bytes of the CRC
usReceivedLength = XMC_ETH_MAC_GetRxFrameSize( &eth_mac );

pucBuffer = (uint8_t *) pxDMARxDescriptor->buffer1;

/* Update the ETHERNET DMA global Rx descriptor with next Rx descriptor
Chained Mode
Selects the next DMA Rx descriptor list for next buffer to read*/
eth_mac.rx_desc = ( XMC_ETH_MAC_DMA_DESC_t* )pxDMARxDescriptor->buffer2;
}
else
{
usReceivedLength = 0;
}

if( usReceivedLength > 0 )
{
/* In order to make the code easier and faster, only packets in a single buffer
will be accepted. This can be done by making the buffers large enough to
hold a complete Ethernet packet (1536 bytes).
Therefore, two sanity checks:*/
configASSERT( usReceivedLength <= ETH_RX_BUF_SIZE );

if( ( pxDMARxDescriptor->status & ( ETH_MAC_DMA_RDES0_CE | ETH_MAC_DMA_RDES0_FT ) ) != ETH_MAC_DMA_RDES0_FT )
{
// Not an Ethernet frame-type or a checksum error.
xAccepted = pdFALSE;
}
else
{
// See if this packet must be handled.
xAccepted = xMayAcceptPacket( pucBuffer );
}

if( xAccepted != pdFALSE )
{
/* The packet wil be accepted, but check first if a new Network Buffer can
be obtained. If not, the packet will still be dropped.*/

pxCurDescriptor = pxGetNetworkBufferWithDescriptor( ETH_RX_BUF_SIZE, xDescriptorWaitTime );
pucTemp = pxCurDescriptor->pucEthernetBuffer;

#if( ipconfigZERO_COPY_RX_DRIVER != 0 )
{
pxCurDescriptor->pucEthernetBuffer = (uint8_t *) pucBuffer;

configASSERT( pxCurDescriptor != NULL );
}
pxDMARxDescriptor->buffer1 = (uint32_t) pucTemp;


#else
{
/* In this mode, the two descriptors are the same. */
pxCurDescriptor = pxNewDescriptor;
if( pxNewDescriptor != NULL )
{
/* The packet is acepted and a new Network Buffer was created,
copy data to the Network Bufffer. */
memcpy( pxNewDescriptor->pucEthernetBuffer, pucBuffer, xReceivedLength );
}
}
#endif


if( xAccepted != pdFALSE )
{
pxCurDescriptor->xDataLength = usReceivedLength;
xRxEvent.pvData = ( void * ) pxCurDescriptor;

/* Pass the data to the TCP/IP task for processing. */
if( xSendEventStructToIPTask( &xRxEvent, xDescriptorWaitTime ) == pdFALSE )
{
/* Could not send the descriptor into the TCP/IP stack, it
must be released. */
vReleaseNetworkBufferAndDescriptor( pxCurDescriptor );
iptraceETHERNET_RX_EVENT_LOST();
}
else
{
iptraceNETWORK_INTERFACE_RECEIVE();
}
}

/* Set Buffer1 size and Second Address Chained bit */
pxDMARxDescriptor->length = (uint32_t)ETH_RX_BUF_SIZE;
pxDMARxDescriptor->status = ETH_MAC_DMA_RDES0_OWN;

vReleaseNetworkBufferAndDescriptor( pxCurDescriptor );

/* Ensure completion of memory access */
__DSB();
/* When Rx Buffer unavailable flag is set clear it and resume
reception. */
if( (eth_mac.regs->STATUS & (uint32_t)ETH_STATUS_RU_Msk) != 0)
{

/* Resume DMA reception. */

XMC_ETH_MAC_ResumeRx(&eth_mac);
}
}

return ( usReceivedLength > 0 );
}

Sector PFLASH

$
0
0
Hallo jferreira,

thanks for the answer.

How can I erase only one Page? Because it takes a long time to erase the complete sector....

Thanks for your help

S.H.

FAQ for XMC4800 EtherCAT

$
0
0
Hi all! I'm new on this forum, so i beg your pardon if i'm doing something against its rules!

Anyway, I have this problem: I'm using the XMC4800 relax kit to implement an EtherCAT slave (using the code of the example i've found at this page: https://www.infineon.com/cms/en/prod...downloads.html) and I want my slave to send a master the result of the QSPI test (the one i've downloaded from the page i've previously linked).
I notice that, if i don't insert that test into an EtherCAT system it works fine, but when i try to insert it into the main of the EtherCAT code, it always fail. I've checked the Chip Select pin of the flash memory: with the EtherCAT, the memory seems to be selected for fewer time (i.e. the time during which the chip select is driven low is almost the half of the case without the EtherCAT).

Which could be the problem and how could I solve it?
Thanks in advance!

Can the CAPTURE app measure below 1 Hz ? (DAVE 4)

PWM APP, method for phase shifting / setting initial timer value

$
0
0
Greetings all,

I have 3 x PWM APP's all running the same duty and period.

I would like to phase shift them such that the output pulses are spread equally over the period.

Is there a method for doing this ? I'm thinking I should be able to initialise the timer value of each PWM to different values before I start them. Something like PWM_SetTimerValue().


Any suggestions would be greatly appreciated.

PHAB

FAQ for miscellaneous ePower Topics

$
0
0
Question1: Is the LIN block exactly the same in the TLE9873QX_40 variant as the one qualified in the TLE9879QX variant used to qualify the other parts?
Answer1: The LIN block is exactly the same.

Question2: Were any of the Test Program changes for the Grade 0 parts related at all to LIN? If so what are the details of those changes?
Answer2: The LIN test program has no changes for Grade 0.

Question3: Do we have any comparative wafer test data between the QXA versions and the new QXW, QXH versions to show that the LIN performance is essentially unchanged?
Answer3: Since there are no changes in LIN test program the test performance is identical.

AURIX TC2X7 Development Board programming

$
0
0
Hi,

I recently got the application kit for TC2X7 TFT and I have been playing around with it to get familiar with the controller and the ecplise environment. I was able to run the example project for LCD demo. I also executed few programs in the project to toggle the LEDs and they all work perfectly. (I could build and debug the code without an issue)
I created a new project in eclipse and copied all the .h and .c files from the existing example project (LCD Demo) and tried to execute it. I could build the project successfully and flash the program, however the LCD remained blank the code would not execute. I tried debugging the code which would exit in the middle. I have not been able to find a explanation or a solution for this.
I would like to understand whats doing on and what can be done to fix this.

Thank you

Suvrat

QSPI code for TC399

$
0
0
HI,

sorry but I am not able to find out ISR table can you please elaborate little more

Looking for demos

$
0
0
Hi Vivek,

Quote:

Originally Posted by HIGHTEC.henk-piet.glas View Post
<snip> I don't want to raise your hopes by saying that it will be (processed) any day soon. These things take time, because before someone can be allocated, there has to be some deliberation discussing its priority. <snip>

Too late for you personally, but I still wanted to let you know it's there, just in case there is a need for it. If you navigate to our registration page there now is a renewed migration application note based on v1.0.1.10.0 of iLLD.

Best regards,

Henk-Piet Glas
Technical Product Specialist
Embedded Software

Error while building the code from the TC234 Motor Control Kit

$
0
0

Hi Ali,


Quote:

Originally Posted by Ali.Terro.11 View Post
<snip> <snip> I want to know what can i do to solve this Problem. <snip> <snip>

I remember a similar case from several years ago. Although I can't be sure, these are the steps to find out. Goto the following iLLD folder (path may be off by the way):
Code:

<example>\0_Src\4_McHal\Tricore\Compilers
And open CompilerTasking.h. Next check the definition of IFXCOMPILER_COMMON_LINKER_SYMBOLS. If it reads:
Code:

asm("\t .extern (DATA) _SMALL_DATA_, _LITERAL_DATA_, _A8_DATA_, _A9_DATA_");
Then you must remove the (DATA) cast because as far as I know this is invalid assembler syntax for TASKING. So instead it must be substituted with the follow valid equivalent:
Code:

asm("\t .extern _SMALL_DATA_, _LITERAL_DATA_, _A8_DATA_, _A9_DATA_");
Let me know how this works out.

Best regards,

Henk-Piet Glas

Technical Product Specialist
Embedded Software

How to use POSIF in DAVE4.4.2?

Viewing all 9892 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>