File in externes EEPROM speichern

OP #1202734
Lesenswert?

Hallo erstmal,

ich habe folgendes Problem:
ich habe für ein externes EEPROM (AT17LV002) mit C einen Treiber zum
beschreiben und auslesen geschrieben (ATMEGA16).
Nun soll ich ein *.hex file in das EEPROM speichern - das Problem ist
folgendes: wie "importiere" ich dieses File - ich brauche es Byteweise
sprich eine Funktion dir mir aus einer Datei ein byteArray macht (bzw
charArray).

wenn mehrere Angaben oder Infos gebraucht werden, werde ich sie
natürlich posten!

Ich hoffe, dass mir jemand helfen kann!
danke

mfg Lucas
#1202742
Lesenswert?

> ich habe für ein externes EEPROM (AT17LV002) mit C einen Treiber zum
> beschreiben und auslesen geschrieben (ATMEGA16).

Wie kannst du einen Treiber geschrieben haben, wenn du nicht weißt wie 
du diesen 'Treiber' ins Filesystem einbindest.

Ich denke mal du hast keinen Treiber, sondern einfach nur 
Zugriffsfunktionen.

> wie "importiere" ich dieses File - ich brauche es Byteweise
> sprich eine Funktion dir mir aus einer Datei ein byteArray macht (bzw
> charArray).

Was bedeutet in diesem zusammenhang 'importieren'?
Liegen die Daten schon im EEPROM und die Frage ist:
Wie kriege ich sie mit dem Mega wieder raus?
Oder lautet die Frage:
Wie kriege ich die Daten erst mal ins EEPROM (von einem PC aus)?
OP #1202749
Lesenswert?

erstmals Danke für die schnelle Antwort!

naja, dann ist es eben nur eine Zugriffsfunktion...
die Verbindung zum µC geht über die Serielle Schnittstelle (hab das 
Board STK500) - die Verbindung zwischen µC und EEPROM sind nur ein paar 
Kabel (DATA, CLK und noch 2 oder 3 weitere).

Ich muss vom PC aus eine FPGA-Konfigurationsdatei in das EEPROM 
speichern, die ich dann später durch setzen eines Jumpers wieder auslese 
und in das EEPROM schreibe und es somit konfiguriere - das alles um mit 
dem FPGA unabhängig vom PC zu sein!
Das Problem ist: Wie krige ich diese Konfigurationsdatei (am PC) in das 
EEPROM?
#1202780
Lesenswert?

Du brauchst ein Protokoll und ein PC-Programm, welches mit dem AVR über 
dieses Protokoll spricht.

Du könntest auch direkt das Hex-File senden und der AVR wandelt es in 
binär um.
Problem ist dabei die Schreibgeschwindigkeit des EEPROM. Entweder die 
Baudrate klein genug setzen oder Hardware-Handshake.


Peter
OP #1202786
Lesenswert?

ja schon, aber wie soll das gehen -> wie soll ich zB eine 1MB grosse 
Datei (bzw irgendeine Datei) vom PC über den µC in das EEPROM senden? 
genau das ist mein Problem...

wenn die Datei dann zu gross ist, muss ich Buffern, is klar... aber 
jetzt gehts vorerst mal darum überhaupt eine Datei in das EEPROM zu 
kriegen.

ich hoffe ich habe mein Problem verständlich erläutert.
mfg
#1202793
Lesenswert?

Lucas Grünberger wrote:
> ja schon, aber wie soll das gehen -> wie soll ich zB eine 1MB grosse
> Datei (bzw irgendeine Datei) vom PC über den µC in das EEPROM senden?
> genau das ist mein Problem...

Indem du dir zb auf dem PC ein Programm schreibst, welches:

   * Datei öffnet
   * Serielle Schnittstelle öffnet
   * Daten aus dem File ausliest
   * Daten in kleinen Häppchen zum AVR überträgt
   * Vielleicht in irgendeiner Form die korrekte Übertragung
     sicherstellt (Prüfsumme oder dgl.)
   * Datei wieder schliesst
   * serielle SChnittstelle wieder schliesst


Auf dem Mega läuft ein Program welches

   * An der Seriellen lauscht, bis sich der PC meldet
   * Einen Happen Daten vom PC übernimmt
   * Eventuell die Prüfsumme überprüft
   * Den Datenblock ins EEPROM schiebt
   * Dem PC Bescheid gibt, das er den nächsten Datenblock
     schicken kann.

> ich hoffe ich habe mein Problem verständlich erläutert.

Nicht wirklich. Was du als Problem ansiehst, ist in Wirklichkeit keines.
Jeder Bootloader macht das so, nur dass er die Daten ins Flash schiebt 
und nicht ins EEPROM.

Sei ein bischen kreativ! Wenn du zu Hause anrufst (=du bist der PC) und 
möchtest, dass deine kleine Schwester (=die ist der Mega16) irgendwelche 
Werte (=deine Daten) auf einen Notizblock (=das EEPROM) aufschreibst, 
wie gehst du vor?
Gast #1202808
Lesenswert?

>...ich habe für ein externes EEPROM (AT17LV002) mit C einen Treiber zum
>beschreiben und auslesen geschrieben (ATMEGA16).

>...jetzt gehts vorerst mal darum überhaupt eine Datei in das EEPROM zu
>kriegen.

Irgendwie passen die beiden Aussagen nicht so richtig zusammen.

>wie soll ich zB eine 1MB grosse
>Datei (bzw irgendeine Datei) vom PC über den µC in das EEPROM senden?
>genau das ist mein Problem...

Auf dem PC mit einem Terminalprogram. Selbst Hyperterm hat vermutlich 
irgendwo in den Menus die Möglichkeit, (Binär-)Files zu senden. Auf dem 
Mega brauchst du dann nur ein kleines Progrämmchen, daß die Daten von 
der UART entgegennimmt und ins EEProm schreibt. Entweder baust du dazu 
noch ein Hard- oder Softwarehandshake mit ein, oder sendest halt mit 
kleiner Baudrate.

Dann gibt es für jedes EEProm auch käuflich zu erwerbende Programmer. 
Für ein paar hundert € lösen die dein Problem.

Oliver
OP #1202817
Lesenswert?

naja, dann ist warscheinlich das Problem das, dass ich nicht sehr 
erfahren in µC Programmierung bin... bin eher der J2ME und C# 
Programmierer ;)

aber nochmals zurück:
Danke Karl-Heinz!

@ Oliver:
das mit einem Terminalprogramm ist gut, auf sowas hätte ich auch selbst 
drauf kommen können ;)
aber da hab ich auch noch ein Problem: hier Funktioniert die Übertragung 
ja auch über die Serielle Schnittstelle - wie kann ich mit dem µC Daten 
von der Seriellen engegennehmen?

tja gerade desshalb versuche ich es selbst zu machen...

eure Vorschläge werden mich jetzt wieder eine weile beschäftigen ^^

mfg

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