Forum: Mikrocontroller und Digitale Elektronik serieller EEprom läßt sich nicht mehr beschreiben


von Gerd (Gast)


Lesenswert?

Hallo,

ich habe an einem AT90USB1287 über SPI einen EEprom angeschlossen. Hat 
auch gut funktioniert. Jetzt habe ich mein Programm fast fertig und 
wollte Meßwerte darauf speichern, aber es klappt nicht.
Ich lese immer die Werte, die drinstehen, kann die aber nicht 
überschreiben. Jetzt weiß ich nicht, wie lange das Testprogramm 
funktioniert hat, es wird ja immer die gleiche Zahlenfolge geschrieben, 
ich hätte es also nicht gemerkt, wenn es danach nicht mehr funktioniert 
hat. Setze ich eine andere Speicheradresse, dann steht da immer &HFF 
drin.
An der Hardware habe ich nichts geändert, defekt wird er mach so kurzer 
Zeit auch noch nicht sein.

Hat jemand einen Tip?
Gruß Gerd

Sub 24lc256_test
'Test read and writes
       Dat = 0
      For E_addr = &H1000 To &H1010
          Call E_write(e_addr , Dat)
          Call E_read(e_addr , E_dat)
          Ausgabe = Str(e_dat)
          Call W_disp
          Waitms 1000
          Incr Dat
          Incr Dat
          'Incr Dat                                          ' +1 +1 +1
      Next E_addr
      Ausgabe = "TestEnde"
      Call W_disp
      Waitms 3000
      Dat = 0
End Sub

' Routine to write the 24LC256
Sub E_write(byval E_addr As Word , Dat As Byte)
   E_ah = High(e_addr)
   E_al = Low(e_addr)
   Reset Portf.0                                            'CS Aktiv
   Waitms 10
   Spiout Write_enable , 1
   Waitms 10
   Spiout E_ctlw , 1
   Spiout E_ah , 1
   Spiout E_al , 1
   Spiout Dat , 1
   Waitms 10
   Set Portf.0
End Sub

' Routine to read the 24LC256
Sub E_read(byval E_addr As Word , E_dat As Byte)
   E_ah = High(e_addr)
   E_al = Low(e_addr)
   Reset Portf.0                                            'CS Aktiv
   Waitms 10
   Spiout E_ctlr , 1
   Spiout E_ah , 1
   Spiout E_al , 1
   Spiin E_dat , 1
   Set Portf.0                                              '
End Sub

von Peter D. (peda)


Lesenswert?

Gerd wrote:
> ich habe an einem AT90USB1287 über SPI einen EEprom angeschlossen. Hat
> auch gut funktioniert.
...
> Sub 24lc256_test

Dann wärst Du der erste, der einen I2C-Chip per SPI angesteuert kriegt.


Peter

von Magnus Müller (Gast)


Lesenswert?

Immerhin hat er es nicht mit dem UART versucht ;)

[Nachtrag]

Die Sache mit dem I²C/SPI ist mir allerdings auch nicht auf Anhieb 
aufgefallen...

[/Nachtrag]

von Gerd (Gast)


Lesenswert?

Hallo,

> Dann wärst Du der erste, der einen I2C-Chip per SPI angesteuert kriegt.
> Immerhin hat er es nicht mit dem UART versucht ;)

Na ja, ganz so blöd bin ich doch nicht.
Es ist der M95320 drin, das Testprogramm hatte ich gefunden, die 
Kommentarzeilen aber nicht umgeänder.
Mein Fehler, hätte ich drauf achten sollen.

Hatte ja geschrieben, das daß Schreiben zumindest einmal geklappt hat 
und das Lesen immer.

Funktioniert aber jetzt.

Nach "Spiout Write_enable , 1", muß ich die CS Leitung kurz auf "H" 
ziehen, dann klappt es.

Gruß Gerd

von Magnus Müller (Gast)


Lesenswert?

Gerd wrote:
> Na ja, ganz so blöd bin ich doch nicht.
> Es ist der M95320 drin, das Testprogramm hatte ich gefunden, die
> Kommentarzeilen aber nicht umgeänder.
> Mein Fehler, hätte ich drauf achten sollen.

Kein Problem, es sei dir verziehen. So hatten wir zumindest was zum 
Schmunzeln ;))

> Funktioniert aber jetzt.
>
> Nach "Spiout Write_enable , 1", muß ich die CS Leitung kurz auf "H"
> ziehen, dann klappt es.

Kleine Ursache, große Wirkung. Weiterhin viel Erfolg!

Magnetus

von Peter D. (peda)


Lesenswert?

Gerd wrote:
> Es ist der M95320 drin

Tschuldigung, daß ich das nicht hellsehen konnte.


Peter

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.