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
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
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
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
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
der AT25HP512 ist ein PageMode Only Typ, d.h. du musst immer 128 Byte schreiben.
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.