Forum: Mikrocontroller und Digitale Elektronik µC spielt verrückt wenn ISP Programmer nicht mehr dran


von Susanne (Gast)


Lesenswert?

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 :)

von gtf (Gast)


Lesenswert?

Reset Widerstand an VCC?

von gtf (Gast)


Lesenswert?

Vielleicht auch floatins pins.
Abhilfe: Bei ungenutzten Pins Pullup zuschalten.

von Susanne (Gast)


Lesenswert?

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?

von gtf (Gast)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Volker S. (volkerschulz)


Lesenswert?

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

von Thomas K. (tkroth) Benutzerseite


Lesenswert?

Ist die Brown-Out-Detection aktiv? Wenn ja, bitte mal deaktivieren.

von Susanne (Gast)


Lesenswert?

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 
:)

von Volker S. (volkerschulz)


Lesenswert?

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

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.