Hallo zusammen,
ich habe mir eine Schaltung aufgebaut nach dem Schaltplan:
http://obersomer.com/furios-power/images/atmel_projekte/rfm12/rfm12_empfaenger2_schaltplan.pdf
, verwende jedoch statt dem ATTiny13 den ATTiny85. Im Prinzip ist die
Schaltung denkbar einfach und das RFM12-Modul ist direkt per SPI an den
ATTiny angeschlossen. Die Beschaltung ist minimal, es kommt daher auch
kein Interrupteingang zum Einsatz. Um einen weiteren I/O-Port zu
erhalten, habe ich nSEL (Chip-Select) auf GND gezogen (es sollen keine
weiteren SPI-Geräte angeschlossen werden).
Ich verwende allerdings nicht die Quellcodes auf der Homepage. Als SPI
kommt aktuell noch ein Software-SPI zum Einsatz:
1 | unsigned short rf12_trans(unsigned short wert)
|
2 | { unsigned short werti=0;
|
3 | unsigned char i;
|
4 | cbi(RF_PORT, CS);
|
5 | for (i=0; i<16; i++)
|
6 | { if (wert&32768)
|
7 | sbi(RF_PORT, SDI);
|
8 | else
|
9 | cbi(RF_PORT, SDI);
|
10 | werti<<=1;
|
11 | if (RF_PIN&(1<<SDO))
|
12 | werti|=1;
|
13 | sbi(RF_PORT, SCK);
|
14 | wert<<=1;
|
15 | _delay_us(0.3);
|
16 | cbi(RF_PORT, SCK);
|
17 | }
|
18 | sbi(RF_PORT, CS);
|
19 | return werti;
|
20 | }
|
Soweit so gut. Das Senden von Daten klappt vermutlich auch, zumindest
kann ich mit einem Funkscanner ein entsprechendes "Knacken" hören.
Allerdings empfange ich keine Daten. Ich vermute, dass etwas bei der
SPI-Kommunikation schief läuft.
Der ATTiny pollt regelmäßig den FIFO-Puffer des RFM12. Eine solche
Kommunikation habe ich mittels Logic-Analyzer aufgezeichnet und an
meinen Beitrag angehängt. Schön zu sehen sind die Daten, welche an das
RFM12 gesendet werden:
0x82C8 //RX on
0xCA81 //Set FIFO mode
0xCA83 //Enable FIFO
0xB000 //Abfrage des ersten Byte
0xB000 //Abfrage des zweiten Byte
0xB000 //Abfrage des dritten Byte
0xB000 //Abfrage des vierten Byte
0X8208 //RX deaktivieren
Das Problem ist aber nun, dass scheinbar auf jeden Befehl eine Antwort
gesendet wird. Nach meinem Verständnis sollte eine Antwort nur dann
gesendet werden, wenn Statusregister abgefragt werden. Die Antworten
variieren dabei scheinbar zufällig und sind mal 0xF8F8, 0xF9F9 etc.
Ich bin nun schon das ganze Wochenende mit dem Problem beschäftigt, habe
schon das Forum durchsucht und auch Google bringt mich nicht wirklich
weiter. Leider ist das Pollin-Datenblatt auch extrem kurz gehalten :(
Hat jemand von euch einen Tipp für mich? Sehe ich den Wald vor lauter
Bäumen nicht?
viele Grüße
Stephan