Hallo Leute, ich plane ein RFM119W Modul von HopeRF an einem ATMega168p zu betreiben. Solange das Modul im Zulauf ist, wollte ich vorab schon mal die Software vorbereiten. Jetzt stellt HopeRF zwar umfangreiche Dokumentation zur Verfuegung, aber ueber einen wichtigen Teil schweigt sich die Doku konsequent aus: Das Modul basiert auf dem CMT2119AW. Dieser Baustein enthaelt ein EEPROM, in den die gewuenschten Registerwerte abgelegt werden koennen, um dem Baustein die gewuenschte Funktion zu geben. Man kann zwar auch jedes mal nach dem Start die Register per Software reinschreiben, aber dann sind sie fluechtig und nach einem Powercycle muss das wieder geschehen. Ich wuerde jetzt aber gerne der Einfachheit halber und vor allem auch aus Robustheitsgruenden die Werte im EEPROM ablegen. Leider sagt mir die Doku an keiner Stelle, wie ich das bewerkstelligen kann. Oder besser: Es wird darauf verwiesen, dass man sich das Programmiergeraet von HopeRF kaufen soll und damit dann die Werte in das Device schreiben. Das Programmiergeraet anzuschaffen ist fuer mich zeitlich und wirtschaftlich aber nicht sinnvoll, da es genau fuer eine einmalige Anwendung Ende Maerz fertig sein muss. Zeit und Geld sind also knapp... Der Zugriff aufs EEPROM erfolgt ueber TWI (two-wire-interface), ueber die selben Pins, ueber die auch der sonstige Registerzugriff auf den Baustein erfolgt. Durch reverse engineering der Beispielsoftware und der bereitgestellten Arduino-Lib ("HoepRF_HSP_V1.3") konnte ich den Registerzugriff weit genug entschluesseln, so dass ich glaube, das Device mit der on-the-fly-Programmierung ans Laufen zu bekommen. Aber leider enthaelt die Lib keine aussagekraftigen Beispiele fuer den EEPROM-Zugriff. Da fehlt mir komplett die Info, wie das ablaufen soll. Das einzige, was ich weiss ist, dass ca 20 16-bit-Worte ins EEPROM zu schreiben sind. Hat zufaelligerweise jemand so etwas schon mal bewerktstelligt, bzw verfuegt ueber Informationen, wie das mit dem EEPROM funktionieren koennte? Saemtliche sachdienlichen Hinweise sind willkommen! Hier noch ein paar links, falls jemand mal selbst die Doku durchlesen moechte... Doku zum Modul RFM119W: https://www.hoperf.com/modules/rf_transmitter/RFM119.html Doku zum verwendeten CMT2119AW: https://www.hoperf.com/ic/rf_transmitter/CMT2119AW.html Andi
Andi M. schrieb: > Hat zufaelligerweise jemand so etwas schon mal bewerktstelligt keine Ahnung ob das vergleichbar ist! was ich mal tat ist ein EEPROM in den PC1500 zu löten und den zu Programmieren mit eigenen Befehlen, Erweiterungen, Hexmonitor und testen; klappt. Dann für 12 Jahre in die Schublade und als ich ihn wieder nutzen wollte, Ende nix ging mehr, in der Bootphase schaut das OS nach Romerweiterungen auch in meine im EEPROM, aber die Daten waren futsch, ich schaute in Datenblatt: garantierter Datenerhalt war 10 Jahre, hatte ich nun Pech? war das zu erwarten? oder war das doch nur ein Dekodierungsglitch bei Power ON? Ich werde es nie erfahren, aber EEPROM basiert auf Ladungsverschiebung und das die unendlich hält glaube ich nicht. Selbst kaufbare OTP Roms sind heute fast nur EEPROMs, allenfalls EPROMs ohne Fenster, ich fand keines wo echte Leitungen durchgebrannt werden denen ich längere Zeit vertrauen würde. Soll Elekrtonik so lange halten? ich denke daran hat keiner in der Industrie wirklich Interesse!
Ich wollte nur noch mal kurz berichten, wie es ausgegangen ist: Eine Anfrage meinerseits beim Hersteller ergab nichts. Die haben selber so viele Fragen (welche Abnahmemenge, welcher Distributor, welche Anwendung etc) nach mir geworfen bevor sie ueberhaupt meine Anfrage ans engineering weiterleiten wollten, dass ich da nicht mehr weiter nachgebohrt habe. Zudem erfuhr ich dann dass das Modul seit Dezember abgekuendigt ist und von daher war da nur noch wenig Interesse da, noch was zu supporten. Also habe ich mal meine Software soweit fertig gemacht, dass ich das Modul on-the-fly programmieren konnte. Dabei zeigte sich, dass ich fuer meine Anwendung ohnehin regelmaessig alle Register schreiben muss. Also habe ich das EEPROM-Thema erst mal auf Eis gelegt und lebe nun damit, dass das device nicht gleich im richtigen Modus hoch kommt. Inzwischenist das Modul eingetroffen und funktionierte mit meiner Software fast sofort. :-)
Andi M. schrieb: > und lebe nun damit, > dass das device nicht gleich im richtigen Modus hoch kommt. > Das ist doch SPI, oder? Wenn man es richtig optimiert redet man vermutlich über 10..100usec? Du sprichst oben von Sorgen bzgl der Robustheit. Meintest Du dabei Übertragungsfehler? Auf Platinenebene „darf“ man sich dazu keine Gedanken machen. Wenn das schiefgeht hat man ganz andere Probleme. EDIT: sehe gerade, es ist so eine Art I2C. Okay.
:
Bearbeitet durch User
Es ist TWI - two wire interface. Sowas aehnliches wie I2C aber langsamer: Clock liegt bei 1kHz. Die höhere Zuverlässigkeit liegt darin, dass bie korrekt initialisiertem EEPROM das Modul gleich wieder richtig hoch kommt, wenn beispielsweise ein brownout aufgetreten ist. Und vor allem darin, dass in diesem Fall nicht "versehentlich" auf 868MHz gefunkt wird (was der Defaultwert im EEPROM ist) sondern gleich richtigerweise auf 434MHz. Die geplante Umgebung kann durchaus als "robust" angesehen werden, so dass sich solche Fälle nicht vermeiden lassen. Wie dem auch sei, trotz des vergleichweise langsamen Konfigurationsinterface bin ich nun damit zufrieden wie es ist. Wäre aber trotzdem schön gewesen, die EEPROM-Konfiguration irgendwie zu entschlüsseln. Auch für andere, die mal was mit diesem oder einem ähnlichen Modul machen wollen.
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.