Forum: Mikrocontroller und Digitale Elektronik HEX File Anfängerfrage


von Michael K. (mkersch)


Lesenswert?

Hallo Forenmitglieder,

da in diesem Forum viele Erfahrene User sind, wende ich mich mit meinem 
Problem an Euch.

Ich möchte einen PIC 16F1823 mit einen melabs Field Programmer 
programmieren. Hier spielt man das Hex-File auf eine SD Karte. Mittels
Knopfdruck wird dann der PIC Programmiert.

Leider wird nur der Code -Bereich programmiert. Ich möchte aber auch im 
Datenbereich des EEPROMS die ersten beiden Bytes auf einen definierten 
Wert setzen.

Ist es möglich an das Hex-File diese beiden Dateinbytes anzuhängen ?
Bzw. wie sollte man so eine Aufgabe lösen ?

Vielen Dank

Michael

von Cyblord -. (cyblord)


Lesenswert?

Ohne den Programmer zu kennen würde ich sagen, wenn dieser nur den Flash 
beschreibt dann gehts einfach nicht.

von holger (Gast)


Lesenswert?

>Ist es möglich an das Hex-File diese beiden Dateinbytes anzuhängen ?

Wieso möglich? Bei den PICs ist es sogar üblich die EEPROM
Daten mit in die HEX Datei zu legen.

von ET_Stud (Gast)


Lesenswert?

Eine einfache Pfusch-Lösung, falls der Programmer das nicht ordentlich 
macht, wäre, einfach ein kleines Programm zu schreiben, was diese 
definierten Werte in die EEPROM Zellen einspeichert und sonst nichts 
tut. Das dann zuerst einspielen, Strom ein - Strom aus, dann das echte 
Programm.  Kann man im Prinzip fast 1:1 aus dem Datenblatt 
"abschreiben".

Ansonsten wäre die Lösung, um diese beiden Datenbytes anzuhängen diese:
- Installiere das MPLAB (am besten nicht MPLAB X sondern das klassische)
- Wähle irgendwo unter Device den passenden PIC aus
- Gehe auf - glaube ich -  File -> Import und wähle das HEX-File aus.
- Gehe auf View und dort - glaube ich - Program Memory und Data Memory
- Editiere im Fenster Data Memory das EEPROM so wie du es brauchst
- Ich glaube jetzt File -> Export und dann als HEX abspeichern

Vergleiche beide HEX-Files anschliessend mit dem Text-Editor.

Habe gerade kein MPLAB da, das ich es teste.

Sonst, wenn du es nicht alleine schaffst, hänge hier HEX und EEPROM an 
und ich mach das schnell.

von Ralf (Gast)


Lesenswert?

Wenn ich mich nicht täusche ist bei PICs das EEPROM adressmäßig linear 
hinter dem Codespeicher, d.h. es sollte eigentlich gehen diese Werte ins 
eigentliche Programm zu schreiben und mit dem HEX-File zu brennen.

Ralf

von W.S. (Gast)


Lesenswert?

Ralf schrieb:
> Wenn ich mich nicht täusche

Ja, du täuschst dich. Bei den PIC16Fxxx ist der Codespeicher von 0 bis 
1FFFh, dann kommen die ID-Bytes, dann das Konfigurationswort und dann 
der EEPROM. Etwa so:

;===== Fuses, feste Daten und Code ============================
            SEG      CODE
            CORE14

;===== Fuses ========================
          ORG      2007h
;                  DCBA9876543210
Config:   DATA     11111101110010b

;===== ID-Konfiguration =============
          ORG      2000h
          DATA     1
          DATA     2
          DATA     0
          DATA     1


;===== EEPROM ===================================================
          ORG     2100h
EE_Mode:  DATA    0
Manifest: DATA    "Hallo Welt",0


;===== Codebeginn ================================================

          ORG      0
          CLRF     Status
          CLRF     INTCON
          CLRF     PCLATH
          GOTO     Start
...


Bei den etwas größeren PIC's (PIC18... usw) ist das jedoch um einiges 
anders.

W.S.

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.