Forum: Mikrocontroller und Digitale Elektronik RFM12 Atmega will nicht


von andy (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,
ich versuche das Beispiel von Benedikt mit dem RFM12 zum laufen zu 
bringen,
jedoch läuft das bei mir nicht.Ich nutze den Soft SPI da die Hardware 
SPI Pins bereits belegt sind.

CS und SCK  an PortD 4 und 7 .
Mosi und Miso an PortC 0 und 1 .

Als Pegelconverter nutze ich den von Holger Klabunde.


Kann mir eiener Weiterhelfen von ihnen warum das mit meiner konstelation 
nicht geht.
mfg

von Mario M. (thelonging)


Lesenswert?

Könnte es daran liegen, dass der Enable-Anschluss von IC4A mit SCK 
verbunden ist?

von andy (Gast)


Angehängte Dateien:

Lesenswert?

so hier die richtige skizze

von andy (Gast)


Lesenswert?

Benutzt die Module hier denn niemand?

von Karl H. (kbuchegg)


Lesenswert?

Software SPI hat den Charme, dass man die SPI-Übertragung durch einfügen 
von Delays nach den Pin-Operationen zu Testzwecken nahezu beliebig 
langsam machen kann.
Das wiederrum hat den Charme, dass man zum Beispiel beim Slave sich mit 
ein paar LED einen Überblick verschaffen kann, welche Signale in welcher 
Reihenfolge von Low auf High gesetzt werden, bzw. auch umgekehrt.

Wenn man keinen Logik-Analyzer hat, der einem die Übertragung anzeigt 
und auswertet, dann ist das eine hervorragende Möglichkeit, sich selbst 
etwas zu improvisieren und nachzusehen, ob die Übertragung klappt bzw. 
wie das Gerät antwortet.

: Bearbeitet durch User
von andy (Gast)


Lesenswert?

Ist denn meine verschaltung und Pin Definition so richtig?

von Bastler (Gast)


Lesenswert?

Wie erkennt der Level-Converter denn, daß er 3.3 V liefern soll, wenn er 
an 5V angeschlossen ist? Eventuell wird ein neuer RFM12 fällig.

von andy (Gast)


Lesenswert?

Bastler schrieb:
> Wie erkennt der Level-Converter denn, daß er 3.3 V liefern soll,
> wenn er an 5V angeschlossen ist? Eventuell wird ein neuer RFM12 fällig.

???????
74lvx sind doch an 3.3v angeschlossen

von andy (Gast)


Lesenswert?

ist denn meine Pinconfiguration so richtig

#define SDI  0
#define SCK  4
#define CS  7
#define SDO  1

DDRD =  (1<<SCK)|(1<<CS) ;//als ausgang
PORTD = (1<<CS) ;

DDRC = (1<<SDI)  ;//als ausgang
DDRC&=~((1<<SDO));

RFM12                 AVR
SDI                   MOSI
SDO                   MISO
SCK                SCK
CS                CS

von andy (Gast)


Lesenswert?

kann mir keiner sagen ob die verschaltung richtig ist

von andy (Gast)


Lesenswert?

ich Dankefür dezalreichen Antworten.
scheinbar Arbeitet niemand mit den Teilen.

von Mike (Gast)


Lesenswert?

andy schrieb:
> scheinbar Arbeitet niemand mit den Teilen.

Wenn man Tante Google befragt, stößt man auf gefühlt 1000 Projekte, die 
den RFM12 einsetzen, davon auch etliche, die ihrem ATmega mit der 
Arduino Software und den üblicherweise mit den Bibliotheken beigelegten 
Beispielen das Laufen beibringen. Vermutlich ist das nicht alles nur 
graue Theorie, sondern die Leute arbeiten tatsächlich mit diesen 
praktischen kleinen Funkmodulen.

von andy (Gast)


Lesenswert?

Mike schrieb:
> andy schrieb:
> scheinbar Arbeitet niemand mit den Teilen.
>
> Wenn man Tante Google befragt, stößt man auf gefühlt 1000 Projekte, die
> den RFM12 einsetzen, davon auch etliche, die ihrem ATmega mit der
> Arduino Software und den üblicherweise mit den Bibliotheken beigelegten
> Beispielen das Laufen beibringen. Vermutlich ist das nicht alles nur
> graue Theorie, sondern die Leute arbeiten tatsächlich mit diesen
> praktischen kleinen Funkmodulen.

Das stimmt schon,
Ich hatte ja auch gefragt ob das mit meiner portconfiguration so geht, 
kann ja auch falsch sein .

von Karl H. (kbuchegg)


Lesenswert?

andy schrieb:
> Mike schrieb:
>> andy schrieb:
>> scheinbar Arbeitet niemand mit den Teilen.
>>
>> Wenn man Tante Google befragt, stößt man auf gefühlt 1000 Projekte, die
>> den RFM12 einsetzen, davon auch etliche, die ihrem ATmega mit der
>> Arduino Software und den üblicherweise mit den Bibliotheken beigelegten
>> Beispielen das Laufen beibringen. Vermutlich ist das nicht alles nur
>> graue Theorie, sondern die Leute arbeiten tatsächlich mit diesen
>> praktischen kleinen Funkmodulen.
>
> Das stimmt schon,
> Ich hatte ja auch gefragt ob das mit meiner portconfiguration so geht,
> kann ja auch falsch sein .

Na ja.
Was steht im Schaltplan? Welcher Pin ist was?
Was steht im Programm welche Pins benutzt werden?

Soviel solltest du schon programmieren können, dass du das in 
Übereinstimmung bringen kannst.

Und PS: Man kann auch ein Testprogramm schreiben, bei dem man einfach 
zum Bleistift den CS Pin auf 0 bzw. 1 setzt und dann am Baustein 
nachsieht ob diese 0 oder 1 dort auch am Pin wieder auftaucht (mit dem 
Multimeter oder simpler einer LED). Und dasselbe kann man auch mit den 
anderen Pins machen.
Und schon brauchst du niemanden mehr fragen, sondern du hast dich selbst 
davon überzeugt, dass der 'Datenausgang' des Programms auch wirklich am 
'Dateneingang' des Moduls ankommt, respektive für alle anderen Pins 
dasselbe.

Es wird Zeit, das du lernst dir selbst zu helfen.
Code irgendwo aus dem Web zusammenzukopieren kann jeder Affe. Das ist 
keine Kunst. Aber von jemanden, der für sich in Anspruch nimmt ein 
'Programmierer' zu sein, erwarte ich deutlich mehr. Unter anderem auch, 
dass er ein paar simple Techniken kennt, wie er Dinge abklären kann. Und 
sei es nur eine für ihn fragliche Verdrahtung zu überprüfen und zu 
kontrollieren. Mehr als eine LED (samt Vorwiderstand) und der 
Bereitschaft auch einmal ein Testprogramm zu schreiben, das nachher 
weggeworfen wird, braucht es dazu nicht.

: Bearbeitet durch User
von andy (Gast)


Lesenswert?

Karl H. schrieb:
> andy schrieb:
> Mike schrieb:
> andy schrieb:
> scheinbar Arbeitet niemand mit den Teilen.
>
> Wenn man Tante Google befragt, stößt man auf gefühlt 1000 Projekte, die
> den RFM12 einsetzen, davon auch etliche, die ihrem ATmega mit der
> Arduino Software und den üblicherweise mit den Bibliotheken beigelegten
> Beispielen das Laufen beibringen. Vermutlich ist das nicht alles nur
> graue Theorie, sondern die Leute arbeiten tatsächlich mit diesen
> praktischen kleinen Funkmodulen.
>
> Das stimmt schon,
> Ich hatte ja auch gefragt ob das mit meiner portconfiguration so geht,
> kann ja auch falsch sein .
>
> Na ja.
> Was steht im Schaltplan? Welcher Pin ist was?
> Was steht im Programm welche Pins benutzt werden?


Ich hab das Programm von Benedikt hier aus der codesammlung.
Da ich die Pins für Hardware SPI nicht nutzen kann hab ich das eben 
versucht über SOFT SPI zu realiesieren.

Der Pegelconverter funktioniert ich hab diesen mehrfach zusammen mit 
einer SD-Card im einsatz.

Irgendwie haut das mit meiner Pinconfiguration nicht hin.

>
> Soviel solltest du schon programmieren können, dass du das in
> Übereinstimmung bringen kannst.
>
> Und PS: Man kann auch ein Testprogramm schreiben, bei dem man einfach
> zum Bleistift den CS Pin auf 0 bzw. 1 setzt und dann am Baustein
> nachsieht ob diese 0 oder 1 dort auch am Pin wieder auftaucht (mit dem
> Multimeter oder simpler einer LED). Und dasselbe kann man auch mit den
> anderen Pins machen.
> Und schon brauchst du niemanden mehr fragen, sondern du hast dich selbst
> davon überzeugt, dass der 'Datenausgang' des Programms auch wirklich am
> 'Dateneingang' des Moduls ankommt, respektive für alle anderen Pins
> dasselbe.
>
> Es wird Zeit, das du lernst dir selbst zu helfen.
> Code irgendwo aus dem Web zusammenzukopieren kann jeder Affe. Das ist
> keine Kunst. Aber von jemanden, der für sich in Anspruch nimmt ein
> 'Programmierer' zu sein, erwarte ich deutlich mehr. Unter anderem auch,
> dass er ein paar simple Techniken kennt, wie er Dinge abklären kann. Und
> sei es nur eine für ihn fragliche Verdrahtung zu überprüfen und zu
> kontrollieren. Mehr als eine LED (samt Vorwiderstand) und der
> Bereitschaft auch einmal ein Testprogramm zu schreiben, das nachher
> weggeworfen wird, braucht es dazu nicht.

von Mike (Gast)


Lesenswert?

andy schrieb:
> Ich hab das Programm von Benedikt hier aus der codesammlung.
> Da ich die Pins für Hardware SPI nicht nutzen kann hab ich das eben
> versucht über SOFT SPI zu realiesieren.

Und warum sollen nicht mehrere SPI Slaves an einem Master funktionieren?

Hat denn die Kommunikation per Hardware SPI wenigstens funktioniert. Das 
wäre doch der erste Test, um den Umgang mit dem Modul zu lernen. Danach 
kann man immer noch auf Soft-SPI wechseln.

von Stefan (Gast)


Lesenswert?

Warum benutzt du überhaupt einen Pegelwandler ?

von poldi :) (Gast)


