Forum: Mikrocontroller und Digitale Elektronik RFM02 Pinbelgung beim ATMEGA8


von Nn N. (jaytharevo)


Angehängte Dateien:

Lesenswert?

Hallo,
also ich hab hier ein paar allgemeine Fragen zu diesem Empfangsmodul.
Ich arbeite hier nämlich an einer Diplomarbeit und unsere Hauptschaltung 
muss bis nächsten Freitag fix sein, es geht soweit alles, es fehlt aber 
eben noch, dass RFM02 zum empfangen. Verwendet wird ein ATMEGA8, dieser 
wird von einem externen Takt gespeist (1,8..MHz), ca. 5V 
Versorgungsspannung, dann wird ein LCD im 4-Bit Modus betrieben, 2 ADC 
Eingänge sind belegt, ein weiterer Pin von PORT C. Somit bleiben 
eigentlich nur mehr PortC und PortB über für genügend Pins. Was ich mit 
dem RFM02 machen will ist simpel, ich will ein Signal senden, welches 
den µC aus einem Schlaf-Modi aufweckt, am liebsten wäre mir der 
Power-Down Modus. Nun hab ich mich bereits ein WENIG in die Materie von 
RFM eingelesen. Soweit ich weiß geht ein Pin High sobald der Buffer des 
Modules voll ist. Nun hab ich mir gedacht, dass ich, das als externen 
Interrupt verwenden kann zum wieder aufwecken. Nun, der Pin des externen 
Interrupts ist ja bereits durch, das LCD belegt. Was nun? Den Pin vom 
LCD anders Belegen? Gibts andere Möglichkeiten den µC aufzuwecken?

Weiters wollte ich auch nach der Beschaltung von dem Modul fragen. Ist 
wirklich nur die Versorgungsspannung, Ground und ein 10k Widerstand 
zwischen Data und Vdd nötig (Anhang)?
Und soweit ich, das verstanden habe müssen die Pins SDI, nSEL, SCK und 
SD0 nun nur mehr mit dem µC verbunden werden. Der Rest bleibt in der 
Luft?
Ich bitte um eine kurze Rückmeldung ob meine Gedankengänge richtig sind.

MFG Julian

von markusj (Gast)


Lesenswert?

Hallo Julian,

was denn nun, RFM01 oder 02? Dein Schaltplan zeigt ein RFM01, also einen 
Empfängerbaustein, RFM02 ist der Sender ...
nIRQ benötigtst du übrigens wahrscheinlich eher nicht ... um bei 
eingehenden Daten aufzuwachen reicht es, FFIT/SDO zu "beobachten"

Zum Thema aufwachen: Entweder du nimmst einen Mega88 (oder gleich 168), 
der kann auf jedem Pin einen Pin-Change-Interrupt absetzen.
Außerdem: Ein Mega8 hat zwei externe Interrupts, dementsprechend hast 
du einen frei.
Eine weitere Möglichkeit wäre z.Bsp. ein Missbrauch des 
Analog-Komparators, der hat auch einen Interruptvektor.

mfG
Markus

von Nn N. (jaytharevo)


Lesenswert?

Hallo Markus, danke für deine Antwort, dass hört sich schon ganz gut an 
;).

markusj schrieb:
> was denn nun, RFM01 oder 02? Dein Schaltplan zeigt ein RFM01, also einen
> Empfängerbaustein, RFM02 ist der Sender ...
> nIRQ benötigtst du übrigens wahrscheinlich eher nicht ... um bei
> eingehenden Daten aufzuwachen reicht es, FFIT/SDO zu "beobachten"

Natürlich um den Empfängerbaustein!!! Sry, war eine kleine Verwirrung.
Beobachten während dem schlafen?



> Zum Thema aufwachen: Entweder du nimmst einen Mega88 (oder gleich 168),
> der kann auf jedem Pin einen Pin-Change-Interrupt absetzen.

Ich hab einen ATMEGA8 zur Verfügung, was anderes (sollte) vermieden 
werden.

> Außerdem: Ein Mega8 hat zwei externe Interrupts, dementsprechend hast
> du einen frei.
> Eine weitere Möglichkeit wäre z.Bsp. ein Missbrauch des
> Analog-Komparators, der hat auch einen Interruptvektor.

Die 2 externen Interrupts sind mir bekannt, leider sind die, wie gesagt, 
bereits für das LCD in Verwendung. Der Analog- Komperator liegt leider 
auch auf einem Pin des PORTD... :( Ich brauche eben 8-Pins für das 
Display (da bleibt nur PORTD über...). Wie gesagt, wenn ich einen Pin 
vom LCD umlegen könnte auf einen PIN von PORTB, dann hätte ich den 
externen Interrupt Pin schon frei.

EDIT:

Mal kurz in die Fleury Include geschaut :) :
"Definitions for 4-bit IO mode

Change LCD_PORT if you want to use a different port for the LCD pins.

