Hallo allerseits,
Ich habe gerade wieder ein für mich unerklärliches Phänomen am Laufen.
Und zwar habe ich einen ATMega8 mit Bascom programmiert und in meine
Schaltung eingebaut. Funktioniert alles. Dann habe ich einen zweiten
Mega8 hergenommen, die LOck- und Fusebits gleich wie beim ersten gesetzt
und das haargenau gleiche Programm draufprogrammiert und auch in die
gleiche Schaltung eingebaut. Funktioniert NICHT!
Und jetzt kommts: Wenn ich einen Hardware-Reset (Pin1 an GND) mache,
rennt das Programm einwandfrei. Schalte ich jedoch die Stromversorgung
aus und dann wieder ein, funktioniert das Programm wieder nicht.
Was ist da los? Es kann ja eigentlich kein Software-Problem sein, weil
ja manche Atmels funktionieren.
Kann mir jemand weiter helfen? Vielen Dank!
mfg
Andy
Die sieht folgendermaßen aus:
--- VCC
|
|
| |
| | 10kOhm
|
|____Pin1
|
|
---
--- 47pF
|
|
--- GND
Diese Beschaltung verwende ich schon immer und hat immer funktioniert.
Warum sollte sie es jetzt nicht mehr tun?
THX.. Andy
Tausch mal den 47pF gegen einen 47nF aus.
Die 47 pF sind sowieso sinnlos, da zu klein.
> Warum sollte sie es jetzt nicht mehr tun?
Weil dein 2-ter Mega8 anscheinend nach einem
Spannung-ein nicht lang genug im Reset gehalten
wird.
Vielleicht "kommt" die Betriebsspannung nicht schnell genug und dieses
Exemplar kommt damit nicht klar. Ich hatte ein ähnliches Phänomen: bei
einem PIC16F84 schwingt der externe Quarz nicht richtig, bei fünf
anderen überhaupt kein Problem.
@Peter: Ich verwende den internen 4MHz Oszillator.
@Karl Heinz:
Ich habe nun den Kondensator getauscht. Nun bin ich aber auf noch etwas
draufgekommen:
Und zwar steuere ich mit diesem AVR ein digitales Poti über SPI an. Ich
habe im Programm eingebaut, dass nach dem Einschalten/Reseten alle LEDs
ausgeschaltet werden. Das funktioniert komischerweise noch. Nur kann ich
dann den Wert des Potis nicht mehr ändern, was aber mit dem anderen AVR
problemlos funktioniert.
Also, das ist sehr komisch.
Wie schwingt denn so ein Quarz eigendlich? Ich dachte immer entweder auf
Resonanz oder eben vielfachen davon. Bei meinem PIC ist das ganz lustig:
erst schwingt er sehr schnell und läuft dann langsam runter (die LEDs
blinken immer langsamer) und irgendwann wieder ganz schnell usw......
(bei dieser Anwendung ein "netter" Effekt ;-)
Hallo,
Was mir nun noch aufgefallen ist: In der Schaltung habe ich einen LM7805
zur Erzeugung der 5V eingebaut. Wenn ich diesen auf der 5V-Seite kurz
kurzschließe funktioniert der AVR auch einwandfrei.
Was kann da sein. Warum funktioniert das Programm ca. 1 bis 2 Sekunden
lang und dann nicht mehr? Irgendwas stimmt da nicht!
Poste Deine komplette Schaltung.
Die Reset-Schaltung mit dem Kondensator und Widerstand brauchst Du
nicht, der AVR hat sowas intern. Ich kenne das nur noch von
Uralt-Mikrocontrollern, die brauchten das aber auch. Ansonsten schau mal
ins Datenblatt, wie die Reset-Beschaltung erfolgen soll, da steht nix
von einer Kapazität. Ein Pullup-Widerstand macht sinn, wenn ein ISP
angeschlossen werden soll.
mfg, Stefan.
@Stefan: Ja, an das Teil soll ein ISP dran. Die Schaltung mit der
Kapazität hab ich aus dem Netz.
Anbei ein Auszug der Schaltung, wo der Mega8 drinnen ist. Der zweite
Baustein ist ein digitales Poti.
Fällt mir jetzt spontan erstmal nix auf. Außer, daß der ISP auch das
digitale Poti ansteuern könnte. Bringt der Programmiervorgang das Ding
vielleicht durcheinander?
Und laß den Kondensator weg, das Ding braucht der Mega8 nicht. Selbst
den Pullup könntest Du weglassen, der ist schon integriert.
mfg, Stefan.
@Stefan: Danke für deine Tipps, aber ich programmiere den AVR über mein
Testboard. Den ISP hab ich nur für Notfälle eingebaut.
Wenn ich aber den Widerstand und den Kondensator drauf lasse, störts
nicht, oder?
Andy, tu Dir einen gefallen und schmeiß ihn runter. Ich drücke mich mal
netter aus als der unsichtbare.
mfg, Stefan.
P.S. Wirklich, schmeiß das Ding raus.
P.P.S. Der Kondensator ist wirklich, ganz wirklich nutzlos.