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


von Stefan Sczekalla (Gast)


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

von Jan (Gast)


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

von Hannes L. (hannes)


Angehängte Dateien:

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.

...

von Hannes L. (hannes)


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...

...

von Stefan Sczekalla (Gast)


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 ?

von Hannes L. (hannes)


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...

...

von peter dannegger (Gast)


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

von Gunter (Gast)


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

von Hannes L. (hannes)


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...

von Stefan Sczekalla (Gast)


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

von Hannes L. (hannes)


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.

...

von Jan (Gast)


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

von MisterMime (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Angehängte Dateien:

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.

...

von MisterMime (Gast)


Lesenswert?

Danke.
Hab das PDF gar nicht gesehen...

von Klaus2m5 (Gast)


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

von Klaus2m5 (Gast)


Angehängte Dateien:

Lesenswert?

Ups, nix beigefügt?

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.