www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OSCCAL für 8MHz ?!? be ATTiny26


Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also grob habe ich das mit der Kalibierung schon begriffen - für jeden
der möglichen Werte 1,2,4 und 8MHz mit internem RC-Oszillator gibt es
wohl einen im Signatur-"Speicher" abgelegten Wert, der ins OSCCAL
Register geladen werden muss - so wie so gut - wie komme ich an diese
Werte heran - mit Ponyprog sehe ich genau "einen" Wert  ( ich vermute
den für 1MHz ) , wie komme ich nun an die anderen heran ?

Kann man sich aus z.B. Ponyprog den "kompletten" signaturspeicher
anzeigen lassen ?

Grüße,

Stefan

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
da gibt es nur einen Kalibirierungswert für das
OSCCAL-Register im Sig.-Speicher.
Dieser Wert ist für 1MHz und wird beim Reset
automatisch ins OSCCAL Register geladen. (Beim Tiny26)
Bei 1 MHz braucht man also selbst garnix machen.
Für 2,4 oder 8MHz muss man den Kalibrierungswert selbst
ermitteln, und ins OSCCAL Reg. schreiben.
Wenn man es so genau braucht.

Gruß Jan

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> da gibt es nur einen Kalibirierungswert für das
> OSCCAL-Register im Sig.-Speicher.

Irrtum...
Siehe Auszug aus dem Datenblatt im Anhang...

> Dieser Wert ist für 1MHz und wird beim Reset
> automatisch ins OSCCAL Register geladen. (Beim Tiny26)

Der Wert für 1MHz wird bei Reset automatisch ins OSCCAL geschrieben.
Nutzt man eine andere interne Frequenz, so ist mit einem (geeigneten)
ISP-Programm über das ISP-Interface der gewünschte Wert aus dem
Signature-Bereich (H-Bytes, Adresse 1 bis 3)) zu lesen und mit dem
AVR-Benutzer-Programm (Firmware) in OSCCAL schreiben.

Ich nutze dazu das untere Byte der letzten Flashzelle, die sich für LPM
mit "flashend*2" in den Pointer laden lässt. Bei älteren Versionen der
"tn26def.inc" wurde aber die Definition von "flashend" vergessen,
also vorher mal nachschaun.

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz vergessen:

Der Tiny26 kann auch mit 16MHz internem Takt arbeiten und wird dabei
sogar automatisch kalibriert. Der Trick: Mit 1MHz arbeiten und die PLL
einschalten...

...

Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hannes

ok, bestätigt meine denke - kann mir eventuell jemand sagen ob ich mit
PonyProg an die inhalte der signaturbytes dran komme. Ansonsten nutze
ich nur noch das avrdude das in der WinAVR-Toolchain eingebunden ist.

Mit letzteren wuesste ich nicht wie ich die Sirgnatur auslesen soll...

zu den 16 MHz - ich habe das Datenblatt so verstanden, dass der über
die PLL erzeugte Tack von 64MHz nur im IO-Bereich und für irgendwelche
Timer  herangezogen wird ... Datenblatt Seite 23 ...

Wäre ja witzig - traut sich atmel nicth den Kern offiziell für 16MHz
freizugeben ?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier wird über 16MHz diskutiert:

http://www.mikrocontroller.net/forum/read-1-112631.html

Der Tiny26 ist doch mit 16MHz angegeben, der Tiny26L mit 8MHz.

Wie man Ponyprog oder Yaap bedient, weiß ich nicht, ich benutze diese
Programme nicht. Ich glaube aber nicht, dass die aktuellen Versionen
dieser Programme das nicht können.

Bei AVR-Studio kann man das Calibrationsbyte auswählen und mein
Eigenbau-ISP liest (bei calibrierbaren AVRs) beim Löschen das (anhand
der Fusebiteinstellung erforderliche) Calibrationsbyte und schreibt es
in die letzte Flashzelle, wo es meine Calibrationsroutine (wenn sie es
vorfindet) nach OSCCAL schreibt. Einfacher geht's nicht...

...

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei jungfräulichen ICs stehen die Werte auch mit im EEPROM und im Flash
am Ende.

Wenn man also beim Programmieren das automatische Löschen ausschaltet
bleiben die Werte erhalten.

Das ist dazu da, damit man bei Massenproduktion die Werte nicht immer
extra auslesen muß.

Man liest sie im Programm per LPM von der entsprechenden Adresse aus.

Einfach mal den Flash eines jungfräulichen ICs auslesen.


Peter

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Stefan,

mit PonyProg kommst Du definitiv nicht an die anderen
CalBytes.
Das rührt noch aus der Entstehungszeit von PonyProg -
damals war ein Fehler in den Manuals (siehe Errata)
und der wurde in PonyProg (ohne dieser Diskrepanz auf
den Grund zu gehen)einfach übernommen.

