Inhaltsverzeichnis:

EZProbe, ein EZ430-basierter Logiktastkopf - Gunook
EZProbe, ein EZ430-basierter Logiktastkopf - Gunook

Video: EZProbe, ein EZ430-basierter Logiktastkopf - Gunook

Video: EZProbe, ein EZ430-basierter Logiktastkopf - Gunook
Video: TI eZ430 2024, Juli
Anonim
EZProbe, ein EZ430-basierter Logiktastkopf
EZProbe, ein EZ430-basierter Logiktastkopf

Dies ist ein einfaches Logiktastkopfprojekt basierend auf dem TI EZ430 Dongle. Ich habe im September 2010 ein kostenloses Angebot für ein paar ez430s von TI genutzt. Sie sind sehr praktisch und machen Spaß beim Ausprobieren kleiner Codeschnipsel und beim Beobachten des Blinkens der LEDs. sie lagen seitdem um meinen Schreibtisch herum und ich muss mir was für sie einfallen lassen. und ich möchte verhindern, dass die Leute kommen und meinen "Memory Stick" ausleihen. Nun, dies ist kein Memory-Stick, 16-Bit-MCU mit Mehrkanal-ADCs, ausreichend 2K-Programmierspeicher und läuft bis zu 16Mhz. alles verpackt mit der Debugging-Programmierschnittstellenplatine in einem schönen USB-Gerätepaket. Mein Hauptdesignziel ist es, meine Eingriffe auf das Original ez430 zu beschränken. dadurch, dass ich es physisch nicht zu sehr ändern möchte und seine Programmier- / Debugging-Funktion für andere Target-Board-Projekte beibehalten möchte. all dies dient gleichzeitig zusätzlichen nützlichen Zwecken. dies ist wie immer ein linuxprojekt, ich hatte nach bestem wissen darauf geachtet, Vorkehrungen zu treffen, damit es unter windows gebaut werden kann. Ich habe jedoch nicht die Zeit und die Ressourcen, um alles unter Windows auszuprobieren. Die meisten meiner Elektronikprojekte werden auf sehr kleinen Steckbrettern durchgeführt und ich arbeite normalerweise auf engstem Raum (Küchentisch, halb geliehener Schreibtisch usw.). Es gibt viele Fälle, in denen ich die Logikpegel der Schaltung überprüfen muss, und ich habe ein Multimeter (Größe eines Ziegelsteins) verwendet, um die Dinge zu überprüfen. Es nervt mich immer, da meine Projekte viel kleiner sind als mein Multimeter und ich fand, dass es mir immer im Weg steht. Ich brauche eine Alternative, eine kleine Logiksonde reicht aus. der ez430 ist perfekt für diese aufgabe. Zunächst ist es bereits wie eine Sonde geformt, ich muss nur einen Nagel und einige LEDs hinzufügen. Wie ich bereits erwähnt habe, möchte ich dieses Projekt einfach und zerstörungsfrei machen. und ich habe das bereits vorhandene genutzt. Anstatt das Projekt auf einer Platine / Pref-Platine zu bauen, baue ich dies auf einer Zielplatine msp430f2012 und verwende die 14-poligen Header-Durchgangslöcher als meinen Prototyping-Bereich. Hier gehen die kleinen LEDs hin. Ich möchte keine Löcher in das Kunststoffgehäuse bohren, ich möchte nicht zu viele Drähte verlegen oder zusätzliche Kontaktpunkte hinzufügen. Alles, was ich brauche, ist ein Tastkopf-IO-Kontakt und ein Tasteneingang für die Funktionsauswahl sowie GND und VCC. der usb-anschluss sieht für diese aufgabe perfekt aus. Ich werde die Sonde über den USB mit Strom versorgen (die Programmierschaltung regelt ein Potenzial von etwa 3 V für mich) und die D + und D- USB-Anschlüsse für meine Sonde und meinen Schalter verwenden. Da das ez430 ein Slave / Client-Gerät ist, macht es bei der Initialisierung nichts außer einem Pull-up auf D + (um anzuzeigen, dass es sich um einen "Hi-Speed" -USB-Stick handelt). Ich verwende das schwebende D- als meine Sonde io und D+ als meinen taktilen Tastereingang (ich muss dafür nicht einmal einen Pull-up-Widerstand einrichten, er ist bereits vorhanden) zusätzliche Informationen finden Sie auch hier.

