Allgemeines
|
Vor einigen Jahren habe ich mir USB4all ausgedacht, per USB
steuerbarer Chip, der einige typische Interfaces bereitstellt. Man
fragte ich dann, ob man so etwas nicht auch mit einer
RS232-Steuerung bauen könnte. Schließlich erlaubt RS232 bei
niedrigen Datenrate viel längere Kabel als USB. Hier ist nun das vorläufige Ergebnis. Das Ganze ist noch nicht kompromisslos gestaltet, aber dient als Diskusionsgrundlage. Die Ansteuerung erfolgt wie beim USB4all-CDC. Allerdings ist die Datenrate des COM-Ports auf 9600 Baud einzustellen. Zwei der vom USB4all bekannten Pins fehlen (RC6 und RC7). Dadurch entfallen leider auch SPI- und Microwire-Interface Es gibt nur drei ABCD-Schrittmotorinterfaces und 11 Modellbauservos. Beim Schieberegister-Interface ändert sich geringfügig die Pinbelegung. Ein RS232-Interface gibt es nicht, da es ja durch die Steuerung belegt ist. Es wäre auch nicht gerade sinnvoll. Der Rs4all lässt sich sowohl mit wie auch ohne RS232-Treiber-IC betreiben. Die nebenstehende Schaltung stellt die Version ohne RS232-Treiber-IC dar. Dabei schützt der Widerstand R1 den Mikrocontroller vor Überspannungen. Das RS232-Interface wird hier mit Spannungen außerhalb der Spezifikation betrieben, aber moderne PCs haben damit erfahrungsgemäß keine Probleme. Insbesondere bei kurzen Kabeln zwischen Rs4all und PC kann diese preiswerte Lösung verwendet werden. Pin 15 (D-) ist dafür mit Vdd (+5V) zu verbinden. Soll ein RS232-Treiber-IC verwendet werden, dann muss Pin 15 (D-) mit Vss (0V) verbunden werden. Pin 14 (Vusb) ist frei zu lassen. |
Der Rs4all lässt sich
sowohl mit wie auch ohne 8-MHz-Quarz
betreiben. Ist der Quarz vorhanden, dann wird er automatisch benutzt.
Fehlt der Quarz, dann wird als Ersatz ein interner Taktgenerator
benutzt. Die Nutzung eines Quarzes ist nur angeraten, wenn die
Frequenzzählerfunktion mit hoher Genauigkeit benötigt wird,
oder wenn der Rs4all bei extremen Temperaturen eingesetzt werden soll. Der Quarz ist dann zusammen mit zwei Kondensatoren an die Pins 9 und 10 anzuschließen. (siehe diese Schaltung zum Vergleich) Als Stromversorgung wird eine 5V-DC-Spannungsquelle benötigt. Zulässig sind Spannungen von 4,2V bis 5,5V. Die Stromaufnahme des Controllers liegt unter 10 mA. Dazu kommt noch der Stromverbrauch eventuell angeschlossener Verbraucher. In die obige Schaltung muss die Betriebsspannung an JP1 eingespeist werden. Die Zweite Schaltung (Version 3) hat dagegen Gleichrichter und Spannungsregler bereits integriert. Sie kann mit Gleich- oder Wechselspannung von 9V ... 24V betrieben werden. Bei großen Eingangsspannungen muss die termische Belasdtung von IC2 geprüft werden. Bei Bedarf ist er mit einem passenden Kühlkörper zu versehen. Die Zweite Schaltung verwendet eine andere Belegeung der Steckerleisten. Sie erlaubt es an PortA und PortB diverse Testplatinen anzuschließen. |
PC
sendet
zum
Rs4all |
Bedeutung | Rs4all antwortet |
0x55 - 0x01 - 0x00 | Einschalten des LCDs mit der Standardkonfiguration 2-Zeilen x 16-Zeichen | 16 Nonsens-Bytes |
0x55 - 0x02 -'A' | Senden des 'A' | 16 Nonsens-Bytes |
PC sendet zum Rs4all | Bedeutung | Rs4all antwortet |
0x55 - 0x01 - 0x00 |
Einschalten des LCDs mit der Standardkonfiguration 2-Zeilen x 16-Zeichen | 16 Nonsens-Bytes |
0x55 - 0x02 - 0x0A - 'Hallo Welt' | Senden von 'Hallo Welt' | 16 Nonsens-Bytes |
PC sendet zum Rs4all | Bedeutung | Rs4all antwortet |
0x51 - 0x01 - 0x01 - 0x00 |
Einschalten des ADC mit einem
analogen Eingang, AN0 ist ausgewählt |
16 Nonsens-Bytes |
0x51 - 0x03 | Abfragen der Spannung |
0x51 - 0x03 - low - high |
PC sendet zum Rs4all | Bedeutung | Rs4all antwortet |
0x54 - 0x01 - 0x00 - 0x00 |
Einschalten des I2C-Busses | 16 Nonsens-Bytes |
0x54 - 0x05 - 0x48 - 0x02 |
Abfragen der Temperatur |
0x00 - 0x05 - 0x48 - 0x02 - Grad
- Nachkommastelle |
PC sendet zum Rs4all | Bedeutung | Rs4all antwortet |
0x57 - 0x01 - 0x00 |
Einschalten des PWM1 mit 8 kHz, 8 Bit Auflösung | 16 Nonsens-Bytes |
0x57 - 0x02 - 0x80 - 0x00 |
Tastverhältnis 50 % |
16 Nonsens-Bytes |
PC sendet zum Rs4all | Bedeutung | Rs4all antwortet |
0x5D - 0x01 | Einschalten des 1. Schrittmotorinterfaces | 16 Nonsens-Bytes |
0x5D - 0x02 - 0x32- 0x00- 0x06- 0x00 | sofort 50 Halbschritte
rechtsherum mit 1000 Hz drehen |
16 Nonsens-Bytes |