Gast
#792347
Hallo,
habe Probleme mit einem SPI EEprom M95256 am ATMega16.
Das Programmbeispiel habe ich hier im Forum gefunden, war aber für den
I2C Bus.
Ich erhalte als Rückgabewert immer nur "FF".
Habe ich was falsch gemacht, wäre schön, wenn sich jemand mal das
anschauen könnte.
Gruß Reinhard
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes ,
Polarity = High , Phase = 1 , Clockrate = 64
Spiinit
Schr = &H06 'Write Enable
E_ctlw = &H02 'Write to Memory Array
E_ctlr = &H03 'Read from Memory Array
Sub EEpromtest
'Test read and writes
Spiout Schr , 1 'Write Enable
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)
Display 'Daten ausgeben
Incr Dat
Incr Dat
Incr Dat
Next E_addr
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)
Spiout E_ctlw , 1 'Schreibbefehl
Spiout E_ah , 1 'Adresse
Spiout E_al , 1 'Adresse
Spiout Dat , 1 'Daten schreiben
Waitms 10
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)
Spiout E_ctlr , 1 'Lesebefehl
Spiout E_ah , 1 'Adresse
Spiout E_al , 1 'Adresse
Spiin E_dat , 1 'Daten lesen
'
End Sub