Schritt 1: Funktionen und Anwendung

Funktionen und Anwendung
Funktionen und Anwendung

Features * Versorgung vom Stromkreis über USB-Anschluss * 3 Betriebsarten wechselnd zwischen Logiklesen, Impulsausgang, PWM-Ausgang * langer Tastendruck (ca. 1,5 Sek.) dreht durch die 3 Betriebsarten * p1.0 original grüne LED als Modusanzeige, aus - Sonde, Ein - Ausgang, Blinken - PWMLogiksonde * Logiksonde Rot - Hi, Grün - Niedrig, Keine - Floating * Logiksonde Rot / Grün blinkt bei kontinuierlichem Puls liest > 100 Hz * 4 gelbe LEDs zeigen erkannte Frequenzen in 8 Schritten an, blinken gelb High-Range anzeigen (dh Schritt 5-8) * zeigt erkannte Pulsfrequenzen für 100 Hz+, 500 Hz+, 1 kHz+, 5 kHz+, 10 kHz+, 50 kHz+, 100 kHz+, 500 kHz+ * für nicht kontinuierliche Einzelimpuls-Bursts bleiben die roten / grünen LEDs an und danach Impulszählungen werden inkrementell auf den LEDs angezeigt, zählt bis zu 8 Impulsekontinuierlicher Impulsausgang, Frequenzeinstellung * angezeigt durch p1.0 grüne Original-LED leuchtet * 4 gelbe LEDs zeigen die Ausgangsimpulsfrequenzen in 9 Schritten an, gelbe blinkende Anzeigen zeigen einen hohen Bereich an (dh Schritt 5-8) * Pulsfrequenzen Ausgang für 100hz, 500hz, 1khz, 5khz, 10khz, 50khz, 100khz, 500khz, 1mhz * kurzer Tastendruck dreht die 9 verschiedenen Frequenzeinstellungen.kontinuierlicher Impulsausgang, PWM-Einstellung * angezeigt durch p1.0 ursprüngliche grüne LED blinkt * wie zuvor Betriebsmodus, außer dass die PWM-Werte anstelle der Frequenz angezeigt (und eingestellt werden) * 4 gelbe LEDs zeigen die Ausgangs-Pwm-Prozentsätze in 9 Schritten an, blinkende Gelbs zeigen den hohen Bereich an (dh Schritt 5-8) * PWM-Prozentsätze für 0%, 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5%, 100% * Kurzer Tastendruck dreht die 9 verschiedenen PWM-Einstellungen bestehen aus zwei Teilen, in denen sie über ein Paar USB-Anschlüsse verbunden sind. das linke Seitenschema zeigt Ergänzungen zum EZ430-Dongle mit einem F2012-Targetboard. das rechte Seitenschema ist der logische Tastkopf und soll von Grund auf neu aufgebaut werden.

Schritt 2: Teileliste und Konstruktion

Teileliste und Konstruktion
Teileliste und Konstruktion
Teileliste und Konstruktion
Teileliste und Konstruktion

