-         

Ergebnis 1 bis 6 von 6

Thema: ATmega88 Port-Zustand nach Reset

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von drew
    Registriert seit
    06.04.2005
    Beiträge
    150

    ATmega88 Port-Zustand nach Reset

    Anzeige

    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
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken summer.png  


  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    Ist die Betriebsspannung für den ATmega88 auch 5V?

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.785
    Blog-Einträge
    8
    Hallo

    Zitat Zitat von Aus dem [url=http://www.atmel.com/dyn/resources/prod_documents/8271.pdf
    Datenblatt des Mega88 Seite 3[/url]]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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    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...)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von drew
    Registriert seit
    06.04.2005
    Beiträge
    150
    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.)


  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •