Hallo zusammen! Ich habe mir vor einiger Zeit ein paar RFM22B Funkmodule gekauft welche ich auch schon mit Beispielcodes von Ulrich Radig am laufen hatte... Zum Test hatte ich einfach das RFM22B Modul mit einem Atmega88 auf einer Steckplatine. Doch nun nachdem ich viele andere Testprogramme über mein unverändertes steckbrett drüberliefen, funktionieren die Module nicht mehr? Die Anschlüsse habe ich schon mehrmals überprüft, der Atmega scheint auch zu funktionieren (Leds, Uart funktioniert) und das Programm auszuführen nur der RFM22B macht nichts.. Wie kann ich das am besten ohne Oszilloskop prüfen?
Meine Fuses: (atmega88 externer 8mhz-quarz) -U lfuse:w:0xcf:m -U hfuse:w:0xdf:m -U efuse:w:0x01:m RFM22B Test mit Funkscanner auf selber Frequenz (869.545) (Gleich wie in main.c) Im Nebenbereich gescannt -> Negativ Selbes Programm und selbe Fuses auf einer fertigen Schaltung (worauf es auch schon funktionierte) = Negativ
Ja hab ich. Auch habe ich das makefile angepasst. (atmega8->atmega88 ; und in den headerdateien meinen 8mhz) Ich tippe auf die fuses, aber kann das problem nicht lösen.
Hab leider das Problem immer noch nicht lösen können :/ Hier mal mein angepasster Beispielcode und meine Schaltung
Also der µC funktioniert auf jedenfall, ich habe das ganze gerade mit einem neuen probiert. Das einzige was mir noch einfällt ist neue RFM22B zu kaufen... Das werd ich wohl machen müssen um herauszufinden ob die alten tot sind.
Können die Registerwerte des Transceivers auf dem Modul noch ausgelesen werden? Wenn ja, dann wird der Fehler wahrscheinlich auf der "Funkseite" sein. Viel reparieren kann man da wahrscheinlich nicht, lohnt sich auch kaum. Falls die Registerwerte nicht mehr ausgelesen werden können, die Verkabelung (VCC, GND, MOSI, MISO, SCK, CS) nochmals prüfen. SPI-Takt so langsam wie möglich. Vielleicht nur ein unzuverlässiger Kontakt am Steckbrett (hatte ich hier vor kurzem auch - elende Sucherei, zu billiges Teil). Übliche Verdächtige wie fehlenden Pull-Up bei CS und fehlenden Kondensator nahe am RFM22 sind ja bereits ausgeschlossen. Ich habe hier die RF-Seite eines RFM22 durch zu hohe Betriebsspannung zerstört (nicht auf Spannung an den Programmierleitungen bei ISP geachtet, die ja per SPI auch am Funkmodul anliegen), Registerwerte konnte man bei dem defekten Teil dann aber dennoch auslesen/schreiben.
horst schrieb: > Kann man das Modul durch falsche Signale tot programmieren? tot programmieren nicht, aber Möglichkeiten gibts einige * AVR an NIRQ auf Ausgang gestellt * NSEL angesteuert und gleichzeitig MISO am AVR auf Ausgang gehabt Oder eben zu viel Spannung - notfalls auch über die Programmierleitung wie von Martin beschrieben Sascha
Martin Thomas schrieb: > Können die Registerwerte des Transceivers auf dem Modul noch ausgelesen > werden? Wenn ja, dann wird der Fehler wahrscheinlich auf der "Funkseite" > sein. Viel reparieren kann man da wahrscheinlich nicht, lohnt sich auch > kaum. Wie mach ich das am besten?
horst schrieb: > Martin Thomas schrieb: >> Können die Registerwerte des Transceivers auf dem Modul noch ausgelesen >> werden? Wenn ja, dann wird der Fehler wahrscheinlich auf der "Funkseite" >> sein. Viel reparieren kann man da wahrscheinlich nicht, lohnt sich auch >> kaum. > > Wie mach ich das am besten? lies mit der entsprechenden Funktion 'rf22_read()' ein paar Register aus, und lass den Wert auf ein Display oder über UART ausgeben. Nach einem Reset habe viele Register ja einen Default-Wert (siehe Datenblatt) den du dann auslesen müsstest. Sascha
Danke jetzt hab ich den Beweis: Endgültig TOT! Kein Register gibt was anderes aus als 0
Wenn ich das auslese bekomm ich bei jedem auslesen andere Werte: zB: 3000000 3000000 0000000 0000000 0000000 0127000 0000600 0000000 0000000 0000000 0000000 3000000 0101270 0000000 usart_tx_i ist meine Funktion für die ausgabe von Zahlen usart_tx_i(rf22_read(0x06)); usart_tx_i(rf22_read(0x07)); usart_tx_i(rf22_read(0x08)); usart_tx_i(rf22_read(0x09)); usart_tx_i(rf22_read(0x0a)); usart_tx_i(rf22_read(0x0b)); usart_tx_i(rf22_read(0x0c)); Ich kenn mich nicht mehr aus. Jedenfalls sind meine neuen Module unterwegs, dann sehen wir weiter
was zeigst du da an? - rf22_read gibt genau EIN Byte zurück Sascha
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.