Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Kassetteninterface, Frage » Themenansicht

Autor Thread - Seiten: -1-
000
08.05.2014, 15:55 Uhr
Micha

Avatar von Micha

Aktuell bin ich in der Vorbereitungsphase, an einem "Kassetteninterface ohne Kassettenrecorder" für einen KC85/3 zu experimentieren. Bitte nicht nach Sinn oder Unsinn fragen - es ist ein Hobbyprojekt ;-)

Ich hab einen KC85/3 ohne jegliches Zubehör, die Kassettenrecorder die ich bisher auftreiben konnten haben alle Altersmacken oder funktionieren garnicht mehr. Jetzt hab ich mir überlegt dass es mal eine nette Sache wär, einen "Kassettenrecorder" auf Microcontroller-Basis zu stricken. Ohne Kassette aber mit Firmware die dem KC einen angestöpselten Recorder vorgaukelt.

Was die Programmierung des Atmel angeht trau ich mir das zu. Zum Protokoll gibt es dank Volkerp's Hucki Seite auch einiges nachzulesen. Woran es mir mangelt ist wirklich tiefgründiges Verständnis für Elektronik, die über reine Digitaltechnik hinausgeht. Da besitze ich einfach zu wenig theoretisches Wissen. Mir ist zumindest klar, dass ich I/O Pins so eines Atmega nicht einfach direkt an die Read/Write Pins der Kassettenbuchse des KC anschliessen kann, da das kein TTL Signal ist.

Habe mir aus verfügbaren Schaltplänen mal versucht zusammenzureimen, wie ich das wahrscheinlich verschalten muss - ohne wirklich zu verstehen warum. Würde mich über Kommentare seitens der Analogelektronik-Versteher sehr freuen ;-)

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
08.05.2014, 16:39 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Schau Dir mal Kingsteners AVR-Lösung an: http://hc-ddr.hucki.net/wiki/doku.php/z9001:erweiterungen:sdcard2

Es gibt bereits die Richtung AVR-> KC (Kassetteninterface)
Eine TAP-Datei wird als Audiosignal ausgegeben.

Das wird in dem Projekt als "Bootloader" genutzt. Auf der Seite findest du Schaltbild und auch ältere Quelltexte für den AVR.

Das Digitalisieren der Audiosignale vom KC -> AVR, also das Erzeugen z.B. von TAP-Dateien, macht das Programm KCLOAD. http://hc-ddr.hucki.net/wiki/doku.php/programme:kassetten_faq . Das ist ein Pascal-Programm, aber vielleicht kannst Du diesem Programm Anregungen (und vor allem diverse Kleinigkeiten) entnehmen, wie das Audiosignal aufbereitet werden muss.

ALTERNATIV: Du kannst auch die WAV-Dateien direkt samplen ;-) Oder als RLE-Dateie abspeichern, so wie es Kassettentools für den ZX Spectrum tun. Hier werden die Zeiten zwischen den Nulldurchgängen gespeichert, nicht die komplette WAV-Datei mit 8 oder 16 Bit Samplingbreite. Für unsere Zwecke reicht hier 1 Bit
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 08.05.2014 um 16:40 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
08.05.2014, 20:54 Uhr
Micha

Avatar von Micha

Vielen Dank für den Link, Volker!

Da steckt einiges an Informationen drin die mir sicher weiterhelfen werden. Dennoch hab ich eigentlich was anderes vor: ich möchte kein Modul basteln das das Kassetteninterface nur als Bootloader benutzt sondern tatsächlich ein Ding in Seifendosen-Größe, das als "Kassettenrecorder" fungiert - also nix User-Port sondern wirklich nur Datenaustausch per Kassettenrecoder-Buchse. Und nachbauen nach vorliegender Schaltung schon garnicht.
Mit anderen Worten: richtig schön ineffizient (was Übertragungsrate angeht) und das Fahrrad komplett neu erfinden. Bzw. mit anderen Worten: Hobbyprojekt, mit dem primären Zweck selber was zu lernen.

Trozdem werd ich mir die Unterlagen auf jeden Fall genau anschauen.
Was jetzt immer noch offen bleibt - ob die in 000 skizzierte Schaltung funktionieren könnte - insbesondere zunächst interessant ob der Ausgang der Kassettenbuchse mit dieser Schaltung beim Atmega sauber einen flankengesteuerten Interrupt auslösen kann. Muss ich wohl probieren... bzw. mich noch ein wenig gedulden, hab leider keine 4,7 nF Kondensatoren in der Bastelkiste.

Die Schaltungen für beide Datenrichtungen haben ja irgendwie etwas Ähnlichkeit, kann ev. jemand hier mal paar Hinweise geben was der Sinn dieser Konfigurationen von Widerständen und Kondensatoren ist (Google-Stichwort würde reichen)?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
08.05.2014, 22:56 Uhr
Bert



Hallo Micha,

Dein Projekt klingt spannend :-)
Meine Fragen dazu:
Wie kommen die Programme in den AVR?
Wieviele Programme passen in den AVR?
Kommt da noch eine SD-Karte und eine 7-Segmentanzeige ran, damit man vorspulen kann und den Zählerstand sieht? (Wäre ein nettes Gimmick :-)

> Sinn dieser Konfigurationen von Widerständen und Kondensatoren
Das sind Pegelwandler/Filter.

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
09.05.2014, 08:21 Uhr
oldbits




Zitat:
volkerp schrieb
.....

Eine TAP-Datei wird als Audiosignal ausgegeben.

Das wird in dem Projekt als "Bootloader" genutzt....




Hallöchen,

dort wird damit das Terminalprogramm in den KC geladen, mit dem Bootloader hat dies nichts zu tun. In der letzten Firmware gibt es auch als Gimmick den Befehl LT (load tape), damit können alle Programme so geladen werden. Da sieht man dann deutlich den Unterschied der Ladezeiten ;-)
--
lg
oldbits
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
09.05.2014, 08:23 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Hi Micha,
das ist mir klar, dass du einen "digitalen" Rekorder bauen willst.
Deshalb habe ich versucht, 2 Möglichkeiten dafür zu skizzieren:

