Forum: Mikrocontroller und Digitale Elektronik Problem mit SPI / RFM12


von Hopper (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte mit einem Atmega8 ein RFM12 Funkmodul über SPI ansprechen.
Von der Verdrahtung her habe ich die SPI-Schnittstelle + CS verbunden 
und an SDO einen Pull-Up Widerstand (10k) angelötet. Reset liegt über 
10k an 5V. Die Versorgungsspannung ist mit einem 1uF Kondensator am 
Funkmodul beschaltet. Der Atmega8 hat ebenfalls einen Kondensator über 
der Versorgung: 100n.

Das Programm ist wirklich minimal:
nach der Initialisierung der SPI Schnittstelle schicke ich dem Funkmodul 
den Befehl zur Statusabfrage.

Das Problem: Die SDO-Leitung bleibt tot... ist dauerhaft +5V. Wenn ich 
den Pull-Up Widerstand entferne bleibt die Leitung nach der Abfrage auf 
0V. Ebenso, wenn ich den Befehl zum FIFO auslesen sende (ohne Pull-Up, 
siehe Anhang, SDO -> 0V). Ein Kurzschluss zu einer anderen Leitung 
besteht nicht!

Die Platine sollte Nr.2 einer ganzen Reihe von Temperatursendern werden, 
Platine Nr.1 läuft schon seit über nem Monat problemlos mit Sleep-Modus 
und DS1820 sowie Batteriespannungsmessung.

Meine Vermutung daher: das Funkmodul ist hinüber... Besteht eine 
Möglichkeit das ganze nochmal zu testen, bevor ich das Modul auslöte?


Gruß Hopper

von Reiner O. (elux)


Lesenswert?

Hopper schrieb:
> Hallo,
>
> ich möchte mit einem Atmega8 ein RFM12 Funkmodul über SPI ansprechen.
> Von der Verdrahtung her habe ich die SPI-Schnittstelle + CS verbunden
> und an SDO einen Pull-Up Widerstand (10k) angelötet.

Hi,
ich habe auch vor Zeiten mit dieser Kombination AT M8 und RFM trainiert.

Bei mir traten bei dieser Kombi "unerklärliche Phänomene" auf -> 
offenbar gab es Timing-Probleme im SPI Modul des RFM.

Ich hatte dann auf Soft-SPI (und einen anderen Prozessor) umgebaut und 
dann ging das.

Siehe den Beitrag "Re: Funkmodul RFM12 in Assembler" hier, 
vielleicht hilfts ja...

Gruß
Elux

von Hopper (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Problem gelöst: Modul defekt... Nach dem Einlöten eines neuen RFM12 
bekam ich sofort nach dem POR die 4000 als Antwort vom Modul (siehe 
Anhang). Keine Ahnung was da schief ging, vlt. beim Einlöten zu viel 
Hitze abgekriegt?

schöne Woche noch,
Gruß Hopper

von WehOhWeh (Gast)


Lesenswert?

Hopper schrieb:
> Hi,
>
> Problem gelöst: Modul defekt... Nach dem Einlöten eines neuen RFM12
> bekam ich sofort nach dem POR die 4000 als Antwort vom Modul (siehe
> Anhang). Keine Ahnung was da schief ging, vlt. beim Einlöten zu viel
> Hitze abgekriegt?
>
> schöne Woche noch,
> Gruß Hopper

Ich hatte schon folgendes Problem, das sich exakt wie deines geäußert 
hat:

Die Module (RFM12B) haben offensichlich Probleme mit dem internen 
Brown-Out-Reset. Die Zeit, bis das Teil ansprechbar ist kann auch größer 
als die 100ms sein.
Das kann man mit dem Osziloskop nachprüfen, dazu einfach den Reset 
(nRES) oder Clockout anschauen.

Quatscht man die Module vor Ablaufen des Reset an, bleibt SDO tot. Für 
immer, nur OFF/ON hilft dann...

Ich hatte eines mit folgendem Verhalten:
- +20°C: 120ms
- +7°C : 210ms
- -2°C : 420ms
Das war bei meiner Wetterstation außen drin. Lösung ist, schlafen 
schicken statt ausschalten - glücklicherweise sind sie dann sehr sparsam 
(<1µA bei mir). Ursache scheint der Resetcontroller da drin zu sein.

Jetzt kann es sein, dass das Modul, das du zuvor drin hattest eine 
längere Zeit gebraucht hat, um hochzulaufen. Ich würd es mir nochmal 
anschauen - vielleicht ist es nur eines von der lahmen Sorte und nicht 
kaputt.

Ich verdrahte daher zukünftig den nRESET mit, damit kann man dann 
verifizieren, dass das Modul hochgefahren ist...

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.