Start

Experimente
- I/Q-Mischer
- I/Q-DRM
- Wetterfax
- Antialiasing
- DDS + PLL
- Verstärker
- I/Q mit ICS307
- USB FT232R
- Ferritantenne

Grundlagen

Produkte

Neues

Impressum

Abstimmung über den USB

Der programmierbare Quarzoszillator wird üblicherweise über die serielle Schnittstelle programmiert. Tatsächlich wird aber über die RS232 ein I2C-Bus erzeugt, der den CY27EE16 ansteuert. Die Busleitungen SCL und SDA sind auch direkt an die Anschlüsse der Baugruppe geführt und können z.B. über einen Mikrocontroller angesteuert werden. Damit hat man auch die Möglichkeit, einen USB-Adapter UM232R zu verwenden. Die Leitungen DB0 bis DB7 sind zwar einer seriellen Schnittstelle zugeordnet, können aber im Bit-Bang-Modus auch als schneller paralleler Datenbus verwendet werden. Genau dieses Verfahren wird beim "Software Defined Radio mit USB-Schnittstelle" von Elektor verwendet. Für die Entwicklung des Empfängers wurden das UM232R und der CLCKGEN verwendet. Daher lässt sich auch der IQ-Mischer über den USB abstimmen.

Die Busleitungen werden einfach über zwei Widerstände mit 330 Ohm verbunden. Man ist im Prinzip frei in der Wahl der Portleitungen. Hier wurden jedoch die Leitungen DB2 (RTS) und DB4 (DTR) verwendet, damit mit geringen Änderungen auch ein fertiger USB/Seriell-Wandler eingesetzt werden kann.

Der bei AK MODUL-BUS angebotene USB/RS232-Wandler ADAPUSBCOM arbeitet genau wie das UM232R auf der Basis des FT232. Deshalb kann die schnelle USB-Abstimmung mit dem Bit-Bang-Modus auch über diesen USB-Adapter ausgeführt werden. Man muss nur beachten, dass die Ausgangsleitungen über den Schnittsellentreiber invertiert werden und dass nur die drei Leitungen TXD, RXD und DTR als Ausgänge genutzt werden können. Mit der passenden Software kann dann mit hoher Geschwindigkeit über den USB abgestimmt werden.

Das Abstimmprogramm ist eine erweiterte Version des Programms ClockIQ, wobei sowohl die COM-Schnittstelle als auch beide Versionen der USB-Schnittstelle verwendet werden können. Voraussetzung ist der aktuelle Treiber, der vor dem Verbinden des USB-Geräts automatisch mit CDM_Setup.exe installiert wird. Das Programm erlaubt Abstimmschritte von 1 kHz über den gesamten Bereich von 30 kHz bis 30 MHz. Die Einsatzmöglichkeiten entsprechen weitgehend denen des Programms ElektorSDR2.

Download ClockIQ2 mit Quelltext und Treiber (Clockiq2.zip, 702 KB)

Der Delphi-Quelltext zeigt die Ansteuerung der I2C-Schnittstelle. Intern wird die USB-Ansteuerung über das UM232R als "COM=11" geführt, der USB-Adapter als "COM=12". Für die schnelle Übertragung im Bit-Bang-Modus werden zuerst alle Pegeländerungen an den Ports in einem Puffer FT_Out_Buffer gespeichert und dann als Block übertragen. Anders als über eine virtuelle serielle Schnittstelle wird damit eine extrem schnelle Abstimmung in weniger als 2 ms erreicht.
procedure SCL(d:Integer);
begin
if COM < 11 then begin
if d=1 then RTS (1) else RTS (0);
Delay (0.01);
end;
If COM = 11 then begin //UM232R
if d=0 then FT_port := FT_port and (255-4) else FT_port := FT_port or (4); //Bit 2
FT_Out_Buffer[Buf_adr] := FT_port;
Buf_adr := Buf_adr +1;
end;
If COM = 12 then begin //USB/Seriell-Adapter mit FT232
if d=1 then FT_port := FT_port and (255-4) else FT_port := FT_port or (4); //Bit 2
FT_Out_Buffer[Buf_adr] := FT_port;
Buf_adr := Buf_adr +1;
end;
end;

procedure SDA(d:Integer);
begin
if COM < 11 then begin
if d=1 then DTR (1) else DTR (0);
Delay (0.01);
end;
if COM = 11 then begin //UM232R
if d=0 then FT_port := FT_port and (255-16) else FT_port := FT_port or (16); //Bit 2
FT_Out_Buffer[Buf_adr] := FT_port;
Buf_adr := Buf_adr +1;
end;
if COM = 12 then begin //USB/Seriell-Adapter mit FT232
if d=1 then FT_port := FT_port and (255-16) else FT_port := FT_port or (16); //Bit 2
FT_Out_Buffer[Buf_adr] := FT_port;
Buf_adr := Buf_adr +1;
end;
end;
Das verwendete Übertragungsverfahren lässt sich übrigens leicht auch für eine DDS oder z.B. für den ICS307 anpassen. Bei Bedarf kann man die Stromversorgung des USB verwenden und kommt dann ohne ein Netzteil aus.