PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TRX 433 blinkt wie verrückt



lonely
08.05.2005, 23:10
Hi leute,

ich habe ein grosse problem beim ansteuern eines TRX 433 mit der C-Control 1 Unit. Egal was ich mache, ich bekomme keine Daten vom TRx 433.
Ich kann zwar Kommando- und Daten-Frames and das TRX-Modul übertragen aber sonst passiert nichts.

Ich hab zuerst die Beispiele von Konrad benutzt, leider ohne Erfolg.
Dann habe ich in mBasic einen Treiber geschrieben, mit selbigem Ergebnis.
Damit konnte ich allerdings etwas sehr seltsames beobachten.
Sobald ich damit beginne den Kommandoframe zu übertragen und die Clock-Leitung auf "high" setzte
fängt die Acknowledge-Leitung wie wild zum Blinken an, obwohl sie doch eigentlich normal auf "High"
gesetzt werden sollte, oder?
Das zweite Phänomen ist, sobald ich die Data-Leitung auf "High" setzte blinkt auch diese, was ich noch
weniger kapiere, da ich sie ja auf "High" setzte, und nicht das TRX.

Mittlerweile habe ich alles mehrfach geprüft. Die Pull-down-Widerstände(1k) der drei Ports sind auf Masse
gelegt und das TRX wird über die interne Versorgungsspannung des Applikation-Boards gespeisst.

Ich hoffe auf Hilfe, danke, Uli

Dirk
09.05.2005, 17:16
Hallo Uli,

wichtig für den Test auf richtige elektrische Verbindung ist die Funktion GET_STATUS (COMMAND=0). Der TRX sollte mit seiner Geräteadresse in SDATA1 antworten.
Das muss zuerst o.k. sein, d.h. nach einem Reset wäre die Antwort 255.

Wenn das funzt, kannst du mit einem 2. TRX die Sende-/Empfangsfunktion testen.

Hier sind die wesentlichen Funktionen für den TRX 433:

' Konstanten-Definitionen:

define MIN_POWER 50 'Für TRX SET_POWER

' Variablen-Definitionen:

' TRX Benutzer Interface
define MODE byte[1]
define SDATA1 byte[2]
define SDATA0 byte[3]
define COMMAND byte[4]
define SADDRESS byte[5]

define DATA0 byte[2]
define DATA1 byte[3]
define DATA2 byte[4]
define DATA3 byte[5]
define DATA4 byte[6]
define DATA5 byte[7]
define DATA6 byte[8]
define ADDRESS byte[9]

'define TRX_BYTE byte[5] 'DATA3
define TRX_INT word[3] 'DATA3/4

' Digitalport-Definitionen:
define DATA port[1] ' TRX 433 DATA (blau)
define CLOCK port[2] ' TRX 433 CLOCK (gelb)
define ACKN port[3] ' TRX 433 ACKN (grün)

' TRX 433 Treiber Aufrufe:
define SEND &H0101
define RECEIVE &H017D


' TRX 433 Interface:

