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
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
> 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. ...
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... ...
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 ?
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... ...
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
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
> 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...
@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
> 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. ...
@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
Bei welchen Controllern gibts denn mehr als einen Calibration-Wert? Gibts da eine Liste?
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. ...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.