Lesenswert?

Stefan schrieb:
> Warum benutzt du überhaupt einen Pegelwandler ?

warum benutzt mann denn ein Pegelwandler
Schalplan skizze gelesen
avr 5v rfm 3.3v

von Felix P. (fixxl)


Lesenswert?

Wenn es wirklich der alte RFM12 ist, kann man den auch einfach an 5V 
betreiben. Nur RFM12B und RFM69CW verlangen zwingend nach weniger als 
3,6V.

von andy (Gast)


Lesenswert?

So hab ich das angeschlossen.
Avr mit 5v  und das rfm12 mit 3.3v.


Beitrag "Re: RFM12 Atmega will nicht"

Ist meine Pincofiguration so richtig

#define SDI 0
#define SCK 4
#define CS 7
#define SDO 1

DDRD = (1<<SCK)|(1<<CS) ;//als ausgang
PORTD = (1<<CS) ;

DDRC = (1<<SDI) ;//als ausgang
DDRC&=~((1<<SDO));

RFM12 AVR
SDI MOSI
SDO MISO
SCK SCK
CS CS


Könnte da jemand drüber schauen.
auch wenns für andere vielleicht trivial ist.
mfg

von Stefan (Gast)


Lesenswert?

Und warum benutzt du dann nicht den AVR mit 3,3V ?

von Felix P. (fixxl)


Lesenswert?

andy schrieb:
> Ist meine Pincofiguration so richtig
>
> #define SDI 0
> #define SCK 4
> #define CS 7
> #define SDO 1
>
> DDRD = (1<<SCK)|(1<<CS) ;//als ausgang
> PORTD = (1<<CS) ;
>
> DDRC = (1<<SDI) ;//als ausgang
> DDRC&=~((1<<SDO));
>
> RFM12 AVR
> SDI MOSI
> SDO MISO
> SCK SCK
> CS CS
>
>
> Könnte da jemand drüber schauen.

Das sieht soweit richtig aus, auch wenn ich bei Registern diese 
Holzhammer-Zuweisungen mittels "=" nicht besonders mag. Spätestens wenn 
du mal größere Projekte hast und Libraries zusammenführst, wird das 
problematisch. Ein "|=" ist da wesentlich unverfänglicher.

Weil ich gerade woanders darauf gestoßen bin: AVCC am Mikrocontroller 
ist angeschlossen und mit 100nF gegen GND gepuffert? Wenn nicht, sind 
vermutlich deine Pins für MISO und MOSI ohne Energieversorgung.

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.