Forum: Mikrocontroller und Digitale Elektronik EEPROM beschreiben


von Gast (Gast)


Lesenswert?

hat jemand Erfahrung bzw. weiß jemand wie ich den EEPROM (DS2431) 
beschreiben kann?

...versuche das EEPROM mit Atmega 328 (auf Arduino Board) anzusprechen, 
beschreiben klappt mittlerweile ohne Probleme, Es lasst sich aber leider 
nicht beschreiben (:

von gast (Gast)


Lesenswert?

öhhm :

beschreiben klappt mittlerweile ohne Probleme,
Es lasst sich aber leider nicht beschreiben

^^

von Gast (Gast)


Lesenswert?

sehe Du hast viel Zeit, hätte mir auch so viel freien Zeit gewünscht, 
ich hätte ihn aber bestimmt sinnvoller verbracht...

trotzdem Danke Dir für dein Antwort.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Er wollte Dich nur ermuntern, mehr über Dein Problem zu schreiben und zu 
erklären wieso sich das EEProm manchmal bescheiben lässt und manchmal 
nicht (so lese ich es jedenfalls aus Deiner Frage heraus).

Ach ja, wie der Zugriff auf das Teil funktioniert, steht im Datenblatt.

Ergänzung:

Du schreibst zwar, mit welchem Prozessor/Board Du auf das Teil zugreifen 
möchtest, gibst aber keinerlei Codes an.

So ein kurzer Blick in meine morgendlich noch etwas vernebelte 
Kristallkugel, sagt mir, dass Du einen Programmierfehler hast.
Außerdem ist blass zu erkennen, dass Du davon ausgehst, dass der 
Schreibzugriff klappte, aber du die Werte nicht lesen kannst. Du 
bekommt, jetzt wird es düster, immer den gleichen Datenwert zurück.
Wenn ich es richtig deute, klappt auch das Beschreiben nicht.

Nu ist's ganz aus. Alles vernebelt.

von Daniel G. (daniel83)


Lesenswert?

>>öhhm :
>>
>>beschreiben klappt mittlerweile ohne Probleme,
>>Es lasst sich aber leider nicht beschreiben
>>
>>^^

Ich denke nicht, dass es hier um Flame ging oder einer zuviel zeit 
hatte, sondern du hast dich vermutlich vertan und meinst, dass du 
entwder schreiben und nicht lesen kannst oder umgekehrt, nur wie du es 
geschrieben hast machts wenig Sinn oder es fehlt Erklährung.

Wenn ich schreibe ich kann laufen nur das laufen geht bei mir noch nicht 
wunderst du dich doch auch, oder?

von gast (Gast)


Lesenswert?

der gast nochma...
ne sry hab leider keine zeit ..

sehe aber ein das dieses datenblatt mal echt für die füße ist

da hier alles beginnt :
sendet deine 1wire funktion korrekt die commandos ?

schreiben : 0x0F  senden
lesen : 0xF0  senden

dann die adressen übertragen   16bit adresse senden + status 8bit
TA1 ( target address lowbyte )
TA2 ( target address highbyte)
statusbyte

dann empfangen

steht seite 11


glaube du hattes schonmal geschrieben ...
da hattest du die arduino funktionen genutzt
ob diese funktion denen dieses protokolls genügt kann ich nicht wissen
zur not eben selbst neu schreiben

so nu hab ich wieder langeweile

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

gast schrieb:
> so nu hab ich wieder langeweile
Und ich Probleme mit den Augen, da ich Deinen Beitrag mehrmals lesen 
musste, um auch nur halbwegs etwas zu verstehen. Dein Geschreibsel ist 
wirklich nicht augenfreundlich.

von gast (Gast)


Lesenswert?

Sieht vieleicht wild aus, beinhaltet aber nur das nötigste an 
Informationen.
Dagegen gibts hier einige die gerne 100 Seiten schreiben, aber null 
Informationen preisgeben. Diese schreiben dann mit Punkt und Komma ohne 
Absatz weiter in der Hoffnung das sich dieses jemand durchließt. Das ist 
MIR wiederum zu öde, denn in der heutigen Zeit muss man sich von anderen 
differenzieren können. Ich bin nur eben über das Datanblattgeflogen und 
konnte für das Lesen und Schreiben diese Stellen ausmachen. Genaue Daten 
auf Seite 11 des Datenblattes.

für das Auslesen:

ds_read( unsigned char *buffer , int address , unsigned int len)
{
//lesebefehl senden
one_wire_send(0xF0);
//16bit datenadresse senden
one_wire_send( (unsigned char) address );
one_wire_send( (unsigned char)(address>>8))
// statusbyte mit E/S bits senden ( Siehe Datenblatt)
one_wire_send(  statusbyte );
//dann reagiert der DS ebenso wie andere EEPROMs
//nach lesen des bytes incrementiert dieser automatisch die adresse
for(; len>0 ; len --)
  {
    *(char*)buffer = one_wire_receive();
    buffer++;
  }
// damit weiß das der nicht mehr lesen will Txreset senden
one_wire_send(0x0D);
}

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.