mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit PCF8574 Port Expander


Autor: Thomas N. (thomas8443)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

steuere mit meine ATMega32 einen PCF8547 Port Expander an. Verwende
dafür eine Software I2C Funktion. Leider schaffe ich es nicht, Zugriff
auf den Port Expander zu erzeugen.
Habe das I2C Signal schon mit LEDs ausprobiert und abgelesen, auch schon
mit Tastern simuliert aber ich schaffe es nicht den IC richtig
anzusteuern.

Mein Übertragungssignal sieht folgendermaßen aus (In der Software
programmiert, mit LEDs abgelesen und auch mit Tastern ausprobiert):

START 0100 0000 ACK 00001111 ACK STOP

Meine Adresspins sind alle nach Masse geschalten, daher Adresse 0.

hättet ihr eine Idee was mein Fehler sein könnte?
Danke für eure Antworten!

lg Tommy

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas N. schrieb:
> Meine Adresspins sind alle nach Masse geschalten, daher Adresse 0.

Laut Datenblatt wäre das Adresse 0x20, je nach Implementierung kann es 
aber sein, daß du dafür 0x40 ausgeben musst.

Oliver

Autor: Thomas N. (thomas8443)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe mich etwas falsch ausgedrückt, meinte der teil der adresse der 
durch die Pins bestimmt wird ist null, habe als gesamte adresse 0x40 
gewählt!

>START 0100 0000 ACK

was könnte sonst noch mein fehler sein?

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> was könnte sonst noch mein fehler sein?

Ein beliebter Fehler ist es zu vergessen das I2c ja
OpenDrain ist. Da du SoftwareI2C machst darfst
du nicht den Pegel aendern indem du High
oder Low auf dem Port ausgibst, der muss immer
auf Low stehen. Du gibst dann den Pegel
aus indem du die Portdirektion von Eingang
auf Ausgang umschaltest.

Olaf

Autor: Thomas N. (thomas8443)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Olaf
muss zugeben, das habe ich nicht gewusst und ich hoffe dass das mein 
fehler war! aber wie müsste die schaltung aussehen wenn ich das mit 
normalen taster ausprobieren möchte?
reicht es nicht einfach einen taster an den eingang des Port Expanders 
zu hängen und zwischen Masse und 5V umzuschalten?

lg

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas N. schrieb:
> reicht es nicht einfach einen taster an den eingang des Port Expanders
> zu hängen und zwischen Masse und 5V umzuschalten?

Die Leitungen dürfen nur per Pull-Up-Widerstand auf high gezogen werden, 
niemals aktiv. Taster dann gegen Masse, oder offen.

Die Widerstände hasr du aber dran, oder?

Oliver

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Taster dann gegen Masse, oder offen.

Mit einem echten Taster geht das nicht weil der prellen wird.
Da muesste dann hinter den beiden Tastern noch etwas Logic
um die zu entprellen.

Olaf

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.