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 :)
Vielleicht auch floatins pins. Abhilfe: Bei ungenutzten Pins Pullup zuschalten.
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.
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
Ist die Brown-Out-Detection aktiv? Wenn ja, bitte mal deaktivieren.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.