Variante 1: 1-bit-Digitalisierung: einfach, funktioniert bei allen Rechnern, mit allen Aufzeichnungsvarianten wie diversen Turbo-Ladern etc.

Variante 2: Analyse des Audiosignals und Speicherung als TAP-Datei. Das muss neu programmiert werden, Hinweise zum Format kannst Du den KCLOAD-Quellen entnehmen. Wiedergabe (zum KC) erfolgt durch Konvertierung der TAP-Dateien in Audiosignale. Das ist schon komplett als AVR-C-Quellcode vorhanden (Kingsteners SD-Projekt)

Variante 3: alles beides :-)
Aufnahme als 1-bit-Digitalisierung, Wiedergabe von solchen Dateien und auch Wiedergabe von TAP-Dateien.
Die Konvertierung der 1-bit-Digitalisierung kann dann z.B. am PC erfolgen.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 11.05.2014 um 16:32 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
10.05.2014, 04:25 Uhr
Hobi



Hi Micha,

Das Problem der Digitalisierung ist nicht ganz trivial. Ein einfache Schaltung aufzubauen, mit der man die Nulldurchgänge zählen kann ist meiner Meinung nach wenig geeignet um Kassettensignale zu kopieren. Interessant wird wenn man "verwaschene" Signale erkennen möchte.

Nimmt man das Signal direkt vom KC, reicht eine einfache Schaltung aus. Hin und wieder wird man aber trotzdem Fehler bei der Aufzeichnung haben ("knacken" in der Leitung...). Sollte das ausreichen, ist die 1-bit Digitalisierung wahrscheinlich eine gute Wahl.

Vielleicht bin aber übers Ziel mit meinem Kommentar hinausgeschossen. Bei meinen Digitalisierversuchen wurden allerlei Störungen eingestreut, von 50Hz, über die Strassenbahnen, bis zu CPU Aktivitäten war alles dabei. Signale, die so nicht auf dem Band waren, haben meinen Nulldurchgangszähleralgorithmus gestört. Sprich das Digitalsignal war schlechter als das ursprüngliche Analogsignal. Deswegen bin ich dann zum PC gewechselt. Das hat die meisten Probleme (von 50Hz abgesehen) gelöst.

Bei den alten Kassetten ist das Nutzsignal schwächer als vor 20 Jahren, d.h. Störungen haben also einen gößeren Einfluss. Am besten man schaut sich das Spektrum mal an und versucht mit Low-HighPass-Filtern herum zuexperimentieren. Speziell ein HighPass 500Hz finde ich sehr sinnvoll. Die exakten Werte der Filter, Dämpfung etc kann man experimentell bestimmen.

Ich habe als kleine Erläuterung ein Bild angefertigt, dass mein Standardproblem relativ gut beschreibt. Für das menschliche Auge ist das Signal an sich gut zu erfassen. Als Mensch weiss man zwischen welchen Punkten das "ursprüngliche" Signal zu messen ist. Nur wie sagt man es dem Computer?

Im grossen und ganzen würde ich persönlich keinen ADC mehr bauen, es gibt Geräte die das bereits besser können, ausgenommen das Ziel ist es einen ADC aufzubauen. Ich für meinen Teil würde erstmal die SW schreiben und wenn das funktioniert ggf die HW wechseln.


Die Bilder:

(1) Standardproblem der Kassettendigitaliserung, Gleichstromanteil, Niederfrequente Störungen


Problem wie oben, nach 500 Hz HighPass

Extremfall:

Störsignal 4 fach höher, als Nutzsignal. Sieht schlimm aus. Issesabernich.


Ergebnis nach HighPass. Signal ist ein bisschen Mau, aber gut erkennbar. Niemand erwartet nach 20 Jahren ein volles Signal.

Bei einem schwachen Signal brauchts einen guten ADC oder Verstärker. Oder, jetzt widerspreche ich mir fast selber, wenn man nur 2 Frequenzen sucht und Filter einsetzt, spielt das Audiodesign oder Verstärkerqualität nur eine untergeordnete Rolle. Es reicht, wenn die 2 Frequenzen wiederfindet.

Interessanterweise kann man mit Filtern auch fast alle Drop-out Problem lösen. Es scheint, als wären Drop-out nur Stellen mit schwacher Magnetisierung. Die 2 Frequenzen kann man meist wieder restaurieren. Bei 10 Kassetten hatte ich nur einen Fall bei der die Qualitaet so schlecht war, dass ich die Bits mit der Hand und Bauchgefühl nachbessern musste (... weil der ADC nur 0 und 1 geliefert hat)

Hat der KC eigentlich einen HighPass-Filter am Kassetteneingang?
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 10.05.2014 um 11:24 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
10.05.2014, 07:54 Uhr
holm

Avatar von holm

Irnkwie schreibst Du nur Rätsel auf.
Wie sollte Deiner Meinung nach ein "LowPass" funktionieren? Niedrige Frequenzen nach Masse kurzschließen? ..oder wie?

Die oberen beiden
Oszillogramme zeigen das Verhalten eines Hochpasses..

Davon mal abgesehen sind bei mir 30 Jahre alte Kassetten nicht leiser als neue.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 10.05.2014 um 07:55 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
10.05.2014, 11:23 Uhr
Hobi



Recht hast du. Ich habe mich verschrieben. Die Frequenzen >500Hz sollen natürlich nach wie vor passieren. *korrigiert*, danke. Die Bilder habe ich mit Audacity geschossen.


Zitat:
30 Jahre alte Kassetten nicht leiser als neue


Die Kassetten haben zumindest mehr und mehr Fehlstellen. Das Signal kann man mit blossem Auge noch erkennen, ist aber wesentlich schwächer.
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 10.05.2014 um 11:25 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
10.05.2014, 15:51 Uhr
Micha

Avatar von Micha

