Hi all.<br><div><span class="gmail_quote"></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Some newbie questions<br><br><br>1) what is OWFS?
<br>================<br>The One-Wire-Filesystem allows to access data on 1-wire devices<br>as if they were a file within a directory.<br><br><a href="http://sf.net/projects/owfs">http://sf.net/projects/owfs</a><br><br>The ds2756 is already listed here, so parts are already in place:
<br><a href="http://www.owfs.org/index.php?page=standard-devices">http://www.owfs.org/index.php?page=standard-devices</a><br><br>Temperature, Current, accumulated Current, EEPROM data, etc.<br>could be accessed by reading/writing text files
<br><a href="http://owfs.sourceforge.net/shell_hints.html">http://owfs.sourceforge.net/shell_hints.html</a></blockquote><div><br>&nbsp;how to do this with the actual XO system?<br><br>..could be a nice way to see whats inside the actual ds2756 EEPROM..i dont know if that breaks any rule, but the data in there is the actual base of the so called charging algorithm.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">2) how would it be used within XO<br>=================================<br>A task in linux user space would periodically (and/or on
<br>notification) read the data from the appropriate files<br>and based on that give directions to the EC.<br>These directions would tell the EC what to do now and<br>what to do next.<br><br>The charging algorithms will basically react on entities like:
<br>(t, I, V, R, T, I*t, dV/dt, dT/dt).<br>So if one of these entities leaves a specified intervall the<br>EC would &quot;know&quot; what to do next (without having to know a<br>bigger view) and then notify the host that it needs
<br>updated directions.<br><br>By checking f.e. entity t (time) the EC would react<br>as a dumb timebased charger, monitoring dV/dt would allow<br>for a charge end due to voltage drop (not that this is intended),<br>T or dT/dt would allow for charge end due to temperature
<br>or temperature rise (not that this is intended),<br>V would allow for charge end due to end voltage reached...<br><br>Note the above mentioned modes are not meant to be the<br>charging modes, just the direction given to the EC
<br>so it can react autonomously for the next few seconds<br>or tens of seconds.<br><br>There should be no hard real time requirements on the<br>linux user space code.</blockquote><div><br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Nice
approach, the only problem is that we will lose the actual power
management advantages of the EC. because for doing so we have to tell
the CPU to be wake up..my understanding of the ec is that it can work
even with a the CPU is idle (richard or joel can correct me if im
wrong)&nbsp;&nbsp; so we will become more CPU dependent and thus more power consuming. <br><br>3) why having charging algorithms within the EC itself might<br>&nbsp;&nbsp; not be the best approach<br>============================================================
<br>The resources within the EC are pretty low (RAM is 128 byte<br>idata memory, 2kByte xdata memory).<br>While one can it is not really a good idea to have floating<br>point operations on the EC. (Linux kernel does not either)
<br>The 2kByte do not allow an elaborated charging algorithm<br>to use a longer history.<br><br>If charging algorithms change/improve or as new batteries<br>or new battery types are used this would mean updating the<br>EC code. (Of course updating can be done but the scheme
<br>proposed under 2) would not need this)<br><br>There might be patent implications with the proprietary<br>charging algorithm (Goldpeak seems to want to patent it<br>but who knows whether the algorithm itself is not covered
<br>by another patent). If the charging algorithm resides<br>in linux user space it can be exchanged quickly.<br>It would f.e. be no fun to change an algorithm on the EC<br>that has been converted from floating point to integer
<br>arithmetic for another algorithm. Linux user space code<br>on the other hand could be a &quot;quickly moving target&quot;.</blockquote><div><br>Yes this is true..but see the discussion above.<br></div><br><div><br>&nbsp;</div>
<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">5) what does it empower people to do<br>====================================<br>Well you could run the charging code on _any_ linux system which
<br>there is one-wire-filesystem support for.<br><br>The adapter can be as simple as an RS232 connector and a<br>few diodes/resistors or be an off-the-shelf USB to One-Wire adapter.<br><br>One example: If you to develop/evaluate a charging algorithm
<br>and want to do so in a larger scale, you could implement the<br>algorithm on a linux PC, connect a few resistors/transistors<br>controlling charge/discharge current to the parallel port<br>of the PC and give it a go.<br>
You can evaluate on _several_ cells (and eventually several<br>algorithms, or different load profiles) at a time.<br>(This could be a nice subject for several diploma theses).<br><br>Each cell would have its own ds2576 connected to it so you
<br>would need _much_ less XO battery packs:)<br><br><br>Another example: Also (probably not a good idea) of course<br>the XO or the school-server itself could be controlling<br>the gang charger as well...<br><br></blockquote>
</div><br>Really cool!!<br><br>-- <br>Rafael Enrique Ortiz Guerrero <br>OLPC Colombia<br><a href="http://wiki.laptop.org/go/OLPC_Colombia">http://wiki.laptop.org/go/OLPC_Colombia</a><br><a href="mailto:rafael@laptop.org">
rafael@laptop.org</a>