Hallo Forumgemeinde, ich habe schon einige Beiträge im Internet gelesen aber so richtig bescheid weiß ich immer noch nicht! Gibt es definitiv keine Möglichkeit, USB-Drucker an dem AT90USB1287 anzuschließen? (Host-Funktion) Ich kenne mich leider nicht mit USB-Drucker aus. Gibt es für USB Drucker keine Standardbefehle mit denen man z.B. nur die Standard Ascii Zeichen ausgeben kann? Ich würde mich sehr freuen wenn mir das jemand erklären könnte was man eigentlich genau bräuchte um dann doch einen USB-Drucker anschließen zu können. Gibt es keinen Standardtreiber? Wenn ja wie könnte man den denn dann integrieren? Vielen Dank schon mal für eure Antworten. Schönen Abend noch und viele Grüße
zum reinen Text-Drucken müsste das schon gehen. Vorrausgesetzt natürlich, du hast den USB-Host korrekt implementiert (Enumeration etc.). Ein einfacher USB-OTG-Host wird vermutlich nicht reichen.
> Gibt es für USB Drucker keine Standardbefehle mit denen > man z.B. nur die Standard Ascii Zeichen ausgeben kann? Nein, im allgemeinen nicht, du Musst schon den Windows-Druckertreiber nachprogrammieren.
Dann frage ich mich gerade mal, wie USB Printserver funktionieren, die können ja auch nicht für jeden Drucker den "windowstreiber" implementieren.
Drucker die die "Device Class Definition for Printing Devices" von USB.org implementieren, sollten sich zumindest im ASCII Modus ansprechen lassen: http://www.usb.org/developers/devclass_docs/usbprint11.pdf Als Beispielimplementation vielleicht mal die drivers/usb/class/usblp.c aus dem Linux-Kernel zu Gemüte führen.
Der AT90USB1287 kann dank OTG als Host mit eingeschränktem Funktionsumfang genutzt werden, es sollte daher zumindest theoretisch möglich sein, mit USB-Druckern zu kommunizieren. Das ist eine standardisierte USB-Geräteklasse, ähnlich HID für Mäuse und Tastaturen oder MSD für USB-Sticks, Festplatten und Kartenleser. Wie das Protokoll aussieht, wird unter www.usb.org beschrieben sein. Das viel größere Problem aber liegt hierin: > Gibt es für USB Drucker keine Standardbefehle mit denen > man z.B. nur die Standard Ascii Zeichen ausgeben kann? Genau die gibt es nicht. Auch nicht für nicht-USB-Drucker, hier kocht jeder Hersteller sein eigenes oft undokumentiertes Süppchen. Das ist übrigens vollkommen unabhängig von der verwendeten Schnittstelle, ob USB, seriell, parallel oder Ethernet. Zwar gibt es auch hier gewisse Standards, die bei einigen Druckern auch tatsächlich verwendet werden, aber auch die unterscheiden sich erheblich. Epson ESC/P2 wird von manchen Tintenstrahldruckern von Epson verstanden, dürfte aber mittlerweile sehr selten geworden sein. PCL verstehen recht viele Laserdrucker, nur die kleinen und günstigen Modelle nicht, die eine "GDI" genannte Technik einsetzen. PostScript wird von anspruchsvolleren Laserdruckern verstanden. "GDI" ist kein Standard, sondern nur eine Gattungsbezeichnung für zu allem vollkommen inkompatiblen Druckern. Zwar gibt es mit CUPS eine OpenSource-Treiberarchitektur, mit der sehr viele Drucker angesteuert werden können, die aber ist ein paar Hausnummern zu groß für einen AVR ... Wenn Du Dich auf einen Druckertyp festlegen kannst, dann hast Du hingegen gewisse Chancen einer Umsetzbarkeit, Postscript oder PCL sind am besten dokumentiert. Ein Verhalten, wie es die vor zwanzig Jahren weitverbreiteten Nadelratzen an den Tag legten, daß ankommende Zeichen einfach so gedruckt werden, das jedenfalls ist ganz und gar nicht mehr zu erwarten.
Hoppla, das sind ja sehr schnelle Antworten, Danke!!! @ Ernst Bachmann: Was meinst du mit ein einfacher USB otg Host wird nicht reichen? Gibt es denn da unterschiedliche Hostarten? Ich dachte entweder ist der µC Device oder Host? Auf jeden Fall mal Danke für den Link!!! Scheint sehr brauchbar zu sein!! Danke!!!
Hallo, @Hauke Radtki: die benutzen meist RAW-Daten, sind also transparent vom Windows-Druckertreiber über LAN-Printserver-USB. Die Datenaufbereitung erledigt weiterhin der lokale Druckertreiber auf dem druckenden Rechner. Gruß aus Berlin Michael
@ Rufus t. Firefly: Danke für deine ausführliche Erklärung, weiß ich sehr zu schätzen!!! Ja, da liegt mein Problem, ich wollte mich eigentlich auf keinen Drucker spezialisieren! Ich weiß jetzt das dies wohl unmöglich ist :o( Ich hätte gerne ein mobiles Gerät gebaut das Messwerte speichert. Man sollte es dann einfach an einen Drucker anschließen können und der druckt dann die aufgezeichneten Daten aus. Und wenn man einen anderen Baustein verwendet der das Drucken übernimmt? Gibt es da eine Möglichkeit der das Drucken übernehmen könnte?? Vielleicht ein fertiges Modul? (Ich weiß das ist wohl ne blöde Idee….) Viele Gruße….
Nun, der "andere Baustein" muss nur CUPS implementieren ... dann kann schon auf 'ner ganzen Menge Drucker gedruckt werden. Oder der "andere Baustein" ist ein Windows-Rechner, auf dem die erforderlichen Druckertreiber installiert werden müssen. Da normalerweise Drucker an Desktoprechner angeschlossen werden, was hieltest Du vom Ansatz, Druck_dateien_ in einem standardisierten Format (PDF) zu erzeugen, die der geneigte Anwender sich dann auch noch auf dem Bildschirm ansehen kann, anstatt tote Bäume damit zu belästigen?
Es stimmt schon das die alle ihr eigenes Protokoll fahren, aber reiner ASCII-Ausdruck hat noch bei allen USB-Druckern, die mir begegnet sind, funktioniert. (Einfach mal unter Linux mit echo irgendwas >/dev/usb/lp0 testen) Im Zweifelsfall einfach mal unter http://www.openprinting.org/printer_list.cgi den Drucker raussuchen, da steht dann genaueres über den Drucker...
@Rufus t. Firefly: Danke für die Antwort. CUPS ist also eine Art Software. Wie kann man die den in einen Baustein bekommen? Sorry, das ist wahrscheinlich zu hoch für mich :o) Also das mit dem PDF-Format muss ich mir mal überlegen!!! Du meinst man könnte dann mein mobiles Gerät an einem Rechner anschließen und dann bekommt der Rechner ein PDF-File von meinem Gerät geschickt?? Klingt auch nicht schlecht!! Wie würde denn dann das PDF erzeugt?? @Ernst Bachmann: Noch mal Danke für den Link!! Also ich sehe schon ich muss das wirklich mal ausprobieren!! Muss aber noch alles aufbauen. Das dauert bestimmt noch ne weile. Danke auf jeden Fall mal für alle Antworten. Jetzt ist da etwas mehr Licht im dunklen!!!
Es gibt auch noch solche kleinen Drucker, die in den Supermarktkassen die Bons ausdrucken.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.