Forum: Mikrocontroller und Digitale Elektronik TWI PCF8574P Atmega328p


von Timo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Vorab möchte ich sagen, dass ich viel lese und lerne über diese Platform 
und bin sehr begeistert über die starke Präsents der Hilfsbereitschaft.

Nun zum Thema.

Hardware:
Ich bin zurzeit dabei über AtmelStudio ein Atmega328p zu programmieren. 
Dafür nutze ich zur Testzwecken einen Arduino Uno über ICSP mit dem 
Programmer STK500.
Ich möchte über TWI einen PCF8574P ansteuern. Wie in dem hier 
vorhandenen Beispiel Howto. Die SCL und SDA sind mit jeweils 10kOhm an 
5v verbunden.

Software:
Ich habe mich für SCL 100kHz entschieden was auch gut hinkommt. Nur 
fehlen mir da eher Schmidttriggereigenschaften ^^ eindeutige 1 und 0. 
Ist mein uC kaputt oder habe ich falsche Einstellungen gewählt?

Über eure Hilfe würde ich mich sehr freuen.

: Verschoben durch User
von Dumpf Backe (Gast)


Lesenswert?

Timo schrieb:
> Ist mein uC kaputt oder habe ich falsche Einstellungen gewählt?

Zuerst ist mal dein Text kaputt, oder deine Gedanken:

Timo schrieb:
> Ich habe mich für SCL 100kHz entschieden was auch gut hinkommt. Nur
> fehlen mir da eher Schmidttriggereigenschaften ^^ eindeutige 1 und 0.

Timo schrieb:
> Über eure Hilfe würde ich mich sehr freuen.

Über eine klare Problem- und Fragestellung würden wir uns sehr freuen.

von Timo (Gast)


Lesenswert?

Die Fragestellung:
Ich möchte die Ports als Ausgänge schalten. Dies funktioniert nicht. 
Erkennt ihr den Fehler aus meinem beigefügtem Code?

Ist laut dem Bild der träge Aufbau zur logischen 1 also 5v nicht 
verkehrt? Ich erwarte doch ein schnellen Aufbau und ein Halten der 1 
'wie ein schmidttrigger'. Fehlen mir da Einstellungen?

von Timo (Gast)


Lesenswert?

Dumpf Backe schrieb:
> Zuerst ist mal dein Text kaputt, oder deine Gedanken:

Danke für die schnelle Rückmeldung. Der Satz hilft aber nicht und kann 
als unfreundlich gedeutet werden.

von Tippgeber (Gast)


Lesenswert?

Timo schrieb:
> Danke für die schnelle Rückmeldung. Der Satz hilft aber nicht und kann
> als unfreundlich gedeutet werden.

Die Unfreundlichkeit hast Du Dir auch redlich verdient, denn Du bist 
unhöflich. Du hast weder die Hinweise gelesen, dass das hier das 
Unterforum für Projekte ist (Forum: Projekte & Code, Hier könnt ihr eure 
Projekte, Schaltungen oder Codeschnipsel vorstellen und diskutieren. 
Bitte hier keine Fragen posten!) noch hast Du, wie Dumpf Backe es oben 
andeutet, eine klare Beschreibung Deines Problems gepostet.

PS: Übrigens ist die Fehlerbeschreibung noch immer nicht klar:

> Ich möchte die Ports als Ausgänge schalten. Dies funktioniert nicht.

Woran erkennst Du das? Was erwartest Du als Reaktion? usw.

von dunno.. (Gast)


Lesenswert?

Bei dem aufbau wirst du die 100khz nicht hinbekommen. Mach das 
langsamer, dann gehts.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

Z.B. fehlt DDRC = 0xFF; in Deinem Programm. Und nimm 2,2 kOhm.

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Datenrichtung_bestimmen

mfG

: Bearbeitet durch User
von Timo (Gast)


Lesenswert?

Christian S. schrieb:
> Und nimm 2,2 kOhm.

Vielen Dank Christian S. und Dunno.. für die freundlichen 
Hilfestellungen. Die 2.2kOhm haben das Signal um einiges optimiert. 
Hatte mich stumpf nach dem Beispiel hier im Forum orientiert.

https://www.mikrocontroller.net/articles/Port-Expander_PCF8574

von Timo (Gast)


Lesenswert?

Es hat jetzt geklappt. ? ich hatte zudem ein logikfehler im Read Write 
Bit.
Das 8 Bit (adr|adr|adr|adr|adr|adr|adr|Read oder write)
muss 0 zum Senden an Slave (write) gesetzt werden und
           1 zum Lesen vom Slave (read) gesetzt werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.