PonyProg und CalibrationByte

Gast #119080
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
Gast #119081
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
Gast #119082
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...
Gast #119083
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
Gast #119084
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...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.