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
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
Der ATMEga32 läuft mit 3.3V ? Wenn nicht, was für Pegelkonverter benutzt du für deinen 3.3V Flash ?
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?
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
>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.
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
Obs richtig ist weiß ich nicht, ich nehm es mal an. jedenfalls ist alles so angeschlossen wie auf dem bild hier das ist sicher
/WP solltest du auch an Vcc legen. An /CS einen Pullup. Siehe Datenblatt Figure 20. "/CS Must Track Vcc"
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.