' 8 Byte RF-Frame senden
#SEND_RF
#SEND_RF8
MODE=0:sys SEND:return
' 8 Byte RF-Frame empfangen
#RECEIVE_RF
#RECEIVE_RF8
MODE=2:SADDRESS=0:COMMAND=13:sys SEND:pause 1
MODE=0:sys RECEIVE:return
' TRX Status lesen
#GET_STATUS
MODE=2:SADDRESS=0:COMMAND=0:sys SEND:sys RECEIVE
return 'Geräteadresse=SDATA1
' Kanal 0..4 (aus SDATA0) einstellen
#SET_CH
MODE=2:SADDRESS=0:COMMAND=7:sys SEND:return
' Kanal 0 einstellen
#CH0_ON
MODE=2:SADDRESS=0:COMMAND=7:SDATA0=0:sys SEND:return
' Kanal 1 einstellen
#CH1_ON
MODE=2:SADDRESS=0:COMMAND=7:SDATA0=1:sys SEND:return
' Kanal 2 einstellen
#CH2_ON 'Standard!
MODE=2:SADDRESS=0:COMMAND=7:SDATA0=2:sys SEND:return
' Kanal 3 einstellen
#CH3_ON
MODE=2:SADDRESS=0:COMMAND=7:SDATA0=3:sys SEND:return
' Kanal 4 einstellen
#CH4_ON
MODE=2:SADDRESS=0:COMMAND=7:SDATA0=4:sys SEND:return
' Sendeleistung 0..255 (aus SDATA0) einstellen
#SET_POWER
MODE=2:SADDRESS=0:COMMAND=6:sys SEND:return
' Sendeleistung -43 dBm einstellen
#POWER0
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=0:sys SEND:return
' Sendeleistung -20 dBm einstellen
#POWER1
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=1:sys SEND:return
' Sendeleistung -15 dBm einstellen
#POWER2
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=2:sys SEND:return
' Sendeleistung -10 dBm einstellen
#POWER3
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=4:sys SEND:return
' Sendeleistung -5 dBm einstellen
#POWER4
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=8:sys SEND:return
' Sendeleistung 0 dBm einstellen
#POWER5 'Standard!
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=15:sys SEND:return
' Sendeleistung +5 dBm einstellen
#POWER6
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=111:sys SEND:return
' Max. Sendeleistung +10 dBm einstellen
#POWER7
#POWER_MAX
MODE=2:SADDRESS=0:COMMAND=6:SDATA0=255:sys SEND:return
#POWER_MID
SDATA0=100:goto SET_POWER
#POWER_MIN
SDATA0=MIN_POWER:goto SET_POWER
' Reset TRX
#RESET_TRX
MODE=2:SADDRESS=0:COMMAND=8:sys SEND:pause 10
MODE=0:return
' CF-Framelänge 4 Byte wählen
#FRAME4
MODE=2:return
' RF-Framelänge 8 Byte einstellen
#FRAME8
MODE=2:SADDRESS=0:COMMAND=4:sys SEND
MODE=0:return
' RF-Framelänge 16 Byte einstellen
#FRAME16
MODE=2:SADDRESS=0:COMMAND=5:sys SEND
MODE=1:return
' Device Address 0..255 (aus SDATA0) einstellen
#SET_DEVICE_ADDRESS
MODE=2:SADDRESS=0:COMMAND=3:sys SEND
return
' Präambellänge (aus SDATA0) einstellen
#SET_PREAMBLE
MODE=2:SADDRESS=0:COMMAND=14:sys SEND
return

' RF-Buffer leeren
#FLUSH
if DATA=on then gosub RECEIVE_RF
return
' Warten (TRX_INT * 20ms) bis Daten gelesen werden können
#WAIT4READY
TRX_INT=TRX_INT+timer
#WAITING
if DATA=on then goto DATA_VALID
if TRX_INT<>timer then goto WAITING
TRX_INT=off:return 'Timeout
#DATA_VALID
TRX_INT=on:return 'Daten können gelesen werden
' Untere FSK Frequenz einstellen
#FSK_LO
MODE=2:SADDRESS=0:COMMAND=12:SDATA0=0:sys SEND:return
' Obere FSK Frequenz einstellen
#FSK_HI
MODE=2:SADDRESS=0:COMMAND=12:SDATA0=1:sys SEND:return
' Sender einschalten
#TX_ON
MODE=2:SADDRESS=0:COMMAND=9:sys SEND
return
' Empfänger einschalten
#RX_ON
MODE=2:SADDRESS=0:COMMAND=10:sys SEND
return
' Audio 1k senden
#TX_AUDIO1K
MODE=2:SADDRESS=0:COMMAND=1:SDATA0=&H11:SDATA1=&H16:sys SEND
return
' Audio 2k senden
#TX_AUDIO2K
MODE=2:SADDRESS=0:COMMAND=1:SDATA0=&H11:SDATA1=&H26:sys SEND
return


Gruß Dirk

lonely
11.05.2005, 22:48
Genau das habe ich versucht,
aber ich bekomme ja nicht einmal daten vom TRX zurück.

Da ich was das angeht leider etwas unter zeitdruck stehe, habe ich
mir jetzt mal 2 Easyradio-Module besorgt, die arbeiten über eine normale
serielle Schnittstelle, hoffentlich klappt's damit.

Trotzdem danke für die Antwort,

Gruß uli