www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Portpins ohne Potential?


Autor: gerrit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

an den Portpins meines 4433 kann ich keine Spannung feststellen, nicht
gegen 5V und auch nicht gegen Masse. Habe alle Register durchprobiert,
immer das Gleiche. Ist da was gestorben?


Gruß,
Gerrit

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

versuch mal folgendes:
Die DDR-Register (z.B. DDRA für Port A) auf 1 setzten. Damit wird der
Pin als Ausgang konfiguriert. Jetzt kannst du den Pin mit Setzten oder
löschen, indem du das PORT-Register setzt. (z.B. PORTA für Port A)

Gruß, Florian

Autor: gerrit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Florian,

danke für deine Antwort. In der Simulation werden die Pins gesetzt, nur
direkt am µC kann ich nichts messen. Das "Programm" ist der
Vierzeiler aus dem Tutorial, das DDR wird auf 0xFF gesetzt.

Kann das auch mit irgendwelchen Fuse- oder Lockbits zusammenhängen?


Gruß,
Gerrit

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaub nicht. Meines Wissens hat der 4433 keine Fuse-Bits, welche
sich auf die Ports auswirken.

Kannst du das Programm mal hier posten?

Gruß, Florian

Autor: gerrit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist es:

******************************************************************
.include "4433def.inc"       ;Definitionsdatei einbinden, ggf. durch
                             ;2333def.inc ersetzen

         ldi r16, 0xFF       ;0xFF ins Arbeitsregister r16 laden
         out DDRB, r16       ;Inhalt von r16 ins IO-Register DDRB


         ldi r16, 0b11111100 ;0b11111100 in r16 laden
         out PORTB, r16      ;r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ;Sprung zur Marke "ende"
Endlosschleife
***********************************************************************

Ich weiß allerdings nicht, ob das nun alles so richtig ist. Habe
schonmal ein paar Tage mit dem AVR verbracht, ebenso erfolglos.

Beschreiben und auslesen kann ich ihn - was mich nur verwundert ist,
das die Pins keinen definierten Pegel haben. Kann doch irgendwie nicht
sein, dass ich gegen 5V und auch gegen Masse keinerlei Potential messen
kann, egeal, welchen Port ich verwende.
Die Spannungsversorgung gemäß AVR-Datenblatt stimmt.

Gruß,
Gerrit

Autor: Jens-Erwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Vielleicht ist es das.

Der Controller geht auf die erste Adresse nämlich 0x0000. Wenn dort
nichts ist, dann macht er auch nichts. Du musst ihm sagen, dass er in
Dein Hauptprogramm springen muss.

Das Simulationsprogramm allerdings geht einfach auf den ersten Befehl,
macht also alles ordentlich -- weiss auch nicht?

.CSEG

.ORG  0x00
        rjmp  Init


Init:   ;Stackpointer setzen

       ser temp
       out DDRB,temp

       ;usw

Autor: gerrit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm....ich habe gelesen, das .cseg und .org gar nicht notwendig sind,
im Tutorial steht auch nichts davon. Werde ich aber gleich probieren.

Danke erstmal,
Gerrit

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habs gerade mal ausprobiert. Bei mir funktionierts wunderbar.
Der Controller setzt die Pins B0 u. B1 auf Low und B2-B5 auf High.

@Jens-Erwin:
Das mit dem sprung ins Hauptprogramm kann nicht der Fehler sein, denn
das Programm wird sowieso an die erste Adresse im Speicher geschrieben.
Also dahin, wo du deinen Sprung setzt.

Was evt. noch ein Fehler sein könnte währe, wenn irgendein Interrupt
ausgelöst werden würde. Aber das kann eigentlich nicht vorkommen, da ja
alle interrupts bei einem Reset deaktivert werden.

Gruß, Florian

Autor: gerrit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Florian,

danke für den Test! Dann wird es wird wohl ein Defekt im AVR sein.
Nur...wenn ich gegen Masse und 5V jeweils 0V messe, müsste das ja schon
ein Kurzschluss sein!?


Gruß,
Gerrit

Autor: Fritz Ganter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Nur...wenn ich gegen Masse und 5V jeweils 0V messe, müsste das ja
schon
ein Kurzschluss sein!?"


Halt mal einen Anschluss vom Messgerät in die Luft, und messe dann nach
Masse und nach +5V. Was siehst du?

IC-Pins können auch den Zustand "hochohmig" haben, also keine
Spannung führen.
Beim AVR machen das alle Portpins nach einem Reset (Eingang ohne
Pull-up).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.