eventuell gibts hier auch ein leichtes Missverständnis - ich hab nicht vor ein Kästchen auf Microcontroller-Basis zu basteln, das die Inhalte von alten Bändern konserviert, an denen der Zahn der Zeit genagt hat. Für sowas ist sicher ein PC viel besser geeignet, der mit Rechenpower und Speicher ohne Ende die Eingangssignale mit entsprechend hoher Abtastfrequenz aufzeichnet, und dann kann man im zweiten Schritt die angefallenen "riesigen" Datenmengen am PC entsprechend filtern und aufarbeiten.
Ich hab wirklich nur vor, einen "Recorder" zu basteln, der direkt vom Heimcomputer aufzeichnet, und auch wieder direkt zu diesem ausgeben kann. Umständlich und lahm über den Umweg Audio-Modulation/Demodulation. Also etwas das man an einen unverbastelten(!) Heimcomputer von aussen anstöpseln kann, lediglich per Kassettenanschluss. Bitte nicht nach Sinn oder Unsinn fragen ;-)

Und ich hoffe immer noch dass kein komplettes Signal-Sampling erforderlich ist sondern ausreichend steile Signalflanken in einer Richtung beim Atmel einen Interrupt auslösen - in dessen Behandlung ein Timer ausgewertet und neu gestartet wird. Ma schauen ob das realistisch ist, hab morgen einen Speicher-Oszi, mit dem ich mir die Signale mal konkret anschauen kann...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
10.05.2014, 15:58 Uhr
Wusel_1



dann nehme einen A302. Der bringt dir dann eine Rechtecksignal raus. Schutzdioden am Eingang nicht vergessen. Der brauch nur +-0,6V, also kann er fast jeden Schrott umwandeln.
--
Beste Grüße Andreas
______________________________________
DL9UNF ex Y22MF es Y35ZF
JO42VP - DOK: Y43 - LDK: CE

*** wer glaubt, hört auf zu denken ***
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
11.05.2014, 13:05 Uhr
Micha

Avatar von Micha

Ganz sicher trage ich jetzt Holz in den Wald...
aber ich dachte mir, bevor ich irgendwas glaube messe ich lieber selber nach.
Hab also heute die Gelegenheit eines verfügbaren Speicher-Ossi, ähm sorry, meinte: Oszi, genutzt um mal am Kassettenausgang eines KC85/3 zu messen.
Die Messung hat meine letzten Zweifel beseitigt, dass das Speicherverfahren des KC praktisch nix mit dem Kansas City Standard zu tun hat. Beim KC wird NICHT mit sinusförmigen Signalen gearbeitet, und pro Byte wird nur eine Periode verwendet.

Die Messungen zeigen annähernd Rechteck-Signale, wobei ich drei verwendete Frequenzen festgestellt hab:
1800 Hz für Null-Bits
1020 Hz für Eins-Bits und den Vorton
550 Hz als Trennzeichen zwischen 8-Bit-Bytes

Hab die Frequenzen jetzt ungeschönt so aufgeschrieben wie gemessen, vermutlich handelt es sich idealerweise um eine geometrische Reihe, wahrscheinlich 500Hz - 1000Hz - 2000Hz.

Speicherbereiche mit Null-Bits werden dann also ca. doppelt so schnell gespeichert wie Bereiche die mit FFh gefüllt sind.

Fürs Beschauen der Blockstruktur hat der kleine Speicher des Oszi nicht gereicht, aber die Signalform stimmt mich optimistisch, dass da mit einem Atmega mit bisschen Beschaltung (Signal-Level ist erst mal nicht TTL) was geht. Wenn man an der abfallenden Signalflanke einen Zähler auswertet und neu startet sollte sich das Signal mit den Möglichkeiten so eines Microcontrollers auswerten lassen.

Unklar ist erst mal noch die Reihenfolge der Bits - kommt das niedrigstwertige zuerst oder das höchstwertige?


Dieser Beitrag wurde am 11.05.2014 um 13:29 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
11.05.2014, 14:01 Uhr
kaiOr

Avatar von kaiOr

Micha, sei mir nicht böse, aber das steht soweit ALLES im Systemhandbuch.
Dieser Beitrag wurde am 11.05.2014 um 14:02 Uhr von kaiOr editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
11.05.2014, 14:05 Uhr
Micha

Avatar von Micha

Ich habs geahnt. Dumm nur, dass ich kein Systemhandbuch besitze ;-)
Achso ja - und selber noch rausgekriegt hab ich eben noch dass das niederwertige Bit zuerst kommt.

EDIT: und dass ALLES im Systemhandbuch steht hatte in dem Thread bisher leider noch niemand erwähnt. Gibts eventuell einen Link zu dem Systemhandbuch?

EDIT2: die völlig verrückten Amerikaner nehmen gelegentlich auf die Heilige Schrift "Systemhandbuch" Bezug mit dem Kürzel "RTFM" was bedeutet: "read the fucking manual" - "Lies gefälligst die verkackte Gebrauchsanleitung bevor du hier dumme Fragen stellst."

Dieser Beitrag wurde am 11.05.2014 um 15:01 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
11.05.2014, 14:40 Uhr
Enrico
Default Group and Edit


Das sollte auf SUSOWAS HP oder KC-Club-HP zu finden sein.
S.130 im HB vom KC85/5.

Das sind 2400, 1200 und 600 Hz.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
11.05.2014, 14:48 Uhr
Micha

Avatar von Micha

Das ist interessant - ich hab nen Rigol DS1102E Oszi verwendet - leitet so ein Oszi gemessene Frequenzen aus der Netzfrequenz ab? Das könnte zumindest das ca. Verhältnis 50:60 erklären mit dem ich mich hier vermessen habe?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
11.05.2014, 16:04 Uhr
Enrico
Default Group and Edit



Zitat:
Micha schrieb
Das ist interessant - ich hab nen Rigol DS1102E Oszi verwendet - leitet so ein Oszi gemessene Frequenzen aus der Netzfrequenz ab? Das könnte zumindest das ca. Verhältnis 50:60 erklären mit dem ich mich hier vermessen habe?



Dazu kann nich nichts sagen.
In der Elektor waren aber mal Berichte zu diesen modernen LCD-DSOs.
Rigol war da auch dabei.

Vermutlich Quantisierungsfehler (oder wie das heisst)?
--
MFG
Enrico

Dieser Beitrag wurde am 11.05.2014 um 16:05 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
13.05.2014, 07:51 Uhr
Hobi



Hi Micha,

Da ich keinen KC mehr have, wäre es möglich mir ein kurzes Sample als WAV file zukommen zu lassen? So hätte ich eine Referenz zum analysieren und kann meine Tonausgabe auf KC-signale erweitern.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
13.05.2014, 23:55 Uhr
Micha

