Forum: Mikrocontroller und Digitale Elektronik Programmieradapter mit Calibration Byte


von Ronny Schulz (Gast)


Lesenswert?

Ich will demnächst ein paar ATtiny12 oder evtl. auch ATtiny11
programmieren. Der ATtiny11 geht nur im High-Voltage mode.
Grundsätzlich wäre mir der auch lieber, weil er günstiger ist.
Allerdings nehme ich auch den ATtiny12, wenn es nicht anders geht.

Bisher habe ich meinen ATmegas mit einem seriellen Adapter
programmiert. Den von der Seite in der seriellen Version, da die
parallele über Schnittstellenkarte im neuen PC nicht mehr ging:

http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

Allerdings soll das für die Tinys etwas anders sein, weil ich da noch
das Kalibrationsbyte setzen will. Und zwar möglichst einfach, weil ich
ein paar mehr davon programmieren will.

Der serielle Adapter geht aber damit nicht:

http://www.rowalt.de/mc/avr/progd.htm

Welche Lösungen gibt es, die beides vereinen? Also weg von der
parallelen Schittstelle und gleichzeitig einfache Programmierung bzw.
einfaches schreiben des Kalibrationsbytes?

Vielen Dank!

von Peter Dannegger (Gast)


Lesenswert?

Der Tiny11 hat nur den stark driftenden Watchdogoszillator, da ist
nichts mit kalibrieren.

Beim Tiny12 wird das Kalibrierbyte in die oberste Adresse des Flash
kopiert, da kann es die Software dann auslesen.

Du must nur das Löschen vor dem Programmieren ausschalten !


Peter

von Ronny Schulz (Gast)


Lesenswert?

Okay also doch Tiny12 mit ISP-Programmer.

Aber wann wird denn das byte da reinkopiert. Macht das Ponyprog oder
avrdude (wenn es mal wieder funktionieren sollte) automatisch, wenn ich
das benutze und ich muss es nur noch auslesen oder wie funktioniert
das?

Vor allem wie soll das automatisch funktionieren, woher weiß denn das
Programm, dass das mit der Kalibrierung stimmt?

Ich habe keinen Plan, wie das gehen soll. Zumindest das setzen. Das
auslesen im Programm sollte ja kein Problem darstellen.

von Hannes L. (hannes)


Lesenswert?

Der Hersteller kopiert das Calibrationsbyte da rein. Du darfst es nur
nicht löschen. Und wenn du es löscht, dann musst du es selbst
reinschreiben (soll mit Pony gehen).

...

von Ronny Schulz (Gast)


Lesenswert?

Das heißt, jeden Controller, den ich kaufe, der ist schon kalibriert
(Tiny12 z.B.) und ich muss mir darüber keine Gedanken machen, wenn ich
im normalen Temperaturbereich (um die 25°C arbeite)?

Aber im Datenblatt geht das so richtig nicht hervor.

von Hannes L. (hannes)


Lesenswert?

Der Hersteller schreibt in jeden neuen kalibrierbaren AVR das
Calibrationsbyre in das L-Byte und H-Byte der letzten Flash-Zelle. Wenn
ich mich nicht irre, dann auch in eine EEPROM-Zelle, das habe ich aber
nicht überprüft.

Wenn du nur neue Chips verwendest und keine Tests damit machst
(mehrfach updaten), dann kannst du diese Kopie ausnutzen. Ich nutze
dazu immer folgende (eigene) Include-Datei, die ich in die
Reset-Routine einbinde:

;--- Calibration des internen RC-Oszillators.
;    Kann bei Betrieb mit Quarz entfallen...
;
;Das Calibrationsbyte muss von der Programmer-Software aus dem
Signature-
;Bereich des AVR gelesen werden und in das Low-Byte der letzten
;Flash-Zelle geschrieben werden.

;Beim Tiny26 muss der Bezeichner "flashend" definiert werden, da
dies
;in der "tn26def.inc" vergessen wurde.

 ldi zl,low(2*flashend)     ;Adresse auf Kalibrationsbyte L
 ldi zh,high(2*flashend)    ;und H
 lpm                        ;Kalibrationsbyte lesen
 ser zl                     ;Referenz für Vergleich auf Gültigkeit
 cpse r0,zl                 ;Kalibyte gültig? (nein wenn $ff...)
 out osccal,r0              ;ja, Chip kalibrieren...
;--- Ende Calibration...

Diese Routine prüft das Byte zusätzlich auf Plausiblität und verhindert
das Kalibrieren auf "Maximum" (das Übertakten), falls kein
Calibrationsbyte im Flash liegt.

Mein Eigenbau-ISP-Programm kalibriert übrigens automatisch beim Löschen
wenn das zu brennende Programm die letzte Flash-Zelle nicht benötigt und
der AVR kalibriert werden muss (Tiny12, Tiny15, Megaxx bei internem Takt
ungleich 1MHz).

...

von Ronny Schulz (Gast)


Lesenswert?

Ja okay, dann habe ich das verstanden. Also stehen die Werte schon drin
und ich könnte die bei neuen Chips auch vorher auslesen, bevor ich
damit rumfummele.

Dein Eigenbau ISP-Programm: Wie führt es eine Kalibrierung durch bzw.
möchtest Du es zur Verfügung stellen?

von Hannes L. (hannes)


Lesenswert?

Es steht (noch) auf www.hannes.de.md zur Verfügung.
Ich bin aber aus den dort genannten Gründen nicht daran interessiert,
anderen ISP-Programmen Konkurrenz zu machen.

...

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.