PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega88 Port-Zustand nach Reset



drew
14.04.2010, 06:34
Hallo,
ich habe eine Schaltung mit dem ATmega88 gebaut. Hierbei habe ich an einem Ausgang einen Summer angschlossen (siehe Schaltplan).
R7 ist 1k und ist an PC0 angeschlossen.

Laut Doku sollte PC0 beim einschalten als Eingang geschaltet sein, also hochohmig. Wenn ich aber einschallte (oder debugge) fängt das Ding sofort an zu piepsen. Auch ein externer Pullup von 1k(!) hilft nicht weiter.

Wo ist mein Denkfehler?

Ps.: Ich habe bereits eine Platine geätzt. Also große Änderungen sind nicht mehr drin :-(

workwind
14.04.2010, 08:51
Ist die Betriebsspannung für den ATmega88 auch 5V?

radbruch
14.04.2010, 09:42
Hallo


1.1.4 Port C (PC5:0)
Port C is a 7-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The
PC5...0 output buffers have symmetrical drive characteristics with both high sink and source
capability. As inputs, Port C pins that are externally pulled low will source current if the pull-up
resistors are activated. The Port C pins are tri-stated when a reset condition becomes active,
even if the clock is not running.
"Die Port C Pins sind TriState, wenn ein Reset-Zustand aktiv ist..."

Während eines Resets sind sie also TriState, aber was passiert danach? Auf Seite 47 unter Reset steht dann noch:

"The I/O ports of the AVR are immediately reset to their initial state when a reset source goes
active. This does not require any clock source to be running."

Aber welches die "their initial state" sind habe ich nicht gefunden.

Einfachster Test wäre wohl direkt am Progammstart den Pin manuel auf Eingang ohne PullUp zu schalten:

DDRC &= ~(1<<PC0);
PORTC &= ~(1<<PC0);

Gruß

mic

workwind
14.04.2010, 09:48
Die Initialwerte für PORTC und DDRC sind jeweils 0x00 (S. 93)

Eventuell ist die analoge Spannungsversorung AVCC nicht angeschlossen (S. 4: even if the ADC is not used...)

drew
14.04.2010, 14:13
Hallo,
danke für die Antworten.


Ist die Betriebsspannung für den ATmega88 auch 5V?
Ja, ich hab überall 5V.


Eventuell ist die analoge Spannungsversorung AVCC nicht angeschlossen
Stimmt, das war mit nicht bewust, dass man die in dem Fall braucht. ich werde sie in jedem Fall anschließen.

Ich habe die Platine in der Zwischenzeit auch schon mal mit Alk. sauber gemacht. Seit dem ist es etwas besser. Der Summer meldet sich aber immer noch, wenn ich mit dem Finger an den Prozessor komme. Ich denke, da muß ich nochmal alle Verbindungen genau prüfen.
Seltsam ist das aber schon, weil der Pin sich sonst ganz normal ferhalten hat (High - Lowpegel waren sauber da.)

workwind
14.04.2010, 14:18
Der PC0 wird auch vom ADC verwendet, wenn der jedoch keinen Strom hat, kann irgendetwas passieren (nach der Spec).....
Vermutlich wird von PC0 ein Leckstrom nach AVCC fliessen (da das Potential an PC0 zwischen 0V und AVCC(!) liegen sollte) und dieser Strom wird den Transistor durchschalten.