Go Down

Topic: Gibt es externen Flash speicher für den Arduino? (Read 1 time) previous topic - next topic

Balisto

#30
Oct 09, 2019, 08:34 pm Last Edit: Oct 09, 2019, 08:41 pm by Balisto
@harryberlin, danke für die Antwort. So etwas beschreibe ich in diesem Beitrag von mir:
https://forum.arduino.cc/index.php?topic=639038.msg4330306#msg4330306

Kommt mir hier vor als wären hier manche nur stinkig weil sie nicht wissen was ich damit anfangen will..... Irgendwo in all den Beitägen steht es aber bereits. Es ist aber nicht relevant. Ich denke ich habe in meinem letzten Beitrag klar beschrieben was ich möchte und auch einen lösungsansatz gebracht. Ich frage höflich und gehe niemanden an.
Für hilfreiche Antworten bin ich dankbar. Ja ich wieß es gab schon welche, auch dafür bin ich dankbar.

Vielleicht kann jemand was zu meinem theoretischen Ansatz aus Beitrag 27 schreiben. Wäre interessant ob es so in etwa funktionieren könnte.
^^-------/\-------^^

combie

Quote
... folgendes ist alles nur theoretisch ....
Folgender Aufbau:
Arduino, spi flash modul W25Q64, sd karten modul, eine SD Karte mit einer beliebigen Datei darauf die unter Windows auf die SD Karte gespeichert wurde.
Wie wie wäre es mit einem Sketch auf dem Arduino dass in einer schleife die Datei (bzw die Daten) von der sd karte blockweise in einen puffer liest und diesen Puffer auf den flash speicher speichert? Das Ergebnis wäre doch, dass die Daten der Datei von der SD Karte auf dem flash speicher modul wären, oder?? Sozusagen ein 1:1 Abbild der Datei von der Sd Karte... Um die Daten wieder auf die SD Karte zu bekommen, gehe ich einfach umgekehrt vor, also lese vom speicher und schreibe auf sd karte.
Dieser Aufbau tut genau das

Den Code habe ich allerdings sofort wieder gelöscht, bzw. gar nicht gespeichert.
Das Programm war trivial.
Säge kein Sägemehl.

harryberlin

Da es hier eine open source community ist, darf man nichts verschweigen.
Also ganz klar, du sollst die passwörter und verwendungszwecke hier mitteilen.

Tommy56

und bevor jetzt jemand schreibt "Dann mach es doch so...", würde ich gerne aber mir fehlt das grundwissen dazu. Daher frage ich hier im Forum euch.
Dann wirst Du wohl, egal mit welchem Ansatz, nie zu einer Lösung kommen.
Denn ich bezweifle stark, dass sich jemand hinsetzen wird und das für Dich realisiert.

Ich habe Dir bereits geschrieben, dass Du mit der Lib von Paul Stoffregen hinkommen kannst, wenn Du gut planst. Ich habe aber, durch Deine schwammige und laufend wechselnde Beschreibung den Eindruck, dass Du selbst nicht wirklich weißt, was du genau willst und dann wird es auch damit unmöglich.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

ElEspanol

#34
Oct 09, 2019, 09:39 pm Last Edit: Oct 09, 2019, 09:40 pm by ElEspanol
Die Geschichte ist tatsächlich recht einfach, solange nur EINE Datei auf den Chip soll. Ist fast alles den Beispielen der IDE zu entnehmen. Ein Problem wird sein, dass wenn es sich um binäre Daten handelt, jeder Wert von 0x00 bis 0xff vorkommen kann und du dann nix frei hast um als Steuerzeichen/Protokoll zu verwenden. Dann musst du eben ein Zeichen Escapen.

Bei mehreren Dateien musst du dir ein umfangreicheres Protokoll ausdenken, mit ebendiesen Steuerzeichen.

Du brauchst das dann einmal um von SD auf den Chip zu schreiben, und einmal, um vom Chip auf SD zurückzuschreiben.

Und nein, einen passenden Sketch werde ich auch nicht schreiben.


harryberlin


Tommy56

Warum wollt ihr unbedingt die binären Daten umkodieren?
Header mit fester Länge und definiertem Aufbau (incl. Längeninfo) und danach die binären Daten.
Da kann man dann auch gleich die Position des Folgeheaders bestimmen, so einer existiert.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Balisto

#37
Oct 09, 2019, 10:24 pm Last Edit: Oct 09, 2019, 10:28 pm by Balisto
Dann wirst Du wohl, egal mit welchem Ansatz, nie zu einer Lösung kommen.
Denn ich bezweifle stark, dass sich jemand hinsetzen wird und das für Dich realisiert.

Ich habe Dir bereits geschrieben, dass Du mit der Lib von Paul Stoffregen hinkommen kannst, wenn Du gut planst. Ich habe aber, durch Deine schwammige und laufend wechselnde Beschreibung den Eindruck, dass Du selbst nicht wirklich weißt, was du genau willst und dann wird es auch damit unmöglich.