Teileliste * ti ez430-f2013 (Programmierteil verwenden) * ti ez430 f2012 Zielplatine * LEDs 1,2 x 0,8 mm, 4 gelb, 1 rot, 1 grün * ein Nagel, ca. 3/4 Zoll, flacher Kopf * eine taktile Taste * Kappe von 1 Gramm Sekundenkleber (Sekundenkleber selbst wird auch benötigt) * USB-Stecker (PC-Seite) * Kabelkonstruktion Ich verwende die msp430f2012-Zielplatine anstelle der f2013-Zielplatine, die nur mit dem ez430-Dongle geliefert wird, weil ich sie habe ein paar davon. Wenn Sie das ursprüngliche f2013-Zielboard verwenden möchten, müssen Sie einen sehr kleinen Teil des Codes neu schreiben, der adc verwendet, um den Floating-Zustand zu erkennen. der f2013 hat einen fortschrittlicheren 16-bit-adc anstelle der 10 bit, die ich in meiner konstruktion verwende. Sie müssen eine feine Lötspitze und einen Lötkolben (oder eine Station) mit Temperaturregelung verwenden. Ich kann mir nicht vorstellen, dass man die LEDs mit einem normalen Bügeleisen löten kann. Die Art und Weise, wie ich es gemacht habe, ist, zuerst die Header-Pads zu verzinnen und dann ein Paar feine Hochtöner zu verwenden, um die SMD-LEDs zu platzieren. Nach dem Ausrichten der roten und gelben LEDs verzinne ich ein Bein eines 1/8-Watt-Widerstands und löte diesen auf die Platine, ein Ende geht auf eine gemeinsame Masse. die grüne LED geht zuletzt. es ist sehr eng und Sie möchten nur genug Lötmittel auftragen, um die Dinge zusammenzukleben. auch Flussmittel ist ein Muss. Verwenden Sie ein Multimeter, um Ihre Gelenke zu testen. Sie müssen dann den Knopfdraht und den Sondendraht überbrücken. Ich verwende Cat5e-Abschnitte, aber alle Drähte mit hoher Dicke reichen aus. Wie im Schaltplan und im Bild gezeigt, verlaufen sie von der Zielplatine zum USB-Anschluss. Es wäre schön, wenn ich einen kleinen Stecker finden könnte, damit sie nach Belieben gelöst werden können, aber das reicht für den Moment.

Schritt 3: Sondenkopfkonstruktion

Sondenkopfkonstruktion
Sondenkopfkonstruktion

Unten sehen Sie die Bits, die ich verwendet habe, um die Sondenkopfbaugruppe zu "konstruieren" (Sekundenkleber). Meine Idee ist, es auf einen USB-Anschluss aufzubauen, damit es für Firmware-Updates abgenommen werden kann. Ich habe Sekundenkleber verwendet, um alles zusammenzusetzen. der "nagel" ist direkt auf einen taktilen knopf geklebt für sehr schnelle modusumschaltung und frequenz / pwm-einstellung. Vielleicht möchten Sie es anders machen, wenn es für Sie nicht funktioniert. Es wird etwas wackeln vom taktilen Knopfmechanismus, in einem Design habe ich eine Büroklammer verwendet, um das Wackeln zu begrenzen, und bei einem anderen Sondenkopf habe ich die Kappe vom Sekundenkleber verwendet, um die Nagelposition zu sichern. Sie können auch einen Schutzwiderstand / eine Diode hinzufügen. Der USB-Anschluss hat diese Anschlüsse, (1) 5V, (2) D-, (3) D+ und (4) Gnd, der D- wird mit dem Nagel verbunden, der D+ wird mit dem Tastknopf verbunden, der andere Ende des Tastknopfes muss mit Masse verbunden werden. Diese Probe-auf-Stecker-Strategie gibt mir viele Flexibilitäten. Mit der Stromleitung am Tastkopf können Sie die Schaltung erweitern und dieses Projekt in etwas anderes verwandeln, indem Sie einfach den "Kopf" und die Firmware ändern, z. kann ein voltmeter, ein tv-b-gone (mit Transistor und batterie am Sondenkopf) usw. sein. Ich würde als nächstes ein weißes LED-"Kopflicht" hinzufügen.

Schritt 4: Implementierungshinweise und alternative Anwendungen

Implementierungshinweise und alternative Anwendungen
Implementierungshinweise und alternative Anwendungen

Implementierungshinweise

