Forum: Mikrocontroller und Digitale Elektronik Etwas ratlos; ATmega8 Fusebits? Clock?


von Werner (Gast)


Lesenswert?

Hallo zusammen!

Ich lese hier oft mit und finde viele Antworten und Anregungen.
Dafür Dank.

Nun habe ich ein Problem für das ich in den letzten 4 Stunden keine 
Lösung  Antwort  Erklärung fand.

Ich betreibe 5 ATmega8 auf baugleichen Platinen.

Hier ein Link zu meinem Projekt:
http://www.razyboard.com/system/morethread-wrdkontrollekamikrokontrolle-wiesollichnurheissen-1542510-4190906-0.html

Die Mikros werden mit externem Takt von 3,6864 Mhz versorgt.
Ich habe jeweils das Fusebit (Clock) auf "externen Clock" gesetzt.

Zum Programmieren habe ich mir einen "Sample Electronics AVR Programmer" 
Kabel an das parallele Port "gelötet".
AVR ISP 10Pin.
Ich benutze den Programmer der BASCOM Software.

Nachdem alle ATmega8 auf die gleiche Weise programmiert wurden habe ich 
nun folgende Situation:

ZWEI der mega8 laufen auf allen FÜNF Platinen.
Die ZWEI werden auf allen Platinen vom Programmer als ATmega8 erkannt.
Ihre Fusebits richtig gelesen und wiedergegeben.

DREI der mega8 laufen "irgendwie" auf allen FÜNF Platinen.
Die drei komischen mega8 antworten und senden "gaga" Zeug. Z.B. 
"²CxCxCCx"
Das Port zum Überwachen des ADC läuft zu schnell, ~ doppelt so schnell.
Schlimmer ist, die DREI werden nicht mehr erkannt, ich kann sie nicht 
mehr programmieren. "Could not identify chip with ID:FFFFFF" ?
Auf allen FÜNF Platinen.

Jede Hilfe herzlich willkommen, etwas ratlos ...
heute hätte ich Zeit und die Läden sind zu ...

mfg werner

von Hannes L. (hannes)


Lesenswert?

Mit Fuses falsche Taktquelle eingestellt? (z.B. external clock)
Dann könnte ein extern zugeführter Takt ISP-Kommunikation ermöglichen, 
um die Fuses zu überprüfen und korrekt zu setzen.

...

von Klaus2m5 (Gast)


Lesenswert?

Hi,

ich vermute mal, das Dein Einfachst-Programmer den Reset nicht richtig 
hinbekommt. Zusätzlich muss er gegen den R13 und den C14 auf Deiner 
Platine arbeiten.

Wie Du sagst bekommst Du als ID FFFFFF was darauf hindeutet, dass der 
ATMega noch keine Taktung auf SCK annimmt und der interne Pullup auf 
MISO/MOSI noch wirksam ist.

Du könntest allerdings auch den Reset per Fuse Bit zum Ausgang gemacht 
haben. Dann hilft nur noch ein HV-Programmer.

Gruß, Klaus

von Michael U. (Gast)


Lesenswert?

Hallo,

4,7k und 1µ am Reset sind für jeden Programmer eine erhebliche Last.
Die 4,7k mögen noch gehen, aber 100n am Reset reichen.

Ich kann mir vorstellen, daß einige Mega8 auf die verzögerte L/H bzw. 
H/L-Flanke beim Programmierstart/-ende etwas unberechenbar reagieren.

Der Widerstand gegen Ub ist ohnehin Dauer-Diskussionsthema hier, der 
Mega8 hat einen internen PullUp am Reset, ich beschalte bei allen Megas 
Reset nur mit 100n gegen GND, bisher ohne Probleme.

Gruß aus Berlin
Michael

von k.m. (Gast)


Lesenswert?

