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
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.
...
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
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
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.
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
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.
...
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
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
...
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
> 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.
...
@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
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
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 ...
@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
... 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
@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
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.
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