flat assembler
Message board for the users of flat assembler.

Index > Non-x86 architectures > Fun tricks with ARM

Goto page Previous  1, 2, 3, 4  Next
Author
Thread Post new topic Reply to topic
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 19 Apr 2008, 18:18
Well it's got me stumped, since it's a BIG MCU I would guess it might have to be in some sort of sleep mode to detect such a small change, but it's only a guess and probably wrong. Sad
Post 19 Apr 2008, 18:18
View user's profile Send private message Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6115
Location: Poland
MHajduk 19 Apr 2008, 18:40
Quite possible that I'm wrong but here I present my proposition.

Is it possible that heat randomly changes value of some RAM memory cells (heat has to change conductivity of semiconductors from which transistors are made)? If yes then is possible to detect temperature using software:
Code:
1. Fill entire chip RAM with 0 value. 
2. Check if ANY chip RAM cell is nonzero.
  2a. If yes then control program should execute some operations.
3. Goto 1.    
BTW, control program should be placed outside chip RAM (maybe in ROM), of course.
Post 19 Apr 2008, 18:40
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 23:49
edfed wrote:
check the phase shift induced by the change of temperature?
frequency don't change, just the phase of one the clocks ?
Okay, it might work, I haven't tried it. What sort of shift range should I expect to see? I imagine the timing would have to be very high resolution?
Post 19 Apr 2008, 23:49
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 23:51
Alphonso wrote:
Well it's got me stumped, since it's a BIG MCU I would guess it might have to be in some sort of sleep mode to detect such a small change, but it's only a guess and probably wrong. Sad
Sleep mode is very important for this to work. Perhaps you can expand on that idea a little ...
Post 19 Apr 2008, 23:51
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 23:59
MHajduk wrote:
Quite possible that I'm wrong but here I present my proposition.

Is it possible that heat randomly changes value of some RAM memory cells (heat has to change conductivity of semiconductors from which transistors are made)? If yes then is possible to detect temperature using software:
Code:
1. Fill entire chip RAM with 0 value. 
2. Check if ANY chip RAM cell is nonzero.
      2a. If yes then control program should execute some operations.
3. Goto 1.    
BTW, control program should be placed outside chip RAM (maybe in ROM), of course.
I hope the RAM is not changing randomly, I rely on it to keep my data and code safe! However the SDRAM refresh counter can be disabled, and one could monitor for the cell discharge, but the problem is that my code is also running from the SDRAM so it would also be randomly changed. I might look into locking the code into the cache and see if I can disable the refreshing. But the code I have here will also work for a running system.
Post 19 Apr 2008, 23:59
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4347
Location: Now
edfed 20 Apr 2008, 00:35
sleep mode == very low current consuming.

then, very high impedance of all the circuitry
then, i don't know, i need to see it working to find the solution.
the current induced by the touch will change something...

and s***, i've found!

Idea it's because somebody touch the board, there is the solution.

Laughing
Post 20 Apr 2008, 00:35
View user's profile Send private message Visit poster's website Reply with quote
asmhack



Joined: 01 Feb 2008
Posts: 431
asmhack 20 Apr 2008, 01:31
the possible answer that comes to my mind is that then you touch it, you increase the temperature so:
a) that works as a delay in the pings maybe Shocked
or
b) you send some data through the port and check it if it was changed when it returns Confused

Rolling Eyes
Post 20 Apr 2008, 01:31
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 02:52
asmhack wrote:
the possible answer that comes to my mind is that then you touch it, you increase the temperature so:
a) that works as a delay in the pings maybe
Okay, there is a delay change but not in any pings, it is only connected to a serial port, and it only sends, never receives on that port.
asmhack wrote:

or
b) you send some data through the port and check it if it was changed when it returns
The port is not part of the solution, it is only for indication to a remote terminal.
Post 20 Apr 2008, 02:52
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 06:42
revolution wrote:
MHajduk wrote:
Quite possible that I'm wrong but here I present my proposition.

Is it possible that heat randomly changes value of some RAM memory cells (heat has to change conductivity of semiconductors from which transistors are made)? If yes then is possible to detect temperature using software:
Code:
1. Fill entire chip RAM with 0 value. 
2. Check if ANY chip RAM cell is nonzero.
       2a. If yes then control program should execute some operations.
3. Goto 1.    
BTW, control program should be placed outside chip RAM (maybe in ROM), of course.
I hope the RAM is not changing randomly, I rely on it to keep my data and code safe! However the SDRAM refresh counter can be disabled, and one could monitor for the cell discharge, but the problem is that my code is also running from the SDRAM so it would also be randomly changed. I might look into locking the code into the cache and see if I can disable the refreshing. But the code I have here will also work for a running system.
I tried this to see what will happen. There are two problems. 1) the discharge time on the SDRAM is very long, the spec says 64ms is needed to keep the data, so I tried after 128ms, no change, 1280ms, still no change, it needed >3000ms until I started seeing significant changes. 2) every time one tries to read the RAM cell it is also refreshed, so you can't keep scanning it and wait for a change, you have to wait and then read to see what happened.

