23LC1024 am esp8226 / NodeMCU v2

Hallo Zusammen,

ich habe einen Esp8226 bzw. NodeMCU.

Pinout:

An diesen möchte ich einen SPIRam anschließen, den 23LC1024, Datenblatt hier: http://ww1.microchip.com/downloads/en/DeviceDoc/20005142C.pdf

Dazu wollte ich diese Bibliothek nutzen: GitHub - Gianbacchio/ESP8266_Spiram: SPI library for Serial SRam 23A1024/23LC1024 by Microchip Technology Inc.
Ich habe auch nach der Vorgabe dieser Bibliothek die Verbindungen gezogen:

Pin on RAM chip functionality Pin on ESP8266
pin1 C/S GPIO15
pin2 MISO GPIO12
pin3 N/C Gnd
pin4 Vss Gnd
pin5 MOSI GPIO13
pin6 SCK GPIO14
pin7 HOLD V+
pin8 Vcc V+

Ebenso benutze ich auch das dortige Beispiel:

#include <SPI.h>
#include <ESP8266Spiram.h>

ESP8266Spiram Spiram;


void setup() {
  Serial.begin(115200);
  delay(1000);
  Spiram.begin();
}


void loop() {
  Spiram.setByteMode();
  uint8_t rRam[5] = {0x01, 0x02, 0x03, 0x04, 0x05};
  uint8_t wRam[5];
  Spiram.write(0x00, rRam, 5);
  Spiram.read(0x00, wRam, 5);
  for (int i = 0; i < 5; i++)
    Serial.println(wRam[i]);
  delay(2000);
}

Aber ich bekomme nur 5 mal 255 zurück, Habe dann etwas recherchiert und als Resultat einen decoupling capacitor eingebaut, mit 0.1uF zwischen 4 und 8 gemäß der Tabelle oben. Aber das hat nix geholfen.

Daher die Frage: Stimmt mein Vorgehen überhaupt oder mache ich da einen grundlegenden Fehler? Ich hoffe, ihr könnt mir auf die Sprünge helfen :slight_smile:

Falls ihr noch mehr Infos braucht, liefere ich sie gerne nach.

Vielen Dank schon mal
Alex

Die 0,1µF als Keramik oder Folie? Du kannst ihm ruhig noch einen 10µF Elko spendieren (nur auf Verdacht). Ich nehme an, Du betreibst ihn ebenfalls mit 3,3V

Gruß Tommy

0,1µF aus Keramik und in der Tat an dem 3,3V Pin, einen 10µF Elko habe ich leider nicht hier, nur einen aus Keramik, weiß aber nicht, ob das geht?

VG
Alex

Hi

10µF Keramik sollte schon ein Klopper sein, oder?
Schaden tut Der nicht, aber viel Bringen wohl auch nicht (sofern Du bereits einen Keramischen drin hast).

Kein altes Main-Board über? Da sind Elko's mit 6,3V 'en mass' zum Plündern aufgereiht :slight_smile:

MfG

Daher die Frage: Stimmt mein Vorgehen überhaupt oder mache ich da einen grundlegenden Fehler?

Habe ein 23LCV1024 an einem Nodemcu im Einsatz.
An Pin 7 des Ram hängt eine Batterie und Pin 3 ist offen.
Ansonsten: Belegung, wie du.

Musste nur in deinem Programm alle Spiram durch spiram ersetzen.
Tuts.

postmaster-ino:
10µF Keramik sollte schon ein Klopper sein, oder?

Davon hat keiner was geschrieben. Wer lesen kann, ...

Gruß Tommy

postmaster-ino:
Kein altes Main-Board über? Da sind Elko's mit 6,3V 'en mass' zum Plündern aufgereiht :slight_smile:

Eine alte PCI Karte habe ich, dort könnte ich morgen mal einen ablöten.
So wie ich @combie verstehe, geht es aber auch ohne Elko?

combie:
Habe ein 23LCV1024 an einem Nodemcu im Einsatz.
An Pin 7 des Ram hängt eine Batterie und Pin 3 ist offen.
Ansonsten: Belegung, wie du.

Musste nur in deinem Programm alle Spiram durch spiram ersetzen.
Tuts.

Habe mal den Pin3 freigelassen, das ändert nix. Warum hast Du da eine Batterie rangemacht, statt des Pins vom nodemcu?

Mir kommt dabei die Frage, wie kaputtbar solche Bauteile im Allgemeinen sind?

Und groß/klein-Schreibung sollte nicht das Problem sein, dafür sorgt ja das "ESP8266Spiram Spiram;" am Anfang des Codes... Sonst würde er ja auch nicht compilieren...

Vielen Dank aber schonmal!

Und groß/klein-Schreibung sollte nicht das Problem sein, dafür sorgt ja das "ESP8266Spiram Spiram;" am Anfang des Codes... Sonst würde er ja auch nicht compilieren...

Eben!
Dein Programm kompiliert bei mir nicht, wenn Spiram nicht klein geschrieben wird.
Stattdessen könnte man auch wertzui schreiben.

Den Grund habe ich nicht untersucht, schien mir für dein Problem (den Test) nicht wichtig.

Warum hast Du da eine Batterie rangemacht, statt des Pins vom nodemcu?

Weil der 23LCV1024 da eine erwartet, sonst hätte ich ja auch einen 23LC1024 dort einsetzen können.
Aber einen solchen habe ich nicht, und auch nicht auf dem Board, würde auch nicht zu der/meiner Anwendung passen.

Die beiden sind sich ähnlich genug, dass die Library damit läuft..
Einen 100nF Kerko habe ich dran.

combie:
Eben!
Dein Programm kompiliert bei mir nicht, wenn Spiram nicht klein geschrieben wird.
Stattdessen könnte man auch wertzui schreiben.

Den Grund habe ich nicht untersucht, schien mir für dein Problem (den Test) nicht wichtig.

In der Tat, in der Arduino IDE compiliert es nicht... naja, ist aber wirklich nicht das Problem :slight_smile:

combie:
Weil der 23LCV1024 da eine erwartet, sonst hätte ich ja auch einen 23LC1024 dort einsetzen können.
Aber einen solchen habe ich nicht, und auch nicht auf dem Board, würde auch nicht zu der/meiner Anwendung passen.

Die beiden sind sich ähnlich genug, dass die Library damit läuft..
Einen 100nF Kerko habe ich dran.

Hmm , da habe ich wohl das V bei dir im Namen überlesen... Ich habe jedenfalls ein 23LC1024.

Also kann ich eigentlich festhalten, dass das so funktionieren müsste, wie ich es gemacht habe? Also ist der evtl. doch irgendwie kaputt gegangen?

alindner:
In der Tat, in der Arduino IDE compiliert es nicht... naja, ist aber wirklich nicht das Problem :slight_smile:

Wenn Das für Dich kein Problem ist, dann hast Du wohl keine nennenswerten Probleme.

Gruß Tommy

Leider kann ich dir nur sagen, dass ein ESP8266 mit einem solchen RAM und der Lib funktioniert.

Was du falsch machst, oder ob überhaupt, weiß ich nicht.
Und ob der Chip kaputt ist, auch KA.

Wie wäre es, da mal einen LogicAnalyser dran zu halten?