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
Könnte es daran liegen, dass der Enable-Anschluss von IC4A mit SCK verbunden ist?
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
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.
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
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
ich Dankefür dezalreichen Antworten. scheinbar Arbeitet niemand mit den Teilen.
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.
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 .
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
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.
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.
Stefan schrieb: > Warum benutzt du überhaupt einen Pegelwandler ? warum benutzt mann denn ein Pegelwandler Schalplan skizze gelesen avr 5v rfm 3.3v
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.