The four LCD data lines and the three control lines RS,R,*E can be on 
the same port or on different ports. Change LCD_RS_PORT, LCD_RW_PORT, 
LCD_E_PORT if you want the control lines on different ports."

Somit sollte das Problem mit dem belegtem Pin gelöst sein.

Jetzt ist "nur" mehr die Beschaltung die große Frage.


MFG, Julian

ps. Ich geh mal schlafen, hab morgen 2- stündige D-SA ;) :D

von Nn N. (jaytharevo)


Lesenswert?

Ich push mal vorsichtig. Duckundweg

von Nn N. (jaytharevo)


Lesenswert?

Hallo,
ich hätte gern einfach nur Bestätigt, ob das von der Beschaltung her 
alles ist?!

MFG...

von JAX54 (Gast)


Lesenswert?

Hallo,

mich würde die Beschaltung auch interessieren?
Weiß, dass hier niemand?


MFG Klaus

von Frank B. (frank501)


Lesenswert?

Ich hatte auch verzweifelt versucht, die RFM01 / RFM02 zum Laufen zu 
bringen...
Beispielcode und Berichte daß es mit dem RFM12 funktioniert gibt es ja 
so einige, aber die Kombination 01/02 hab ich noch nicht bestätigt 
gesehen, daß die jemand am Laufen hat.

Ich für meinen Teil hab die Module dann eingemottet und habe zwei BTM112 
verwendet. Die liefen dann auf Anhieb.

Frank

von (prx) A. K. (prx)


Lesenswert?

Frank B. schrieb:

> so einige, aber die Kombination 01/02 hab ich noch nicht bestätigt
> gesehen, daß die jemand am Laufen hat.

Dann kann ich dem abhelfen: es funktioniert.

von JAX54 (Gast)


Lesenswert?

Könntest du dann deine Beschaltung preis geben?

von markusj (Gast)


Lesenswert?

Ich habe die RFM01/02-Kombo erfolgreich im Einsatz, allerdings an zwei 
Tinys. Die Beschaltung ist relativ simpel, nur beim RFM02 muss man etwas 
tricksen, um Timing-Probleme zu vermeiden.

markusj schrieb:
> nIRQ benötigtst du übrigens wahrscheinlich eher nicht ... um bei
> eingehenden Daten aufzuwachen reicht es, FFIT/SDO zu "beobachten"

Davon abgesehen sehe ich bei deiner Verschaltung keine Probleme, das 
hängt halt auch immer davon ab, wie du den RFM01 ansteuern willst.

@Rest: Es gibt zu allen drei Modulen hier im Forum Quelltext (ich glaube 
aus der Feder von Benedikt), außer zu Testzwecken habe ich den aber 
nicht genutzt sondern stattdessen einen eigene Funk-Stack geschrieben.
Und was die Beschaltung angeht: Lest doch einfach mal das Datenblatt. 
SO schlecht ist das auch wieder nicht ...
Als Minimalbeschaltung reichen wohl nSEL, SDI, SCK und SDO sowie DATA 
(und evtl. nRES) via Pullup an VCC - und natürlich GND und VCC selbst 
...
CLK und DCLK braucht man normalerweise nicht, nIRQ ebenfalls, VDI ist 
nice-to-have wenn man etwa vor hat, eine Art Sendersuchlauf o.ä. zu 
Programmieren - wobei man das auch ohne VDI machen kann ...

mfG
Markus

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Hier ist sie.

von markusj (Gast)


Lesenswert?

@A.K.
Ich persönlich würde die RFM02-Module nicht so anschließen ...
Der FSK-Anschluss ist unnötig und braucht nicht benutzt werden (Pullup 
an VCC wurde irgendwo empfohlen), dafür würde ich aber MISO an SDI und 
nIRQ and SCK anschließen. Klingt verrückt, aber:
Dann kann sich da Funkmodul die Daten selbst holen.
Die Konfiguration des Moduls ist über Soft-SPI schnell gemacht, aber 
wenn der Transfer im Hintergrund laufen kann und man nur alle acht Bits 
neue Daten nachschieben muss, spart dass ne Menge Zeit!

Dafür braucht man beim RFM01 den nIRQ nicht, weil der SDI-Pin ebenfalls 
einen vollen FiFo signalisieren kann.

mfG
Markus

von (prx) A. K. (prx)


Lesenswert?

markusj schrieb:

> Der FSK-Anschluss ist unnötig und braucht nicht benutzt werden (Pullup
> an VCC wurde irgendwo empfohlen), dafür würde ich aber MISO an SDI und
> nIRQ and SCK anschließen.

Yep, das geht auch. Allerdings ist dann SPI blockiert und es handelte 
sich um eine Nachrüstung einer bestehenden Implementierung, in der SPI 
schon anderweitig verwendet wurde. Ich habe statt dessen SPI gemeinsam 
mit einem anderen Device als reinen Steuerbus betrieben und konnte den 
Datentransfer über nIRQ/FSK parallel zu anderweitigen SPI-Aktivitäten 
durchführen.

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.