Forum: Mikrocontroller und Digitale Elektronik ATTiny 15L Internen Takt einstellen


von Killerawft (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Ich habe vor einiger Zeit eine Schaltung im Internet gefunden, in der 
ein ATTiny 15L verbaut ist. Die Schaltung habe ich auf einer Platine 
aufgebaut und angeschlossen. Bei der Schaltung war auch die Software in 
Assembler dabei, die auf den µC kommt. Ich konnte die auch übertragen, 
jedoch muss man den internen Takt auf 1,6 Mhz einstellen und da fängt 
mein Problem an.

Ich weiss, dass ich das Taktbyte auslesen muss und in das erste und 
letzte Register des Programmes schreiben muss, was ich auch getan habe. 
Des weiteren muss ich das Taktbyte ebenfalls in dem Programm an eine 
bestimmte stelle schreiben, die ich auch gefunden habe. Jedoch 
funktioniert das nicht. Ich habe das auch schon mit einem zweiten µC 
versucht und beide auch noch nicht gelöscht, jedoch ändert sich am Takt 
rein garnichts.
Ich verstehe NICHTS von Assembler und bin gerade erst dabei mich mit µC 
und Bascom auseinander zu setzten.
Ich habe schon seit fast zwei Wochen im internet gesucht, das Datenblatt 
durchgelesen und auch schon den Programmierer der Software gefragt (Der 
mir nicht viel helfen konnte, da er nicht PonyProg benutzt). Jedoch ohne 
Ergebniss. Ich hoffe ihr könnt mir da weiter helfen.

PS: Ich Flashe den µC mit PonyProg unter Windows XP mit dem Pollin 
Evaluations-Board.

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Killerawft schrieb:
> Hi,
>
> Ich habe vor einiger Zeit eine Schaltung im Internet gefunden, in der
> ein ATTiny 15L verbaut ist. Die Schaltung habe ich auf einer Platine
> aufgebaut und angeschlossen. Bei der Schaltung war auch die Software in
> Assembler dabei, die auf den µC kommt. Ich konnte die auch übertragen,
> jedoch muss man den internen Takt auf 1,6 Mhz einstellen und da fängt
> mein Problem an.
>
> Ich weiss, dass ich das Taktbyte auslesen muss und in das erste und
> letzte Register des Programmes schreiben muss, was ich auch getan habe.

Falsch, in der ersten Speicherzelle steht der Reset-Vektor, der darf 
nicht verändert werden. Ich gehe mal davon aus, dass das L-Byte und 
H-Byte der letzten Flash-Adresse gemeint ist, denn da steht das 
"Taktkorrekturbyte" auch bei einem neuen Tiny15 drin.

> Des weiteren muss ich das Taktbyte ebenfalls in dem Programm an eine
> bestimmte stelle schreiben, die ich auch gefunden habe.

Auch falsch, der von Dir auskommentierte Teil des Programms liest ja das 
L-Byte der letzten Flash-Zelle aus, prüft es auf Plausiblität (ein 
"leeres" Byte hätte den Wert FFh) und schreibt es, falls nicht FFh, in 
das OSCCAL-Register.

Aber: Mit der von Dir gemachten Änderung müsste es auch gehen, ist zwar 
nicht so elegant wie das Original und lässt sich auch nicht 
automatisieren, erfüllt aber (mit beträchtlichem Mehraufwand beim 
Flashen) auch seinen Zweck.

> Jedoch
> funktioniert das nicht. Ich habe das auch schon mit einem zweiten µC
> versucht und beide auch noch nicht gelöscht, jedoch ändert sich am Takt
> rein garnichts.

Woran erkennst Du, dass sich am Takt nichts ändert?

> Ich verstehe NICHTS von Assembler und bin gerade erst dabei mich mit µC
> und Bascom auseinander zu setzten.

Das hat eigentlich nichts mit Assembler zu tun, sondern lediglich mit 
dem gewöhnungsbedürftigen Umgang mit einem (inzwischen veralteten) 
Mikrocontroller, dessen interner Taktgeber noch per Hand korrigiert 
werden muss, um die Fertigungstoleranzen zu kompensieren.

> Ich habe schon seit fast zwei Wochen im internet gesucht, das Datenblatt
> durchgelesen und auch schon den Programmierer der Software gefragt (Der
> mir nicht viel helfen konnte, da er nicht PonyProg benutzt). Jedoch ohne
> Ergebniss. Ich hoffe ihr könnt mir da weiter helfen.

Also Deine Programmänderung erfüllt denselben Zweck wie das Original. 
Damit müsste der Taktgeber korrekt laufen. Wenn das nicht der Fall ist, 
dann bedienst Du Ponyprog oder AVR-Studio falsch. Da auch ich kein 
Ponyprog benutze, kann ich Dir auch nicht sagen, was Du falsch machst.

Im Prinzip musst Du das exemplarabhängige "Calibrationsbyte" (nicht das 
Fusebyte, auch nicht eines der Signature-Bytes und auch nicht den 
aktuellen Wasserstand an der Loreley) auslesen. Dies muss dann in den 
Programmcode übernommen werden. Bei Deiner Variante muss das Programm 
danach auch noch (mit AVR-Studio4) neu übersetzt (assembliert) werden, 
ehe es in den Controller übertragen werden kann.

>
> PS: Ich Flashe den µC mit PonyProg unter Windows XP mit dem Pollin
> Evaluations-Board.

Ich hoffe, es findet sich jemand, der sich mit Ponyprog auskennt und Dir 
erklären kann, welche Mausklicks nötig sind, um Dein Problem zu lösen.

MfG

von Killerawft (Gast)


Lesenswert?

> Falsch, in der ersten Speicherzelle steht der Reset-Vektor, der darf
> nicht verändert werden. Ich gehe mal davon aus, dass das L-Byte und
> H-Byte der letzten Flash-Adresse gemeint ist, denn da steht das
> "Taktkorrekturbyte" auch bei einem neuen Tiny15 drin.

In der nächsten Woche steht bei mir einiges auf dem Termin-Kalender also 
werde ich warscheinlich nicht großartig dazu kommen hier zu antworten 
oder bei dem µC aktiv zu werden, aber danke für die Informationen, mit 
denen komme ich bestimmt bald noch einen Schritt weiter.


> Woran erkennst Du, dass sich am Takt nichts ändert?

Als die Schaltung nicht funktionierte wie sie sollte, habe ich den 
Entwickler der Schaltung die Fehler beschrieben, und der sagte mir, dass 
der Takt falsch sei. Da ich vorher auch nichts in der Richtung gemacht 
hatte hab ich mich sofort angefangen zu suchen, wie man den bei dem 
ATTiny 15L einstellt. Und bis jetzt bleibt der Fehler.

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.