Forum: Mikrocontroller und Digitale Elektronik Bascom SPI AT25HP512


von Dieter (Gast)


Lesenswert?

Hallo an Alle,

möchte Daten über das SPI in einen Speicherbaustein (AT25HP512) 
schreiben und herauslesen.

Als Programmiersprache benutze ich Bascom 1.11.6.3

Als Master verwende ich einen ATMEGA32 und als Slave ein AT25HP512 
Speicherbaustein.

Da der  ATMEGA32 ein Hardware SPI besitzt, möchte ich es auch benutzen.

Momentan habe ich allerdings keinen konkrete Vorstellung davon,  wie das 
Protokoll aussehen soll.(schreiben & lesen vom Speicherbaustein)

Über Tipps oder hilfreiche Links würde ich mich freuen

mfg   Dieter

von Dieter Brüggemann (Gast)


Lesenswert?

Hallo Dieter

Das SPI ist in Bascom einigermaßen gut erklärt. Anschliessen kannst du 
das wie in der Hilfe. Im Daten Blatt zum Speicher stehen alle Befehle 
die du brauchst.
Ganz grob läuft das so.

spiinit

spiout Befehl,1   einen byte zum Chip schreiben

spiout adresse High,1
spiout adresse low,1

spiin  a,1         ein Byte einlesen

Beim schreiben mußt du darauf achten, daß der Chip schreibgeschützt ist. 
Das Bit im Controll Reg. muß man erst löschen, sonst klappt das mit dem 
schreiben nicht. Tip: lese erstmal das Controll Reg. aus. Einen Befehl 
senden, ein Byte einlesen. Dann das Schreibschutzbit löschen und wieder 
setzen.

MFG
Dieter

von Dieter (Gast)


Lesenswert?

Hallo,

von seriellen I2C Speicherbausteinen weiß ich, daß dort nach der START 
Inizialisierung zuerst die hardwareseitig eingestellte Bausteinadresse 
gesendet wird, gefolgt von der Speicheradresse und der Information , die 
man an der gewählten Speicheradresse ablegen möchte.

Frage hinsichtlich SPI Speicherbaustein AT25HP512 oder allgemein



Mit spiout werden 8 bit in das slave Register getaktet.

Beim AT25HP512 können 64k Byte -->  512k Bit  in den Speicher 
geschrieben werden.

meine Frage ist nun:

Übergebe ich nun zuerst die adresse high dann die adresse low und dann 
die 8Bit Information

(Mit Information meine ich keine Registerbefehle sondern das, was ich im 
Speicher ablegen möchte)

oder funktioniert ein SPI  Speicherbaustein nach dem FIFO Prinzip ?

MFG Dieter

von Dieter Brüggemann (Gast)


Lesenswert?

Hallo Dieter

Dein Chip hatte keine Adresse. Er hat CS = Chip select. Wenn du dieses 
Signal auf LOW legst ( 0 Volt) ist der Chip aktiv und wartet auf einen 
Befehl.

Zum lesen schickst du den Befehl 03 zum Chip, dann die die High Adresse 
, dann die LOW Adresse. Dann kannst du 1 oder auch mehrere Byte vom Chip 
einlesen, die die Information deiner Speicherstelle darstellen. Die MSB 
Bits werden immer zuerst übertragen. Nach dem auslesen schaltest du CS 
wieder auf High.

Also kurz.

CS LOW
Befehl senden
Adresse setzen  (high, low)
Daten lesen oder Schreiben
CS High

MFG
Dieter

von Dieter (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Allesamt,

dieser "*+#'+#" SPI Speicherbaustein bringt mich noch zum verzweifeln 
......oder ist es eher Bascom ?

Nun ja wie dem auch sei, ich möchte immer noch Informationen auf den 
AT25HP512 schreiben. :-)

Im Anhang findet Ihr einen Bascom Quellcode der nach meiner Meinung nach 
"funzen" sollt ...aber er tut es nicht.

Habt Ihr eine Idee wo der Hase im Pfeffer liegen könnt ?


Habt dank für Eure Mühe

mfg Dieter

von mikki merten (Gast)


Lesenswert?

der AT25HP512 ist ein PageMode Only Typ, d.h. du musst immer 128 Byte 
schreiben.

von Dieter (Gast)


Lesenswert?

das mit dem Page Mode Only mag sein, doch sollte ich das Status Register 
des AT25HP512 auslesen können .....aber das gklappt leider schon nicht.

Meine momentane Vermutung die Befehle in Bascom (spiout)
sind da nicht sonderlich hilfreich.
Muß wohl selber  für die gewünschte Ansteuerung des AT25HP512 sorgen .

Kann mir das jemand bestätigen ?
Oder sind die Befehle in Bascom ausreichend und ich setze sie blos 
falsch ein !?


mfg Dieter

von mikki merten (Gast)


Lesenswert?

@Dieter
nachdem der Befehl zum Lesen des Status-Registers abgesetzt wurde, muss 
dieses natürlich auch noch gelesen werden. Da ich den AVR nur in C und 
Assembler programmiere vermute ich mal das hier noch in SPIin-Befehl 
existiert.

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.