µC spielt verrückt wenn ISP Programmer nicht mehr dran

Gast #1614096
Ich habe hier ein Phänomen, das ich nicht so genau verstehe.

Ich habe eine Schaltung, bei der das Timing zunächst zum Testen nicht so 
wichtig war (und ich grade keine Quarze hatte ^^), und der ATMega644P 
deshalb mit dem internen Oszillator ohne Probleme lief.

Jetzt habe ich einen 20Mhz-Quarz für das Timing angeschlossen. Solange 
der (über USB betriebene) ISP-Programmer angeschlossen ist, funktioniert 
auch alles prima, trenne ich den allerdings, spielt der µC verrückt, tut 
zufällige Dinge und scheint sich öfter zu resetten.
Schließe ich den ISP wieder an, funktioniert wieder alles wunderbar.

Die Schaltung läuft derzeit über eine 4.5V Batterie. CKSEL steht auf 
"Ext. Crystal Osc. 8.0-  Mhz; Start-up time: 16CK + 65ms".

Hat jemand eine Idee, was hier passiert?

Vielen Dank schonmal :)
Gast
Das mit dem Reset dachte ich schon, daran lag es aber nicht.
Ich verstehe nicht, warum alles sowohl mit dem internen Oszillator als 
auch mit 20Mhz-Quarz und angeschlossenem ISP, jedoch nicht wenn man den 
trennt. Dann können doch floating pins eigentlich nicht dafür 
verantwortlich sein, oder?
Gast
Glaube es zu wissen, dass die ISP- Pins im inaktiven zustand High sind.
Versuche es doch mal diese Pins über einen Widerstand  mit VCC zu 
verbinden,
Oder eben Pullups zuschalten.
Ohne den Source und Schaltplan zu kennen, fällt es einem schwer dieses 
Mysterium aufzulösen.
Gast
Hi

>...trenne ich den allerdings, spielt der µC verrückt, tut
>zufällige Dinge und scheint sich öfter zu resetten.

Woran erkennst du das.

MfG Spess
gtf schrieb:
> Reset Widerstand an VCC?

> Glaube es zu wissen, dass die ISP- Pins im inaktiven zustand High sind.
> Versuche es doch mal diese Pins über einen Widerstand  mit VCC zu
> verbinden,
> Oder eben Pullups zuschalten.

Das ist alles im besten Falle unwahrscheinlich (nur um nicht bloedsinnig 
schreiben zu muessen). Ein anstaendiger ISP sollte seine Pins, wenn er 
nicht gerade programmiert, doch eher hochohmig halten, damit man auch 
bei gestecktem ISP die MOSI, SCK und MISO als I/Os verwenden kann. Ein 
Reset-Pullup ist in 99.9% aller Faelle sowieso ueberfluessig.


> Ohne den Source und Schaltplan zu kennen, fällt es einem schwer dieses
> Mysterium aufzulösen.

Das stimmt zweifellos. So koennen wir alle nur spekulieren!

Meine Vermutung: Durch den externen Quarz und die erhoehte Taktfrequenz 
benoetigt Dein AVR einfach mehr Strom als die Batterie zu liefern bereit 
ist. Solange der ISP steckt, versorgt dieser Deine Schaltung ueber VTG 
und GND mit ausreichend "Saft", ziehst Du ihn ab, reicht es nicht mehr.


Volker
Gast
Das mit dem Strom dachte ich auch schon, aber der Programmer hat ja eine 
möglicherweise andere Betriebsspannung und kann deshalb die Schaltung 
nicht mit versorgen.

Das Problem war am Ende einfacher... ich hatte den Kondensator zwischen 
VCC und GND am µC vergessen. Offenbar ging es vor dem Hochschalten der 
Taktfrequenz auch noch ohne (vermutlich, weil der µC weniger Strom 
verbraucht hat), hinterher war's jedoch zu viel.
Im Programmer ist natürlich einer zwischen VTG und GND... deshalb ging 
es mit Programmer dran, aber nicht ohne.

Also, einfach 100nF dazwischen und schon läuft's wie geschmiert. :)

Trotzdem danke an alle Antworter und sorry für die am Ende blöde Frage 
:)
Susanne schrieb:
> Das mit dem Strom dachte ich auch schon, aber der Programmer hat ja eine
> möglicherweise andere Betriebsspannung und kann deshalb die Schaltung
> nicht mit versorgen.

Kann er schon... Je nach Programmer und Deiner Schaltung, die wir ja 
nicht kennen. ;)


> Das Problem war am Ende einfacher... ich hatte den Kondensator zwischen
> VCC und GND am µC vergessen. Offenbar ging es vor dem Hochschalten der
> Taktfrequenz auch noch ohne (vermutlich, weil der µC weniger Strom
> verbraucht hat), hinterher war's jedoch zu viel.

Dafuer ist der Abblockkondensator allerdings nicht gedacht. Vielleicht 
solltest Du mal die Stromaufnahme messen und ueber den Innenwiderstand 
Deiner (uns unbekannten) Batterie ausrechnen, was diese an Strom zu 
Liefern in der Lage ist?


> Im Programmer ist natürlich einer zwischen VTG und GND... deshalb ging
> es mit Programmer dran, aber nicht ohne.
> Also, einfach 100nF dazwischen und schon läuft's wie geschmiert. :)

Zumindest jetzt unter "Labor-Bedingungen". ;)


Volker

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.