Forum: Mikrocontroller und Digitale Elektronik OSCCAL, bitte Unterstützung


von Martin Huber (Gast)


Lesenswert?

Hallo,

ich bräuchte etwas Ünertstützung was den internen RC- Oszi. angeht.
Hab jetzt nach längerer Pause wieder mit Assembler angefangen und hab
mir einen Mega8515 zugelegt. Soweit so gut, mein Programm (SPI-
Schnittstelle über Software gelöst) läuft super --> aber leider etwas
zu langsam.
Wollte nun die Fuses ändern und den µC auf 8MHz laufen lassen, aber
scheinbar ist das nicht so einfach. Hab jetzt mal alle Infos
"aufgesaugt" die ich bekommen habe:

1. Default läuft "meiner" auf 1 MHz und die Kalibrierung wird
automatisch beim Programmstart durchgeführt.

2. Er bestizt 4 interne Oszis (Version 3) und Atmel war so freundlich
für alle den Kalibrierwert im Werk zu ermitteln und Ihn in die
"Signature Row" abzulegen.

3. Will ich den µC jetzt auf 8Mhz laufen lassen muss ich per Software
bzw. im Programm den Kalibrierwert selbst ins OSCCAL- Register
schreiben.Nicht zu vergessen, daß ich vorher natürlich die Fuses
anpasse.

----> jetzt kommt mein hänger !! Wie komme ich an den Kalibrierwert im
"Signature Row". Mir ist leider im Moment noch nicht klar, wo dieses
abgelegt ist bzw. was für einen Zweck es erfüllt.

Gruß

von ...HanneS... (Gast)


Lesenswert?

Hi...

Die Calibrationsbytes liegen in den H-Bytes des Signature-Bereiches
(die Signature-Bytes liegen in den L-Bytes derselben).
Für 8MHz brauchst du das vierte Calbyte, also das von Adresse $03.

Wie du mit deinem ISP-Programm ran kommst, kann ich dir leider nicht
sagen, ich benutze mein eigenes ISP-Programm, und das kalibriert
automatisch beim Löschen, falls der interne Oszi nicht auf 1MHz steht.

Gruß...
...HanneS...

von Tobi (Gast)


Lesenswert?


von Martin Huber (Gast)


Angehängte Dateien:

Lesenswert?

Erst mal vielen Dank für die flotten Antworten. Anscheinend habe ich zu
dick aufgetragen :-), meine Erfahrungen basierten bis jetzt auf den µP
8085 vielleicht tue ich mir deshalb etwas schwer ? In welchem Speicher
liegt das "Signature Row". Im Datasheet zum Mega8515 finde ich leider
keine oder habe Tomaten auf den Augen.
Hab bis jetzt PonyProg verwendet und bin wie gesagt noch in den
anfängen, dort kann man jedoch das
"Calibration Byte" auslesen (siehe Anhang) --> passt das dann ?
Langsam bekomme ich das Gefühl das eine externe Taktquelle etwas
eleganter bzw. einfaher ist.

Thanks

von ...HanneS... (Gast)


Lesenswert?

Hi...

Wie gesagt, ich nutze Pony nicht, aber das sieht schon richtig aus,
wenn man die zwei Nullen am Ende ignoriert.

Kannst du auch die Adressen 0x00(00), 0x01(00) und 0x02(00) auslesen?
Dann wäre:

0x00: Calibyte für 1MHz (wird aber automatisch bei Reset gemacht)
0x01: Calibyte für 2MHz
0x02: Calibyte für 4MHz
0x03: Calibyte für 8MHz

Der 8085 erinnert mich an MFA...

Ist aber kein Vergleich mit einem AT-Mega.
Hier ist schließlich schon (neben RAM, CTC und I/O) der
Programmspeicher (Flash) und EEPROM mit drin, und auch noch das
zugehörige "Programmiergerät", das über ISP mit dem PC kommuniziert
und vom PC gesteuert wird.

Der Signature-Bereich gehört mehr zum (internen) "Progriergerät" als
zu irgendwelchen Speicherbereichen, denn das (User-) Programm kann
weder auf die Signature-Bytes (L) noch auf die Calibrations-Bytes (H)
zugreifen, da kommt nur der PC via Prog-Software hin, also über den
Kommandosatz des Programmers. Schau dir dazu mal im Datenblatt den
Absatz zum Thema "Serial downloading" an.

Gruß...
...HanneS...

von Martin Huber (Gast)


Lesenswert?

.....zum 8085 --> mit dem MFA hast Du voll ins schwarze getroffen.
Mit diesem "Urgestein" hab ich auch gearbeitet, und finde das es für
das Verständnis viel gebracht hat.

Was den ATMega angeht bin ich im Moment von den Möglichkleiten etwas
"erschlagen". Will jetzt einfach mal mit kleineren Projekten wieder
in die Thematik finden und auch fürs erste dem Assembler treu bleiben
(auch wenn die Geschwindigekit des µC ohne Probleme höhere Sprachen
zulässt).

Hab jetzt mal die anderen Werte über PonyProg ausgelesen, leider ändert
sich am Value nicht viel --> soll heißen ich erhalte immer den Wert
0xAF. Vielleicht hat hier schon mal jemand auf diese Art die Bytes
ausgelese !? Da ich auch bei google nicht viel weiter gekommen bin
werde ich im worst case auf einen externen Quarz umsteigen.



@HanneS
siehe da, Datenblatt zum ATmega8515:
Chapter: Memory Programming
Seite:   179
Thema:   Signature Bytes,

werd ich mir mal anschauen.

Thanks

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.