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
Ohne den Programmer zu kennen würde ich sagen, wenn dieser nur den Flash beschreibt dann gehts einfach nicht.
>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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.