Avatar von Micha

Hobi: das ist so einfach - mit JKCEMU ein kleines Bäsic-Progrämmchen schreiben und in ne WAV Datei ausgeben. Also falls du keine Java-Allergie hast. Falls doch, dann gib einfach noch mal bescheid.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
14.05.2014, 00:40 Uhr
Hobi



Den Emulator kenne ich sehr gut. Es ist leider nicht 100% das gleiche. Ich wollte die Chance nutzen, um ein original Sample zu bekommen.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
17.05.2014, 20:35 Uhr
Micha

Avatar von Micha

Inzwischen hatte ich alle Bauelemente beisammen.

Leider fühlt sich der Atmel mit seinen 0/+5V Input Pins (also TTL) von dem Signal des KC nicht angesprochen, wenn ich die in 000 gezeigte Schaltung verwende.

Auf dem Oszi wird aus dem KC ein Signal mit 400 mV gezeigt. Hat eventuell jemand hier einen Tip für mich, wie ich das Signal passend wandeln kann?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
17.05.2014, 22:39 Uhr
Heiko_P



Du kannst einen OPV zwischen Recorderausgang und Atmel-Eingang schalten, ähnlich wie das beim AC1 gelöst wurde. Ein Beispiel ist hier: http://www.ac1-info.de/literatur/fa/fa_84_10_s508_1.jpg Natürlich mit aktuellen BE und mit nur einer Betriebsspannung.

Gruß Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
17.05.2014, 23:20 Uhr
Micha

Avatar von Micha

Danke für den Tip!
Purer Zufall dass ich gerade auch vor paar Minuten per stöbern im electronica Heft 227/228 (Hübler/Evert) S. 98 auf die Sache mit dem Operationsverstärker gestoßen bin.
Bisher hab ich von den Dingern zwar null Ahnung, aber das läßt sich ja ändern ;-)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
18.05.2014, 11:02 Uhr
Micha

Avatar von Micha

Leider hab ich keine Operationsverstärker in meiner Bastelkiste, und auch was deren Theorie angeht (bzw. allgemein Analogelektronik) gehe ich momentan auf ganz dünnem Eis, da ich keine Ausbildung auf dem Gebiet gehabt habe.
Die Beispielschaltungen im Web sehen alle rel. kompliziert aus. Keine Ahnung ob alle Widerstände und Kondensatoren und Dioden immer wirklich nötig sind oder nur vom "Konditor" draufgepappt wurden in der Hoffnung, dass sie irgendwas gutes tun mögen... (*)

Hab mal versucht die Minimalschaltung zu zeichnen, mit der ich nach bestem Wissen und Gewissen weiterexperimentieren würde. Leider hab ich noch keine Idee, was den Operationsverstärker angeht - hat eventuell jemand eine Reichelt-Bestellnummer für einen geeigneten Typ?


---
(*) wär nicht das erste Mal, dass eine Schaltung nach Entfernen von unerklärbaren Bestandteilen immer noch funktioniert. Viele Designer fügen Details hinzu nur weil sie glauben dass diese irgendwas bewirken.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
18.05.2014, 12:05 Uhr
TTL-Grab



Du musst auch den nichtinvertierenden Eingang des OPVs gleichspannungsmäßig auf ein festes Potential legen, sonst floatet der irgendwo rum und dein Ausgang hängt irgendwo in der Ecks. Idealerweise legst du ihn auf das Potential des Umschaltpunktes des AVR-Eingangspins, also 1.9V bei 5V Betriebsspannung. Das machts du mit einem Spannungsteiler über der BEtriebsspannung, von dem aus du dann über 10..100k auf den nichtinvertierenden Eingang gehst,
Außerdem würde ich die Verstärkung nicht ganz so hoch wählen. Aber das kannst du duch probieren feststellen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
18.05.2014, 13:38 Uhr
Micha

Avatar von Micha

Dann versuch ichs mal mit der Schaltung:



Vom Typ hab ich jetzt den LM358 als billigen OV auf reichelt identifiziert, hoffe der ist ok für den Zweck:
http://www.reichelt.de/index.html?ACTION=3;ARTICLE=10483;SEARCH=LM%20358%20DIP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
18.05.2014, 14:05 Uhr
TTL-Grab



Schaltung fast ok, den Eingangs-Kondensator aber direkt an den OPV. Wenn du Baulemente sparen willst, kannst du den Spannungsteiler auch hochohmiger machen (Faktor 10) und den 10k dafür weglassen. Ist ja nicht HiFi hier.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
18.05.2014, 20:09 Uhr
u.nickel



Hallo Micha,
die OPV-Schaltung als nichtinvertierender Verstärker, so wie du sie gezeichnet hast, funktioniert nur bei symmetrischer Versorgungsspannung! (z.B.+5V/-5V).
Weil: Der nichteinvertierende Eingang des OPV liegt auf halbe Spannung (richtig!) der invertierende aber auf GND (also minus). Der muss dann auch an U/2 oder du schaltet den 10k nicht galvanisch nach GND, sondern über einen C gleichspannungsfrei., dann kriegt der invertierende Eingang U/2 über den 10...100k Widerstand vom Ausgang.
Aber das Ganze wird dir nicht viel bringen. Du musst nicht verstärken, sondern Triggern, wenn Du das Signal an einen Digitaleingang legen willst. Schau dir die OPV-Grundschaltung als Komparator an.

Zu deiner Minimalschaltung für die andere Richtung:
Du hast nach deiner Schaltung an KC-Eingang oder Tonband eine viel zu hohe NF-Spannung! Damit übersteuerst du. Nimm nen Spannungsteiler von mindestens 1:10.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
18.05.2014, 20:10 Uhr
holm

Avatar von holm

@Micha: Ich galube es tut mir nicht weh wenn ich mal in jedes Fach meiner Kiste mit irgendwelchen OPVs greife und Dir ein paar schicke..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
18.05.2014, 20:45 Uhr
Wusel_1



Schon oft aufgebaut - Eingang für einen PIC:
http://www.fotos-hochladen.net/uploads/ne592329qp674hx.jpg
--
Beste Grüße Andreas
______________________________________
DL9UNF ex Y22MF es Y35ZF
JO42VP - DOK: Y43 - LDK: CE

