Forum: Compiler & IDEs SPI-Flash Mega32


von Flo R. (herrpool)


Angehängte Dateien:

Lesenswert?

Moin Moin,

Das Thema SPI hört wohl nie auf, auch mir bereitet es Kopfzerbrechen.
Ich möchte einen Winbond SPI Flash (W25X16) an einen Mega32 anschließen
Datenblatt: 
http://www.winbond-usa.com/products/Nexflash/pdfs/datasheets/W25X16_32_64f.pdf
Angeschlossen ist alles, als CS nutrze ich portb0.
Einfaches senden funktioniert, das hab ich mit einem Max7221 getestet 
der entspechend seines Empfangs Dioden anschaltet. Ich möchte erstmal 
nur das Statusregister auslesen, also sende ich 0x05, aber es kommt 
immer FF als Antwort zurück, was nicht sein kann denn ein Flag ist laut 
Datenblatt nur 1 wenn der speicher beschäftigt ist.
 Also hab ich den MISO pin mal mit nem Draht auf Masse gezogen. Wenn ich 
dann was empfangen möchte kommt 00 raus, also soweit sollte das ja 
funktionieren.
Defekt ist der Flash wohl auch nicht, da ich einen 2. getestet hab der 
sich genau so verhält.
Den Code hab mal angehängt in der Hoffnung dass Jemanden der Fehler 
auffällt.

mfg
flo

von holger (Gast)


Lesenswert?

Den SPI Code sollen wir uns jetzt aus der functions.o Datei
zusammenraten ?

von Flo R. (herrpool)


Angehängte Dateien:

Lesenswert?

oh ha, natürlich nicht. jetzt also noch mal die c datein ;)

von holger (Gast)


Lesenswert?

/HOLD liegt bei dir auf High ?

von Flo R. (herrpool)


Lesenswert?

ja hab ich mit VCC verbunden, das hat aber leider auch nichts geändert. 
leider ab ich kein oszilloskope sonst könnte man ja mal sehen ob der 
überhaupt was sendet

von holger (Gast)


Lesenswert?

Der ATMEga32 läuft mit 3.3V ?
Wenn nicht, was für Pegelkonverter benutzt du
für deinen 3.3V Flash ?

von Flo R. (herrpool)


Lesenswert?

ja läuft alles auf 3,3V auf dem netzteil vom pc, hab auch schön 
kondensatoren dran. aber stimmt das ist der einzige unterschied. wenn 
ich den 7221 dran hab steck ich den mega bei 5v rein damit die leds auch 
leuchten. meinst das könnte daran liegen?

von holger (Gast)


Lesenswert?

>steck ich den mega bei 5v rein

Doch hoffentlich ohne den 3.3V Flash ?

von Flo R. (herrpool)


Lesenswert?

hehe nene der flash hat noch nie 5V gesehen. das war nur für den anderen 
baustein der brauch eben 5v für die leds

von holger (Gast)


Lesenswert?

>hehe nene der flash hat noch nie 5V gesehen.

Dann ists ja gut ;) Irgendwie fällt mir auch nichts
mehr ein, ausser das du in main() "int" und "uint8_t"
ziemlich wild durcheinanderwürfelst. SPI sieht ok aus.

von Flo R. (herrpool)


Lesenswert?

ich hab mittlerweile so viel ausprobiert. was sollte man denn verwenden 
uint8_t ? eine frage habe ich noch, im datenblatt vom flash steht der 
brauch mode 0 oder 3, habe ich auch so eingestellt aber kann das sein 
dass man im controller genau das andere einstellen muss? danke auf 
jedenfall erstmal für deine mühen!!
ich werd mal den stromverbrauch messen, vielleicht ist er ja tatsächlich 
im power down modus

von Uhu U. (uhu)


Lesenswert?

Und woher nimmst du die Sicherheit, daß deine Verdrahtung fehlerfrei 
ist?

von Flo R. (herrpool)


Angehängte Dateien:

Lesenswert?

Obs richtig ist weiß ich nicht, ich nehm es mal an. jedenfalls ist alles 
so angeschlossen wie auf dem bild hier das ist sicher

von holger (Gast)


Lesenswert?

/WP solltest du auch an Vcc legen. An /CS einen Pullup.
Siehe Datenblatt Figure 20.

"/CS Must Track Vcc"

von Flo R. (herrpool)


Lesenswert?

ihr seid echt super!! jetzt scheint es zu funktionieren!!! wenn ich 
jetzt das statusregister auslese bekomme ich 232 raus. gleich mal testen 
ob sich der inhalt auch ändert wenn ich das Write enable bit setze

von Flo R. (herrpool)


Lesenswert?

So habs getestet... und es funktioniert!!! vielen Dank noch mal. Da 
brauch ich wohl noch etwas übung damit ich in zukunft auch alles klein 
gedruckte im datenblatt ernstnehm ;)

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.