ATmega8 zum Leben erwecken ?

Gast #302039
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ß
Angehängte Dateien:
#302040
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... ;-(

...
Gast #302041
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.
Gast #302044
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 ????
Gast #302045
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.
Gast #302047
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)
Gast #302048
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 !?
Gast #302050
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)
Gast #302051
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
Gast #302052
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
Gast #302053
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 ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren