<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>