<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
Ah OK. Thanks for the explanation. Very interesting work. <br>
<br>
It occurs to me that there may be some interesting results to be
obtained from testing running, say, repeated interrupts, running
timers, access to EEPROM, GPIO reads, ADC sampling and so forth?<br>
<br>
I guess it would depend what you're trying to look at specifically.<br>
<br>
Thanks again,<br>
<br>
Alex<br>
<br>
<div class="moz-cite-prefix">On 27/07/2014 17:47, James Pallister
wrote:<br>
</div>
<blockquote cite="mid:53D52D3E.7020402@bristol.ac.uk" type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<div class="moz-cite-prefix">Ah yes, the flash tests were purely
for read access from different areas of flash, based on the idea
that there may be silicon variation between parts of the address
space.<br>
<br>
It was actually program execution from different areas of flash,
by putting a tight loop in a specific area and measuring the
power. For example (flash1):<br>
<br>
<tt> .balign 2048</tt><tt><br>
</tt><tt> .rept 6 ; Change between 0, 6, 126, and 2046
for flash0, flash1, flash2, and flash3</tt><tt><br>
</tt><tt> nop</tt><tt><br>
</tt><tt> .endr</tt><tt><br>
</tt><tt>loop:</tt><tt><br>
</tt><tt> nop</tt><tt><br>
</tt><tt> inc r16</tt><tt><br>
</tt><tt> cpse r0, r16</tt><tt><br>
</tt><tt> jmp loop</tt><tt><br>
</tt><br>
<br>
The procedure for each test:<br>
1. Invoke the bootloader, and upload program code<br>
2. The program code runs, and toggles a pin to trigger the
energy measurement<br>
3. When the test is finished, the ATMEGA328 toggles the pin
again to stop the measurement<br>
4. Measurement results are downloaded from the energy
measurement board.<br>
<br>
I haven't done any flash writing/erasing tests, but I agree it
would be interesting to do some. I'd expect the power during a
write/erase to be much higher.<br>
<br>
Hope this helps,<br>
James<br>
<br>
On 27/07/14 17:32, Alex J Lennon wrote:<br>
</div>
<blockquote cite="mid:53D52982.1010603@dynamicdevices.co.uk"
type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<br>
<div class="moz-cite-prefix">On 27/07/2014 17:27, James
Pallister wrote:<br>
</div>
<blockquote cite="mid:53D5288E.4090006@bristol.ac.uk"
type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<div class="moz-cite-prefix">No JTAG - the chips are flashed
with a bootloader, which is only active on chip reset.
Everything is programmed via a USB-to-serial thingy.<br>
<br>
</div>
</blockquote>
<br>
Sorry, I don't think I'm understanding fully James. So the flash
area tests are via JTAG? I guess that would mean that the test
is a read only test?<br>
<br>
(I'm just asking because I'm quite interested in power
utilisation during write/erase cycles vs read. If you're not
doing that could I suggest it might be an interesting test?)<br>
<br>
BR. Alex<br>
<br>
<blockquote cite="mid:53D5288E.4090006@bristol.ac.uk"
type="cite">
<div class="moz-cite-prefix"> On 27/07/14 17:25, Steve
Kerrison wrote:<br>
</div>
<blockquote
cite="mid:CANxPWH78iD_Odt_9f+REHOLnPDOA26oGVBzmsY8sNGZ9b9x1cA@mail.gmail.com"
type="cite">
<p dir="ltr">Is JTAG connected during test runs? Interested
to know how much difference that makes, although it should
be constant thus irrelevant.</p>
<div class="gmail_quote">On 27 Jul 2014 17:13, "James
Pallister" <<a moz-do-not-send="true"
href="mailto:James.Pallister@bristol.ac.uk">James.Pallister@bristol.ac.uk</a>>
wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> Hi All,<br>
<br>
Some preliminary findings on variations in the
ATMEGA328 chips.<br>
<br>
I've tested 28 chips. For each chip 9 tests were ran:<br>
<br>
<table cellpadding="2" cellspacing="2" width="733"
border="1" height="58">
<tbody>
<tr>
<td valign="top">flash0<br>
</td>
<td valign="top">Test the area of flash
0x0800-0x0810<br>
</td>
</tr>
<tr>
<td valign="top">flash1<br>
</td>
<td valign="top">Test the area of flash
0x080C-0x081C</td>
</tr>
<tr>
<td valign="top">flash2<br>
</td>
<td valign="top">Test the area of flash
0x08FC-0x090C</td>
</tr>
<tr>
<td valign="top">flash3<br>
</td>
<td valign="top">Test the area of flash
0x0FFC-0x100C</td>
</tr>
<tr>
<td valign="top">ram0<br>
</td>
<td valign="top">Repeatedly access 0x0000 -
0x0020<br>
</td>
</tr>
<tr>
<td valign="top">ram1<br>
</td>
<td valign="top">Repeatedly access 0xF007 -
0xF017<br>
</td>
</tr>
<tr>
<td valign="top">alu<br>
</td>
<td valign="top">Perform combinations of mul,
fmul, inc and dec<br>
</td>
</tr>
<tr>
<td valign="top">nop<br>
</td>
<td valign="top">Lots of nops<br>
</td>
</tr>
<tr>
<td valign="top">branch<br>
</td>
<td valign="top">Repeatedly branch randomly in
low flash<br>
</td>
</tr>
</tbody>
</table>
<br>
Each test was run 8 times, and outliers excluded. All
were run in the same harness, with the same crystal,
resistors, etc.<br>
<br>
Results across each test. These show the distributions
of the measurements taken, where the distribution
consists of the 28 chips.<br>
<img
src="cid:part2.01060202.03010100@dynamicdevices.co.uk"
alt=""><br>
<br>
From the first graph: there is a significant
different, even on a day to day basis. I'm not sure
what causes this - I'd expect the power to be lower at
lower temperatures, which we don't see.<br>
<br>
For each chip:<br>
<img
src="cid:part3.03060508.01040506@dynamicdevices.co.uk"
alt=""><br>
Mean power for each chip:<br>
<img
src="cid:part4.02050204.00040101@dynamicdevices.co.uk"
alt=""><br>
<br>
<br>
The average power changes quite a lot, going from <
80mW to > 100mW. In almost all cases, the average
power was higher on Saturday - not sure why this is,
the temperature difference was only 3-4 degrees (and
I'd expect the temperature to go down with lower
temperature).<br>
<br>
The chips tend to vary as a whole, e.g. rather than
the ALU varying significantly in one part rather than
another. The following graph marks the average power
for each test, divided by test type (different
color/marker combinations) per chip. This should allow
hopefully allow us to do a calibration run first.<br>
<img
src="cid:part5.01040609.06050803@dynamicdevices.co.uk"
alt=""><br>
Legend for the above graph:<br>
<table cellpadding="2" cellspacing="2" width="318"
border="1" height="58">
<tbody>
<tr>
<td valign="top">Blue cross<br>
</td>
<td valign="top">ram1<br>
</td>
</tr>
<tr>
<td valign="top">Red star<br>
</td>
<td valign="top">ram0<br>
</td>
</tr>
<tr>
<td valign="top">Green plus<br>
</td>
<td valign="top">alu<br>
</td>
</tr>
<tr>
<td valign="top">Black plus<br>
</td>
<td valign="top">flash3<br>
</td>
</tr>
<tr>
<td valign="top">Green cross<br>
</td>
<td valign="top">flash2<br>
</td>
</tr>
<tr>
<td valign="top">Blue star<br>
</td>
<td valign="top">flash1<br>
</td>
</tr>
<tr>
<td valign="top">Red plus<br>
</td>
<td valign="top">flash0<br>
</td>
</tr>
<tr>
<td valign="top">Black star<br>
</td>
<td valign="top">nop<br>
</td>
</tr>
</tbody>
</table>
<br>
<br>
Any thoughts / ideas for more tests are welcome.<br>
<br>
<br>
James<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
mageec mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:mageec@mageec.org">mageec@mageec.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://mageec.org/cgi-bin/mailman/listinfo/mageec">http://mageec.org/cgi-bin/mailman/listinfo/mageec</a>
</pre>
</blockquote>
</blockquote>
</blockquote>
<div class="moz-signature">
<div class="preview"> </div>
</div>
</body>
</html>