*** wer glaubt, hört auf zu denken ***
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
19.05.2014, 20:58 Uhr
Micha

Avatar von Micha

Dachte, ich experimentier lieber mal selber ein wenig. Heute konnte ich erst mal einen OPV borgen zum probieren, Typ LM 358. Ein wenig Recherche bei Reichelt brachte zutage, dass es eine verwirrende Vielfalt an OPVs gibt, Preisspanne von wenigen Cent bis fast 10 Euro pro Stück.
Nehme an für den hier gegebenen Zweck reicht ein ganz billiger wie eben der LM 358 (Stückpreis 17 cent), die Frequenzen sind niedrig und auf irgend ne genaue Kennlinie kommts bei Binärsignalen eh nicht an.
Ich hab dann versucht aus den bisher erhaltenen Hinweisen eine Schaltung zusammenzureimen die ev. gehen könnte (Anhang). Nach dem Aufbau ging erst mal garnichts. Nach diversen Probierereien, Austausch von Bauteilen etc. ging immer noch... nix. Bis ich nach fast einer Stunde erfolgloser Frickelei endlich durch Zufall entdeckte, dass das Netzteil für die Schaltung einfach nicht in der Steckdose steckte. Gibt so Tage wo sowas passiert... :-(

Ab da funktionierte das Ding mit dem KC als EIngang auf Anhieb hervorragend. Offenbar typisch für Digitalschaltungen: die Werte der Bauelemente sind mehr oder weniger Pi * Fensterkreuz. Hab für den Entkopplungskondensator am Eingang 4,7nF probiert und 100nF: praktisch keinen Einfluss auf Form des Ausgangssignals. Den Rückkopplungswiderstand von 100K kann man auch mit größerem Wert nehmen oder ganz weglassen. Der OPV liefert mit 5V Versorgungsspannung nur ca. 3,5V Ausgangspegel. Wundert mich eigentlich nicht wenn ich drüber nachdenke und für den Atmega hinten dran reicht das vollkommen.

Dann hab ich noch mal mit einem Kassettenrecorder als Eingang experimentiert. Signale sehen auf dem Oszi ok aus, aber regelmäßig ca. aller 5 Sekunden gibts ein "Signalgewitter", also einen kurzen Schub hochfrequenter Störungen. Dass das so regelmäßig passiert stimmt mich verdächtig - fehlt in der Schaltung noch irgendwas?


Dieser Beitrag wurde am 19.05.2014 um 21:00 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
19.05.2014, 21:15 Uhr
Mobby5



Hast Du ein Radar in der Nähe? Vielleicht ist es ja auch nur ein Funkthermometer. Eventuell vom Nachbar.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
20.05.2014, 17:32 Uhr
ambrosius



... oder das Handy
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
20.05.2014, 18:51 Uhr
u.nickel



Hallo Micha,
die Schaltung ist genau richtig. Das ist eine wunderbare nichtinvertierende Komparatorschaltung. Der 100k sorgt für ne Hysterese, je kleiner desto mehr...
Du kannst nun auch die Ansprechschwelle (Empfindlichkeit) variieren, indem du das Verhältnis der beiden 10kWiderstände entweder am invertierenden oder am nichtinvertierenden Eingang leicht änderst ggf also ein Einstellregler.
Vielleicht hilft das schon den Störer auszublenden. Dein Eingangswiderstand dürfte so pi*Daumen 5k betragen, also schon relativ hochohmig, wenn ein Stückchen Drahtzuleitung quasi nebenbei als Antenne wirkt. Da kann dann schon Handy oder ähnliches stören. Sonst mach doch mal den Eingang niederohmiger.
Was passiert denn überhaupt ohne Signalquelle, kommen da auch die Störungen?
Weitere Variante wäre: Am nichtivertierenden Eingangspin ein C mit 100...1000pF gen Masse um Hochfrequenz kurzzuschließen.

Gruß Uwe

Dieser Beitrag wurde am 20.05.2014 um 18:57 Uhr von u.nickel editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
20.05.2014, 21:33 Uhr
Micha

Avatar von Micha

Jetzt hab ich (glaub ich zumindest) endlich, nach stundenlangem auf-die-Signalkurven-starren rausbekommen was es mit dem regelmäßig auftretenden hochfrequenten Störsignal auf sich hat:

Das ist einfach nur die Pause zwischen zwei Blöcken! Das Signalgewitter kommt immer genau vor dem 600Hz-Vorton, der einen Block einleitet.
Wenn ich das Signal vom KC als Eingang nehme ist in der Pause wirklich Funkstille, aber vom Kassettenrecorder kommt in der Pause hochfrequentes Rauschen. Hab grade mal eine alte Commodore-Kassette probiert - da gibts die Pausen und das Rauschen nicht, weil es dort keine Blockstruktur gibt.

Alles kein Problem da der Atmel (den ich grade an den OP hinten dranbastel) auf fallende Flanken reagiert und per Timer aussortieren kann, ob ein Signal sinnvoll ist oder nicht. Hoffe ich zumindest...

Dieser Beitrag wurde am 20.05.2014 um 21:40 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
21.05.2014, 07:36 Uhr
ingotron




Zitat:
u.nickel schrieb
Das ist eine wunderbare nichtinvertierende Komparatorschaltung. Der 100k sorgt für ne Hysterese, je kleiner desto mehr...
Du kannst nun auch die Ansprechschwelle (Empfindlichkeit) variieren, indem du das Verhältnis der beiden 10kWiderstände entweder am invertierenden oder am nichtinvertierenden Eingang leicht änderst ggf also ein Einstellregler.


Nö, das ist sie nicht. Die abgebildete Schaltung besitzt keine Hysterese. Bei ihr handelt es sich um einen nichtinvertierenden Verstärker mit einer Verstärkung von (1 + 100/5)=21.
Eine Komparatorschaltung wäre es, wenn der Rückkoppelwiderstand an den + Eingang gehen würde statt an den - Eingang.
Ich würde ihn auch an den + Eingang legen und auf etwa 470 kOhm vergrößern. Das gibt bei 5V Betriebsspannung etwa 50 mV Hysterese. Eine Hysterese ist gut gegen kleine Störspannungen. Die Empfindlichkeit lässt sich mit dem Rückkoppelwiderstand einstellen, die Symetrie mit einem der beiden 10/10 kOhm Spannungsteiler. Ich würde in Reihe zum Eingang, also zum 100nF Kondensator, einen Widerstand von etwa 1 kOhm schalten um Hochfrequenzeinstreuung zu verringern. Die 1 kOhm bilden mit der Eingangskapazität des OPV einen Tiefpass. Sonst kann es an den Sperrschichten des OPV zur Gleichrichtung von HF und damit zum AM-Empfang hochfrequenter Störungen kommen.



Viele Grüße

Ingo.
--
funktionsfähig: ZX Spectrum 48, ZX Spectrum+2 / 128k, ZX Spectrum Next, Harlequin48/128, N-GO (ZX Spectrum clone), Gigatron TTL, ZX UNO, Chessmaster Diamond, Chessmaster, RFT-PONG, THAT (The Analog Thing)
Man darf die Menschen nicht mit ihren Engsten alleinlassen. (Zitat: Peter Glaser)

Dieser Beitrag wurde am 21.05.2014 um 07:44 Uhr von ingotron editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
21.05.2014, 17:58 Uhr
u.nickel



Jau Ingo, da haste natürlich voll recht! Man sollte doch genauer gucken.
Gruß Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
21.05.2014, 21:16 Uhr
Micha

Avatar von Micha

Bei mir sind vorläufig die theoretischen Kenntnisse zum Thema ganz dünn, wie bereits gesagt. Ich bekomm hoffentlich die Tage ein DDR-Buch zum Thema Operationsverstärker.
Zuerst mal eine Frage: bei dem mit 5V Versorgungsspannung betriebenen OPV sehe ich am Ausgang per Oszi "nur" eine Spanne von Masse bis +3,5V. Ist das systembedingt normal, oder ein Kalibrierproblem des Oszi?

Den Hinweisen in 035 folgend hab ich heute paar Sachen ausprobiert, mit folg. Ergebnissen:
Der 1K Widerstand direkt vor dem + Eingang des OPV hat nichts gebracht.
Bei dem Rückkopplungs-Widerstand hab ich die Werte 100K, 470K, sowie ohne probiert, sowohl Rückkopplung auf den + als auch den - Eingang: ohne erkennbaren Unterschied in in Signalformen die der Oszi anzeigt. Also ist wahrscheinlich die Beschaltung OHNE Rückkoppelwiderstand (was eigentlich unendlicher Widerstand bedeutet) für diese Anwendung die richtige Wahl?

Der KC85/3 und der Kassettenrecorder verhalten sich als Eingangsgeräte verschieden:
Der KC liefert ein Signal symmetrisch um 0V +/-200mV. In den Signalpausen zwischen den Datenbblöcken bleibt das Signal ordentlich auf einem Level. Wenn ich die beiden Spannungsteiler am OPV etwas ungleich mache, bekomme ich vom KC kein Nutzsignal mehr.

Beim Kassettenrecorder bekomme ich ein Signal, das nicht symmetrisch um 0V liegt, sondern in etwa um +2V. In den Signalpausen gibt es hochfrequentes "Gewitter". Wenn ich hier die beiden Spannungsteiler am OPV etwas ungleich mache, bleibt das Nutzsignal komplett erhalten, und in den Signalpausen wird die Spannung ordentlich auf ein Ende des Bereichs gezogen.

Kann sich da eventuell jemand hier nen Reim drauf machen?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
038
21.05.2014, 22:02 Uhr
ingotron




Zitat:
Micha schrieb Zuerst mal eine Frage: bei dem mit 5V Versorgungsspannung betriebenen OPV sehe ich am Ausgang per Oszi "nur" eine Spanne von Masse bis +3,5V. Ist das systembedingt normal, oder ein Kalibrierproblem des Oszi?


Das ist richtig, der OPV müsste vom Typ "Rail-to-Rail" sein, um die Grenzen der Betriebsspannung am Ausgang auch zu können. Ich denke, die 3,5V sollten aber reichen.


Zitat:
Micha schrieb Der 1K Widerstand direkt vor dem + Eingang des OPV hat nichts gebracht.


Der Widerstand soll auch "nichts bringen". Er soll am Signal nichts ändern, dann ist alles ok. Er verhindert aber, dass evtl. über das Kabel vom Kassettenrecorder eingestreute Hochfrequenz (evtl. auch vom Handy) schädigend wirksam wird.

Zitat:
Micha schrieb Bei dem Rückkopplungs-Widerstand hab ich die Werte 100K, 470K, sowie ohne probiert, sowohl Rückkopplung auf den + als auch den - Eingang: ohne erkennbaren Unterschied in in Signalformen die der Oszi anzeigt.


Wenn der Verstärker bereits übersteuert ist (bei 0,2 V am Eingang und verstärkung 21 ist das erfüllt), ist auch wenig Wirkung zu erwarten.

Zitat:
Micha schrieb Also ist wahrscheinlich die Beschaltung OHNE Rückkoppelwiderstand (was eigentlich unendlicher Widerstand bedeutet) für diese Anwendung die richtige Wahl?
...
Beim Kassettenrecorder bekomme ich ein Signal, das nicht symmetrisch um 0V liegt, sondern in etwa um +2V. In den Signalpausen gibt es hochfrequentes "Gewitter". Wenn ich hier die beiden Spannungsteiler am OPV etwas ungleich mache, bleibt das Nutzsignal komplett erhalten, und in den Signalpausen wird die Spannung ordentlich auf ein Ende des Bereichs gezogen.


Eben dafür ist der Rückkoplungswiderstand zum + Eingang gut. Mache die 10kOhm Spannungsteiler wieder gleich (symmetrisch) und verringere den Widerstand vom Ausgang zum + Eingang solange, bis die Störungen vom Kassettenrecoder weg sind. Das Signal braucht nicht genau spannungssymmetrisch sein am Ausgang des OPV aber zeitsymmetrisch. Also, wenn eine konstante Frequenz am Eingang anliegt, dann sollte ein habwegs symmetrisches Rechtecksignal (gleichlange auf Eins und Null) herauskommen.


Gruß Ingo.
--
funktionsfähig: ZX Spectrum 48, ZX Spectrum+2 / 128k, ZX Spectrum Next, Harlequin48/128, N-GO (ZX Spectrum clone), Gigatron TTL, ZX UNO, Chessmaster Diamond, Chessmaster, RFT-PONG, THAT (The Analog Thing)
Man darf die Menschen nicht mit ihren Engsten alleinlassen. (Zitat: Peter Glaser)

Dieser Beitrag wurde am 21.05.2014 um 22:07 Uhr von ingotron editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
22.05.2014, 20:10 Uhr
u.nickel



Hallo Micha,
ich stamme ja nun noch aus der Kasssettenrecorder-am- Heimcomputer-Zeit, wo es noch darum ging auch "heimlich von Oma eingeführte" C64/c16 anstelle der Datasette mit normalem Kassettenrecorder zu betreiben. Meine Erfahrungen mit dem OPV-Komparator/Trigger kommen daher, das ich für etliche Leute ne "Blackbox" gebaut habe:
Das Hochfrequenzgewitter in den NutzSignalpausen ist das Bandrauschen und andere Schweinereieffekte des Recorders, das durch deine Schaltung unendlich verstärkt, also getriggert, am Ausgang erscheint.
Abhilfe eben genau die Triggeransprechschwelle etwas anheben, wie Du es ja mit den etwas unsymmetrischen Spannungsteilern gemacht hast. Ich hab damals immer Pi x Daumen einen 1k-Widerstand an +, einen an Masse und dazwischen einen 100Ohm-Spindelregler, an dessen Schleifer der invertierende Eingang vom OPV ging, genommen. 10k/1k/10k geht natürlich genauso!
Ein Widerstand vom Ausgang nach +-Eingang, also zur Festlegung einer Hysterese bringt nur in Verbindung mit einem weiteren Längswiderstand in Richtung Eingang etwas! Das wäre dann der schon von Ingo beschriebene 1k!
Aber die Überlegung ist ja nur richtig bei symmetrischer Spannungsversorgung. Wir haben ja aber wegen der unsymmetrischen Versorgung mit 5P auch in der +-Eingangslinie des OPV einen Spannungsteiler, was die Verhältnisse schon wieder verkompliziert. Und nicht zu vernachlässigen ist in Praxi auch der Innenwiderstand deiner Signalquelle.
Aus meiner Erfahrung heraus, bringt eine Hysterese auch in diesem Zusammenhang nicht viel.

lies mal für Grundlagen hier: http://elektroniktutor.de/analogverstaerker/kompar.html

Gruß Uwe

Dieser Beitrag wurde am 22.05.2014 um 21:11 Uhr von u.nickel editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
26.05.2014, 19:48 Uhr
Micha

Avatar von Micha

Inzwischen hab ich erste kleine Experimente mit einem KC85/3 und einem Atmega ausgeführt.

Am Rande ist mir dabei aufgefallen, dass der KC jeweils nur beim ersten mal Speichern das entsprechende Audio-Gedudel zum Fernseher sendet - nachfolgende Speichervorgänge erfolgen stumm. Ist das nun ein Bug oder ein Fehler? ;-)

