Forum: Compiler & IDEs File in externes EEPROM speichern


von luki G. (testcenter)


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

von Karl H. (kbuchegg)


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)?

von was-willst-du (Gast)


Lesenswert?

na dann poste mal.

Dein c-Programm läuft auf dem uC? Dein Hex-File ist auf dem PC?
Welche Datenverbindung besteht?

von luki G. (testcenter)


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?

von was-willst-du (Gast)


Lesenswert?

vom PC senden, mit dem uC empfangen, ins EEProm schreiben?

von luki G. (testcenter)


Lesenswert?

so in die Richtung, ja...
ist das überhaupt möglich?
aber wie soll ich sonst das EEPROM konfigurieren?
mfg

von was-willst-du (Gast)


Lesenswert?

erster Teil der Frage: Klar ist das möglich. Serielle Datenübertragung 
ist uralt und erprobt.

zweiter Teil: unverständlich, was Du meinst.

von Peter D. (peda)


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

von luki G. (testcenter)


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

von Karl H. (kbuchegg)


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?

von Oliver (Gast)


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

von luki G. (testcenter)


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

von Oliver (Gast)


Lesenswert?


von luki G. (testcenter)


Lesenswert?

ich werd hier mal ne weile beschäftigt sein! ^^

mfg und Danke an alle!

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.