Forum: Mikrocontroller und Digitale Elektronik PonyProg und CalibrationByte


von SoC (Gast)


Lesenswert?

Hi,
ich programmiere ATTINY15 mit PonyProg(PP) und habe in meinem Code
eine Funktion die aus dem Flash das Cal Byte in das OSSCAL register
schreibt.Habe schon oft gelesen das PonyProg alles mit 0xFF auffüllt
und das CalByte das ja von Atmel im Flash abgelegt wird dadurch
überschrieben wird.
Aber PP unterstützt ja Scripts, also hier mein Script.

SELECTDEVICE ATTINY15
CLEARBUFFER
LOAD-PROG prog.hex
READ-CALIBRATION 0x3FF
ERASE-ALL
WRITE&VERIFY-ALL

Steht eigentlich genauso in der Doku von PP.
Nun zu meiner Frage wenn ich im Script jetzt bei den Fusebits den Reset
dissable kann ich dann noch die Lockbits schreiben ?
Im Datenblatt steht ja das die Fusebits erst nach dem verlassen des
programmiermodes ausgewertet werden. Müsste also doch auch mit PP so
funktionieren oder ?
Gruesse

von Andi (Gast)


Lesenswert?

Das Cal-Byte steht göaube ich nicht an der Adresse 0x3FF.
Du kannst ja mal ein Erase machen und mit der Funktion Read Calibration
Byte siehst Du, das kein Wert mit 0xFF zurück kommt.
Da mußt Du per Code schon selber das Register OSCCAL setzen.
Gibt auch ne Möglichkeit, das man das mit PP in eine bestimmte
EEPROM-Adresse schreibt und per Code aus dem EEPROM lesen und setzen.
Sobald Du den Reset per Fuse deaktivierst, kannst Du nie mehr seriell
Deinen Tiny15 programieren.
Nur noch mit Hi-Voltage und anderer Hardware/Software.
Brauchst Du denn PB5 unbedingt?

Gruß
Andi

von ...HanneS... (Gast)


Lesenswert?

Hi Andy:

Das Calbyte steht nicht im Flash an 0x3FF. Stimmt...

Deshalb will SoC es ja aus dem Signature-Bereich auslesen und ins Flash
nach 0x3FF schreiben. Nur dann findet seine Calib-Routine (Teil der
Reset-Routine) das Calibyte vor und kann es nach OSCCAL ausgeben. Ich
benutze zwar 0x3FE, aber das Prinzip ist das Gleiche. Allerdings mach
ich das nicht mit Pony, finde SoC's Variante aber clever...

Bei den Fuses und Lockbits kann ich mangels Erfahrung leider nicht
helfen...

Gruß...
...HanneS...

von SoC (Gast)


Lesenswert?

Hi,
genau ich will halt nicht für jeden Controller neu compilieren.
Habs mal ausprobiert und es scheint so wie wenn PP die Lockbits im
gleichen Programmierzyklus schreibt wie die Fusebits. Also scheint die
Methode mit dem Script zu taugen.

@Hannes: Spart halt Bauteile wenn man den Reset abschaltet. Meine
Schaltung hat nen Spannungsregler mit ON/OFF Funktion und der Tiny hat
ja ne  PoweronReset schaltung integriert .
Gruesse

von ...HanneS... (Gast)


Lesenswert?

Hi SoC...

Ich assembliere auch nicht für jeden Chip neu. Mein
Eigenbau-ISP-Programm schreibt das ausgelesene Calibyte beim Löschen
automatisch ins Flash (letzte Zelle H und L), falls das zu brennende
Programm die letzte Zelle nicht belegt. Mit Fuses und Locks mach ich
noch nicht viel, da ich meinen Code nicht vor Auslesen schützen
muss/will.

Bit- & Bytebruch...
...HanneS...

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.