USALS-Codegenerator für Sat-Drehmotor

OP #2138276
Lesenswert?

Hallo,

ich habe eine Satellitenempfangsanlage mit 3 Schüsseln. 2 davon haben 
einen Drehmotor mit USALS-Protokoll (auch DiSEqC 1.3, Go X oder Go to XX 
genannt). Die Motoren werden nicht all zu oft bewegt (nur ca. 1-3 Mal im 
Monat, wenn ich etwas von einem neuen interessanten Sender auf einem 
Satellit lese, den ich gerade nicht angepeilt habe).

Ich habe 2 SAT-Buchsen in der Wohnung, mit denen ich die 2 Drehmotoren 
ansteuern kann. Zum Ansteuern verwende ich bisher meinen uralt 
Grundig-Receiver, der langsam aber sicher seinen Geist aufgibt.

Mir wäre es lieber, wenn ich ein separates kleines Gerät mit 
Tasten/Display hätte, mit denen ich die Satellitenposition wählen kann. 
Bisher habe ich aber kein Gerät gefunden, das so etwas kann. Kennt 
jemand ein solches Gerät? Ansteuerung per PC wäre auch OK.
Die Datenkommunikation bei USALS bzw. DiSEqC erfolgt mit aufmodulierten 
22kHz-Signalen (siehe Anhang).

Alternativ könnte ich mir auch selbst ein solches Gerät bauen (mit AVR).
Gibt es eine fertige Hardware-Komponente, die man für die 
22kHz-Signalaufmodulierung verwenden könnte? So etwas sollte ja in fast 
allen Satellitenreceivern drin sein. Müßte es ja auch irgendwo samt 
Datenblatt kaufen können.

Hier noch Links zu USALS bzw. DiSEqC

http://en.wikipedia.org/wiki/Universal_Satellites_Automatic_Location_System
http://de.wikipedia.org/wiki/Digital_Satellite_Equipment_Control

Gruß
Martin
Angehängte Dateien:
OP #2138382
Lesenswert?

Nachtrag:

Vom Motorhersteller Stab gibt es so was Ähnliches (mit Fernbedienung), 
allerdings nur für DiSEqC 1.2:

http://www.satshop24.de/satshop24_s/positionierer_fuer_stab_motor_interface_.html

Bei DiSEqC 1.2 muß man den Motor auf die einzelnen gewünschten 
Satellitenpositionen einlernen und kann diese dann mittels gespeicherter 
Werte im Motor abrufen (Satellit Nr. 1,  Satellit Nr. 2, ...). Das hat 
gewisse Nachteile, wenn man einen "neuen" Satelliten anfahren möchte.

Bei USALS muß man nur einen Satellit zum Kalibrieren einstellen. 
Zusätzlich benötigt man noch die Koordinaten des Standortes der 
Sat-Schüssel (Längen- / Breitengrad => bei Sat-Receivern mit USALS gibt 
man die Standortwerte einmalig im Receiver ein).

Anschließend muß man nur die Position des Satelliten angeben (z.B. 22,8° 
Ost), und der Motor fährt an die gewünschte Position, ohne diese vorher 
einlernen zu müssen.

Gruß
Martin
OP #2253150
Lesenswert?

Nun kam die folgende Antwort von dem Entwickler. Er hat mir erlaubt, den 
Inhalt der Email hier rein zu kopieren:


First of all, here are the documents used, otherwise, the circuit would 
not have been designed:

-1- EUTELSAT: Positioner application note version 1.0
-2- EUTELSAT: Bus functional specification version 4.2
-3- EUTELSAT: Application information for using a PIC microcontroller in 
DiSEqC and simple switcher Versiuon 1.0 (based on an old PIC16C620)

-4- ELEKTOR ELECTRONICS 9/2006: (page46) DiSEqC monitor, PIC listens in 
on satellite receiver control bus, based on a PIC16F628
-5- diseqc12_navod_fw114_fw115.zip, from Hynek GAJDA (Tcheque republic) 
based on a PIC16F84A

The most important thing is to well undestand the bus functionality, 
from which I wrote the assembler code EMITMSG (in the file DiSEqC.INC). 
The 22kHz is a digital square wave generated by the routine "emit22kHz" 
(in the file DiSEqC.INC), and holds the message data format, as 
specified in reference 2, pages 8,9,10. Briefly:

- to send a bit at logic "1", you just have to send 11 cycles of 22kHz 
(see routine "emit1")
- to send a bit at logic "0", you just have to send 22 cycles of 22kHz 
(see routine "emit0")

Finally, emitting a binary code (1 byte + odd parity bit) consists of a 
combinaison call of these two routines.
Messages hexadecimal data E0 31 69 FF (1 step to West),  E0 31 68 FF (1 
step to East) and  E0 31 6B 00 (goto reference position) have been 
retreived from Tables 5 and 6, pages 15 and 16, in reference 1.

Then I tried the circuit of ELEKTOR, which worked well.

Finally, I looked again at the old circuit of EUTELSAT (PIC16F620) and 
tried to optimize it, with a smaller PIC, and a basic assembler code to 
drive the motor 1 step to East, or 1 step to West, or return to a 
reference position (0° South).


Best regards
Charaf Laissoub

~~~~~~~~~~~~~~~~~~~~
Leider habe ich gerade keine Zeit, mir das ganze rein zu ziehen, da ich 
an einem anderen Projekt arbeite. Wäre nett, wenn der eine oder andere 
weitere Infos hier rein stellen würde.

Gruß
Martin
#4141039
Lesenswert?

@Martin, @Ingenium,

ich arbeite momentan an diesem Projekt mit der Schaltung des 
EDN-Networks.
Habt ihr daran weiter gearbeitet? Wenn ja, welche Erfahrungen habt ihr 
damit gemacht?

Ich erhalte mit der Schaltung, obwohl ich aus dem Arduino UNO direkt ein 
schönes Rechtecksignal erhalte, starke Überschwinger bei steigenden und 
fallenden Flanken.

Ich habe sie nur leicht abgeändert um sie mit dem Arduino zu verwenden.
Hierzu habe ich den oberen Teil zur Spannungsregelung entfernt, da der 
Arduino eine interne Spannungsregelung besitzt.

Danke für eure Hilfe!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren