https://hobbyelektronik.org/w/index.php?title=USBLotIO&feed=atom&action=history
USBLotIO - Versionsgeschichte
2024-03-28T15:45:57Z
Versionsgeschichte dieser Seite in Hobbyelektronik.org
MediaWiki 1.34.1
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=531&oldid=prev
Chris: Fuses in der Infobox korrigiert
2010-09-29T17:05:12Z
<p>Fuses in der Infobox korrigiert</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 29. September 2010, 17:05 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l2" >Zeile 2:</td>
<td colspan="2" class="diff-lineno">Zeile 2:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | Typ = ATtiny45</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | Typ = ATtiny45</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | Takt = 16,5</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | Takt = 16,5</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> | FuseH = <del class="diffchange diffchange-inline">0xDD</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> | FuseH = <ins class="diffchange diffchange-inline">75</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | FuseL = E1</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | FuseL = E1</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | FuseE = FF</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | FuseE = FF</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l85" >Zeile 85:</td>
<td colspan="2" class="diff-lineno">Zeile 85:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_fuses.png|thumb|Im AVR programmierte Fuses]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_fuses.png|thumb|Im AVR programmierte Fuses]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Damit man die Hardware vollständig genutzt werden kann, müssen die Fuses wie folgt programmiert werden (siehe auch Screenshot):</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Damit man die Hardware vollständig genutzt werden kann, müssen die Fuses wie folgt programmiert werden (siehe auch Screenshot <ins class="diffchange diffchange-inline">oder in der Infobox oben</ins>):</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* Extended: 0xFF</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* Extended: 0xFF</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* High: 0x75</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* High: 0x75</div></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=471&oldid=prev
Chris: Fuses angepasst
2010-07-08T19:03:22Z
<p>Fuses angepasst</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 8. Juli 2010, 19:03 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l3" >Zeile 3:</td>
<td colspan="2" class="diff-lineno">Zeile 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | Takt = 16,5</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | Takt = 16,5</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | FuseH = 0xDD</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | FuseH = 0xDD</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> | FuseL = <del class="diffchange diffchange-inline">0xE1</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> | FuseL = <ins class="diffchange diffchange-inline">E1</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> | FuseE = <del class="diffchange diffchange-inline">0xFF</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> | FuseE = <ins class="diffchange diffchange-inline">FF</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=448&oldid=prev
Chris: Infobox AVR hinzugefügt
2010-06-13T11:54:37Z
<p>Infobox AVR hinzugefügt</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 13. Juni 2010, 11:54 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{Infobox AVR</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> | Typ = ATtiny45</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> | Takt = 16,5</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> | FuseH = 0xDD</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> | FuseL = 0xE1</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> | FuseE = 0xFF</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">}}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die parallele Schnittstelle am PC ist tot. Nachdem sie schon vor einigen Jahren bei Notebooks verschwunden ist, findet man sie heute auch kaum noch bei Desktop-PCs. Selbst bei teureren Mainboards sind oft nur noch Pinheader vorhanden. Ein Slotblech dafür wird generell nicht geliefert.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die parallele Schnittstelle am PC ist tot. Nachdem sie schon vor einigen Jahren bei Notebooks verschwunden ist, findet man sie heute auch kaum noch bei Desktop-PCs. Selbst bei teureren Mainboards sind oft nur noch Pinheader vorhanden. Ein Slotblech dafür wird generell nicht geliefert.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die ganzen Drucker sind jetzt schneller und mit dünneren Leitungen per USB angebunden. Soweit, so gut. Nur wird die Luft für Bastler langsam dünner, wenn man keine größeren Ambitionen zu RS232 hat (deren Anschlüsse am PC auch langsam aussterben).</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die ganzen Drucker sind jetzt schneller und mit dünneren Leitungen per USB angebunden. Soweit, so gut. Nur wird die Luft für Bastler langsam dünner, wenn man keine größeren Ambitionen zu RS232 hat (deren Anschlüsse am PC auch langsam aussterben).</div></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=387&oldid=prev
Chris: Stromlaufplan hinzugefügt, Board-Bildchen in Gallery gepackt
2010-02-28T19:25:40Z
<p>Stromlaufplan hinzugefügt, Board-Bildchen in Gallery gepackt</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 28. Februar 2010, 19:25 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l12" >Zeile 12:</td>
<td colspan="2" class="diff-lineno">Zeile 12:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Hardware ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Hardware ==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:<del class="diffchange diffchange-inline">Usblotio_povray</del>.<del class="diffchange diffchange-inline">jpg</del>|thumb|<del class="diffchange diffchange-inline">Mit [http://www.povray.org/ POV-Ray] gerendertes Layout </del>der Platinen<del class="diffchange diffchange-inline">]]</del></div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:<ins class="diffchange diffchange-inline">Usblotio_sch</ins>.<ins class="diffchange diffchange-inline">png</ins>|thumb|<ins class="diffchange diffchange-inline">Stromlaufplan </ins>der Platinen]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">[[Bild:Usblotio_main.jpg|thumb|Aufgebaute Hauptplatine des USBLotIO]]</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">[[Bild:Usblotio out.jpg|thumb|Aufgebautes Ausgabemodul</del>]]</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l36" >Zeile 36:</td>
<td colspan="2" class="diff-lineno">Zeile 34:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mit einem kleinen Trick kann man das aber bewältigen: Die Datenleitungen beider Richtungen auf einen I/O. Zum Schutz des Ausganges des Registers gibt es aber einen Reihenwiderstand.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mit einem kleinen Trick kann man das aber bewältigen: Die Datenleitungen beider Richtungen auf einen I/O. Zum Schutz des Ausganges des Registers gibt es aber einen Reihenwiderstand.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Zwischen dem Lesen und Schreiben muss die Datenleitung einfach nur noch als Eingang bzw. Ausgang geschaltet werden.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Zwischen dem Lesen und Schreiben muss die Datenleitung einfach nur noch als Eingang bzw. Ausgang geschaltet werden.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"><gallery></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"> Bild:Usblotio_povray.jpg|Mit [http://www.povray.org/ POV-Ray] gerendertes Layout der Platinen</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"> Bild:Usblotio_main.jpg|Aufgebaute Hauptplatine des USBLotIO</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"> Bild:Usblotio out.jpg|Aufgebautes Ausgabemodul</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"></gallery></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Aber Vorsicht: dadurch, dass der Reset-Pin auch verwendet wird, kann der Mikrocontroller nur mit HVSP programmiert werden! (oder man lässt eine "Richtung" weg - noch ungetestet).</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Aber Vorsicht: dadurch, dass der Reset-Pin auch verwendet wird, kann der Mikrocontroller nur mit HVSP programmiert werden! (oder man lässt eine "Richtung" weg - noch ungetestet).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=356&oldid=prev
Chris: Bild des Ausgabemoduls hinzugefügt
2009-12-27T22:47:15Z
<p>Bild des Ausgabemoduls hinzugefügt</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 27. Dezember 2009, 22:47 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l14" >Zeile 14:</td>
<td colspan="2" class="diff-lineno">Zeile 14:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_povray.jpg|thumb|Mit [http://www.povray.org/ POV-Ray] gerendertes Layout der Platinen]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_povray.jpg|thumb|Mit [http://www.povray.org/ POV-Ray] gerendertes Layout der Platinen]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_main.jpg|thumb|Aufgebaute Hauptplatine des USBLotIO]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_main.jpg|thumb|Aufgebaute Hauptplatine des USBLotIO]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Bild:Usblotio out.jpg|thumb|Aufgebautes Ausgabemodul]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=354&oldid=prev
Chris: Infos zu Fuses hinzugefügt
2009-12-27T22:33:38Z
<p>Infos zu Fuses hinzugefügt</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 27. Dezember 2009, 22:33 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l73" >Zeile 73:</td>
<td colspan="2" class="diff-lineno">Zeile 73:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>(<del class="diffchange diffchange-inline">TODO</del>: <del class="diffchange diffchange-inline">Fuses im AVR</del>)</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">[[Bild:Usblotio_fuses.png|thumb|Im AVR programmierte Fuses]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Damit man die Hardware vollständig genutzt werden kann, müssen die Fuses wie folgt programmiert werden </ins>(<ins class="diffchange diffchange-inline">siehe auch Screenshot)</ins>:</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">* Extended: 0xFF</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">* High: 0x75</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">* Low: 0xE1</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">SPIEN kann nur deaktiviert werden, wenn man per HVSP programmiert, RSTDISBL ''sollte'' eigentlich reichen, habe ich allerdings nicht ausprobiert ;-</ins>)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== PC ===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== PC ===</div></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=350&oldid=prev
Chris: Kategorien mal wieder vergessen, Fuses müssen noch in den Text
2009-12-26T23:41:07Z
<p>Kategorien mal wieder vergessen, Fuses müssen noch in den Text</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 26. Dezember 2009, 23:41 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l72" >Zeile 72:</td>
<td colspan="2" class="diff-lineno">Zeile 72:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">(TODO: Fuses im AVR)</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== PC ===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== PC ===</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l98" >Zeile 98:</td>
<td colspan="2" class="diff-lineno">Zeile 100:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Download ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Download ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:Usblotio.zip]] Firmware, EAGLE-Dateien und C#-Testprogramm (VS2008, .NET 2.0)</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:Usblotio.zip]] Firmware, EAGLE-Dateien und C#-Testprogramm (VS2008, .NET 2.0)</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category:AVR]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category:USB]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category:PC]]</ins></div></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=349&oldid=prev
Chris: Ergänzungen, Bilder hinzugefügt
2009-12-26T23:35:04Z
<p>Ergänzungen, Bilder hinzugefügt</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 26. Dezember 2009, 23:35 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l13" >Zeile 13:</td>
<td colspan="2" class="diff-lineno">Zeile 13:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Hardware ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Hardware ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_povray.jpg|thumb|Mit [http://www.povray.org/ POV-Ray] gerendertes Layout der Platinen]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Bild:Usblotio_povray.jpg|thumb|Mit [http://www.povray.org/ POV-Ray] gerendertes Layout der Platinen]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Bild:Usblotio_main.jpg|thumb|Aufgebaute Hauptplatine des USBLotIO]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l33" >Zeile 33:</td>
<td colspan="2" class="diff-lineno">Zeile 34:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mit einem kleinen Trick kann man das aber bewältigen: Die Datenleitungen beider Richtungen auf einen I/O. Zum Schutz des Ausganges des Registers gibt es aber einen Reihenwiderstand.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mit einem kleinen Trick kann man das aber bewältigen: Die Datenleitungen beider Richtungen auf einen I/O. Zum Schutz des Ausganges des Registers gibt es aber einen Reihenwiderstand.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Zwischen dem Lesen und Schreiben muss die Datenleitung einfach nur noch als Eingang bzw. Ausgang <del class="diffchange diffchange-inline">geschalten </del>werden.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Zwischen dem Lesen und Schreiben muss die Datenleitung einfach nur noch als Eingang bzw. Ausgang <ins class="diffchange diffchange-inline">geschaltet </ins>werden.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Aber Vorsicht: dadurch, dass der Reset-Pin auch verwendet wird, kann der Mikrocontroller nur mit HVSP programmiert werden! (oder man lässt eine "Richtung" weg).</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Aber Vorsicht: dadurch, dass der Reset-Pin auch verwendet wird, kann der Mikrocontroller nur mit HVSP programmiert werden! (oder man lässt eine "Richtung" weg <ins class="diffchange diffchange-inline">- noch ungetestet</ins>)<ins class="diffchange diffchange-inline">.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"><b style="color: red;">Ein Wort der Warnung sei noch angebracht:</b> Bei vielen PCs ist die USB-Schnittstelle NICHT abgesichert, bei einem Kurzschluss geht dann die komplette Leistung des Netzteils durch! Das kann zu zerstörten Leiterbahnen (sowohl am USB-Gerät als auch auf dem Mainboard) oder sogar Bränden führen!</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">In der Firmware ist eine Stromaufnahme von 20mA angegeben, welche schon bei kleineren Aufbauten überschritten werden kann.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Die Inbetriebnahme findet unter eigener Verantwortung statt! Rechnungen für neue Mainboards o.a. an mich werden mit Freude durch den Aktenvernichter gejagt</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Software ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Software ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l49" >Zeile 49:</td>
<td colspan="2" class="diff-lineno">Zeile 55:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Anschließend wird von V-USB usbFunctionWrite bzw. usbFunctionRead je nach Reportgröße mehrmals aufgerufen. Im Read wird einfach nur der Inhalt des RAMs an den PC übertragen, beim Schreiben wird zuerst die Variable (die gleiche wie beim Lesen) gefüllt und nach dem letzten Wert vom PC die Methode processCommand aufgerufen.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Anschließend wird von V-USB usbFunctionWrite bzw. usbFunctionRead je nach Reportgröße mehrmals aufgerufen. Im Read wird einfach nur der Inhalt des RAMs an den PC übertragen, beim Schreiben wird zuerst die Variable (die gleiche wie beim Lesen) gefüllt und nach dem letzten Wert vom PC die Methode processCommand aufgerufen.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Dort findet das eigentliche Schreiben auf die Register statt. Zusätzlich zum simplen Schreiben kann man den Controller mit ein paar Logikfunktionen beauftragen. Diese werden immer mit der letzten Ausgabe <del class="diffchange diffchange-inline">verwurstet</del>.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Die übertragenen Werte werden in Anschlussreihenfolge aus Sicht der Hauptplatine angegeben. Gibt man z.B. 0x01 0x02 aus, wird am Ausgabemodul, das am nächsten zur Hauptplatine angeschlossen ist 0x01 ausgegeben, am "zweitnächsten" 0x02. Bei den Eingabemodulen verhält es sich genauso.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Dort findet das eigentliche Schreiben auf die Register statt. Zusätzlich zum simplen Schreiben kann man den Controller mit ein paar Logikfunktionen beauftragen. Diese werden immer mit der letzten Ausgabe <ins class="diffchange diffchange-inline">verarbeitet</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Folgende Operationen sind möglich:</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Folgende Operationen sind möglich:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l60" >Zeile 60:</td>
<td colspan="2" class="diff-lineno">Zeile 69:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mit einem weiteren Flag kann man die errechneten Werte ins EEProm des Controllers schreiben. Dadurch kann man direkt beim Einschalten der Hardware einen definierten Zustand ausgeben.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Mit einem weiteren Flag kann man die errechneten Werte ins EEProm des Controllers schreiben. Dadurch kann man direkt beim Einschalten der Hardware einen definierten Zustand ausgeben.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das einzige, das man in der Software noch anpassen muss, ist die Anzahl der jeweiligen Schieberegister. Oder einfach unverändert lassen - dann werden jeweils 8 Register angenommen.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das einzige, das man in der Software noch anpassen muss, ist die Anzahl der jeweiligen Schieberegister. Oder einfach unverändert lassen - dann werden jeweils 8 Register angenommen<ins class="diffchange diffchange-inline">. Diese Werte muss man nur anpassen, wenn man mehr als 8 Schieberegister verwendet oder mehr Performance (Auswirkung noch nicht geprüft) wünscht</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l66" >Zeile 66:</td>
<td colspan="2" class="diff-lineno">Zeile 75:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== PC ===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== PC ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Auf dem PC kann eigentlich alles werkeln, was auf die entsprechenden <del class="diffchange diffchange-inline">Betriebssystem</del>-APIs zugreifen kann. Ich beschränke mich auf Windows, die Portierung auf *nix/Mac/etc. sollte aber nicht allzu schwierig sein.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Auf dem PC kann eigentlich alles werkeln, was auf die entsprechenden <ins class="diffchange diffchange-inline">USB</ins>-APIs zugreifen kann. Ich beschränke mich auf Windows, die Portierung auf *nix/Mac/etc. sollte aber nicht allzu schwierig sein.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Im Grunde muss man nicht viel machen, das Schwierigste dürfte wahrscheinlich das Finden des Devices sein.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Im Grunde muss man nicht viel machen, das Schwierigste dürfte wahrscheinlich das Finden des Devices sein.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Ich habe im C#-Programm Teile aus der <del class="diffchange diffchange-inline">Wiimote-Lib </del>von Brian Peek genommen. Ist das HID gefunden und ein Handler gesetzt, können mit HidD_SetFeature und -GetFeature Reports an den AVR gesendet oder von ihm angefordert werden.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Ich habe im C#-Programm Teile aus der <ins class="diffchange diffchange-inline">[http://www.brianpeek.com/blog/pages/wiimotelib.aspx WiimoteLib] </ins>von Brian Peek genommen. Ist das HID gefunden und ein Handler gesetzt, können mit HidD_SetFeature und -GetFeature Reports an den AVR gesendet oder von ihm angefordert werden.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Wichtig ist hier eigentlich nur die Größe des übergebenen Arrays, bei falscher Länge kommt oft einfach nichts beim Device an! Man kann relativ viel Zeit damit verbringen, dort nach einem Fehler zu suchen, zumal sich ein vollbelegter Mikrocontroller (dessen UART man nicht verwenden kann) schlecht debuggen lässt.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Zur Demonstration habe ich eine kleine Konsolen-Anwendung rund um die USBLotIO-Klasse geschrieben. Kann sein, dass ich die Klasse noch ein wenig umstrukturiere - die nullable Byte-Arrays gefallen mir nicht sonderlich.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Im Ordner \csharp\USBlotIO\bin\Release\ befindet sich ein kleines Konsolenprogramm (USBlotIO.exe), mit dem man alle Features der Hardware testen/nutzen kann.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Einfach einmal ohne Parameter starten, dann werden alle möglichen Aufrufe angezeigt (wem es beim Start per Doppelklick zu schnell geht: cmd starten und damit die Anwendung aufrufen).</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">== Test ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Die Hardwareinstallation ist im Baukastenprinzip. Module anstecken und per USB-Kabel mit dem PC verbinden. Nach wenigen Sekunden ist das Gerät bereit für die Verwendung.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Leider konnte ich das Board für Eingabemodule nicht testen, da Reichelt keine 74xx165 in SMD hat. Auf dem Breadboard hat es funktioniert, dennoch gebe ich momentan keine 100%ige Garantie auf korrekte Funktion!</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">Wichtig ist hier eigentlich nur </del>die <del class="diffchange diffchange-inline">Größe des übergebenen Arrays</del>, <del class="diffchange diffchange-inline">bei falscher Länge kommt einfach nichts beim Device an! Man kann relativ viel Zeit damit verbringen, dort nach einem Fehler zu suchen, zumal sich ein vollbelegter Mikrocontroller </del>(<del class="diffchange diffchange-inline">der nicht einmal UART hat</del>) <del class="diffchange diffchange-inline">schlecht debuggen lässt</del>.</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Erfolgreich getestet wurde </ins>die <ins class="diffchange diffchange-inline">C#-Anwendung bisher unter WinXP Pro SP3 sowie Windows 7. Für Vista brauche ich erst noch einen Probanden</ins>, <ins class="diffchange diffchange-inline">Windows 2000 lasse ich außen vor </ins>(<ins class="diffchange diffchange-inline">freue mich aber über Erfolgsmeldungen</ins>).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Download ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Download ==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:Usblotio.zip]] Firmware, EAGLE-Dateien und C#-Testprogramm</div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:Usblotio.zip]] Firmware, EAGLE-Dateien und C#-Testprogramm <ins class="diffchange diffchange-inline">(VS2008, .NET 2.0)</ins></div></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=347&oldid=prev
Chris: Download-Link hinzugefügt
2009-12-26T22:19:45Z
<p>Download-Link hinzugefügt</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Version vom 26. Dezember 2009, 22:19 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l72" >Zeile 72:</td>
<td colspan="2" class="diff-lineno">Zeile 72:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Wichtig ist hier eigentlich nur die Größe des übergebenen Arrays, bei falscher Länge kommt einfach nichts beim Device an! Man kann relativ viel Zeit damit verbringen, dort nach einem Fehler zu suchen, zumal sich ein vollbelegter Mikrocontroller (der nicht einmal UART hat) schlecht debuggen lässt.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Wichtig ist hier eigentlich nur die Größe des übergebenen Arrays, bei falscher Länge kommt einfach nichts beim Device an! Man kann relativ viel Zeit damit verbringen, dort nach einem Fehler zu suchen, zumal sich ein vollbelegter Mikrocontroller (der nicht einmal UART hat) schlecht debuggen lässt.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== Download ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Datei:Usblotio.zip]] Firmware, EAGLE-Dateien und C#-Testprogramm</ins></div></td></tr>
</table>
Chris
https://hobbyelektronik.org/w/index.php?title=USBLotIO&diff=345&oldid=prev
Chris: im Entstehen...
2009-12-21T21:48:50Z
<p>im Entstehen...</p>
<p><b>Neue Seite</b></p><div>Die parallele Schnittstelle am PC ist tot. Nachdem sie schon vor einigen Jahren bei Notebooks verschwunden ist, findet man sie heute auch kaum noch bei Desktop-PCs. Selbst bei teureren Mainboards sind oft nur noch Pinheader vorhanden. Ein Slotblech dafür wird generell nicht geliefert.<br />
Die ganzen Drucker sind jetzt schneller und mit dünneren Leitungen per USB angebunden. Soweit, so gut. Nur wird die Luft für Bastler langsam dünner, wenn man keine größeren Ambitionen zu RS232 hat (deren Anschlüsse am PC auch langsam aussterben).<br />
<br />
Aus diesem Grund hatte ich die Idee, eine kleine Schaltung zu bauen, die zwar keinen Ersatz aber eine Alternative zum guten alten Parport darstellt.<br />
<br />
== Anforderungen ==<br />
<br />
* Anbindung, die auch noch in ein paar Jahren funktioniert<br />
* Einfacher Aufbau<br />
* Einfach vom PC ansprechbar<br />
* Erweiterbar<br />
<br />
== Hardware ==<br />
[[Bild:Usblotio_povray.jpg|thumb|Mit [http://www.povray.org/ POV-Ray] gerendertes Layout der Platinen]]<br />
Die Anbindung an den PC findet per USB statt. Hier soll (wieder einmal) [http://www.obdev.at/products/vusb/index-de.html V-USB] zum Einsatz kommen. Davon gibt es zwar schon ein Referenzdesign ([http://www.obdev.at/products/vusb/powerswitch.html PowerSwitch]), dieses hat meiner Meinung ein paar Schwachstellen:<br />
<br />
* keine Erweiterbarkeit<br />
* Treiber erforderlich (laufen die vorhandenen überhaupt unter Win7?)<br />
* relativ großer Aufbau<br />
<br />
Diesen Schwächen möchte ich mit einem ATTiny45 entgegenwirken. Dieser ist schön klein und braucht dank PLL (und automatischer Taktkalibrierung per USB) keinen externen Quarz.<br />
Damit man keine Treiber braucht, soll er sich dem Computer gegenüber als HID (Human Interface Device) ausgeben.<br />
Bleibt nur noch eines: Mit der Anbindung am PC bleiben nur noch 4 Pins am Tiny über - einer davon ist der Reset-Eingang - wie soll man da großartig Ausgänge schalten können? Ganz zu schweigen von der angestrebten Erweiterbarkeit...<br />
<br />
Die Lösung hierfür ist einfach: der Mikrocontroller steuert Schieberegister an, die beliebig kaskadiert werden können.<br />
So kann man quasi beliebig viele Ausgänge an den AVR dengeln.<br />
Als Ausgabeschieberegister dienen 74xx595, welche einen Latch haben und die Datenleitungen in einem Rutsch aktualisiert werden können.<br />
<br />
Um Signale auch lesen zu können, kommen 74xx165 zum Einsatz. Zwar haben diese auch einen Latch, allerdings ist dieser (anders als beim 595) low-aktiv.<br />
Damit wird's mit 4 I/Os am AVR eng.<br />
Gut, die Strobe-Leitungen muss man trennen, Clock kann gemeinsam laufen, nur sind jetzt schon alle Pins belegt.<br />
Es ist zwar möglich, die Daten ins Register zu laden, aber was bringen die Daten, wenn man sie nicht lesen kann?<br />
<br />
Mit einem kleinen Trick kann man das aber bewältigen: Die Datenleitungen beider Richtungen auf einen I/O. Zum Schutz des Ausganges des Registers gibt es aber einen Reihenwiderstand.<br />
Zwischen dem Lesen und Schreiben muss die Datenleitung einfach nur noch als Eingang bzw. Ausgang geschalten werden.<br />
<br />
Aber Vorsicht: dadurch, dass der Reset-Pin auch verwendet wird, kann der Mikrocontroller nur mit HVSP programmiert werden! (oder man lässt eine "Richtung" weg).<br />
<br />
== Software ==<br />
<br />
=== AVR ===<br />
<br />
Wie bereits erwähnt läuft auf dem AVR objective developments V-USB als HID. Grundlage für meine Implementierung war das "Datastore"-Beispiel, das zusätzlich um die automatische Kalibrierung der CPU-Frequenz erweitert wurde.<br />
<br />
Da die USB-Schnittstelle zwangsläufig auf einem Interrupt-Pin hängt, der gleichzeitig auch für SPI verantwortlich ist, müssen die Schieberegister mit einem wesentlich langsameren Soft-SPI angesprochen werden.<br />
<br />
Der USB-Client reagiert bei dem Beginn einer Übertragung mit einem Aufruf der Methode usbFunctionSetup. In ihr wird dann entschieden, ob es sich um einen Schreib- oder Lesevorgang handelt. Hier wird zum einen die Speicheradresse auf 0 gesetzt und beim Leseaufruf die Zustände der Registereingänge in den RAM geschrieben.<br />
<br />
Anschließend wird von V-USB usbFunctionWrite bzw. usbFunctionRead je nach Reportgröße mehrmals aufgerufen. Im Read wird einfach nur der Inhalt des RAMs an den PC übertragen, beim Schreiben wird zuerst die Variable (die gleiche wie beim Lesen) gefüllt und nach dem letzten Wert vom PC die Methode processCommand aufgerufen.<br />
<br />
Dort findet das eigentliche Schreiben auf die Register statt. Zusätzlich zum simplen Schreiben kann man den Controller mit ein paar Logikfunktionen beauftragen. Diese werden immer mit der letzten Ausgabe verwurstet.<br />
Folgende Operationen sind möglich:<br />
<br />
* Überschreiben<br />
* OR<br />
* AND<br />
* XOR<br />
<br />
Zusätzlich kann man ein Flag zum Invertieren übergeben, dadurch werden die Funktionen NOR, NAND und XNOR sowie invertiertes Überschreiben ermöglicht. <br />
Mit einem weiteren Flag kann man die errechneten Werte ins EEProm des Controllers schreiben. Dadurch kann man direkt beim Einschalten der Hardware einen definierten Zustand ausgeben.<br />
<br />
Das einzige, das man in der Software noch anpassen muss, ist die Anzahl der jeweiligen Schieberegister. Oder einfach unverändert lassen - dann werden jeweils 8 Register angenommen.<br />
<br />
Ferner kann man eine ID in den EEProm schreiben, um mehrere (256) Devices zu unterscheiden. Diese ID wird bei jedem Lese-Vorgang im untersten Byte des Reports zurückgegeben.<br />
<br />
=== PC ===<br />
<br />
Auf dem PC kann eigentlich alles werkeln, was auf die entsprechenden Betriebssystem-APIs zugreifen kann. Ich beschränke mich auf Windows, die Portierung auf *nix/Mac/etc. sollte aber nicht allzu schwierig sein.<br />
<br />
Im Grunde muss man nicht viel machen, das Schwierigste dürfte wahrscheinlich das Finden des Devices sein.<br />
Ich habe im C#-Programm Teile aus der Wiimote-Lib von Brian Peek genommen. Ist das HID gefunden und ein Handler gesetzt, können mit HidD_SetFeature und -GetFeature Reports an den AVR gesendet oder von ihm angefordert werden.<br />
<br />
Wichtig ist hier eigentlich nur die Größe des übergebenen Arrays, bei falscher Länge kommt einfach nichts beim Device an! Man kann relativ viel Zeit damit verbringen, dort nach einem Fehler zu suchen, zumal sich ein vollbelegter Mikrocontroller (der nicht einmal UART hat) schlecht debuggen lässt.</div>
Chris