Aber Spaß beiseite, auch sonst gibts paar Erkenntnisse: Die im KC-Handbuch angegebenen Frequenzen für das Speichersignal von 2400/1200/600 Hz stimmen offenbar wirklich nicht. Hab jetzt mit einem per Quarz getakteten Atmega die Perioden mit Timer gemessen, da kommen ca. 2000/1000/560 Hz raus.

Eine weitere Erkenntnis: bei den Signalen kehrt sich bei jedem folgenden Datenblock die Phase um. Nach erster oberflächlicher Signalanalyse hatte ich angenommen, dass jede Signalperiode mit einer fallenden Flanke aufhört und den Atmega entsprechend programmiert. Um dann überrascht festzustellen, dass ich immer nur genau jeden zweiten Datenblock hereinbekam, diesen allerdings fehlerfrei. Tatsächlich folgen immer abwechselnd Datenblöcke, bei denen eine Schwingung mit einer fallenden Flanke aufhört, und Datenblöcke bei denen eine Schwingung mit einer steigenden Flanke endet. Ziemlich verrückt, oder?

Dieser Beitrag wurde am 26.05.2014 um 19:50 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
26.05.2014, 21:50 Uhr
Mobby5



Und wenn Du einfach nur die Flanken selbst auswertest, ohne auf eine Richtung zu achten. So kommt das doch, wie hier schon mehrfach geschrieben wurde, auf die Nulldurchgänge an.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
26.05.2014, 22:03 Uhr
Micha