Gruß Tommy
Meine Aussage ,"dann mach es doch so" war auf meinen theoretischen Ansatz bezogen!
Auch habe ich geschrieben:
Quote
Für hilfreiche Antworten bin ich dankbar. Ja ich wieß es gab schon welche, auch dafür bin ich dankbar.
Damit war unter anderem deine Antwort mit der Lib von Paul Stoffregen gemeint.
Und meine wechselnde Beschreibung ist nur zustande gekommen weil mich hier die meisten falsch verstanden haben. Dann habe ich es eben anders formuliert!!

Quote
Warum wollt ihr unbedingt die binären Daten umkodieren?
Header mit fester Länge und definiertem Aufbau (incl. Längeninfo) und danach die binären Daten.
Da kann man dann auch gleich die Position des Folgeheaders bestimmen, so einer existiert.
Eben das war mein Grundgedanke hinter meinem Ansatz. So sind dateien von spielen aufgebaut in denen  zb alle grafiken in einer .dat gespeichert  sind. Daher kenne ich das prinzip. Mir ist klar das es mit mehreren Dateien kompliziert wird. Daher würde mir eine datei auf dem flash zu speichern reichen.

@ElEspanol, danke für deine Antwort und den Hinweisen. Habe ich verlangt das mir jemand den sketch schreibt?? Nein!! Habe ich nicht. ich möchte einfach denkanstöße, schlagworte oder andere hilfreiche tipps die mich in die richtige richtung lenken. Krass wie man sich hier erklären muss  :smiley-confuse:  :smiley-confuse:

Wie man die datei von der sd karte einliest kann ich mir in etwa so vorstellen:
Code: [Select]

File dataFile = SD.open("test.rar");
if (dataFile) {
     while (dataFile.available()>=512) {
       dataFile.read_bytes(my_buffer, 512);
      // hier der code zum schreiben in den flash speicher
     }
     dataFile.close();
   }

Dann habe ich einen Block im puffer. Was ich nicht verstehe, wie schreibe ich die daten in den spi flash?

^^-------/\-------^^

Tommy56

Dann habe ich einen Block im puffer. Was ich nicht verstehe, wie schreibe ich die daten in den spi flash?
1. Wirfst Du bei Deinem Code alles am Ende weg, was kein ganzer 512-Byte-Block ist

2. So wie das die Lib Deiner Wahl vorsieht.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

combie

#39
Oct 09, 2019, 10:47 pm Last Edit: Oct 09, 2019, 10:50 pm by combie
Quote
Was ich nicht verstehe, wie schreibe ich die daten in den spi flash?
Das ist ein SPI Flash!

Also:
Datenblatt des Flash lesen und die Arduino SPI Lib verwenden!

An der unkonkreten Frage, kann man sehen, wie wenig dich der Weg interessiert.
Säge kein Sägemehl.

Balisto

#40
Oct 10, 2019, 01:26 pm Last Edit: Oct 10, 2019, 01:31 pm by Balisto
Quote
An der unkonkreten Frage, kann man sehen, wie wenig dich der Weg interessiert.
Nein!!! Das ist das was du da hinein interpretierst!! Daran kann man sehen wie wenig Ahnung ich davon habe. Und genau deswegen frage ich hier im Forum!!

Die Daten von der Sd karte lesen und in einen puffer schreiben, werde ich hinbekommen.

Wie bekomme ich den Puffer in den spi flash geschrieben? Ja ich könnte es mit der SPI lib versuchen, denke aber das dies mehr programmierkenntnisse abverlangt.
Ich denke diese spi memory lib https://github.com/Marzogh/SPIMemory kann mir da etwas arbeit abnehmen.

Hier ein Beispielcode der glaube ich das richtige für mich wäre um in den Speicher zu schreiben.
Code: [Select]
#include <SPIMemory.h>

SPIFlash flash;

#define _bufferSize 8

uint8_t dataOut[_bufferSize] = {0,1,2,3,4,5,6,7};
// This data type should be changed depending on the type of data being written to the flash memory
uint32_t _address;

