Forum: Mikrocontroller und Digitale Elektronik RFM12 mit Atmega168


von Sebastian B. (sebastian_b86)


Lesenswert?

Hallo,
ich weiß es gibt schon viele beiträge zu dem thema, aber irgendwie ist 
dann das problem doch wieder spezifisch...
undzwar: ich habe einen atmega168 und rfm12b  (868MHz Dip Version) 
module. mit denen möchte ich gerne ein wenig herumfunken und div. 
projekte realiesieren.
zudem verwenden wir v-usb damit wir einfach am pc anstecken und loslegen 
können, bzw der datenaustausch soll dann damit auch funktionieren...

kurz zum setup: int0 ist für den D- am USB belegt, D+ verwenden wir den 
RX Port, da wir den eh nie brauchen.
Der RFM12B hängt über die übliche SPI Schnittstelle am atmega, sprich 
SCK -> Pin 19, SDI -> Pin 17, SDO -> Pin 18, IRQ -> INT1 und SEL -> Pin 
16.
nFFS haben wir auch mal mit 10k Pullup versehen, hat auch keinen 
unterschied gemacht.
Das ganze Board rennt auf 16Mhz mit Quarz und 3,3V.

Soo nun zur Softwareseite. Wir haben die rfm12 lib von 
http://www.das-labor.org/wiki/Datenfunk_mit_dem_AVR jedoch ein wenig 
modifiziert: http://git.42.lefant.net/gitweb/reox/rfm12.git da sich 
registernamen zwischen atmega8 und atmega168 geändert haben.

zum problem: wir bekommen eigentlich nie eine gescheite verbindung 
zusammen. datenübertragung selber geht gar nicht! auf einem µC sehe ich 
folgendes verhalten. mit dem demoprogramm von hier: 
http://git.42.lefant.net/gitweb/reox/rfm12.git/blob/HEAD:/test-m8/pingpong.c 
passiert folgedes:
zuerst sehe ich das der rfm in den zustand STATE_TX und dann STATE_IDLE 
geht. das geht auch ein paar mal so, bis irgendwann nur mehr STATE_TX da 
steht und dann kommt er in gar keinen zustand mehr rein wenn ich den 
button erneut drücke...
ich hab auch ein bissi mitm oszi herumgespielt und nach fehlern gesucht 
aber außer das ich nur ein merkwürdiges verhalten von manchen pins 
bekomme (ich wills net genau erläutern da ich glaube das unser fehler 
irgendwie anders ist) seh ich nix besonderes.
wir haben alle unsere rfm module getestet und haben bei allen selbiges 
verhalten...

jetzt die frage: hat irgendjemand eine rfm12 lib für atmega168 schon 
parat oder kann mir jemand sagen wo der fehler da gemacht wurde? haben 
sich sooo viele dinge geändert zwischen atmega8 und atmega168 das die 
libs nimmer kompatibel sind?
das ist alles was wir in der lib geändert haben. 
http://git.42.lefant.net/gitweb/reox/rfm12.git/blobdiff/bfc5ffb7dde387e01f53022fc3a3bc28edaa76c6..0c9c7e3dd5bf828399e32aaec1d3f3f6e322b022:/test-m8/rfm12_config.h
(( das sollte eigentlich auch drin sein
-#define FREQ 433000000UL
-#define RFM12_BASEBAND RFM12_BAND_433
+#define FREQ 868000000UL
+#define RFM12_BASEBAND RFM12_BAND_868)
zusätzlich habe ich nur noch das uart gefixed, das ich debuggen kann 
(das geht einwandfrei)

vielen dank!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.