Avatar von Micha

ja, genau daran experimentier ich gerade. Das bekommt der Atmega ohne Probleme hin, ich musste nur erst mal mit der Nase drauf gestupst werden dass es so ist. Nichts ersetzt das praktische Experimentieren.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
043
27.05.2014, 07:35 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

aus KCLOAD.PAS von H. Haftmann:

{KC-Format:
Die Angaben im KC-Handbuch sind FALSCH!
Ursache: Die Mühlhäuser Programmierer haben die Latenzzeit der
Interruptserviceroutine unterschlagen.
Z.B. Vorton: TC=$2F=47->1179Hz(848µs), es sind aber ca. 1060Hz(943µs).
In dieser Zeit wird der Timer 2x per ISR neu programmiert, 943-848=95µs,
pro Aufruf also 47.5µs->83 Takte.
Der IM2 verbraucht 19 Takte, in der ISR vergehen 11+7+11+19+11 Takte,
macht zusammen 78 Takte. Da die Warteschleife aus einer Schleife
mit 19+4+12 Takten besteht, ist die mittlere Latenz 5 Takte
(wegen mittlerer Befehlsausführungszeit von 11 Takten). Kommt genau hin!
(Dummerweise wird die CTC rückgesetzt, eigentlich Schwachsinn!)

0-Bit: Vollschwingung 1950 Hz (11 Samples, 7-16)
1-Bit: Vollschwingung 1050 Hz (21 Samples, 17-26)
Trennzeichen: Vollschw. 557 Hz (39 Samples, 27-50)

Byte: Bit0, Bit1, ... Bit7, Trennzeichen (TZ)

Block: Vorton (>160 1-Bits), TZ, Byte (BlockNr), 128 Bytes, Byte (Summe)

Datei: Vorblock (Nr. 0 oder 1), n Datenblöcke, Schlussblock (Nr. FF)

Vorblock: 11 Byte Name, 117 Byte verschieden verwendet oder Datenbytes

Schlussblock: Kann Daten enthalten

Idiotien:
* Keine vernünftige Definition des Vorblock-Inhaltes, verschiedene
Auslegung für BASIC oder MC, unsichere Block-Nr.
* Block-Nr. FF kann, muss aber nicht Schlussblock sein; Auslegung
verschieden: VERIFY und LOAD machen Schluss, BASIC lädt weiter
und interessiert sich mitnichten für den FF-Block
(dieser enthält keine Daten und wird gar nicht gelesen)
KC87-BASIC generiert keinen FF-Block
Dateien >31K haben einen FF-Block mittendrin
* Schwer behebbare Differenzen zwischen Kassetten- und Disketten-
Aufzeichnung (das mache man erst mal dem Normalverbraucher klar...)

(s.a. 002: "...das Programm KCLOAD. http://hc-ddr.hucki.net/wiki/doku.php/programme:kassetten_faq . Das ist ein Pascal-Programm, aber vielleicht kannst Du diesem Programm Anregungen (und vor allem diverse Kleinigkeiten) entnehmen, wie das Audiosignal aufbereitet werden muss...")
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 27.05.2014 um 07:42 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
27.05.2014, 22:25 Uhr
Micha

Avatar von Micha

Danke für die Informationen, Volker!

Auf jeden Fall stimmt schon mal dass man nicht unbesehen den Informationen glauben sollte die in irgendwelchen Büchern stehen.
Hab heute ein wenig weiter experimentiert mit dem KC85/3. Inzwischen bekomme ich Programme schon (meistens) fehlerfrei in den Atmel rein, siehe Foto. Basic speichert offenbar Inhalte ab dem ersten Block, in den Block mit der Nummer FF wird irgendwelcher redundanter Mist reingeschrieben. Ich werd das die Tage noch genauer erforschen.

Mein konkretes Ziel besteht in dem Fall darin, einen Ersatz für LCR_C, Geracord & Co zu basteln. Also eine Seifenschachtel, die man an einen KC anschliessen kann als Recorder. Nicht mehr und nicht weniger. Das Ding soll nicht über den User-Port zusätzliche Zaubertricks können sondern wirklich nur als Ersatz für einen guten alten Kassettenrecoder dienen. Momentan bin ich optimistisch dass ich das hinbekommen kann.


Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
045
27.05.2014, 22:46 Uhr
susowa




Zitat:
Micha schrieb
Basic speichert offenbar Inhalte ab dem ersten Block, in den Block mit der Nummer FF wird irgendwelcher redundanter Mist reingeschrieben. Ich werd das die Tage noch genauer erforschen.



Siehe: http://kc85.datahammer.de/KC85FileFormats.txt

MfG
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
046
28.05.2014, 18:51 Uhr
Mobby5




Zitat:
Micha schrieb
Nichts ersetzt das praktische Experimentieren.



Wenn das mal alle Bastler einsehen würden.


Zitat:
Micha schrieb
Also eine Seifenschachtel, die man an einen KC anschliessen kann als Recorder.



Nehm ich...
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
047
28.05.2014, 20:05 Uhr
Micha

Avatar von Micha

Derzeit experimentier ich mit einem Aufbau auf Breadboard. Das ist für mich bisher immer die erste Phase im Verlauf eines Projekts. Allerdings ist es da manchmal auch schwierig, die richtigen Schlüsse zu ziehen - gibts Probleme weil die Schaltung prinzipiell Murks ist, oder liegen die Probleme am Breadboard-Aufbau?

Aktuell hatte ich ausser dem OPV noch zusätzlich paar LEDs sowie einen Piezo-Summer am Atmel angeschlossen. Um wahrnehmbar zu machen, was gerade passiert.
Hatte dann gestern und heute ne ganze Menge Datenfehler. Nachdem ich den ganzen optionalen Klimbim erst mal entfernt hatte laufen die Experimente mit der Datenübertragung KC <--> Atmel wesentlich stabiler.

Entweder die Signalverbindung vom OPV zum Atmel ist von der Stabilität wirklich grenzwertig, oder das liegt am Breadboard-Aufbau. Ich bin einfach mal optimistisch dass das nachher mit gelöteter Schaltung alles zusammen stabil funktionieren wird ;-)