Ständiges Thema Reset-pin und Widerstand,ich verwende in allen
Schaltungen 10 kohm und bekomme keine probs.100 nF sind wie schon gesagt
ausreichend.Vermute wie vorher gesagt,das dies die ursache ist.
Nicht jeder mega8 gleicht wie ein Ei dem anderen.

von Werner (Gast)


Lesenswert?

Hallo,

das geht ja schnell hier.

Hannes: Es ist ein externer Takt eingestellt und liegt auch an. Der 
mega8 tut ja auch etwas, DREI Stück eben nur Unsinn.

Klaus und Michael: Yoh, da habe ich wohl falsch gedacht.
Wenn ich dem RESET Pin zusehe, sehe ich wie das Druckerport doch Mühe 
hat.
R13 ist nun raus und C14 habe ich auf 100nF verkleinert.

Die ZWEI guten tun's noch immer. Die Drei doofen spinnen weiter.
Ich habe nun festgestellt, dass die komischen mega8 garnicht auf den 
RESET Eingang reagieren. Der ADC Monitor toggelt fleissig weiter?
Da sind wohl einige Fuses durcheinander?

Das mit dem HV Programmer habe ich im Datenblatt des ATmega8 gefunden.
Wo findet man eine Anleitung  Schaltung  Software dazu?
Wie geht das genau und im Detail?

Vielen Dank und Grüße
werner

von Hannes L. (hannes)


Lesenswert?

HV-Programmer ist das STK500 von ATMEL und ein abgespeckter Nachbau von 
Tobias Hammer. Mal hier im Forum nach 'hv-prog' und/oder 'Hammer' 
suchen.

Ich verwende am Reset meist einen Widerstand von 3,9k und hatte damit 
noch keine Probleme. Allerdings setze ich keinen Kondensator gegen GND 
ein, denn der war meiner Meinung nach bei den Classic-AVRs (die noch 
kein BOD hatten) ein billiger Ersatz für eine Einschaltverzögerung des 
Reset. Bei den heute üblichen AVRs schalte ich stattdessen BOD ein.

Du schreibst, dass ein externer Takt anliegt. Da das hier im Forum oft 
durcheinander gewürfelt wird und ich vermutlich nur oberflächlich las, 
ging ich davon aus, dass Du damit einen externen Quarz meintest, der vom 
internen Quarzoszillator zum Schwingen gebracht wird. Das ist natürlich 
Zweierlei. Falls es ein Quarz ist, könnte die CK-Opt-Fuse hilfreich 
sein, mit der man die Amplitude des Quarzgenerators beeinflussen kann. 
Manche Quarze mögen's nämlich etwas kräftiger.

...

von Werner (Gast)


Lesenswert?

Hi,

es ist ein externer Quartzoszillator.

Wenn ich ihn abklemme geht nichts mehr.
Solange er dran ist laufen die "gaga" Mega8 zu langsam, die 4 AD Kanäle 
werden ~ alle 30mS anstatt 6mS ausgelesen. ??
Faktor 5, dafür habe ich keine Erklärung.

Irgendwie scheint der RESET Pin disabled zu sein.
Das habe ich definitiv nicht gewollt / bewusst gemacht.

"High-Voltage Programming" , ich habe mir das angesehen:
"Autsch, billiger und weniger geht nicht?"

mfg werner

von Hannes L. (hannes)


Lesenswert?

Werner wrote:
> es ist ein externer Quartzoszillator.

Gut, mein Fehler...

>
> Wenn ich ihn abklemme geht nichts mehr.
> Solange er dran ist laufen die "gaga" Mega8 zu langsam, die 4 AD Kanäle
> werden ~ alle 30mS anstatt 6mS ausgelesen. ??
> Faktor 5, dafür habe ich keine Erklärung.

Woran erkennst Du das?

> Irgendwie scheint der RESET Pin disabled zu sein.
> Das habe ich definitiv nicht gewollt / bewusst gemacht.

