Hallo liebe uC Gemeinde,
ich wollte mir gern ein Oszilloskop bauen. Prinzipiell müsste das doch
mit einem TI 92 und einer AD Wandler Platine möglich sein.
Mich würde mal interessieren, ob jemand so etwas schon gemacht hat.
Eine Möglichkeit wäre, einen Sensor für den TI zu kaufen und den danach
umbauen.
Welche Auflösung und Abtastrate wäre möglich ?
>Mich würde mal interessieren, ob jemand so etwas schon gemacht hat.
Na klar. Ich hab mir einfach nen 24-Bit Wandler mit 60 MHz ausm Katalog
ausgesucht, ihn auf ein Steckbrett gedrückt, paar Kabel drumrum
verteilt, und ein Basic-Programm (20 Zeilen) geschrieben. Funktioniert
einwandfrei. Kann damit problemlos 800 V auf 0.1 µV genau messen.
;-)
>Wieso denn nicht?
Natürlich kannst du einen 16Bit (oder gleich 24Bit) AD-Wandler
anschließen.
Allerdings steht der Aufwand dafür in keinen vernünftigen Verhältnis zum
Nutzen: um wirklich die vollen Bit auszureizen brauchst du einen guten
Wandler, ein sauberes Layout und passende Entstörung/Filter evtl. sogar
Abschirmung.
Und zum Schluß rechnest du die Daten wieder runter auf dein 240x128
Pixel Display - dafür hätten 7 Bit auch ausgereicht.
Aber es ist machbar. :)
@ Gast
60 Mhz ist nicht schlecht und 800V auf 0,1 uV genau. Nicht schlecht. Du
kannst einiges mehr als ich. Kannst mir ja mal einen Schaltplan posten.
Es gab einmal ein ähnliches Projekt mit einem Gameboy.
Ich bin ganz begeistert von meiner Idee.
Du kannst mit nem ASM-Programm den Link-port des Taschenrechners zu nem
ttl uart umfunktionieren. Nen Prozessor liest den adc aus und schiebt
die Daten per uart in den Taschenrechener.
@ Thomas Ekman (tkon),
also zu den ADCs kann ich nur sagen, das die von LT und TI 16 Bit
Auflösung haben und auch recht gut arbeiten und Filter sind kaum
notwendig für erste Tests.
Zu den 7 Bit ist zu sagen, dass der TI eine Zoom Fkt hat. Also könnten
Bereiche mit höherer Auflösung vergrößert werden.
>Du kannst mit nem ASM-Programm den Link-port des Taschenrechners zu nem>ttl uart umfunktionieren. Nen Prozessor liest den adc aus und schiebt>die Daten per uart in den Taschenrechener.
Guter Ansatz. Was hat der TI noch für Interfaces?
@Felix
Ich halte das Projekt für Dich als glatte Unterforderung.
Das ist einfach zu läppisch, einen 24-Bit Wandler mit 60 MHz an einen TI
Taschenrechner anzuschliessen.
Ich meine, Du solltest lieber eine Seifenkiste bauen, mit der man zu
Mond fliegen kann.
@ Thomas Ekman (tkon)
ok., für Tests würde 8 reichen. Man möchte aber auch ein wenig nutzen
haben.
und noch ein Nachtrag zum TI 92:
-> Motorola 68000 mit 10 MHz
-> 2 MB RAM, 900k nutzbar
@Felix
Nö, muss ich nicht.
Komisch, daß da Firmen mit Tektronix, LeCroy oder Agilent ganze
Entwicklerteams mit so trivialen Aufgaben befassen.
Aber wahrscheinlich haben die aber keine solch genialen Koryphäen.
Klaus wrote:
> Komisch, daß da Firmen mit Tektronix, LeCroy oder Agilent ganze> Entwicklerteams mit so trivialen Aufgaben befassen.> Aber wahrscheinlich haben die aber keine solch genialen Koryphäen.
Wieso komisch? Steht doch oben schon, warum es bei denen solche
Entwicklerteams gibt, weil "mal eben" 16/24 Bit messen nun mal kein
Pappenstiel ist.
Es ist völlig(!) schwachsinnig, mit mehr als 7 Bit aufzunehmen, wenn man
es nachher eh nur auf 128Bit (Y Achse) darstellen möchte. Das wurde hier
auch schon gesagt.
Hi Felix,
lass Dich von denen nicht runterziehn....
Ein ADC mit 16Bit Datenbus kann also 2^16=65535 verschiedene
Informationen liefern. Wenn Du also 5V in 65535 "Volt-Stücke" aufteilst
hat Du 5V/65535=79uV. 79uV ist ungefäh die Spannnung, die man an einem
EEG (Gehirnströme) abnehmen kann. Der technische Aufwand um so genau zu
messen ist gigantisch und kostet genauso viel -> gigantisch ....
Gruß
Marc
@Felix, @ Marc
> 79uV ist ungefäh die Spannnung, die man an einem EEG (Gehirnströme) abnehmen
kann.
Leute, das kann hinkommen, was notwendig ist:
Eure Gehirnströme abnehmen.
Dann schau' mer' mal, ob die im 16-Bit-Bereich liegen...
Da steht drin, wei viel Aufwand es ist, 24Bit zu messen:
http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1989-04.pdf
Bei 16Bit ist es zwar weniger Aufwand, aber da dein
Taschenrechnerdisplay eh nur 7Bit Auflösung hat, würde ich lieber einen
schnellen 8bit Wandler nehmen, und schauen, ob du das hinkriegst.
einen 16 Wandler zu nehmen bedeutet, die gesammte Vorverstaerkerstufe
16bit tauglich zu haben. 50kHz Analogbandbreite bedeutet irgendwas ab
250kSample. Also schau mal fuer Vorverstaerker, die das koennen.
Irgendwas wie einen LT6910-1, falls Faktor 100 genuegt.
Felix wrote:
> Ich hatte so an 16 Bit bei z.B. 50kHz gedacht. Der Proz. hat ja 10 MHz.
Da kann man schon sehen, dass du scheinbar überhaupt keinen blassen
Schimmer davon hast, was du machst.
Von den hiervor genannten 250kSPS und 16 Bit ausgegangen macht das mal
locker 500Kilobyte pro Sekunde an Datenwust, den du verwursten musst. Wo
willst du den hinspeichern? Ins RAM?
Außerdem hat ein Oszilloskop auch noch eine Trigger-Einheit und nicht
nur einen A/D Wandler.
@ Simon K. (simon),
ich war von einer Abtastfrequenz von 50kHz ausgegangen. Das macht
100kiloByte. Und 900k stellt das RAM zur Verfügung.
Die analoge Schaltungstechnik drumherum soll erst einmal nicht
berücksichtigt werden. Also nur ein ADC!
Die Frage ist: "Wie kann ich den ADC mit TI 92 verbinden?"
50kSample mit 16 bit entspricht einer Soundkarte. Der ADC hat die Daten,
einen ConversionStart und einen Read. Das kann ja nicht so schnell sein,
den parallel anzuschliessen. Standardmaessig verknuepft man die beiden
Controlsignale mit einer Adresse.
> ich war von einer Abtastfrequenz von 50kHz ausgegangen.
@ Felix
Schon mal was von Oversampling gehört? Vermutlich nicht, sonst würdest
du nicht so eine gequirlte Sch... schreiben. Um ein analoges
50kHz-Signal halbwegs vernünftig auf dem Oszi darzustellen, solltest du
es mit der 10-fachen Frequenz sampeln. Das wären bei 16 bit die
erwähnten 1MByte/s. Wie soll die winzige Prozessor in dem TI das
schaffen. Vielleicht schaust du dir auch mal die Daten kommerzieller
Oszilloskope an, insbesondere die Bandbreite. Bedeutet nämlich nix
anderes, als das ein 100MHz-Oszi ein Rechteck-Signal i.d.R. nur bis
ungefähr 10MHz sauber darstellen kann. Hier im Forum gibts ein bissel
was darüber zu lesen. Ach nochwas, die gängigen ADCs werden nur noch in
einem Gehäuse gefertigt, was ich als Hardcore-SMD bezeichne. Da ist nix
mehr mit selberlöten und bei hohen Frequenzen spielt auch das
Platinenlayout eine eintscheidende Rolle. Nur mal so als Denkanstoß.
Kopfschüttel...
@ Gast (Gast)
es geht nicht um die durch Mittelung und neuen Entscheidungsschwellen
gewonnenen Bits, sondern darum, ein Konzept zu finden, wie man mit dem
TI möglichst schnell und genau misst.
Warum Oversampling, wenn es doch 16 Bit ADCs gibt? Man braucht ja nicht
alle Bits auslesen. Für erste Tests würden schon 8 Bit reichen.
Mein Problem ist jetzt nicht das Abtasttheorem, sondern die
Schnittstelle.
Du hast gleich zwei Probleme:
1. Hast Du die Theorie hinter der ganzen Sache noch nicht verstanden,
das ist besonders Deinem letzten Posting überdeutlich zu entnehmen. OK,
das könntest Du mit etwas Lernwillen vielleicht noch nachholen, wenn da
nicht das zweite Problem wäre.
2. Hast Du dich leider als völlig lernresistent erwiesen. Die Leute
erzählen Dir immer wieder haarklein, warum Deine Idee nicht so einfach
funktioniert aber Du merkst einach nichts...
Ihr seid gemein, lasst ihn doch selber zur Überzeugung kommen, dass das
nicht so einfach geht.
Was du wahrscheinlich am dringendsten suchst sind Daten zum verwendeten
Protokoll. Hier steht fast alles:
http://www.ticalc.org/pub/text/calcinfo/tixx_guide.zip
Und dann musst du nur noch einen AVR programmieren, der die Daten aus
dem AD-Wandler einliest und zum TI rüberschiebt.
Hallo Felix
1. Nimm doch mal ein Blatt Papier und mal eine Sinusschwingung und eine
Sägezahnschwingung auf, etwa 10cm breit.
2. Dann malst Du auf jede dieser Kurven im Abstand von ca. 1cm zehn
Punkte.
3. Jetzt überlegst Du Dir, welche Punkte weggelassen werden können, um
noch eindeutig erkennen zu können, daß es sich um einen Sinus bzw.
Sägezahn handelt.
Noch ein Tip: Mit dem Oversamling will man nicht die Auflösung des
AD-Wandlers (Bits) erhöhen, sondern die Auflösung im Zeitbereich.
Mfg.
Was soll denn nicht gehen? Natuerlich geht es. Mit 50kSample kann man
gerade noch einen reinen Sinus von 15kHz oder so erkennen. Dass dieser
und einer mit 85kHz gleich aussehen ist nicht wichtig hier. Vielleicht
ist der Frager ja mit 1kHz zurieden ?
Der TI92 ist schon ein toller Taschenrechner. Aber es ist wirklich
Blödsinn den als Oszilloskop mißbrauchen zu wollen. Erstens ist das
Display viel zu klein, zweitens ist die Schnittstelle viel zu langsam
(der große Stecker ist nur für ein externes Display für Lehrer) und
drittens müsste man in Assembler irgendwas schreiben um die Werte vom
ADC anzuzeigen oder man muss einen Mikrocontroller dazwischenschalten,
der die Daten direkt in etwas umwandelt, was der TI92 einlesen kann.
(Man kann ja zwischen zwei TI92 Vektoren und Matrizen übertragen.)
Also Felix, wenn du sowas wirklich machen willst, dann nimm einen
ATmega8, der hat einen 10-Bit ADC eingebaut und den gibt es im DIL
Gehäuse. Einfach 5V als Versorgnungsspannung und du kannst Werte im
Bereich zwischen 0 und 5V einlesen. Für höhere Spannungen nimm einen
Spannungsteiler. Wie man mit dem ATmega8 Werte einliest, findest du hier
in der Artikelsammlung oder bei Google.
Dann guck dir mal an, wie kompliziert das Datenprotokoll ist, das die
TI92 untereinander verwenden. Wenn es nicht besonders kompliziert ist,
dann schicke die Daten als Matrix. Wenn du das Format nicht rausbekommst
dann installier Fargo II und zeig die Daten an indem du die einfach in
den Bildspeicher schreibst. Ist im Prinzip nicht besonders kompliziert,
wenn man Ahung von Assembler hat.
dieser thread ist wirklich toll, besonders schön und unterhaltsam finde
ich, wie sämtliche ironie von felix abperlt, da er nicht einmal
beissenden spott als solchen erkennt.
einfach köstlich.
übrigens einen 16-bit/50kHz adc an den ti zu knüppern ist pillepalle.
ich konstruiere gerade einen kernspintomographen mit einem ti92, ;-)
Wenn das Ganze überhaupt was taugen soll, dann muss als erstes mal ein
A/D Wandler her, der selber mit einer fest einstellbaren Rate die
Samples nimmt. Wird das per Software gemacht, dann gibt es Jitter bei
den Samplepunkten. Die nächste Hürde ist dann ein Trigger der was taugt.
Vielleicht eine weitere Moeglichkeit. Ich habe ein einfach zu bauendes
Oszilloskop entwickelt; umfangreiche Infos zum Design etc. hier:
http://www.instructables.com/id/LCS_1M_A_Full_Featured_Low_Cost_Hobby_Oscillosc/
und
http://www.pdamusician.com/lcscope/
Ist natuerlich kein High-End-Geraet, das mit einem Tektronix-Oszi oder
so auch nur annaehernd konkurrieren koennte, aber die Sample-Rate (1
MS/sec) und Bandbreite (400 kHz) erfuellen die originalen Anforderungen
in diesem Thread; bis ca. 150 kHz kann man sinnvoll Signale darstellen.
Zwei Kanaele, voller analoger Frontend (Engangsverstaerker) mit
softwaremaessig einstellbarer Verstaerkung, etc.
Das Oszi hat eine einfache serielle Schnittstelle (19200 baud, aber kann
man einfach auch langsamer laufen lassen), die uC-Firmware ist Open
Source, es sollte also technisch ohne weiteres moeglich sein, das Geraet
vom TI-Rechner her zu steuern anstatt vom PC. Keinerlei
Mindestanforderungen an das steuernde Geraet (PC oder Rechner etc.),
also macht ein langsameres Geraet bloss die Anzeige langsamer, aber
funkionieren tut's trotzdem.
Wolfgang