Forum: Mikrocontroller und Digitale Elektronik EEPROM in HopeRF Modul brennen?


von Andi M. (andi6510) Benutzerseite


Lesenswert?

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

von Joachim B. (jar)


Lesenswert?

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!

von Andi M. (andi6510) Benutzerseite


Lesenswert?

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. :-)

von Harald A. (embedded)


Lesenswert?

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
von Andi M. (andi6510) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.