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