Gunter

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> mit PonyProg kommst Du definitiv nicht an die anderen
> CalBytes.

Das hätte ich jetzt nicht erwartet...
Nagut, ein weiterer Grund, es nicht zu benutzen.

> Bei jungfräulichen ICs stehen die Werte auch mit im EEPROM und im
> Flash am Ende.

Ja, Peter, deshalb benutze ich ja auch die letzte Flash-Zelle. Ich
glaube, den Hinweis, das ATMEL das so macht, habe ich sogar von dir...
;-)

Beste Grüße...
...HanneS...

Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter: Danke für den Tipp.

@Gunter: Ok - und ich hab schon befürchtet ich sei Betriebsblind.

@HanneS: ... nun, ich hab den Ponyprog zusätzlich auf mein System
gepackt um mit irgendwas die Fuses bearbeiten zu können - nur mal so
aus  Neugier was stört dich denn noch so daran ? Gibt es den
"bessere" Alternativen wenn man ansonsten mit der WinAR Toolchain
"glücklich" ist  um z.B. die Configuration Fuses zu "brennen" ?

Grüße,

Stefan

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> nur mal so aus  Neugier was stört dich denn noch so daran

Mich hat vor einigen Jahren (als ich auch noch keinen WWW.Zugang hatte
und daher kein Forum fragen konnte) gestört, dass Pony bei mir nicht
funktionierte. Es lag (aus heutiger Sicht gesehen) wohl an der langen
LPT-Strippe mit Umschalter.
Ein Freund mit Netzzugang beschaffte mir einige Alternativen, die aber
alle auch nicht funktionierten. Ich zweifelte an meinem Druckerport und
testete mit QBASIC die Hardware. Mein Druckerport war ok, daher fing ich
an, in das QB-Programm die ISP-Sequenzen laut Datenblatt des AT90S1200
einzubauen und zu benutzen. Und so nach und nach ist alles das
eingebaut worden, was ich selbst brauchte. Das Programm ist keinesfalls
perfekt, es hat auch einige Einschränkungen, aber ich benutze es sogar
lieber als das ISP-Programm des AVR-Studio, obwohl ich über ein STK500
verfüge und mit AVR-Studio in ASM programmiere.
Mehr erfährst du auf www.hanneslux.de

> Gibt es den
> "bessere" Alternativen wenn man ansonsten mit der WinAR Toolchain
> "glücklich" ist  um z.B. die Configuration Fuses zu "brennen" ?

Das entzieht sich meiner Kenntnis, ich benutze nur meinen Eigenbau und
gelegentlich AVR-Prog von AVR-Studio. Für AVR-Studio bekomme ich
bestimmt eine mehrseitigen Wunschzettel zusammen, was mir nicht gefällt
und was verändert/verbessert werden könnte.

Und da ich nicht der Typ bin, der jede im WWW gefundene Software
ausprbiert, bin ich in Fragen Softwareempfehlung nicht besonders
kompetent.

...

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hannes:

> Irrtum...
> Siehe Auszug aus dem Datenblatt im Anhang...

Stimmt, es gibt tatsächlich vier Calibrierungs-Werte !
Sorry, hatte ich bisher immer übersehen.
Danke für die Info.

Gruß Jan

Autor: MisterMime (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei welchen Controllern gibts denn mehr als einen Calibration-Wert?
Gibts da eine Liste?

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
MisterMime wrote:
> Bei welchen Controllern gibts denn mehr als einen Calibration-Wert?
> Gibts da eine Liste?

Ja, die ist aber nicht unbedingt auf dem neuesten Stand. Vermutlich gibt 
es bei ATMEL eine neuere Version.

...

Autor: MisterMime (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke.
Hab das PDF gar nicht gesehen...

Autor: Klaus2m5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle Kalibrierungsbytes können in Ponyprog mit Hilfe eines Scripts 
ausgelesen werden (Dateiendung .e2s). Auszug aus der Ponyprog Hilfe:

> READ-CALIBRATION <address>[mem][osc_index]

> Description:
> Read the internal oscillator calibration value from the AVR and write it
> to a location in the buffer at the specified address (and memory type
> DATA or PROG). The osc_index argument specify which calibration value
> should be read since some AVR have several oscillator frequencies. The
> osc_index argument is available only from the 2.06c version

> Example:
> SELECTDEVICE ATMEGA128
> READ-CALIBRATION 0x100 DATA 3
> Read the oscillator calibration value for 8MHz frequency

Beigefügtes Beispielscript liest die Calibration Werte für alle 4 
Frequenzen des ATTINY26 und legt sie ab 0x100 im Ponyprog Puffer ab. 
"selectdevice" ist nur notwendig, wenn im Ponyprog GUI was anderes 
eingestellt ist.

Gruß, Klaus

Autor: Klaus2m5 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ups, nix beigefügt?

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.