<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=212.59.42.162</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=212.59.42.162"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/212.59.42.162"/>
	<updated>2026-04-10T23:39:57Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=AVR-Transistortester&amp;diff=40109</id>
		<title>AVR-Transistortester</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=AVR-Transistortester&amp;diff=40109"/>
		<updated>2009-10-22T14:23:23Z</updated>

		<summary type="html">&lt;p&gt;212.59.42.162: /* Testablauf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;von Markus F.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Grundsätzliches==&lt;br /&gt;
Jeder Bastler kennt wohl dieses Problem: Man baut einen [[Transistor]] aus einem Gerät aus oder kramt einen aus der Bastelkiste.&lt;br /&gt;
Wenn die Typenbezeichnung zu erkennen ist (und sie einem bekannt ist), ist ja alles in Ordnung. Oft ist dem aber nicht so, &lt;br /&gt;
und dann geht das Übliche mal wieder los: Typ und Pinbelegung des Transistors aus dem Internet oder einem Buch heraussuchen.&lt;br /&gt;
Das nervt auf Dauer natürlich ziemlich. Auch Transistoren im gleichen Gehäuse haben nicht immer die gleiche Pin-Belegung.&lt;br /&gt;
Zum Beispiel hat ein 2N5551 eine andere Belegung als ein BC547, obwohl beide ein TO92 Gehäuse haben. Wenn bei einem Transistor die &lt;br /&gt;
Bezeichnung nicht mehr zu erkennen ist (oder nicht mal Google was dazu weiß), wird es mit konventionellen Methoden richtig umständlich,&lt;br /&gt;
den Transistortypen herauszufinden: Es könnte sich um NPN, PNP, N-oder P-Kanal-Mosfet, etc. handeln. Eventuell hat das Bauteil auch noch&lt;br /&gt;
eine Schutzdiode intern. Das macht die Identifizierung noch schwieriger. Durchprobieren per Hand ist also ein recht zeitraubendes Unterfangen.&lt;br /&gt;
&lt;br /&gt;
Warum soll man das nicht per Mikrocontroller erledigen lassen?&lt;br /&gt;
So ist dieser automatische Transistortester entstanden.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Automatische Erkennung von NPN und PNP-Transistoren, N-und P-Kanal-MOSFETs, Dioden (auch Doppeldioden), Thyristoren Triacs und auch Widerständen.&lt;br /&gt;
* Automatische Ermittlung und Anzeige der Pins des zu testenden Bauteils&lt;br /&gt;
* Erkennung und Anzeige von Schutzdioden bei Transistoren und MOSFETs&lt;br /&gt;
* Ermittlung des Verstärkungsfaktors und der Basis-Emitter-Durchlassspannung bei Transistoren&lt;br /&gt;
* Messung der Gate-Schwellspannung und Gatekapazität von Mosfets&lt;br /&gt;
* Anzeige der Werte auf einem Text-LCD (2*16 Zeichen)&lt;br /&gt;
* Ein-Knopf-Bedienung; automatische Abschaltung&lt;br /&gt;
* Stromverbrauch im ausgeschalteten Zustand: &amp;lt; 20 nA&lt;br /&gt;
&lt;br /&gt;
Selbstleitende FETs (z.B. JFETs) werden mittlerweile auch unterstützt. Bei Leistungs-Thyristoren und -Traics kann es&lt;br /&gt;
auch zu Problemen kommen, wenn der Teststrom (ca. 7 mA) unter dem Haltestrom liegt. MOSFETs und Transistoren wurden aber in meinen Tests immer korrekt erkannt.&lt;br /&gt;
Der Messbereich für Widerstände liegt bei etwa 5 Ohm bis 910kOhm, deckt also die meisten Widerstandswerte ab. Die Genauigkeit ist aber nicht sehr hoch.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
[[Bild: Schaltplan_transistortester.png|thumb|200px|Schaltplan des Transistortesters]]&lt;br /&gt;
[[Bild: transistortester.jpg|thumb|200px|Transistortester im Gehäuse]]&lt;br /&gt;
[[Bild: transistortester_pruefkabel.jpg|thumb|200px|Adapterkabel, um auch Transistoren testen zu können, die nicht in den Testsockel passen]]&lt;br /&gt;
[[Bild: Transistortester_19inch_1.jpg|thumb|200px|Ausführung als Einschub für einen 19&amp;quot;-Baugruppenträger, versorgt über einen Netztrafo, ohne Abschaltautomatik]] &lt;br /&gt;
Es empfiehlt sich, den Schaltplan in einem weiteren Browserfenster zu öffnen, um die&lt;br /&gt;
folgenden Beschreibungen nachvollziehen zu können.&lt;br /&gt;
&lt;br /&gt;
Als Mikrocontroller wurde der ATMega8 gewählt. Er verfügt über mehr als genug Flash und RAM.&lt;br /&gt;
Außerdem hat er genug Portpins und ist sehr preisgünstig.&lt;br /&gt;
Der Transistortester wird mit einer 9V-Block-Batterie betrieben. Die 5V-Betriebsspannung&lt;br /&gt;
für den AVR wird ganz konventionell mit einem 78L05 erzeugt.&lt;br /&gt;
Am Port B des ATMega8 sind verschiedene Widerstände angeschlossen: Je Transistor-Pin ein großer (470 k) und ein kleiner (680 Ohm).&lt;br /&gt;
Hiermit können zwei verschiedene Stromstärken auf den zu testenden Pin gegeben werden.&lt;br /&gt;
Die Widerstände sind mit ADC0 , ADC1 und ADC2 verbunden. An diese Pins wird auch der zu testende Transistor angeschlossen.&lt;br /&gt;
Der linke Teil der Schaltung (mit den 3 Transistoren) ist für die automatische Abschaltung zuständig. Dazu später mehr.&lt;br /&gt;
An den ersten Pins von Port D ist das LCD angeschlossen. Es handelt sich dabei um ein 2x16 Zeichen Text-LCD mit HD44780-kompatiblem Controller.&lt;br /&gt;
&lt;br /&gt;
Es ist zu beachten, dass die Test-Eingänge keine Schutzbeschaltung haben. Eine Schutzbeschaltung würde vermutlich auch die Messergebnisse verfälschen. Es sollten also keinesfalls Bauteile, die noch in eine Schaltung eingebaut sind, getestet werden. Sonst könnte der ATMega8 beschädigt werden.&lt;br /&gt;
&lt;br /&gt;
* Bezugsquelle für Platinen: [http://www.it-wns.de/themes/kategorie/detail.php?artikelid=722&amp;amp;source=2 IT-WNS] (Doppelseitige Platine)&lt;br /&gt;
* Dateien zum Selbstätzen: [http://www.mikrocontroller.net/topic/131804#1244222 (Artikel-Link, einseitige Platine)]&lt;br /&gt;
&lt;br /&gt;
==Testablauf==&lt;br /&gt;
Der Test des Transistors funktioniert nach einem einfachen aber effektiven Prinzip:&lt;br /&gt;
Es werden zunächst mal alle sechs Kombinationsmöglichkeiten für die Pins durchprobiert. &lt;br /&gt;
Hierfür werden die Pins entweder über den 680 Ohm Widerstand auf + oder fest auf Masse gelegt oder ganz freigelassen.&lt;br /&gt;
Es ergeben sich folgende 6 Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
Pin1 auf +, Pin2 auf -, Pin3 frei&amp;lt;br&amp;gt;&lt;br /&gt;
Pin1 auf +, Pin2 frei, Pin3 auf -&amp;lt;br&amp;gt;&lt;br /&gt;
Pin1 frei, Pin2 auf -, Pin3 auf +&amp;lt;br&amp;gt;&lt;br /&gt;
Pin1 frei, Pin2 auf +, Pin3 auf -&amp;lt;br&amp;gt;&lt;br /&gt;
Pin1 auf -, Pin2 frei, Pin3 auf +&amp;lt;br&amp;gt;&lt;br /&gt;
Pin1 auf -, Pin2 auf +, Pin3 frei&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für jede Kombinationsmöglichkeit wird überprüft, ob zwischen dem + Pin und dem -Pin Durchgang herrscht. Hierfür wird mit den ADCs die &lt;br /&gt;
Spannung am + Pin ermittelt. Falls Durchgang besteht und die abfallende Spannung im Bereich zwischen 0,2 V und 4 V liegt,&lt;br /&gt;
wird von einer Diode zwischen den betreffenden Pins ausgegangen. Dieses Ergebnis wird gespeichert. Der Test wird dadurch natürlich nicht &lt;br /&gt;
abgebrochen, da dieses Ergebnis auch bei einem Transistor eintreten kann und wird (ein Transistor hat zwei pn-Übergänge, also 2 Dioden).&lt;br /&gt;
&lt;br /&gt;
Falls kein Durchgang herrscht, wird der bisher frei gelassene Pin über 680 Ohm auf Masse gelegt. Falls jetzt Durchgang besteht, muss es sich&lt;br /&gt;
um einen pnp-Transistor oder p-Kanal-MOSFET handeln. In diesem Fall wird der Pin (es handelt sich dann um die Basis) über den 470 k Widerstand&lt;br /&gt;
auf Masse gelegt. Jetzt wird die Spannung zwischen dem +Pin und -Pin (Kollektor und Emitter) gemessen und zwischengespeichert.&lt;br /&gt;
Daraus kann nachher der Verstärkungsfaktor und die &amp;quot;richtige&amp;quot; Anschlussbelegung errechnet werden. Ein Transistor funktioniert nämlich auch &amp;quot;falsch herum&amp;quot;&lt;br /&gt;
(also bei einem pnp-Transistor Kollektor auf Plus), allerdings ist der Verstärkungsfaktor deutlich geringer.&lt;br /&gt;
&lt;br /&gt;
Wenn hingegen immer noch kein Durchgang zwischen dem positiven und negativen Pin herrscht, wird der anfangs frei gelassene Pin über 680 Ohm auf Plus gelegt.&lt;br /&gt;
Besteht nun Durchgang, handelt es sich um einen npn-Transistor, einen n-Kanal-MOSFET oder einen Thyristor/Triac. Der weitere Ablauf entspricht dem bei pnp.&lt;br /&gt;
Der anfangs frei gelassene Pin wird dann allerdings nochmal hochohmig geschaltet. Wenn das Bauteil dann immer noch leitet, ist es ein Thyristor oder Triac.&lt;br /&gt;
Durch die 680 Ohm-Widerstände ist der mögliche Strom allerdings recht gering (max. ca. 7,4 mA). Wenn der Haltestrom des Thyristors oder Triacs über diesem Wert liegt,&lt;br /&gt;
wird das Bauteil als npn-Transistor erkannt. Das dürfte bei vielen Leistungsthyristoren oder -triacs der Fall sein. Eine Verkleinerung der Testwiderstände (für mehr Strom)&lt;br /&gt;
wäre zwar möglich, erhöht aber auch das Risiko, sehr empfindliche Transistoren zu zerstören.&lt;br /&gt;
Die Unterscheidung zwischen Transistor und MOSFET ist nicht schwer: Bei einem Transistor fließt Basisstrom. Somit wird der Basis-Anschluss &amp;quot;zum Emitter hin&amp;quot; gezogen. Bei einem MOSFET&lt;br /&gt;
passiert das natürlich nicht. Das lässt sich dann leicht über den angeschlossenen ADC ermitteln.&lt;br /&gt;
&lt;br /&gt;
Zur Messung der Gate-Schwellspannung von N-Kanal-Anreicherungs-Mosfets wird Source fest auf Masse gelegt. Drain wird über einen 680-Ohm-Widerstand gegen Plus gelegt und Gate wird über einen 470kOhm Widerstand gegen Plus gelegt.&lt;br /&gt;
Dann wartet der Tester, bis der Mosfet schaltet, also der Drain-Anschluss auf logisch 0 geht. Nun wird die am Gate anliegende Spannung gemessen. Das ist etwa die Gate-Schwellspannung.&amp;lt;br&amp;gt;&lt;br /&gt;
Zur dann folgenden Messung der Gatekapazität werden Gate, Drain und Source fest gegen Masse gelegt. Das entlädt das Gate komplett. Dann wird das Gate über 470kOhm gegen Plus gelegt, Drain und Source bleiben auf Masse.&lt;br /&gt;
Nun wird in einer Schleife die Zeit gemessen, die vergeht bis der Gate-Anschluss auf logisch 1 geht. Das passiert bei recht genau 3,6V, wenn der AVR mit stabilen 5V versorgt wird.&lt;br /&gt;
Das sind 72% der Betriebsspannung. Somit ergibt sich rechnerisch eine Zeitkonstante von 1,28 Tau (1,28 R*C). Da R mit 470kOhm bekannt ist, lässt sich daraus C, also die Gatekapazität, berechnen.&lt;br /&gt;
Der reale Faktor für die Berechnung weicht etwas davon ab und kann per Define im Sourcecode angepasst werden.&lt;br /&gt;
Die Messung der Gate-Kapazität ist, wie auch die Messung der Gate-Schwellspannung, ohnehin nicht besonders genau. Für eine Abschätzung und den groben Vergleich verschiedener Mosfets sind diese Funktionen aber brauchbar.&lt;br /&gt;
Der Ablauf der Gate-Schwellspannungs und -Kapazitätsmessung für P-Kanal-Anreicherungs-Mosfets ist identisch mit dem oben beschriebenen Ablauf für N-Kanal-Mosfets. Nur kehren sich alle Polatitäten um und die Zeitkonstante für die Gatekapazität ändert sich.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für die Messung von Widerständen wird aus einem der internen Widerstände (680 Ohm oder 470kOhm) und dem Prüfling ein Spannungsteiler aufgebaut.&lt;br /&gt;
Die Spannung am Mittelpunkt des Teilers wird gemessen, einmal mit dem 680Ohm und einmal mit dem 470kOhm-Widerstand. Daraus lässt sich der Widerstandswert des Prüflings berechnen.&lt;br /&gt;
Dieses Messverfahren hat das Problem, dass die Genauigkeit stark vom Widerstandswert des Prüflings abhängt.&lt;br /&gt;
Am genauesten ist die Messung, wenn der Prüfling etwa den gleichen Widerstandswert wie einer der internen Widerstände hat, also 680 Ohm oder 470kOhm. Dann hat der Spannungsteiler ein Verhältnis von etwa 1:1. Eine kleine Änderung des Widerstandswerts des Prüflings ändert hier die Spannung in der Mitte des Teilers recht stark.&lt;br /&gt;
Mit dem internen 680Ohm-Widerstand ergibt sich mit einem 600-Ohm-Prüfling eine Teilerspannung von 2,34V; mit einem 800-Ohm-Prüfling sind es 2,7V.&lt;br /&gt;
Eine Erhöhung des Prüflings um 33% erhöht also die Spannung hier um immerhin 0,36V, erhöht also den ADC-Wert um 74.&lt;br /&gt;
&lt;br /&gt;
Bei einem 6-Ohm-Prüfling dagegen sind es 0,044V in der Mitte des Teilers, bei 8 Ohm sind es 0,058V.&lt;br /&gt;
Hier steigt der Widerstandswert ebenfalls um 33%. Die Spannung in der Teilermitte erhöht sich aber nur um 0,014V, was den ADC-Wert um gerade mal 2 bis 3 erhöht.&lt;br /&gt;
&lt;br /&gt;
Übrigens wird jeder Prüflings-Widerstand sowohl mit dem 470kOhm-Widerstand als auch mit dem 680Ohm-Widerstand vermessen. In der Auswertung wird dann das genauere Ergebnis verwendet, also das Ergebnis, bei dem die Teilerspannung näher am Optimalwert von 2,5V liegt.&lt;br /&gt;
&lt;br /&gt;
Der gesamte Messbereich liegt bei etwa 5 Ohm bis 910kOhm.&lt;br /&gt;
Im Bereich unter 20 Ohm ist die Messung sehr ungenau, Abweichungen von 10-20% können schon vorkommen.&lt;br /&gt;
Nicht besonders genau ist auch der Bereich von ca. 20 bis 100 Ohm.&lt;br /&gt;
Zudem ist auch der Bereich von ca. 10-50kOhm nicht richtig genau, weil dafür keiner der zur Verfügung stehenden Messwiderstände (680 Ohm oder 470kOhm) gut geeignet ist.&lt;br /&gt;
Wenn in dem Tester präzise Widerstände (Metallschicht mit &amp;lt;=1% Toleranz) verbaut werden, dürften +/-3% Abweichung über den gesamten Messbereich aber machbar sein. Damit ist die Widerstands-Messfunktion natürlich keine Konkurrenz zu einem guten Multimeter, aber durchaus passabel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nachdem die genannten Messungen für alle sechs Kombinationsmöglichkeiten der Pins gemacht wurden, geht es an die Auswertung:&lt;br /&gt;
* Bei Bipolartransistoren muss - wie gesagt, die richtige Belegung von Kollektor und Emitter anhand des Verstärkungsfaktors bestimmt werden&lt;br /&gt;
* Wurden bei einem Bipolartransistor drei Dioden oder bei einem MOSFET eine Diode gefunden, besitzt das Bauteil eine Schutzdiode. Das wird durch ein kleines Dioden-Symbol rechts unten im LCD dargestellt&lt;br /&gt;
* Wenn mehrere Dioden, aber kein Transistor erkannt wurden, wird die Stellung der Dioden zueinander überprüft, um den Bauteiltyp und die Pin-Belegung zu ermitteln (Doppeldiode mit Common Anode/Cathode, zwei Dioden in Serie, zwei Dioden antiparallel)&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis wird dann auf dem LCD dargestellt. Dann schaltet sich der Tester nach ca. 10 Sekunden automatisch ab.&lt;br /&gt;
&lt;br /&gt;
==Darstellung auf dem LCD==&lt;br /&gt;
&lt;br /&gt;
Das ermittelte Testergebnis wird auf dem LCD dargestellt.&lt;br /&gt;
In der ersten Zeile links wird der erkannte Bauteiltyp angezeigt. Folgende Bauteile werden bis jetzt erkannt:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bauteil || Display-Anzeige&lt;br /&gt;
|-&lt;br /&gt;
| NPN-Transistor&lt;br /&gt;
| NPN&lt;br /&gt;
|-&lt;br /&gt;
| PNP-Transistor&lt;br /&gt;
| PNP&lt;br /&gt;
|-&lt;br /&gt;
| N-Kanal-Anreicherungs-MOSFET&lt;br /&gt;
| N-E-MOS&lt;br /&gt;
|-&lt;br /&gt;
| P-Kanal-Anreicherungs-MOSFET&lt;br /&gt;
| P-E-MOS&lt;br /&gt;
|-&lt;br /&gt;
| N-Kanal-Verarmungs-MOSFET&lt;br /&gt;
| N-D-MOS&lt;br /&gt;
|-&lt;br /&gt;
| P-Kanal-Verarmungs-MOSFET&lt;br /&gt;
| P-D-MOS&lt;br /&gt;
|-&lt;br /&gt;
| N-Kanal-JFET&lt;br /&gt;
| N-JFET&lt;br /&gt;
|-&lt;br /&gt;
| P-Kanal-JFET&lt;br /&gt;
| P-JFET&lt;br /&gt;
|-&lt;br /&gt;
| Thyristor&lt;br /&gt;
| Thyristor&lt;br /&gt;
|-&lt;br /&gt;
| Triac&lt;br /&gt;
| Triac&lt;br /&gt;
|-&lt;br /&gt;
| Doppeldiode, gemeinsame Anode&lt;br /&gt;
| Doppeldiode CA&lt;br /&gt;
|-&lt;br /&gt;
| Doppeldiode, gemeinsame Kathode&lt;br /&gt;
| Doppeldiode CC&lt;br /&gt;
|-&lt;br /&gt;
| 2 antiparallele Dioden&lt;br /&gt;
| 2 Dioden antiparallel&lt;br /&gt;
|-&lt;br /&gt;
| 2 Dioden in Serie&lt;br /&gt;
| 2 Dioden in Serie&lt;br /&gt;
|-&lt;br /&gt;
| einfache Diode&lt;br /&gt;
| Diode&lt;br /&gt;
|}&lt;br /&gt;
Je nach Bauteil werden noch weitere Daten angezeigt:&lt;br /&gt;
* Pin-Namen und Pin-Belegung&lt;br /&gt;
* Verstärkungsfaktor hFE und Basis-Emitter-Durchlassspannung (bei Bipolartransistoren)&lt;br /&gt;
* Gate-Schwellspannung (bei Anreicherungs-MOSFETs)&lt;br /&gt;
* Durchlassspannung (bisher nur bei einfachen Dioden, nicht bei Doppeldioden u.ä.)&lt;br /&gt;
* Bei Transistoren: Anzeige, ob eine Schutzdiode vorhanden ist (durch ein kleines Dioden-Symbol)&lt;br /&gt;
&lt;br /&gt;
Da bei den meisten JFETs Drain und Source gleichwertig sind, können diese Anschlüsse nicht erkannt werden. Es kann also vorkommen, dass Drain und Source bei JFETs vertauscht angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==Automatische Abschaltung==&lt;br /&gt;
&lt;br /&gt;
Am einfachsten wäre es natürlich, den AVR nach Abschluss des Tests einfach in den Power-Down-Mode&lt;br /&gt;
zu versetzen und einfach per Taster beim nächsten Test wieder aufzuwecken. Der AVR braucht in diesem Modus unter 0,3 µA. Da würde die Batterie fast ewig halten.&lt;br /&gt;
Da der Tester aber stabile 5 V braucht, kommt man um einen Spannungsregler nicht herum. Hier haben wir auch schon das Problem: Der Spannungsregler läuft munter weiter,&lt;br /&gt;
auch wenn der AVR schläft, und verbraucht dabei gar nicht so wenig Strom:&lt;br /&gt;
Ein 78L05 braucht ca. 3 mA. Das würde die Batterie in gerade mal einer Woche leeren.&lt;br /&gt;
Selbst der sparsame LP2950 braucht noch 75 µA. Da würde die Batterie auch nur neun Monate halten. Schon besser, aber alles andere als ideal.&lt;br /&gt;
&lt;br /&gt;
Es gibt aber noch eine bessere Möglichkeit: Den Strom mit einem pnp-Transistor in der Plus-Leitung (T3) schalten.&lt;br /&gt;
Hiermit liegt der Standby-Strom bei gerade mal ~10 nA (0,01 µA oder 0,00001 mA). Eine 9 V Batterie mit 500 mAh wäre damit theoretisch erst nach über 5000 Jahren leer. Das sollte wohl reichen...&lt;br /&gt;
&lt;br /&gt;
Beschreibung dieser Schaltung:&amp;lt;br&amp;gt;&lt;br /&gt;
Im Ruhezustand wird die Basis von T3 über den Widerstand R10 auf Plus gelegt. Der Transistor ist damit gesperrt und die Schaltung nicht in Betrieb.&lt;br /&gt;
Wird jetzt aber der Taster S1 gedrückt, wird die Basis von T3 über R7 und die BE-Strecke von T2 auf Masse gelegt.&lt;br /&gt;
Damit leitet T3 und die Schaltung bekommt Betriebsspannung. Somit wird auch der AVR aktiv. Seine erste Aktion ist es, den Portpin PD6 (Pin 12) auf Plus zu legen.&lt;br /&gt;
Damit bekommt der Transistor T1 Basisstrom und beginnt zu leiten. Dieser lässt nun über R7 und LED1 den Basisstrom von T3 fließen. Der Taster kann jetzt wieder losgelassen werden.&lt;br /&gt;
10 Sekunden nach Abschluss des Tests legt der AVR die Basis von T1 wieder auf Masse. Damit sperrt T1, T3 erhält keinen Basisstrom mehr, sperrt auch und schaltet die Betriebsspannung wieder ab.&lt;br /&gt;
Der Transistortester ist damit wieder ausgeschaltet.&lt;br /&gt;
Transistor T2 leitet, wenn der Taster gedrückt ist. Er ist an PD7 (Pin 13) an dem AVR angeschlossen. Damit merkt der Controller, wenn die Taste im Betrieb erneut gedrückt wird, und startet den Testzyklus neu.&lt;br /&gt;
Das ist sinnvoll wenn man mehrere Transistoren hintereinander testen möchte. Sonst müsste man jedesmal warten, bis sich der Tester wieder automatisch abgeschaltet hat (ca. 10s).&lt;br /&gt;
R9 und C2 sollen eventuelle Störungen unterdrücken. Sonst kann sich der Transistortester auch unerwünschterweise durch elektromagnetische Störungen einschalten.&lt;br /&gt;
LED1 dient dazu, die Spannung an S1 auch im Betrieb hoch genug zu halten um T2 aufzusteuern: Wenn T1 geschaltet ist, liegt dessen Kollektor quasi auf Masse. Die Spannung am Kollektor reicht dann nicht mehr aus,&lt;br /&gt;
um beim erneuten Drücken der Taste den Transistor T2 zu schalten. Anstelle der LED können auch zwei normale Dioden (1N4148 ö.ä.) in Reihe benutzt werden.&lt;br /&gt;
&lt;br /&gt;
Die Widerstände R11 und R12 dienen zum Messen der Batteriespannung. Bei zu geringer Batteriespannung wird dann eine entsprechende Meldung (&amp;quot;Batterie leer&amp;quot;) auf dem LCD angezeigt.&lt;br /&gt;
&lt;br /&gt;
[[Bild: transistortester_ohne_Abschaltung.png|thumb|200px|Schaltplan ohne die automatische Abschaltung]]&lt;br /&gt;
In dem Thread zum Artikel wurde mehrfach der Wunsch geäußert, den Transistortester ohne die automatische Abschaltung aufzubauen. Stattdessen wird dann ein einfacher Schalter verwendet. Das spart eine ganze Menge Bauteile ein.&lt;br /&gt;
Die Software muss dafür nicht geändert werden.&lt;br /&gt;
Taster S1 ist optional, wenn die automatische Abschaltung nicht eingebaut wird.. Damit kann man einen neuen Testzyklus starten, ohne den Tester dafür aus- und wieder einschalten zu müssen. Wer das nicht benötigt, kann ihn einfach weglassen.&lt;br /&gt;
Achtung: Der Taster ist natürlich nur optional, wenn der Tester ohne die automatische Abschaltung aufgebaut wird!&lt;br /&gt;
&lt;br /&gt;
==Infos zur Software==&lt;br /&gt;
In dem zum Download bereitstehenden Archiv ist eine fertig kompilierte Firmware-Version für den ATMega8 und eine kleinere für den ATMega48 enthalten.&lt;br /&gt;
Die Version für den ATMega8 unterstützt zusätzlich noch die Messung von Widerständen. In einem ATMega48 wäre dafür kein Platz mehr.&lt;br /&gt;
Außerdem ist der komplette Quellcode enthalten.&lt;br /&gt;
&lt;br /&gt;
Für &amp;quot;Selbstkompilierer&amp;quot;: Um zwischen der Version für den ATMega8 und ATMega48 zu wechseln, einfach in den Projektoptionen oder im Makefile den AVR-Typen entsprechend ändern. Über #ifdef-Blocks werden dann automatisch die (vom Platz her) nur auf dem ATMega8 möglichen Features aktiviert bzw. deaktiviert.&lt;br /&gt;
&lt;br /&gt;
Ich würde es schön finden, wenn ihr gefundene Fehler in der Software oder Verbesserungsvorschläge in den Forums-Thread zum Artikel schreibt.&lt;br /&gt;
&lt;br /&gt;
==Fehlersuche==&lt;br /&gt;
Falls überhaupt nichts auf dem Display anzeigt wird, sollten folgende Dinge überprüft werden:&lt;br /&gt;
* Sind alle Verbindungen zum LCD richtig angeschlossen?&lt;br /&gt;
* Sind die Fusebits des ATMega8/ATMega48 richtig gesetzt (interner Oszillator mit 1MHz)?&lt;br /&gt;
* Wurde die .eep-Datei ins EEPROM des Controllers geflasht?&lt;br /&gt;
* Hat das LCD einen HD44780-kompatiblem Controller?&lt;br /&gt;
* Handelt es sich möglicherweise um ein Hochtemperatur-LCD? Diese brauchen nämlich eine negative Kontrastspannung.&lt;br /&gt;
* Testweise auch mal R14 überbrücken. Dieser Widerstand muss ohnehin an das verwendete LCD angepasst werden, um einen guten Kontrast zu erhalten (ggf. ein Poti verwenden).&lt;br /&gt;
&lt;br /&gt;
Falls Bauteile nur mit einer bestimmten Reihenfolge der Anschlüsse an den Test-Pins richtig erkannt werden oder Daten wie der Verstärkungsfaktor bei verschiedenen Anschlussreihenfolgen stark voneinander abweichen, sollte mal die Platine auf Lötbrücken o.ä. überprüft werden. Zwischen den Test-Pins sollten auch keine Flussmittelreste verbleiben. Flussmittel ist meist auch geringfügig leitfähig. Da die verwendeten Testströme sehr gering sind, kann auch der über das Flussmittel fließende Strom zu einer Verfälschung des Ergebnisses führen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.reichelt.de/?ARTICLE=81766 Dieses Gerät hat mich auf die Idee gebracht, sowas selbst zu bauen&lt;br /&gt;
* http://www.mikrocontroller.net/topic/131804 Thread zum Artikel&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*[[Media:AVR-Transistortester_neu.zip|Firmware inkl. Schaltplan und Sourcecode]] Es sind fertig kompilierte Programme für den ATMega8 und ATMega48 enthalten. Die Version für den ATMega8 hat als zusätzliches Feature die Erkennung und Messung von Widerständen. Das hätte im Mega48 keinen Platz mehr.&lt;br /&gt;
*[http://www.mikrocontroller.net/attachment/60838/TransistorTestNew.zip Die neueste Firmware inkl.  Sourcecode]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AVR-Projekte]]&lt;/div&gt;</summary>
		<author><name>212.59.42.162</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Elektronischer_Zauberwuerfel&amp;diff=29526</id>
		<title>Elektronischer Zauberwuerfel</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Elektronischer_Zauberwuerfel&amp;diff=29526"/>
		<updated>2008-07-31T13:31:52Z</updated>

		<summary type="html">&lt;p&gt;212.59.42.162: /* Fertige Hardware&amp;lt;br&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der &amp;quot;Elektronische Zauberwürfel&amp;quot; ist die elektronische Variante des aus den 80er-Jahren bekannten Rubik&#039;s Magic Zauberwürfels. Es entsteht zunächst eine Studie/Prototyp, die zeigen soll,&amp;amp;nbsp; ob die Spielidee des mechanischen Zauberwürfels auf eine elektronische Variante übertragbar ist und durch zusätzliche Features sinnvoll ergänzt werden kann.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:EZW Rubiks3x3x3.jpg|thumb|80px|Rubiks Zauberwürfel]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; __TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Idee und Motivation ==&lt;br /&gt;
&lt;br /&gt;
Die gängigen Rubiks Zauberwürfel haben 3x3x3 Steine. Neben dem Rubiks Revenge (4x4x4) und dem Rubiks Professor (5x5x5) gibt es keine käuflichen größeren Zauberwürfel - vermutlich aus mechanischen Gründen. Die virtuellen Würfel (PC-Software) lassen sich nicht in die Hand nehmen und auf natürliche Weise begreifen und lösen. Daher dachte ich zunächst einen 8x8x8 Würfel zu bauen, der ähnlich wie ein mechanischer Zauberwürfel lösbar sein sollte (In die Hand nehmen, drehen und die Farben suchen...). Nach kurzer Überlegung, wie viele Lampen und Taster ich dazu brauchen würde, habe ich die Idee gaaanz schnell aufgegeben und mich auf einen 3x3x3er konzentriert. (8x8x8: 512Felder zu je 6LEDs -&amp;amp;gt; 3000LEDs)&lt;br /&gt;
&lt;br /&gt;
Der Reiz den mechanischen Zauberwürfel überhaupt lösen zu können, verfliegt nach ein paar Tagen und es stellt sich die Frage: &amp;quot;Wie &#039;&#039;schnell&#039;&#039; kann ich den Zauberwürfel lösen?&amp;quot;. Aus dem anfänglichen neugierigen Spiel wird eine technische Sportart, die auf folgende Punkte Wert legt:&lt;br /&gt;
&lt;br /&gt;
* zeiteffizientes und/oder zugeffizientes Lösungsverfahren (Lösen mit möglichst wenigen Drehungen)&lt;br /&gt;
* definiertes Verdrehen vor dem eigentlichen Lösungsvorgang&lt;br /&gt;
* Zeitmessung des Lösungsvorgangs&lt;br /&gt;
* Protokollierung des Lernfortschritts (Lösungszeiten aufzeichnen und auswerten)&lt;br /&gt;
&lt;br /&gt;
Der Elektronische Zauberwürfel soll diese Dinge vereinfachen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sollen umgesetzt werden:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Auto-Scramble&#039;&#039;&#039; (Verdrehen des Zauberwürfels auf Knopfdruck)&lt;br /&gt;
* &#039;&#039;&#039;Automatische Zeitmessung&#039;&#039;&#039; (Competition Mode) &lt;br /&gt;
** Die LEDs des verdrehten Würfels werden erst nach Tastendruck freigegeben. Damit beginnt die Einprägungsphase.&lt;br /&gt;
** Nach Ablauf der Einprägungsphase (typisch 15s) beginnt die eigentliche Lösungszeit zu laufen. Dies kann vorgezogen werden, indem schon vor Ablauf der Einprägungsphase eine Taste gedrückt wird.&lt;br /&gt;
* Abspeichern der erzielten Zeiten zur &#039;&#039;&#039;Auswertung am PC&#039;&#039;&#039;&lt;br /&gt;
* mechanisches Drehen entfällt. Dadurch soll sich die Lösungszeit verringern lassen, da keine &amp;quot;Verklemmer&amp;quot; die Zeit beeinflussen. (Muss noch ausprobiert werden, ob nicht gerade das dann letztendlich den Reiz ausmacht)&lt;br /&gt;
* &#039;&#039;&#039;Tutorialfunktion&#039;&#039;&#039; zum Erlernen von Zugfolgen; schnelles Rücksetzen auf abgespeicherte Ausgangspositionen (Rückdrehen oder langwieriges Wiederherstellen der Position entfällt)&lt;br /&gt;
* &#039;&#039;&#039;Lösungsvorschläge&#039;&#039;&#039;; Würfel macht Vorschlag, wie er aus aktueller Situation gelöst werden kann (das dürfte die anspruchvollste Aufgabe sein)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mechanik ==&lt;br /&gt;
&lt;br /&gt;
Beim elektronischen Zauberwürfel gibt es keine beweglichen Teile. Jede der sechs Seiten des Würfels besteht aus einem feststehenden 3x3-Feld aus LEDs. An allen Kanten sind Taster, die die &#039;&#039;gedachten&#039;&#039; beweglichen Teile in der gewünschten Drehrichtung weiterdrehen, d.h. die angezeigten Felder ändern ihre Farben. Übertragen auf einen mechanischen Würfel, würde sich diese Ebene bei einem Tastendruck dann um 90° in die gedrückte Richtung drehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;Die folgenden Bilder zeigen den bereits gefrästen, aber noch nicht verleimten Holzrahmen.&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In der Mitte jeder Seite ist das 3x3-LED-Feld. Jedes Feld besteht aus 6 farbigen EinzelLEDs, von denen immer nur eine leuchtet.&amp;lt;br&amp;gt;Neben jeder Spalte und Zeile sitzen Taster. Pro Seite werden somit 12 Taster verbaut.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;20&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Holzrahmen4.jpg|thumb|150px|geplante Würfeloberseite]] Damit die Außenkante des Würfels höher ist als die verwendeten Taster (Schurter LSH SMD-Taster; Reichelt: TASTER 9315; Bauhöhe 5mm; Taster sollen nicht überstehen), müssen die Platinen 8mm tief liegen. -&amp;amp;gt; Außenprofiltiefe der Kante: 8mm. Die Platinen sind mit einem umlaufenden Rand von 6mm entworfen. Damit ergibt sich die gewählte Profilform der Kantenteile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Holzrahmen3.jpg|thumb|150px|Holzrahmen]] An einem Holzrahmen werden die Seitenplatinen befestigt. Kantenlänge des Holzwürfels: 10cm (möglicherweise etwas zu groß?!). Auf diesem Foto fehlen noch die Ausfräsungen der langen Kantenteile, damit die Platine (hier: links vorne) plan aufliegt und keine Aussparungen braucht)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Holzrahmen1.jpg|thumb|150px|Einzelteile des Holzrahmens]] Der Holzrahmen besteht aus zwei verschiedenen Profilteilen:&lt;br /&gt;
&lt;br /&gt;
* 4x Kantenteil -lang- (98mm)&lt;br /&gt;
* 8x Kantenteil -kurz- (70mm)&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Holzrahmen2.jpg|thumb|150px|gefräste Kantenteile]] Die Profile haben die Kantenmaße: 20x20mm.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Profilschnittbogen.png|thumb|150px|Profilschnittbogen]] Um mir die Sache vor dem Fräsen besser vorstellen zu können, habe ich mir die Kantenteile aus Papier gebastelt.&amp;amp;nbsp;:-)&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Profilquerschnitt.png|thumb|150px|Profilquerschnitt]] Fräszeichnung&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Elektronik ==&lt;br /&gt;
&lt;br /&gt;
=== Konzept mit &#039;&#039;dimmbaren&#039;&#039; RGB-LEDs (verworfen) ===&lt;br /&gt;
&lt;br /&gt;
Zunächst habe ich versucht die Anzahl der LEDs gering zu halten, und für jedes Feld eine RGB-TrueColor-LED vorgesehen. Der Vorteil dabei ist, es ist nur eine LED zu bestücken und es müssen nur 3 Ausgangskanäle (statt 6) verwendet werden - aber diese müssen dann auch dimmbar sein. Und da fing das Problem an...&lt;br /&gt;
&lt;br /&gt;
Kurze Überschlagsrechnung für 162 dimmbare Kanäle (= 6 Seiten x 9 Felder x 3 LEDs) über 8Bit-SPI-Schieberegister (andere Ansteuermöglichkeit sehe ich nicht): [[Image:EZW PwmKonzept.png|thumb|300px|PWM-Konzept zur Ermittlung des zu versendenden Bytes aus der Tabelle der Helligkeitswerte]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;162 Kanäle&#039;&#039;&#039; verteilt auf 6 Platinen (nur &amp;quot;ganze&amp;quot; Schieberegister pro Platine) -&amp;amp;gt; 27Kanäle pro Würfelseite/Platine -&amp;amp;gt; 4 Schieberegister pro Seite -&amp;amp;gt; Summe: &#039;&#039;&#039;24 Schieberegister&#039;&#039;&#039; für den gesamten Würfel (wären theoretisch dann sogar 192 dimmbare Kanäle)&lt;br /&gt;
* damit die LEDs nicht flimmern sollten &#039;&#039;&#039;200Hz Wiederholrate&#039;&#039;&#039; gewählt werden (= 5ms Periodendauer).&lt;br /&gt;
* um vernünftige Farben mischen zu können, müssen diese mit &#039;&#039;&#039;10% Helligkeitsauflösung&#039;&#039;&#039; (lineare, zeitliche Auflösung der Periode; Wert 10% experimentell ermittelt) ansteuerbar sein.&lt;br /&gt;
* somit muss jede LED alle 500µs aktualisiert werden (5ms/10Steps=500µs). Bei 24 in Reihe geschalteten Schieberegistern, bleibt somit 20.8µs pro Schieberegister Zeit. (das entspricht also auch der Zeit pro rauszuschickendem Byte).&lt;br /&gt;
* -&amp;amp;gt; SPI-Baudrate: 500µs/24Byte -&amp;amp;gt; 2.6µs/Bit -&amp;amp;gt; &#039;&#039;&#039;384kBit/s&#039;&#039;&#039; (das wäre noch problemlos machbar)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergebnis&#039;&#039;&#039;: D.h. es bleibt dem System genau 20µs, um zu berechnen, welches Byte als nächstes per SPI zu verschicken ist. In dieser Zeit müssen die Helligkeitswerte von 8LEDs in eine binäre Information umgesetzt werden (z.B. LED0: 80%; LED1: 100%...). Die hierfür entwickelte Testroutine (Lookuptable, zur Erhöhung der Ausgabegeschwindigkeit...) benögte dafür 45µs auf dem Zielsystem (HCS12C32@50MHz) und ist damit &#039;&#039;&#039;um den Faktor 2.5 zu langsam&#039;&#039;&#039;. Nebenbei sollte ja noch andere Dinge erledigt werden, wie z.B. Züge berechnen usw. &#039;&#039;&#039;&#039;&#039;Damit ist das Konzept erst mal auf Eis gelegt.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konzept mit sechs Einzel-LEDs pro Feld ===&lt;br /&gt;
&lt;br /&gt;
Nachdem das DimmKonzept aus Timinggründen nicht umsetzbar war, plante ich die Umsetzung von 6 Einzel-LEDs pro Feld. Jede Seite hat 9x6 EinzelLEDs -&amp;amp;gt; pro Würfel sind das dann 324 zu verbauende LEDs, die über Schieberegister angesteuert werden und statisch leuchten sollen.&lt;br /&gt;
&lt;br /&gt;
Elektrische Features:&lt;br /&gt;
&lt;br /&gt;
* statische Ansteuerung der LEDs (kein Dimmen); LED Typ: Osram SmartLED 0603, da ausreichende Helligkeit bei kleinem Strom (1..5mA)&lt;br /&gt;
* Verwendung von 7 handelsüblichen 8Bit-Schieberegistern HC595 pro Seite (keine separate Treiberstufen oder spezielle LED-Treiberbausteine notwendig); der HC595 erlaubt an seinem EnableEingang durch eine PWM-Ansteuerung auch das Dimmen der angeschlossenen LEDs - allerdings alle auf einmal, so dass hiermit die Gesamthelligkeit des Würfels verringert werden kann.&lt;br /&gt;
* die 72 Taster werden ebenfalls über SPI-Schieberegister eingelesen (zeitgleich mit der Ausgabe der LED-Daten); HC165&lt;br /&gt;
* Piezopiepser zum Erzeugen von Hinweistönen&lt;br /&gt;
* es soll nur 1 Layout für alle 6 Seiten geben&lt;br /&gt;
* Kabelverbindung zwischen den 6 Seiten über Verbindung zur &amp;quot;Vorgängerseite&amp;quot; und &amp;quot;Nachfolgerseite&amp;quot;. Damit ergibt sich eine Kette über die 6 Seiten.&lt;br /&gt;
* Stromversorgung über Kabel; Anbindung von Akkus (über Step-up/-down-Konverter) bereits über Lötpads vorgesehen.&lt;br /&gt;
* Datenanbindung an PC über RS232-Schnittstelle (Zeitmessung; Darstellung auf PC)&lt;br /&gt;
* Eeprom zum Abspeichern der erzielten Zeiten&amp;lt;br&amp;gt;&lt;br /&gt;
* ausgesuchter Prozessor: HCS12C32 @50MHz, da Gehäuse mit LQFP48 relativ klein ist (verglichen mit anderen HCS12-Derivaten) und hierfür bereits eine Entwicklungsumgebung und ein Referenzdesign vorlag; Die Realisierung ist natürlich ebenso mit anderen Controllern möglich.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schaltplan/Layout&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;600&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:EZW Schematic.PNG|thumb|left|150px|Schaltplan]]&lt;br /&gt;
| [[Image:EZW Layout top.PNG|thumb|left|150px|Layout (top)]]&lt;br /&gt;
| [[Image:EZW Layout bot.png|thumb|left|150px|Layout (bottom)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;80%&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
== Technische Daten ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prozessor&#039;&#039;&#039;: Freescale HCS12C32 (50MHz); 5V; 32k Flash (12k benutzt); 2k RAM (600Bytes benutzt)&amp;lt;br&amp;gt;&#039;&#039;&#039;Schieberegister&#039;&#039;&#039;: 42x 74HC595 zur LED-Ansteuerung; 12x 74HC165 zum Einlesen der Taster&amp;lt;br&amp;gt;&#039;&#039;&#039;LEDs&#039;&#039;&#039;: Gesamt: 324 Stück (54Stück von jeder Farbe: weiß, blau, rot, orange, grün, gelb); Gehäuse: 0603&amp;lt;br&amp;gt;&#039;&#039;&#039;Taster&#039;&#039;&#039;: 72 Stück (12 auf jeder Seite)&amp;lt;br&amp;gt;&#039;&#039;&#039;Gesamtstromaufnahme&#039;&#039;&#039;: 50mA (LEDs auf 1% gedimmt)... 320mA (LEDs auf 100% gedimmt) bei 5V&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fertige Hardware&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Fotos der Elektronik&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;20&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Platine LED-Seite.jpg|thumb|150px|Platine: LED-Seite]] Jede Seite des Würfels besteht aus einer dieser Platinen. Die Außenseite ist mit Tastern und LEDs bestückt...&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Platine Prozessorseite.jpg|thumb|150px|Platine: Prozessor-Seite]] ... auf der Innenseite sitzt die Elektronik. Nur eine der sechs Platinen ist mit einem eigenen Prozessor ausgestattet - alle anderen tragen nur die Schieberegister.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Gesamtansicht1.jpg|thumb|150px|Gesamtansicht]] So sieht der Würfel aus, wenn er zusammengebaut ist.&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#f7f7f7&amp;quot; | &lt;br /&gt;
[[Image:EZW Gesamtansicht2.jpg|thumb|150px|Gesamtansicht]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausblick/Verbesserungsideen ===&lt;br /&gt;
&lt;br /&gt;
Statt der Verwendung von RGB-LEDs könnten auch 6 Einzel-LEDs verbaut werden, die allerdings nicht gedimmt werden, sondern mit verschiedenen zuschaltbaren Vorwiderständen angesteuert werden. Vorteil: LED in einem Gehäuse; kein &amp;quot;Versatz&amp;quot; bei unterschiedlichen Farben; zu prüfen, ob RGB-LED auch ohne Streuscheibe verwendet werden kann; sind Farben noch als solche erkennbar oder nur die 3 LED-Grundfarben?&amp;lt;br&amp;gt;Als Tasteralternative könnten eventuell auch Sensortasten in Frage kommen?! QT1106 ([http://www.qprox.com/assets/Downloadablefile/QT1106_-8IR0.07-16262.pdf &#039;&#039;&#039;Datenblatt&#039;&#039;&#039;]) (3,55€ bei Farnell); evtl. zwischen den LEDs angeordnet...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mikrocontroller-Software/Firmware ==&lt;br /&gt;
&lt;br /&gt;
Die Software besteht aus den Modulen/Teilen für:&lt;br /&gt;
&lt;br /&gt;
* RS232-Kommunikation (zum PC)&lt;br /&gt;
* SPI-Kommunikation (zu Tastern und LEDs) &amp;lt;br&amp;gt;&lt;br /&gt;
* Menü- und Ausgabefunktionen des Würfels (Set/Restore waypoint; History; Mischen; Prüfen ob Würfel gelöst ist; Animation beim Drehen; ShowCube)&lt;br /&gt;
* Funktionen zum Drehen des Würfels (L, R, U, D, F, B); &amp;quot;L&amp;quot; bedeutet z.B., dass die linke Seite des Würfels im Uhrzeigersinn gedreht werden soll;&amp;amp;nbsp; &lt;br /&gt;
** Welche Steine werden durch die Drehbewegung an welche Position gebracht? Um den Überblick zu behalten, helfen die unten aufgeführten Einteilungen/Nummerierungen der Steine/Seiten/Stickers.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;600&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:EZW Cube AufteilungFelder 3d.png|thumb|left|400px|Anordnung der Felder (oben, vorne, rechts); (unten, hinten, links)]]&lt;br /&gt;
| [[Image:EZW Cube AufteilungFelder.png|thumb|left|200px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusammengehalten wird die Software von einem Scheduler, der einen 10ms-Task und einen 100ms-Task zyklisch bedient. Der 100ms-Task wird als 500ms-Task benutzt (nur jeden 5.Durchgang ausführen), um folgende Aufgaben abwechselnd auszuführen: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* aktuelle Konstellation (wie ist der Würfel aktuell angeordnet; alle Stickerfarben) zum PC senden&amp;lt;br&amp;gt;&lt;br /&gt;
* Zustand aller Taster zum PC senden&amp;lt;br&amp;gt;&lt;br /&gt;
* Im CompetitionMode die aktuell laufende Lösungszeit an PC senden (Zeitmessung findet ja im Würfel selbst statt).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der 10ms-Task erledigt folgende Aufgaben:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Einlesen und Entprellen der Taster&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;quot;Umordnen&amp;quot; des Würfels in Folge der erkannten Tastendrücke (das erfordert relativ viel Aufwand, um die ganzen Sticker auf die neue Position zu &amp;quot;kleben&amp;quot;; kann durch Verwendung von Const-Arrays und generischen Funktionen sicher noch deutlich optimiert werden)&amp;lt;br&amp;gt;&lt;br /&gt;
* Menübehandlung (Brightness +/-; StartCompetition; Scramble; AnimationMode on/off; Undo/Redo; Set/Restore Waypoint; ResetCube)&amp;lt;br&amp;gt;&lt;br /&gt;
* Auswerten der vom PC empfangenen Kommandos (Grundhelligkeit; vom PC ausgelöste Drehbewegung...)&amp;lt;br&amp;gt;&lt;br /&gt;
* Animation der Drehbewegung/Drehrichtungsanzeige (abschaltbar; LEDs nacheinander einschalten, um dem Benutzer optisch die Drehrichtung anzuzeigen); hierzu ist hinterlegt, wie und wann jede LED für jede mögliche Bewegung geschaltet werden muss.&amp;lt;br&amp;gt;&lt;br /&gt;
* Ausgabe der SPI-Daten zum Schalten der LEDs&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download der Sourcen [[Media: EZW-Sourcen_Rev111.zip|Sourcen Rev.111]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PC-Software ==&lt;br /&gt;
&lt;br /&gt;
Die PC-Software dient nur zur Kontrolle und Simulation des elektronischen Würfels. Es können Drehbewegungen an den realen Würfel gesendet werden, die dieser dann ausführt und seine aktualisierten Aufkleberfarben zurückschickt. Zudem zeigt die PC-Software die Lösungszeit an.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:EZW Screenshot.png|thumb|left|200px|Screenshot PC-Software]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autosolver ===&lt;br /&gt;
&lt;br /&gt;
Als zusätzliches Feature war geplant eine Tutoriumsfunktion in die Hardware einzubauen. Nachdem ich mich etwas intensiver mit Konzept/Implementierung beschäftigt hatte, wurde mir schnell klar, dass das aus Ressourcengründen nicht autark in der Würfelelektronik abgehandelt werden kann (Laufzeit und/oder ROM/RAM-Bedarf). Darum beschäftige ich mich derzeit mit der Implementierung eines Autosolving-Algorithmus im PC, der aus jeder Situation heraus, den Zug vorschlägt, der einen Schritt in Richtung gelöster Würfel führt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es gibt Lösungsalgorithmen, die versuchen mit möglichst wenig Zügen den Würfel zu lösen. Derzeit geht man davon aus, dass jede Würfelpermutation mit max. 20 Zügen gelöst werden kann (bewiesen ist das Maximum mit 23 Zügen). Das ist aber alles sehr theoretisch und die vorgeschlagenen Züge sind vom Menschen unmöglich nachzuvollziehen. (Zunächst kommen einem die ersten 12..15 Züge vollkommen willkürlich vor, danach &amp;quot;fallen&amp;quot; dann alle Steine innerhalb weniger Züge in ihre richtige Lage).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um auch einen praktischen Nutzen aus dem Autosolver zu ziehen, habe ich mich entschieden die &amp;quot;Spiegelmethode&amp;quot; (erstmalig im Spiegel 1981 veröffentlicht) als Tutorium zu implementieren. Beschreibung der Methoden auf [http://www.mathematische-basteleien.de/zauberwuerfel.htm &#039;&#039;&#039;Mathematische Basteleien&#039;&#039;&#039;] und [http://www.kantenkreuz.de/ &#039;&#039;&#039;Kantenkreuz&#039;&#039;&#039;]. Oder für diejenigen, die sich das lieber als Youtube-Video reinziehen: [http://www.youtube.com/watch?v=mfvgeOarPBo &#039;&#039;&#039;Teil1&#039;&#039;&#039;], [http://www.youtube.com/watch?v=fVxn5geTOpM &#039;&#039;&#039;Teil2&#039;&#039;&#039;], [http://www.youtube.com/watch?v=bYsUfQ_KTxo &#039;&#039;&#039;Teil3&#039;&#039;&#039;].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Vorteil dieser Methode ist, dass es viele Zwischenstationen gibt, die der Reihe nach zu erreichen sind, und die nur ein paar wenige Züge auseinander liegen. Dabei sind intuitive Züge (die jeder mehr oder weniger intuitiv durchführen kann, ohne genau zu wissen, was er tut) mit &amp;quot;vorgefertigten&amp;quot; Zugfolgen zu kombinieren. Die vorgefertigten Zugfolgen sollen ja hiermit eingeübt werden. Für einen Autosolver stellen die, für Menschen intuitiven Züge, natürlich ein Problem dar. Irgendwie müssen diese in einen Algorithmus gepackt werden. Der einfachste Algorithmus hierfür ist &amp;quot;[http://www.geocities.com/jaapsch/puzzles/theory.htm#godal &#039;&#039;&#039;God&#039;s algorithm&#039;&#039;&#039;]&amp;quot;, der stur alle Möglichkeiten durchprobiert. Bei 10&amp;lt;sup&amp;gt;19&amp;lt;/sup&amp;gt; verschiedenen Permutationen (beim 3x3x3 Würfel) ist dies natürlich in endlicher Rechenzeit nicht möglich (bei 1Mio. Zügen pro Sekunde wären das 1.3Mio. Jahre Rechenzeit). Aber wenn nur 4..6 Züge in die Zukunft gerechnet werden soll, so kann das in &amp;amp;lt;1s errechnet werden (Werte meiner Implementierung). Und das reicht dann auch meist aus, um zur nächsten Zwischenstation zu kommen und hierfür Zugvorschläge zu machen. &amp;lt;br&amp;gt;Um die Zugfolgen dann mechanisch/motorisch einzuüben, wird ein Wegpunkt gesetzt, von dem aus dann die Folge geübt werden kann. Auf Knopfdruck springt dann der Würfel wieder in die abgespeicherte Stellung zurück. Mit dem mechanischen Zauberwürfel ist das &amp;quot;geringfügig&amp;quot; aufwendiger.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ausblick/Verbesserungsideen ===&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zur &amp;quot;Spiegel-Methode&amp;quot; könnte man auch ein Blind-Folding-Tutorium einbauen. Blind-folding kann ich nämlich selbst (noch?) nicht.&amp;lt;br&amp;gt;Beim Blind-Folding wird der Würfel verdreht, anschliessend darf der Würfel eine beliebig lange Zeit betrachtet werden und muss dann blind gelöst werden. Während des Lösungsvorganges darf der Würfel nicht mehr betrachtet werden (Augenbinde). Die Lösezeit ist die Summe aus Einprägephase und anschliessender Drehzeit. Beschreibung eines Blind-folding-Verfahrens auf [http://www.cubefreak.net/blindfoldcubing_guide.html &#039;&#039;&#039;CubeFreak&#039;&#039;&#039;]. ([http://www.youtube.com/watch?v=IBIXzA3BvFs &#039;&#039;&#039;Beispiel-Video&#039;&#039;&#039;])&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Probleme bei Planung und Durchführung ==&lt;br /&gt;
&lt;br /&gt;
Folgende Probleme sind bei der Planung/Erstellung aufgetreten:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mechanische Trägerkonstruktion&#039;&#039;&#039; für Würfel; wie halten die Platinen zusammen?; kann auf ein Gehäuse evtl. verzichtet werden? Wie wird vermieden, dass die überstehenden Taster beim Hinlegen des Würfels alle gedrückt werden? Wie kann der Würfel angefasst werden, ohne dass die Taster versehentlich betätigt werden?&lt;br /&gt;
* Liegen die Kanten- und Eck-&#039;&#039;&#039;LEDs nahe genug beisammen&#039;&#039;&#039;, so dass man diese auch als solche erkennt? &amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Platzbedarf für Bauteile&#039;&#039;&#039; ist sehr hoch &lt;br /&gt;
** Bauteile dürfen nur auf der Unterseite platziert werden&lt;br /&gt;
** Platine muss umlaufenden Rand von 6mm zur Befestigung haben, in dem keine Bauteile (Unterseite) platziert werden dürfen&lt;br /&gt;
* Stromversorgungs- und Kommunikations&#039;&#039;&#039;kabel stören beim Lösen&#039;&#039;&#039;... muss in der nächsten Musterphase durch Akkus und Funk (Zigbee/XBee ersetzt werden)&lt;br /&gt;
* das räumliche Vorstellungsvermögen wird gut geschult... besonders bei der Umrechnung der PC-internen Datendarstellung (Würfel ist beschrieben durch Position und Orientierung der Steine) in die Aufkleberdarstellung (Farben der einzelnen LEDs).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Fazit&#039;&#039;&#039;&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Der größte Nachteil an diesem Prototypen ist die schwierige Erkennung wo die Farben liegen, da diese zu weit im &amp;quot;Innern&amp;quot; entfernt von den Kanten liegen und somit nicht (ohne längere Übungszeit) auf einen Blick erkannt werden können. Beim mechanischen Zauberwürfel grenzen die farbigen Aufkleber direkt aneinander. Hier ist ein Abstand von 35mm bis zur Würfelkante.&amp;lt;br&amp;gt;Beim &amp;quot;normalen&amp;quot; Speedcubing werden Zugfolgen trainiert, die dann nur noch mechanisch/motorisch abgerufen werden, ohne bewusst darüber nachzudenken. Gleiches konnte ich nach einiger Zeit auch in Bezug auf das Drücken der Tastenfolgen beobachten - das geschieht ebenso &amp;quot;natürlich&amp;quot; wie beim mechanischen Würfel - hätte ich so nicht unbedingt erwartet.&amp;lt;br&amp;gt;Die Idee mit dem elektronischen Zauberwürfel habe ich zuvor im Internet noch nicht gesehen... naja, also wohl gute Idee gehabt, dachte ich mir. Bis ich zwei Monate nach Fertigstellung des Projekts, dieses Video fand ([http://www.youtube.com/watch?v=V4A_wfaScy4 &#039;&#039;&#039;Fentix&#039;&#039;&#039;]) - aber das spielt auch in einer ganz anderen Liga.&amp;amp;nbsp;:-)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;[[Image:EZW VideoScreenshot.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Der elektronische Zauberwürfel in Aktion&#039;&#039; ([http://www.youtube.com/v/G6SVoK5OG90 &#039;&#039;&#039;Video&#039;&#039;&#039;]) &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interessante Details zum Zauberwürfel/Speedcubing/Links:&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
* Anzahl der verschiedenen Stellungen beim 3x3x3-Würfel: 4.3x10&amp;lt;sup&amp;gt;19&amp;lt;/sup&amp;gt;; beim 4x4x4-Würfel: 10&amp;lt;sup&amp;gt;43&amp;lt;/sup&amp;gt;; beim 5x5x5-Würfel: 10&amp;lt;sup&amp;gt;78&amp;lt;/sup&amp;gt;.&lt;br /&gt;
* Der Weltrekord im Lösen des 3x3 Würfels liegt bei knapp unter 9s! ([http://www.youtube.com/watch?v=h6GnxKGicyg &#039;&#039;&#039;Video&#039;&#039;&#039;])&amp;lt;br&amp;gt;&lt;br /&gt;
* Optimal AutoSolver ([http://www.kociemba.org/cube.htm &#039;&#039;&#039;Webseite&#039;&#039;&#039;] von H.Kociemba)&lt;br /&gt;
* virtueller Würfel zum Selbstausprobieren ([http://gabbasoft.com/download.htm &#039;&#039;&#039;Win-Software&#039;&#039;&#039;])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;Kontakt&#039;&#039;&#039;: André;&amp;amp;nbsp; and_ref (at) canathome.de&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]] [[Category:Wettbewerb]]&lt;/div&gt;</summary>
		<author><name>212.59.42.162</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=GPS-Maus_Falcom_Navi-S-1&amp;diff=29082</id>
		<title>GPS-Maus Falcom Navi-S-1</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=GPS-Maus_Falcom_Navi-S-1&amp;diff=29082"/>
		<updated>2008-07-18T08:57:38Z</updated>

		<summary type="html">&lt;p&gt;212.59.42.162: /* PPS-Puls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel wird noch ergänzt.&lt;br /&gt;
&lt;br /&gt;
== Technische Daten ==&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Chipsatz:&lt;br /&gt;
|SiRF2&lt;br /&gt;
|-&lt;br /&gt;
|Versorgungsspannung:&lt;br /&gt;
|5V (3,5 bis 7V)&lt;br /&gt;
|-&lt;br /&gt;
|Schnittstelle:&lt;br /&gt;
|Seriell, 3,3 Volt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Anschlussbelegung ====&lt;br /&gt;
Wenn man das angebrachte Kabel abmantelt, findet man vier Adern vor. Die Belegung ist wie folgt:&lt;br /&gt;
{| border=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Gelb:&lt;br /&gt;
|V&amp;lt;sub&amp;gt;cc&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Grün:&lt;br /&gt;
|GND&lt;br /&gt;
|-&lt;br /&gt;
|Rot:&lt;br /&gt;
|TX&lt;br /&gt;
|-&lt;br /&gt;
|Weiß:&lt;br /&gt;
|RX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Um die Funktion und den Empfang der Module zu testen, ist das Programm SiRFDemo nützlich. Weiterhin kann man mit diesem Programm die Module konfigurieren.&amp;lt;br /&amp;gt; Firmwareupdates können mit dem Programm SiRFflash durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== Standardeinstellungen ==&lt;br /&gt;
Nach dem Einschalten werden folgende NMEA-Daten mit 38400 Baud ausgegeben: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$PSRFTXT,Version: 2.4.13.00-XTrac2.0.1-C3PROD1.0 0000003721 *17&lt;br /&gt;
$PSRFTXT,TOW:  0*25&lt;br /&gt;
$PSRFTXT,WK:   1255*66&lt;br /&gt;
$PSRFTXT,POS:  6378137 0 0*2A&lt;br /&gt;
$PSRFTXT,CLK:  96250*25&lt;br /&gt;
$PSRFTXT,CHNL: 12*73&lt;br /&gt;
$PSRFTXT,Baud rate: 38400  System clock: 24.553MHz*45&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Danach folgen nur noch RMC-Nachrichten.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
=== Schnittstelle ===&lt;br /&gt;
Die GPS-Mäuse senden in der Ausgangskonfiguration Daten im SiRF-Binary Protokoll. Man kann die Module aber auch auf NMEA mit beliebigen Baudraten umstellen. Einstellbare Datensätze sind GPRMC, GPGGA, GPGSA, GPGSV, GPGLL, GPVTG und GPMSS. Die Umstellung kann über das Programm SiRFDemo erfolgen. Unter den Einstellungen sind auch dei Datensätze User8, User9 und User10 aufgeführt. Beim JP7T versteckt sich hinter User9 der GPZDA-Datensatz.&lt;br /&gt;
&lt;br /&gt;
=== Power-Management ===&lt;br /&gt;
Im Auslieferungszustand, also mit XTrac-Firmware, wird das Advanced Power Management von SiRF unterstützt. Damit sind Positionsraten von 10 bis 180 Sekunden möglich. Weiterhin kann man dem Modul vorgeben, wie viel % der Zeit es eingeschaltet sein soll, und ob die Positionsrate oder der Stromverbrauch Priorität besitzt.&lt;br /&gt;
&lt;br /&gt;
Die JP7T-Firmware dagegen bietet die Modi Trickle-Power und Push-to-Fix an. In Trickle-Power sind Positionsraten zwischen 1 und 10 Sekunden möglich. Im Modus Push-to-Fix schaltet das Modul sich in einen Energiespar-Modus, Positionsupdates können über den Pin &amp;quot;RESET_N&amp;quot; angefordert werden. Die GPS-Maus muss dazu natürlich aufgebrochen werden, um an das Modul dranzukommen... Laut Datenblatt lohnt sich Push-to-Fix erst ab einer Positionsraten von etwa 600 Sekunden.&lt;br /&gt;
&lt;br /&gt;
Die Befehle zum Einschalten der Energiespar-Modi sind im Datenblatt beschrieben. SiRFDemo ist dazu ebenfalls in der Lage.&lt;br /&gt;
=== PPS-Timing ===&lt;br /&gt;
Die XTrac-Firmware unterstützt offenbar keinerlei Timing-Funktionen. Um diese nutzen zu können, muss die JP7T- oder JP7TH-Firmware aufgespielt werden.&lt;br /&gt;
==== SiRF Timing Message ====&lt;br /&gt;
Kann in SiRFDemo über Action / Set Message Rate eingeschaltet werden. Dort 0x34 PPS Timing auswählen und die Update-Rate auf 1 Sekunde einstellen.&lt;br /&gt;
==== GPZDA-Datensatz ====&lt;br /&gt;
Kann ausgewählt werden, wenn man das Modul in den NMEA-Modus umschaltet. Verbirgt sich hinter &amp;quot;User9&amp;quot;, nachdem man die JP7-T Firmware aufgespielt hat.&lt;br /&gt;
&lt;br /&gt;
==== 1-PPS-Puls ====&lt;br /&gt;
Weiterhin ist beim JP7T der 1-PPS-Puls  (1 PulsePerSecond) am GPS-Modul an Pin 29 abgreifbar. Laut Datenblatt hat der 1-PPS-Puls CMOS-Pegel und eine Länge von 100ms. Zeitreferenz ist die positive Flanke. Die Genauigkeit liegt unter 1µs im Vergleich zu einem Referenz PPS Puls.&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
Die Firmware wird mit dem Programm SiRFflash (Download siehe Weblinks) auf das Modul aufgespielt. Einstellungen: &amp;quot;Baud rate&amp;quot; auf 38400 Baud verringern, &amp;quot;Target boot mode state setting&amp;quot; auf &amp;quot;External&amp;quot;, &amp;quot;Programming options&amp;quot; auf &amp;quot;Erase whole chip&amp;quot;. Dann per &amp;quot;Browse&amp;quot; die neue Firmware auswählen und mit &amp;quot;Execute&amp;quot; den Update-Prozess starten. Das Flashen funktioniert recht zuverlässig.&lt;br /&gt;
==== JP7TX (XTrac) ====&lt;br /&gt;
Im Auslieferungszustand befindet sich eine SiRF XTrac-Firmware auf dem Modul. Die Module mit dieser Firmware nennen sich JP7TX, einen Hardware-Unterschied zu JP7T-Modulen gibt es laut Falcom nicht.&lt;br /&gt;
==== JP7T ====&lt;br /&gt;
Weiterhin ist eine Firmware für das JP7T vorhanden. Wenn man die Firmware aufspielt, werden beim ersten Start einige Debug-Meldungen ausgegeben. Teilweise verschwinden die von selbst, man kann sie aber auch über SiRFDemo abschalten. (Action / Set Message Rate, dort 0xFF auswählen, Rate auf 0s stehen lassen und &amp;quot;Send&amp;quot; klicken.) Die TTFF ist beim Cold Start etwas länger. Vereinzelt soll der Empfang damit besser als vorher sein.&lt;br /&gt;
==== JP7TH ====&lt;br /&gt;
Zusätzlich ist noch eine Firmware für Datenlogger vorhanden, genannt JP7TH. Die Firmware baut auf der des JP7T auf. Ein Handbuch dazu ist unter den Weblinks aufgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Im Modul befindet sich eine Patchantenne, darunter eine weitere Platine mit dem GPS-Modul Falcom JP7TX. Das Modul wird offenbar über einen Linearregler MIC5205-3.3BM5 mit 3,3 Volt versorgt. Außerdem befindet sich noch ein kleiner Akku auf der Platine, der als Backup-Versorgung für das SRAM dient.&lt;br /&gt;
&lt;br /&gt;
Auf der Platine ist noch Platz für einen Pegelwandler; Ob ein Umbau auf RS232 damit funktioniert wurde bisher noch nicht getestet. Vorgesehen ist dafür ein ICL3221. Zum Umbau müssen vermutlich die beiden 0-Ohm-Widerstände entfernt werden, anschließend müssen dann zusätzlich zum IC noch an 5 Stellen 100nF-Kondensatoren eingelötet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
*[http://www.mikrocontroller.net/topic/104240 ursprünglicher µC.net Thread &amp;gt;GPS - Empfänger günstig bei Ebay&amp;lt;]&lt;br /&gt;
*[http://www.falcom.de/support/software-tools/sirf/ falcom.de Downloadbereich, SiRFDemo, SiRFflash]&lt;br /&gt;
*[http://www.mikrocontroller.net/attachment/37464/komplett_-_aktuell_-_JP7.zip Zip-Archiv mit allen aktuellen Firmwares]&lt;br /&gt;
*[http://www.falcom.de/uploads/media/JP7_T_Family_1.04.pdf Datenblatt des verwendeten GPS-Moduls]&lt;br /&gt;
*[http://www.falcom.de/uploads/media/JP7-T_family_datalogger_functionality_v1.01.pdf Handbuch zur Datenlogger-Funktionalität]&lt;br /&gt;
*[http://www.gpsinformation.org/dale/nmea.htm] Verständliche Beschreibung des NMEA-Protokolls&lt;br /&gt;
*[http://gpsd.berlios.de/references.html] Links zu jeder Menge nützlicher Dokumente, insbesondere der Protokollbeschreibung von SIRF&lt;/div&gt;</summary>
		<author><name>212.59.42.162</name></author>
	</entry>
</feed>