mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmieradapter mit Calibration Byte


Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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).

...

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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).

...

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.