Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| elektronik:usbport [2013/07/05 12:10] – Seite verschoben und umbenannt von z9001:erweiterungen:usb nach elektronik:usbport volkerp | elektronik:usbport [2013/07/07 11:29] (aktuell) – [Schaltung] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== USB-Anschluss ====== | ====== USB-Anschluss ====== | ||
| + | |||
| + | 2007 habe ich einen 8-Bit-Parallelport über USB gebastelt. Der Aufwand ist minimal, die Bauteile sind für knapp 2,50 Eur bei Pollin erhältlich. | ||
| {{z9001: | {{z9001: | ||
| - | **Hier ist er endlich - mein 2.50-Euro-USB-Anschluss!** | ||
| - | Und nein - es können keine USB-Geräte wie USB-Sticks am KC angeschlossen werden, der KC wird an den PC angeschlossen. Eigentlich | + | Schaltung und (alte) Software stammt von Ing. Igor Cesko und seinem Projekt IgorPlugUSB_RS232 (s.u.). |
| + | |||
| + | Sechs Jahre später (2013) habe ich begonnen, die Software auf die allgemein gebräuchlichere Variante V-USB (http:// | ||
| - | Ich begebe mich hier auf Messers Schneide: Ich bastel' | ||
| + | <WRAP info> | ||
| + | Zum Kopplen eines KC mit einem PC ist heutzutage sicherlich nach wie vor eine V24-Verbindung besser geeignet. Dafür steht i.allg. auf beiden Seiten der Kopplung Software zur Verfügung, während sie für diesen USB-Anschluss erst geschrieben werden muss. Steht am KC kein serieller Anschluss bereit, kann etwa mit einem kleinen USB To RS232 TTL-Anschluss mit PL2303HX (~ 1€ bei bei ebay) eine serielle Schnittstelle an freien PIO-Portanschlüssen realsiert werden</ | ||
| ===== Schaltung ===== | ===== Schaltung ===== | ||
| - | Die Minimal-Schaltung und die gesamte USB-Treiber-Software stammt von Ing. Igor Cesko http:// | + | Die Minimal-Schaltung und die (alte) |
| IgorPlug-USB to RS232 converter}}, | IgorPlug-USB to RS232 converter}}, | ||
| - | |||
| - | Von Atmel gibt es diese Lösung als freie Version, die als " | ||
| - | |||
| - | AVR309: Software Universal Serial Bus (USB) (23 pages, revision B, updated 02/06) \\ This application note describes the USB implementation in a low-cost microcontroller through emulation of the USB protocol in the firmware. Supports Low Speed USB (1.5 Mbit/s) in accordance with USB2.0. | ||
| {{z9001: | {{z9001: | ||
| - | |||
| - | Andere Schaltungs- und Softwarevariationen sind auch http:// | ||
| Von allen Möglichkeiten des USB-Interface wird in meiner Variante nur der I/O-Port (8 Datenleitungen) genutzt, die an die User-PIO1B des Z9001 angeschlossen werden. | Von allen Möglichkeiten des USB-Interface wird in meiner Variante nur der I/O-Port (8 Datenleitungen) genutzt, die an die User-PIO1B des Z9001 angeschlossen werden. | ||
| Zeile 30: | Zeile 28: | ||
| * USB-Steckverbinder | * USB-Steckverbinder | ||
| - | Die Widerstände und Kondensatoren | + | Die Widerstände und Kondensatoren |
| Der Aufbau erfolgte auf einer Lochrasterplatte 30x45 mm und mit Handverdrahtung (Verowire Fädelstift) und funktionierte fast auf Anhieb. Deshalb hier ein paar Hinweise, die ich im Netz gefunden habe: | Der Aufbau erfolgte auf einer Lochrasterplatte 30x45 mm und mit Handverdrahtung (Verowire Fädelstift) und funktionierte fast auf Anhieb. Deshalb hier ein paar Hinweise, die ich im Netz gefunden habe: | ||
| Zeile 38: | Zeile 36: | ||
| * Kondensatoren für den Quarz braucht man nicht unbedingt. | * Kondensatoren für den Quarz braucht man nicht unbedingt. | ||
| * Original ist die Schaltung für einen AT90S2313 ausgelegt. Diese Mikrocontroller werden nicht mehr produziert und wurden durch den TINY2313 ersetzt. Dieser ist code-kompatibel zum AT90S2313, d.h. das Hex-Binary kann ohne Änderung gebrannt werden. __Zu beachten ist, dass Fuses gesetzt werden müssen, sonst funktioniert es nicht!\\ __Unter http:// | * Original ist die Schaltung für einen AT90S2313 ausgelegt. Diese Mikrocontroller werden nicht mehr produziert und wurden durch den TINY2313 ersetzt. Dieser ist code-kompatibel zum AT90S2313, d.h. das Hex-Binary kann ohne Änderung gebrannt werden. __Zu beachten ist, dass Fuses gesetzt werden müssen, sonst funktioniert es nicht!\\ __Unter http:// | ||
| - | * Hat man keinen geeigneten " | + | * Hat man keinen geeigneten " |
| + | |||
| ===== Software ===== | ===== Software ===== | ||
| + | |||
| + | |||
| + | ==== V-USB ==== | ||
| + | |||
| + | (Windows + Linux) | ||
| + | |||
| + | V-USB ist ein Software-USB-1.1-Treiber in C, ein Projekt von Objective Development | ||
| + | http:// | ||
| + | |||
| + | ==== PowerSwitch ==== | ||
| + | |||
| + | PowerSwitch http:// | ||
| + | |||
| + | < | ||
| + | USB D+ USB D- P0 P1 P2 P3 P4 P5 P6 P7 | ||
| + | ----------------------------------------------------------------------------- | ||
| + | PowerSwitch PB1+PD2 PB0 PD4 PD5 PB2 PB3 PB4 PB5 PB6 PB7 | ||
| + | I. Cesko PB1+PD2 PB0 PD3 PD5 PD6 PB3 PB4 PB5 PB6 PB7 | ||
| + | zusätzlich sind PB2 und PD4 miteinander verbunden | ||
| + | </ | ||
| + | |||
| + | Nur die Ausgänge P0 und P2 liegen an anderen Controlleranschlüssen, | ||
| + | die Änderungen in der Beispielsoftware beschränken sich damit auf die Ausgabefunktion in main.c: | ||
| + | |||
| + | < | ||
| + | static void outputByte(uchar b) | ||
| + | { | ||
| + | PORTB = (PORTB & ~0xf8) | (b & 0xf8); // Bit 7..3 | ||
| + | PORTD = (PORTD & ~0x68) | ((b << 3) & 0x08) | ((b << 4) & 0x60); //Bit 2..0 = PD6, PD5, PD3 | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Nach Compilieren und Flashen des TINY2313 mit main.hex und Fuses hfuse=0xdb, lfuse=0xef (s. Makefile) | ||
| + | kann das Kommandozeilen-Programm powerSwitch.exe mit dem USB-Anschluss und der LED-Platine getestet werden: | ||
| + | |||
| + | powerSwitch off 0 | ||
| + | powerSwitch on 3 | ||
| + | powerSwitch status | ||
| + | |||
| + | {{z9001: | ||
| + | |||
| + | Auf einer Lochrasterplatte habe ich 8 LEDs nebst Vorwiderständen und einer 3x5poligen Buchse untergebracht (Für Nachbauer: die LEDs sind sinnvoller auf der anderen Leiterseite bzw. abgewinkelt anzubringen, | ||
| + | |||
| + | ==== AVR309 ==== | ||
| + | |||
| + | (alt, nur Windows) | ||
| + | |||
| + | Von Atmel gibt es die Schaltung und Software nach Cesko als freie Version, die als " | ||
| + | |||
| + | AVR309: Software Universal Serial Bus (USB) (23 pages, revision B, updated 02/06) \\ This application note describes the USB implementation in a low-cost microcontroller through emulation of the USB protocol in the firmware. Supports Low Speed USB (1.5 Mbit/s) in accordance with USB2.0. | ||
| + | |||
| + | Andere Schaltungs- und Softwarevariationen sind auch http:// | ||
| Am PC muss ein **USB-Treiber** installiert werden. Dieser liegt incl. reich bebilderter Installationsanleitung im Paket von Atmel {{http:// | Am PC muss ein **USB-Treiber** installiert werden. Dieser liegt incl. reich bebilderter Installationsanleitung im Paket von Atmel {{http:// | ||
| 10 PRINT INP(137): GOTO 10 | 10 PRINT INP(137): GOTO 10 | ||
| + | |||
| + | ==== Lauflicht ==== | ||
| Zum **Testen der Hardware** habe ich nach einer Idee von {{http:// | Zum **Testen der Hardware** habe ich nach einer Idee von {{http:// | ||
| Zeile 51: | Zeile 105: | ||
| Auf einer Lochrasterplatte habe ich 8 LEDs nebst Vorwiderständen und einer 3x5poligen Buchse untergebracht (Für Nachbauer: die LEDs sind sinnvoller auf der anderen Leiterseite bzw. abgewinkelt anzubringen, | Auf einer Lochrasterplatte habe ich 8 LEDs nebst Vorwiderständen und einer 3x5poligen Buchse untergebracht (Für Nachbauer: die LEDs sind sinnvoller auf der anderen Leiterseite bzw. abgewinkelt anzubringen, | ||
| + | |||
| + | ===== Verbindung mit KC ===== | ||
| **Was kann man nun damit am Z9001 machen?** | **Was kann man nun damit am Z9001 machen?** | ||
| - | Als erste Lösung plane ich eine Rechnerkopplung, | + | :!: Es können keine USB-Geräte wie USB-Sticks am KC angeschlossen werden, der KC wird an den PC angeschlossen. Eigentlich ist es also ein USB-Interface für den PC. |
| + | |||
| + | Als erste Lösung plane ich eine Rechnerkopplung, | ||
| + | das Terminal-Programm SDX funktioniert schon. | ||