* wdt (Watchdog-Timer) wird verwendet, um das Tasten-Timing (Entprellen und Drücken-n-Halten) bereitzustellen, auch um die Beleuchtungs-LEDs zu pulsieren. Dies ist erforderlich, da LEDs keine Begrenzungswiderstände haben und nicht ständig eingeschaltet werden können. * dco-Takt auf 12 MHz eingestellt, um 3 V-Zielschaltungen aufzunehmen. * adc wird verwendet, um zu entscheiden, ob wir an einem Floating-Pin testen, Schwellenwerte können über den Quellcode angepasst werden. * Die Frequenzbestimmung erfolgt durch Einstellen von timer_a auf Erfassung für die Flankenerkennung und Zählen des Impulses innerhalb einer Periode. * Der Ausgabemodus verwendet den kontinuierlichen Modus Timer_a, Ausgabemodus 7 (Set/Reset), sowohl Erfassungs- als auch Vergleichsregister (CCR0 und CCR1), um eine Pulsweitenmodulation zu erreichen.

Quellcode

Dies sind nur Anweisungen für Linux, meine Umgebung ist Ubuntu 10.04, andere Distributionen sollten funktionieren, solange Sie die msp403-Toolchain und mspdebug ordnungsgemäß installiert haben.

Sie können ein Verzeichnis erstellen und die folgenden Dateien darin ablegenKlicken Sie, um ezprobe.c herunterzuladen

Ich habe kein Makefile zum Kompilieren, ich verwende ein Bash-Skript, um die meisten meiner Projekte zu kompilieren.

oder Sie können Folgendes tun

msp430-gcc -Os -mmcu=msp430x2012 -o ezprobe.elf ezprobe.c msp430-objdump -DS ezprobe.elf > ezprobe.lst msp430-objdump -h ezprobe.elf msp430-size ezprobe.elf

Um die Firmware zu flashen, schließen Sie Ihren ez430-Dongle an und machen Sie

mspdebug -d /dev/ttyUSB0 uif "prog ezprobe.elf"

alternative Anwendungsmöglichkeiten

Aufgrund der Flexibilität dieses Designs kann die ezprobe leicht ihre Rolle wechseln und wird durch einen schnellen Flash-Download zu einem anderen Gerät. Hier sind einige Ideen, die ich in Zukunft umsetzen möchte.

* Servotester, diesen habe ich zum Download geklickt ezprobe_servo.c * Batterietester / Voltmeter, bis zu 2,5 V oder höher mit Widerstandsteiler auf alternativem Tastkopf * tv-b-gone, mit IR-LED-Sonde- Kopf * Pong-Clock, mit 2 Widerständen TV-Out Sondenkopf

Fehlerbehebung

* man braucht wirklich ein Temperiereisen/-station und feine Lötspitzen, die LEDs (alles zusammen) sind kleiner als ein Reiskorn. * Flussmittel verwenden. * Seien Sie darauf vorbereitet, die D- und D+-Kabel während des Debuggens zu trennen, da sie den normalen USB-Betrieb stören können. Wenn Sie Firmware auf das geänderte Gerät schreiben, geben Sie diese beiden Pins nicht aus, wenn Ihre Firmware startet. und wenn Sie dies tun, können Sie keine Firmware mehr herunterladen (natürlich können Sie sie in diesem Fall ablöten). Wenn Sie kleine Stecker finden, die in das USB-Gehäuse passen, verwenden Sie sie. * Die Stromversorgung für die Zielplatine erfolgt über einen Regler von der Programmierplatine, der wiederum 5 V von USB nimmt. Wenn ich die ezprobe in der Schaltung verwende, habe ich normalerweise mein Zielprojekt mit 3 V von zwei 1,5 V AAAs versorgt. Dies ist ausreichend, aber das Projekt muss auf oder unter 12 MHz bleiben. 16 MHz dco benötigt volle 5 V Quellenleistung. * Ich habe keinen Begrenzungswiderstand oder eine Zenerdiode verwendet, um die Sonde zu schützen. Sie können dies tun.

Empfohlen: