Forum: Mikrocontroller und Digitale Elektronik 24LC1025 EEPROM mit PICkit2 programmieren


von Manfred F. (dermanfred)


Angehängte Dateien:

Lesenswert?

Hallo

Ich möchte kleine WAV Dateien mit dem PICkit2 in einem 24LC1025 EEPROM 
speichern.

Wenn ich eine hex-datei eines PIC-Programmes in das PIC-Kit lade, wird 
mir der Hex Code im Fenster angezeigt und ich kann mit dem 
"write-befehl" ins EEPROM schreiben. Ein anschliessendes auslesen des 
EEPROMS zeigt die korrekten Daten wieder an. Das schreiben ins EEPROM 
funktioniert also.

Möchte ich nun die Hex-Datei des Wave Files, oder auch die nach RAW 
konvertierte RAW-Datei in das PIC-Kit laden, so erscheint ebenfalls die 
Meldung "Hex file sucessfully imported", aber im Fenster steht nur FF 
und es wird nichts ins EEPROM geschrieben bzw. nur FF.

Im Anhang zwei Screenshoots des PICkit2.

Was mache ich falsch?


Mit schönen Grüßen
Manfred

von Toby P. (Gast)


Lesenswert?

Schau dir mal den Inhalt der .hex files in einem Texteditor an.

von Manfred F. (dermanfred)


Angehängte Dateien:

Lesenswert?

Hallo Toby.

So sieht das im Editor aus (siehe Screenshots):

Und nun?

1. Wie bekomme ich nun die .WAV bzw. .RAW Datei in das PICkit2 und dann 
auch ins EEPROM?

2. Warum zeigt PICkit2 "hex file sucessfully imported" an, wenn nichts 
imported wurde?


Grüße
Manfred.

: Bearbeitet durch User
von georg (Gast)


Lesenswert?

Manfred F. schrieb:
> Wie bekomme ich nun die .WAV bzw. .RAW Datei in das PICkit2 und dann
> auch ins EEPROM?

Vielleicht indem du sie als Binärdatei lädst - ich weiss nicht ob PIckit 
das kann, Programmer können das i.a., z.B. mein GALEP und andere.

Georg

von Manfred F. (dermanfred)


Lesenswert?

Hallo Georg

Der Befehl im PICkit2 heisst "Import Hex/Bin". Ich kann leider davon 
keinen screenshoot machen.

Muss die Datei für das PICkit2 im Intel Hex Format vorliegen?

Wenn ja, wie kann ich die *.Wav bzw. *.Raw-Datei dahin konvertieren?

Lg Manfred

von georg (Gast)


Lesenswert?

Manfred F. schrieb:
> Muss die Datei für das PICkit2 im Intel Hex Format vorliegen?

Ein BIN-Datei sicher nicht. Die Frage ist wie man BIN statt HEX 
auswählt, ich habe keinen Pickit - Korrektur ich habe einen Pickit3.

Georg

von Manfred F. (dermanfred)


Lesenswert?

Manfred F. schrieb:
> PIC-Programm_im_Editor.jpg
>
> WAV-RAW-Datei_im_Editor.jpg


Hallo Georg

Auswählen kann man da nix.

Wenn man sich die beiden Screenshots aus dem Ediotor ansieht, dann ist 
die Programmdatei im Intel-Hex-Format. Die liest das PICkit problemlos 
ein.

Die RAW Datei ist einfach nur RAW und PICkit liest die nicht ein.

Also müsste ich doch die RAW-Datei mit irgend einem Tool nach Intel-Hex 
konvertieren. Bisher habe ich leider noch nichts im Web gefunden.

Lg Manfred

: Bearbeitet durch User
von georg (Gast)


Lesenswert?

Manfred F. schrieb:
> Bisher habe ich leider noch nichts im Web gefunden

Dann google mal "bin to hex file". Es gibt einige, meistens uralt, z.B. 
noch als DOS-Programm, macht aber ja nix.

Dass ein Programmer BIN anbietet, aber dann nicht kann glaube ich nicht 
so ohne weiteres, aber das zu überprüfen ist mir zu mühsam und bringt ja 
nichts.

Georg

von HildeK (Gast)


Lesenswert?

Manfred F. schrieb:
> Also müsste ich doch die RAW-Datei mit irgend einem Tool nach Intel-Hex
> konvertieren. Bisher habe ich leider noch nichts im Web gefunden.