Although I did see that the temperature does affect the SDRAM discharge rate, it is very inconvenient to use as a temperature sensor.
Post 20 Apr 2008, 06:42
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4347
Location: Now
edfed 20 Apr 2008, 07:11
is the solution found?
or shall we seek many more?

amazing, but i prefer a bit the SRAM...

Toshiba as made a very interessting chip.

32Mb in 1 Static RAM chip @ 100 MHz 4 or 5 years ago. don't remember the reference.
Post 20 Apr 2008, 07:11
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 07:14
No, the solution is not SDRAM, it is something else much more reliable.
Post 20 Apr 2008, 07:14
View user's profile Send private message Visit poster's website Reply with quote
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 20 Apr 2008, 12:43
Well this is my last guess, better make that 'wild guess' as I know nothing of ARM processors. As it is, I'm only just starting to learn about x86 processors. Laughing

Okay, are you changing/toggling states such that your measuring the stabilization time of the 13MHz processor oscillator which possibly differs with temperature. Clutching at straws here.
Post 20 Apr 2008, 12:43
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 12:52
Alphonso wrote:
Well this is my last guess, better make that 'wild guess' as I know nothing of ARM processors. As it is, I'm only just starting to learn about x86 processors. Laughing
I don't have a problem with wild guesses, we can sometimes learn from them.
Alphonso wrote:
Okay, are you changing/toggling states ...
yes
Alphonso wrote:
... such that your measuring the stabilization time of the 13MHz processor oscillator which possibly differs with temperature. Clutching at straws here.
Unfortunately, no. The crystals are not involved as the sensing device. But they are used for timing. I am relying on the crystals not changing their frequency, and indeed crystals of today are designed to have the minimum of frequency change throughout the useful temperature range.
Post 20 Apr 2008, 12:52
View user's profile Send private message Visit poster's website Reply with quote
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 20 Apr 2008, 13:27
revolution wrote:
I am relying on the crystals not changing their frequency
It was more to do with the 64000 cycles of latency the 13MHz oscillator takes to stabilize, or maybe that is preset? Just some info I found on your web page Laughing

Okay, I'll leave it to the others to find out. Look forward to seeing how you did it.
Post 20 Apr 2008, 13:27
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4347
Location: Now
edfed 20 Apr 2008, 13:32
shift 90° ?
the watchdog and the timer phase shift?
if normal, the signals are aligned, and if the board is touched, it will shift one of the signals.
a sort of PLL taht will permit to assert the timer or not.

it is very hard to find the solution as i don't have the board in my hands.. i like to see the hardware working. even if i don't have instruments to make any mesures.

a picture will be welcome.
touched, and not touched ( no no i'm not miss Irma). but i need to see with my eyes.
Post 20 Apr 2008, 13:32
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 13:37
Alphonso wrote:
It was more to do with the 64000 cycles of latency the 13MHz oscillator takes to stabilize, or maybe that is preset? Just some info I found on your web page
The 64K cycles is preset, but the 32768 crystal does continue to run, it may be possible to read the RTCPICR millisecond counter and see how long the 13M xtal takes to lock. I haven't tried it. I don't know how the xtal reacts during temperature change during startup, it might be interesting to test.
Post 20 Apr 2008, 13:37
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 13:51
It looks similar to this. Although this is not the actual board but it is close enough as to not matter.
Post 20 Apr 2008, 13:51
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4347
Location: Now
edfed 20 Apr 2008, 15:09
revolution :
how many time did you need to understand this the first time?

i guess if i'll understand one day !

scenario n° 435
the little LTxx is an analog circuit that will have a variation inducing a frequency or timing change somewhere. the µC will detect this change by comparing with the default value.
Crying or Very sad
Post 20 Apr 2008, 15:09
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20358
Location: In your JS exploiting you and your system
revolution 20 Apr 2008, 15:27
It is purely a MCU process, you don't need to understand the other devices on the board. The LT thing is for the core voltage PSU.
Post 20 Apr 2008, 15:27
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4347
Location: Now
edfed 21 Apr 2008, 17:48
the MCU is in sleep mode, and when touching the board, it will put the board to a particular voltage, and then, wakeup the MCU?

i really don't see how it is possible indeed.Sad

please revolution, give us the solution, we cannot wait no more...

you win, you're the best. Very Happy
niarf!


Last edited by edfed on 21 Apr 2008, 19:32; edited 1 time in total
Post 21 Apr 2008, 17:48
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.