RFM12 Atmega will nicht

Gast #4199369
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
Angehängte Dateien:
#4199884
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.
Gast #4200787
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
Gast #4201016
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.
Gast #4201044
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 .
#4201049
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.
Gast #4201079
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.
Gast #4201105
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.
Gast #4201373
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
#4201696
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren