Strange result from CalcTemperature

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hi

I was wondering if anyone can throw some light on what i'm doing wrong...

I have an XMC2Go evaluation board. I have got pretty much all the bits of code that i need working quite nicely but i noticed that the device is running a bit fast so i have tried implementing the temperature based clock adjustment. I have enabled the Temperature Sensor (TSE) and got a reading from the ANATSEMON register that is 15683 decimal. I then called the _CalcTemperature ROM function which returns 64 decimal, which is supposed to be in degrees Kelvin (as a check I did trace this ROM function for a little bit and saw that it does indeed read the ANATSEMON register so i am pretty happy i am calling the right function). The value of 64 is fairly obviously wrong as it really isn't that cold in my office! It is also not useful for generating a oscillator correction... I am using the Keil uVision compiler and i have tried the code on two XMC2Go boards with pretty much identical results. The boards seem to have sensible calibration data and also appear to be production devices based on some other posts I have read (AE parts?).

Any help would be gratefully accepted!
0 Likes
5 Replies
Not applicable
Hi forbin,

The ROM function for temperature sensor is not functioning properly.
You need to use the DAVE library provided to get the temperature sensor to work correctly.
You can get the related material (example project and device guide) here:
http://www.infineonforums.com/threads/1420-XMC1000-Temperature-Sensor-function-now-supported-on-ES-d...
0 Likes
Not applicable
Thanks -- couldn't find any XMC1100 examples -- will a XMC1300 one do?
0 Likes
lock attach
Attachments are accessible only for community members.
Not applicable
Hi forbin,

For XMC1100, you need to have the header file XMC1100.h version 1.1 to work properly.
Please find the attached zipped file if your XMC1100 header file is not version 1.1.
With the new header file, you should be able to use the same library and example code from the XMC1300 project.
0 Likes
Not applicable
Hi all,
We are having the same issue - ROM function for temperature sensor seems to be useless, returning 0x40.
My understanding is that the function packed in the DAVE library will correct this issue.
I need to achieve the temperature compensation of the DCO1 oscillator in our application.

Our toolchain is not based on DAVE, but based on Keil compiler.
I already tried to link-in the DAVE TSE library in our project but no success - the DAVE library is incompatible (other compiler).

I understand that Infineon will not provide the source code for XMC1000_CalcTemperature, but I'm expecting to get a compatible library, as stated in the TSE Device Guide document:

For Keil compiler, the TSE library is provided in MDK5 Software Packs.


Where can I get the TSE library for Keil compiler ?

Thanks for your support.
Cedric
0 Likes
Not applicable
I found out the answer myself, after some more searching around in directories and in the Keil IDE.

For the record, the TSE library for Keil compiler is located here on the filesystem (this is XMC1000_DFP Pack version 2.0.0):
[Keil installation dir]\ARM\Pack\Infineon\XMC1000_DFP\2.0.0\Boards\Infineon\XMC1300 Boot Kit\XMC1300_TSE\

For some reason the latest DFP Pack from Infineon (v2.2.0) doesn't seem to include this anymore...
Cedric
0 Likes