Hi,
ich brauch Eure Hilfe. Ich versuche schon den ganzen Tag diese RFM12
Module zum laufen zu bekommen. Aber überall gibts anderen Code, andere
Anschlussbelegungen und da ich Neuling bei Bascom bin, seh ich nicht
wirklich durch bei den Beispielcodes.
Ein wenig zu mir:
Ich habe mich früher viel mit den Pics rumgeschlagen, aber wurde nie
richtig warm mit ihnen. Zu mehr als ein wenig Leds blinken lassen, hat
nie gereicht. Jetzt bin ich auf die AVRs und Bascom umgestiegen und
siehe da, mit dem ganzen komme ich nun gar richtig klar. Kleine
Lochraster-Experimentierplatine existiert mit Atmega8 und 4 Mhz extern,
an dem inzwischen ein 2x16 Display, Max232+Schnittstelle und DCF77
Empfänger hängt. Das erste Projekt, die DCF Uhr mittels der Bascom
eigenen Routine lief recht schnell und ohne große Probleme.
Nun will ich Daten per Funk senden. Conrad hat ja für 16 Euro etwa ein
Set 433 MHZ AM im Angebot. Sender und Empfänger. Wäre schön einfach da
hier der Atmega8 selbst alles machen müsste. Pollin hatte aber auch die
RFM Module von denen ich nun 2 RFM12 und je ein 01 und 02 Modul hier
habe. Und an diesen RFM Modulen verzweifle ich langsam.
Ein RFM12 Modul ist bereits auf der Experimentierplatine verbaut, ein
zweites auf einer neuen Platine. Ebenfalls Atmega8 4Mhz. Pins:
Pd5 = SDO ; PD6 = NSEL ; PD7 = SCK und PB0 = SDI. Pins bei Sender und
Empfänger sind gleich. VDD an +5V und GND natürlich an - der 5V
Spannungsquelle. Die restlichen Pins der RFM12 Module sind offen. Die
Cods für Sender und Empfänger habe ich angehangen. Wäre cool wenn mir da
jemand weiter helfen könnte. Die Cods habe ich bei meiner langen Suche
im Netz aufgeschnappt und soweit modifiziert das die empfangenen Daten
aufs Display ausgegeben werden.
Wenn ich damit garnicht klar komme, nehm ich echt die AM Module und
zerleg die Bytes einfach in 0 und 1 Impulse die der Empfänger dann eben
wieder zusammen addiert und weiter verarbeitet.
>Wenn ich damit garnicht klar komme, nehm ich echt die AM Module und>zerleg die Bytes einfach in 0 und 1 Impulse die der Empfänger dann eben>wieder zusammen addiert und weiter verarbeitet.
So einfach wird das mit den billigen Modulen aber nicht.
Die Empfänger geben eine Art Rauschen aus wenn kein Träger da ist.
Das machen sie auch wenn der Träger zu lange steht. Das wird
noch viel komplizierter als mit den RFM12.
Ok, dann muss ich mich da wohl durchfuchsen ;). Hab mal ne nette Seite
gefunden die mir echt was weiter helfen könnte, weil dort auch die
Hardware-Spi von den Anschlüssen her aufgezeigt ist.
http://comwebnet.co.funpic.de/seite48.html
Aber heute nicht mehr. Morgen ist auch wieder viel Zeit. Gut das ich
noch krank geschrieben bin :D.
>>>Die restlichen Pins der RFM12 Module sind offen.
FSK muss noch mit ca. 10k an VCC.
Ob die Kommunikation zum RFM12 grundsätzlich passt kann man durch
umschalten der CLK Frequenz von 1 auf 10Mhz feststellen bzw. auschalten,
sofern man das messen/anzeigen kann.
Holger
Moin,
erstmal Danke für die Tipps.
Ich bin jetzt erstmal beim grundsätzlichen Studium des SPI-Ports.
http://www.uni-koblenz.de/~physik/informatik/MCU/SPI.pdf
Sehr interessantes Dokument. Klärt erstmal über die verwendeten Pins,
deren Bedeutung und wie SPi allgemein funktioniert auf was mir erstmal
beim Verständnis des SPI sehr hilft.
Juti, erstmal alles auf Hardware-Spi umgelötet. Damit fällt aber der
Code von gestern weg, weil der auf die Pins per Alias zugreift. Schmeiß
ich die Deklaration dafür raus weil ja nun Hardware-Spi, jammert der
natürlich rum das er mit NSEL und Co nix anfangen kann.
Was ich suche ist irgendein Code für Sender --- und --- Empfänger.
Irgendwas der Art:
SPI = HardwareSPI
Quarz = 4 Mhz
Baud = 4800
dim senden as byte
dim empfangen as byte
senderoutine:
print "Wert eingeben"
inkey(senden)
rfm12_sende(senden)
print "Wert gesendet"
empfangsroutine
if empfangen <> 0 then
print "empfangen: " , empfangen
end if
Bisher hab ich die RFM Module so verstanden das die ihren eigenen
Controller gleich auf der Platine mitbringen und daher auch in der Lage
sind ganze Bytes zu senden. Also Zahlen bis 255 statt nur Bits wie es
die analogen AM Module tun. Vielleicht hat jemand einen Code wo gut
ersichtlich ist welche Variable die Daten zum Senden aufnimmt und welche
Variable die empfangenen Daten enthält... Weil ich seh da nicht
ernsthaft durch bei den bisher gefundenen Codes.
Der Code von Benedikt hier im Forum ist gut, aber in C.
Den hab ich für PIC umgesetzt. Ob es was fertiges für Bascom gibt, k.A.
Oszi ist für die Fehlersuche zu empfehlen.
Hardware SPI würde ich nicht empfehlen. Mit Software hat man die Bits
besser unter Kontrolle.
Wie schon gesagt, versuch die Kommunikation zum RFM12 hinzubekommen und
schalte den Takt an CLK ein aus um (was du messen müsstest), damit
weisst du ob das erstmal läuft.
Holger
Holger, ich Danke Dir. Ich werde es mal probieren. Das mit dem Takt, ich
hab zwar kein Oszi hier, aber theoretisch müsste wenn der Takt da ist
mein Spannungsmessgerät eine Wechselspannung anzeigen und wenn kein Takt
da ist, logisch 0V.
Hier ein Auszug aus dem Header, welchen ich damals als Grundlage benutzt
habe:
'info about using RF12 with Bascom: www.comwebnet.de
'Version: v0.01
'Author: Kurzschluss
Da gibt es Routinen zum Senden und Empfangen.
Bei mir hat die Konfiguration der Module nicht richtig hingehauen, da
musste ich was anpassen.
Hier meine Sub: