Raspberry PI (B) / SPI / RFM70 Problem

  • Hallo Jungs,

    Ich habe hier 2 Raspberry PIs in Rev. B. an denen möchte Ich ein RFM70 Modul mittels SPI ansteuern.
    Die Programmierung ist mir soweit klar, nur habe ich wohl ein Problem mit der Umsetzung des Original Codes der eigtl. für ein Arduino geschrieben wurde.

    Für das RFM70 Modul habe ich diverse Sourcecodes für verschiedene Typen wie Atmel, Arduino, LPC / Arm, aber ich habe generell das Problem, das nach dem Initialisieren des RFM70 Moduls per SPI ich keine korrekte ChipID vom RFM70 zurück erhalte...

    Ich habe mir auch schon diverse Examples für das SPI vom Raspberry angeschaut aber leider ohne erfolg.

    Ich war eigtl. der Meinung das dass Umschreiben einfach wird, aber leider ist es das wohl nicht durch das SPI.

    Kennt sich hier jemand mit dem SPI vom Raspberry aus oder kann mir evtl. helfen ?

    Grüße,
    Sany.

  • Hi,

    ich bin derzeit auch dabei den RFM70 mit dem RPI zum laufen zu bringen.

    Als Basis verwende ich die Arduino RFM70 Library von Heye Everts welche auf selbst auf der RFM70 library von Odo Maletzki basiert.
    http://www.centre-of-competence.com/?page_id=190

    Mit meinem Bus Pirate habe ich die SPI Kommunikation mitgeschnitten. Siehe

    Externer Inhalt gist.github.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Für die SPI Kommunikation möchte ich die wiringPI library verwenden. Ähnlich wie in diesem Beispiel:
    http://www.jotschi.de/Technik/2012/0…prom-howto.html

    Gruß

    Jotschi

  • Hallo,

    Naja bei mir scheitert es leider, aber ich weiß noch nicht woran, das nur liegt....
    Spätestens wenn er die ChipID überprüfen möchte setzt es aus....

  • Hallo Zusammen,

    So habe nun die Initialisierungsroutine für das RFM70 fertig, war echt Tricky.. zumal es einen Zeitpunkt gegeben hat, wo ich echt alles gegen die Wand geworfen hätte, weil ich einfach keine ChipID zurück erhalten habe...

    Mit der wiringPI SPI Schnittstelle habe ich das RFM70 nicht zum laufen gekriegt, aber mit der bcm2835 spi läufts nun sauber, das timing stimmt zwar noch nicht ganz, aber das scheint dem Modul bei 8 MHZ Takt nix auszumachen.

    Eigentlich dachte ich, das es Praktisch ist, wenn ich ein Register beschreibe und nicht eine 0x00 hinterher schicken muss damit ich vom SPI lesen kann...
    Nur hatte ich da wohl zu einfach gedacht, da mir das RFM70 den Befehl zwar bestätigt hatte mit einem 0x0E, aber am Ende der Kette erhielt ich keine ChipID zurück obwohl das Modul korrekt initialisiert wurde.

    Dank meinem Logic Analyzer konnte ich dem Problem schnell auf die schliche kommen, das dass Modul beim Register schreiben doch hinter dem Register befehl eine 0x00 möchte, damit es nicht durcheinander kommt.

    Nun folgenden die weiteren Funktionen, aber dafür hat mich das ding nun mehr als 1 1/2 wochen beschäftigt, leider waren die 2 Wochen mit wiringPI umsonst... fragt mich nicht warum das nicht funktioniert, das liegt wohl am RFM70 oder an der Kommunikationsweise der Funktion...

  • Moin!

    Wie läuft's an der rfm70-Front?

    Hab bis jetzt nur Erfahrungen mit Arduino und ein paar Atmega8 in Kombination mit rfm70 gesammelt, möchte/will jetzt auch den Raspberry mit einem rfm70 verdrahten (Adapter-Platine werd ich wohl heute Abend löten, die Pins sitzen zur Abwechslung einmal günstig).
    Am Raspberry hab ich bis jetzt nur SpiDev für Python "installiert"/"eingerichtet" und den SPI Ausgang mit einem Jumper Selbstgespräche führen lassen.
    Der Plan sieht vor, dass ich in Python eine mini - Bibliothek schreibe, damit ich die Funktion möglichst einfach in anderen Pythonscripten auf meinem Pi verwenden kann (nutze Python ganz gerne auf dem Pi,eigentlich für fast alles)....so der Plan :s

    Darum die Frage: "Schon weitere Fallstricke gefunden? Oder Operation erfolgreich?"

    Mal sehen was bei der ersten Kontaktaufnahme zwischen den Beiden, heute Abend, herauskommt.

    mfg Loki

  • Hi,

    ich hab die Anpassung an der Library von mir mal hier online gestellt:
    https://github.com/Jotschi/raspberrypi-rfm70-library

    Makefile und Readme fehlen noch aber vielleicht kann ja der eine oder andere schon etwas damit anfangen. Senden funktioniert. Empfangen hab ich noch nicht getestet.

    Die Library verwendet wiringPi:
    https://projects.drogon.net/raspberry-pi/wiringpi/

    Eine entsprechende Arduino Library gab es zwar schon aber die hat nicht SPI.h verwendet. Ich hab den Code etwas gesäubert und die API angepasst:
    https://github.com/Jotschi/arduino-rfm70-library

    Gruß

    Jotschi

  • bin jetzt auch endlich dazu gekommen einmal weiter zu machen:

    Status:

    -senden tut er angeblich, also er löst den Interrupt für's senden aus.

    -Habe derzeit zwei Module auf dem Pi montiert, die Register beschreibt er mir, aber irgendwo muss ich noch einen Murx bei den Einstellungen bzw dem Ablauf haben, das zweite Modul empfängt nichts, ohne Autoack. :s
    (auch wenn ich die zwei umdrehe) und bei Autoack gibt's halt den Interrupt weil er die maximale Anzahl an Übertragungen erreicht hat.

    -Am Abend vielleicht mal den werten Arduino zu der Befragung hinzuziehen :huh:.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!