void setup() {
  flash.begin();
  _address = flash.getAddress(sizeof(dataIn));
  Serial.print(F("Address = "));
  Serial.println(_address);

  Serial.print(F("Data write: "));
  if (flash.writeByteArray(_address, dataOut, _bufferSize) {
  // This function should be changed depending on the type of data being written to the flash memory
    Serial.println(F("Successful"));
  }
  else {
    Serial.println(F("Failed"));
  }

}

void loop() {
}


dataOut wären dann die Daten (bzw ein block von daten) der Datei von der sd karte. Klar, dass oben ist nur das prinzip und nicht der fertige code.

Bin ich nun auf dem richtigen weg? Daten von der sd karten in einen puffer lesen und diesen puffer mit obiger (oder ähnlicher) methode in den speicher schreiben<--- einfach ausgedrückt.

Falls noch jemand den ein oder andern guten Tipp für mich hat, dann wäre ich dankbar. 
^^-------/\-------^^

combie

#41
Oct 10, 2019, 03:35 pm Last Edit: Oct 10, 2019, 03:37 pm by combie
Quote
Ich bin ein noob und kenne mich nicht so gut aus.
Quote
Daran kann man sehen wie wenig Ahnung ich davon habe.
Je öfter du das wiederholst, desto mehr wird sich der Zustand verfestigen.

Nennt sich Selbstsuggestion.
Ein übliches Verfahren, bei Sportlern, in Religionen, usw.
In positiver Ausrichtung, ein sehr förderliches Verfahren.
In negativer Ausrichtung, wie hier, verursacht es Blockaden/Hemmungen.

Tipp:
Wer will, findet Wege.
Wer nicht will, Gründe.

-----
Quote
Bin ich nun auf dem richtigen weg?
Dass deine Idee durchführbar ist, habe ich dir schon gesagt!
> Dieser Aufbau tut genau das


Soll ich das jetzt noch drei mal wiederholen, bis du das glaubst?




Säge kein Sägemehl.

Balisto

#42
Oct 10, 2019, 05:25 pm Last Edit: Oct 10, 2019, 05:28 pm by Balisto
@combie , warum fühlst du dich jedes mal persönlich angesprochen wenn ich hier einen Beitrag schreibe??
Tipp an dich = Wer helfen will hilft und wer nicht helfen will lässt es!
Du hast geschrieben "Dieser Aufbau tut genau das", dafür bin ich dir auch dankbar. Ich suche aber hilfe beim Programmieren.

Je öfter du das wiederholst, desto mehr wird sich der Zustand verfestigen.

Nennt sich Selbstsuggestion.
Nein!! Nennt sich unwissenheit.
Nennt sich, frage eine community die sich auskennt und wo es nette Menschen gibt die dir gerne helfen!!
Nennt sich, es gibt in jeder community menschen die gerne helfen und menschen die sich über die unwissenheit anderer aufregen und mit unverständnis reagieren.


Das ist ein SPI Flash!

Also:
Datenblatt des Flash lesen und die Arduino SPI Lib verwenden!

An der unkonkreten Frage, kann man sehen, wie wenig dich der Weg interessiert.

Das war nett gemeint von dir aber hilft einem noob nicht viel weiter, weil dazu viel mehr programmierkenntnisse nötig sind. daher wollte ich dir noch einmal klar machen das ich ein noob bin. und auch als ich es das erste mal gesagt habe war ich ein noob. Das ist unabhängig davon wie oft ich es schreibe!  Echt zu arg was hier abgeht.... zum Glück nur eine minderheit....
Es gibt noch genug menschen die noobs gerne weiter helfen, denn jeder war mal ein noob. Niemand ist mit all seinem wissen auf die welt gekommen. Leider vergessen das einige.....
^^-------/\-------^^

Tommy56

denn jeder war mal ein noob. Niemand ist mit all seinem wissen auf die welt gekommen.
Diesen Zustand kann man aber durch Lernen verbessern. Diesen Weg mussten alle gehen, die heite Kenntnisse haben. Leider ist dazu bei Dir wenig Bereitschaft zu erkennen.
Hilfe zum Lernen gibt es hier jederzeit. Aber wenn die "Hilfe" beinhalten soll: Mach mal meine Arbeit, dann eher nicht.

Gruß Tommy

 
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

combie

#44
Oct 10, 2019, 06:22 pm Last Edit: Oct 10, 2019, 06:25 pm by combie

Quote
@combie , warum fühlst du dich jedes mal persönlich angesprochen wenn ich hier einen Beitrag schreibe??
Tipp an dich = Wer helfen will hilft und wer nicht helfen will lässt es!
Auch wenn es dich stören mag, aber du hast keinen Einfluss darauf "ob", und "wann", ich "was" schreibe.
Alleine der Versuch ist schon anmaßend und irrational.




Quote
Es gibt noch genug menschen die noobs gerne weiter helfen, denn jeder war mal ein noob. Niemand ist mit all seinem wissen auf die welt gekommen. Leider vergessen das einige.....
Seit 7 Jahren bist du dabei.....

Ich helfe gerne, wenn der/die jenige auch was lernen will.
Das kannst du hier in Hunderten von Threads nachlesen.

Ich helfe dir nicht dabei, deinen Noob Status zu stabilisieren.
Auch das kannst du in einigen Threads so wiederfinden.


Klar, kannst du dich auf deinem Noob Status ausruhen, und weiter als Abstauber und "Fass ohne Boden" durch die Welt gehen. Aber damit muss doch nicht jeder einverstanden sein, oder?
Oder dich gar bedienen?

Schon mal drüber nachgedacht, dass deine Erwartungshaltung evtl. etwas überzogen ist?

Säge kein Sägemehl.

Go Up