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. |