Forum: Mikrocontroller und Digitale Elektronik ATmega8 zum Leben erwecken ?


von Mark (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

hoffe jemand kann mir einen Tip geben. Hab eine mega8 Schaltung auf
einem Breadboard aufgebaut. Nur Grundbeschaltung
(http://www.mikrocontroller.net/tutorial/equipment) - keine
zusätzlichen ICs. Allerdings habe ich einen 8 MHz Quarz statt einem
Quarzoszilator genutzt und eine 10 polige belegung für den ISP gewählt.
Der ISP funktioniert tadellos mit meinem mega16.

Hatte die schaltung aufgebaut und mit PonyProg und Yaap Zugriff auf den
controller. Hab dann die Fusebits geschrieben um auf den Quarz
umzuschalten (siehe Bild im Anhang), seit dem kann ich mit dem ISP
nicht mehr auf den Controller zugreifen.

Die Fusebits müssten doch so für einen 8 MHz Quarz in Ordnung sein -
oder ?

Hatte vermuttet, das die Brown-Out-Detection Fuses und eine
unzureichenden versorgung vorliegen, hab aber an pin 7 und 8 konstante
5V anliegen.

Habt ihr eine Idee ?

Gruß

von Hannes L. (hannes)


Lesenswert?

Ich kenne dein Programm nicht, weiß daher nicht, ob ein Häkchen nun die
"Programmed Fuse" (also 0, Zero) darstellt oder die "Unprogrammed
Fuse" (1, one).

Aber alle 4 CKSEL-Fuses sind gleich, was bedeutet, dass du für CKSEL 0
oder 15 eingestellt hast. Laut Datenblatt des Mega8 Seite 24 Tabelle 2
ist
 0 = "External Clock" (also ein externer Takt, der auch von einem
     4-beinigen Quarzgenerator kommen kann)
15 = "External Crystal/Ceramic Resonator" (also 2-beiniger Quarz
oder
     (vermutlich 3-beiniger) Keramik-Resonator.

Solange du SPI-Enable und Reset-Disable nicht verändert hast, müsstest
du durch Anschluss der korrekten Taktquelle den AVR wieder in Gang
bekommen. Hast du aber Reset weggefust oder SPI deaktiviert, dann hilft
nur noch HV-Programming (STK500 oder diverse Nachbauten).

Ist dein Screeshot eigentlich aktuell? Denn wenn man bemerkt hat, dass
etwas nicht stimmt, dann kann man auch keine Fuses mehr einlesen und
einen Screenshot davon machen... ;-(

...

von Mark (Gast)


Lesenswert?

Hallo Hannes,

naja ich hab einen Oszillator angeschlossen (mit irgend einer krummen
frequenz) und siehe da es ging. Das Programm ist Yaap und zeigt bei
einer gechekten box, dass der Bit = programmed - also 0, Null.

Demnach hatte ich die Einstellung 1111 gewählt und damit eigentlich
doch die richtige für einen Quarz. Oder !???

Die Einstellung für einen externen Taktgeber wäre ja 0000.

Nun erschien es mir etwas unlogisch dass bei 1111 ein externer
Taktgeber läuft und kein Quarz und ich hab die Dinger (also CKSEL3..0)
mal gedreht und in Yaap alle vier Bits abgehakt = also 0000

nun läuft gar nichts mehr weder Quarz noch Quarzozillator ...

Wenn jemand herauslesen kann was ich falsch gemacht habe, bitte
mitteilen. Bin für jeden Tip dankbar.

von Mark (Gast)


Lesenswert?

Hat sonst keiner eine Idee ???

von Conlost (Gast)


Lesenswert?

Hallo,

klingt eventuell blöd, aber hast du die zwei 27-33pF Kondensatoren
von den Quarzanschlüssen nach Masse eingebaut, oder hängt der Quarz
nur alleine am Controller?

Es grüsst,
Arno

von Mark (Gast)


Lesenswert?

Hi,

ja ich hab wie in der Beispielschaltung 2 x 22 pF eingebaut.... Ich
verstehe einfach nicht wie dass sein kann ... selbst wenn ichs beim
ersten Mal die Fuses falsch gesetzt hatte, nachdem ich den Oszillator
dran hatte hat es gefunzt und dann hab ich die CKSEL alle invertiert,
dass muss doch dann die richtige einstellung für Quarz sein - oder ????

von Profi (Gast)


Lesenswert?

Muss nicht unbedingt sein:
in der Einstellung XTAL kannst Du auch ein externes Signal einspeisen,
das kommt dann auf Xout (oder wie immer das Pin heißen mag) invertiert
wieder raus.

In der Einstellung ext.Osz. kommt kein Signal bei Xout raus.

Wichtig bei XTAL-Betrieb ist: kurze Leitungen, auch die der Cs nach
Gnd. Keine digitalen Signale nahe an den Leitungen vorbeiführen.

Vcc gut gegen Gnd abblocken.
Evtl. mal anderen Quarz nehmen oder 100k - 1MOhm parallel zum Quarz
klemmen, das hilft beim Anschwingen, oder auch mal einen KerKo in Reihe
zum Quarz.

Speise einfach in Xin ein Signal ein. Wenn es an Xout invertiert
rauskommt, ist die Einstellung XTAL.

von Hannes L. (hannes)


Lesenswert?

Schonmal über CKOPT nachgedacht? (DB S. 25, 220)

...

von Mark (Gast)


Lesenswert?

Ja, hab ich ....

bin insgesamt total ratlos :(

Also falls sich jemand wirklich gut mit den Fusebits/Yaap/ATmega8
auskennt soll er bitte folgende Konstelation betrachten und mir sagen
was ich falsch gemacht habe bzw. was der Controller erwartet:


CSEL3..0: programmiert (Hacken gesetzt in Yaap)

BODEN: programmiert (Hacken gesetzt in Yaap)
BODLEVEL(0): programmiert (Hacken gesetzt in Yaap)

BOOTSZ0: programmiert (Hacken gesetzt in Yaap)
BOOTSZ1: programmiert (Hacken gesetzt in Yaap)

SPIEN: programmiert (Hacken gesetzt in Yaap)

von Mark (Gast)


Lesenswert?

Noch eine Frage auf der Seite 36 im Datenblatt sind die BOD beschrieben
- dort ist angegeben das die maximale Spannung bei BODLEVEL = 0 bei
4.5V liegt. Kann es sein, dass main Controller 5V bekommt und deswegen
einen Rest macht !?

von Hannes L. (hannes)


Lesenswert?

Nein, mit BOD geht der Controller ins Reset, sobald seine
Betriebssspannung den BODLevel unterschreitet.


Falls du mehrere "zerfuste" AVRs haben solltest, könnte ich sie dir
mit dem STK500 (HV-Mode) wieder auf Werkszustand setzen.

...

von Mark (Gast)


Lesenswert?

Danke fürs Angebot,

aber ich werde mir erstmal noch einen Bestellen - sollte ich irgendwann
mal zwei von denen falsch gefused haben lohnt sich zumindestens das
Porto. Aber mir gehts mittlerweile echt ums Prinzip - ich würde gerne
wissen, was das Ding jetzt erwartet. Hab eben mit nem Mega 16
(Taktgeber Prog) und etwas weniger als 1Mhz da dran gehangen - nichts.
Der mega16 erzeugt den Takt laut Osci, aber dem mega8 ist es wohl echt
schnuppe. An Quarzen hab ich auch verschiedene Frequenzen getestet 2-4
Mhz und auch mal einen Uhrenquarz ;) .... nichts !


Also falls sich doch jemand findet der auch interesse dran hat, so sind
die Fuses gesetzt :

CSEL3..0:    programmiert (gesetzt in Yaap)

BODEN:       programmiert (gesetzt in Yaap)
BODLEVEL(0): programmiert (gesetzt in Yaap)

BOOTSZ0:     programmiert (gesetzt in Yaap)
BOOTSZ1:     programmiert (gesetzt in Yaap)

SPIEN:       programmiert (gesetzt in Yaap)

von Conlost (Gast)


Lesenswert?

Hallo,

Mit den Werten von Yaap kann ich leider nichts anfangen,
damit hatte ich noch nichts zu tun.

Welchen Programmer benutzt du denn, wird der eventuell
von AVR-Studio unterstützt?

Wenn alle Stricke reissen, dann mach einfach alles vom
Board wieder runter und verdrahte es noch einmal ganz
von vorne.
Alle Verbindungen in Ruhe nochmals kontrollieren,
manchmal sieht man den Wald vor lauter Bäumen nicht.  :-)

Es grüsst,
Arno

von Mark (Gast)


Lesenswert?

Hallo Arno,

naja Yaap zeig halt den programmierten Zustand mit dem gesetzten
Häkchen an (also Häkchen gesetzt bedeutet FUSE = 0) und ich habs nur
der vollständigkeit hingeschrieben.

Das neu verdrahten hab ich schon hinter mir und daran kann es
eigentlich auch nicht liegen, lief ja schon ohne Probleme und nach
setzten der Fuses halt nicht mehr - zu diesem Zeitpunkt habe ich die
Schaltung nichtmal angesehen oder angefasst (also kein wackler). Der
Controller bekommt konstante Spannung (beim Messen an alle Strippen
gerüttelt). Der Programmer den ich verwende ist der hier:
http://shop.embedit.de/product_002100_120.php von embedit und
funktioniert tadellos - der ist auch STK200/300 kompatibel also müsste
ihn das AvrStudio unterstützen - warum fragst du ?

Gruß Mark

von Mark (Gast)


Lesenswert?

Kleine Idee am Rande - man könnte doch ein mikrocontroller Projekt
machen in dem man ein Board baut, dass nur den Zweck hätte die Fuses
auf den Werkszustand zurückzusetzen - ich weiß nicht genau wie das
HV-Programmieng läuft, dürfte aber machbar sein - oder ?

von Conlost (Gast)


Lesenswert?

Hallo Mark,

lade dir doch mal AVR-Studio 4.12 herunter und versuche es mal damit.
Zumindest kannst du damit erkennen auf was der Controller
nun wirklich eingestellt ist.

Es grüsst,
Arno

von Hannes L. (hannes)


Lesenswert?

Das STK200 ist nicht von ATMEL und wird daher nicht vom Programmer des
AVR-Studio unterstützt.

...

von Mark (Gast)


Lesenswert?

Selbst wenn, wenn der Controller keinen Takt hat, wird AVR Studio auch
nichts bringen. Zumindestens nicht über die ISP...

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.