Man liest hier öfters, das bei Verwendung einfacher ISP-Adapter die 
Fuses verstellt sind, ohne dass bewusst dran gedreht wurde. Die 
Schnittstellen-ICs der PCs sind zu unterschiedlich, da arbeitet ISP 
manchmal schon an der Grenze des Machbaren, wenn dann gelegentlich mal 
ein Bit kippt, kann ein ganz anderer Befehl rauskommen.

> "High-Voltage Programming" , ich habe mir das angesehen:
> "Autsch, billiger und weniger geht nicht?"

Nö, gutes Werkzeug hat nunmal seinen Preis. Wobei ich den HV-Mode meines 
STK500 für mich noch nie brauchte. Ich habe damit aber schon diverse 
AVRs anderer Leute reanimiert. Da käme es auf Deine auch nicht mehr 
an... ;-)

>
> mfg werner

...

von Werner (Gast)


Lesenswert?

Hallo,

>> Solange er dran ist laufen die "gaga" Mega8 zu langsam, die 4 AD Kanäle
>> werden ~ alle 30mS anstatt 6mS ausgelesen. ??
>> Faktor 5, dafür habe ich keine Erklärung.
>Woran erkennst Du das?
PD2 toggelt nach jeweils vier AD Konvertierungen, falls da noch 
irgendeine Logik in den "Kapputen" ist. Nur so aus neugier.


Ich habe mir gerade dieses hier gegoogelt:
http://elm-chan.org/works/avrx/report_e.html
Sollte ich soeinen 74HC299 hier finden probiere ich das 'mal.
Sonst komme ich gerne auf Dein Angebot zurück... :o)

Wie kommt es eigentlich, das ATmega8 zwischen 1,65 und 9++ EURO kosten 
sollen?

mfg werner


von Hannes L. (hannes)


Lesenswert?

> Sonst komme ich gerne auf Dein Angebot zurück... :o)

Sofern es sich um DIL28-Gehäuse handelt. Mit SMD komme ich nicht klar.

> Wie kommt es eigentlich, das ATmega8 zwischen 1,65 und 9++ EURO kosten
> sollen?

Weil es halbwegs faire Händler gibt, aber auch welche, die mit Macht 
reich werden wollen.
Und weil es Kunden gibt, die das nicht merken.

...

von Paul Baumann (Gast)


Lesenswert?

@Werner
Den HV-Programmer von Elm-Chan habe ich vor ca. einem Jahr nachgebaut 
und
er hat mir schon gute Dienste erwiesen. Die Effekte, die Du beschreibst, 
hatte ich speziell mit ATmega8 auch schon. Nachdem ich sie alle auf die 
Werkseinstellung zurückgesetzt und neu geladen hatte, war das Problem 
behoben.

Investiere die Zeit und eine Universalplatine für den HV-Programmer.
Es lohnt sich auf jeden Fall.

MfG Paul

