Forum: Mikrocontroller und Digitale Elektronik Hex Datei Atmega 8 ohne Quarz Prog/beschreiben.


von Thomas V. (linuxer7)


Lesenswert?

Hallo Leute,

ist bei mir schon ne weile her das ich etwas mit dem Atmega gemacht 
habe.
Vielleicht ist die Frage für den einen oder anderen ja etwas bescheuert, 
aber ich frage trotzdem mal :)

Folgendes.
Ich im Internet einen Bauplan für ein Metallsuchgerät gesucht und dieses 
nachgebaut. Der Atmega8 wird auf diesem Board mit 8Mhz getaktet.
Mit dabei war ein Hex -File für den Atmega8.

Ich habe mir auf der Basis des Atmega8 vor langer Zeit einmal ein 
Thermometer gebaut.

Da ich vergessen habe auf dem Board des Metallsuchgerätes eine 
Programmierschnittstelle anzubringen wollte ich nun den Chip mit dieser 
alten "Thermometer-Platine beschreiben. Dieses jedoch hat keinen Quarz.

Kann ich den Atmega8 auch Programmieren/Beschreiben wenn das 
Board/Platine keinen Quarz besitzt, obwohl auf der späteren Platine dann 
ein Quarz bestückt ist und der Atmega8 damit getaktet wird?

Ich hoffe Ihr versteht mein Problem.

Gruß
Thomas

von Karl H. (kbuchegg)


Lesenswert?

Thomas V. schrieb:

> Da ich vergessen habe auf dem Board des Metallsuchgerätes eine
> Programmierschnittstelle anzubringen

Die könnte man zur Not auch mit provisorischer fliegender Verdrahtung 
kurzfristig noch nachrüsten. Ein paar Drähte, eine Steckerleiste und die 
Scahe hat sich. Ist alles fertig, kommen die Drähte wieder weg.

> Kann ich den Atmega8 auch Programmieren/Beschreiben wenn das
> Board/Platine keinen Quarz besitzt, obwohl auf der späteren Platine dann
> ein Quarz bestückt ist und der Atmega8 damit getaktet wird?

Ja kannst du.
Du musst dir nur über die Reihenfolge im klaren sein.
Denn der Mega8 läuft erst mal auf dem internen Oszillator mit 1Mhz. In 
diesem Zustand kannst du ihn brennen.

Wenn du danach auf Quarzverwendung umfust, dann wird der Programmer den 
Mega8 nicht mehr ansprechen können. Da aber das Programm dann schon im 
Mega ist, macht das nichts mehr. Auf der Zielplatine gibt es ja den zum 
Betrieb notwendigen Quarz.

Einzig: Änderungen kannst du dann am Programm keine mehr machen.


Daher wäre es zumindest am Anfang ganz gut, wenn du NICHT auf Quarz 
fused, sondern den Mega erst mal so in Betrieb nimmst. Einfach nur um zu 
sehen, ob auf der Zielplatine auch alles erst mal grundsätzlich 
funktioniert. Man kann auch auf 8Mhz internen Oszillator fusen. Die 
Frequenz ist zwar nicht so genau, wie mit einem Quarz, aber um einen 
grundsätzlichen Funktionstest zu machen, wirds schon reichen. WEnn du 
dir dann sicher bist, dass alles genau so bleiben kann, dann fused du 
als allerletzter Schritt um auf Quarzverwendung (und damit ist dann dein 
Thermometer-Programmer weg vom Fenster).

Oder aber natürlich einfach ein paar Drähte provisorisch als ISP 
Schnittstelle an die Pins löten.

von Fred S. (kogitsune)


Lesenswert?

Ich gehe davon aus, dass der AVR auf der "alten" Platine mit internem 
Takt läuft. Dein neuer AVR macht das per Werkseinstellung auch. Also 
kannst Du so vorgehen:
-neuen AVR in alte Platine stecken
-Programmer anschließen
-Programm flashen und nötigenfalls auch EEPROM programmieren
-über Dein Programmiergerät die Fuses so setzen wie für das neue Projekt 
nötig.

Problem: geht nur 1x so, denn danach will der ATmega einen Quarz 
sehen...

P.S.
Wie meist war Karl Heinz flotter....

von linuxer07 (Gast)


Lesenswert?

Hallo Leute,

vielen Dank für die Antwort. Das ging ja Fix. :)
Das es nur einmal geht wusste ich, ich war mir nur nicht sicher wenn ich 
die Fuses auf Quarz Oszi 8Mhz stelle ob er diese Einstellung beim 
Flashen
dann auch verwendet und da der Atmega ja nicht "gequarzt" ist das 
Flashen dann in die Hose geht.

Ich hoffe das die SW in Ordnung ist sonst muss ich halt einen 
"Programmer" bauen.

Angenommen es findet sich einen Fehler in der SW und ich bin gezwungen 
ein Platine zu bauen. Ich würde dann einen 16 Mhz Oszi verwenden den ich 
über Jumper abschalten kann. Könnte ich mit diesem 16Mhz "Programmer" 
einen Chip Flashen dessen SW für 8 Mhz ausgelegt ist, oder muss der dann 
mit 8 Mhz getaktet sein?
Ich denke nicht das das geht oder ?

Gruß
Thomas

von Karl H. (kbuchegg)


Lesenswert?

linuxer07 schrieb:

> Ich hoffe das die SW in Ordnung ist sonst muss ich halt einen
> "Programmer" bauen.

"Hoffen" ist ganz schlecht.

daher hab ich ja auch die Alternative ausgeführt, erst mal auf 8Mhz 
internen Oszillator zu fusen (weil dein Quarz auch 8Mhz hat). Damit 
sollte es eigentlich möglich sein, deine SOftware in Betrieb zu nehmen 
UND du verbaust dir nicht die Möglichkeit, mit deinen Mitteln noch mal 
am µC nachzubessern, falls es notwendig sein sollte.


Denn: Wenn an den Pins ein Quarz physikalisch vorhanden ist, den der µC 
aber wegen der Fuses nicht benutzt, dann stört das keinen. Umgekehrt ist 
blöder.

> Angenommen es findet sich einen Fehler in der SW und ich bin gezwungen
> ein Platine zu bauen. Ich würde dann einen 16 Mhz Oszi verwenden den ich
> über Jumper abschalten kann. Könnte ich mit diesem 16Mhz "Programmer"
> einen Chip Flashen dessen SW für 8 Mhz ausgelegt ist, oder muss der dann
> mit 8 Mhz getaktet sein?


Nein, die Programmierung über ISP ist 'unabhängig' davon, welche 
Taktquelle du konkret hast. Einzige Einschränkung: Auch beim ISP stellt 
man eine 'Programmierfreuquenz' ein. Da darf nicht GRÖSSER als 1/4 der 
Taktfrequenz sein. D.h. Ob dein µC mit 16Mhz taktet, oder mit 8Mhz ist 
für die Programmierung uninteressant, solange du ihn nicht zu schnell 
programmierst.

> Ich denke nicht das das geht oder ?

Natürlcih geht das. Das wäre sonst ein wenig unpraktisch, wenn man für 
jede µC-Frequenz einen eigenen Programmer brauchen würde.
Im Zweifel tut mein einfach so, als ob der µC mit 1Mhz getaktet wird und 
nimmt das als Grundlage für die Programmierfrequenz. WEnn der µC dann 
tatsächlich schneller ist - kein Problem.

von linuxer7 (Gast)


Lesenswert?

Hallo Leute.

Ok dann ist die Sache ja kein Problem.

Vielen Dank.

Gruss Thomas

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.