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

XMC 4700 JTAG & External Bus Interface Pin Conflict

$
0
0
Sorry that I start a question on this Post after two year, but I currently I make a Port Pin List for a XMC4500
and the I use also a 16 bit bus on the EBU.

But if I understand correctly, if use SWD Interface I Need P2.1 and bei an SDRAM Interface Support of the EBU
P2.1 is used as an address line

Therefore the question If I use the EBU Interface for an 16 Bit multiplexed device and an SDRAM how can I use
the debug Interface?

Thanks for your help

Ebbe

XMC4500 CAN Communication

$
0
0
Hi ermes,

Aaaa OK in that case...shall we continue with debugging then ;)

Quote:

I also tried to short Can1Tx with Can2Rx and Can1Rx with Can2Rx (ie P1.12 -> 1.5 and 1.13 -> 1.4)
. And this makes sense while the Board user manual for your board specifies the mentioned four pins as being available. However, in the example that you sent me, I see that another pins are selected for the receive node.

Attachment 2992

Can you please select P1.4 and P1.5 on the React Node side and try again? If this still doesn´t help, then please set the breakpoint right after transmit (right after following instruction: can_mo->can_mo_ptr-> MOCTR = CAN_MO_MOCTR_SETTXRQ_Msk | CAN_MO_MOCTR_SETTXEN0_Msk | CAN_MO_MOCTR_SETTXEN1_Msk and make an screenshot of your CAN_NSR registers for both nodes (TX and RX one). We will see what does the LEC bitfield states.

Best regards,
Deni
?????

XMC4700 XMCLib CCU4 symmetric PWM

$
0
0
Hello everyone,

I'm trying to setup a symmetric PWM with the CCU4 Module with DAVE4.3 for a XMC4700.
I've been looking how to enable the transfer of the shadow registers only at the 'one-match' event instead of twice per period.
I noticed that the XMCLib function "XMC_CCU4_SLICE_SetShadowTransferMode()" is only available for the XMC1400 series.

Is it possible to configure the CCU4 to work in symmetric mode so that the compare match value is updated only at the beginning of the PWM period (one-match)?

Regards,
Sebastian

µc/Probe Crashes every time

$
0
0
Hi,

I am trying to run µc/Probe with an XMC 4200F64x256.
But it crashes all the time, when I try to run. (I have never seen something like that)

Those are the steps i did before pressing play:
1. selected the correct *.elf file.
2. switched to XMC4000 family.
3. Added a linear gauge (vertial 1)
4. Dropped one of the variables onto it.
5. Clicked the variable in the symbols manager of the vertical 1.
6. Software is running on the MCU.
7. Debugger is connected.
8. in µC / Probe it is configures as SWD and 1000khz (those are the settings in my DAVE configuration)
6. Pressed play.
7. CRASH

This is the error:

Date: 6/13/2017 1:29:43 PM

µC/Probe Version: 4.2.1.544

µC/Probe Edition: Pro

CommunicationType: SeggerJLinkSettings

Culture: en-US

SymbolFile: NULL

DotNetVersion: 4.0.30319.42000

OsMajorVersion: 6

OsMinorVersion: 2

OsPlataform: Win32NT

Error Message: Value cannot be null.
Parameter name: source

InnerException: NULL

StackTrace: at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
at Micrium.Ucprobe.Modules.Docking.Screens.ViewModel. OS2.KA.Tasks.OS2_KA_Tasks_ViewModel.Start(Communic ationSettings settings, Boolean isFirstTime)
at Micrium.Ucprobe.Modules.Docking.Screens.ViewModel. OS2.KA.OS2_KA_ViewModel.Start(CommunicationSetting s settings, Boolean newOS_NetCode)
at Micrium.Ucprobe.Controls.Common.ControlDispatcher. SetAwarenessScreensForStart()
at Micrium.Ucprobe.Controls.Common.ControlDispatcher. SetDispatcherForStart()
at Micrium.Ucprobe.Controls.Common.ControlDispatcher. Start()
at Micrium.Ucprobe.ApplicationSystem.Application.AppS ystem.StartCollectingData()
at Micrium.Ucprobe.ApplicationSystem.Tools.CustomVers ion.Infineon.Infineon_Version_Properties.CheckValu e(Int32 valueToCheck)
at Micrium.Ucprobe.ApplicationSystem.Tools.CustomVers ion.Infineon.Infineon_Version_Properties.Update(Co ntrolUpdate update)
at Micrium.Ucprobe.ApplicationSystem.SymbolsManagment .SymbolsDispatcher.<>c__DisplayClass3.<PerformUpda teControlRequest>b__2()
at System.Windows.Threading.ExceptionWrapper.Internal RealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatch When(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Erase a single page on XMC4500

$
0
0
I am right that it is not possible to erase a singel page on the XMC4500??

Because on the XMC1xxx I can use the XMC_FLASH_ErasePages funciton.

Thanks
mathias

Monitoring EtherCAT

$
0
0
Hi Jesus,

Many thanks for the link, it made for an interesting read. Apologies I've not responded earlier.

Unfortunately, it didn't quite accord with what I've been asked to report on. But meanwhile, I've made *some* progress:

The code I have is almost wholly based on the DAVE example project for EtherCAT.

With this, I have the PC Visual Studio 2010 based TwinCAT 3 (TC3) EtherCAT master, set to the maximum Freerun Cycle figure, of 1ms.

Within the XMC4300 code, I call the EtherCAT Slave Stack Code (SSC) 'MainLoop' function, every 1ms, per the example project.

I first tried looking at how often the SSC calls back to the example project 'process_app' function, where the data to be sent and received via EtherCAT, is populated.

I found that 'process_app' is called every 1ms. I though, ah ha, from that, I can calculate the usage of the comms line.

But then, I tried 'pulling' the comms line, and found that 'process_app' continues to be called every 1ms!

And further, if I tried altering the 'MainLoop' call interval, from 1ms to say 2ms, then the 'process_app' call interval likewise changes, from 1ms to 2ms.

Argh! So seems that it's just 'MainLoop' that calls-back to 'process_app'!

I then tried looking deeper, and found the following, within the DAVE generated ECAT_SSC APP xmc_eschw.c file. And found it is the below,
that is called with 1ms interval, presumably at or soon after the start of each packet as it passes through. And that if I pull the comms line,
the below stops being called. And if I alter TC3, from 1ms to say 4ms, then the below is likewise called with 4ms interval.

/* ECAT slave interrupt handler function */
void ECAT0_0_IRQHandler(void)
{
PDI_Isr();
}

Further, 'PDI_Isr' also calls 'process_app'. So seems, with EtherCAT, there are two calls to 'process_app'. But the call from 'MainLoop', seems to serve no purpose..

Anyway, I can now insert after the 'PDI_Isr( )' call, a simple counter. And from that, determine the bits flowing. Without going into too much
detail, and with due acknowledgement to Wireshark, which I'd not used before, I reached the following conclusion:

With just my XMC4300 EtherCAT slave on the line, my data, as populated in 'process_app', is a total of 512 bits. And that is framed by a total of 688 bits. Making a grand total of 1200 bits.

But my question is, what would the grand total be if there were 2 slaves on the bus? 5? 10? Etc? Indeed, those slaves could be another
product, by our company, or any other company.

In other words, is there anyway of finding out, the simple total size, of an EtherCAT packet, flowing through the XMC4300 ?

I imagine, that is 'known', deep within the XMC4300 silicon. But maybe, that information just can't be 'got out', through any of the EtherCAT registers, or any other means.

It'd be a pity though to admit defeat, if the information can infact be had..

I was mentioning that I need to count all incoming and outgoing activity, regardless of which EtherCAT feature, is being used. I *believe* 'void ECAT0_0_IRQHandler(void)' is the sole place I will see activity. Certainly if I add a breakpoint to 'void SYNC0IRQHandler(void)' and 'void SYNC1IRQHandler(void)' from the example project, the breakpoints never trigger, even after several days running. So correct me if I'm wrong, but I don't *think* synchronization is occurring. Perhaps the example code is configured with synchronization disabled. I don't know if that's a good thing, or a bad thing.

To finish, a couple of technical details:

The 688 is the entire bit load, from the start of the 7-octet Layer 1 Ethernet packet preamble, to the end of the 12-octet Interpacket Gap.
The actual 512 bits, looks to sit within a 'Logical Read' datagram frame.

Interestingly, it's the middle of 3 frames within the packet (thanks Wireshark). The preceding frame, is another 'Logical Read' (address 0x9000000 len 1 byte). And the following frame, is a 'Broadcast Read' datagram (slave address 1, offset address 0x130, len 2 bytes).

Perhaps, those two frame are always there. And it's the middle frame, that there would be eg 3 instances of, if there were 3 slaves on the line..

Best regards,

David

E_EEPROM_XMC4 Emulation.

$
0
0
Hi,

I am right that the maximum EEPROM size is 8kB? Why is it not 16kB because each of the 4 sectors has 16kB?
I do not understand why there is a 64kB FLASH_0 in the linker file. Then the EEPROM 64kB and then
FLASH_1. But the FLASH_0 is only needed for reset. Is it not possible to place the EEPROM at the end
of the flash? Because with this setting i have lost some kbytes.

FLASH_0_cached(RX) : ORIGIN = 0x08000000, LENGTH = 0x010000
FLASH_0_uncached(RX) : ORIGIN = 0x0C000000, LENGTH = 0x010000
FLASH_1_cached(RX) : ORIGIN = 0x08020000, LENGTH = 0xE0000
FLASH_1_uncached(RX) : ORIGIN = 0x0C020000, LENGTH = 0xE0000
PSRAM_1(!RX) : ORIGIN = 0x10000000, LENGTH = 0x10000
DSRAM_1_system(!RX) : ORIGIN = 0x20000000, LENGTH = 0x10000
DSRAM_2_comm(!RX) : ORIGIN = 0x30000000, LENGTH = 0x8000

many thanks

Pin assignment export feature


XMC1300 IEC60730 class B library

$
0
0
I am using XMC1302 (24VQFN) 32K flash MCU as PMSM controller. I want to have to include the IEC60730 class B library , however I can't download the library from below Infineon web site, I had do the registration according the instruction but never received a email for the download link.

https://www.infineon.com/cms/en/prod...46285964530ee8

Any one know whether I can get the library ?

Questions reg; Infineon Software Framework and iLLD package using TASKING tools

TC1797 UDE-DAS Problem

$
0
0
Hi sumeyye,

check your DAS connection. Should be like in the attached screenshot.

Cheers, Martin
?????

Calculate the time the code runs.

$
0
0
Hi sangyangyang,

for just measuring one function I would recommend to use the System timer

dt = STM0_TIM0.U;
myfoo();
dt = STM0_TIM0.U - dt;

Cheers, Martin

What is the compare in Lockstep from AURIX.

TC275 Application Note

TLF35584 - SPI Write to Protected Registers

$
0
0
Hi Felix, get a copy of the application note AP32342 Testing and servicing the TLF35584.

How does Flash Error Correcting Code (ECC) work ?

$
0
0
Hi jani,

the PFLASH is organized in 256bits data + 22bit ECC to correct every single or double bit failure (SECDEC). It also detects 100% of 3-bit failures. Every time you read something from the flash the 256bits+22bit ECC are read validated seamlessly in the background. I would recommend to register at myinfineon.com and get yourself a copy of the application note AP32274 Functional Safety Library which contains also a chapter about the Flash and explain how to inject errors to test the that the correction works fine. BR, Martin

Programming SAK-TC1782 use command line

Getting started difficulties with Application Kit TC297 TFT

In debugger, how to find out what reset occurred ?

$
0
0
Hi jani

the last reset request is stored in RSTSTAT.

BR, Martin

Memory Trap in TC277

$
0
0
Hi Snehal, you mean PSTR.FBE is set? Is also a PSE trap generated? BR Martin
Viewing all 9892 articles
Browse latest View live


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