von Werner (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

von Paul ermutigt habe ich den Elm-Chan Programmer angefangen.

Für ein Universalboard schien mir die Schaltung zu konfus.
Ich habe BC307 und BC317 (SMD) genommen und die internen Widerstände der 
originalen Transistoren diskret bestückt.
Dieser ist für ATmega8.

Ob's geht? Noch nicht fertig.
Wenn's klappt melde ich mich nochmal.

mfg werner



von Werner (Gast)


Angehängte Dateien:

Lesenswert?

... und weil ich nur einen Anhang hinbekomme, das Layout dazu.

von Werner (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Der HV-Programmer funktioniert. Die "gaga" ATmega8 sind "repariert".
Er funktioniert tadelslos an einem 40cm langen Flatcable mit 
aufgequetschten DB25 Steckern.
Ohne diese Seite wäre ich noch dran...
http://www.b-redemann.de/hvprog1.shtml

Nun hatte es natürlich Fehler, deshalb in dem angehängten ZIP die 
richtige EAGLE Datei, Layout und Fotos.

Im wesentlichen waren die internen Widerstände der Transistoren falsch.
Chan hat den Emitter oben gemalt, ich hatte daraus den  Kollektor 
gelesen.

Die Transistoren heissen natürlich BC807 und BC817 , sorry.

Ein - Zwei Brücken fielen noch weg...

Ein richtiges Schaltbild habe ich nicht gemacht, es ist eigentlich wie 
Chans. Meine Version wird mit 12Volt versorgt und ein 78L05 macht die 
5Volt auf der Platine.
Wie gesagt, ich habe "normale" Transistoren benutzt und die Basis-Vor- 
und
Basis-Neben-Widerstände diskret bestückt.



mfg werner

P.S. auch sorry für das MegaBild im letzten Anhang, sollte eigentlich 
die ZIP-Datei davon sein, aber im Zeitalter von DSL ...

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

@Werner
Freut mich, daß Du Dich entschlossen hast, den Programmer zu bauen.
Ich habe die Schaltung deshalb auf Universalplatine aufgebaut, weil
ich noch diverse Fassungen für andere Typen mit drauf habe. Da wurde es 
mit dem Layout so konfus, daß es mit einer Universalplatine besser ging.
Als Transistoren habe ich KF517 und SF126 drin. Die sind zwar 
überdimensioniert, aber sie mußten "mal weg" :-)

Anbei ein Bild meines "Kunstwerkes". (Ich habe schon schönere Sachen 
gebaut, aber da war ich in Eile)

MfG Paul

von Werner (Gast)


Angehängte Dateien:

Lesenswert?

... alles klar Paul

doch noch ein Schaltplan ...

mfg werner

P.S. Einziges Problem soweit:
Wenn der LapTop in "StandBy" oder "Sleep" geht, dann gehen die 12 und 5 
Volt wieder an.
?

mfg werner

von Paul Baumann (Gast)


Lesenswert?

@Werner
Das ist bei mir auch so. Während des Betriebs dieses "Apparates" kannst 
Du nur Sleep und Standby außer Kraft setzen. Aber da man ihn ja nicht 
pausenlos benutzt, kann ich damit leben.

Frohe Ostern und keine "Eier" in den Fusebits ;-)

Wünscht
Paul

von J.P. Haller (Gast)


Lesenswert?

Hallo Leute,

ich habe seit kurzem das Problem, dass bei einem meiner beiden AtMega32 
in bascom beim programmer nur kommt: "Could not identify chip with ID: 
1E1E1E"
Ich vermute das ich die Fusebits etwas falsch eingestellt habe (war 
gestern relativ spät)
Jetzt hab ich das problem, dass ich den einen AtMega32 nicht brennen 
kann.

Hab schon den Quarzoszillator herausgenommen und es getestet obs so 
geht. Fehlanzeige...

Hab hier im verlauf von den HV-Programmern gelesen.
Vllt könnten die mir helfen.
@Paul Baumann: Würde es dir was ausmachen mir deinen Schaltplan zu 
senden?
Könnte man den AtMega32 'einfach' dann in den DIP 40 steckplatz stecken 
und so wieder durch die exe wiederbeleben?

Sry, hab von den Fusebits generell wenig ahnung... Und hatte als MC 
bisher nur den AtMega8 und AtMega32...

Danke schon mal für die Hilfe.

MfG J.P.

von Paul Baumann (Gast)


Lesenswert?

Das ist nicht "meine" Schaltung sondern ein Nachbau von hier:
http://elm-chan.org/works/avrx/report_e.html

Dazu gehört das Programm "AVRPP", welches von der Kommandozeile 
ausgeführt werden muß. Man kann damit die Werkseinstellungen des 
Controllers wieder herstellen, aber auch "ganz normal" den Flash oder 
den EEPROM beschreiben
oder die Fuse-Bits verändern.


MfG Paul

von J.P. Haller (Gast)


Lesenswert?

ok, dankeschön...

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.