closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

FRAM lesen/schreiben



Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 53
Posts: 1456
Registered: 03 / 2003
Private message
Subject: FRAM lesen/schreiben  -  Posted: 02.01.2015 - 23:07   -  
Hallo @ all,

nachdem ich schon eine ganze Weile mit einem FRAM rumspiele und es nicht schaffe da was zu schreiben und zu lesen ..... HILFEEEEEEEEEEE :D

Typ FM24CL64

Code

Procedure ReadFM;                      // FM24CL64 lesen
  Begin
    TWIout(EEPROMaddr,0,0);
    TWIinp(EEPROMaddr,FMArr);
    If FMArr[2] in [0..40]
      then
        Contrast:=FMArr[2];
      else
        Contrast:=20;
      EndIf;
    If FMArr[3] in [0..25]
      then
        Backlight:=FMArr[3];
      else
        Backlight:=10;
      EndIf;
  End ReadFM;
  

Procedure WriteFM;                     // FM24CL64 schreiben
  Begin
    If Contrast in [0..40]
      then
        FMArr[2]:=Contrast;
      else
        FMArr[2]:=20;
      EndIf;
    If Backlight in [0..25]
      then
        FMArr[3]:=Backlight;
      else
        FMArr[3]:=10;
      EndIf;
    TWIout(EEPROMaddr,0,0);
    TWIout(EEPROMaddr,0,FMArr);
  End WriteFM;


Das Teil will von mir
lesen: I2C-Adresse ($50), Adresse MSB, Adresse LSB, I2C-Adresse ($50), Daten1, Daten2, ........
schreiben: I2C-Adresse ($50), Adresse MSB, Adresse LSB, Daten1, Daten2, ........

Ich komm damit irgendwie nicht klar :(
Hat jemand ein bisschen Code dafür ? Oder eine Erklärung ?

Gruss & Danke
Harry

PS: Ich hab mir grad mal das gesamt Array nach dem lesen anzeigen lassen und das steht überall $FF drin. Entweder funktioniert das schreiben nicht oder das lesen.
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
This post has been edited 1-times. Last edit: 02.01.2015 - 23:08 by Harry.
go down go up
miparo offline
Schreiberling
Avatar
Gender: male
Location: GERMANY  Germany
Age: 52
Posts: 649
Registered: 09 / 2007
Private message
Subject: Re: FRAM lesen/schreiben  -  Posted: 03.01.2015 - 17:06   -  
Hallo Harry,
warum machst Du dir das so schwer :yawinkle:

Nimm den Device Treiber S.239 im StdManual.
Dort gibt es auch ein Sample dazu.

Gruß
miparo
Kein Support per PN! | No support via PM!
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 53
Posts: 1456
Registered: 03 / 2003
Private message
Subject: Re: FRAM lesen/schreiben  -  Posted: 03.01.2015 - 17:52   -  
Hi miparo,

das hab ich noch gar nicht gesehen :banghead: :confused5: ..... schau ich mir an. Danke.

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 53
Posts: 1456
Registered: 03 / 2003
Private message
Subject: Re: FRAM lesen/schreiben  -  Posted: 03.01.2015 - 19:49   -  
Falls es jemand interessiert: Die Adresse muß als Word gesendet werden, dann geht es auch. Mit 2 Bytes in Folge funktioniert das nicht.
Da ich nur eine Konfiguration mit 2 Bytes + 2 Dummybytes speichere hab ich die Adresse als Konstante definiert.

DANKE miparo :)

Code

Procedure ReadFM;                      // FM24CL64 lesen
  Const Adr : Word = $0000;
  Begin
    TWIout(FMaddr,Adr);
    TWIinp(FMaddr,FMArr);
    If FMArr[2] in [0..40]
      then
        Contrast:=FMArr[2];
      else
        Contrast:=20;
      EndIf;
    If FMArr[3] in [0..25]
      then
        Backlight:=FMArr[3];
      else
        Backlight:=10;
      EndIf;
  End ReadFM;
  

Procedure WriteFM;                     // FM24CL64 schreiben
  Const Adr : Word = $0000;
  Begin
    If Contrast in [0..40]
      then
        FMArr[2]:=Contrast;
      else
        FMArr[2]:=20;
      EndIf;
    If Backlight in [0..25]
      then
        FMArr[3]:=Backlight;
      else
        FMArr[3]:=10;
      EndIf;
    TWIout(FMaddr,Adr,FMArr);
  End WriteFM;
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
This post has been edited 1-times. Last edit: 03.01.2015 - 19:50 by Harry.
go down go up
Lschreyer offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age:
Posts: 427
Registered: 02 / 2007
Private message
Subject: Re: FRAM lesen/schreiben  -  Posted: 19.01.2019 - 17:58   -  
Ich hatte das hier mal zum Anlass genommen um ein FRAM FM25LS16B (2Kx8) per SPI ans Userdevice zu binden.
Falls jemand das mal benötigt ist hier eine Demodatei die zeigt wie das geht.
Etwas trickreich ist das Schreiben, man muss erst ein WREN-Befehl senden, CS wieder hoch setzen und dann erst schreiben, sonst klappt nicht.

Das Userdevice ist sehr praktisch, damit kann man direkt auf die Variablen zugreifen, und dank Fram ist es superschnell und unendlich oft beschreibbar.
You must be logged in or your permissions are to low to see this Attachment(s).
This post has been edited 1-times. Last edit: 19.01.2019 - 18:01 by Lschreyer.
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 21.02.2019 - 03:33