PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Portzustände während dem Programmieren eines AVRs



robo junior
09.06.2007, 11:20
Hallo

Wenn ich ein neues Programm auf meinen Controller übertrage (mit dem Robotikhardware ISP Kabel auf ein RN Mega 2560 Modul), ändern sich sobald ich das Kabel anschließe bzw. ein Programm übertrage manche Pinzustände (von low auf high). Hat jemand eine Idee woran das liegen könnte? Hab sowas vorher noch nie gehabt und hab eigentlich auch nichts (absichtlich) verändert.
Wär ja eigentlich nicht so schlimm, aber ich hab an genau dem Pin die Schaltung für meinen Schussmechanismus angeschlossen und die sollte eben nicht die ganze Zeit angeschaltet sein.

uwegw
09.06.2007, 13:22
Während des Flashvorgangs wird der Controller im Reset gehalten. Dann sind sämtliche Pins in den hochohmigen Zustand geschaltet. Sie verhalten sich also so, als wären sie nicht da.
Ein Ausnahme sind die Pins der ISP-Schnittstelle. Da werden die Daten übertragen, sie schalten also "wild" hin und her.

An welchem Pin hängst du mit deiner Schaltung? Am ISP-Interface? ->anderen Pin nehmen! Irgendwo anders? Pullup/down einbauen!

robo junior
09.06.2007, 14:01
Hab die Schaltung an PC 0 dran. Der Pin hat sonst keine Funktionen (ISP). Kann ich dann einfach einen Widerstand zwischen Pin und GND machen, damit meine Schussvorrichtung nicht immer ausgelöst wird?(wie groß sollte der sein?)
Dann hätte ich mal noch eine Frage. Sollten nicht normal alle Pins "low" sein (wenn es nicht in der Software anders programmiert wird?). Bei dem RN Mega2560 Modul ist an PD5 z.B. eine LED, die an ist, wenn der Pin low ist. Allerdings leuchtet die bei mir nie, obwohl ich den Pin gar nicht benutze/ansteuere.

Bernhard667
09.06.2007, 15:48
Für die meisten I/O Pins ist Tristate der Resetzustand. Im Detail steht es im Datenblatt

uwegw
09.06.2007, 20:58
Hab die Schaltung an PC 0 dran. Der Pin hat sonst keine Funktionen (ISP). Kann ich dann einfach einen Widerstand zwischen Pin und GND machen, damit meine Schussvorrichtung nicht immer ausgelöst wird?(wie groß sollte der sein?)

Das wäre die Lösung für den Problem. (Natürlich nur, wenn zum aktivieren ein high-Signal benutzt wird). Die Größe ist ziemlich unkritisch, unter normalen bedingungen sollte alles im Bereich von 1k bis 100k probelmlos laufen. Üblich sind 10k, aber wenn du grad ne andere Größe übrighast, geht das auch.


Wenn ein Pin nicht konfiguriert wurde oder der Controller im Reset ist, sind die Pins als hochohmiger Eingang geschaltet: sie liefern keinen Strom, und ziehen auch keinen Strom. Um die LED anzuschalten, müsstest du den Pin als Ausgang einstellen und auf low schalten. Dann zieht der Pin den LED-Anschluss auf Masse, und der Strom kann fließen.