Selber schreiben?
Ist nicht so schwer, das Format findet man.
Im Wesentlichen:
Schleife über:
  - n Bytes lesen aus der Quelle (binär)
  dann schreiben:
  - ein Doppelpunkt
  - 1 Byte für die Anzahl der Daten (n) in einer Zeile
  - Highbyte und Lowbyte der Speicheradresse
  - Kennung (00 für Datensatz)
  - byteweise die Daten nacheinander entsprechend der angegebenen Anzahl
  - ein Byte CRC, das Lowbyte der negierten Summe der ganzen Zeile
  - neue Zeile und Schleife wiederholen

Und als allerletzte Zeile den Epilog:
- :00000001FF

Aber dir ist schon klar, dass in den Speicher bei 8kHz Abtastfrequenz 
und 8Bit Mono Audiosignal nur rund 16s in den 24LC1025 passen?

von Toby P. (Gast)


Lesenswert?

Manfred F. schrieb:
> Und nun?
>
> 1. Wie bekomme ich nun die .WAV bzw. .RAW Datei in das PICkit2 und dann
> auch ins EEPROM?

hex ist Intel hex Format. Prozessoren werden nicht wie ein Eprom 
programmiert daher nimmt man dieses Format

https://de.wikipedia.org/wiki/Intel_HEX

Du brauchst, wie schon beschrieben, einen Konverter.

>
> 2. Warum zeigt PICkit2 "hex file sucessfully imported" an, wenn nichts
> imported wurde?

Weil das importieren ja geklappt hat ;-).

von Manfred F. (dermanfred)


Lesenswert?

Hallo

georg schrieb:
> Dass ein Programmer BIN anbietet, aber dann nicht kann glaube ich nicht
> so ohne weiteres, aber das zu überprüfen ist mir zu mühsam und bringt ja
> nichts.

Ich habe nun einfach mal die Sound.RAW in Sound.Bin umbenannt und siehe 
da, es klappt! PICkit2 liest die Datei ein, zeigt sie im Fenster an und 
programmiert auch das EEPROM korrekt.

Danke Georg für den Denkanstoss.


HildeK schrieb:
> Aber dir ist schon klar, dass in den Speicher bei 8kHz Abtastfrequenz
> und 8Bit Mono Audiosignal nur rund 16s in den 24LC1025 passen?

Ja, das ist mir Klar. Ich habe im Moment zwei EEPROMs am I2C-Bus eines 
PIC16F1825 und könnte noch auf max. vier EEPROMs erweitern. Für ein paar 
Geräusche im Modellbaubereich reicht das voll und ganz.

Schönen Dank an Alle.

Schöne Grüße
Manfred

: Bearbeitet durch User
von Manfred F. (dermanfred)


Lesenswert?

Hallo

Das programmieren von EEPROMs klappt nun dank Eurer Hilfe bei mir mit 
dem PICkit2.

Allerdings kann ich beim programmiern keine Optionen angeben. Es gibt 
lediglich einen "WRITE" Button. Die Daten werden immer an den Beginn des 
EEPROMS, also nach 00000h geschrieben.
Dadurch kann ich kaum mehrere Dateien in das EEPROM schreiben. Die 
einzige Möglichkeit die ich sehe, ist die einzelnen Dateien vor dem 
Brennen aufwendig in einem HEX-Editor zusammenzubasteln.

Ich wünsche mir zB: Prog File.bin nach 01FF3h.

Dann könnte man nach und nach mehrere Dateien an verschiedene Stellen 
des EEPROMs schreiben.

Nun meine Fragen:
1. Wie macht Ihr das?
2. Welche Programmiergeräte nutzt Ihr zum programmieren von seriellen 
I2C EEPROMs und was kosten die?
3. Gibt es Selbstbauprojekte für solch einen EEPROM-Brenner?

Mit schönen Grüßen
Manfred

: Bearbeitet durch User
von ...-. (Gast)


Lesenswert?

Mach aus Deinen verschiedenen Dateien eine (1) Datei durch 
aneinanderhängen, Du musst halt wissen und in Deiner Anwenung 
programmieren, bei welcher Adresse im EEPROM die jeweiligen Abschnitte 
anfangen und aufhören.

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.