www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom SPI AT25HP512


Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: mikki merten (Gast)
Datum:

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

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.