<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    *sigh*<br>
    <br>
    It seems a combination of changing the placement of the chips in the
    socket and some of the pins not being grounded (despite being
    tristated in the chip) may be responsible for some (or a lot) of the
    variation. I'll repeat the tests whe I get chance.<br>
    <br>
    (Also the same power supply was used - the voltages seem to be
    stable around 5.18-5.22)<br>
    <br>
    James<br>
    <br>
    <div class="moz-cite-prefix">On 28/07/14 12:13, Simon Hollis wrote:<br>
    </div>
    <blockquote
cite="mid:CAGn6LBPK5kZy7F0ykrQ1f7rUE-dpHjwyqMgqh0PJ96NgpLdtqw@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi James,
        <div><br>
        </div>
        <div>These are some really interesting results. The magnitude of
          the variation is unexpected to me, and the inverse correlation
          with temperature even more so.</div>
        <div><br>
        </div>
        <div>
          A couple of thoughts:</div>
        <div><br>
        </div>
        <div>1) Was the same (USB) power source used on both days. A
          higher supply voltage would give a higher power reading even
          if everything else remained the same. We have the voltage
          data, so can you check the voltage measurements on both
          occasions.</div>
        <div><br>
        </div>
        <div>2) Perhaps the oscillator crystal has a positive
          temperature coefficient on frequency? So a hotter day would
          lead to higher frequency operation and less leakage?</div>
        <div><br>
        </div>
        <div>Simon</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On 27 July 2014 18:24, James Pallister
          <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:James.Pallister@bristol.ac.uk"
              target="_blank">James.Pallister@bristol.ac.uk</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"> Thanks.<br>
              <br>
              I've focussed on RAM/flash/ALU at the moment, since this
              is likely what we will have to cope with when using the
              compiler, in MAGEEC. Hopefully the variability that may
              occur the other areas you list won't be affected by
              compiler optimizations too much. However, for the purposes
              of completeness I may extend the tests to do EEPROM and
              some other peripheral access also.<br>
              <br>
              Cheers,<br>
              James
              <div>
                <div class="h5"><br>
                  <br>
                  <div>On 27/07/14 17:56, Alex J Lennon wrote:<br>
                  </div>
                  <blockquote type="cite"> <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>On 27/07/2014 17:47, James Pallister wrote:<br>
                    </div>
                    <blockquote type="cite">
                      <div>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 type="cite"> <br>
                        <div>On 27/07/2014 17:27, James Pallister wrote:<br>
                        </div>
                        <blockquote type="cite">
                          <div>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 type="cite">
                          <div> On 27/07/14 17:25, Steve Kerrison wrote:<br>
                          </div>
                          <blockquote 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"
                                target="_blank">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 border="1" cellpadding="2"
                                    cellspacing="2" width="733"
                                    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:part3.09020302.08040303@bristol.ac.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:part4.01070807.02090509@bristol.ac.uk"
                                    alt=""><br>
                                  Mean power for each chip:<br>
                                  <img
                                    src="cid:part5.04030605.07020601@bristol.ac.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:part6.00020006.03040108@bristol.ac.uk"
                                    alt=""><br>
                                  Legend for the above graph:<br>
                                  <table border="1" cellpadding="2"
                                    cellspacing="2" width="318"
                                    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></fieldset>
                          <br>
                          <pre>_______________________________________________
mageec mailing list
<a moz-do-not-send="true" href="mailto:mageec@mageec.org" target="_blank">mageec@mageec.org</a>
<a moz-do-not-send="true" href="http://mageec.org/cgi-bin/mailman/listinfo/mageec" target="_blank">http://mageec.org/cgi-bin/mailman/listinfo/mageec</a>
</pre>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                    <div>
                      <div> </div>
                    </div>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            mageec mailing list<br>
            <a moz-do-not-send="true" href="mailto:mageec@mageec.org">mageec@mageec.org</a><br>
            <a moz-do-not-send="true"
              href="http://mageec.org/cgi-bin/mailman/listinfo/mageec"
              target="_blank">http://mageec.org/cgi-bin/mailman/listinfo/mageec</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
mageec mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mageec@mageec.org">mageec@mageec.org</a>
<a 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>
    <br>
  </body>
</html>