Dieser Beitrag wurde am 28.05.2014 um 20:06 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
048
29.05.2014, 10:00 Uhr
edbru



na ja... nach Morphy läuft es erst mal. Will man es richtig machen - ist alles ganz anders.

Micha, ich find es einfach spannend wie Du das hier so darstellst.
Deine Gedanken, Deine Fehlschläge und Erfolge.
Und nicht ganz nebenbei wie Du die irgendwie schlampige Programmierung der Kassetenroutine wieder neu erfahren hast.
(funktioniert. Aber- Never change a running System)

Mach bloß weiter so.
--
ich brauch es nicht, so sprach der Rabe.
Es ist nur schön wenn ich es habe.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
049
29.05.2014, 18:59 Uhr
Micha

Avatar von Micha

@edbru: vielen Dank für die netten Worte!

Heute hab ich das Vorprojekt soweit zu einem Abschluss gebracht, dass ich Programme ziemlich stabil in beiden Richtungen zwischen KC85/3 und dem Atmel hin- und her schieben kann.

Nun werd ich mich dran machen und eine Schaltung entwerfen. Zeitlich besteht mein Ziel darin, das Ding mindestens vor Weihnachten 2014 fertig zu haben. Spätestens in Garitz 2015 soll die Seifenschachtel vorzeigbar sein. Sollte alles kein Problem sein - eigentlich ist das keine komplexe Sache. Ich versuch einfach nur realistisch zu sein.

Den Entwurfsprozess werd ich in einem separaten Thread dokumentieren.

Dieser Beitrag wurde am 29.05.2014 um 19:00 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek