Hallo SHARP Pocket Computer Fans,
dies ist die offizielle Seite zum USB Interface für SHARP PC-14xx-Serie.
Einleitung
Mit dem CE-124 „The Sharp CE-124 tape interface“ oder dem CE-125 „The Sharp CE-125 printer / magnetic tape“ kann man die Basic Programme des Pocket Computers auf kleine Kassette abspeichern. Und umgekehrt, können die so abgespeicherten Programme wieder von Kassette geladen werden. Sollte man kein Kassetteninterface haben, gibt es hier eine Bauanleitung.
Wenn man aber die Programme auf den PC übertragen will, muss man andere Wege beschreiten.
Entweder man bedient sich einer Soundkarte, deren Mikrofon- bzw. Kopfhörerbuchse an CE-124 angeschlossen wird. Damit lässt sich aufnehmen („csave“) und anschließend wiedergegeben („cload“). Einstellungen hierfür: Wav-Format, mono, 8kb Samplingrate mit 11 kHz, alle Regler voll aufgezogen.
Über die 11-polige Schnittstelle kann auch seriell kommuniziert werden, sofern man zuvor ein angepasstes Treiberprogramm auf dem Pocket Computer geladen (bzw eingetippt) hat . Solche Treiber wurden in der c’t 89/3 „Tore zur Welt“ für den PC-1403(H) und PC-1401/2 veröffentlicht.
Die so übertragenen Daten sind aber auf dem PC nicht direkt lesbar, sondern müssen mit den Pocket Tools for SHARP Pocket Computers am PC übersetzt werden.
Neuer Lösungsansatz
Meine Lösung verwendet direkt die Kassettensignale (Xin und Xout) und umgeht somit das Treiberprogramm auf dem Pocket Computer. Die binären Xin und Xout Daten werden direkt an den PC übertragen. Das will ich mit dem XMC 2Go Mikrocontroller realisieren. Beim Pocket Computer kann dann einfach mit „csave“ und cload“ gearbeitet werden.
Die so übertragenen Dateien werden in der ersten Version ebenfalls mittels den Pocket Tools for SHARP Pocket Computers Wav2bin bzw. Bin2wav am PC übersetzt.
In einer zweiten Version soll dann auch die Wav2bin bzw. Bin2wav Logik in den Mikrocontroller portiert werden, so dass im Endergebnis nur noch das Interface zur Datenübertragung notwendig ist.
Spezifikation:
Das Interface wäre verwendbar mit folgenden SHARP Pocket Computern:
PC-1260, PC-1261, PC-1262, PC-1270, PC-1280, PC-1350, PC-1360, PC-1401, PC-1402, PC-1403, PC-1403H, PC-1421, PC-1425, PC-1430, PC-1431, PC-1440, PC-1445, PC-1450, PC-1475
Möglicherweise könnten auch folgende PCs unterstützt werden: PC-1460 sowie bei der älteren Serie PC-1245, PC-1246, PC-1247, PC-1248, PC-1250, PC-1251, PC-1252, PC-1253, PC-1255.
Alle verwenden diesbezüglich die gleichen Pin-Belegungen und Taktfrequenzen.
Stiftbelegung des 11-poligen SHARP I/O Steckers
Folgende drei Pins der 11 poligen I/O Schnittstelle sind für das Interface relevant:
- Pin 3: GND
- Pin 6: Xin (TTL Signal)
- Pin 7: Xout (TTL Signal)
Lieferumfang:
- USB-Interface für Pocket Computer
Bestehend aus Platine mit 11 pol. Stecker für Pocket Computer und XMC 2Go Mikrocontroller. - USB Kabel (A auf Micro-USB 1,5 m)
Bilder:
Falls Ihr Interesse habt, dann lasst euch in die Warteliste aufnehmen:
Umfrage: USB Interface für SHARP PC-14xx-Serie
Was bisher geschehen ist…
Hier die bisherigen Kommentare und E-Mails zu dem Thema (neueste zuerst):
_________________________________________________________________________________________________
17.09.2015 um 15:56: Als Antwort auf Torsten Mücker.
Hi Thorsten,
ja, da sind sehr interessante Infos enthalten.
Im Bezug auf PC-140x Interface verwende ich aber kein FTDI FT232RL USB to TTL Serial cable, sondern einen Mikrocontroller (möglicherweise den XMC 2Go Mikrocontroller).
Der hat auch 12-bit ADC, falls der TTL Eingang hier nicht funktionieren sollten. Einen DAC hat er leider nicht.
http://mikrocontroller.bplaced.net/wordpress/wp-content/uploads/2014/04/xmc2go_pinout.jpg
Ciao,
Manfred
PS: Hier ein erster Prototyp der Interface Platine:
https://flic.kr/p/yGbxqq
_________________________________________________________________________________________________
16.09.2015 um 12:35: E-Mail von Torsten Mücker.
Erfahrungen aus dem Design des µ-SIC-Kabels für PC-140x
Hallo Manfred,
anbei sende ich Dir einen Auszug aus einer längeren E-Mail von Ralf. Er besitzt momentan keinen Sharp mehr. Vielleicht hilft es weiter.
Von: Ralf D.
Gesendet: Dienstag, 1. September 2015 22:27
An: Torsten Mücker
+++
Meine Kabel verhalten sich durch den verbauten 74HC14 und die speziellen Widerstände einerseits digital, allerdings habe ich den Arbeitspunkt ein wenig verschoben.
Bei der üblichen analogen Beschaltung geht man erst durch einen hochohmigen 330k Widerstand auf ein kleineren 10k Widerstand. Dies ist ein 1:34 Teiler. 3.3V gehen hinein & ungefähr 0.1V gehen weiter. Dieses Kleinsignal von 0,05V +/- 0,05V wird über einen 100nF Kondensator auf empfindliche Aux-Eingänge geleitet.
Wenn man sich allerdings die EA-129C Kabel anschaut, wird der volle digitale Hub von einem PC-140x an einen anderen übertragen.
–> Deshalb klappt die 1:1 Übertragung immer, während der Weg über das Audio-Interface ziemlich fummelig ist.
Meine Aussage bezieht sich nicht auf Mitmenschen, die wissen wie es geht, sondern auf Menschen, die eigentlich nur wollen, daß es klappt. Ich hatte meine Erfahrungen gesammelt, wieviel Lautstärke zu ganz guter Übertragung führt & dann nichts mehr geändert.
+++
Manfred wird vielleicht beim PC-140* auf ähnliche Problem stossen wie ich beim verwendeten 74HC14. Wenn allerdings sein FTDI Baustein eine andere Schaltschwelle als der PC-140* hat, dann muss er auch anpassen.
Viele Grüße,
Torsten
_________________________________________________________________________________________________
12.09.2015 um 16:38: E-Mail von Torsten Mücker.
Hallo Manfred,
da ich meinen letzten MC in den 80-ger Jahren programmiert habe und den Lötkolben nur in die Hand nehme, wenn ich muss, kann ich diesbezüglich leider nicht viel beisteuern.
Um den Anpassungsaufwand bei Wav2bin in Grenzen zu halten, habe ich mir trotzdem schon einmal Gedanken zur Digitalisierung auf unterer Ebene gemacht.
Die Flankenfrequenz von Xout ist ca. 4 kHz. (bzw. 2 kHz). Es handelt sich um ein Rechtecksignal. Bei den PC-1350 bis PC-1475 sind die Abweichungen gering. Typisch sind 4009 Hz. Die Sample Points der Digitalisierung muss man synchron zur tatsächlichen Frequenz halten. Die PC-1245 bis PC-1262 können etwas ungenauer sein und sind auch allgemein sensibler, z.B. gegenüber einer leicht überhöhten Versorgungsspannung. Das bleibt aber alles im Rahmen.
Falls möglich, würde ich mit dem MC kompatibel zu einer Wave-Datei 8-bit, mono bleiben. Es erleichtert sehr die Fehlersuche, wenn man kompatibel zu vorhandenen Tools bleibt. Der Header der Wavedatei kann über alle Aufnahmen unverändert gleich bleiben, wie von Bin2wav. Nur die die Anzahl der Samplepunkte sollte am Ende der Übertragung im Header ergänzt werden.
Mit einer Wavedatei lassen sich Rechtecksignale nicht abbilden, nur Trapez- und Dreieckssignale.
Dreiecksignale haben sich nicht bewährt, weil die Erkennung des abgespielten Signals durch den Pocket Computer sehr sensibel bezüglich des eingestellten Pegels wird. Falls man deshalb die Samplefrequenz stark erhöht, um sich einem Rechtecksignal anzunähern, stellt man fest, dass man im Ergebnis nur die Audio-Elektronik überfordert und die Fehlerrate wieder ansteigt.
Für die bisher vorgesehenen Pocket Computer würde ich deshalb eine Samplefrequenz von 16 kHz verwenden und die Punkte laufend auf die Flanken nachsynchronisieren.
Der jeweils neue Zustand am Ende der Flanke wird als Byte abgespeichert. Es hat sich bewährt, für die Xout=1 (AMP_HIGH) den Wert 0xDA zu verwenden und für die Xout=0 (AMP_LOW) den Wert 0x26.
Dass am Ende der Übertragung an den Pocket Computer das Signal am Xin eine Zeit anstehend bleiben muss und dann für das Audio-Interface auf einen mittleren Pegel heruntergezogen wird, hängt mit den Eigenheiten der Pocket Computer am Ende der CLOAD-Routinen zusammen. Nichtbeachtung liefert Error 8.
Mittlere Pegel gibt es ja nur für das Audio-Interface und machen für Xin keinen Sinn. Das müsste man sich dann noch einmal ansehen.
Die Übertragung einer Wavedatei über einen COM-Port könnte jedoch einige Zeit dauern. Das synthetisches Signal lässt sich ausgezeichnet mit 7-Zip oder auch Zip komprimieren.
Was bei Wav2bin auch noch fehlt, ist ein Testmodus, bei dem nur festgestellt wird, was in dem Signal enthalten ist und irgendwo als INI-Datei oder XML abgespeichert wird.
Das könnte man später klären.
Viele Grüße Torsten
_________________________________________________________________________________________________
11.09.2015 um 17:22: Als Antwort auf Torsten Mücker.
Hi Torsten,
wir sind bei diesen Themen so ziemlich einer Meinung;)
Zunächst werde ich auf meinem Blog zusätzlich zur aktuellen Umfrage zum Thema “USB Interface für SHARP PC-E220 (und der G-Serie)” eine eigene Seite aufbauen, denn die Umsetzung ist unproblematisch, bereits getestet und “relativ” kostengünstig (19,90 EUR).
http://manib.bplaced.net/blog/?p=796
Aber viel Interessanter ist die Anbindung der für die PC-140x Familie. In der ersten Version würde man sich auf die Kommunikation der binären Xin, Xout Daten beschränken. Wenn das funktioniert, und im Moment sehe ich eigentlich nichts was dagegen sprechen würde, kann man in der 2ten Version die wav2bin bzw bin2wav Logik in den MC portieren. Und das schöne dabei ist: die Hardware müsste nicht verändert werden.
Dazu werde ich auf jeden Fall eine eigene Seite auf meinem Blog einrichten, denn hier ist sicher Hilfe aus der Community notwendig.
Schau dir mal meine Skizze an:
https://flic.kr/p/xuR8wo
Ich glaube, dass die Realisierung mit dem Infineon XMC 2Go gemacht werden könnte.
http://manib.bplaced.net/blog/?page_id=812#XMC2Go
Ich erhoffe mir folgende Vorteile:
Extrem günstige Bauteilekosten (geschätzt ca. 7,- EUR, avisierter Verkaufspreis ca. 14,90 EUR)
Extrem kleine Abmessung
Universell verwendbar, z.B. auch bei CASIO PB-100 Serie
LG,
Manfred
_________________________________________________________________________________________________
11.09.2015 um 16:37: Antwort auf Torsten Mücker.
Hi Torsten,
offensichtlich ist die Steckerbelegung der 11 poligen I/O Schnittstelle für diese drei Anschlüsse bei allen genannten Modellen gleich:
Pin 3: GND
Pin 6: Xin (TTL Signal)
Pin 7: Xout (TTL Signal)
Dann dürfte es doch beim Interface eigentlich gar keinen Unterschied machen, oder etwa doch?
_________________________________________________________________________________________________
11.09.2015 um 13:25: Kommentar zur Umfrage: USB Interface für SHARP PC-14xx-Serie
Hallo Manfred,
man könnte ohne deutlichen Mehraufwand auch zusätzlich folgende PCs unterstützen: PC-1460 sowie bei der älteren Serie PC-1245, PC-1246, PC-1247, PC-1248, PC-1250, PC-1251, PC-1252, PC-1253, PC-1255.
Alle verwenden diesbezüglich die gleichen Pin-Belegungen und Taktfrequenzen.
Torsten
_________________________________________________________________________________________________
10.09.2015 um 13:07: E-Mail von Torsten Mücker
Hallo Manfred,
ich habe noch einmal über die 11-poligen Kabel nachgedacht.
1. Wo immer es möglich ist, würde ich die 15-poligen Kabel mit den eingebauten Kommandos des SHARP nutzen bzw. 11-polige Kabel beim PC-E220 und der G-Serie.
2. 11-polige serielle Kabel für „Tore zu Welt“ sollten die Signale zur Empfangsbereitschaft des Sharp durchreichen statt feste Delays zu fordern.
Ralfs Kabel für PC-140x sollte diesbezüglich verbessert werden. Passende Delays für die PC-126x-Serie, bei der der Empfang auf dem Sharp mit Ralfs Kabel stabil funktioniert, konnte ich nicht finden.
Eventuell kann man die Kabel für 1. E220 und 2. zusammenfassen und mit Jumpern umschaltbar machen, siehe bei Edgar.
3. Universelle 11-polige Kabel mit MC sollten auf dem Signal für das Audiointerface aufsetzen (Xin, Xout). Das ist zwar langsamer aber es werden alle Formate zugänglich (Binärer Code, ReSerVe-Daten, Daten der Variablen u.s.w.). Das bedingt, dass nicht nur Text sondern auch binäre Images unterstützt werden.
In einigen Fällen muss Wav2bin sogar ein Parameter übergeben werden, um welchen Pocket Computer es sich handelt. Sonst ist der erzeugte Quelltext falsch. Das ist technisch kaum anders lösbar.
Bitte sehe Dir das PDF-Manual in den aktuellen Pocket Tools an. Dort sind auch Dateitypen erklärt.
Anstelle den Aufwand nach oben zu ziehen würde ich mich erst auf die Lösung der tatsächlichen Probleme beschränken.
80% der Probleme mit den Pocket Tools sind Aufnahmeprobleme und 15% Wiedergabeprobleme.
Das Signal am Xout des Sharp ist ja ein digitales binäres Signal und wird erst durch ein angestecktes Audiointerface, die Übertragung und ggf. Aufnahme verfälscht.
Wenn man dieses Signal abgreift, könnte man damit synthetische Wavedateien der Qualität von Bin2wav erzeugen, die das Signal 100% exakt darstellen, ohne sich genau damit beschäftigen zu müssen, was da eigentlich übertragen wird.
Der Ansatz ist noch weitergehender, als ihn Marcus mit seinem Tool Wav2wav verfolgt.
Möchte man mehr, dann wäre das nächsthöhere Level die Umwandlung des Signal in eine tap-Datei, wie sie auch beim Android-Emulator verwendet wird. Das ist technisch wesentlich einfacher als die Erzeugung von Images.
Da man um eine PC-seitige Komponente nicht herumkommt, kann man alles andere den Pocket Tools 2.x überlassen, die sehr gut fernsteuerbar sind. Bei Bedarf kann ich Dir da noch eine Option einbauen.
Simon hat das im PocketASM so benutzt und Cover funktioniert auch so.
Dein MB Notepad würde dafür ein tolles Benutzerinterface sein. Mit meiner Skriptlösung als Benutzerinterface bin ich nicht so glücklich, obwohl sie stabil funktioniert.
Wenn man bei MB Notepad auch noch ein Line-Delay für die serielle Übertragung einstellen könnte, würde ich auch auf HyperTerminal verzichten.
Bei Bedarf können wir diese E-Mail auch in Deinem Blog einstellen, damit andere teilnehmen können. Ich wollte nur nicht ungefragt und evtl. an der falschen Stelle etwas zu sehr aufblähen.
Torsten Mücker
_________________________________________________________________________________________________
10.09.2015 um 2:59: Als Antwort auf Admin_MB.
Hallo Manfred,
PC-G850S funktioniert mit dem gleichen 11-poligen seriellen Kabel, wie PC-E220. Auch das eingebaute Text-Menü für die serielle Übertragung ist das gleiche. Das habe ich gerade noch getestet.
Ich würde heute Lösungen vermeiden, bei der Treibersoftware auf jedem alten Pocket Computer benötigt wird. Ohne Eingriffe in das Gerät bleibt bei fehlender serieller Schnittstelle dann das Audiosignal übrig.
Für die alten Serien, die standardmäßig keine serielle Schnittstelle und nur das Audiosignal unterstützen, könnte man natürlich Bin2wav und Wav2bin aus den Pocket Tools auch auf einem Mikrocontroller laufen lassen und diesen das Audiosignal aufnehmen und abspielen lassen. Die ganzen Probleme mit den immer schlechter werdenden Mikrofonschnittstellen, Fehlern in Betriebssystem, Treibern, dem Energiesparmode, Varianten von Wavedateien usw. im großen PC lassen sich dadurch vermeiden.
Wav2bin benötigt in der aktuellen Version jedoch eine fertige Aufnahme und arbeitet sich nicht nur einmal durch den Stream, weil sonst die ganzen Fehlerkorrekturen bis hin zu Kassettenfehlern nicht möglich wären oder es müsste dafür angepasst werden.
Falls man alles auf dem Controller laufen lassen möchte, benötigt man einen Diagnoseport, um die Textausgaben von Wav2bin usw. lesen zu können. Sonst steht man vor einer Blackbox, falls etwas nicht funktioniert.
Die Tools umfassen jetzt fast 18000 überwiegend individuell programmierte Codezeilen. Das entspricht mehreren tausend Stunden Aufwand. Zwar laufen sie auch unter Linux und anderen Systemen, jedoch sollte man den Arbeitsaufwand für die Portierung und Anpassung berücksichtigen.
Beginnen sollte man mit der Umwandlung des Audiosignals vom Pocket Computer in binäres Daten, weil das einen deutlichen Effekt bringt. Die andere Richtung kann man danach implementieren und später die Textverarbeitung.
Nach dem Konzept für Casio würde man nur das binäre Image vom großen PC auf den Controller übertragen. Bas2img läuft nach dem Konzept auf dem großen PC und zusätzlich auch eine Version von Wav2bin.
Wav2bin in der aktuellen Betaversion 2.09 (auf unserem FTP-Server) verarbeitet auch fertige Images und kann sie in Quelltexte umwandeln. Da wurde übrigens auch eine Option eingebaut, Kassettenimages vom PC-E500, die nach dem letzten Editieren vor der Aufnahme noch gelaufen sind, in Quelltexte umzuwandeln. Das ist nur aus ein komplett vorliegenden Image möglich
Übrigens war beim PC-1500 Treibersoftware auf dem Pocket Computer wirklich notwendig, weil die Audioschnittstelle dort arg langsam war. Für die Nutzung von Quick-Tape und SuperTape (3600 Baud, jetzt auch in Bin2wav eingebaut) gab es Software- und Hardwaremodule, die aber bei beim Bus der Serie PC-1500/1600 einfacher zu implementieren waren, als allen anderen Pocket Computern.
Bis dann, Torsten
_________________________________________________________________________________________________
09.09.2015 um 19:00: Als Antwort auf Torsten Mücker.
Hi Torsten,
vielen Dank für diese wertvollen Infos. Hattest du meine Umfrage schon gesehen?
Umfrage: USB Interface für SHARP PC-E220
Anhand deiner Aussage, müsste das selbe USB Interface also auch bei der PC-G-Serie funktionieren?
Das wäre ja prima.
Bei den PC-14xx, PC-12xx und ggf. PC-13xx würde ich einen anderen Lösungsansatz favorisieren:
Ähnlich wie das USB-Interface für Casio PB-100 Serie von Malte Weyer, würde einMikrocontroller die Audio Signale konvertieren und im Binärformat, seriell an den PC senden. Die heutigen Mikrocontroller sind so schnell, dass man möglicherweise auch die Konvertierung Binär/Text direkt erledigen lassen könnte. Im Ergebnis würde also das lesbare Textfile seriell übertragen.
Was meinst du?
_________________________________________________________________________________________________
09.09.2015 um 17:33: Kommentare zu deinem Beitrag „Umfrage: USB Interface Kabel für SHARP PC-E500/PC-E500S“, Autor: Torsten Mücker
Hallo Manfred,
eine serielle Schnittstelle wird vom Betriebssystem der Sharp Pocket Computer im Regelfall nur bei eingebauter 15-poliger Schnittstelle unterstützt. Jedoch wird beim PC-E220 und der PC-G-Serie der serielle Transfer auch über die 11-polige Schnittstelle unterstützt. Die PIN-Belegung der 11-poligen Buchse ist leider nicht einheitlich. Außerdem wurde ab dem PC-1403 ein Teil der Signale über ein Gate Array geführt, das zusätzlich geschaltet werden muss.
Alle PC-14xx, PC-12xx und ggf. PC-13xx benötigen ein an den jeweiligen PC angepasstes Treiberprogramm auf dem Pocket Computer, falls über die 11-polige Schnittstelle seriell kommuniziert werden soll. Solche Treiber wurden in der c’t 89/3 „Tore zur Welt“ für den PC-1403(H) und PC-1401/2 veröffentlicht. Je mehr ein PC davon abweicht, um so höher würde der Aufwand für eine Portierung werden. PC-1251 verwendet die interne Zeilenstruktur der ältesten Serie und eventuell auch andere Tokentabellen. Das Portieren des Treibers vom PC-1401 auf den PC-1251 würde deshalb einige Tage dauern. Bei einem Speicherausbau von 4 kB kann man deshalb als Alternative empfehlen, das Audio-Interface als Schnittstelle zum PC zu benutzen (alte Serie entspricht ca. 240 Baud, Übertragungszeit weniger als 2 Minuten).
Torsten
Hallo Sharp-PC-Fans,
gibt es eine fertige Lösung zu kaufen?
Also: TXT vom Windows PC via USB in den PC-1403 und umgekehrt?
Vielleicht sogar Druckausgabe umleiten in TXT-Datei?
Mit freundlichen Grüßen
Hallo Fans, ja, es gibt eine Lösung in Japan zu kaufen: DSave-30U.
Achten Sie darauf, ein Gerät mit einer MCU der neusten Ver1.6 zu erwerben oder bestellen Sie diese MCU (PIC, gesockelt) separat nach, falls Sie DLoad (für CLOAD) nutzen wollen.
Für alle Pocket Computer mit 15-poliger Schnittstelle (nicht unterstützt: nur PC-1600) empfiehlt es sich aber sehr, den Adapter 11/15 (Bezeichnung E500) mitzubestellen und die serielle Übertragung zu nutzen, wie mit einem guten serielles Kabel.
Für PC-1211 kann ein Adapter 9-11 gekauft werden. Für PC-1500 werden ein Busadapter und mitgelieferte Treiberprogramme benötigt.
Auch die Druckausgabe im Streifenformat wird unterstützt.
Bei DLoad/DSave muss man ein besonderes Hex-Format (Khx) mit allen Sharp-Prüfsummen benutzen, das man sich erst (ähnlich wie eine Wav-Datei) erzeugen muss (siehe auch die aktuellen Pocket Tools). Vorteile gegenüber der analogen Audioübertragung sind bei langen Übertragungszeiten (PC-1403H, PC-1280 +64 kB RAM) oder bei einem nicht perfektem Soundsystem des Personalcomputers vorhanden.
Um die gewünschte Umwandlung von BAS-TXT in Hex bzw. Binär in das Interface zu integrieren, müsste für die vielen unterschiedlichen Formate statt eines Mikrocontrollers ein Einplatinencomputer mit Betriebssystem verwendet werden, was den Preis gegenüber DSave-30U weiter erhöhen würde.
Wir haben statt einem neuen Projekt weiter an den Pocket Tools gearbeitet und die Übertragungssicherheit verbessert, soweit es die PC-Soundsysteme ermöglichen.
DSave-30U und auch der Nachfolger DSave-30T sind leider nicht mehr zu bekommen.