SST26VF016 Schreib/Leseproblem

Gast #5211785
Lesenswert?

Hallo liebe Forumgemeinde,

ich habe mal wieder ein kelines/GROSSES Problem.
Auf einer eigens entwickelten Schaltung hatte ich ein Layout für einen 
SST26VF016 vorgesehen. Der war damals nicht lieferbar und ich habe einen 
Vergleichstyp von ADESTO eingebaut. Ich benutze ihn im einfachen SPI 
Mode ohne QUAD etc.

Mit dem Adesto lief das auch alles völlig unproblematisch. Als nun die 
neuen Platinen kamen, waren hier die originalen SST26VF016 verbaut. 
Firmware aufgespielt, kein lesen/kein schreiben möglich.  :-(
Auf die neue Platine den alten ADESTO aufgelötet-> geht auf anhieb.

Nun bin ich schon seit 2 Tagen am ausprobieren was diesem Mistding nicht 
schmeckt. Ich bin momentan soweit, dass ich in der Main nur mal versuche 
das Statusregister auszulesen, was beim ADESTO einwandfrei funktioniert, 
beim SST26VF016 aber nur FF zurück liefert, da der MISO wohl dauerhaft 
auf High steht.

Hier mein Code dazu

1
void ReadSTATUS(void) {
2
    u8 dum;
3
  SSTEnaOn;
4
  SendByteSPI2(0x06);
5
  SSTEnaOff;
6
  for(k=0;k<500;++k);
7
  SSTEnaOn;
8
  SendByteSPI2(0x05);
9
  for (i=0;i<10;i++)
10
      SReg[i] = ReadByte();
11
  SSTEnaOff;
12
}

Sehe ich das richtig, nach Power up oder Reset steht der Chip lt. 
Datenblat im Normalmodus (kein Quad) und egal welche Block protections 
hier noch aktiviert sind oder nicht, ein lesen des Status sollte doch 
möglich sein oder?

Weiß langsam nicht mehr wo ich noch ansetzen soll, denn der ADESTO läuft 
mit gleicher Firmware und gleicher Hardware  :-(


Hat jemand noch eine Idee. Bin für jede Anregung äußerst dankbar, da 
langsam etwas in Zeitdruck.

Gruß

Hanna
Gast #5211876
Lesenswert?

Das Problem habe ich auch.
Laut Datenblatt sind die Befehle gleich.
Das einzige was funktioniert ist die Chip-Kennung auszulesen.
Ein lesen/schreiben auf den Speicher geht nicht.

Ich habe ein Flash Gerät beim Chinesen gekauft, damit gehen beide 
Bausteine. Werde mal die Daten mitschneiden und selber ausprobieren.
Gast #5212057
Lesenswert?

Ich hatte einen M25P80 (8 Mbit, low voltage, serial Flash memory
with 75 MHz SPI bus Interface), vielleicht bin ich gerade falsch bei 
deinem Problem.

Beim SST26VF016 sollte 0xBF2601 als ID gelesen werden.
Zum auslesen 0xAF senden und Dummy Bytes.

Bei mir gingen die SST Typen aber nicht ST soweit ich weiß.
Muss nachher mal nachschauen...
Gast #5212226
Lesenswert?

Hanna schrieb:
> Sehe ich das richtig, nach Power up oder Reset steht der Chip lt.
> Datenblat im Normalmodus (kein Quad) und egal welche Block protections
> hier noch aktiviert sind oder nicht, ein lesen des Status sollte doch
> möglich sein oder?

Ich glaube das geht bei deinem Typ nicht, siehe Auszug aus Datenblatt
"To provide backward compatibility to traditional SPI
Serial Flash devices, the device’s initial state after a power-on reset 
is SPI bus protocol supporting only
Read, High Speed Read, and JEDEC-ID Read instructions"
Es sind auch nur diese 3 Befehle mit Diagrammen für eine normale SPI
kommunikation beschrieben, beim Rest sehe ich beim drüberfliegen nur
SQI.

Du müsstest den SST26VF016B Typ nehmen der geht vollumfänglich
im SPI mode, nutzte den Typ schon selbst das geht.
"To  provide  backward  compatibility  to
traditional SPI Serial Flash device
s, the device’s initial state
after  a  power-on  reset  is  SPI
mode  which  supports multi-I/O
(x1/x2/x4)  Read/Write  commands."

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren